Usm asterisk: различия между версиями
Uscld2 (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
(не показано 5 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
[[Usm_asterisk_EN|en]] | [[Usm_asterisk|ru]] | |||
'''USM_ASTERISK''' - модуль, взаимодействующий с Asterisk и обрабатывающий информацию о поступающих звонках абонентов | '''USM_ASTERISK''' - модуль, взаимодействующий с Asterisk и обрабатывающий информацию о поступающих звонках абонентов | ||
Строка 25: | Строка 27: | ||
== Возможности == | == Возможности == | ||
Для каждого | Для каждого пользователя указывается внутренний SIP-номер, который требуется контролировать. Например у пользователя на столе стоит аппаратный телефон, имеющий внутренний номер 5007 ''(либо программный телефон)''. Значит в учетной записи пользователя необходимо указать его номер 5007. | ||
[[Файл:20150719_05.PNG|thumb|800px|center]] | [[Файл:20150719_05.PNG|thumb|800px|center]] | ||
При поступлении звонка на номер | При поступлении звонка на номер пользователя - в браузер будет выведена информация о входящем звонке. При этом если по входящему номеру будет выполнен поиск в базе абонентов и, при нахождении, выведена информация по абоненту. | ||
[[Файл:20150719_04.PNG|thumb|375px|center]] | [[Файл:20150719_04.PNG|thumb|375px|center]] | ||
Строка 39: | Строка 41: | ||
[[Файл:20150719_02.PNG|thumb|479px|center]] | [[Файл:20150719_02.PNG|thumb|479px|center]] | ||
Уведомления выводятся по очереди и во всех открытых вкладках САП "UserSide" у | Уведомления выводятся по очереди и во всех открытых вкладках САП "UserSide" у пользователя | ||
[[Файл:20150719_03.PNG|thumb|373px|center]] | [[Файл:20150719_03.PNG|thumb|373px|center]] | ||
Строка 51: | Строка 53: | ||
[[Файл:2015_07_19_14_59_46.png|thumb|800px|center]] | [[Файл:2015_07_19_14_59_46.png|thumb|800px|center]] | ||
Для нескольких | Для нескольких пользователей возможно указание одинаковых контролируемых номеров. Но лучше этим не пользоваться, т.к. в отчете по звонкам будет трудно понять какому именно пользователю все-таки поступил звонок. | ||
== Настройка == | == Настройка == | ||
Строка 84: | Строка 86: | ||
'''Настройка UserSide''' | '''Настройка UserSide''' | ||
Убедитесь, что в конфигурационном файле | Убедитесь, что в конфигурационном файле ERP "UserSide" указан [[UserSide API Key|API-ключ]]. | ||
Далее этот ключ понадобится в файле настроек модуля usm_asterisk. | Далее этот ключ понадобится в файле настроек модуля usm_asterisk. | ||
Строка 97: | Строка 95: | ||
1. Для работы модулю требуются модули perl: EV, Asterisk::AMI, Time::Local, LWP::UserAgent, HTTP::Request::Common, FindBin | 1. Для работы модулю требуются модули perl: EV, Asterisk::AMI, Time::Local, LWP::UserAgent, HTTP::Request::Common, FindBin | ||
2. В | 2. В "UserSide" назначьте пользователям внутренние номера телефонов, при вызовах на которые должны отображаться уведомления | ||
3. Скопировать три файла ''(usm_asterisk.pl, usm_asterisk_control.pl, usm_asterisk.conf)'' в каталог, например: ''/usr/local/us_modules/usm_asterisk/'' | 3. Скопировать три файла ''(usm_asterisk.pl, usm_asterisk_control.pl, usm_asterisk.conf)'' в каталог, например: ''/usr/local/us_modules/usm_asterisk/'' | ||
Строка 130: | Строка 128: | ||
tail -f /var/log/usm_asterisk.log | tail -f /var/log/usm_asterisk.log | ||
== Запуск в Docker-окружении == | |||
Если Вы используете USERSIDE в Docker-окружении, то вам наверняка будет интересно запускать в отдельных Docker-контейнерах и внешние модули usm. | |||
Мы предоставляем docker-окружение для запуска модуля usm_asterisk (окружение не содержит файла модуля - его необходимо загрузить из личного кабинета самостоятельно). | |||
Загрузить docker-окружение можно по ссылке: https://github.com/userside/usm_asterisk-docker-env/releases | |||
== Действия, необходимые для проведения отладки работы модуля usm_asterisk == | |||
* Отключите запуск контроллера в CRON | * Отключите запуск контроллера в CRON | ||
Строка 140: | Строка 147: | ||
perl usm_asterisk.pl | perl usm_asterisk.pl | ||
* После окончания отладочных работ остановите работу модуля Ctrl+C, измените параметры $ps_consolelog и $ps_apianswlog, установив их в 0, активируйте запуск контроллера в CRON | * После окончания отладочных работ остановите работу модуля Ctrl+C, измените параметры $ps_consolelog и $ps_apianswlog, установив их в 0, активируйте запуск контроллера в CRON | ||
'''Подключение к AMI Asterisk (для информации)''' | '''Подключение к AMI Asterisk (для информации)''' | ||
Строка 158: | Строка 164: | ||
Response: Success Message: Authentication accepted | Response: Success Message: Authentication accepted | ||
Выполните входящий вызов, который поступит на группу | Выполните входящий вызов, который поступит на группу пользователей (Queue), после чего пользователь должен ответить и положить трубку. | ||
После окончания работы с AMI выполните: | После окончания работы с AMI выполните: | ||
Текущая версия от 17:42, 29 марта 2024
USM_ASTERISK - модуль, взаимодействующий с Asterisk и обрабатывающий информацию о поступающих звонках абонентов
Данный модуль является заменой устаревшему win-модулю us_asteriskcall
Рекомендации по настройке системы Asterisk
Общие данные
Язык модуля: Perl
Текущая версия: см. на странице: Модули
Минимальная версия Asterisk: 10.x
Статус модуля: Платный
Необходимые модули Perl:
EV Asterisk::AMI Time::Local LWP::UserAgent HTTP::Request FindBin
Возможности
Для каждого пользователя указывается внутренний SIP-номер, который требуется контролировать. Например у пользователя на столе стоит аппаратный телефон, имеющий внутренний номер 5007 (либо программный телефон). Значит в учетной записи пользователя необходимо указать его номер 5007.
При поступлении звонка на номер пользователя - в браузер будет выведена информация о входящем звонке. При этом если по входящему номеру будет выполнен поиск в базе абонентов и, при нахождении, выведена информация по абоненту.
Кроме абонентов выполняется поиск по телефонным номерам сотрудников
Уведомления выводятся по очереди и во всех открытых вкладках САП "UserSide" у пользователя
В разделе "Сообщения - Список звонков" можно просмотреть список всех звонков
Также в карточке абонента на вкладке "Тех.поддержка" видны все его звонки
Для нескольких пользователей возможно указание одинаковых контролируемых номеров. Но лучше этим не пользоваться, т.к. в отчете по звонкам будет трудно понять какому именно пользователю все-таки поступил звонок.
Настройка
Настройка Asterisk
В системе Asterisk для взаимодействия используется модуль Manager, который настраивается в файле /etc/asterisk/manager.conf
В этом файле необходимо добавить блок настроек для пользователя, от имени которого будет происходить взаимодействие между Asterisk и usm_asterisk
Пример блока, который необходимо вписать в файл manager.conf
[userside] secret = usm_asterisk_secret deny = 0.0.0.0/0.0.0.0 permit = 192.168.1.2/255.255.255.255 read = all,system,call,log,verbose,command,agent,user,config write = all,system,call,log,verbose,command,agent,user,config
Здесь: userside — имя пользователя usm_asterisk_secret — пароль 192.168.1.2 — адрес сервера, на котором функционирует модуль usm_asterisk
После выполнения этой команды необходимо войти в консоль asterisk и выполнить команду перезагрузки конфигурации
$ asterisk -r > reload > exit
Настройка UserSide
Убедитесь, что в конфигурационном файле ERP "UserSide" указан API-ключ.
Далее этот ключ понадобится в файле настроек модуля usm_asterisk.
Настройка модуля usm_asterisk
1. Для работы модулю требуются модули perl: EV, Asterisk::AMI, Time::Local, LWP::UserAgent, HTTP::Request::Common, FindBin
2. В "UserSide" назначьте пользователям внутренние номера телефонов, при вызовах на которые должны отображаться уведомления
3. Скопировать три файла (usm_asterisk.pl, usm_asterisk_control.pl, usm_asterisk.conf) в каталог, например: /usr/local/us_modules/usm_asterisk/
4. Указать настройки в файле usm_asterisk.conf
- Подключение к asterisk-manager - Подключение к api UserSide - Путь хранения логов, если нужно - В переменой $zastertype укажите значение в соответствии с используемой версией Asterisk: 1 - Asterisk == 11 (AMI v1) 2 - Asterisk <= 10 (AMI v1) 3 - Asterisk >= 12 (AMI v2) - Перечислите в значении переменой @zasterfromcontexts все транки, на которых необходима обработка входящих соединений. Формат записи, например: ("from-gsm", "from-pstn", "from-external")
5. В файле usm_asterisk_control.pl прописать правильный путь к perl (можно узнать выполнив which perl)
6. в CRON добавить строку, запускающую контроллер, например, каждые 2 минуты (снова полный путь к perl для вашей системы)
*/2 * * * * user /usr/local/bin/perl /usr/local/us_modules/usm_asterisk/usm_asterisk_control.pl >> /var/log/usm_asterisk-restart.log 2>&1
7. Дождаться выполнения контроллера, который запустит модуль на выполнение (либо можно запустить вручную: perl usm_asterisk.pl &)
8. После запуска должны создаться лог-файлы usm_asterisk.log и usm_asterisk.err - изучите их содержимое, чтобы убедиться в отсутствии ошибок. Так же будет создан файл usm_asterisk.pid в каталоге с файлами модуля.
9. Настройте демон newslog (/etc/newslog.conf) на ротацию логов модуля. Просто добавьте строку:
/var/log/usm_asterisk.* 644 10 200 * GJC
10. Проверьте работоспособность модуля, выполнив телефонный вызов. Контролировать работу модуля можно наблюдая за логами в реальном времени:
tail -f /var/log/usm_asterisk.log
Запуск в Docker-окружении
Если Вы используете USERSIDE в Docker-окружении, то вам наверняка будет интересно запускать в отдельных Docker-контейнерах и внешние модули usm.
Мы предоставляем docker-окружение для запуска модуля usm_asterisk (окружение не содержит файла модуля - его необходимо загрузить из личного кабинета самостоятельно).
Загрузить docker-окружение можно по ссылке: https://github.com/userside/usm_asterisk-docker-env/releases
Действия, необходимые для проведения отладки работы модуля usm_asterisk
- Отключите запуск контроллера в CRON
- Остановите запущенное приложение и убедитесь, что ни одна копия приложения не запущена
ps ax | grep usm_asterisk
- Измените в конфигурационном файле модуля usm_asterisk.conf параметры $ps_consolelog = 1, если необходимо выводить лог на экран, а не в файл, и/или, если необходимо выводить ответы API-сервера, $ps_apianswlog = 1
- Запустите модуль вручную при помощи следующей команды. При запуске модуль выведет информацию об этом на экран.
perl usm_asterisk.pl
- После окончания отладочных работ остановите работу модуля Ctrl+C, измените параметры $ps_consolelog и $ps_apianswlog, установив их в 0, активируйте запуск контроллера в CRON
Подключение к AMI Asterisk (для информации)
telnet 127.0.0.1 5038 | tee ami.log
Аутентификация (скопируйте текст и вставьте в сессию AMI, предварительно изменив имя и пароль):
Action: login Username: admin Secret: passwd1234
Дважды нажмите Enter
При правильном входе должны увидеть:
Response: Success Message: Authentication accepted
Выполните входящий вызов, который поступит на группу пользователей (Queue), после чего пользователь должен ответить и положить трубку. После окончания работы с AMI выполните:
Action: logoff
Результат (файл ami.log) пришлите нам, предварительно заархивировав.