首页 > 新闻 > 专家观点 >

应急指挥调度通信系统开发指南-激情

2016-03-23 15:44:36   作者:三众博远总经理 赵焕成   来源:CTI论坛   评论:0  点击:


  创业之初,真是激情四射。我们每晚7点半开始集中开发,最晚的时候到凌晨4点。每周六或日一起开会,讨论一周的开发进度并安排下周的开发任务。一直干,也不觉得累。
  最开始讨论的是基于FreeSWITCH和Doubango怎么能开发出应急指挥调度通信功能。先从FreeSWITCH开始说起,FreeSWITCH本身是一个B2B的软交换服务器软件。B2B意味着可以自己编写模块去控制会话,这样就容易实现应急指挥调度通信中的常用功能,例如强插、强拆、监听、代答等控制性的功能。我们安排每个人都学习FreeSWITCH,从安装到查看官方WIKI。然后基于要开发的功能列表,先在FreeSWITCH中查找能直接实现的接口。在经过大概1个多月的努力,语音调度常用的功能基本都找到了实现的方法。
  下一步便是规划整套产品。若作为一个应急行业的商业化的产品,必须要有WEB管理界面以及PC客户端,在当时的情况下(2012年年底),移动端的市场需求还不是很明显。WEB管理台怎么办?有两个思路,一种是自己完全开发一套WEB管理系统,另一种是基于开源的WEB管理台进行修改完善。开始的时候,我们准备是完全自主开发的。但开发到路由管理这块,发现需要WEB开发人员更多的VOIP知识。这个对WEB开发人员要求就算比较高了。后来经过一系列的讨论和比较,觉得FusionPBX比较适合,原因有两个,一方面这个开源WEB管理平台一直在基于FreeSWITCH的最新版本在进行开发,另一方面它的代码架构比较清晰,容易上手,容易扩展。最后决定将原有开发好的模块移植到了FusionPBX,作为调度机的WEB管理台。
  开发客户端是比较痛苦的事情,我们设计了两版调度系统。一个是基于主流厂商的样子设计了一款调度台软件界面(图1),另一个是基于WIN8风格设计的一个调度台软件界面(图2)。如下图:
\
图1 仿主流厂商界面
\
图2 WIN8风格界面
  鉴于有曾经外包项目中积累的客户端的基础,最终选择了图1中的样式进行开发完善。不过,现在想来还是觉得那个未实现出来的比较炫。希望未来有同行能够实现基于WIN8风格的调度台界面。
  调度台软件的开发,可以从长远进行考虑。就是将底层库做成SDK模式,和业务界面分开实现。这样的好处是便于修改,同时可以为一些需要定制自有的界面客户提供相应的SDK接口支持。我们就是这样设计的,所以现在可以方便为客户提供不同类型的支持。既可以整套软件采购,也可以只采购服务器软件利用SDK进行一些特殊定制。
  调度台软件里比较基础的三个模块分别是成员列表、成员状态和线路状态。这些需要和FreeSWITCH进行对接,通过获取分机的注册状态及通道(channel)的状态来实时更新。这里就涉及到一个问题,客户端是轮询获取还是服务器主动推送。这两种方式各有利弊。另外,成员列表既通讯录功能,需要在WEB后台设置好,然后调度台在登录时获取。这里也有个更新的问题,就是后台增加一个成员后,调度台是否需要实时更新,如何更新。
  另一个突出的问题就是闪屏的问题,当调度台管理的成员比较多的时候,例如500个,那么在单屏幕显示时,怎么避免闪屏也是问题。因为这样的客户体验不是很好。
  调度台中的拨码盘,虽然是个小模块,但其中需要注意的细节很多。例如通话中发送DTMF码、拨码盘键值和调度台键盘键值相关联、呼叫按钮的摆放位置(考虑人性化操作)等。
  对于调度台硬件上的联动话机,比较人性化的操作应该是摘机后,然后拨号。但现在若在调度台上直接集成IP语音话机的话,只能通过回拨的方式实现。这种操作在某些行业,例如船舶行业或公安武警行业,这样的操作和以前直接摘机拨打的方式不一样,用户操作起来不方便。现在解决这个问题比较通用的解决方案是通过话筒和串口通信模块的组合,实现通话流程的控制。其实也可以尝试用无线的方式解决,例如WIFI、蓝牙、NFC等。
  调度台软件里的功能还有很多,我们在后续的文章中继续探讨,同时会讲述调度系统一个硬性功能-录音录像的技术实现方式探讨。
 

相关阅读:

分享到: 收藏

专题