《FreeSWITCH参考手册》

1.1 mod_basic

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。

从该模块的源代码中,可以看出它提供了以下函数:

mb_register_func(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);

对BASIC有兴趣的小伙伴们可以自己试一下,我们就不深入研究了。该模块的发布声明在这里:http://freeswitch.org/node/480



本书版权所有 © 杜金房及各位贡献者 2016-2023,仅供在线阅读,谢绝一切形式转载。 本书还在写作中,持续更新。 如果你也想写上几句,欢迎加入我们。 | 返回首页 |