There should be no problem on digit capture on an outgoing call. For example - when I originate a call, I ask the called party, for example, to press 1 to accept the call. This works correctly:
BLegSession.DtmfReceivedFunction = (d, t) =>
{
Log.WriteLine(LogLevel.Info, "Received {0} for {1}.", d, t);
if (d == confirmationDigit)
{
confirmed = true;
return "break";
}
return "";
};
while (!confirmed && BLegSession != null && BLegSession.Ready() && BLegSession.mediaReady() && loop <= loops)
{
loop++;
if (!confirmed && BLegSession != null && BLegSession.Ready() && BLegSession.mediaReady())
BLegSession.StreamFile("prompts/press-1-to-accept-call-from.wav", 0);
if (!confirmed && BLegSession != null && BLegSession.Ready() && BLegSession.mediaReady())
BLegSession.CollectDigits(5000);
}
If you are not receiving the digits - I would try and bridge the oubound call to an existing call and check that you are getting two way audio - and if you are using inband DTMF - that you can actually hear the digits.
HTH
Thanks for the idea i will try that next. I thought i would try to capture the digits like normal first to make sure everything is working right and to test a few event capture methods. What i found was that mod_managed never seemed to capture or read any digits for an out going call. If i pass the call to a different application/dial plan it captures the digits perfectly. I assume audio was working as it played audio to the user to enter digits so i figure i have not configured something correctly but i have not idea what it is. Until i work it out i don't think any event code will work.I have no idea what is wrong in this case or even how to debug it.ChrisOn Wed, Mar 10, 2010 at 1:31 PM, Phillip Jones <pjintheusa@gmail.com> wrote:
One way might be to create an event loop and listen for DTMF
public bool Load()
{
ThreadPool.QueueUserWorkItem((o) =>
{
Log.WriteLine(LogLevel.Notice, "Thread Starting. ");
EventConsumer con = new EventConsumer("DTMF", "");
while (true)
{
Event ev = con.pop(1);
if (ev != null)
{
... do what ever needs to be done
}
}
});
See http://wiki.freeswitch.org/wiki/Event_List#DTMF
I am guessing the DTMF is "DTMF" so play around with that if it does not work.
There are probably better ways.On Tue, Mar 9, 2010 at 5:27 AM, Chris <freeswitch@gilligan.id.au> wrote:
What i need to do is listen on a session before, during and after the session is bridged with another call. I know built into FS is the option to listen for *x where x is 0-9 but i really need more than one digit.
I traced the method that listens for the single digit to the command switch_core_event_hook_add_send_dtmf(session, meta_on_dtmf); in switch_ivr_async.cmod_managed also has the following in the native class freeswitch.public static switch_status_t switch_core_event_hook_add_recv_dtmf(SWIGTYPE_p_switch_core_session session, SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t recv_dtmf)The problem is i can't work out how to use it. I am fine the the first param for the session but have no idea what i need for the SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t recv_dtmf param.if anyone can point me in the right direction or knows a better way i would be grateful.Chris_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org