[sr-dev] [ openser-Bugs-1545216 ] Diversion header(s) parsing

SourceForge.net noreply at sourceforge.net
Mon Jun 29 11:45:46 CEST 2009


Bugs item #1545216, was opened at 2006-08-23 13:16
Message generated for change (Comment added) made by sjmuller
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=1545216&group_id=139143

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: core
Group: ver devel
Status: Open
Resolution: None
Priority: 3
Private: No
Submitted By: Bogdan-Andrei Iancu (bogdan_iancu)
Assigned to: Nobody/Anonymous (nobody)
Summary: Diversion header(s) parsing

Initial Comment:
The current implementation of the parse_diversion()
header parses only the first diversion header (even if
more than one header can be present).
Also the function cannot cope with multiple URIs (comma
separated) in the body of the same header since
internally it is using the parse_to() function that
expects only one URI.

----------------------------------------------------------------------

Comment By: Sam J. M. (sjmuller)
Date: 2009-06-29 11:45

Message:
Yep it's still a problem.

I'm using kamailio v.1.4.4 and it causes some disagreement with many pstn
gateways in my architecture.

. Suffixes entered in parameters'module does not apply.
. Parsing is not working.

** kamailio logs :

Jun 29 11:33:00 ser0 kamailio[1469]: 
-CFU------------------------------------- 
Jun 29 11:33:00 ser0 kamailio[1469]: -> call forwarding unconditional
found to 0183659999
Jun 29 11:33:00 ser0 kamailio[1469]: DBG:avpops:ops_delete_avp: 1 avps
were removed 
Jun 29 11:33:00 ser0 kamailio[1469]: DBG:avpops:ops_pushto_avp: 1 avps
were processed 
Jun 29 11:33:00 ser0 kamailio[1469]: 
-CFU-ACC--------------------------------- 
Jun 29 11:33:00 ser0 kamailio[1469]: DBG:avpops:ops_delete_avp: 1 avps
were removed 
Jun 29 11:33:00 ser0 kamailio[1469]: -> acc state: cfu
Jun 29 11:33:00 ser0 kamailio[1469]: -> CFU rewrited, search new contact
right now
Jun 29 11:33:00 ser0 kamailio[1469]:    callee_cli=0183659999
callee_fwd=0183659996 callee_cfu=0183659999 rU=0183659999
caller_cli=0170645720
Jun 29 11:33:00 ser0 kamailio[1469]: -> append the diversion header
Jun 29 11:33:00 ser0 kamailio[1469]: DBG:core:parse_headers:
flags=40000000 
Jun 29 11:33:00 ser0 kamailio[1469]: DBG:core:parse_headers:
flags=40000000 
Jun 29 11:33:00 ser0 kamailio[1469]: DBG:core:pv_get_diversion: no
Diversion header 
Jun 29 11:33:00 ser0 kamailio[1469]: DBG:core:parse_headers:
flags=40000000 
Jun 29 11:33:00 ser0 kamailio[1469]: DBG:core:pv_get_diversion: no
Diversion header 
Jun 29 11:33:00 ser0 kamailio[1469]: DBG:core:parse_headers:
flags=40000000 
Jun 29 11:33:00 ser0 kamailio[1469]: DBG:core:pv_get_diversion: no
Diversion header 
Jun 29 11:33:00 ser0 kamailio[1469]: -> div uri=<null> - div
privacy=<null> - div reason=<null>

** sip trace :

U 2009/06/29 11:33:00.856070 77.246.81.132:5060 -> 77.246.81.140:5060
INVITE sip:0183659999 at 77.246.81.140:5060;transport=udp SIP/2.0.
Record-Route:
<sip:77.246.81.132;lr=on;ftag=166b2b53fb3fb285o0;nat=yes;did=aa7.f5133295>.
Via: SIP/2.0/UDP 77.246.81.132;branch=z9hG4bKf2b2.0950c4d5.0.
Via: SIP/2.0/UDP
192.168.100.12:5060;rport=5060;received=82.229.235.185;branch=z9hG4bK-e21913cd.
From: "0170645720" <sip:0170645720 at sip.720.fr>;tag=166b2b53fb3fb285o0.
To: <sip:0183659996 at sip.720.fr>.
Call-ID: f7e91deb-236ca0cd at 192.168.100.12.
CSeq: 102 INVITE.
Max-Forwards: 49.
Contact: "0170645720" <sip:0170645720 at 82.229.235.185:5060>.
Expires: 240.
User-Agent: Linksys/SPA942-6.1.3(a).
Content-Length: 298.
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, PRACK, REFER.
Supported: 100rel, replaces.
Content-Type: application/sdp.
Diversion: <sip:0183659996 at sip.720.fr>;reason=unconditional.
Privacy: none.
Remote-Party-ID: 0170645720
<sip:0170645720 at 82.229.235.185>;party=calling;privacy=off;screen=yes.
P-Asserted-Identity: "0170645720" <sip:0170645720 at sip.720.fr>.
Session-Expires: 120.
.
v=0.
o=- 92989 92989 IN IP4 192.168.100.12.
s=-.
c=IN IP4 77.246.81.133.
t=0 0.
m=audio 36164 RTP/AVP 18 8 0 101.
a=rtpmap:18 G729a/8000.
a=fmtp:18 annexb=yes.
a=rtpmap:8 PCMA/8000.
a=rtpmap:0 PCMU/8000.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-15.
a=ptime:20.
a=sendrecv.
a=nortpproxy:yes.

** related code :

loadmodule "diversion.so"
modparam("diversion", "suffix", ";privacy=none;counter=1")
...

                if (!search("Diversion:.*"))
                {
                        xlog("L_INFO", "-> append the diversion header");
                        add_diversion("unconditional");
                }
                else
                {
                        xlog("L_INFO", "-> Diversion header already found,
forbidden to forward one more time");
                        sl_send_reply("403", "Forbidden");
                        exit;
                }

                # diversion control
                xlog("L_INFO", "-> div uri=$di - div privacy=$dip - div
reason=$dir");

                # return at the beginning of the callee searching
                route(3);
                exit;
        }



----------------------------------------------------------------------

Comment By: Henning Westerholt (henningw)
Date: 2008-11-11 16:04

Message:
This bug is now more then two years old. Is this still a problem?

Henning

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=1545216&group_id=139143



More information about the sr-dev mailing list