Bug in Freeswitch rev. 4107 !? switch_channel_answer() causes one-way-audio
Hi all, today I noticed that audio works only in one direction if mod_bridgecall contains a call to switch_channel_answer(). I don't know yet at which revision this stopped working. The patch to demonstrate/trigger the problem is a one-liner (plus a comment), please see attachment. Without this line, mod_bridgecall works fine - with it, I don't hear the other party (when it answers the call). Of course, calling switch_channel_answer() makes no sense on its own but it is needed if you want to send dtmf data to freeswitch before the other party answers... or even before calling another party. If that's already enough to find the cause and fix it, please do. In the meantime I try going back some revisions... Best regards Dirk
You do realize this isn't a bug. Its by design. You never automatically answer a channel before the otherside has answered or an explicit answered is issued from your application/ivr. That whole needing accurate CDR records is shot to hell with this patch. /b On Feb 2, 2007, at 9:15 AM, Dirk Schenkewitz wrote:
Hi all,
today I noticed that audio works only in one direction if mod_bridgecall contains a call to switch_channel_answer().
I don't know yet at which revision this stopped working. The patch to demonstrate/trigger the problem is a one-liner (plus a comment), please see attachment. Without this line, mod_bridgecall works fine - with it, I don't hear the other party (when it answers the call). Of course, calling switch_channel_answer() makes no sense on its own but it is needed if you want to send dtmf data to freeswitch before the other party answers... or even before calling another party.
If that's already enough to find the cause and fix it, please do. In the meantime I try going back some revisions...
Best regards Dirk --- mod_bridgecall.c.~1~ 2007-01-15 14:29:58.000000000 +0100 +++ mod_bridgecall.c 2007-02-02 15:24:08.000000000 +0100 @@ -70,6 +70,9 @@ } }
+ switch_channel_answer(caller_channel); + // now I can enter dtmf date BEFORE the other side accepts the call - but audio will go in only one direction + if (switch_ivr_originate(session, &peer_session, &cause, data, timelimit, NULL, NULL, NULL, NULL) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Originate Failed. Cause: %s\n", switch_channel_cause2str(cause)); if (!do_continue && cause != SWITCH_CAUSE_NO_ANSWER) { _______________________________________________ Freeswitch-dev mailing list Freeswitch-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
participants (2)
-
Brian West
-
Dirk Schenkewitz