VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Получение HANGUPCAUSE из Reason: Q.850

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
kt72ru
Сообщения: 23
Зарегистрирован: 09 ноя 2016, 13:35

Получение HANGUPCAUSE из Reason: Q.850

Сообщение kt72ru »

Добрый день!

Подскажите пожалуйста, как можно получить код отбоя из поля Reason: Q.850;cause=<cause code>?
Пробовал читать переменную HANGUPCAUSE, но возвращается не тот код что присылает оператор. Оператор присылает 99, а астериск возвращает 29. Опция use_q850_reason включена. Версия Asterisk 13.18.2
Аватара пользователя
Zavr2008
Сообщения: 2211
Зарегистрирован: 27 янв 2011, 00:35
Контактная информация:

Re: Получение HANGUPCAUSE из Reason: Q.850

Сообщение Zavr2008 »

Что мешает прямо читать SIP header и парсить regexp нужный текст и код сам?
Российские E1 шлюзы Alvis. Модернизация УПАТС с E1,Подключение к ИС "Антифрод" E1 PRI/SS#7 УВР Телестор, Грифин и др..
ded
Сообщения: 15619
Зарегистрирован: 26 авг 2010, 19:00

Re: Получение HANGUPCAUSE из Reason: Q.850

Сообщение ded »

Вопрос не понятен.
Ответы протокола SIP - response codes - вторичны по отношению к ISDN кодам,
99 - Information element nonexistent or not implemented.
29 - Facility rejected.
https://downloads.avaya.com/elmodocs2/i ... (isdn).htm

https://www.3cx.com/pbx/sip-responses/

Так что ориентироваться можно именно на первичные ISDN коды. При Hangup можно пробовать указывать код в некоторых пределах, типа
exten => Hangup(99)
kt72ru
Сообщения: 23
Зарегистрирован: 09 ноя 2016, 13:35

Re: Получение HANGUPCAUSE из Reason: Q.850

Сообщение kt72ru »

Я бы с удовольствием спарсил и разобрал, но нужного инструмента не нашел. SIP_HEADER читает только INVITE.
kt72ru
Сообщения: 23
Зарегистрирован: 09 ноя 2016, 13:35

Re: Получение HANGUPCAUSE из Reason: Q.850

Сообщение kt72ru »

вопрос простой, как и чем можно получить код отбоя из Reason: Q.850;cause=<cause code>.
ded
Сообщения: 15619
Зарегистрирован: 26 авг 2010, 19:00

Re: Получение HANGUPCAUSE из Reason: Q.850

Сообщение ded »

Вопрос не простой. 11 лет назад такой вопрос возникал,
https://asterisk-dev.digium.narkive.com ... ause-codes
и на него был получен ответ:
The only reason we implemented the passing back of the
raw SIP code in the dialplan is that the conversion to cause is lossy.
That is, several SIP status codes all map back to a single ISUP cause code,
and there are legitimate reasons for wanting to know which status code
was received. What SHOULD happen is that if use_q850_reason is set, then
the cause sent to the core should simply be the cause code in this header,
which you should be able to read in ${HANGUPCAUSE}.
Те есть несколько статусов SIP мапятся на один и тот же ISDN (ISUP) код, и, если включена поддержка Q.850, в ядро должен отправляться тот код отбоя, который содержиться в переменной ${HANGUPCAUSE}.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH