[reSIProcate] Request Line construction problems during shuffle re-invite in Dialog::makerequest()

Kovar, William (Bill) bkovar at avaya.com
Mon Nov 20 10:48:51 CST 2006


Robert,
 
Thanks for you explanation, which is what I had originally suspected but
wanted some validation. It seems that the proxy (one does exist) is
forwarding the re-Invite correctly, but the UAS on the other side was
not handling the re-Invite correctly.
 
Your info helps me to identify the exact source of the problem.
 
Thanks!!
 
Bill Kovar
bkovar at avaya.com
Avaya, Inc.
(732) 852-2609
 


  _____  

	From: Robert Sparks [mailto:rjsparks at nostrum.com] 
	Sent: Monday, November 20, 2006 10:57 AM
	To: Kovar, William (Bill)
	Cc: Scott Godin; resiprocate-devel at list.sipfoundry.org
	Subject: Re: [reSIProcate] Request Line construction problems
during shuffle re-invite in Dialog::makerequest()
	
	
	With what you've sent so far (you gave me the scenario with that
link, but not the exact bits, so I'm still having to guess a little), 
	DUM is doing exactly the right thing (and cannot do anything
different without violating the spec). To check my guesses:

	1) The initial invite has a record route header field when it
reaches the recipient and when the 200 OK reaches the caller.
	     Thus there is a non-empty route set established at each
end, containing exactly the one proxy.
	2) The 200 OK to the re-INVITE putting the call on hold has the
Contact you show below.

	Unless you are in a network where 1.0.1.0 makes sense, Alice's
UA has returned something that breaks the call. There's nothing
	the proxy or Bob's UA can or should do to try to fix it. Any
subsequent request from Bob must go to the proxy based on the Route 
	header field and then will probably die (unless 1.0.1.0 is
routable from the proxy's perspective). Alice's UA is obligated to put
	a value in that Contact that can be used to get back to it (or
something sharing it's dialog state).

	The presence of a user part or not is not relevant. Alice's UA
is quite free to provide a URI with no user part - it just has to route
back correctly.

	RjS

	On Nov 20, 2006, at 8:37 AM, Kovar, William ((Bill)) wrote:


		Robert,
		 
		An accurate example of the msg flow is the Call Hold Sip
Service example found at the tech-invite website at:
http://www.tech-invite.com/Ti-sip-service-1.html#fig0
		 
		Using the above scenario as a reference, my problem
specifically happens between msgs 6-8.
		Msg 6 is the 200 OK back from Alice in response to a
HOLD request from Bob. In this response I see a Contact header in the
form Contact:  <sip:1.0.1.0>
		 
		DUM uses this value as the req-Uri remote target and
sends ACK
		 
		Msg 8 is a re-Invite to go off Hold. DUM's
provideOffer() method constructs the Invite using the mRemoteTarget
variable to construct the RLine in the Dialog class. The INVITE looks
like this:
		INVITE sip:1.0.1.0 SIP/2.0
		 
		DUM eventually generates a 408 after 32 seconds on this
Invite.
		 
		So my question becomes: I want the Invite to point to
Alice but the Invite that DUM creates has no user part. And it has no
user part because the last Contact Header update (msg 6, 200 OK) changed
it to have no user part, which DUM cached. Is this causing the 408 or is
there something else.
		 
		 
		Bill Kovar
		bkovar at avaya.com
		Avaya, Inc.
		(732) 852-2609
		 
		
		

  _____  

			From: Robert Sparks
[mailto:rjsparks at nostrum.com] 
			Sent: Friday, November 17, 2006 11:56 PM
			To: Kovar, William (Bill)
			Cc: Scott Godin;
resiprocate-devel at list.sipfoundry.org
			Subject: Re: [reSIProcate] Request Line
construction problems during shuffle re-invite in Dialog::makerequest()
			
			
			Bill - it will help if you actually give us the
flow messages.
			
			
			A Contact that looks like
			Contact: <sip:10.0.0.1> is quite legal in a 200
to an INVITE.
			
			
			Are you seeing something that looks like
			Contact: <sip:@10.0.0.1>? That one isn't legal.
			
			
			There are no differences in the requirements for
what goes into the Contact for an initial INVITE
			or any subsequent reINVITE in that dialog.
			
			
			
			
			
			
			On Nov 17, 2006, at 6:31 PM, Kovar, William
((Bill)) wrote:


				Scott,
				 
				In trying to identify who is violating
the SIP spec....
				I send an Invite which gets answered
with a 200 that has a malformed Contact header, i.e. no userinfo part.
				DUM sends the ACK to the malformed URI
successfully.
				I Send an re-Invite using provideOffer()
and Req-URI for the Invite is bad. The Invite times-out.
				 
				This is really baffling me as to who is
breaking the spec because some have told me that the Contact header in
this form is OK except for the initial invite.
				 
				Anybody have an opinion??
				 
				Bill Kovar
				bkovar at avaya.com
				Avaya, Inc.
				(732) 852-2609
				 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20061120/ae2d5509/attachment.htm>


More information about the resiprocate-devel mailing list