Внимание!
Эта wiki об устаревших версиях
Документация к актуальной версии интеграции 1С и телефонии доступна по ссылке

Инструменты пользователя

Инструменты сайта


doc:1cajam:astcastomize_v6

Это старая версия документа!


Пользователь Asterisk manager API

Настройка manager.conf

Во первых необходимо создать пользователя для управления asterisk. Для этого достаточно внести соответствующую запись в /etc/asterisk/manager.conf.

В примере ниже добавлен пользователь 1cami с паролем PASSWORD1cami. Важно также в секцию general добавить опции указанные в примере.

[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
allowmultiplelogin = yes
webenabled = yes
httptimeout = 60

[1cami]
secret = PASSWORD1cami
deny=0.0.0.0/0.0.0.0
permit=0.0.0.0/0.0.0.0
read = call,user,cdr
write = call,reporting,originate

Контроль

Следует проверить настройки manager API

CLI> manager show settings
Global Settings:
----------------
  Manager (AMI):             Yes            
  Web Manager (AMI/HTTP):    Yes            
  TCP Bindaddress:           0.0.0.0:5038   
  HTTP Timeout (minutes):    60             

(тут отображена только часть вывода команды…)

Контроль настройки менеджера 1cami

CLI> manager show user 1cami 
       username: 1cami
         secret: <Set>
            ACL: yes
      read perm: call,user,cdr
     write perm: call,reporting,originate
displayconnects: no
      Variables:
Обратите внимание на набор прав! Больше не значит лучше!

Настройка AJAM в режиме HTTP

Если мы хотим опубликовать ajam интерфейс на порту 8088 в режиме http, файл http.conf должен выглядеть примерно так:

http.conf
[general]
enabled=yes
enablestatic=yes
bindaddr=0.0.0.0
bindport=8088
prefix=asterisk

Настройка AJAM в режиме HTTPS

Если мы хотим опубликовать ajam интерфейс на порту 4443 в режиме https, файл http.conf должен выглядеть примерно так:

Для астериск версии 1.6

http.conf
[general]
enabled=yes
bindaddr=0.0.0.0
bindport=8088
prefix=asterisk
enablestatic=yes

sslenable=yes
sslbindaddr=0.0.0.0
sslbindport=8089 
sslcert = /etc/asterisk/ssl/ajam.pem

Для астериск версии 1.8 и выше

http.conf
[general]
enabled=yes
bindaddr=0.0.0.0
bindport=8088
prefix=asterisk
enablestatic=yes

tlsenable=yes
tlsbindaddr=0.0.0.0:8089
tlscertfile= /etc/asterisk/ssl/ajam.pem
tlsprivatekey= /etc/asterisk/ssl/ajam.pem

Также для https режима необходимо сгенерировать сертификат, которым будут шифроваться передаваемые данные. Самый простой способ, это генерация самоподписанного сертификата на сервере Asterisk командой:

 cd /tmp
openssl req -new -x509 -days 365 -nodes -out /tmp/foo.pem -keyout /tmp/foo.pem
mkdir /etc/asterisk/ssl
mv /tmp/foo.pem /etc/asterisk/ssl/ajam.pem

Настройка папки uploads

Если есть необходимость передавать на астериск какие-то файлы, например мы хотим обеспечить печать и отправку факсимильных сообщений, нужно настроить папку для приема таких файлов. В Asterisk есть специальный модуль который отвечает за прием файлов через AJAM интерфейс - res_http_post.so. Этот модуль не всегда устанавливается вместе с Asterisk по умолчанию, т.к. требует установленных пакетов GMIME и GMIME-DEVEL. После установки модуля необходимо настроить секцию post_mappings в файле http.conf

Механизм работы res_http_post описан подробно в блоге Игоря Гончаровского.

[post_mappings]
;
; In this example, if the prefix option is set to "asterisk", then using the
; POST URL: /asterisk/uploads will put files in /var/lib/asterisk/uploads/.
uploads = /var/lib/asterisk/uploads

при использовании этого способа загрузки файла на АТС, пользователю manager API следует добавить право config на запись. Пример для пользователя 1cami:

[1cami]
;****
read = call,cdr,user,config
;****

PT1C_UPLOAD_DIR=/var/lib/asterisk/uploads - этот важный параметр будет в дальнейшем использоваться в dialplan. У пользователя Asterisk должны быть права на чтение и запись в эту директорию!

Настройка iptables

Не забудьте открыть на фаерволе порт 4443 или 8088 чтобы интерфейс ajam был доступен из вне.

Например для iptables под управлением CENTOS это делается добавлением строчки в файл /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp   --dport 8088 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp   --dport 4443 -j ACCEPT

Проверка работы и дополнительные настройки

В консоли сервера где установлен Asterisk выполняем следующую команду:

sudo asterisk -rx "http show status"

Если все настроено правильно, то ответ будет примерно такой:

HTTP Server Status:
Prefix: /asterisk
Server Enabled and Bound to 0.0.0.0:8088

HTTPS Server Enabled and Bound to 0.0.0.0:4433

Enabled URI's:
/asterisk/httpstatus => Asterisk HTTP General Status
/asterisk/phoneprov/... => Asterisk HTTP Phone Provisioning Tool
/asterisk/amanager => HTML Manager Event Interface w/Digest authentication
/asterisk/uploads => HTTP POST mapping
/asterisk/arawman => Raw HTTP Manager Event Interface w/Digest authentication
/asterisk/manager => HTML Manager Event Interface
/asterisk/rawman => Raw HTTP Manager Event Interface
/asterisk/static/... => Asterisk HTTP Static Delivery
/asterisk/amxml => XML Manager Event Interface w/Digest authentication
/asterisk/mxml => XML Manager Event Interface

Enabled Redirects:
  None.

Окончательная проверка: Идем в браузере по адресу http://ipadress_asteriska:8088/asterisk/rawman?action=login&username=1cami&secret=PASSWORD1cami

Если в качестве результата получим строку:

Response: Success
Message: Authentication accepted

Значит со стороны Asterisk все настроено правильно.

Оповещения для 1С (UserEvent)

Часть оповещений для 1С отправляются средствами приложения UserEvent, необходимо, чтобы этот модуль был подгружен:

CLI> module show like app_userevent.so
Module                         Description                              Use Count 
app_userevent.so               Custom User Event Application            0         
1 modules loaded

Настройка логирования звонков

В качестве Backend рекомендуем использовать MySQL через ODBC.
Отличная инструкция по настройке - Installing and Configuring ODBC
Пример настроек **MySQL через ODBC**

Call Detail Record (CDR)

Логирование должно быть разрешено. Файл cdr.conf

cdr.conf
 
[general]

; Значение по уполчанию "yes"
;enable=yes

Для сокращения количества обращений к серверу Asterisk, мы также рекомендуем добавить оповещение о добавлении CDR записи через AJAM интерфейс. Для этого необходимо включить опцию в файле настроек.

cdr_manager.conf
 
;
; Asterisk Call Management CDR
;
[general]
enabled = yes

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

Asterisk Channel Event Logging (CEL)

Логирование должно быть разрешено.

cel.conf
 
[general]

enable=yes
apps=ALL
events=ALL

Полезные ссылки

Комментарии

doc/1cajam/astcastomize_v6.1408008919.txt.gz · Последние изменения: 2014/11/14 22:32 (внешнее изменение)