handle mutiple media flows simultaneously

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All, my program is designed to be able to receive two calls simultaneously (in different threads). When an inbound comes in, my program plays audio data stored in memory to the caller. It works well when there is only one inbound. However, when two inbounds come in simultaneously, the sound quality heard by both callers is so poor that can be considered as noises. When one of the inbound calls has hung up, the sound quality on the other connected inbound call becomes good again. Could someone tell me what I am doing wrong?
 
 
Thanks a lot!
 
Jessica
 
My code is included as follows:
 
      // add port of the channel and the port of the audio buffer to the conference bridge      if((pjmedia_conf_add_port(*(sipChannel->getPlayConf()), //pjmedia_conf *conf,          sipChannel->getPlayPool(), //pj_pool_t *pool,          portChannel, //pjmedia_port *strm_port,          NULL,//const pj_str_t *name,          &slotChannel//unsigned *p_slot)         ) == PJ_SUCCESS) &&      (pjmedia_conf_add_port(*(sipChannel->getPlayConf()), //pjmedia_conf *conf,          sipChannel->getPlayPool(), //pj_pool_t *pool,          portBuffer, //pjmedia_port *strm_port,          NULL,//const pj_str_t *name,          &slotBuffer//unsigned *p_slot)         ) == PJ_SUCCESS) &&      // connect audio and channel ports      (pjmedia_conf_connect_port(*(sipChannel->getPlayConf()),          slotBuffer,          slotChannel,          0) == PJ_SUCCESS) &&      (pjmedia_conf_adjust_tx_level(*(sipChannel->getPlayConf()), slotChannel, SIP_ADJUST_LEVEL) == PJ_SUCCESS) &&      (pjmedia_conf_adjust_rx_level(*(sipChannel->getPlayConf()), slotBuffer, SIP_ADJUST_LEVEL) == PJ_SUCCESS) &&      // register call back      (pjmedia_mem_player_set_eof_cb(portBuffer, sipChannel, &fillPlayBuffer) == PJ_SUCCESS))  {    pj_status_t status = -1;    // create master port    if((sipChannel->getSipStatus().compare("CONFIRMED") == 0) &&       (status=pjmedia_master_port_create(sipChannel->getPlayPool(),                            portNull,                           pjmedia_conf_get_master_port(*(sipChannel->getPlayConf())),                            0,                            sipChannel->getPlayMasterPort()                       )) == PJ_SUCCESS)     // start the master port    status = pjmedia_master_port_start(*(sipChannel->getPlayMasterPort()));}
 
_________________________________________________________________
?????????????MSN????TA?????
http://im.live.cn/emoticons/?ID=18
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20080902/2be44c44/attachment-0001.html 


[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux