Страница 1 из 2
Сброс звонка по приходящему пакету
Добавлено: 20 ноя 2013, 12:47
FWulf
Добрый день всем. Возник вопрос, можно ли на астериске при исходящем звонке сбрасывать прилетает пакет 181 Call Is Being Forwarded? Как это можно реализовать?
Re: Сброс звонка по приходящему пакету
Добавлено: 20 ноя 2013, 12:53
ded
Я думаю можно, по анализу заголовков SIP пакетов. Есть полный дебаг SIP такого пакета?
Re: Сброс звонка по приходящему пакету
Добавлено: 20 ноя 2013, 13:06
FWulf
Звонок выглядит так:
SIP/SDP Request: INVITE sip:*******4800@*******208.10, with session description
SIP Status: 181 Call Is Being Forwarded
SIP/SDP Status: 183 Session Progress, with session description
RTP PT=ITU-T G.711 PCMA, SSRC=0x1FEDBA46, Seq=30782, Time=179360
RTP PT=ITU-T G.711 PCMA, SSRC=0x8731402, Seq=45, Time=7200
SIP Status: 480 Temporarily Unavailable
SIP Request: ACK sip:*******4800@*******208.10
Re: Сброс звонка по приходящему пакету
Добавлено: 20 ноя 2013, 13:52
FWulf
Так что можно как то это ловить?
Re: Сброс звонка по приходящему пакету
Добавлено: 20 ноя 2013, 13:59
ded
Да, ловить и вырезать значение 181 в заголовках SIP Status:
и по нему оправлять на Hangup().
Примеры Вам надо найти самому.
Re: Сброс звонка по приходящему пакету
Добавлено: 20 ноя 2013, 14:04
FWulf
Спасибо. Только вопрос какой функцией смотреть заголовок? SIP_HEADER? Можете подсказать.
Re: Сброс звонка по приходящему пакету
Добавлено: 20 ноя 2013, 14:14
ded
Да.
Код: Выделить всё
CLI> core show function SIP_HEADER
ns20*CLI>
-= Info about function 'SIP_HEADER' =-
[Syntax]
SIP_HEADER(<name>[,<number>])
[Synopsis]
Gets the specified SIP header
[Description]
Since there are several headers (such as Via) which can occur multiple
times, SIP_HEADER takes an optional second argument to specify which header with
that name to retrieve. Headers start at offset 1.
Примеры -
http://www.voip-info.org/wiki/view/Aste ... sip_header
Re: Сброс звонка по приходящему пакету
Добавлено: 20 ноя 2013, 14:17
FWulf
Спасибо. Будем пробовать.
Re: Сброс звонка по приходящему пакету
Добавлено: 20 ноя 2013, 15:53
FWulf
прочитал про функцию. Там написано:
SIP_HEADER() gives you only access to headers of the initial INVITE request (and not, for example, any progress messages (which may contain call rating information) or the final BYE message)
Я так понимаю тут можно выдирать только из пакетов invite или bye, но из других нельзя, вроде так? Если так то пакет 181 как отдельно летит, а вот как его поймать?
Re: Сброс звонка по приходящему пакету
Добавлено: 20 ноя 2013, 20:37
virus_net
то что прочитал - это гуд, но насколько я понимаю читал на
http://www.voip-info.org/
но это не официальная дока и выходят новые версии астера, а инфа там не всегда обновляется
FWulf писал(а):вроде так?
исходя из
https://wiki.asterisk.org/wiki/dosearch ... SIP_HEADER:
Gets the specified SIP header from an incoming INVITE message.
но при этом:
This documentation was imported from Asterisk Version Unknown
так что:
ты попробовал ? не работает ? как пробовал ?
FWulf писал(а):а вот как его поймать?
сдается мне что не пробовал и уже пытаешся решить проблему, которой возможно нет
FWulf писал(а): Если так то пакет 181 как отдельно летит
что такое "летит отдельно" не осознал ну совсем