Здесь показаны различия между двумя версиями данной страницы.
doc:1cajam:astcastomize [2012/07/30 10:29] nb |
doc:1cajam:astcastomize [2014/11/14 22:32] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Настройка сервера Asterisk для работы с компонентой ====== | ||
- | ===== Создание пользователя управляющего Asterisk по manager api ===== | ||
- | Во первых необходимо создать пользователя для управления asterisk. | ||
- | Для этого достаточно внести соответствующую запись в /etc/asterisk/manager.conf, в примере ниже добавлен пользователь //1cami// с паролем //PASSWORD1cami//. | ||
- | Важно также в секцию general добавить опции указанные в примере. | ||
- | |||
- | <file - manager.conf> | ||
- | [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,cdr,user,config | ||
- | write = call,originate,reporting,command | ||
- | </file> | ||
- | |||
- | Для публикации ajam интерфейса, через который и работает компонент, необходимо после настройки manager.conf, настроить файл /etc/asterisk/http.conf | ||
- | Существует 2 варианта публикации. | ||
- | * С использованием протокола HTTP | ||
- | * С использованием протокола HTTPS | ||
- | |||
- | ===== Настройка AJAM в режиме HTTP ===== | ||
- | Если мы хотим опубликовать ajam интерфейс на порту 8088 в режиме http, файл http.conf должен выглядеть примерно так: | ||
- | |||
- | <file - http.conf> | ||
- | [general] | ||
- | enabled=yes | ||
- | enablestatic=yes | ||
- | bindaddr=0.0.0.0 | ||
- | bindport=8088 | ||
- | prefix=asterisk | ||
- | </file> | ||
- | |||
- | ===== Настройка AJAM в режиме HTTPS ===== | ||
- | Если мы хотим опубликовать ajam интерфейс на порту 4443 в режиме https, файл http.conf должен выглядеть примерно так: | ||
- | |||
- | Для астериск версии 1.6 | ||
- | |||
- | <file - http.conf> | ||
- | [general] | ||
- | enabled=yes | ||
- | bindaddr=0.0.0.0 | ||
- | bindport=8088 | ||
- | prefix=asterisk | ||
- | enablestatic=yes | ||
- | |||
- | sslenable=yes | ||
- | sslbindaddr=0.0.0.0 | ||
- | sslbindport=4443 | ||
- | sslcert = /etc/asterisk/ssl/ajam.pem | ||
- | </file> | ||
- | |||
- | Для астериск версии 1.8 и выше | ||
- | |||
- | <file - http.conf> | ||
- | [general] | ||
- | enabled=yes | ||
- | bindaddr=0.0.0.0 | ||
- | bindport=8088 | ||
- | prefix=asterisk | ||
- | enablestatic=yes | ||
- | |||
- | tlsenable=yes | ||
- | tlsbindaddr=0.0.0.0:4443 | ||
- | tlscertfile= /etc/asterisk/ssl/ajam.pem | ||
- | tlsprivatekey= /etc/asterisk/ssl/ajam.pem | ||
- | |||
- | </file> | ||
- | |||
- | Также для https режима необходимо сгенерировать сертификат, которым будут шифроваться передаваемые данные. | ||
- | Самый простой способ, это генерация самоподписанного сертификата на сервере Asterisk командой: | ||
- | |||
- | <code> 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 | ||
- | </code> | ||
- | |||
- | ===== Настройка папки uploads ===== | ||
- | Если есть необходимость передавать на астериск какие-то файлы, например мы хотим обеспечить печать и отправку факсимильных сообщений, нужно настроить папку для приема таких файлов. | ||
- | В 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/|блоге Игоря Гончаровского]]. | ||
- | |||
- | <code> | ||
- | [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</code> | ||
- | |||
- | ===== Проверка работы и дополнительные настройки ===== | ||
- | |||
- | В консоли сервера где установлен Asterisk выполняем следующую команду: | ||
- | <code> | ||
- | sudo asterisk -rx "http show status" | ||
- | </code> | ||
- | Если все настроено правильно, то ответ будет примерно такой: | ||
- | |||
- | <code>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. | ||
- | </code> | ||
- | |||
- | **Окончательная проверка**: | ||
- | Идем в браузере по адресу http://ipadress_asteriska:8088/asterisk/rawman?action=login&username=1cami&secret=PASSWORD1cami | ||
- | |||
- | Если в качестве результата получим строку: | ||
- | <code>Response: Success | ||
- | Message: Authentication accepted | ||
- | </code> | ||
- | Значит со стороны Asterisk все настроено правильно. | ||
- | |||
- | Не забудьте открыть на фаерволе порт 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> | ||
- | |||
- | |||
- | |||
- | ===== Полезные ссылки ===== | ||
- | * [[http://habrahabr.ru/company/myasterisk/blog/130325/|Про безопасность]] | ||
- | * [[doc:1cajam|SDK: Компонента связи 1C и Asterisk]] | ||
- | * [[http://igorg.ru/2012/04/07/otpravka-fajla-na-asterisk/|Отправка файла на asterisk]] | ||
- | |||
- | |||
- | ===== Комментарии ===== | ||
- | ~~DISQUS~~ | ||