Maxim Sobolev wrote:
Iñaki Baz Castillo wrote:
El Viernes, 28 de Noviembre de 2008, Iñaki Baz Castillo escribió:
If you want we could ask in SIP-implementors, but I've already debated
about this exact question there and the conclusion was that the SDP
cannot
change during the same early-dialog (183...200 with same To_tag).
Best regards.
I've already open a new thread in SIP-implementors. I hope I could
convince you ;)
https://lists.cs.columbia.edu/pipermail/sip-implementors/2008-November/020994.html
Iñaki,
You can try the attached patch, which makes B2BUA use different To tag
OOPS, sorry, the patch in the previous message is incomplete. Attached
is the correct one.
Regards,
--
Maksym Sobolyev
Sippy Software, Inc.
Internet Telephony (VoIP) Experts
T/F: +1-646-651-1110
Web: http://www.sippysoft.com
MSN: [EMAIL PROTECTED]
Skype: SippySoft
Index: UasStateRinging.py
===================================================================
RCS file:
/home/ncvs/ssp_livecd/SSP/ssp_port/files/ssp/sippy/UasStateRinging.py,v
retrieving revision 1.12
diff -d -u -r1.12 UasStateRinging.py
--- UasStateRinging.py 24 Sep 2008 23:18:56 -0000 1.12
+++ UasStateRinging.py 4 Dec 2008 07:53:07 -0000
@@ -27,6 +27,12 @@
if body != None and self.ua.on_local_sdp_change != None and
body.needs_update:
self.ua.on_local_sdp_change(body, lambda x:
self.ua.recvEvent(event))
return None
+ if self.ua.lSDP != None:
+ # If we send 180 after 183 or different 183 after another
+ # 183, update local session tag, so that different early
+ # dialogs will get different dialog ids.
+ self.ua.uasResp.getHFBody('to').setTag('%s-%d' %
(self.ua.lTag, self.ua.lTagGen))
+ self.ua.lTagGen += 1
self.ua.lSDP = body
if self.ua.p1xx_ts == None:
self.ua.p1xx_ts = event.rtime
@@ -39,6 +45,12 @@
if body != None and self.ua.on_local_sdp_change != None and
body.needs_update:
self.ua.on_local_sdp_change(body, lambda x:
self.ua.recvEvent(event))
return None
+ if self.ua.lTagGen > 0 and self.ua.lSDP != None and
str(self.ua.lSDP) != str(body):
+ # If session description in 200 differs from session
+ # description in preceding 1xx update local session tag
+ # to make UAC aware of that.
+ self.ua.uasResp.getHFBody('to').setTag('%s-%d' %
(self.ua.lTag, self.ua.lTagGen))
+ self.ua.lTagGen += 1
self.ua.lSDP = body
self.ua.sendUasResponse(code, reason, body, self.ua.lContact)
if self.ua.expire_timer != None:
Index: UA.py
===================================================================
RCS file: /home/ncvs/ssp_livecd/SSP/ssp_port/files/ssp/sippy/UA.py,v
retrieving revision 1.27
diff -d -u -r1.27 UA.py
--- UA.py 15 Oct 2008 08:58:20 -0000 1.27
+++ UA.py 4 Dec 2008 07:53:07 -0000
@@ -45,6 +45,7 @@
dead_cbs = None
rCSeq = None
lTag = None
+ lTagGen = 0
lUri = None
rUri = None
cId = None
_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev