Страница 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 как отдельно летит
что такое "летит отдельно" не осознал ну совсем