Переменная PRI_CAUSE
Переменная PRI_CAUSE используется для передачи информации по линиям связи ISDN PRI о причине разрыва связи до ее фактического разрыва.
Переменная появилась, начиная с версии 1.0 сервера Asterisk.
Для каналов: Zap PRI, chan_capi и chan_misdn BRI есть возможность установки значения переменной PRI_CAUSE до выполнения команды Hangup(). Это приведет к тому, что в отправляемом сообщении PRI DISCONNECT будет установлен параметр CAUSE, который может быть использован телефонным коммутатором.
Определения кодов причин завершения соединения в сообщениях Q931:
- 1 = Номер не задействован (не обслуживается).
- 2 = нет маршрута в заданную транзитную сеть.
Этот код используется во внутрисетевом уровне обмена.
- 3 = нет маршрута к пункту назначения.
Этот код используется во внутрисетевом уровне обмена.
- 6 = недопустимый канал
- 16 = Нормальное завершение вызова.
В нормальных ситуациях, источником сообщения с данным кодом не может быть сеть.
- 17 = Пользователь занят.
- 18 = Пользователь не отвечает (не подключен телефонный аппарат).
- 21 = Вызов отвергнут.
- 22 = Номер изменился.
- 27 = Неисправность на пункте назначения.
- 29 = Запрос услуги отклонен.
- 38 = Неисправность сети.
- 41 = Временные неполадки.
Довольно полный списка кодов причин разъединения можно найти по адресу: http://www.cyber-cottage.co.uk/bathford/techinfo/Q931_Cause_definitions.pdf, а простенький калькулятор кодов на flash можно найти тут.
Если вызов проходит через Канадского оператора Group Telecom (он может проходить также и через других операторов). При разрыве связи со следующими значениями PRI_CAUSE, будут генерироваться следующие сообщения:
- 1 - The number you have reached is not in service, this is a recording.
- 2 - Быстрый сигнал "занято".
- 17 - Медленный сигнал "занято" (Обычный сигнал "занято")
- 28 - We're sorry your call cannot be completed as dialed.
В Великобритании, при использовании линий BT ISDN 2e/30e, установка кода завершения соединения - PRI_CAUSE будет приводить к генерации нижеприведенных сообщений. Обратите внимание, что вызывающий абонент услышит эти сообщения или гудки приблизительно через 8 секунд после того, как сервер Asterisk завершит соединение. Если абонент использует аналоговую линию от Бритиш Телеком, то на его стороне в этом случае будет произведена "переполюсовка" линии в момент отсоединения и сообщением/тональным сигналом, который появиться через эти 8 секунд. Если у Вас используется ZapHFC, то Вам может потребоваться использование команды 'Progress()' перед 'Hangup', для того, чтобы абонент услышал эти сообщения.
- 1 - "The number you have dialled has not been recognised. Please check and try again."
- 2 - Гудки, указывающие на недоступность номера.
- 17 - Короткие гудки.
- 18 - Гудки, указывающие на недоступность номера.
- 21 - Гудки, указывающие на недоступность номера.
- 22 - "The number you have dialled has not been recognised. Please check and try again."
- 27 - "This number is temporarily out of order. We are sorry for any inconvenience."
- 28 - Гудки, указывающие на недоступность номера.
- 38 - "This number is temporarily out of order. We are sorry for any inconvenience."
- 41 - "This number is temporarily out of order. We are sorry for any inconvenience."
Примеры:
exten => i,1,SetVar(PRI_CAUSE=1)
; поступил вызов на неправильный екстеншен - PRI_CAUSE=1 (Номер не обслуживается)
exten => i,2,Hangup
; отправка сообщения DISCONNECT.
; Это, во многих случаях, приведет к тому, что сеть сгенерирует для
; вызывающего абонента сообщения примерно такого вида:
"Набранный Вами номер не обслуживается..."
Ссылки по теме:
- Команда Hangup
- Команда Progress: Запрос включения индикатора прогресса соединения (подготовка к проигрыванию звукового файла до перевода линии в отвеченное состояние).
- Переменные в Asterisk
- Asterisk канал ZAP: Zaptel используется для организации ISDN PRI линий связи в Asterisk.
- ISDN, PRI
- Asterisk