[OpenSIPS-Users] RFC 3581 "received=" on via when rport present in REGISTER request

Bobby Smith bobby.smith at gmail.com
Wed May 26 01:56:30 CEST 2010


I found this post that is similar to the problem I'm having:

http://www.openser.org/pipermail/users/2008-August/000176.html

Specifically this section:

>>* But RFC 3581 says that:*>>* 4.  Server Behavior*>>*    The server behavior specified here affects the transport processing*>>*    defined in Section 18.2 of SIP [1].*>>*    When a server compliant to this specification (which can be a proxy*>>*    or UAS) receives a request, it examines the topmost Via header field*>>*    value.  If this Via header field value contains an "rport" parameter*>>*    with no value, it MUST set the value of the parameter to the source*>>*    port of the request.  This is analogous to the way in which a server*>>*    will insert the "received" parameter into the topmost Via header*>>*    field value.  In fact, the server MUST insert a "received" parameter*>>*    containing the source IP address that the request came from, even if*>>*    it is identical to the value of the "sent-by" component.  Note that*>>*    this processing takes place independent of the transport protocol.

*The problem I'm experiencing is that on a Cisco 7960 IP phone, there
is a nat setting that processes the value of the received parameter in
the
via on a REGISTER response and notes that as valid for subsequent
requests with the request URI's port DIFFERENT than that of the
contact port.  For example:

U 2010/05/25 19:43:58.196780 24.30.9.224:16513 -> 69.61.97.113:5060
REGISTER sip:1.2.3.4 SIP/2.0.
Via: SIP/2.0/UDP 192.168.0.1:5060;branch=z9hG4bK057bee3c.
From: <sip:user at 1.2.3.4 <sip%3Auser at 1.2.3.4>
>;tag=001c58f1032e006c28023bfc-599bbfde.
To: <sip:user at 1.2.3.4 <sip%3Auser at 1.2.3.4>>.
Call-ID: 001c58f1-032e0004-19c5f689-5971526b at 192.168.0.13.
Max-Forwards: 70.
Date: Tue, 25 May 2010 23:43:58 GMT.
CSeq: 119 REGISTER.
User-Agent: Cisco-CP7960G/8.0.
Contact: <sip:user at 1.2.3.4:5060
;transport=udp>;+sip.instance="<urn:uuid:00000000-0000-0000-0000-001c58f1032e>";+u.sip!
model.ccm.cisco.com="7".
Content-Length: 0.
Expires: 120.
.


U 2010/05/25 19:43:58.198578 69.61.97.113:5060 -> 24.30.9.224:16513
SIP/2.0 200 OK.
Via: SIP/2.0/UDP 1.2.3.4;branch=z9hG4bK057bee3c;rport=16513.
From: <sip:user at 1.2.3.4 <sip%3Auser at 1.2.3.4>
>;tag=001c58f1032e006c28023bfc-599bbfde.
To: <sip:user at 1.2.3.4 <sip%3Auser at 1.2.3.4>
>;tag=73928404c1df6c95e5850a715820bdcb.f5a7.
Call-ID: 001c58f1-032e0004-19c5f689-5971526b at 192.168.0.13.
CSeq: 119 REGISTER.
Contact: <sip:user at 1.2.3.4:5060;transport=udp>;expires=45;received="sip:
1.2.3.4:16513".
Server: OpenSIPS (1.6.1-notls (x86_64/linux)).
Content-Length: 0.


I need that received to also be appended to the Via header.  Is there a
correct way, or a "quick and dirty" way of doing this?

The problem is on an inbound INVITE, the 200 OK contact has the port 16513
(which should be correct, because we're dealing with NAT), and so the ACK
RURI is formed with this port, but the Cisco UA throws the message out
because the port in the RURI isn't "correct" for it.



Thanks for the help.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.opensips.org/pipermail/users/attachments/20100525/f142dfad/attachment.htm 


More information about the Users mailing list