好久没有写模块了,今天写写mod_xml_rpc这个模块。 这是一个比较古老的模块,它相当于自带了一个Web服务器,主要为FreeSWITCH提供了XML RPC接口,允许应用程序通过XML RPC进行远程过程调用,执行FreeSWITCH中的API。 该模块默认是不加载的,如果使用的话,可以通过 load mod_xml_rpc命令加载。 加载完该模块后,它默认监听8080端口。用浏览器打开该端口(如http://localhost:8080)就可以看到一个Web页面。注意,该页面默认使用了HTTP Basic验证,验证的用户名和密码可以在该模块的配置文件中找到(conf/autoload_configs/xml_rpc.conf.xml)。 也可以直接执行API,如在浏览器的地址栏中输入 http://localhost:8080/api/status 就可以执行 status API命令,输入结果如今天的图所示。 如果API命令有参数,则使用类似下列的方式输入,如: http://localhost:8080/api/sofia?status http://localhost:8080/api/sofia?status profile internal 注意,上面API参数中的空格要用 代替。 下面是一段真正使用XML RPC执行API的一段Java代码 config.setServerURL(new URL("http://localhost:8080/RPC2")); config.setBasicUserName("freeswitch"); config.setBasicPassword("works"); client.setConfig(config); client.execute("freeswitch.api", new Object[]{“sofia", “status"}); 具体含义我就不讲了,读者自己体会一下。 当然,如果该模块功能仅限于此的话,那就太没意思了。事实上,该模块还有很多有趣的功能,只是,文档比较少,因而大家用的也比较少。 大约去年这个时候吧,我决定利用FreeSWITCH自带的Web服务器做点事情,最直观的想法就是,它实际上可以直接做FreeSWITCH的Web管理界面。其它的FreeSWITCH管理界面太复杂,一般都会依赖于PHP、MySQL数据库、Apache之类的东西,而如果将Web界面直接在FreeSWITCH中实现,那就减少了这些依赖,实现真正的开箱即用(Out-of-the-box)。 当然,说起来容易做起来难,我只是为了实现我的想法写了一小部分代码——叫做FreeSWITCH-Portal。如果你按我说的打开了浏览器并访问了上述地址,你就应该能看到一个portal目录,点击它或直接输入以下地址就能进入我们的Portal了: http://localhost:8080/portal/index.html 目前,你可以通过它查看FreeSWITCH的各种状态,甚至,当你打电话时,它也能动态显示当前的通话。一般来说页面右上角会有个“Socket Disconnected”,这个没有关系,但是,如果你开启了WebSocket支持并且你的浏览器支持WebSocket的话,这个错误就会消失,而且,界面会更友好。 前几天,我还加入了一个测试的功能,如果配置正确的话,也可以通过该界面添加用户和网关。 此外,该模块中我还留了一些高级功能,没体现在界面上,这部分先不讲了,先卖个关子,等着看我的书吧。 ---------------------------------------- 题图:FreeSWITCH status ---------------------------------------- FreeSWITCH-CN是什么? FreeSWITCH-CN是FreeSWITCH中文社区,我们的官方网站是 http://www.freeswitch.org.cn 。FreeSWITCH-CN同时也是一个微信公共账号,可以通过点击本页最顶端的「FreeSWITCH中文社... 」,或在通迅录->订阅号中搜索「FreeSWITCH-CN」来订阅,也可以到官方网站上扫描二维码。当然,不管是新用户还是老用户,随时都可以输入m或1显示本账号的主菜单。 FreeSWITCH-CN的账号维护者是Seven Du,在此,他会分享多年的FreeSWITCH使用经验,分享一些对开源VoIP软件以及软件社区的思考,并隔三差五的解答一些粉丝关心的问题。Seven Du于2007年听说、2008年开始使用FreeSWITCH,2009年创办FreeSWITCH-CN中文社区,2011~2013连续三年参加了在美国芝加哥举办的ClueCon全球VoIP开发者大会,该会议是由FreeSWITCH核心团队主办的。 如果你在学习和使用FreeSWITCH的过程中,有什么有趣的故事,也欢迎与我分享。移动设备上打字不方便,如果想写长的留言可以发邮件到 wechat@freeswitch.org.cn 。
mod_xml_rpc
2020-12-21 10:58:05
浏览数 (1)