FreeSWITCH支持使用Lua、Javascript、Perl、Java等嵌入式语言脚本来控制呼叫流程。也有人说,为什么不支持BASIC呢?毕竟,BASIC也是一门语言,而且,它足够简单。
在2014年愚人节那天,FreeSWITCH开发团队宣布FreeSWITCH开始支持BASIC。当然,这并不是一个玩笑,FreeSWITCH是认真的。
通过使用如下Diaplan,就可以在有电话呼入时执行一个BASIC脚本hello.bas
。
extension name="basic">
<condition field="destination_number" expression="^basic$">
<action application="basic" data="/tmp/hello.bas"/>
<condition>
</extension> </
在FreeSWITCH的源代码中也给出了一个示例脚本,内容如下:
s$ = "hello "
s$ = s$ + "world"
FS_LOG "WARNING" s$ + "!"
FS_EXECUTE "answer"
FS_EXECUTE "sleep" "1000"
FS_EXECUTE "playback" "misc/misc-cluecon_is_premier_conference.wav”
当然,因为它是BASIC嘛,所以,很容易理解,以上脚本就是在日志中输出hello world
,并执行answer
,
sleep
, playback
等App。
从该模块的源代码中,可以看出它提供了以下函数:
(bi, "FS_EXECUTE", fun_execute);
mb_register_func(bi, "FS_GETARG", fun_getarg);
mb_register_func(bi, "FS_GETVAR", fun_getvar);
mb_register_func(bi, "FS_SETVAR", fun_setvar);
mb_register_func(bi, "FS_API", fun_api);
mb_register_func(bi, "FS_LOG", fun_log); mb_register_func
对BASIC有兴趣的小伙伴们可以自己试一下,我们就不深入研究了。该模块的发布声明在这里:http://freeswitch.org/node/480 。