From ccd701371c5d44869c3f66b1426d335a143b75ff Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Sun, 9 Oct 2011 10:58:38 +0000 Subject: Fixed #1383: Update the transport adapter sample in pjsua git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@3804 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip-apps/src/pjsua/pjsua_app.c | 85 +++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 49 deletions(-) (limited to 'pjsip-apps/src') diff --git a/pjsip-apps/src/pjsua/pjsua_app.c b/pjsip-apps/src/pjsua/pjsua_app.c index 1745ed8f..81e6d57f 100644 --- a/pjsip-apps/src/pjsua/pjsua_app.c +++ b/pjsip-apps/src/pjsua/pjsua_app.c @@ -141,9 +141,6 @@ static char some_buf[1024 * 3]; #ifdef STEREO_DEMO static void stereo_demo(); #endif -#ifdef TRANSPORT_ADAPTER_SAMPLE -static pj_status_t transport_adapter_sample(void); -#endif static pj_status_t create_ipv6_media_transports(void); pj_status_t app_destroy(void); @@ -3051,6 +3048,35 @@ static void on_ice_transport_error(int index, pj_ice_strans_op op, "ICE keep alive failure for transport %d", index)); } +#ifdef TRANSPORT_ADAPTER_SAMPLE +/* + * This callback is called when media transport needs to be created. + */ +static pjmedia_transport* on_create_media_transport(pjsua_call_id call_id, + unsigned media_idx, + pjmedia_transport *base_tp, + unsigned flags) +{ + pjmedia_transport *adapter; + pj_status_t status; + + /* Create the adapter */ + status = pjmedia_tp_adapter_create(pjsua_get_pjmedia_endpt(), + NULL, base_tp, + (flags & PJSUA_MED_TP_CLOSE_MEMBER), + &adapter); + if (status != PJ_SUCCESS) { + PJ_PERROR(1,(THIS_FILE, status, "Error creating adapter")); + return NULL; + } + + PJ_LOG(3,(THIS_FILE, "Media transport is created for call %d media %d", + call_id, media_idx)); + + return adapter; +} +#endif + /* * Print buddy list. */ @@ -4651,6 +4677,9 @@ pj_status_t app_init(int argc, char *argv[]) app_config.cfg.cb.on_mwi_info = &on_mwi_info; app_config.cfg.cb.on_transport_state = &on_transport_state; app_config.cfg.cb.on_ice_transport_error = &on_ice_transport_error; +#ifdef TRANSPORT_ADAPTER_SAMPLE + app_config.cfg.cb.on_create_media_transport = &on_create_media_transport; +#endif app_config.log_cfg.cb = log_cb; /* Set sound device latency */ @@ -4929,6 +4958,9 @@ pj_status_t app_init(int argc, char *argv[]) /* Add accounts */ for (i=0; i