FreePBX v2

По мотивам очередного форумного топика. При выполнении вызовов через каналы самых различных типов, бывает полезно вовремя узнать о сбоях того или иного типа вовремя и устранить причину сбоя.

Каждый драйвер канала по окончанию звонка имеет собственный код причины окончания вызова, он преобразуется в Q.931 код, которым оперирует ядро астериска и приложение Dial. Код сохраняется в переменную HANGUPCAUSE, так же Dial формирует переменную DIALSTAUS, в которой сохраняется ограниченное количество статусов, достаточное в обычной ситуации (звонок завершен нормально, занято, таймаут вызова или канал не доступен).

FreePBX по-умолчанию распределяет звонки на основании переменной DIALSTATUS, при этом сбой может быть практически неотличим от ситуации когда вызываемый абонент занят.  В этой ситуации может быть необходимо предпринять специальные действия в случае специфичных отказов. Для этого служит штатная опция Monitor Trunk Failures в настройке транка. Для включения необходимо выставить чекбокс Enabled и указать имя AGI скрипта, отслеживающего сбои каналов. Пример такого скрипта приложен к данной записи.

Даже не зная о наличии такой опции можно в диалплане найти вызов AGI скрипта, выполняемом при определенном условии и догадаться о возможности выполнить свой код в случае отказа канала.

Скачать: freepbx_trunk_notify_failure.php (34 Kb)

trunk_failures_freepbx

Похожие сообщения:

автор igorg \\ теги: , , ,