OpenERP+Asterisk (Часть 1) Коннектор OpenERP- Asterisk (click2dial)

Статья в процессе редакции


Оригинал статьи

OpenERP+Asterisk коннектор




Введение

Asterisk — программное обеспечение OpenSource для телефонии. Это программное обеспечение используется, чтобы управлять IP системами в PBX компаниях, объединенных с IP телефоном для каждого служащего и трубками SIP на xDSL или традиционные ISDN линии, чтобы получить доступ к общественной телефонной сети. Asterisk доступна в соответствии с GNU General Public Licence и отредактирована американской компанией Digium. Если Вы хотите знать больше о Asterisk, пожалуйста, прочитайте ее Wikipedia страницу.

Описание коннектора

У коннектора OpenERP- Asterisk есть три главных функции.

Первая, добавляет кнопку набора в представлении адреса партнера так, чтобы Ваши пользователи могли непосредственно набрать номер телефона через Asterisk. Эта функция обычно известна как click2dial. Вот, как это работает:

1.В OpenERP пользователь нажимает на кнопку набора рядом с областью номера телефона в представлении адреса Партнера.

2.Asterisk делает телефонный звонок пользователю.

3.Пользователь отвечает на свой собственный телефон (если он не делает, процесса здесь останавливается).

4.Asterisk набирает номер телефона, найденный в OpenERP вместо пользователя.

5.Если отдаленная сторона отвечает, пользователь может говорить со своим корреспондентом.

Вторая функция: добавляет способность показывать имя вызывающего абонента на входящих телефонных звонках, если представленный номер телефона присутствует в адресах Партнера OpenERP. Вот, как это работает:

1.На входящих телефонных звонках Asterisk выполняет скрипт.

2.Этот скрипт обращается с просьбой к XML-RPC на сервере OpenERP, чтобы попытаться найти имя человека, соответствующего номеру телефона представленный вызывающим абонентом.

3.Если Asterisk находит это имя, то он показывает это имя пользователю.

Третья функция: способность открыть партнера, соответствующего вызывающему абоненту в одном щелчке. Эта функция доступна только в 6.1 версии. Вот, как это работает:

1.Кто-то звонит Вам и Ваш телефон звонит. Вы нажимаете на кнопку 'Открыть звонящего партнера в OpenERP: OpenERP посылает вопрос менеджеру по Asterisk чтобы получить список текущих телефонных звонков.

2.Если Asterisk находит телефонный звонок, использующий телефон пользователя, то получает номер телефона вызывающего абонента

Asterisk ищет номер телефона вызывающего абонента в адресах Партнера OpenERP. Если звонок соответствует, он показывает имя связанного Партнера и предлагает открыть его, или открыть его связанные заказы продаж или счета. Если никакой отчет не соответствует, это предлагает создать новый контакт с представленным номером телефона как 'Телефонное' или 'Мобильное' или обновить существующий контакт.

Установка модуля

Вы должны установить asterisk_click2dial модуль на OpenERP точно так же как любой модуль OpenERP. Исходный код модуля доступен OpenERP-Asterisk connector на Launchpad:

— для OpenERP v5/v6 (тот же самый кодекс для этих 2 версий OpenERP): https://code.launchpad.net/~openerp-asterisk-team/openerp-asterisk-connector/6.0

— для OpenERP v6.1: https://code.launchpad.net/~openerp-asterisk-team/openerp-asterisk-connector/6.1

asterisk_click2dial модуль не требует никакой дополнительной библиотеки Питона.

Обратите внимание: модуль с именем asterisk в extra-addons репозитории не связан с этим коннектором. asterisk_click2dial модуль не зависит от него.

Установка click2dial


Конфигурация Asterisk

Для установки click2dial OpenERP будет общаться со Asterisk через Asterisk Manager Interface (AMI).

Первый шаг конфигурация AMI:

— создайте новый аккаунт AMI для OpenERP

— сконфигурируйте AMI, чтобы принять запросы от OpenERP для click2dial.

Конфигурационный файл AMI /etc/asterisk/manager.conf ( зависимости от Вашего расположения Linux, директория может отличаться). Вот типовой конфигурационный файл с моими комментариями:

; manager.conf фаил для the Asterisk Manager Interface (AMI)
; стартуем с  “general”
[general]
; Вы должны активировать AMI 
enabled=yes 
; TCP Port с которого AMI слушает
port = 5038
; Я предпологаю  Asterisk и OpenERP находятся на двух разных машинах,
; и так вы должны связать  AMI с 0.0.0.0
bindaddr = 0.0.0.0
; Вы не должны активировать HTTP AMI интерфейс :  модуль использует родной интерфейс 
webenabled = no
; Затем, мы создаем AMI аккаунт для OpenERP
[click2dial]  ; Это AMI логин
secret = mypassword ; Это AMI пароль
; Мы лишаем AMI в доступе для всех 
deny = 0.0.0.0/0.0.0.0
; Мы принимаем AMI доступ для OpenERP сервера  (192.168.0.42)
permit = 192.168.0.42/255.255.255.255
; Мы даем минимум необходимых прав доступа для  click2dial
; Для Asterisk 1.4.x, вам нужно “вызвать” права (для обих click2dial и 'открытой части звонка' функции)
;read =
;write = call
; Для Asterisk 1.6.x и 1.8.x, вам нужно “ произойти  ” права (для click2dial)
; and the 'reporting' rights (for the 'open calling party' feature)
read =
write = originate,reporting 


Внимание: недостаточно перезагрузить, чтобы активизировать AMI; Вы должны перезапустить Asterisk (проверте что никто не говорит по телефону, потому что перезапуск Asterisk остановит все текущие телефонные звонки),.
Сейчас проверте ваше подключение AMI из OpenERP сервера:

% telnet <asterisk_server_IP_address> 5038


Это должно показать:

Connected to <asterisk_server_IP_address>.
Escape character is '^]'.
Asterisk Call Manager/1.1


Конфигурация OpenERP

Войдите в OpenERP как администратор

Конфигурация Asterisk сервера(ов)

Во-первых, Вы должны создать один или несколько серверов Asterisk. click2dial модуль поддерживает несколько серверов Asterisk (для каждого пользователя OpenERP, Вы будете формировать, с котором сервером Asterisk он связан).

Пройдите в меню Установка> Компании> Компании (под OpenERP v5, меню — Администрирование> Пользователи> структура Компании> Компании). Выберите компанию в списке. Потом, пройдите в кладку IPBX. Создайте один или несколько серверов Asterisk. У всех полей есть подробная контекстная помощь, таким образом, Вы должны в состоянии понять, как установить каждые параметры, читая помощь.
Некоторые параметры требуют дополнительных объяснений:

SIP: больше объяснений об этом вы найдете в Части 3 Тихий click2dial. Вы можете оставить это пока пустым, это не проблема.

различные префиксы: больше объяснений об этом в Части 2, Как переформатировать номера телефона.
Сервер Asterisk: выберите сервер Asterisk, на котором зарегистрирован IP телефон пользователя.



Конфигурация пользователей

Пойдите в меню Установки> Пользователи> Пользователи. Для каждого пользователя, которые пользуются click2dial, Вы должны установить некоторые параметры, которые asterisk_click2dial модуль добавил в Пользовательском аккаунте:

Внутреннее номер: внутренний номер телефона пользователя

Тип канала asterisk: тип канала телефона пользователя (если у пользователя есть регулярный IP телефон, выберите SIP ),

Caller ID : эта область важна. Если Вы не знаете, какое Caller ID, Вы должны прочитать документацию о Asterisk. Короче говоря, это имеет отношение к имени и телефонному номеру, представленному отдаленной стороне. Когда Вы звоните кому-то через click2dial, callerid параметр для Вашего IP телефона определяется в /etc/asterisk/sip.conf (если у Вас будет телефон SIP), НЕ будет использоваться; вместо этого будет использоваться поле Caller ID, определенное в OpenERP. Вы должны использовать тот же самый синтаксис для поля Caller ID в OpenERP что и для callerid поля в Asterisk, например:

Алексис де Латтр <141981242>



На этом конфигурация закончена вы можете начинать работать с click2dial!

8 комментариев

avatar
А может еще подскажете как заставить его отображать при вызове не собственный номер пользователя, а тот на который пользователь звонит?
avatar
Подробнее опишите вашу задачу.
avatar
Я так полагаю, что человек хочет, чтобы когда OpenERP звонит пользователю, инициировавшему вызов с помощью фичи click2dial, у него (пользователя) на телефоне в качестве номера звонящего высвечивался не собственный номер (который забивается в настройках OpenERP), а тот номер, на который осуществляется вызов…
avatar
Когда система настроена, она работает так:

Исходящий:
Когда в OpenERP нажимают на номер телефона у вас звонит ваш сип клиент (он должен быть установлен на вашем компьютере и подключен к вашему asterisk. Вы поднимаете трубку, дальше слышите вызовы это уже идет вызов тому телефону который вы нажали в OpenERP.

Входящий:
Когда вам звонят (вернее на телефонные номера которые подключены к asterisk) asterisk определяет номер звонящего — ищет его в OpenERP и если находит то в вызове на вашем сипе показывает кто звонит, если не находи показывает что такого номера нет.
В момент вызова или когда уже подняли трубку на вашем сип-клиенте (т.е. ведете разговор), в OpenERP можете нажать на кнопку поднять вызов и если клиент есть он покажет его карточку если нет то предложит его занести в базу.
avatar
collex , я знаю как система работает. Настраивал, пользовал…
Вопрос kholovnych сводится к тому, как я понял, чтобы при исходящем вызове, в тот момент когда OpenERP осуществляет звонок пользователю, инициировавшему вызов, в качестве CallerID отображалось, не то, что указано в настройках OpenERP, а номер, на который собственно должен осуществляться вызов.

На пальцах:
— в настройках OpenERP, указано, что CallerID = OpenERP Call <1111>
— пользователь решил позвонить с помощью click2dial на номер компании +723423134
— OpenERP выполняет звонок пользователю на его телефон, при этом в качестве номера звонящего у пользователя высвечивается — OpenERP Call <1111>
— после того как пользователь снимает трубку OpenERP посылает команду АТС, соединить абонента с номером +723423134, происходит соединение.

kholovnych же хочет, чтобы в момент когда OpenERP выполняет звонок пользователю в качестве CallerID высвечивалось не OpenERP Call <1111>, а +723423134.

Надеюсь так понятно? Ну и надеюсь, что я правильно понял первоначальный вопрос kholovnych .
avatar
Это вопрос я не могу осветить.
avatar
Не ставится для версии allinone под Windows. Пишет No module named phonenumbers. Почитал фрумы, все сводится к отсутствию этого модуля и модуля asterisk в питоне. Для никсов установить эти модули несложно, а как быть с виндой? Ладно. Поставил питон для винды, установил в его папку указанные модули. Openerp перестал грузиться вообще с ошибкой No handler found. В логах пишет couldn't load module web, что намекает на некорректную ссылку на директорию аддонов в конфиге, но ссылка как и директория существуют. Все, дальше не смог ничего сделать. Что я сделал не так?

Оставить комментарий