Обратно к основной инструкции...
Для работы панели телефонии Asterisk требуется настроить отслеживание состояния каналов абонентов АТС. Необходимо в плане набора использовать стандартный приоритет hint.
callcounter - опция должна быть установлена в значение «yes». Это позволит Asterisk предоставлять информацию о состоянии SIP устройств.
[general] callcounter=yes
[internal-hint] exten => 231,hint,SIP/160-231 ;231 - добавочный номер; 160-231 - имя учетной записи SIP (sip.conf) exten => 232,hint,SIP/232 ;232 - добавочный номер; 232 - имя учетной записи SIP (sip.conf)
При верной настройке АТС по запросу core show hints в CLI консоли должна возвращаться таблица хинтов.
~ # asterisk -rx'core show hints' | grep 'internal-hint' 231@internal-hint : SIP/160-231 State:Idle Watchers 0 232@internal-hint : SIP/232 State:Unavailable Watchers 0
Если АТС настроена НЕ верно:
CLI> core show hints There are no registered dialplan hints
Отладка в панели телефонии Asterisk вернет ответ:
<ajax-response> <response type='object' id='unknown'><generic response='Follows' privilege='Command' actionid='ef898' opaque_data='There are no registered dialplan hints --END COMMAND--' /></response> </ajax-response>
Статусы в 1С отображаются согласно полученным оповещениям «ExtensionStatus»:
Response: Success ActionID: 1 Message: Extension Status Exten: 231 Context: internal-hint Hint: SIP/60-120-231 Status: 0
Статусные коды, возвращаемые в параметре «“Status»:
-1 = Екстеншен не найден 0 = Idle 1 = Используется (In Use) 2 = Занят (Busy) 4 = Не доступен (Unavailable) 8 = Звонит (Ringing) 16 = On Hold
При поступлении событий «BridgeEnter» и «DialBegin» мы можем изменять статус сотрудника в списке и отображать с кем он разговаривает. Обнуление статуса, очистка собеседника, происходит при получении событий «ExtensionStatus», когда статус устройства переходит в значение «Idle».
Если при настройке АТС в AMI НЕ поступают события «ExtensionStatus», то это может быть связано с некорректной настройкой hints в extensions.conf. Пример для номеров 110 и 120:
[internal](+) exten => 110,hint,SIP/110 exten => 120,hint,SIP/120
Или с некорректной настройкой sip.conf:
[general](+) callcounter=yes callevents=yes
Или с некорректной настройкой manager.conf. Необходимы набор привилегий:
read = call,cdr,user write = call,originate,reporting