summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua-lib/pjsua_call.c
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-05-17 17:17:39 +0000
committerBenny Prijono <bennylp@teluu.com>2006-05-17 17:17:39 +0000
commit1b3863ac6dcae1a7bed7e0b0cb6a2f482c093989 (patch)
tree8ead72c61a60697246ab48fde099fb063c3fbaff /pjsip/src/pjsua-lib/pjsua_call.c
parent79e6d6ac5ae27d653d1724059f081a6be1c39b7e (diff)
Major modification in pjmedia to split stream transport into separate functionality, to allow using custom transports with streams
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@452 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua-lib/pjsua_call.c')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_call.c44
1 files changed, 3 insertions, 41 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c
index 73f5aac1..4dbfb596 100644
--- a/pjsip/src/pjsua-lib/pjsua_call.c
+++ b/pjsip/src/pjsua-lib/pjsua_call.c
@@ -97,26 +97,6 @@ static void schedule_call_timer( pjsua_call *call, pj_timer_entry *e,
}
-/* Close and reopen socket. */
-static pj_status_t reopen_sock( pj_sock_t *sock, pj_sockaddr_in *addr)
-{
- pj_status_t status;
-
- status = pj_sock_socket(PJ_AF_INET, PJ_SOCK_DGRAM, 0, sock);
- if (status != PJ_SUCCESS) {
- pjsua_perror(THIS_FILE, "Unable to create socket", status);
- return status;
- }
-
- status = pj_sock_bind(*sock, addr, sizeof(pj_sockaddr_in));
- if (status != PJ_SUCCESS) {
- pjsua_perror(THIS_FILE, "Unable to re-bind RTP/RTCP socket", status);
- return status;
- }
-
- return PJ_SUCCESS;
-}
-
/*
* Destroy the call's media
*/
@@ -130,27 +110,8 @@ static pj_status_t call_destroy_media(int call_index)
}
if (call->session) {
- pj_sockaddr_in rtp_addr, rtcp_addr;
- int addrlen;
-
- addrlen = sizeof(rtp_addr);
- pj_sock_getsockname(call->skinfo.rtp_sock, &rtp_addr, &addrlen);
-
- addrlen = sizeof(rtcp_addr);
- pj_sock_getsockname(call->skinfo.rtcp_sock, &rtcp_addr, &addrlen);
-
/* Destroy session (this will also close RTP/RTCP sockets). */
pjmedia_session_destroy(call->session);
-
- /* Close and reopen RTP socket.
- * This is necessary to get the socket unregistered from ioqueue,
- * when IOCompletionPort is used.
- */
- reopen_sock(&call->skinfo.rtp_sock, &rtp_addr);
-
- /* Close and reopen RTCP socket too. */
- reopen_sock(&call->skinfo.rtcp_sock, &rtcp_addr);
-
call->session = NULL;
PJ_LOG(3,(THIS_FILE, "Media session for call %d is destroyed",
@@ -1011,8 +972,8 @@ static void pjsua_call_on_media_update(pjsip_inv_session *inv,
* We only support one stream per session at the moment
*/
status = pjmedia_session_info_from_sdp( call->inv->dlg->pool,
- pjsua.med_endpt, 1,
- &sess_info, &call->skinfo,
+ pjsua.med_endpt,
+ 1,&sess_info,
local_sdp, remote_sdp);
if (status != PJ_SUCCESS) {
pjsua_perror(THIS_FILE, "Unable to create media session",
@@ -1035,6 +996,7 @@ static void pjsua_call_on_media_update(pjsip_inv_session *inv,
/* Create session based on session info. */
status = pjmedia_session_create( pjsua.med_endpt, &sess_info,
+ &call->med_tp,
call, &call->session );
if (status != PJ_SUCCESS) {
pjsua_perror(THIS_FILE, "Unable to create media session",