跳至主要內容

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


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

http://mroffice.org/open in new window

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

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

他的旗舰产品名为 Dialeropen in new window

Dialer 主要做什么?

为什么是 Go?

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

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

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

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

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