summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2011-05-19 08:05:23 +0000
committerLiong Sauw Ming <ming@teluu.com>2011-05-19 08:05:23 +0000
commitdc02120b2dff4da759a0f20717ec503107447c44 (patch)
tree9934a138792670bf4538e5c02b0ee1e38730f3d3 /pjsip
parentf8901ea61be686ac4f76e86aa6ec550d11388ffb (diff)
Fixed #1268: Option for automatic/manual sending of RTCP SDES/BYE for the stream.
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@3571 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_media.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c
index 2eced3d9..f6791131 100644
--- a/pjsip/src/pjsua-lib/pjsua_media.c
+++ b/pjsip/src/pjsua-lib/pjsua_media.c
@@ -1530,6 +1530,9 @@ pj_status_t pjsua_media_channel_deinit(pjsua_call_id call_id)
{
pjsua_call *call = &pjsua_var.calls[call_id];
+ if (call->session)
+ pjmedia_session_send_rtcp_bye(call->session);
+
stop_media_session(call_id);
if (call->med_tp_st != PJSUA_MED_TP_IDLE) {
@@ -1573,6 +1576,7 @@ pj_status_t pjsua_media_channel_update(pjsua_call_id call_id,
const pjmedia_sdp_session *local_sdp,
const pjmedia_sdp_session *remote_sdp)
{
+ unsigned i;
int prev_media_st = 0;
pjsua_call *call = &pjsua_var.calls[call_id];
pjmedia_session_info sess_info;
@@ -1598,6 +1602,10 @@ pj_status_t pjsua_media_channel_update(pjsua_call_id call_id,
if (status != PJ_SUCCESS)
return status;
+ for (i = 0; i < sess_info.stream_cnt; ++i) {
+ sess_info.stream_info[i].rtcp_sdes_bye_disabled = PJ_TRUE;
+ }
+
/* Update audio index from the negotiated SDP */
call->audio_idx = find_audio_index(local_sdp, PJ_TRUE);
@@ -1717,6 +1725,9 @@ pj_status_t pjsua_media_channel_update(pjsua_call_id call_id,
return status;
}
+ if (prev_media_st == PJSUA_CALL_MEDIA_NONE)
+ pjmedia_session_send_rtcp_sdes(call->session);
+
/* If DTMF callback is installed by application, install our
* callback to the session.
*/