diff --git a/modules_k/rtpproxy/doc/rtpproxy_admin.xml b/modules_k/rtpproxy/doc/rtpproxy_admin.xml
index 2bf5cacc3..27e5c7946 100644
--- a/modules_k/rtpproxy/doc/rtpproxy_admin.xml
+++ b/modules_k/rtpproxy/doc/rtpproxy_admin.xml
@@ -340,6 +340,24 @@ force_rtp_proxy();
flags - flags to turn on some features.
+
+ 1 - append first Via branch to Call-ID when sending
+ command to rtpproxy. This can be used to create one media session per branch
+ on the rtpproxy. When sending a subsequent delete
command to
+ the rtpproxy, you can then stop just the session for a specific branch when
+ passing the flag '1' or '2' in the unforce_rtpproxy
, or stop
+ all sessions for a call when not passing one of those two flags there. This is
+ especially useful if you have serially forked call scenarios where rtpproxy
+ gets an update
command for a new branch, and then a
+ delete
command for the previous branch, which would otherwise
+ delete the full call, breaking the subsequent lookup
for the
+ new branch. This flag is only supported by 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.
+
a - flags that UA from which message is
received doesn't support symmetric RTP. (automatically sets the 'r' flag)
@@ -518,7 +536,7 @@ onreply_route[2]
- unforce_rtp_proxy()
+ unforce_rtp_proxy([flags])
Tears down the RTPProxy session for the current call.
@@ -526,6 +544,36 @@ onreply_route[2]
This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE.
+
+ Meaning of the parameters is as follows:
+
+
+
+ flags - flags to turn on some features.
+
+
+
+ 1 - append first Via branch to Call-ID when sending
+ command to rtpproxy. This can be used to create one media session per branch
+ on the rtpproxy. When sending a subsequent delete
command to
+ the rtpproxy, you can then stop just the session for a specific branch when
+ passing the flag '1' or '2' in the unforce_rtpproxy
, or stop
+ all sessions for a call when not passing one of those two flags there. This is
+ especially useful if you have serially forked call scenarios where rtpproxy
+ gets an update
command for a new branch, and then a
+ delete
command for the previous branch, which would otherwise
+ delete the full call, breaking the subsequent lookup
for the
+ new branch. This flag is only supported by 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.
+
+
+
+
+
unforce_rtp_proxy usage
diff --git a/modules_k/rtpproxy/rtpproxy.c b/modules_k/rtpproxy/rtpproxy.c
index e3d5af550..87688a193 100644
--- a/modules_k/rtpproxy/rtpproxy.c
+++ b/modules_k/rtpproxy/rtpproxy.c
@@ -1655,11 +1655,11 @@ unforce_rtp_proxy1_f(struct sip_msg* msg, char* str1, char* str2)
for (cp = str1; cp != NULL && *cp != '\0'; cp++) {
switch (*cp) {
- case 'v':
+ case '1':
via1 = 1;
break;
- case 'V':
+ case '2':
via2 = 1;
break;
@@ -1894,6 +1894,14 @@ force_rtp_proxy(struct sip_msg* msg, char* str1, char* str2, int offer)
viasep.s = viasepchar; viasep.len = 1;
for (cp = str1; cp != NULL && *cp != '\0'; cp++) {
switch (*cp) {
+ case '1':
+ via1 = 1;
+ break;
+
+ case '2':
+ via2 = 1;
+ break;
+
case 'a':
case 'A':
if (append_opts(&opts, 'A') == -1) {
@@ -1958,14 +1966,6 @@ force_rtp_proxy(struct sip_msg* msg, char* str1, char* str2, int offer)
swap_warned = 1;
break;
- case 'v':
- via1 = 1;
- break;
-
- case 'V':
- via2 = 1;
- break;
-
case 'w':
case 'W':
if (append_opts(&opts, 'S') == -1) {