|
|
(не показаны 2 промежуточные версии этого же участника) |
Строка 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, путь хранения логов, если нужно)''
| |
| | |
| 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
| |
| | |
| Результат скопируйте в файл и пришлите нам.
| |