MYVOIPAPP

呼叫记录 (话单)

1. 基本呼叫模型

如果需要了解 miniSIPServer 的呼叫记录(Call detail record,"CDR",话单)的细节,我们首先需要理解 miniSIPServer 的基本呼叫模型。基本呼叫模型基于 ETSI-23.078 标准规范定义的“半呼叫 (half call)”模型,简单而言就是将一个呼叫分解为两个“半呼叫”:(1)发端半呼叫(originating half);以及(2)终端半呼叫(terminating half)。请参考下图:

基本呼叫模型

在一个基本呼叫中,例如上图中的 A 呼叫 B,miniSIPServer 会分配两个呼叫段(半呼叫)分别连接呼叫的两端。一个呼叫段连接发起呼叫的主叫用户,我们将这个呼叫段命名为“主叫侧”或者“O-侧”;另一个呼叫段连接接受呼叫的被叫用户,我们将这个呼叫段命名为“被叫侧”或者“T-侧”。

每一段呼叫都能产生自己的呼叫记录,这也意味着一个呼叫有可能产生两个呼叫记录。来自O-侧的呼叫记录是“主叫侧话单”或者O-CDR,而来自T-侧的呼叫记录就是“被叫侧话单”或者T-CDR。请参考下图的说明:

呼叫记录模型

主叫侧和被叫侧都有可能是本地用户或者外部用户(例如外线或者 SIP 中继),因此实际上 miniSIPServer 有可能产生四种类型的话单:(1)本地用户主叫侧话单;(2)本地用户被叫侧话单;(3)外部用户主叫侧话单;以及(4)外部用户被叫侧话单。

我们可以配置 miniSIPServer 产生所有这些类型的话单,也可以配置为只产生部分类型的话单。

2. 配置

请点击菜单“数据 / 系统配置 / 话单”,显示以下配置对话框:

话单配置项

在这个对话框中,我们指示 miniSIPServer 生成哪些类型的话单。在绝大多数情况,主叫侧话单和被叫侧话单基本一致,因此我们建议一般只需生成主叫侧话单即可。

同时, miniSIPServer 也可以将所有呼叫记录保存在本地话单文件中。

3. 话单文件

话单文件保存在应用数据目录下的“cdr”子目录中。话单文件是采用CSV文件格式的文本文件,我们可以使用(1)微软 Excel、(2)LibreOffice calc、以及其他任何文本工具打开并分析这些文件。以下是用 Excel 打开一个话单文件的示例:

CDR format

只要当天至少有一个呼叫,miniSIPServer 默认每天产生一份话单文件。在这些文件中,一行代表一条呼叫记录,每一条记录有以下关键项:

项目 说明
direction

说明是主叫侧话单、还是被叫侧话单。

“0” 说明是主叫侧话单,“1”说明是被叫侧话单。

caller_number 发起呼叫的用户的号码。
dailed_number 主叫用户原始拨打的号码。
called_number

呼叫最终的目的号码。

在大多数呼叫场景中,这个号码和“dialed_number”是一致的,但某些情况下也会有差别。

例如,如果拨号计划修改了被叫号码,那么这两个号码就会不同。另外,在各项业务中(比如自动话务员业务),主叫拨打号码触发业务,然后在交互过程中输入最终的目的号码,此时“called_number”就是最终的目的号码。

duration 呼叫通话时间。如果被叫没有应答呼叫,则该项为零。
fee 这是个非常古老的项,在“话吧”业务中记录呼叫的费用。
setup_time miniSIPServer 收到主叫发起的呼叫时的时间戳。
alert_time 被叫用户振铃时的时间戳。
connect_time 被叫用户应答时的时间戳。
release_time 呼叫被释放时的时间戳。
external line 如果呼叫来自或者发给外线时,记录该外线的号码。
service 这是特殊的内部项, miniSIPServer 用于记录当前呼叫触发了内部哪种业务。
address 在主叫侧话单,记录主叫用户的地址;在被叫侧话单,记录被叫用户的地址。
FCI 提供呼叫/业务信息,这是个非常特殊的项,记录了与该呼叫相关的一些内部参数,用于我们的研发团队检查问题。