如果需要了解 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 产生所有这些类型的话单,也可以配置为只产生部分类型的话单。
请点击菜单“数据 / 系统配置”,然后点击“基本呼叫”页:
在这个对话框中,我们指示 miniSIPServer 生成哪些类型的话单。在绝大多数情况,主叫侧话单和被叫侧话单基本一致,因此我们建议一般只需生成主叫侧话单即可。
请参考用户手册进一步了解各配置项的细节。
话单文件保存在应用数据目录下的“cdr”子目录中。话单文件是采用CSV文件格式的文本文件,我们可以使用(1)微软 Excel、(2)LibreOffice calc、以及其他任何文本工具打开并分析这些文件。以下是用 Excel 打开一个话单文件的示例:
只要当天至少有一个呼叫,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 | 提供呼叫/业务信息,这是个非常特殊的项,记录了与该呼叫相关的一些内部参数,用于我们的研发团队检查问题。 |