Hi,

I am able to get the channel variable value in a request now by "play_and_get_digits" command. But now, I need some suggestion for below query:

As per my requirement, I want to play multiple audio file by "playback", run TTS by "Speak", and get digit by "Play_and_get_digits" in a single dialplan as a batch. I am sending below request to freeswitch for running multiple commands as a batch in a request:


<document type="xml/freeswitch-httapi"><params></params><variables><myDigit>-1</myDigit></variables><work><getVariable name="myDigit" permanent="1"/><execute application="log" data="INFO my_chan_var contains ${myDigit}"/><speak name="extenSpeak" text="Welcome to Q Pay" engine="flite" voice="slt" ></speak><execute action="http://localhost:9000/ivr/fswelcomeresponse" application="play_and_get_digits" data="0 1 1 2000 # ivr/MP3/dial_menu_index_five.mp3 '' myDigit ''" /><execute application="log" data="INFO my_chan_var contains ${myDigit}"/><execute application="log" data="INFO my_chan_var contains ${myDigit}"/><playback name="exten" file="ivr/MP3/dial_menu_index_one.mp3" action="http://localhost:9000/ivr/fswelcomeresponse" digit-timeout="1000" input-timeout="1000" ><bind>~\d{1,3}#{0,1}</bind></playback><execute application="log" data="INFO my_chan_var contains ${myDigit}"/><speak name="extenSpeak1" text="Press two for english." engine="flite" voice="slt" ></speak><execute application="log" data="INFO my_chan_var contains ${myDigit}"/><playback name="exten" file="ivr/MP3/dial_menu_index_four.mp3" action="http://localhost:9000/ivr/fswelcomeresponse" digit-timeout="1000" input-timeout="1000" ><bind>~\d{1,3}#{0,1}</bind></playback><execute action="http://localhost:9000/ivr/fswelcomeresponse" application="play_and_get_digits" data="0 1 1 2000 # ivr/MP3/dial_menu_index_five.mp3 '' myDigit ''" /><execute application="log" data="INFO my_chan_var contains ${myDigit}"/><execute application="log" data="INFO my_chan_var contains ${myDigit}"/><speak name="extenSpeak2" text="Press star to repeat." engine="flite" voice="slt" ></speak></work></document>



Currently, Its playing all commands  as mentioned in dialplan and then move to Action URL after completing all command in a request. ​But I need to send my request to Action URL immidieatly when user press any digit.
​ ​
I have​ studied something "break [UDDI]" for skipping current batch request and move to other request in httapi application but I am not getting more details about it.

Please let me know, how to I implement my requirement and send my request to Action URL immidieatly when user press any digit?

Thanks,

Regards,
Manish Talwar



From: Manish Talwar
Sent: 18 September 2014 13:44
To: FreeSWITCH Users Help
Subject: RE: [Freeswitch-users] Problem in getting digits value in Playback application
 

Hi,


As you suggested, "Play_and_get_digits" command is running fine now, But I am still not able to get the value of Channel variable "myChannelVar" in a call as Its returning me blank value.


I am sending request as:


<document type="xml/freeswitch-httapi">
    ​<params></params>
    <work>
        <getVariable  name="myChannelVar" permanent="1"/>
        <execute application="play_and_get_digits" data="1 4 1 5000 # ivr/MP3/card_activate_birth_date.mp3 '' myChannelVar \d+" />
        <execute application="log" data="INFO my_chan_var contains ${myChannelVar}"/>
        <execute application="hangup"/>
    ​</work>
</document>

As a output, its play a audio file and I pressed a key 2222 digits in a call but its returning me blank value in channel variable "myChannelVar​".
I got a response in a console log as:
2014-09-18 13:28:49.739010 [DEBUG] mod_httapi.c:1217 Process Tag: [execute]
EXECUTE portaudio/5000 log(INFO my_chan_var contains )
2014-09-18 13:28:49.739010 [INFO] mod_dptools.c:1628 my_chan_var contains

I have set the permission in my HTTAPI config file to "set-vars", "get-vars" & "expand-vars" tags and its seem like working fine. For reference, please find my HTTAPI config file as an attachment.

Please suggest me how do I got a channel variable value and pass it to other POST request.

Thanks,

Regards,
Manish Talwar

From: Manish Talwar <manish.talwar@zaristo.com>
Sent: 18 September 2014 11:54
To: FreeSWITCH Users Help
Subject: Re: [Freeswitch-users] Problem in getting digits value in Playback application
 

​Its working fine now, Thanks a lot.


Regards,

Manish Talwar



From: Michael Collins <msc@freeswitch.org>
Sent: 18 September 2014 01:00
To: FreeSWITCH Users Help
Subject: Re: [Freeswitch-users] Problem in getting digits value in Playback application
 
I think what you did was set the default to allow and everything you listed underneath became denied. Try setting the default back to deny and see if it works as expected.
-MC

On Wed, Sep 17, 2014 at 7:28 AM, Manish Talwar <manish.talwar@zaristo.com> wrote:

Hi,


Please revert me about Permission setting ASAP.


Regards,

Manish Talwar



From: Manish Talwar
Sent: 17 September 2014 10:59
To: FreeSWITCH Users Help
Subject: RE: [Freeswitch-users] Problem in getting digits value in Playback application
 

Hi,


I have tried by giving below Permission with my HTTAPI config file.​


    <permission name="execute-apps" value="true">
 <!-- default to "deny" or "allow" -->
 <application-list default="allow">
       <!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case -->
       <application name="info"/>
<application name="play_and_get_digits"/>
       <application name="hangup"/>
 </application-list>
    </permission>

and from Web Application, I am sending request as:

<document type="xml/freeswitch-httapi">
    <params></params>
    <work>
        <execute application="play_and_get_digits" data="1 4 1 5000 # /ivr/8000/ivr-enter_number_to_remove_from_blacklist.wav '' foobar \d+" />
    </work>
</document>

but still its giving me error as  "[ERR] mod_httapi.c:840 Permission Denied!"​

However, its work fine with hangup application:

<document type="xml/freeswitch-httapi">
    <params></params>
    <work>
        <execute application="hangup"/>
    ​</work>
</document>

I feel, it must be some setting problem in config file only​. Please find my HTTAPI config file​ as an attachment and let me know if any changes required in this file.

Thanks,

Regards,
Manish​ Talwar

From: Michael Collins <msc@freeswitch.org>​
Sent: 16 September 2014 23:09
To: FreeSWITCH Users Help
Subject: Re: [Freeswitch-users] Problem in getting digits value in Playback application
 

On Tue, Sep 16, 2014 at 9:46 AM, Manish Talwar <manish.talwar@zaristo.com> wrote:

​Hi,


Thanks for quick response, I have already try to use this "play_and_get_digits​" command.  


Its working fine when I use this as a dialplan <extension> tag in FreeSwitch file but while using it in Web Application with "<execute>" httapi command its throwing error as "[ERR] mod_httapi.c:840 Permission Denied!"


I have tried to reset Permission of "execute-apps" in httapi-conf.xml file, but still got same error.


This is almost certainly a permissions issue with your HTTAPI config file. What do you have in your "execute-apps" section? The default is to deny and then explicitly allow only the items you specify. FYI, this is covered quite thoroughly in the FreeSWITCH 1.2 book on pages 277-280.

-MC

 


_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting@freeswitch.org
http://www.freeswitchsolutions.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://confluence.freeswitch.org
http://www.cluecon.com

FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com

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