客户有时需要通过 IP 语音 (VoIP) 系统记录呼叫详细记录 (CDR),以实现记帐或计费目的。执行此操作的建议方式是使用外部验证、授权和记帐(AAA)服务器(RADIUS或TACACS)。 这些 AAA 系统通常提供 CDR 日志记录、呼叫后记录处理和计费报告生成设备。
某些情况下,考虑到 AAA 服务器的复杂性或成本,可能不宜使用 AAA 服务器,但仍然需要进行 CDR 日志记录。在这种情况下,有可能使用Cisco网关或路由器的系统日志功能,记录发送到外部系统日志服务器的VoIP CDR。这些记录采用逗号分隔变量 (CSV) 格式。它们可以由外部软件应用程序(例如,电子表格或数据库)方便地载入和处理。Syslog 服务器软件可以在基本 PC 上运行。基本 syslog 服务器应用程序可以从互联网下载。对于任何特定类型或版本的 syslog 服务器软件,Cisco 不做任何推荐。
系统日志将用户数据报协议(UDP)用作基础传输机制,因此数据包没有排序,也未被承认。在使用率很高的网络上,一些数据包可能会被丢弃,因此可能会丢失 CDR 信息。可以指定多个 syslog 服务器来实现冗余。
CDR上的时间戳如果正确,则需要通过网络时间协议(NTP)时钟源配置Cisco IOS.路由器或网关,实现时间同步。如果路由器没有NTP同步,每个CDR的开始和停止时间将为零(空)值。如果外部NTP来源不能使用,路由器需要设置为NTP主设备。这将在配置部分进行说明。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
以下是启用路由器生成 VoIP CDR 并将其发送到外部 syslog 服务器的配置示例:
router(config)#service timestamps log datetime msec localtime !--- Ensures that the records are timestamped with an accurate value. ! router(config)#aaa new-model ! router(config)#aaa authentication login default none !--- Enables AAA to prevent Telnet authentication via AAA. router(config)#aaa accounting connection h323 start-stop radius !--- Generates the H.323 call start/stop CDRs. router(config)#gw-accounting syslog !--- Sends the H.323 CDRs to the syslog server. router(config)#logging 10.64.6.250 !--- The IP address of the syslog server. Multiple syslog servers !--- can be specified for redundancy.
必须在 Cisco IOS 路由器或网关上运行 NTP,确保 H.323 开始/停止记录的时间值是正确的。以下是 NTP 的两种方法:
使用以下 Cisco IOS 软件全局配置命令,令 Cisco IOS 路由器或网关与外部 NTP 服务器同步:
router(config)#ntp server ip address
ip address - 提供时钟同步服务的时间服务器的 IP 地址。
如果没有外部 NTP 时间源,请使用内部时钟作为时间源。如下所示,可以使用 Cisco IOS 软件全局配置命令完成此操作:
router(config)#ntp master
应使用以下命令将路由器时钟设置为正确的时间(通过正常的 EXEC 模式),确保时间戳是正确的:
router#clock set 15:15:00 8 May 2001
注意:在某些Cisco平台上,路由器时钟不使用电池源备份。在路由器重新加载后或电源故障后,需要重设系统时间。
以下是路由器控制台输出的一部分。启用本文档中的配置时,CDR 将定向到路由器控制台和 syslog 服务器。要从路由器控制台取消日志记录,请在路由器的全局配置模式下配置 no logging console。这可以防止CDR和其他系统信息出现在控制台上,但它们仍然被记录到系统日志服务器。
当VOIP发出呼叫时,它沿转发方向向目的地发出一个呼叫。目标将进行回归呼叫以实现全双工 VoIP 连接。因此,有一个CDR用于前向段,另一个CDR用于回归段。当回归呼叫段具有呼叫始发地1时,前向呼叫段则具有呼叫始发地2。
注:为了打印目的,某些输出行被分成多行。
router# !--- This output is for the forward call leg. Jun 18 11:15:02.867: %VOIPAAA-5-VOIP_CALL_HISTORY: CallLegType 1, ConnectionId BA55719E F8C10015 0 1B1E08, SetupTime 11:14:39.367 UTC Mon Jun 18 2001, PeerAddress 68575, PeerSubAddress , DisconnectCause 10 , DisconnectText normal call clearing., ConnectTime 11:14:49.707 UTC Mon Jun 18 2001, DisconnectTime 11:15:02.867 UTC Mon Jun 18 2001, CallOrigin 2, ChargedUnits 0, InfoType 2, TransmitPackets 1509, TransmitBytes 102600, ReceivePackets 1510, ReceiveBytes 138920 router# !--- This output is for the reverse call leg. Jun 18 11:15:02.983: %VOIPAAA-5-VOIP_CALL_HISTORY: CallLegType 1, ConnectionId BA55719E F8C10015 0 1B1E08, SetupTime 11:14:41.683 UTC Mon Jun 18 2001, PeerAddress 2887, PeerSubAddress , DisconnectCause 10 , DisconnectText normal call clearing., ConnectTime 11:14:49.703 UTC Mon Jun 18 2001, DisconnectTime 11:15:02.983 UTC Mon Jun 18 2001, CallOrigin 1, ChargedUnits 0, InfoType 2, TransmitPackets 1510, TransmitBytes 102692, ReceivePackets 1509, ReceiveBytes 138828 router#
此 CDR 显示:
前向呼叫段 | |
---|---|
生成的时间 CDR | :Jun 18 11:15:02.867 |
唯一连接 ID | :BA55719E F8C10015 0 1B1E08 |
建立时间 | :11:14:39.367 UTC Mon Jun 18 2001 |
PeerAddress(主叫号码) | :68575 |
断开原因代码 | :10 |
断开连接原因文本 | :正常呼叫清除 |
连接时间 | :11:14:49.707 UTC Mon Jun 18 2001 |
呼叫来源 | :2 |
断开时间 | :11:15:02.867 UTC Mon Jun 18 2001 |
发送数据包 | :1509 |
发送字节 | :102600 |
接收数据包 | :1509 |
接收字节 | :138828 |
回归呼叫段 | |
---|---|
生成的时间 CDR | :Jun 18 11:15:02.983 |
连接 ID | :BA55719E F8C10015 0 1B1E08 |
建立时间 | :11:14:41.683 UTC Mon Jun 18 2001 |
PeerAddress(被叫号码) | :2887 |
断开原因代码 | :10 |
断开连接原因文本 | :正常呼叫清除 |
连接时间 | :11:14:49.703 UTC Mon Jun 18 2001 |
呼叫来源 | :1 |
断开时间 | :11:15:02.983 UTC Mon Jun 18 2001 |
发送数据包 | :1510 |
发送字节 | :102692 |
接收数据包 | :1509 |
接收字节 | :138828 |
断开连接原因代码值默认为十六进制。下表显示了某些常见的十六进制值及其说明:
十六进制值 | 解释 |
---|---|
0x0 | 请参阅下面的附注 |
0x1 | 未赋值数字 |
0x3 | 没有指向目标的路由 |
0x10 | 正常呼叫清除 |
0x11 | 用户忙 |
0x12 | 用户无响应 |
0x13 | 无用户应答 |
0x15 | 呼叫被拒绝 |
0x1C | 无效号码 |
0x1F | 正常,不明 |
0x22 | 无电路 |
0x2C | 无请求的电路 |
0x2F | 无资源 |
0x3F | 服务或选项不可用,不明 |
注意:当发出show h323 gateway cause-codes命令时,某些Cisco IOS软件版本可能会提供许多Disconnect Cause Code "0"消息。这是表面缺陷,对性能没有任何影响。