Хантинг¶
Хантинг (от англ. hunt) - процесс перебора маршрутов до тех пор, пока не установиться соединение или система не определит, что вызов доставить невозможно.
После того, как в процессе Маршрутизации создана таблица маршрутизации, Smartswitch начинает непосредственный хантинг.
Вызов вначале направляется на маршрут с наивысшим приоритетом.
Для этого вызывается исходящий Обработчик вызовов для каждого маршрута и ему передается строка для набора внутри переменной ${DIALSTRING}.
При вызове исходящего обработчика вызовов выполняется переход в РасширениеСтарт в этом обработчике.
Например, в соответствие с настройками маршрутизации требуется сделать вызов на пир "telco_gw1" с технологией H323 и с номером 380972568744.
Приложение вызовет исходящий обработчик вызовов, настроенный на пире "telco_gw1" и передаст ему переменную ${DIALSTRING}, которая будет содержать H323/telco_gw1380972568744.
Исходящий обработчик вызовов должен завершаться элементом МакроВыйти.
В противном случае не будет хантинга на следующий пир.
Если сгенерированный исходящий вызов отбивается, не соединившись, то генерируется вызов на второй по приоритету маршрут.
Генерация вызовов по таблице маршрутизации выполняется до тех пор, пока любое из следующих условий не выполнится:
- вызов был соединен
Вызов считается соединенным, если исходящий обработчик, устанавливает переменную DIALSTATUS равную ANSWER.
Эту переменную в исходящем обработчике вызовов обычно устанавливает приложение Набрать.
- все маршруты были опробованы
Система прошла по всем маршрутам и все равно не смогла соединить вызов.
- присутствовали атрибуты отвеченного вызова.
Этими атрибутами являются:
- присутствие контрольного сообщения об отвеченном вызове (например, Connect в H.323, 200 OK в SIP)
- присутствие контрольного сообщения о генерации КПВ (например, Alerting в H.323, Ringing в SIP)
- присутствие контрольного сообщения о принятии вызова к обработке конечным абонентом (например, Progress в H.323 и SIP).
Обычно по принятию такого сообщения оборудование открывает медиа-каналы и начинается коммутация медиа потоков.
- вызов был отбит терминатором с кодом отбоя, сигнализирующем о недоступности конечного абонента
В качестве такого кода выступают
- AST_CAUSE_USER_BUSY (абонент занят)
- AST_CAUSE_NO_ANSWER (абонент не поднял трубку)
- AST_CAUSE_NORMAL_CLEARING (абонент отбил звонок)
Подробнее о кодах отбоя написано в разделе Соответствие кодов завершения SIP/Asterisk/Q.931.
- вызов был отбит оргинатором
Сторона А может отменить вызов посреди процесса хантинга, положив трубку.
English translation