Thanks Phillip! That worked perfectly for some reason.  I mean it was hardly different from mine and i still can't spot the fault in my own code.  very strange.


On Thu, Mar 11, 2010 at 12:42 AM, Phillip Jones <pjintheusa@gmail.com> wrote:
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



On Wed, Mar 10, 2010 at 7:02 AM, Chris <freeswitch@gilligan.id.au> wrote:
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.

Chris


On 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.c

mod_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