我正在使用Lua编写IVR,并想在其中运行xml脚本。

这是运行IVR的Lua代码

i = 0 
j = 0 

while (session:ready() == true) do 

session:setAutoHangup(false); 

repeat 

digits = session:playAndGetDigits(1, 3, 3, 3000, "#", "/var/sipxdata/mediaserver/data/ivrscript/sampleIvrS1test/prompts/Corporate.wav", "shout://translate.google.com/translate_tts?tl=en&q=This+option+is+not+valid", "\\d+"); 

if ( digits == "1") then 

repeat 

digits = session:playAndGetDigits(1, 3, 3, 3000, "#", "/var/sipxdata/mediaserver/data/ivrscript/sampleIvrS1test/prompts/coral_converted.wav","shout://translate.google.com/translate_tts?tl=en&q=This+option+is+not+valid", "\\d+"); 

if (digits == "1") then 
language = "de" 
session:execute("set","transfer_ringback=$${us-ring}"); 
session:execute("bridge","sofia/clixxo.co.in/208@10.161.17.112"); 
session:hangup(); 
destroy(0); 

elseif (digits == "2") then 

language = "de" 
session:execute("set","transfer_ringback=$${us-ring}"); 
session:execute("bridge","sofia/clixxo.co.in/101@10.161.17.112"); 
session:hangup(); 
destroy(0); 

else 
language = "de" 
session:execute("set","transfer_ringback=$${us-ring}"); 
session:execute("bridge","sofia/clixxo.co.in/200@10.161.17.112"); 
session:hangup(); 
destroy(0); 

end 

until j == 2 
end 

until i == 5 

end 

如果用户按下数字3,则我想运行以下XML代码的功能。这可以通过Lua xml解析器实现,但我不知道如何?

<permission>
<name>900Dialing</name>
<label>900Dialing</label>
<defaultValue>false</defaultValue>
<type>CALL</type>
<builtIn>true</builtIn>
</permission>

Centos已经有XPAT xml解析器,但我不知道如何使用它?

点赞
用户1461066
用户1461066

你可以像使用 Lua 一样从 mod_perl 运行 Perl 脚本。这样会有一些额外的开销,但你会享受到 Perl 的所有好处。同时,最灵活的方法是使用 Event Socket 库并从外部应用程序控制调用。在这种情况下,你可以选择更广泛的编程语言。

2015-06-05 13:44:41