Us asterisk: различия между версиями

Материал из WiKi - UserSide
Нет описания правки
(Перенаправление на Usm asterisk)
 
Строка 1: Строка 1:
'''US_ASTERISK''' - модуль, взаимодействующий с Asterisk и обрабатывающий информацию о поступающих звонках абонентов
#REDIRECT [[usm_asterisk]]
 
Данный модуль является заменой устаревшему win-модулю [[us_asteriskcall]]
 
'''[[Рекомендации по настройке системы Asterisk]]'''
 
== Общие данные ==
 
'''Язык модуля:''' Perl
 
'''Текущая версия:''' см. на странице: [[Модули]]
 
'''Минимальная версия Asterisk:''' 10.x
 
'''Статус модуля:''' [http://userside.ua/price.php Платный]
 
Необходимые модули Perl:
EV
Asterisk::AMI
Time::Local
LWP::UserAgent
HTTP::Request
FindBin
 
== Возможности ==
 
Для каждого оператора указывается внутренний SIP-номер, который требуется контролировать. Например у оператора на столе стоит аппаратный телефон, имеющий внутренний номер 5007 ''(либо программный телефон)''. Значит в учетной записи оператора необходимо указать его номер 5007.
 
[[Файл:20150719_05.PNG|thumb|800px|center]]
 
При поступлении звонка на номер оператора - в браузер будет выведена информация о входящем звонке. При этом если по входящему номеру будет выполнен поиск в базе абонентов и, при нахождении, выведена информация по абоненту.
 
[[Файл:20150719_04.PNG|thumb|375px|center]]
 
[[Файл:20150719_01.PNG|thumb|800px|center]]
 
Кроме абонентов выполняется поиск по телефонным номерам сотрудников
 
[[Файл:20150719_02.PNG|thumb|479px|center]]
 
Уведомления выводятся по очереди и во всех открытых вкладках САП "UserSide" у оператора
 
[[Файл:20150719_03.PNG|thumb|373px|center]]
 
В разделе "Сообщения - Список звонков" можно просмотреть список всех звонков
 
[[Файл:20151129-145926.png|thumb|800px|center]]
 
Также в [[Карточка абонента|карточке абонента]] на вкладке "Тех.поддержка" видны все его звонки
 
[[Файл:2015_07_19_14_59_46.png|thumb|800px|center]]
 
Для нескольких операторов возможно указание одинаковых контролируемых номеров. Но лучше этим не пользоваться, т.к. в отчете по звонкам будет трудно понять какому именно оператору все-таки поступил звонок.
 
== Настройка  ==
 
'''Настройка Asterisk'''
 
В системе Asterisk для взаимодействия используется модуль Manager, который настраивается в файле ''/etc/asterisk/manager.conf''
 
В этом файле необходимо добавить блок настроек для пользователя, от имени которого будет происходить взаимодействие между Asterisk и us_asterisk
 
Пример блока, который необходимо вписать в файл manager.conf
 
[userside]
secret = us_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 — имя пользователя
us_asterisk_secret — пароль
192.168.1.2 — адрес сервера, на котором функционирует модуль us_asterisk
После выполнения этой команды необходимо войти в консоль asterisk и выполнить команду перезагрузки конфигурации
 
$ asterisk -r
> reload
> exit
 
 
'''Настройка UserSide'''
 
Убедитесь, что в конфигурационном файле САП "UserSide", который расположен по адресу ''/main/config/config.php'', присутствует следующий параметр:
 
$zapikey = "key";
 
key — это ваш секретный ключ для доступа к функциям API САП "UserSide". Вместо этого слова нужно вписать что-то более надежное, например сгенерированный пароль.
 
Далее этот ключ понадобится в файле настроек модуля us_asterisk.
 
 
'''Настройка модуля us_asterisk'''
 
1. Для работы модулю требуются модули perl: EV, Asterisk::AMI, Time::Local, LWP::UserAgent, HTTP::Request::Common, FindBin
2. В САП "UserSide" назначьте операторам внутренние номера телефонов, при вызовах на которые должны отображаться уведомления
 
3. Скопировать три файла ''(us_asterisk.pl, us_asterisk_control.pl, us_asterisk.conf)'' в каталог, например: ''/usr/local/us_modules/us_asterisk/''
 
4. Указать настройки в файле us_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. В файле us_asterisk_control.pl прописать правильный путь к perl (можно узнать выполнив which perl)
 
6. в CRON добавить строку, запускающую контроллер, например, каждые 2 минуты ''(снова полный путь к perl для вашей системы)''
*/2    *      *      *      *      user    /usr/local/bin/perl /usr/local/us_modules/us_asterisk/us_asterisk_control.pl >> /var/log/us_asterisk-restart.log 2>&1
 
7. Дождаться выполнения контроллера, который запустит модуль на выполнение ''(либо можно запустить вручную: perl us_asterisk.pl &)''
 
8. После запуска должны создаться лог-файлы us_asterisk.log и us_asterisk.err - изучите их содержимое, чтобы убедиться в отсутствии ошибок. Так же будет создан файл us_asterisk.pid в каталоге с файлами модуля.
 
9. Настройте демон newslog ''(/etc/newslog.conf)'' на ротацию логов модуля. Просто добавьте строку:
 
/var/log/us_asterisk.*        644  10    200  *    GJC
 
10. Проверьте работоспособность модуля, выполнив телефонный вызов. Контролировать работу модуля можно наблюдая за логами в реальном времени:
 
tail -f /var/log/us_asterisk.log
 
 
'''Действия, необходимые для проведения отладки работы модуля us_asterisk'''
 
* Отключите запуск контроллера в CRON
* Остановите запущенное приложение и убедитесь, что ни одна копия приложения не запущена
ps ax | grep us_asterisk
* Измените в конфигурационном файле модуля us_asterisk.conf параметры $ps_consolelog = 1, если необходимо выводить лог на экран, а не в файл, и/или, если необходимо выводить ответы API-сервера, $ps_apianswlog = 1
* Запустите модуль вручную при помощи следующей команды. При запуске модуль выведет информацию об этом на экран.
perl us_asterisk.pl
* После окончания отладочных работ остановите работу модуля Ctrl+C, измените параметры $ps_consolelog и $ps_apianswlog, установив их в 0, активируйте запуск контроллера в CRON
 
 
'''Подключение к AMI Asterisk (для информации)'''
 
telnet 127.0.0.1 5038
 
Аутентификация (скопируйте текст и вставьте в сессию AMI, предварительно изменив имя и пароль):
 
Action: login
Username: admin
Secret: passwd1234
 
Дважды нажмите Enter
 
При правильном входе должны увидеть:
 
Response: Success Message: Authentication accepted
 
Выполните входящий вызов, который поступит на группу операторов (Queue), после чего оператор должен ответить и положить трубку.
После окончания работы с AMI выполните:
 
Action: logoff
 
Результат скопируйте в файл и пришлите нам.

Текущая версия от 20:48, 1 января 2017

Перенаправление на: