会計または課金目的で、Voice over IP(VoIP)システムからのコール詳細レコード(CDR)をロギングすることを、お客様が望むことがあります。これを実現するために推奨される方法は、外部の Authentication、Authorization、and Accounting(AAA; 認証、承認、会計)サーバ(RADIUS または TACACS)を使用することです。 通常、こうした AAA システムにより、CDR ロギング、コール レコード後処理、および課金レポート生成ファシリティが提供されます。
AAA サーバの複雑さやコストが原因で使用できない場合がありますが、それでも CDR ロギングが必要なことがあります。このような場合、Cisco ゲートウェイやルータのシスログ機能を使って、VoIP CDR を外部シスログ サーバにロギングできます。これらのレコードは、カンマ区切り値(CSV)フォーマットで記録されます。したがって、スプレッドシートやデータベースなどの外部ソフトウェア アプリケーションを使って簡単にロードして処理することができます。シスログ サーバ ソフトウェアは、通常の PC 上で実行できます。基本的なシスログ サーバ アプリケーションは、インターネットからダウンロード可能です。シスコは、特定のタイプまたはバージョンのシスログ サーバ ソフトウェアの推奨は行いません。
シスログは基本転送メカニズムとして User Datagram Protocol(UDP; ユーザ データグラム プロトコル)を使用するため、データ パケットに対してはシーケンス処理や確認応答が行われません。利用率が高いネットワークでは、パケットの一部がドロップされて CDR 情報が失われる可能性があります。冗長性を実現するため、複数のシスログ サーバを指定できます。
CDRのタイムスタンプを正しく設定するには、Cisco IOS®ルータまたはゲートウェイがNetwork Time Protocol(NTP)時刻源を介して時刻同期を行うように設定されている必要があります。ルータが NTP 同期機能を備えていない場合、各 CDR の開始時刻と終了時刻の値は 0(ヌル)になります。外部 NTP ソースが使用できない場合、ルータを NTP マスターとして設定する必要があります。これについては、「設定」のセクションで説明します。
このドキュメントに特有の要件はありません。
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
以下に、ルータによる VoIP CDR の生成と、外部シスログ サーバへの送信が可能な設定例を示します。
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.
H.323 開始/停止レコードに正確な時刻の値が記録されるようにするには、Cisco IOS ルータまたはゲートウェイで NTP を実行する必要があります。NTP には、次の 2 つのメソッドがあります。
Cisco IOS ルータまたはゲートウェイを外部 NTP サーバに同期させるには、次の Cisco IOS ソフトウェア グローバル コンフィギュレーション コマンドを使用します。
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
注:一部のシスコプラットフォームでは、ルータクロックがバッテリ電源でバックアップされていません。そのため、ルータのリロード後または停電が発生した後は、システム時刻のリセットが必要となります。
以下に、ルータからのコンソール出力の一部を示します。このドキュメントで説明している設定 が有効にされている場合、CDR は syslog サーバだけでなく、ルータ コンソールにも転送されます。ルータ コンソールへのロギングを停止するには、ルータのグローバル コンフィギュレーション モードで no logging console を設定します。これにより、CDR や他のシステム メッセージがコンソールに表示されなくなりますが、シスログ サーバへのロギングは継続されます。
VoIP コールが発生すると、コールが送信先への転送方向に置かれます。送信先は、全二重の VoIP 接続を確立するため、リターン コールを返します。そのため、転送レッグ用に CDR が 1 つ、リターン レッグ用に 2 つ目の CDR が 1 つあります。転送コール レッグのコール オリジン は 2 で、リターン コール レッグのコール オリジン は 1 です。
注:出力行の中には、印刷用に複数の行に分割されているものがあります。
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 |
ピア アドレス(発信者番号) | :68575 |
接続解除原因コード | :10 |
接続解除原因テキスト | :normal call clearing(通常の通話解除) |
接続時刻 | :11:14:49.707 UTC Mon Jun 18 2001 |
コール オリジン | :0 |
切断時刻 | :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 |
ピア アドレス(受信者番号) | :2887 |
接続解除原因コード | :10 |
接続解除原因テキスト | :normal call clearing(通常の通話解除) |
接続時刻 | :11:14:49.703 UTC Mon Jun 18 2001 |
コール オリジン | :1 |
切断時刻 | :11:15:02.983 UTC Mon Jun 18 2001 |
送信パケット | :1510 |
送信バイト | :102692 |
受信パケット | :1509 |
受信バイト | :138828 |
接続解除原因コード値のデフォルト値は 16 進数です。次の表に、一般的な 16 進数の値とその説明を記載します。
16 進数の値 | 説明 |
---|---|
0x0 | 以下の「注」を参照 |
0x1 | 番号未割り当て |
0x3 | 宛先への経路がない |
0x10 | 正常なコール クリア |
0x11 | ユーザ ビジー |
0x12 | ユーザの応答がない |
0x13 | ユーザからの返信がない |
0x15 | コール拒否 |
0x1C | 無効な番号 |
0x1F | 正常、詳細不明 |
0x22 | 回線がない |
0x2C | 要求された回線がない |
0x2F | リソースがない |
0x3F | サービスまたはオプションが利用できない、未指定 |
注:一部のCisco IOSソフトウェアリリースでは、show h323 gateway cause-codesコマンドを発行すると、多くの接続解除原因コード「0」メッセージが表示される場合があります。これは表面的な欠陥であり、パフォーマンスには影響しません。