[Freeswitch-users] xml_curl and ivr menus

Cal Leeming [Simplicity Media Ltd] cal.leeming at simplicitymedialtd.co.uk
Thu Dec 27 23:48:35 MSK 2012


Anthony has kindly sent across the NAT section of the new book, and the
feedback so far has been great.

I'm going to start on this tomorrow, will paste the URL once ready -
contributions/amendments are obviously welcome.

Cal

On Thu, Dec 27, 2012 at 5:33 PM, Michael Collins <msc at freeswitch.org> wrote:

> Gentlemen,
>
> Many thanks for stepping up to help get this documented. If anyone needs
> assistance w/ wiki stuff or has any documentation questions please let me
> know and I will be glad to assist!
>
> Thanks,
> MC
>
>
> On Thu, Dec 27, 2012 at 8:15 AM, Tim Meade <Tim.Meade at millicorp.com>wrote:
>
>>  That’s great Cal!  I was hoping to find the time to add some examples
>> myself.    Big one is that there is not a section for phrases.   The
>> example below is working for me.****
>>
>> ** **
>>
>> Let me know if there is anything I can do to help.  We use xml_curl for
>> just about everything here.****
>>
>> ** **
>>
>> Tim****
>>
>> ** **
>>
>> *From:* freeswitch-users-bounces at lists.freeswitch.org [mailto:
>> freeswitch-users-bounces at lists.freeswitch.org] *On Behalf Of *Cal
>> Leeming [Simplicity Media Ltd]
>> *Sent:* Wednesday, December 26, 2012 3:57 PM
>> *To:* FreeSWITCH Users Help
>> *Subject:* Re: [Freeswitch-users] xml_curl and ivr menus****
>>
>> ** **
>>
>> Tim,****
>>
>> ** **
>>
>> Chiming in on this, as my focus has been purely on mod_xml_curl for the
>> last 2 months.****
>>
>> ** **
>>
>> My apologies that you struggled with finding a working examples, the
>> mod_xml_curl documentation is still a work in progress - and despite that
>> it has recently had a partial re-write, there are still many parts which
>> aren't clear enough.****
>>
>> ** **
>>
>> I will be updating the docs soon (in the next week) to show example
>> request/response of as many different scenarios as possible, along with
>> context specific descriptions of each variable.****
>>
>> ** **
>>
>> Cal****
>>
>> ** **
>>
>> On Tue, Dec 25, 2012 at 2:07 PM, Tim Meade <Tim.Meade at millicorp.com>
>> wrote:****
>>
>> Here is an example of the xml_curl phrases section.  This is not in the
>> WIKI…..  I’ll try to update.  Notice the language section….****
>>
>>  ****
>>
>> <document type="freeswitch/xml">****
>>
>>                   <section name="phrases">****
>>
>>                       <macros>****
>>
>>                            <include>****
>>
>>                                 <language name="en" sound-path="
>> $${sounds_dir}/en/us/callie" tts-engine="cepstral" tts-voice="callie">***
>> *
>>
>>                                      <macro name="demo_ivr_main_menu"
>> pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example
>> on how to use this macro in an IVR -->****
>>
>>                                                <input pattern="(.*)">****
>>
>>                                                  <match>****
>>
>>                                                    <!-- string together
>> several existing sound files to create one long greeting -->****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>****
>>
>>                                                    <!-- note that you
>> can do more than just play files, e.g. have pauses and do TTS -->****
>>
>>                                            ****
>>
>>                                                    <!-- Menu option 1:
>> Call FreeSWITCH conference-->****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-enter_ext_pound.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="silence_stream://1500"/>****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-please.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="voicemail/vm-press.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="digits/1.wav"/>****
>>
>>                                            ****
>>
>>                                                    <!-- Menu option 2:
>> Do FreeSWITCH echo test -->****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-please.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="voicemail/vm-press.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="digits/2.wav"/>****
>>
>>                                            ****
>>
>>                                                    <!-- Menu option 3:
>> Listen to Music on Hold -->****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-to_listen_to_moh.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-please.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="voicemail/vm-press.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="digits/3.wav"/>****
>>
>>                                            ****
>>
>>                                                    <!-- Menu option 4:
>> Register for ClueCon -->****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-register_for_cluecon.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="digits/4.wav"/>****
>>
>>                                            ****
>>
>>                                                    <!-- Menu option 5:
>> Listen to screaming monkeys -->****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-please.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="voicemail/vm-press.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="digits/5.wav"/>****
>>
>>                                            ****
>>
>>                                                    <!-- Menu option 6:
>> Hear a sample submenu -->****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-please.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="voicemail/vm-press.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="digits/6.wav"/>****
>>
>>                                            ****
>>
>>                                                    <!-- Menu option 9:
>> Repeat these options -->****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-to_repeat_these_options.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="ivr/ivr-please.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="voicemail/vm-press.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="digits/9.wav"/>****
>>
>>                                                    <action function="
>> play-file" data="silence_stream://2000"/>****
>>
>>                                                  </match>****
>>
>>                                                </input>****
>>
>>                                              </macro>      ****
>>
>>                                        </language>
>>       ****
>>
>>                                 </include>****
>>
>>                        </macros>
>>                 ****
>>
>>                   </section>****
>>
>>                 </document>****
>>
>>  ****
>>
>>  ****
>>
>> Thanks All****
>>
>>  ****
>>
>> Tim****
>>
>>  ****
>>
>> *From:* freeswitch-users-bounces at lists.freeswitch.org [mailto:
>> freeswitch-users-bounces at lists.freeswitch.org] *On Behalf Of *Tim Meade
>> *Sent:* Monday, December 24, 2012 5:05 PM
>> *To:* Abaci; FreeSWITCH Users Help
>> *Subject:* Re: [Freeswitch-users] xml_curl and ivr menus****
>>
>>  ****
>>
>> Thank you Abaci….   Just found that myself under the xml_curl section of
>> the wiki…..  I hadn’t noticed the xml_curl configuration parameters for the
>> return xml are different.    ****
>>
>>  ****
>>
>> Here is the completed working configuration from xml_curl debug_on.   ***
>> *
>>
>>  ****
>>
>> <document type="freeswitch/xml">****
>>
>> <section name="configuration">****
>>
>> <configuration name="ivr.conf" description="IVR menus">****
>>
>> <menus>****
>>
>> <include>****
>>
>> <!-- demo IVR setup -->****
>>
>> <!-- demo IVR, Main Menu -->****
>>
>> <menu name="tivr"****
>>
>> greet-long="phrase:demo_ivr_main_menu"****
>>
>> greet-short="phrase:demo_ivr_main_menu_short"****
>>
>> invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"****
>>
>> exit-sound="voicemail/vm-goodbye.wav"****
>>
>> confirm-macro=""****
>>
>> confirm-key=""****
>>
>> tts-engine="flite"****
>>
>> tts-voice="rms"****
>>
>> confirm-attempts="3"****
>>
>> timeout="10000"****
>>
>> inter-digit-timeout="2000"****
>>
>> max-failures="3"****
>>
>> max-timeouts="3"****
>>
>> digit-len="4">****
>>
>> <!-- The following are the definitions for the digits the user dials -->*
>> ***
>>
>> <!-- Digit 1 transfer caller to the public FreeSWITCH conference -->****
>>
>> <entry action="menu-exec-app" digits="1" param="bridge sofia/$${domain}/
>> 888 at conference.freeswitch.org"/>****
>>
>> <entry action="menu-exec-app" digits="2" param="transfer 9196 XML
>> default"/> <!-- FS echo -->****
>>
>> <entry action="menu-exec-app" digits="3" param="transfer 9664 XML
>> default"/> <!-- MOH -->****
>>
>> <entry action="menu-exec-app" digits="4" param="transfer 9191 XML
>> default"/> <!-- ClueCon -->****
>>
>> <entry action="menu-exec-app" digits="5" param="transfer 1234*256 enum"/>
>> <!-- Screaming monkeys -->****
>>
>> <!-- Using a regex in the digits tag lets you define a dial pattern for
>> the caller****
>>
>> You may define multiple regexes if you need a different pattern for some
>> reason -->****
>>
>> <entry action="menu-exec-app" digits="/^(10[01][0-9])$/" param="transfer
>> $1 XML features"/>****
>>
>> <entry action="menu-top" digits="9"/> <!-- Repeat this menu -->****
>>
>> </menu>****
>>
>> </include>****
>>
>> </menus>****
>>
>> </configuration>****
>>
>> </section>****
>>
>> </document>****
>>
>>  ****
>>
>> *From:* Abaci [mailto:abaci64 at gmail.com]
>> *Sent:* Monday, December 24, 2012 4:45 PM
>> *To:* FreeSWITCH Users Help
>> *Cc:* Tim Meade
>> *Subject:* Re: [Freeswitch-users] xml_curl and ivr menus****
>>
>>  ****
>>
>> you're also missing the "section" element.
>>
>> On 12/24/2012 4:43 PM, Abaci wrote:****
>>
>>  Here is a sample from my server, I highlighted the missing stuff.
>>
>> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
>> <document type="freeswitch/xml">
>>   <section name="configuration">
>> *    <configuration name="ivr.conf" description="IVR menus">
>>       <menus>*
>>         <menu name="ivrmenu1"
>>               invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
>>               exit-sound="voicemail/vm-goodbye.wav"
>>               timeout ="3000"
>>               inter-digit-timeout="2000"
>>               max-failures="2"
>>               digit-len="3"
>>               phrase-lang="en">
>>           <entry action="menu-exec-app" digits="0" param="transfer 11 XML
>> voicemail " />
>>           <entry action="menu-exec-app" digits="1" param="transfer
>> ivrmenu2 XML ivr " />
>>           <entry action="menu-exec-app" digits="2" param="transfer
>> ivrmenu3 XML ivr " />
>>         </menu>
>> *      </menus>
>>     </configuration>*
>>   </section>
>> </document>
>>
>> On 12/24/2012 4:22 PM, Tim Meade wrote:****
>>
>> The items I pasted below are from the cat of the xml_curl debug_on
>> command.  It certainly appears to me that freeswitch is getting the correct
>> name in this case ‘tivr’ which is what shows in both the dialplan and the
>> curl’d ivr menu.****
>>
>>  ****
>>
>> My concerns now are dealing with the xml format for the ivr as I have
>> found several different versions on the wiki and in the prior postings.**
>> **
>>
>>  ****
>>
>> *From:* freeswitch-users-bounces at lists.freeswitch.org [
>> mailto:freeswitch-users-bounces at lists.freeswitch.org<freeswitch-users-bounces at lists.freeswitch.org>]
>> *On Behalf Of *Abaci
>> *Sent:* Monday, December 24, 2012 3:42 PM
>> *To:* FreeSWITCH Users Help
>> *Subject:* Re: [Freeswitch-users] xml_curl and ivr menus****
>>
>>  ****
>>
>> on freeswitch enable xml_curl debug and see if freeswitch is actually
>> getting the correct ivr
>> 'xml_curl debug_on'
>>
>> On 12/24/2012 2:20 PM, Tim Meade wrote:****
>>
>> I am continually getting ‘unable to find menu’ while trying to retrieve
>> an ivr_menu using xml_curl****
>>
>>  ****
>>
>> Using xml_curl debug_on ****
>>
>>  ****
>>
>> My DialPlan****
>>
>>  ****
>>
>> <document type="freeswitch/xml">****
>>
>> <section name="dialplan" description="example_curl_dialplan">****
>>
>> <context name="public">****
>>
>> <extension name="ws_origination">****
>>
>> <condition field="destination_number" expression="^\d+$" break="on-true">
>> ****
>>
>> <action inline="true" application="set" data="continue_on_fail=true"/>***
>> *
>>
>> <action inline="true" application="set" data="hangup_after_bridge=true"/>
>> ****
>>
>> <action application="answer"/>****
>>
>> <action application="ivr" data="tivr"/>****
>>
>> </condition>****
>>
>> </extension>****
>>
>> </context>****
>>
>> </section>****
>>
>>  ****
>>
>> And the ivr configuration returned by my xml_curl****
>>
>>  ****
>>
>> <include>****
>>
>> <!-- demo IVR setup -->****
>>
>> <!-- demo IVR, Main Menu -->****
>>
>> <menu name="tivr"****
>>
>> greet-long="phrase:demo_ivr_main_menu"****
>>
>> greet-short="phrase:demo_ivr_main_menu_short"****
>>
>> invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"****
>>
>> exit-sound="voicemail/vm-goodbye.wav"****
>>
>> confirm-macro=""****
>>
>> confirm-key=""****
>>
>> tts-engine="flite"****
>>
>> tts-voice="rms"****
>>
>> confirm-attempts="3"****
>>
>> timeout="10000"****
>>
>> inter-digit-timeout="2000"****
>>
>> max-failures="3"****
>>
>> max-timeouts="3"****
>>
>> digit-len="4">****
>>
>> <!-- The following are the definitions for the digits the user dials -->*
>> ***
>>
>> <!-- Digit 1 transfer caller to the public FreeSWITCH conference -->****
>>
>> <entry action="menu-exec-app" digits="1" param="bridge sofia/$${
>> domain}/888 at conference.freeswitch.org"/>****
>>
>> <entry action="menu-exec-app" digits="2" param="transfer 9196 XML
>> default"/> <!-- FS echo -->****
>>
>> <entry action="menu-exec-app" digits="3" param="transfer 9664 XML
>> default"/> <!-- MOH -->****
>>
>> <entry action="menu-exec-app" digits="4" param="transfer 9191 XML
>> default"/> <!-- ClueCon -->****
>>
>> <entry action="menu-exec-app" digits="5" param="transfer 1234*256 enum"/>
>> <!-- Screaming monkeys -->****
>>
>> <!-- Using a regex in the digits tag lets you define a dial pattern for
>> the caller****
>>
>> You may define multiple regexes if you need a different pattern for some
>> reason -->****
>>
>> <entry action="menu-exec-app" digits="/^(10[01][0-9])$/" param="transfer
>> $1 XML features"/>****
>>
>> <entry action="menu-top" digits="9"/> <!-- Repeat this menu -->****
>>
>> </menu>****
>>
>> </include>****
>>
>>  ****
>>
>> Any ideas on the ‘unable to find menu’ ????****
>>
>>  ****
>>
>> Thanks****
>>
>>  ****
>>
>> Tim****
>>
>>  ****
>>
>>  ****
>>
>>  ****
>>
>>
>>
>> ****
>>
>> _________________________________________________________________________****
>>
>> Professional FreeSWITCH Consulting Services:****
>>
>> consulting at freeswitch.org****
>>
>> http://www.freeswitchsolutions.com****
>>
>>  ****
>>
>> ****
>>
>> ****
>>
>>  ****
>>
>> Official FreeSWITCH Sites****
>>
>> http://www.freeswitch.org****
>>
>> http://wiki.freeswitch.org****
>>
>> http://www.cluecon.com****
>>
>>  ****
>>
>> FreeSWITCH-users mailing list****
>>
>> FreeSWITCH-users at lists.freeswitch.org****
>>
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users****
>>
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users****
>>
>> http://www.freeswitch.org****
>>
>>   ****
>>
>> ** **
>>
>> _________________________________________________________________________****
>>
>> Professional FreeSWITCH Consulting Services:****
>>
>> consulting at freeswitch.org****
>>
>> http://www.freeswitchsolutions.com****
>>
>>  ****
>>
>> ****
>>
>> ****
>>
>>  ****
>>
>> Official FreeSWITCH Sites****
>>
>> http://www.freeswitch.org****
>>
>> http://wiki.freeswitch.org****
>>
>> http://www.cluecon.com****
>>
>>  ****
>>
>> FreeSWITCH-users mailing list****
>>
>> FreeSWITCH-users at lists.freeswitch.org****
>>
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users****
>>
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users****
>>
>> http://www.freeswitch.org****
>>
>>   ****
>>
>>  ****
>>
>>
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> http://www.freeswitchsolutions.com
>>
>> 
>> 
>>
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> http://wiki.freeswitch.org
>> http://www.cluecon.com
>>
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org****
>>
>> ** **
>>
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> http://www.freeswitchsolutions.com
>>
>> 
>> 
>>
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> http://wiki.freeswitch.org
>> http://www.cluecon.com
>>
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>>
>>
>
>
> --
> Michael S Collins
> Twitter: @mercutioviz
> http://www.FreeSWITCH.org
> http://www.ClueCon.com
> http://www.OSTAG.org
>
>
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
>
> 
> 
>
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://wiki.freeswitch.org
> http://www.cluecon.com
>
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20121227/7e8647fc/attachment-0001.html 


Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-users mailing list