Lua Welcome IVR example
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
- mod_lua
- mod_flite and easy upgrade to mod_cepstral
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