summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua-lib/pjsua_core.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_core.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_core.c')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_core.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_core.c b/pjsip/src/pjsua-lib/pjsua_core.c
index eafcd78b..5959d065 100644
--- a/pjsip/src/pjsua-lib/pjsua_core.c
+++ b/pjsip/src/pjsua-lib/pjsua_core.c
@@ -320,7 +320,7 @@ static pj_status_t init_sockets(pj_bool_t sip,
PJ_LOG(4,(THIS_FILE, "RTP socket reachable at %s:%d",
pj_inet_ntoa(skinfo->rtp_addr_name.sin_addr),
pj_ntohs(skinfo->rtp_addr_name.sin_port)));
- PJ_LOG(4,(THIS_FILE, "RTCP UDP socket reachable at %s:%d",
+ PJ_LOG(4,(THIS_FILE, "RTCP socket reachable at %s:%d",
pj_inet_ntoa(skinfo->rtcp_addr_name.sin_addr),
pj_ntohs(skinfo->rtcp_addr_name.sin_port)));
@@ -779,6 +779,10 @@ pj_status_t pjsua_start(void)
/* Init sockets (STUN etc): */
for (i=0; i<(int)pjsua.max_calls; ++i) {
status = init_sockets(i==0, &pjsua.calls[i].skinfo);
+ if (status == PJ_SUCCESS)
+ status = pjmedia_transport_udp_attach(pjsua.med_endpt, NULL,
+ &pjsua.calls[i].skinfo,
+ &pjsua.calls[i].med_tp);
if (status != PJ_SUCCESS) {
pjsua_perror(THIS_FILE, "init_sockets() has returned error",
status);
@@ -786,8 +790,7 @@ pj_status_t pjsua_start(void)
if (i >= 0)
pj_sock_close(pjsua.sip_sock);
while (i >= 0) {
- pj_sock_close(pjsua.calls[i].skinfo.rtp_sock);
- pj_sock_close(pjsua.calls[i].skinfo.rtcp_sock);
+ pjmedia_transport_udp_close(pjsua.calls[i].med_tp);
}
return status;
}
@@ -1048,6 +1051,12 @@ pj_status_t pjsua_destroy(void)
pjmedia_codec_l16_deinit();
#endif /* PJMEDIA_HAS_L16_CODEC */
+
+ /* Close transports */
+ for (i=0; i<pjsua.call_cnt; ++i) {
+ pjmedia_transport_udp_close(pjsua.calls[i].med_tp);
+ }
+
/* Destroy media endpoint. */
pjmedia_endpt_destroy(pjsua.med_endpt);