Merge "res_pjsip_sdp_rtp: implement hold state handling on moh_passthrough"
This commit is contained in:
commit
a6de4497e6
|
@ -1547,6 +1547,8 @@ static int create_outgoing_sdp_stream(struct ast_sip_session *session, struct as
|
|||
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 @@ static int create_outgoing_sdp_stream(struct ast_sip_session *session, struct as
|
|||
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 */
|
||||
|
|
Loading…
Reference in New Issue