[SIPForum-discussion] Dropping 'Via' headers a non-compliance?
Ross Golder
ross at golder.org
Wed Sep 2 06:54:31 UTC 2009
Hi,
I'm trying to connect a Cisco 7942G SIP handset from my home office to
my company's SIP-based phone system, a SpliceCom Maximiser, via a local
SIP proxy. However, SIP responses from the Maximiser appear to have
removed the 'Via' headers (and branch tag) necessary for my SIP proxy to
return SIP responses to the handset.
AFAICS, the response is not compliant with SIP RFC3261. I have reported
this to the company that support the Maximiser, asking them to report it
upstream to SpliceCom. They (currently) don't seem to be taking my word
for it, and are instead trying to tell us we need to use a 'SIP trunk',
which would require us to buy extra trunk licenses and engineering time
(of course!), and would end up giving us a far more complicated solution
to maintain. IMHO, this is neither correct nor necessary, so I've
decided to ask for a second opinion here on this forum, before pushing
them harder to report/fix what I think is just a software bug in the
SpliceCom's SIP implementation.
To elaborate, I have the Cisco phone (10.0.0.2) connected directly to my
PC's ethernet/LAN port (10.0.0.1), with SIP traffic (port 5060)
transparently routed via a local SIP proxy on the PC (running
'siproxd'), which adds it's own 'Via' header, then routes the SIP
request out via the wireless network interface (172.16.1.30) to my
router. My router (a NetGear DG384) performs SIP ALG to convert
'172.16.1.30' in the request to my public IP address and directs the SIP
request to the office router's public IP address. The office router
forwards all SIP and RTP traffic (UDP ports 5060 and 7070-7089) to the
the Maximiser's internal address.
As a control measure, I have Line 2 configured to register to another
'standard' SIP service (Diamondcard). UDP dumps show responses coming
back with all 'Via' headers present, and the phone registers and works
correctly via the SIP proxy.
However, SIP responses from the Maximiser appear to only retain the
topmost 'Via' header (the one back to the proxy). As I understand it
according to section 8.2.6.2 of RFC3261 it should retain them all...
"The Via header field values in the response MUST equal the Via header
field values in the request and MUST maintain the same ordering."
Therefore, the response that reaches my proxy is missing the necessary
Via header (and it's 'branch' id) required to route the response back to
the Cisco handset - and registration of Line 1 fails. The SIP proxy
drops the packet giving an error effectively stating that it ran out of
Via headers.
If anyone could help me by confirming/denying my understanding of the
protocol and my theory that the Maximiser is not behaving in a
SIP-compliant fashion. If I'm not mistaken I will push harder for this
to be reported upstread to SpliceCom to correct this in their software.
Thanks in advance,
--
Ross
More information about the discussion
mailing list