• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

FreeSwitch 用Lua脚本写个小游戏

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1. 编写目的

编写一个特别简单脑残的小游戏,算是记录一下在FreeSwitch通话时,如何记录用户的按键信息的一个小例子。

2. 效果展示

用户连接FreeSwitch并拨打 1236 后,接通后可以听到背景音乐,然后按键,可以在FreeSwitch控制台看到按键信息的结果。

具体规则:按0~9中的数x,输出40X;按 * 时输出40和(x-1);按 # 时输出40和(x+1)。
如图所示:

3. 具体步骤

  1. 编写lua脚本文件game.lua

    local x = 1
    function onInput(s,type,obj,arg)
        if (type == "dtmf")  then
            freeswitch.consoleLog("INFO", "DTMF: ".. obj.digit .. "Duration:" .. obj.duration .. "\n")
            if (obj.digit == "*") then
                x = x - 1
                if (x<0) then x = 0 end
            elseif (obj.digit == "#") then
                x = x + 1
            else 
                x = obj.digit
            end	
            s:execute("system","banner -w 40" .. x)
        end
        return ''
    end
    session:setInputCallback('onInput','')
    session:streamFile("local_stream://moh")
    
  2. 安装banner,因为为了控制台很好的展示效果,Linux下可以安装一下banner,安装方法特别简单。

    yum -y install banner
    
  3. 将这个脚本文件放到路径 /usr/share/freeswitch/scripts 文件夹中。

  4. 编辑/etc/freeswitch/dialplan路径下的 default.xml 文件。

    <extension name="Number Game">
      <condition field="destination_number" expression="^1236$">
        <action application="lua" data="game.lua"/>
      </condition>
    </extension>
    
  5. 在FreeSwitch控制台(也就是运行FreeSwitch成功后的那个控制台)中输入reloadxml。

  6. 使用SIP客户端软件连接后,拨打1236,然后就可以开始玩游戏了,注意同时查看FreeSwitch控制台的输出。

4. 注意事项

可能是自己操作不当,我使用Windows下安装的XLite,然后拨打电话后按按键并没有任何效果!
但是后来我选择在windows系统上安装了一个安卓模拟器,然后安装APP Sipdroid,然后拨打后按键就管用了。
也就是说,我自己使用的是windows系统,安装了VMWare虚拟机,并安装了蓝叠安卓模拟器,然后再蓝叠上装Sipdroid,VMWare的CentOS7上跑FreeSwitch。

5. 总结

这个简单例子可以发展成为一个IVR(Interractive Voice Response,交互式语音响应),主要是用Lua来检测按键检测的功能。

Smileyan 2019年3月17日


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Lua中的table函数库发布时间:2022-07-22
下一篇:
对于cocos2d-xlua的防护措施发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap