[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