On Thu, 02 Nov 2006 20:19:02 +0300
"German Myzovsky" <CGatePro@mx.ru> wrote:
> Oleg Shumsky wrote:
>
>>63330662041396251 IN IP4 83.102.163.30
> > Такой SDP приходит при re-INVITE (первый INVITE выглядит иначе). Первый >INVITE приходит в состоянии HOLD с объявлением всех кодеков, но без >открытия каналов. Получив от сервера 200-INVITE телефон должен закончить >транзакцию (ACK) и затем выдать re-INVITE с открытыми медиа-каналами. Этот >re-INVITE (CSeq: 1766) вы и приложили к письму. Проблема в том, что ACK >1765 не было, предыдущая транзакция не закончилась, а уже пендится новая. >Такая последовательность неприемлема, поэтому сервер возвращает 491-INVITE.
Чуть-чуть поправлю: такая последовательность действительно неприемлима, но она может возникнуть не из-за бага в клиенте (хотя в случае Нокии - это, видимо, баг) - а из-за задержек на сети: то есть клиент послал ACK, потом послал re-INVITE - а ACK где-то на каком-то рутере остановился чайку попить, ну и пришел позже.
Поэтому выдается 491 - это код "попробуй еще раз попозже". По идее, такой код может быть возвращен всегда, и любой правильный клиент (или сервер) должен на этот код подождать случайное время (0.1-1s) и перепослать запрос. А этого, видимо, не происходит.
491 может возникнуть, например, если обе стороны будут пробовать послать re-INVITE чтобы встатть на Hold - "одновременно". Если у Вас сигналы идут по полсекунды (весьма реально, если Вася с Машей на разных континентах), то такое вполне возможно.
Но обычно это таки да - свидетельство какого-то бага в клиенте: неверной последовательности команд или еще чего-нибудь такого.
> -- > > Герман Мызовский, > Tario Communications.
Sincerely,
Vladimir
Получено Thu Nov 02 21:34:51 2006
Этот архив был сгенерирован hypermail 2.1.8 : Fri 03 Nov 2006 - 01:12:56 MSK