傳遞給lua腳本的Freeswitch參數是空格分隔的(請參閱http://wiki.freeswitch.org/wiki/Mod_lua#Passing_Arguments)。在Freeswitch中轉義Lua參數
我已經發現你可以用單引號包裝參數,然後忽略這個空間,但是我不能解決如何轉義單引號。
帶空格的參數應該如何傳遞給Lua?
重現問題:
例的Lua腳本:
argumentOne=argv[1];
argumentTwo=argv[2];
argumentThree=argv[3];
argumentFour=argv[4];
freeswitch.consoleLog("info", "*******************\n");
freeswitch.consoleLog("info", argumentOne);
freeswitch.consoleLog("info", "\n");
freeswitch.consoleLog("info", argumentTwo);
freeswitch.consoleLog("info", "\n");
freeswitch.consoleLog("info", argumentThree);
freeswitch.consoleLog("info", "\n");
freeswitch.consoleLog("info", argumentFour);
freeswitch.consoleLog("info", "\n");
freeswitch.consoleLog("info", "*******************\n");
這工作得很好:
[email protected]> luarun luaargumenttest.lua one two 'thr ee' four
+OK
[email protected]> 2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197 *******************
2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197 one2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197
2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197 two2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197
2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197 thr ee2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197
2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197 four2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197
2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197 *******************
但我怎麼會在參數值的 「三不歡」 送?
我試過\','',''',還有「和\」,但沒有這些工作。
感謝斯坦尼斯拉夫。我將在Jira中提出一個問題,目前我會破解在包裝參數之前從參數值中剝離單引號。 –
您還可以更改工作流程 - 例如,在ESL中捕獲事件並執行代碼 –