Correctly control brige in case of mISDN
[lcr.git] / joinpbx.cpp
index 6440f58..9290657 100644 (file)
@@ -368,10 +368,11 @@ void JoinPBX::bridge(void)
 
                /*
                 * Bridge between port instances if:
+                * - two relations
                 * - one or all are not mISDN
                 */
                message = message_create(j_serial, relation->epoint_id, JOIN_TO_EPOINT, MESSAGE_BRIDGE);
-               message->param.bridge_id = j_serial;
+               message->param.bridge_id = (relations==2 && !allmISDN) ? j_serial : 0;
                PDEBUG(DEBUG_JOIN, "join%u EP%u requests bridge=%u\n", j_serial, relation->epoint_id, message->param.bridge_id);
                message_put(message);
 
@@ -691,7 +692,7 @@ void JoinPBX::message_epoint(unsigned int epoint_id, int message_type, union par
        switch(message_type) {
                /* process audio path message */
                case MESSAGE_AUDIOPATH:
-               PDEBUG(DEBUG_JOIN, "join received channel message: %d.\n", param->audiopath);
+               PDEBUG(DEBUG_JOIN, "join received channel message: audiopath=%d, current relation's channel_state=%d\n", param->audiopath, relation->channel_state);
                if (relation->channel_state != param->audiopath) {
                        relation->channel_state = param->audiopath;
                        trigger_work(&j_updatebridge);