呼叫記錄 (話單)

 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 打開一個話單文件的示例: 


只要當天至少有一個呼叫,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: 提供呼叫/業務信息,這是個非常特殊的項,記錄了與該呼叫相關的一些內部參數,用於我們的研發團隊檢查問題。     

留言

此網誌的熱門文章

miniSIPServer 新 web 界面

在 Debian 12 (bookworm) 系統中運行 miniSIPServer

外線的 RequestURI 參數