[Freeswitch-users] xml_curl and ivr menus

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


Sorry, ignore the first sentence about NAT/new book, I got two different
threads confused in my head there for a moment!

Cal

On Thu, Dec 27, 2012 at 8:48 PM, Cal Leeming [Simplicity Media Ltd] <
cal.leeming at simplicitymedialtd.co.uk> wrote:

> 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/4741dc10/attachment-0001.html 


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