[OpenSIPS-Users] RTPEngine - garbage collector deletes active branch

sevpal sevpal at aol.com
Sat Mar 12 05:33:10 CET 2016


Hi, don’t send the rtpengine_delete command and let rtpengine handle it 
automatically. The logic is that, in a multi-branch call only one can 
answer, therefore there is only one established session even though multiple 
'offers' . You can really only delete an established session,  sending the 
delete will delete that session.  Only send the delete when missed call to 
free the proxy quickly. This is how I handle it anyway, the unanswered 
offers are just discarded.

-----Original Message----- 
From: Julian Santer
Sent: Tuesday, March 08, 2016 5:47 AM
To: users at lists.opensips.org
Subject: [OpenSIPS-Users] RTPEngine - garbage collector deletes active 
branch


Hi guys,

we are implementing OpenSips 2.1.2 with rptengine version 4.3.0.0-git 
git-master-926d9d3.
Now we got a problem on calls with multiple branches.
We call rtpengine_manage("replace-origin replace-session-connection 
ICE=remove via-branch=extra");
The extra-id is containing the call ID and the branch ID

Here a example with 2 branches:

INVITE 1. branch 
(ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBcBWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-0):
Mar  8 11:14:25  Received command 'offer' from 1.2.3.4:59038
Mar  8 11:14:25  Dump for 'offer' from 1.2.3.4:59038: { "sdp": 
"v=0#015#012o=CiscoSystemsSIP-GW-UserAgent 4454 7726 IN IP4 
2.3.4.5#015#012s=SIP
Call#015#012c=IN IP4 2.3.4.6#015#012t=0 0#015#012m=audio 59482 RTP/AVP 18 8 
0 4 125 101#015#012c=IN IP4 2.3.4.6#015#012a=rtpmap:18
G729/8000#015#012a=fmtp:18 annexb=yes#015#012a=fmtp:4 
bitrate=5.3;annexa=no#015#012a=rtpmap:125 X-CCD/8000#015#012a=rtpmap:101
telephone-event/8000#015#012a=fmtp:101 0-16#015#012", "ICE": "remove", 
"replace": [ "origin", "session-connection" ], "call-id":
"ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBc ...
Mar  8 11:14:25  ... BWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-", "via-branch": 
"ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBcBWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-0",
"received-from": [ "IP4", "1.2.3.5" ], "from-tag": "D40356B0-22E3", 
"command": "offer" }
Mar  8 11:14:25  Creating new call
Mar  8 11:14:25  set FILLED flag for stream 2.3.4.6:59482
Mar  8 11:14:25  set FILLED flag for stream 2.3.4.6:59483
Mar  8 11:14:25  Replying to 'offer' from 1.2.3.4:59038
Mar  8 11:14:25  Response dump for 'offer' to 1.2.3.4:59038: { "sdp": 
"v=0#015#012o=CiscoSystemsSIP-GW-UserAgent 4454 7726 IN IP4 
1.2.3.6#015#012s=SIP
Call#015#012c=IN IP4 1.2.3.6#015#012t=0 0#015#012m=audio 50000 RTP/AVP 18 8 
0 4 125 101#015#012c=IN IP4 1.2.3.6#015#012a=rtpmap:18
G729/8000#015#012a=fmtp:18 annexb=yes#015#012a=fmtp:4 
bitrate=5.3;annexa=no#015#012a=rtpmap:125 X-CCD/8000#015#012a=rtpmap:101
telephone-event/8000#015#012a=fmtp:101 
0-16#015#012a=sendrecv#015#012a=rtcp:50001#015#012", "result": "ok" }

INVITE 1. branch 
(ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBcBWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-1):
Mar  8 11:14:25  Received command 'offer' from 1.2.3.4:59038
Mar  8 11:14:25  Dump for 'offer' from 1.2.3.4:59038: { "sdp": 
"v=0#015#012o=CiscoSystemsSIP-GW-UserAgent 4454 7726 IN IP4 
2.3.4.5#015#012s=SIP
Call#015#012c=IN IP4 2.3.4.6#015#012t=0 0#015#012m=audio 59482 RTP/AVP 18 8 
0 4 125 101#015#012c=IN IP4 2.3.4.6#015#012a=rtpmap:18
G729/8000#015#012a=fmtp:18 annexb=yes#015#012a=fmtp:4 
bitrate=5.3;annexa=no#015#012a=rtpmap:125 X-CCD/8000#015#012a=rtpmap:101
telephone-event/8000#015#012a=fmtp:101 0-16#015#012", "ICE": "remove", 
"replace": [ "origin", "session-connection" ], "call-id":
"ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBc ...
Mar  8 11:14:25  ... BWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-", "via-branch": 
"ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBcBWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-1",
"received-from": [ "IP4", "1.2.3.5" ], "from-tag": "D40356B0-22E3", 
"command": "offer" }
Mar  8 11:14:25  Replying to 'offer' from 1.2.3.4:59038
Mar  8 11:14:25  Response dump for 'offer' to 1.2.3.4:59038: { "sdp": 
"v=0#015#012o=CiscoSystemsSIP-GW-UserAgent 4454 7726 IN IP4 
1.2.3.6#015#012s=SIP
Call#015#012c=IN IP4 1.2.3.6#015#012t=0 0#015#012m=audio 50040 RTP/AVP 18 8 
0 4 125 101#015#012c=IN IP4 1.2.3.6#015#012a=rtpmap:18
G729/8000#015#012a=fmtp:18 annexb=yes#015#012a=fmtp:4 
bitrate=5.3;annexa=no#015#012a=rtpmap:125 X-CCD/8000#015#012a=rtpmap:101
telephone-event/8000#015#012a=fmtp:101 
0-16#015#012a=sendrecv#015#012a=rtcp:50041#015#012", "result": "ok" }

OK 1. branch 
(ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBcBWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-0):
Mar  8 11:14:33  Received command 'offer' from 1.2.3.4:47625
Mar  8 11:14:33  Dump for 'offer' from 1.2.3.4:47625: { "sdp": 
"v=0#015#012o=root 2042928516 2042928517 IN IP4 
3.4.5.6#015#012s=call#015#012c=IN IP4
3.4.5.6#015#012t=0 0#015#012m=audio 51372 RTP/AVP 18 8 0 
101#015#012a=rtpmap:18 G729/8000#015#012a=fmtp:18 
annexb=yes#015#012a=rtpmap:8
PCMA/8000#015#012a=rtpmap:0 PCMU/8000#015#012a=rtpmap:101 
telephone-event/8000#015#012a=fmtp:101 0-16#015#012a=sendrecv#015#012", 
"ICE": "remove",
"replace": [ "origin", "session-connection" ], "call-id": 
"ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBcBWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-", 
"via-branch" ...
Mar  8 11:14:33  ... : 
"ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBcBWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-0", 
"received-from": [ "IP4", "1.2.3.7" ], "from-tag":
"b8nbyduymv", "to-tag": "D40356B0-22E3", "command": "offer" }
Mar  8 11:14:33  set FILLED flag for stream 3.4.5.6:51372
Mar  8 11:14:33  set FILLED flag for stream 3.4.5.6:51373
Mar  8 11:14:33  Replying to 'offer' from 1.2.3.4:47625
Mar  8 11:14:33  Response dump for 'offer' to 1.2.3.4:47625: { "sdp": 
"v=0#015#012o=root 2042928516 2042928517 IN IP4
1.2.3.6#015#012s=call#015#012c=IN IP4 1.2.3.6#015#012t=0 0#015#012m=audio 
50018 RTP/AVP 18 8 0 101#015#012a=rtpmap:18 G729/8000#015#012a=fmtp:18
annexb=yes#015#012a=rtpmap:8 PCMA/8000#015#012a=rtpmap:0 
PCMU/8000#015#012a=rtpmap:101 telephone-event/8000#015#012a=fmtp:101
0-16#015#012a=sendrecv#015#012a=rtcp:50019#015#012", "result": "ok" }

Cancel 2. branch 
(ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBcBWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-1):
Mar  8 11:14:33  Received command 'delete' from 1.2.3.4:36513
Mar  8 11:14:33  Dump for 'delete' from 1.2.3.4:36513: { "ICE": "remove", 
"call-id":
"ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBcBWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-", 
"via-branch": 
"ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBcBWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-1",
"received-from": [ "IP4", "1.2.3.7" ], "from-tag": "7F943699500EBFA6", 
"to-tag": "D40356B0-22E3", "command": "delete" }
Mar  8 11:14:33  Scheduling deletion of call branch 'D40356B0-22E3' 
(via-branch 
'ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBcBWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-1')
in 30 seconds
Mar  8 11:14:33  Replying to 'delete' from 1.2.3.4:36513
Mar  8 11:14:33  Response dump for 'delete' to 1.2.3.4:36513: { "created": 
1457432065, "last signal": 1457432073, "tags": { "D40356B0-22E3": { "tag":
"D40356B0-22E3", "created": 1457432065, "in dialogue with": "b8nbyduymv", 
"medias": [ { "index": 1, "type": "audio", "protocol": "RTP/AVP", "streams":
[ { "local port": 50018, "endpoint": { "family": "IPv4", "address": 
"2.3.4.6", "port": 59482 }, "advertised endpoint": { "family": "IPv4", 
"address":
"2.3.4.6", "port": 59482 }, "last packet": 14 ...
Mar  8 11:14:33  ... 57432065, "flags": [ "RTP", "filled" ], "stats": { 
"packets": 0, "bytes": 0, "errors": 0 } }, { "local port": 50019, 
"endpoint":
{ "family": "IPv4", "address": "2.3.4.6", "port": 59483 }, "advertised 
endpoint": { "family": "IPv4", "address": "2.3.4.6", "port": 59483 }, "last
packet": 1457432065, "flags": [ "RTCP", "filled" ], "stats": { "packets": 0, 
"bytes": 0, "errors": 0 } } ], "flags": [ "initialized", "send", "recv" ]
} ] }, "b8nbyduymv": { "tag": "b8nbyduymv", "via-branch": " ...
Mar  8 11:14:33  ... 
ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBcBWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-0", 
"created": 1457432065, "in dialogue with": "D40356B0-22E3",
"medias": [ { "index": 1, "type": "audio", "protocol": "RTP/AVP", "streams": 
[ { "local port": 50000, "endpoint": { "family": "IPv4", "address":
"3.4.5.6", "port": 51372 }, "advertised endpoint": { "family": "IPv4", 
"address": "3.4.5.6", "port": 51372 }, "last packet": 1457432073, "flags": [
"RTP", "filled" ], "stats": { "packets": 1, "bytes": 28, "err ...
Mar  8 11:14:33  ... ors": 0 } }, { "local port": 50001, "endpoint": { 
"family": "IPv4", "address": "3.4.5.6", "port": 51373 }, "advertised 
endpoint":
{ "family": "IPv4", "address": "3.4.5.6", "port": 51373 }, "last packet": 
1457432073, "flags": [ "RTCP", "filled" ], "stats": { "packets": 1, "bytes":
48, "errors": 0 } } ], "flags": [ "initialized", "send", "recv" ] } ] } }, 
"totals": { "RTP": { "packets": 1, "bytes": 28, "errors": 0 }, "RTCP": {
"packets": 1, "bytes": 48, "errors": 0 } }, "result": "ok"  ...
Mar  8 11:14:33  ... }

Established call 1. branch
Mar  8 11:14:37 Confirmed peer address as 2.3.4.6:59482
Mar  8 11:14:37 Confirmed peer address as 3.4.5.6:51372
Mar  8 11:14:37 Kernelizing media stream: 3.4.5.6:51372
Mar  8 11:14:37 Kernelizing media stream: 2.3.4.6:59482
Mar  8 11:14:38 Confirmed peer address as 3.4.5.6:51373
Mar  8 11:14:40 Confirmed peer address as 2.3.4.6:59483

Garbage collector removes also the established and working 1. branch
Mar  8 11:15:03  Call branch 'D40356B0-22E3' (via-branch '') deleted, no 
more branches remaining
Mar  8 11:15:03  Final packet stats:
Mar  8 11:15:03  --- Tag 'D40356B0-22E3', created 0:38 ago for branch '', in 
dialogue with 'b8nbyduymv'
Mar  8 11:15:03  ------ Media #1 (audio over RTP/AVP) using G729/8000
Mar  8 11:15:03  --------- Port 50018 <>  2.3.4.6:59482, 1417 p, 45344 b, 0 
e, 1457432102 last_packet
Mar  8 11:15:03  --------- Port 50019 <>  2.3.4.6:59483 (RTCP), 6 p, 792 b, 
0 e, 1457432101 last_packet
Mar  8 11:15:03  --- Tag 'b8nbyduymv', created 0:38 ago for branch 
'ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBcBWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-0', in 
dialogue
with 'D40356B0-22E3'
Mar  8 11:15:03  ------ Media #1 (audio over RTP/AVP) using G729/8000
Mar  8 11:15:03  --------- Port 50000 <>   3.4.5.6:51372, 1560 p, 41746 b, 0 
e, 1457432102 last_packet
Mar  8 11:15:03  --------- Port 50001 <>   3.4.5.6:51373 (RTCP), 6 p, 388 b, 
0 e, 1457432098 last_packet
Mar  8 11:15:03  --- Tag '', created 0:38 ago for branch 
'ZzJFVwVlR0BDd2RHMF8DFUZZLAQUQjBcBWReR1ZzEUFHWgQQS0dAAGFCWlwcYUE-1', in 
dialogue with
'D40356B0-22E3'
Mar  8 11:15:03  ------ Media #1 (audio over RTP/AVP) using unknown codec
Mar  8 11:15:03  --------- Port 50040 <>          (null):0    , 0 p, 0 b, 0 
e, 1457432065 last_packet
Mar  8 11:15:03  --------- Port 50041 <>          (null):0     (RTCP), 0 p, 
0 b, 0 e, 1457432065 last_packet

It seems, that the VIA-branch is been ignored and only the to-tag is been 
recognized by the garbage collector.
But I'm sure that RTPEngine can handle multiple branches. So maybe you could 
give me a hint, where my error is?

Kind regards,
Julian Santer
Raiffeisen OnLine


_______________________________________________
Users mailing list
Users at lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users 




More information about the Users mailing list