diff options
author | Benny Prijono <bennylp@teluu.com> | 2008-09-04 13:55:33 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2008-09-04 13:55:33 +0000 |
commit | ac1206e146b5643263054f0bcccf08261558017e (patch) | |
tree | 34a32f48911f816c9c24117f92684a7f043696fa /pjsip-apps | |
parent | 03db406b42ed903c524b0d24b092fc2bffa9855a (diff) |
Ticket #610: Added sample to create a media transport adapter, similar to how SRTP media transport works
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2262 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip-apps')
-rw-r--r-- | pjsip-apps/src/pjsua/pjsua_app.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/pjsip-apps/src/pjsua/pjsua_app.c b/pjsip-apps/src/pjsua/pjsua_app.c index d2c22e1e..b5157ee6 100644 --- a/pjsip-apps/src/pjsua/pjsua_app.c +++ b/pjsip-apps/src/pjsua/pjsua_app.c @@ -23,6 +23,7 @@ #define NO_LIMIT (int)0x7FFFFFFF //#define STEREO_DEMO +//#define TRANSPORT_ADAPTER_SAMPLE /* Ringtones US UK */ #define RINGBACK_FREQ1 440 /* 400 */ @@ -132,6 +133,9 @@ 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 pj_status_t app_destroy(void); static void ringback_start(pjsua_call_id call_id); @@ -4206,7 +4210,12 @@ pj_status_t app_init(int argc, char *argv[]) } /* Add RTP transports */ +#ifdef TRANSPORT_ADAPTER_SAMPLE + status = transport_adapter_sample(); + +#else status = pjsua_media_transports_create(&app_config.rtp_cfg); +#endif if (status != PJ_SUCCESS) goto on_error; @@ -4391,3 +4400,44 @@ static void stereo_demo() } #endif +#ifdef TRANSPORT_ADAPTER_SAMPLE +static pj_status_t create_transport_adapter(pjmedia_endpt *med_endpt, int port, + pjmedia_transport **p_tp) +{ + pjmedia_transport *udp; + pj_status_t status; + + /* Create the UDP media transport */ + status = pjmedia_transport_udp_create(med_endpt, NULL, port, 0, &udp); + if (status != PJ_SUCCESS) + return status; + + /* Create the adapter */ + status = pjmedia_tp_adapter_create(med_endpt, NULL, udp, p_tp); + if (status != PJ_SUCCESS) { + pjmedia_transport_close(udp); + return status; + } + + return PJ_SUCCESS; +} + +static pj_status_t transport_adapter_sample(void) +{ + pjsua_media_transport tp[PJSUA_MAX_CALLS]; + pj_status_t status; + int port = 7000; + unsigned i; + + for (i=0; i<app_config.cfg.max_calls; ++i) { + status = create_transport_adapter(pjsua_get_pjmedia_endpt(), + port + i*10, + &tp[i].transport); + if (status != PJ_SUCCESS) + return status; + } + + return pjsua_media_transports_attach(tp, i, PJ_TRUE); +} +#endif + |