ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

Проблемы и их решения Asterisk как такового

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

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

Сообщение kt72ru » 21 июн 2021, 08:41

Добрый день!

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

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

Сообщение Zavr2008 » 21 июн 2021, 10:53

Что мешает прямо читать SIP header и парсить regexp нужный текст и код сам?
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2158
Зарегистрирован: 27 янв 2011, 01:35

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

Сообщение ded » 21 июн 2021, 10:55

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

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

Так что ориентироваться можно именно на первичные ISDN коды. При Hangup можно пробовать указывать код в некоторых пределах, типа
exten => Hangup(99)
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение kt72ru » 21 июн 2021, 10:59

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

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

Сообщение kt72ru » 21 июн 2021, 11:01

вопрос простой, как и чем можно получить код отбоя из Reason: Q.850;cause=<cause code>.
kt72ru
 
Сообщений: 23
Зарегистрирован: 09 ноя 2016, 14:35

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

Сообщение ded » 21 июн 2021, 12:29

Вопрос не простой. 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}.
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00


Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 17

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH