Usm asterisk: различия между версиями
Нет описания правки |
Uscld2 (обсуждение | вклад) Нет описания правки |
||
| Строка 97: | Строка 97: | ||
2. В "UserSide" назначьте пользователям внутренние номера телефонов, при вызовах на которые должны отображаться уведомления | 2. В "UserSide" назначьте пользователям внутренние номера телефонов, при вызовах на которые должны отображаться уведомления | ||
3. | 3. Создайте каталог, например, /opt/userside и скопируйте туда архив с модулем. Разархивируйте. Перейдите в каталог с разархивированным модулем. | ||
<pre> | |||
cd /opt/userside/uem_asterisk | |||
</pre> | |||
4. | 4. Скопируйте пример конфигурации usm_asterisk.conf.example с именем usm_asterisk.conf и настройте в нем следующее: | ||
- Подключение к asterisk-manager | - Подключение к asterisk-manager | ||
| Строка 111: | Строка 114: | ||
Формат записи, например: ("from-gsm", "from-pstn", "from-external") | Формат записи, например: ("from-gsm", "from-pstn", "from-external") | ||
5. | 5. Скопируйте файл usm_asterisk.conf-supervisor в /etc/supervisor/conf.d/usm_asterisk.conf | ||
6. | 6. Выполните тестовый запуск модуля: | ||
<pre> | |||
sudo perl usm_asterisk.pl | |||
</pre> | |||
Убедитесь, что нет ошибок. Если ошибок нет — остановите (Ctrl+C). | |||
7. | 7. Перезапустите службу супервизора, чтобы он прочитал новую конфигурацию и перезапустил службы: | ||
<pre> | |||
sudo systemctl restart supervisor | |||
</pre> | |||
8. | 8. Убедитесь, что модуль работает (его состояние должно быть RUNNING): | ||
<pre> | |||
sudo supervisorctl status usm_asterisk | |||
<pre> | |||
9. Настройте демон newslog ''(/etc/newslog.conf)'' на ротацию логов модуля. Просто добавьте строку: | 9. Настройте демон newslog ''(/etc/newslog.conf)'' на ротацию логов модуля. Просто добавьте строку: | ||
| Строка 124: | Строка 136: | ||
/var/log/usm_asterisk.* 644 10 200 * GJC | /var/log/usm_asterisk.* 644 10 200 * GJC | ||
10. Проверьте работоспособность модуля, выполнив телефонный вызов. Контролировать работу модуля можно наблюдая за логами в реальном времени: | 10. Проверьте работоспособность модуля, выполнив телефонный вызов. Контролировать работу модуля можно наблюдая за логами в реальном времени (путь указан для примере, путь к вашим логам зависит от параметра ps_logpath файла конфигурации usm_asterisk.conf): | ||
<pre> | |||
tail -f /var/log/usm_asterisk.log | |||
</pre> | |||
== Запуск в Docker-окружении == | == Запуск в Docker-окружении == | ||
| Строка 139: | Строка 152: | ||
== Действия, необходимые для проведения отладки работы модуля usm_asterisk == | == Действия, необходимые для проведения отладки работы модуля usm_asterisk == | ||
* Остановите модуль используя супервизор: | |||
* | <pre> | ||
sudo supervisorctl stop usm_asterisk | |||
</pre> | |||
* Измените в конфигурационном файле модуля usm_asterisk.conf параметры $ps_consolelog = 1, если необходимо выводить лог на экран, а не в файл, и/или, если необходимо выводить ответы API-сервера, $ps_apianswlog = 1 | * Измените в конфигурационном файле модуля usm_asterisk.conf параметры $ps_consolelog = 1, если необходимо выводить лог на экран, а не в файл, и/или, если необходимо выводить ответы API-сервера, $ps_apianswlog = 1 | ||
* Запустите модуль вручную при помощи следующей команды. При запуске модуль выведет информацию об этом на экран. | * Запустите модуль вручную при помощи следующей команды. При запуске модуль выведет информацию об этом на экран. | ||
<pre> | |||
* После окончания отладочных работ остановите работу модуля Ctrl+C, измените параметры $ps_consolelog и $ps_apianswlog, установив их в 0, | perl usm_asterisk.pl | ||
</pre> | |||
* После окончания отладочных работ остановите работу модуля Ctrl+C, измените параметры $ps_consolelog и $ps_apianswlog, установив их в 0, запустите модуль используя супервизор: | |||
<pre> | |||
sudo supervisorctl start usm_asterisk | |||
</pre> | |||
'''Подключение к AMI Asterisk (для информации)''' | '''Подключение к AMI Asterisk (для информации)''' | ||
Текущая версия от 07:08, 3 сентября 2025
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. Создайте каталог, например, /opt/userside и скопируйте туда архив с модулем. Разархивируйте. Перейдите в каталог с разархивированным модулем.
cd /opt/userside/uem_asterisk
4. Скопируйте пример конфигурации usm_asterisk.conf.example с именем 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.conf-supervisor в /etc/supervisor/conf.d/usm_asterisk.conf
6. Выполните тестовый запуск модуля:
sudo perl usm_asterisk.pl
Убедитесь, что нет ошибок. Если ошибок нет — остановите (Ctrl+C).
7. Перезапустите службу супервизора, чтобы он прочитал новую конфигурацию и перезапустил службы:
sudo systemctl restart supervisor
8. Убедитесь, что модуль работает (его состояние должно быть RUNNING):
sudo supervisorctl status usm_asterisk <pre> 9. Настройте демон newslog ''(/etc/newslog.conf)'' на ротацию логов модуля. Просто добавьте строку: /var/log/usm_asterisk.* 644 10 200 * GJC 10. Проверьте работоспособность модуля, выполнив телефонный вызов. Контролировать работу модуля можно наблюдая за логами в реальном времени (путь указан для примере, путь к вашим логам зависит от параметра ps_logpath файла конфигурации usm_asterisk.conf): <pre> 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
- Остановите модуль используя супервизор:
sudo supervisorctl stop usm_asterisk
- Измените в конфигурационном файле модуля usm_asterisk.conf параметры $ps_consolelog = 1, если необходимо выводить лог на экран, а не в файл, и/или, если необходимо выводить ответы API-сервера, $ps_apianswlog = 1
- Запустите модуль вручную при помощи следующей команды. При запуске модуль выведет информацию об этом на экран.
perl usm_asterisk.pl
- После окончания отладочных работ остановите работу модуля Ctrl+C, измените параметры $ps_consolelog и $ps_apianswlog, установив их в 0, запустите модуль используя супервизор:
sudo supervisorctl start usm_asterisk
Подключение к 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) пришлите нам, предварительно заархивировав.