21.2 MROffice:一个使用 Go 的呼叫中心网络电话 (VOIP) 系统

http://mroffice.org/

这个例子表明,Go 也适用于简单、可靠的应用程序编程。

MROffice 是一家位于新西兰的公司,专门从事市场调查软件。他们在 Freeswitch 的基础上使用 Go 为市场调查的呼叫中心建立了一个电话解决方案。Kees Varekamp 是有市场研究软件的背景的一位开发人员,他发现该领域的大多数现有软件都很糟糕,于是在 2010 年推出了 MROffice,为市场研究行业提供更好的软件。

他的旗舰产品名为 Dialer

Dialer 主要做什么?

  • 它把呼叫中心的面试官和受访者联系起来。
  • 它在采访平台(提供脚本和收集统计数据)和 VoIP 拨号器(进行实际的电话通话)之间提供一座桥梁。

为什么是 Go?

Dialer 的第一个版本是用 Python 写的,但他的经验是,Python 作为一种动态脚本语言,对于长期运行的服务器进程来说,也许不是一个好的选择:发生了很多运行时的错误,而这些错误本可以在编译时被发现。

正如 Varekamp 先生在悉尼 Go 用户组(2011 年 3 月)所说:

“当 Go 出现的时候,我立刻就理解到了 (made sense to me):类型安全,已编译,感觉像一种脚本语言。”

所以他把 Python 代码移植到 Go 上。Go 的并发模型适合这个问题:一个 goroutine 被启动来处理每个呼叫、面试者和被面试者,他们都通过通道来进行通信。httpwebsocket 库使得编写一个用户管理界面变得容易。

该产品现在已经在多个呼叫中心运行,并且正在进行使用神经网络的预测拨号器设计。