8(499)-709-97-83
Работаем с 8:00 до 19:00

Причины разъединения канала или Hangup Cause Code

  • 27 февраля 2015

В данной статье мы рассмотрим причины разъединения телефонных вызовов и сигнализацию, которая используется для этого. Это будет полезно как для ISDN, так и для тех кто пользуется Asterisk AMI. Протоколом сигнализации в данном случае будет выступать протокол Q.931.

Протокол Q.931 это сигнальный протокол встроенный в Integrated Services Digital Network (ISDN), так же используется в VoIP. Протокол Q.931 участвует в установке и разрыве телефонных соединений.

Протокол Q.931 используется для передачи и получения сигнальных сообщений в цифровых системах передачи данных. Сообщения протокола Q.931 включают в себя сообщения об установке вызова, о ходе вызова, сообщения о разрыве вызова. В этой статье мы рассмотри причины и коды ошибок при разъединении вызовов.

Что с подвигло написать данную статью?

Работая с Asterisk AMI, при получении/отправки события HangUp мы получаем/отправляем Cause Code, т.е. причины по которым вызов завершается. В таблице ниже приведены все Cause Code используемые в ISDN телефонии, которые соответствуют протоколу Q.931 (спасибо WiKi), и в сопоставлении к ним приведены Cause Code, которые используются в AMI (столбец AMI Cause). В столбце "SIP ответ" приведены ответы SIP протокола, с подобными причинами завершения вызова.

Данные описания Cause Code мы использовали при написании программ, для того чтобы понимать по какой причине не проходит тот или иной вызов.


Пример события Hangup

Event: Hangup
Privilege: call,all
Channel: SIP/5060-0000016d
Uniqueid: 1454068650.606
Calleridnum: 5060
Calleridname: "VoipNotes"
Cause: 16

Т.е. ниже будет показано, что значат цифры в строке Cause.

HexDecОписаниеAMI CauseSIP ответ
 0x00 Неопределенная ошибка (Cause not defined) NOT DEFINED
 0x11 Номер не найден (Номера не существует) (Unallocated or unassigned number) UNALLOCATED 404, 485, 604
 0x22 Нет маршрута к указанной транзитной сети (No route to specified transmit network) NO ROUTE TRANSIT NET
 0x33 Нет маршрута до указанного номера (No route to destination) NO ROUTE DESTINATION 420
 0x44 Отправка определенной тоновой информации (Send special information tone)
 0x55 В дозвоне ошибочный префикс транка (Misdialled trunk prefix) MISDIALLED TRUNK PREFIX
 0x66 Канал не поддерживается (Channel unacceptable) CHANNEL UNACCEPTABLE
 0x77 Вызов направлен в указанный канал (Call awarded and being delivered in an established channel) CALL AWARDED DELIVERED
 0x88 Префикс 0 вызван, но не разрешён (Prefix 0 dialed but not allowed)
 0x99 Префикс 1 вызван, но не разрешён (Prefix 1 dialed but not allowed)
 0xA10 Префикс 1 не вызван, но требуется (Prefix 1 not dialed but required)
 0xB11 Получено больше цифр, чем разрешено, вызов обрабатывается (More digits received than allowed, call is proceeding)
 0x1016 Нормальное завершение вызова (Normal call clearing) NORMAL CLEARING
 0x1117 Вызываемый номер занят (User busy) USER BUSY 486, 600
 0x1218 Нет ответа (No user responding) NO USER RESPONSE 408
 0x1319 Нет сигнализации от пользователя, нет ответа (User Alerted, No answer from user) NO ANSWER 480, 483
 0x1521 Вызов отклонен (Call rejected) CALL REJECTED 401, 403, 407, 603
 0x1622 Номер изменился (Number changed to number in diagnostic field) NUMBER CHANGED 410
 0x1723 Оплата за счёт вызываемого абонента отклонена (Reverse charging rejected)
 0x1824 Звонок приостановлен (Call suspended)
 0x1925 Звонок возобновлён (Call resumed)
 0x1A26 Невыбранная абонентом очистка (Non-selected user clearing)
 0x1B27 Направление не обслуживается (Destination out of order) DESTINATION OUT OF ORDER 502
 0x1C28 Неверный формат номера или неполный адрес (Invalid number format or incomplete address) INVALID NUMBER FORMAT 484
 0x1D29 Функциональная возможность отклонена сетью (EKTS facility rejected by network) FACILITY REJECTED 501
 0x1E30 Ответ на сообщение "ЗАПРОС СОСТОЯНИЯ" (Response to STATUS ENQUIRY) RESPONSE TO STATUS ENQUIRY
 0x1F31 Нормальное состояние, не уточнено (Normal, unspecified) NORMAL UNSPECIFIED
 0x2133 Схема вышла из строя (Circuit out of order)
 0x2234 Нет схемы доступа/канала (No circuit/channel available) NORMAL CIRCUIT CONGESTION
 0x2335 Направление недостижимо (Destination unattainable)
 0x2436 Вышло из строя (Out of order)
 0x2537 Вырождающийся сервис (Degraded service)
 0x2638 Сеть вышла из строя (Network out of order) NETWORK OUT OF ORDER 500
 0x2739 Уровень транзитных задержек не может быть достигнут (Transit delay range cannot be achieved)
 0x2840 Уровень пропускной способности не может быть достигнут (Throughput range cannot be achieved)
 0x2941 Временная неработоспособность (Temporary failure) NORMAL TEMPORARY FAILURE 409
 0x2A42 Сетевое оборудование перегружено (Switching equipment congestion) SWITCH CONGESTION 5xx
 0x2B43 Доступ к информации отклонен (Access information discarded) ACCESS INFO DISCARDED
 0x2C44 Запрашиваемая схема/канал не доступны (Requested circuit channel not available) REQUESTED CHAN UNAVAIL
 0x2D45 Упреждение (Preempted) PRE EMPTED
 0x2E46 Приоритетный вызов блокирован (Precedence call blocked)
 0x2F47 Ресурс недоступен (Resource unavailable, unspecified)
 0x3149 Запрашиваемая услуга недоступна (Quality of service unavailable)
 0x3250 Нет подписки на запрошенную услугу (Requested facility not subscribed) FACILITY NOT SUBSCRIBED
 0x3351 Оплата за счёт вызываемого абонента не разрешена (Reverse charging not allowed)
 0x3452 Исходящие вызовы закрыты (Outgoing calls barred) OUTGOING CALL BARRED
 0x3553 Исходящие вызовы закрыты в пределах закрытой абонентской группы (Outgoing calls barred within CUG)
 0x3654 Входящие вызовы закрыты (Incoming calls barred) INCOMING CALL BARRED
 0x3755 Входящие вызовы ограничены в пределах закрытой абонентской группы (Incoming calls barred within CUG)
 0x3856 Нет подписки на услугу ожидания вызова (Call waiting not subscribed)
 0x3957 Возможности переноса информации не санкционированы (Bearer capability not authorized) BEARERCAPABILITY NOTAUTH
 0x3A58 Возможности переноса информации в данный момент недоступны (Bearer capability not presently available) BEARERCAPABILITY NOTAVAIL 488, 606
 0x3F63 Сервис или опция недоступны (Service or option not available, unspecified)
 0x4165 Возможности переноса информации не реализованы (Bearer service not implemented) BEARERCAPABILITY NOTIMPL
 0x4266 Тип канала не поддерживается (Channel type not implemented) CHAN NOT IMPLEMENTED
 0x4367 Выбор транзитной сети не проддерживается (Transit network selection not implemented)
 0x4468 Сообщение не поддерживается (Message not implemented)
 0x4569 Затребованная услуга не реализована (Requested facility not implemented) FACILITY NOT IMPLEMENTED
 0x4670 Доступны только ограниченные возможности переноса цифровой информации (Only restricted digital information bearer capability is available)
 0x4F79 Сервис или опция неприменимы, не определено (Service or option not implemented, unspecified)
 0x5181 Неверное значение идентификатора вызова (Invalid call reference value) INVALID CALL REFERENCE
 0x5282 Указанный канал не существует (Identified channel does not exist)
 0x5383 Присутствует приостановленный звонок, но этот вызов не идентифицирован (A suspended call exists, but this call identity does not)
 0x5484 Идентификатор вызова уже используется (Call identity in use)
 0x5585 Нет приостановленных вызовов (No call suspended)
 0x5686 Вызов, имеющий затребованный идентификатор звонка, был очищен (Call having the requested call identity has been cleared)
 0x5787 Вызываемый абонент не является членом закрытой абонентской группы (Called user not member of CUG)
 0x5888 Несовместимый адресат (Incompatible destination) INCOMPATIBLE DESTINATION
 0x5989 Адрес назначения отсутствует и услуга прямого вызова не подписана (Non-existent abbreviated address entry)
 0x5A90 Запись несуществующего сокращённого адреса (Destination address missing, and direct call not subscribed)
 0x5B91 Выбрана неверная транзитная сеть (использование в пределах страны) (Invalid transit network selection (national use))
 0x5C92 Неверная возможность параметра 93 — отсутствует обязательный информационный элемент (Invalid facility parameter 93 Mandatory information element is missing)
 0x5D93 Несуществующий тип сообщения или не применим (Message type non-existent or not implemented)
 0x5F95 Неверное сообщение (Invalid message, unspecified) INVALID MSG UNSPECIFIED
 0x6096 Отсутствует обязательный информационный элемент (Mandatory information element is missing) MANDATORY IE MISSING
 0x6197 Тип сообщения не существует (Message type non-existent or not implemented) MESSAGE TYPE NONEXIST
 0x6298 Неправильное сообщение (Message not compatible with call state or message type non-existent or not implemented) WRONG MESSAGE
 0x6399 Информационный элемен не существует или не указан (Information element nonexistent or not implemented) IE NONEXIST
 0x64100 Неверное содержимое информационного элемента (Invalid information element contents) INVALID IE CONTENTS
 0x65101 Сообщение не совместимо со статусом вызова (Message not compatible with call state) WRONG CALL STATE
 0x66102 Восстановлено по истечении таймера (Recover on timer expiry) RECOVERY ON TIMER EXPIRE 504
 0x67103 Несуществующий или не применимый параметр — передаётся (Parameter non-existent or not implemented – passed on) MANDATORY IE LENGTH ERROR
 0x6F111 Ошибка протокола (Protocol error, unspecified) PROTOCOL ERROR
 0x7F127 Пользователи не договорились о параметрах передачи данных (Internetworking, unspecified) INTERWORKING 4xx, 505, 6xx
 <0x80<128 Собственные диагностические коды. Обычно используются для передачи команд управления или обслуживания между мультиплексорами. (Proprietary diagnostic code. Typically used to pass proprietary control or maintenance messages between multiplexers)
 

* В зависимости от используемого оборудования, могут использоваться свои таблицы сопоставления.

Так же Cause Code можно использовать в диал планах Asterisk. Выглядеть это будет так:

exten => 5060,n,Hangup(17)

Вариант использования Cause Code в Zap канале:

[City-PRI]
exten => _89XXXXXXXXX,1,Dial(Zap/g1/${EXTEN})
exten => _89XXXXXXXXX,n,GotoIF($[${HANGUPCAUSE} = 2]?777,1])

exten => 777,1,[Ваш сценарий]

Cause Code можно указывать в виде строки:

exten => 5060,n,Hangup(USER_BUSY)
 
 
Powered by SEO CMS ver.: 23.1 TOP 2 (opencartadmin.com)
 
Метки: Cause Code, Asterisk