Call Us Today! 877.742.2583




Page tree
Skip to end of metadata
Go to start of metadata

About

Lua script example for IVR, in this example we will to prompt user for digit and transfer to the chosen destination.

This IVR is designed to be easy to use and easy to understand.

Lua is a great easy, readable and embedded scripting language.

Prerequisites

Configure Dialplan

Configure extensions in your dialplan to call the script welcome.lua

welcome.xml (freeswitch/conf/dialplan/default/welcome.xml)

<include>
  <extension name="welcome_ivr">
    <condition field="destination_number" expression="^2910$">
      <action application="lua" data="welcome.lua"/> 
    </condition>
  </extension>
</include>

Lua script

welcome.lua (freeswitch/scripts/welcome.lua)

session:answer();
while (session:ready() == true) do
    session:setAutoHangup(false);
    session:set_tts_params("flite", "kal");
    session:speak("Welcome. Welcome to the VoIp World!. this is a Blind Users Programing Community. powered by Freeswitch, the free / ultimate PBX. thank to toni!");
    session:sleep(100);
    session:speak("please select an Action.");
    session:sleep(100);
    session:speak("to call the conference, press 1");
    session:sleep(100);
    session:speak("to call Freeswitch IVR, press 2");
    session:sleep(100);
    session:speak("to call Voice Mail, press 3");
    session:sleep(100);
    session:speak("for Music on hold, press 4");
    session:sleep(100);
    session:speak("to call me, press 0");
    session:sleep(3000);
    digits = session:getDigits(1, "", 3000);
    if (digits == "1")  then
        session:execute("transfer","9888");
    end
    if (digits == "2")  then
        session:execute("transfer","5000");
    end
    if (digits == "3")  then
        session:execute("transfer","4000");
    end
    if (digits == "4")  then
        session:execute("transfer","9999");
    end
    if (digits == "0")  then
        session:execute("transfer","voipaware@sip.voipuser.org");
    end
end

NOTES

You will need to disable enum by changing 99999XX.xml to 99999XX.xml.noload

Do not load both mod_flite and mod_cepstral at the same time.