[Asterisk-code-review] res_pjsip_sdp_rtp: implement hold state handling on moh_passthrough (asterisk[17])
George Joseph
asteriskteam at digium.com
Tue Feb 18 10:09:00 CST 2020
George Joseph has submitted this change. ( https://gerrit.asterisk.org/c/asterisk/+/13822 )
Change subject: res_pjsip_sdp_rtp: implement hold state handling on moh_passthrough
......................................................................
res_pjsip_sdp_rtp: implement hold state handling on moh_passthrough
When moh_passthrough is used, asterisk is only generating invites
of type sendonly and sendrecv instead of taking fully into account
the on hold state of the local and remote parties
ASTERISK-28738 #close
Change-Id: Iaaad9fbc033cb14803d433b8a4071bc337047761
---
M res/res_pjsip_sdp_rtp.c
1 file changed, 15 insertions(+), 2 deletions(-)
Approvals:
Joshua Colp: Looks good to me, but someone else must approve
George Joseph: Looks good to me, approved; Approved for Submit
diff --git a/res/res_pjsip_sdp_rtp.c b/res/res_pjsip_sdp_rtp.c
index 8d9cece..dcdb827 100644
--- a/res/res_pjsip_sdp_rtp.c
+++ b/res/res_pjsip_sdp_rtp.c
@@ -1547,6 +1547,8 @@
static const pj_str_t STR_IP6 = { "IP6", 3};
static const pj_str_t STR_SENDRECV = { "sendrecv", 8 };
static const pj_str_t STR_SENDONLY = { "sendonly", 8 };
+ static const pj_str_t STR_INACTIVE = { "inactive", 8 };
+ static const pj_str_t STR_RECVONLY = { "recvonly", 8 };
pjmedia_sdp_media *media;
const char *hostip = NULL;
struct ast_sockaddr addr;
@@ -1811,9 +1813,20 @@
media->attr[media->attr_count++] = attr;
}
- /* Add the sendrecv attribute - we purposely don't keep track because pjmedia-sdp will automatically change our offer for us */
attr = PJ_POOL_ZALLOC_T(pool, pjmedia_sdp_attr);
- attr->name = !session_media->locally_held ? STR_SENDRECV : STR_SENDONLY;
+ if (session_media->locally_held) {
+ if (session_media->remotely_held) {
+ attr->name = STR_INACTIVE; /* To place on hold a recvonly stream, send inactive */
+ } else {
+ attr->name = STR_SENDONLY; /* Send sendonly to initate a local hold */
+ }
+ } else {
+ if (session_media->remotely_held) {
+ attr->name = STR_RECVONLY; /* Remote has sent sendonly, reply recvonly */
+ } else {
+ attr->name = STR_SENDRECV; /* No hold in either direction */
+ }
+ }
media->attr[media->attr_count++] = attr;
/* If we've got rtcp-mux enabled, add it unless we received an offer without it */
--
To view, visit https://gerrit.asterisk.org/c/asterisk/+/13822
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings
Gerrit-Project: asterisk
Gerrit-Branch: 17
Gerrit-Change-Id: Iaaad9fbc033cb14803d433b8a4071bc337047761
Gerrit-Change-Number: 13822
Gerrit-PatchSet: 1
Gerrit-Owner: Torrey Searle <tsearle at gmail.com>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Joshua Colp <jcolp at sangoma.com>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20200218/468c8543/attachment.html>
More information about the asterisk-code-review
mailing list