[Siproxd-users] Via: rport rewriting in siproxd 0.7.1
Status: Beta
Brought to you by:
tries
From: Peter Apian-B. <ap...@pa...> - 2009-02-04 23:21:03
|
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:XX...@ca...>;tag=mkqua To: <sip:XX...@ca...> Call-ID: tmvgrhodrsbtzae@mylocalname CSeq: 935 REGISTER Contact: <sip:XXX@84.56.215.75> 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] |