Via: rport rewriting in siproxd 0.7.1
Peter Apian-Bennewitz <[email protected]> Wed, 04 Feb 2009 23:33:53 +0100
| Newsgroups | gmane.network.siproxd |
|---|---|
| Message-ID | <[email protected]> |
Hi,
problem:
login with twinkle via siproxd to callcentric.com fails with "network
failure" on callcentric's side. Running twinkle without siproxd works.
SIP provider's answer:
callcentric's support says siproxd is not following RFC3581 regarding
the rport parameter. As far as I understand RFC3581 this is correct,
even if the Via header in question is only the second Via (not the
topmost) that callcentric's server sees.
data:
The header of the outgoing REQUEST SIP packet with the MD5 hash, leaving
my gateway, after siproxd processing, looks like:
Via: SIP/2.0/UDP
84.56.215.75:5060;branch=z9hG4bKb508ec9eb039c974bd1cccba6117cc33
Via: SIP/2.0/UDP 192.168.0.11;rport;branch=z9hG4bKcykecwos
From: <sip:XXX-KJl9fpgXnFDcozqZ/[email protected]>;tag=mkqua
To: <sip:XXX-KJl9fpgXnFDcozqZ/[email protected]>
Call-ID: tmvgrhodrsbtzae@mylocalname
CSeq: 935 REGISTER
Contact: <sip:[email protected]>
Proxy-Authorization: Digest username="XXX", realm="callcentric.com",
nonce="88a438c17e962decdb3091df2c300169", uri="sip:callcentric.com",
response="XXXX", algorithm=MD5
Allow: INVITE
Allow: ACK
Allow: BYE
Allow: CANCEL
Allow: OPTIONS
Allow: PRACK
Allow: REFER
Allow: NOTIFY
Allow: SUBSCRIBE
Allow: INFO
Allow: MESSAGE
Max-forwards: 69
Expires: 1800
User-agent: Twinkle/1.2
Content-Length: 0
(with userid details set to XXX). After that there's a 30 second
silence, followed by a "network failure" packet.
My question is specific about the "rport" parameter in the second Via
header. RFC3581 says:
"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."
Which sounds to me (SIP newbie, UNIX/network veteran) like siproxd
should add an rport number to the incoming packet sent by twinkle.
Furthermore, shouldn't "use_rport = 3" add a string "rport=" before the
UDP port number ? At least the RFC seems to give that as example. - ?
Whether callcentric's server should stall at a Via header that doesn't
matter to it may be another question, but before I nag them I would like
to be sure that what my siproxd sends them is correct.
any insight much appreciated,
(meaculpa if this is RTFM, I tried to check the mail archives on
sourceforge)
thanks
Peter
--
pab-opto, Freiburg, Germany, http://www.pab-opto.de
[see web page to check digital email signature]
------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com