Hello,

I've seen this already asked and answered but it is still a no go for me. I'm trying to do some preprocessing in the middle of a call, before bridging.

I've seen two choices: M() and G() parameters of the Dial() command.

G() was discarded because I don't know if it is possible to bridge channels after processing.

With M() I've done something like that:

macro screen ( screen_file, destination, caller_email ) {
        Set(screen_file=${ARG1});
        Set(destination=${ARG2});
        Set(caller_email=${ARG3});

begin:
        // compute play prompt for background()
        Set(BACKGROUND_PROMPT=voip-call-pending&${screen_file});
        Wait(0.5);
        Background(${BACKGROUND_PROMPT});

        catch 2 {
                Noop(GOTCHA!!!!!!!!!!);
        };

        catch t {
                goto s|begin;
        };

};

The dial command looks like this:
Dial(IAX2/shortcut1:[EMAIL PROTECTED]/[EMAIL PROTECTED]|120|M (screen^${SCREEN_FILE}^${EXTEN}^${EMAIL_ADDRESS}));

What I do want is to ask the called person to press a key and make a choice. everything goes well until a key is pressed, macro exits with status 48 + ASCII code of the key and the call is bridged.

I've read that for both G() and M() the pbx services are not available. This means that I cannot read a DTMF option in the Background() command during the called person IVR?

Shouldn't catch 2 { } block catch the press of the '2' key and print GHOTCHA!! ?

Thanks,
Alex

_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to