Module: sip-router
Branch: master
Commit: d8d80082aad32fd28484d30b2c4e0c98853cda31
URL:
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=d8d8008…
Author: Juha Heinanen <jh(a)tutpro.com>
Committer: Juha Heinanen <jh(a)tutpro.com>
Date: Mon Oct 22 12:15:54 2012 +0300
modules/rtpproxy: added 't' flag to rtpproxy_destroy and force_rtp_proxy
- Added new flag 't' to rtpproxy_destroy function that makes it possible
do delete whole call even when To tag is present in request/reply. In
force_rtp_proxy the flag is ignored.
---
modules/rtpproxy/README | 6 +++++-
modules/rtpproxy/doc/rtpproxy.xml | 2 +-
modules/rtpproxy/doc/rtpproxy_admin.xml | 3 +++
modules/rtpproxy/rtpproxy.c | 13 ++++++++++++-
4 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/modules/rtpproxy/README b/modules/rtpproxy/README
index f413832..eb2e1be 100644
--- a/modules/rtpproxy/README
+++ b/modules/rtpproxy/README
@@ -34,7 +34,7 @@ Carsten Bock
Copyright © 2005 Voice Sistem SRL
- Copyright © 2009 TuTPro Inc.
+ Copyright © 2009-2012 TuTPro Inc.
Copyright © 2010 VoIPEmbedded Inc.
__________________________________________________________________
@@ -491,6 +491,10 @@ onreply_route[2]
the ngcp-mediaproxy-ng rtpproxy at the moment!
+ 2 - append second Via branch to Call-ID when sending command
to rtpproxy. See flag '1' for its meaning.
+ + t - do not include To tag to “delete” command to rtpproxy thus
+ causing full call to be deleted. Useful for deleting unused
+ rtpproxy call when 200 OK is received on a branch, where
+ rtpproxy is not needed.
Example 1.11. rtpproxy_destroy usage
...
diff --git a/modules/rtpproxy/doc/rtpproxy.xml b/modules/rtpproxy/doc/rtpproxy.xml
index 741a4d9..6956e4b 100644
--- a/modules/rtpproxy/doc/rtpproxy.xml
+++ b/modules/rtpproxy/doc/rtpproxy.xml
@@ -75,7 +75,7 @@
<holder>Voice Sistem SRL</holder>
</copyright>
<copyright>
- <year>2009</year>
+ <year>2009-2012</year>
<holder>TuTPro Inc.</holder>
</copyright>
<copyright>
diff --git a/modules/rtpproxy/doc/rtpproxy_admin.xml
b/modules/rtpproxy/doc/rtpproxy_admin.xml
index ca1a0a3..e3a403e 100644
--- a/modules/rtpproxy/doc/rtpproxy_admin.xml
+++ b/modules/rtpproxy/doc/rtpproxy_admin.xml
@@ -492,6 +492,9 @@ onreply_route[2]
<emphasis>2</emphasis> - append second Via branch to Call-ID when
sending
command to rtpproxy. See flag '1' for its meaning.
</para></listitem>
+ <listitem><para>
+ <emphasis>t</emphasis> - do not include To tag to
<quote>delete</quote> command to rtpproxy thus causing full call to be
deleted. Useful for deleting unused rtpproxy call when 200 OK is received on a branch,
where rtpproxy is not needed.
+ </para></listitem>
</itemizedlist>
</listitem>
</itemizedlist>
diff --git a/modules/rtpproxy/rtpproxy.c b/modules/rtpproxy/rtpproxy.c
index 72d1f00..cab92ad 100644
--- a/modules/rtpproxy/rtpproxy.c
+++ b/modules/rtpproxy/rtpproxy.c
@@ -1678,6 +1678,7 @@ unforce_rtp_proxy_f(struct sip_msg* msg, char* flags, char* str2)
str callid, from_tag, to_tag, viabranch;
char *cp;
int via = 0;
+ int to = 1;
int ret;
struct rtpp_node *node;
struct iovec v[1 + 4 + 3 + 2] = {{NULL, 0}, {"D", 1}, {" ", 1},
{NULL, 0}, {NULL, 0}, {NULL, 0}, {" ", 1}, {NULL, 0}, {" ", 1}, {NULL,
0}};
@@ -1700,6 +1701,10 @@ unforce_rtp_proxy_f(struct sip_msg* msg, char* flags, char* str2)
via = 1;
break;
+ case 't':
+ case 'T':
+ to = 0;
+ break;
case 'a':
case 'A':
case 'i':
@@ -1736,7 +1741,8 @@ unforce_rtp_proxy_f(struct sip_msg* msg, char* flags, char* str2)
return -1;
}
to_tag.s = 0;
- if (get_to_tag(msg, &to_tag) == -1) {
+ to_tag.len = 0;
+ if ((to == 1) && get_to_tag(msg, &to_tag) == -1) {
LM_ERR("can't get To tag\n");
return -1;
}
@@ -2150,6 +2156,11 @@ force_rtp_proxy(struct sip_msg* msg, char* str1, char* str2, int
offer, int forc
}
break;
+ case 't':
+ case 'T':
+ /* Only used in rtpproxy_destroy */
+ break;
+
default:
LM_ERR("unknown option `%c'\n", *cp);
FORCE_RTP_PROXY_RET (-1);