Страница 1 из 1

Hangup vs SoftHangup

Добавлено: 30 окт 2021, 01:28
AndyBack
Столкнулся с такой ситуацией, когда с Астериска в АРИ прилетает 2 хангапа на канал:
- Soft Hangup Request. Cause = 127 (Internetworking, unspecified)
- Hangup Request. Cause = 16 (Normal call clearing)
По логике значение имеет только второй как нормальное завершение звонка. Однако, можно ли вообще игнорировать все Soft Hangup Request?
Чтение документации понимания не дало ввиду ее скупости на эту тему. Так и не понял когда возникает этот Soft Hangup Request, каково его назначение и что он делает... В АМИ он тоже прилетал.

Re: Hangup vs SoftHangup

Добавлено: 30 окт 2021, 02:16
ded
Его можно вызвать вручную из CLI например
CLI> channel request hangup <имя канала>

Текущее соединение - два плеча, если один из абонентов кладёт трубу - Hangup(16), то второе плечо закрывается тоже по Soft hangup.

Re: Hangup vs SoftHangup

Добавлено: 30 окт 2021, 02:19
AndyBack
Для чего его вызывать? Чем отличается от простого Hangup? Почему недостаточно одного события?

Понятно, что 2 события с разными кодами завершения портят всю логику: не понятно какой из cause использовать...

Re: Hangup vs SoftHangup

Добавлено: 30 окт 2021, 02:21
ded
Например рубить зависшие по какой-то причине каналы, через RTCP, по таймауту, или по отсутствию RTP.

Re: Hangup vs SoftHangup

Добавлено: 30 окт 2021, 02:25
AndyBack
Ну это понятно. Вопрос - можно ли безопасно игнорировать событие Soft Hangup Request? Всегда ли за ним придет обычный Hangup с нужным cause?

Re: Hangup vs SoftHangup

Добавлено: 30 окт 2021, 02:28
ded
AndyBack писал(а):Вопрос - можно ли безопасно игнорировать событие Soft Hangup Request?
Да. Его можно делать также с нужным release cause.
AndyBack писал(а):Всегда ли за ним придет обычный Hangup с нужным cause?
Нет.
Зависимость обратная (см. выше).

Re: Hangup vs SoftHangup

Добавлено: 30 окт 2021, 02:41
AndyBack
Спасибо. Что значит обратная зависимость? Я много раз видел обычный Hangup Request без всякого Soft Hangup Request. Я говорю о получаемых событиях в АРИ/АМИ.