Hi, i have a problem, i do whose steps:
1. i use conference bridge, i have 3 media ports
2. port 1 starts to transmit to port 2 with level 0 (through pjsua_conf_connect2)
3. port 1 starts to transmit to port 3 with normal level (through pjsua_conf_connect2)
4. port 1 stops to transmit to port 2 (through pjsua_conf_discconnect)
Port 3 still shold receive sound from port 1, but there is no sound. I suppose It's an error in pjmedia_conf_disconnect_port: this routine doesn't remove value in listener_adj_level.
I've attached a path, it works for me
diff --git a/pjmedia/src/pjmedia/conference.c b/pjmedia/src/pjmedia/conference.c index a8cdef5..5e5fddf 100644 --- a/pjmedia/src/pjmedia/conference.c +++ b/pjmedia/src/pjmedia/conference.c @@ -1062,6 +1062,8 @@ PJ_DEF(pj_status_t) pjmedia_conf_disconnect_port( pjmedia_conf *conf, dst_port->transmitter_cnt < conf->max_ports); pj_array_erase(src_port->listener_slots, sizeof(SLOT_TYPE), src_port->listener_cnt, i); + pj_array_erase(src_port->listener_adj_level, sizeof(unsigned), + src_port->listener_cnt, i); --conf->connect_cnt; --src_port->listener_cnt; --dst_port->transmitter_cnt;
_______________________________________________ Visit our blog: http://blog.pjsip.org pjsip mailing list pjsip@xxxxxxxxxxxxxxx http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org