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]
- <function moreinfo="none">unforce_rtp_proxy()</function> + <function moreinfo="none">unforce_rtp_proxy([flags])</function> 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. + + + + + <function>unforce_rtp_proxy</function> 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) {