summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-11-21 14:50:07 +0000
committerBenny Prijono <bennylp@teluu.com>2007-11-21 14:50:07 +0000
commit1322a70495ed560c93f34a351d1649a2f7ec7299 (patch)
tree1fa157f8a41b967e7c54b5d995c16bf76750a4ae
parente4f27fff2674112f2c853f43ba65796deb6f63b2 (diff)
Ticket #14: Don't change RTP/RTCP SSRC on re-INVITE
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1591 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjsip/include/pjsua-lib/pjsua_internal.h1
-rw-r--r--pjsip/src/pjsua-lib/pjsua_call.c1
-rw-r--r--pjsip/src/pjsua-lib/pjsua_media.c3
3 files changed, 5 insertions, 0 deletions
diff --git a/pjsip/include/pjsua-lib/pjsua_internal.h b/pjsip/include/pjsua-lib/pjsua_internal.h
index 87d30b99..205faeef 100644
--- a/pjsip/include/pjsua-lib/pjsua_internal.h
+++ b/pjsip/include/pjsua-lib/pjsua_internal.h
@@ -46,6 +46,7 @@ typedef struct pjsua_call
pjsua_call_media_status media_st;/**< Media state. */
pjmedia_dir media_dir; /**< Media direction. */
pjmedia_session *session; /**< The media session. */
+ pj_uint32_t ssrc; /**< RTP SSRC */
int conf_slot; /**< Slot # in conference bridge. */
pjsip_evsub *xfer_sub; /**< Xfer server subscription, if this
call was triggered by xfer. */
diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c
index 4de4a22f..86525ca5 100644
--- a/pjsip/src/pjsua-lib/pjsua_call.c
+++ b/pjsip/src/pjsua-lib/pjsua_call.c
@@ -104,6 +104,7 @@ static void reset_call(pjsua_call_id id)
call->inv = NULL;
call->user_data = NULL;
call->session = NULL;
+ call->ssrc = pj_rand();
call->xfer_sub = NULL;
call->last_code = (pjsip_status_code) 0;
call->conf_slot = PJSUA_INVALID_ID;
diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c
index 5fa16462..16dcbce8 100644
--- a/pjsip/src/pjsua-lib/pjsua_media.c
+++ b/pjsip/src/pjsua-lib/pjsua_media.c
@@ -956,6 +956,9 @@ pj_status_t pjsua_media_channel_update(pjsua_call_id call_id,
sess_info.stream_info[0].jb_max_pre = pjsua_var.media_cfg.jb_max_pre;
sess_info.stream_info[0].jb_max = pjsua_var.media_cfg.jb_max;
+ /* Set SSRC */
+ sess_info.stream_info[0].ssrc = call->ssrc;
+
/* Create session based on session info. */
status = pjmedia_session_create( pjsua_var.med_endpt, &sess_info,
&call->med_tp,