Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
doc:1cajam:astcastomize_v6 [2014/08/28 17:12] apor [Настройка папки uploads] |
doc:1cajam:astcastomize_v6 [2019/05/23 14:24] (текущий) imal [Настройка Asterisk Manager API] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ===== Пользователь Asterisk manager API ===== | + | ====== Настройка web сервера Asterisk ====== |
- | [[astpanel:ats:asterisk_v6|Обратно к основной инструкции...]] | + | ===== Настройка Asterisk Manager API ===== |
- | + | ||
- | ==== Настройка manager.conf===== | + | |
Во первых необходимо создать пользователя для управления asterisk. | Во первых необходимо создать пользователя для управления asterisk. | ||
- | Для этого достаточно внести соответствующую запись в **/etc/asterisk/manager.conf**. | + | Для этого достаточно внести соответствующую запись в **/etc/asterisk/manager.conf**, в примере ниже добавлен пользователь //1cami// с паролем //PASSWORD1cami//. |
+ | Важно также в секцию general добавить опции указанные в примере. | ||
- | В примере ниже добавлен пользователь **1cami** с паролем **PASSWORD1cami**. | + | <file - manager.conf> |
- | Важно также в секцию **general** добавить опции указанные в примере. | + | [general] |
- | + | ||
- | <code>[general] | + | |
enabled = yes | enabled = yes | ||
port = 5038 | port = 5038 | ||
Строка 18: | Строка 14: | ||
httptimeout = 60 | httptimeout = 60 | ||
- | [1cami] | + | [1cami] |
secret = PASSWORD1cami | secret = PASSWORD1cami | ||
deny=0.0.0.0/0.0.0.0 | deny=0.0.0.0/0.0.0.0 | ||
permit=0.0.0.0/0.0.0.0 | permit=0.0.0.0/0.0.0.0 | ||
- | read = call,user,cdr | + | read = call,cdr,user,config |
- | write = call,reporting,originate | + | write = call,originate,reporting |
- | </code> | + | |
- | ==== Контроль ==== | + | |
- | Следует проверить настройки manager API | + | |
- | <code>CLI> manager show settings | + | ;;; Дополнительные опции для ASTERISK 11+ ;;; Начало ;;;; |
- | Global Settings: | + | eventfilter=!Event: Newexten |
- | ---------------- | + | eventfilter=!Event: DeviceStateChange |
- | Manager (AMI): Yes | + | eventfilter=!Event: NewConnectedLine |
- | Web Manager (AMI/HTTP): Yes | + | eventfilter=!Event: Newchannel |
- | TCP Bindaddress: 0.0.0.0:5038 | + | eventfilter=!Event: SoftHangupRequest |
- | HTTP Timeout (minutes): 60 | + | eventfilter=!Event: HangupRequest |
- | </code> | + | eventfilter=!Event: BridgeDestroy |
- | (тут отображена только часть вывода команды...) | + | eventfilter=!Event: BridgeCreate |
+ | eventfilter=!Event: BridgeMerge | ||
+ | eventfilter=!Event: MusicOnHoldStop | ||
+ | eventfilter=!Event: MusicOnHoldStart | ||
+ | eventfilter=!Event: NewCallerid | ||
+ | eventfilter=!Event: LocalBridge | ||
+ | eventfilter=!Event: Unhold | ||
+ | eventfilter=!Event: Hold | ||
+ | eventfilter=!Event: AttendedTransfer | ||
+ | ;;; Дополнительные опции для ASTERISK 11+ ;;; Конец ;;;; | ||
- | Контроль настройки менеджера **1cami** | + | </file> |
- | <code>CLI> manager show user 1cami | + | |
- | username: 1cami | + | |
- | secret: <Set> | + | |
- | ACL: yes | + | |
- | read perm: call,user,cdr | + | |
- | write perm: call,reporting,originate | + | |
- | displayconnects: no | + | |
- | Variables:</code> | + | |
- | + | ||
- | <note important>Обратите внимание на набор прав! Больше не значит лучше!</note> | + | |
+ | <note important>Обратите внимание на строки фильтра: <code>eventfilter=!Event: Newexten</code>Они актуальны для Asterisk 13. \\ **Эта настройка крайне необходима!!!**</note> | ||
- | ===== Настройка AJAM в режиме HTTP ===== | + | ===== Настройка AJAM HTTP ===== |
- | + | Если мы хотим опубликовать ajam интерфейс на порту 8088 в режиме http, файл **/etc/asterisk/http.conf** должен выглядеть примерно так: | |
- | Если мы хотим опубликовать ajam интерфейс на порту **8088** в режиме http, файл **http.conf** должен выглядеть примерно так: | + | |
<file - http.conf> | <file - http.conf> | ||
Строка 63: | Строка 55: | ||
prefix=asterisk | prefix=asterisk | ||
</file> | </file> | ||
+ | ===== Настройка AJAM HTTPS ===== | ||
- | + | <note important>Настройка HTTPS не является обязательным условием. Этот раздел можно пропустить.</note> | |
- | + | Если мы хотим опубликовать ajam интерфейс на порту 4443 в режиме https, файл http.conf должен выглядеть примерно так: | |
- | ===== Настройка AJAM в режиме HTTPS ===== | + | |
- | Если мы хотим опубликовать ajam интерфейс на порту **4443** в режиме https, файл **http.conf** должен выглядеть примерно так: | + | |
Для астериск версии 1.6 | Для астериск версии 1.6 | ||
Строка 81: | Строка 72: | ||
sslenable=yes | sslenable=yes | ||
sslbindaddr=0.0.0.0 | sslbindaddr=0.0.0.0 | ||
- | sslbindport=8089 | + | sslbindport=4443 |
sslcert = /etc/asterisk/ssl/ajam.pem | sslcert = /etc/asterisk/ssl/ajam.pem | ||
</file> | </file> | ||
Строка 96: | Строка 87: | ||
tlsenable=yes | tlsenable=yes | ||
- | tlsbindaddr=0.0.0.0:8089 | + | tlsbindaddr=0.0.0.0:4443 |
tlscertfile= /etc/asterisk/ssl/ajam.pem | tlscertfile= /etc/asterisk/ssl/ajam.pem | ||
tlsprivatekey= /etc/asterisk/ssl/ajam.pem | tlsprivatekey= /etc/asterisk/ssl/ajam.pem | ||
Строка 110: | Строка 101: | ||
mv /tmp/foo.pem /etc/asterisk/ssl/ajam.pem | mv /tmp/foo.pem /etc/asterisk/ssl/ajam.pem | ||
</code> | </code> | ||
- | |||
- | |||
===== Настройка папки uploads ===== | ===== Настройка папки uploads ===== | ||
Если есть необходимость передавать на астериск какие-то файлы, например мы хотим обеспечить печать и отправку факсимильных сообщений, нужно настроить папку для приема таких файлов. | Если есть необходимость передавать на астериск какие-то файлы, например мы хотим обеспечить печать и отправку факсимильных сообщений, нужно настроить папку для приема таких файлов. | ||
- | В Asterisk есть специальный модуль который отвечает за прием файлов через AJAM интерфейс - **res_http_post.so**. Этот модуль не всегда устанавливается вместе с Asterisk по умолчанию, т.к. требует установленных пакетов **GMIME** и **GMIME-DEVEL**. После установки модуля необходимо настроить секцию post_mappings в файле **http.conf** | + | В Asterisk есть специальный модуль который отвечает за прием файлов через AJAM интерфейс - //res_http_post.so//. Этот модуль не всегда устанавливается вмесе с Asterisk по умолчанию, т.к. требует установленных пакетов **GMIME** и **GMIME-DEVEL**. После установки модуля необходимо настроить секцию post_mappings в файле http.conf |
Механизм работы res_http_post описан подробно в [[http://igorg.ru/2012/04/07/otpravka-fajla-na-asterisk/|блоге Игоря Гончаровского]]. | Механизм работы res_http_post описан подробно в [[http://igorg.ru/2012/04/07/otpravka-fajla-na-asterisk/|блоге Игоря Гончаровского]]. | ||
Строка 125: | Строка 114: | ||
; POST URL: /asterisk/uploads will put files in /var/lib/asterisk/uploads/. | ; POST URL: /asterisk/uploads will put files in /var/lib/asterisk/uploads/. | ||
uploads = /var/lib/asterisk/uploads</code> | uploads = /var/lib/asterisk/uploads</code> | ||
- | |||
- | при использовании этого способа загрузки файла на АТС, пользователю manager API следует добавить право **config на запись.** | ||
- | Пример для пользователя 1cami: | ||
- | <code>[1cami] | ||
- | ;**** | ||
- | write = call,reporting,originate,config | ||
- | ;****</code> | ||
- | |||
- | **PT1C_UPLOAD_DIR=/var/lib/asterisk/uploads** - этот важный параметр будет в дальнейшем использоваться в dialplan. У пользователя Asterisk должны быть права на чтение и запись в эту директорию! | ||
- | ===== Настройка iptables ===== | ||
- | |||
- | Не забудьте открыть на фаерволе порт 4443 или 8088 чтобы интерфейс ajam был доступен из вне. | ||
- | |||
- | Например для iptables под управлением CENTOS это делается добавлением строчки в файл /etc/sysconfig/iptables | ||
- | <code> | ||
- | -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 | ||
- | </code> | ||
===== Проверка работы и дополнительные настройки ===== | ===== Проверка работы и дополнительные настройки ===== | ||
Строка 156: | Строка 127: | ||
Server Enabled and Bound to 0.0.0.0:8088 | Server Enabled and Bound to 0.0.0.0:8088 | ||
- | HTTPS Server Enabled and Bound to 0.0.0.0:4433 | + | HTTPS Server Enabled and Bound to 0.0.0.0:4443 |
Enabled URI's: | Enabled URI's: | ||
Строка 173: | Строка 144: | ||
None. | None. | ||
</code> | </code> | ||
+ | |||
+ | Проверка настроек AMI: | ||
+ | <code> | ||
+ | manager show settings | ||
+ | </code> | ||
+ | Вывод команды | ||
+ | <code> | ||
+ | Global Settings: | ||
+ | ---------------- | ||
+ | Manager (AMI): Yes | ||
+ | Web Manager (AMI/HTTP): Yes | ||
+ | TCP Bindaddress: 0.0.0.0:5038 | ||
+ | HTTP Timeout (minutes): 60 | ||
+ | TLS Enable: No | ||
+ | TLS Bindaddress: Disabled | ||
+ | TLS Certfile: asterisk.pem | ||
+ | TLS Privatekey: | ||
+ | TLS Cipher: | ||
+ | Allow multiple login: Yes | ||
+ | Display connects: Yes | ||
+ | Timestamp events: No | ||
+ | Channel vars: | ||
+ | Debug: No | ||
+ | Block sockets: No </code> | ||
+ | | ||
+ | Проверка настроек менеджера Asterisk: | ||
+ | <code>sip*CLI> manager show user 1cami | ||
+ | |||
+ | username: 1cami | ||
+ | secret: <Set> | ||
+ | acl: yes | ||
+ | read perm: call,user,cdr,all | ||
+ | write perm: call,reporting,originate,all | ||
+ | displayconnects: yes</code> | ||
**Окончательная проверка**: | **Окончательная проверка**: | ||
Строка 183: | Строка 188: | ||
Значит со стороны Asterisk все настроено правильно. | Значит со стороны Asterisk все настроено правильно. | ||
- | ===== Оповещения для 1С (UserEvent) ===== | + | Не забудьте открыть на фаерволе порт 4443 или 8088 чтобы интерфейс ajam был доступен из вне. |
- | Часть оповещений для 1С отправляются средствами приложения UserEvent, необходимо, чтобы этот модуль был подгружен: | + | |
- | <code>CLI> module show like app_userevent.so | + | Например для iptables под управлением CENTOS это делается добавлением строчки в файл /etc/sysconfig/iptables |
- | Module Description Use Count | + | <code> |
- | app_userevent.so Custom User Event Application 0 | + | -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT |
- | 1 modules loaded</code> | + | -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4443 -j ACCEPT |
- | + | </code> | |
- | + | ||
- | ===== Настройка логирования звонков ===== | + | |
- | + | ||
- | В качестве Backend рекомендуем использовать **MySQL через ODBC.**\\ | + | |
- | Отличная инструкция по настройке - | + | |
- | [[http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/installing_configuring_odbc.html|Installing and Configuring ODBC]]\\ | + | |
- | [[doc:1cajam:astcastomize_v6:odbc|Пример настроек **MySQL через ODBC**]]\\ | + | |
- | ==== Call Detail Record (CDR) ==== | + | |
- | Логирование должно быть разрешено. | + | |
- | Файл **cdr.conf** | + | |
- | <file - cdr.conf> | + | |
- | [general] | + | |
- | + | ||
- | ; Значение по уполчанию "yes" | + | |
- | ;enable=yes | + | |
- | </file> | + | |
- | + | ||
- | Для сокращения количества обращений к серверу Asterisk, мы также рекомендуем добавить оповещение о добавлении CDR записи через AJAM интерфейс. | + | |
- | Для этого необходимо включить опцию в файле настроек. | + | |
- | <file - cdr_manager.conf> | + | |
- | ; | + | |
- | ; Asterisk Call Management CDR | + | |
- | ; | + | |
- | [general] | + | |
- | enabled = yes | + | |
- | </file> | + | |
- | Таким образом после запроса записей за период, все новые записи о звонках будут добавляться динамически в историю при поступлении соответствующего эвента. | + | |
- | ==== Asterisk Channel Event Logging (CEL) ==== | + | |
- | + | ||
- | Логирование должно быть разрешено. | + | |
- | <file - cel.conf> | + | |
- | [general] | + | |
- | + | ||
- | enable=yes | + | |
- | apps=ALL | + | |
- | events=ALL | + | |
- | </file> | + | |
===== Полезные ссылки ===== | ===== Полезные ссылки ===== | ||
* [[http://habrahabr.ru/company/myasterisk/blog/130325/|Про безопасность]] | * [[http://habrahabr.ru/company/myasterisk/blog/130325/|Про безопасность]] | ||
Строка 234: | Строка 201: | ||
- | [[astpanel:ats:asterisk_v6|Обратно к основной инструкции...]] | ||
===== Комментарии ===== | ===== Комментарии ===== | ||
~~DISQUS~~ | ~~DISQUS~~ |