语音和统一通信 : Cisco Unified Communications Manager (CallManager)

使用搜索SQL的查询呼叫详细记录用Cisco CallManager

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

在呼叫详细记录 (CDR) 中搜索某个特定时间之后进行的呼叫或对某个特定号码进行的呼叫,这种方法有时很有帮助。本文档提供使用 Query Analyzer 搜索在某个日期之后进行的呼叫或对某个号码进行的呼叫的步骤。

先决条件

要求

本文档的读者需要了解以下主题:

  • Cisco CallManager 3.x 和 4.x 管理

  • SQL数据库管理

使用的组件

本文档中的信息基于以下软件和硬件版本:

  • Cisco CallManager 3.x

  • Cisco CallManager 4.x

注意: 尽管 Cisco CallManager 4.x(即 SQL Server 2000)中有另一个版本的 SQL 数据库,但本文档同样适用。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

打开 SQL Query Analyzer

本文档提供的所有示例均使用 Query Analyzer 运行。完成下列步骤以打开 Query Analyzer。

  1. 选择 Start > Programs > Microsoft SQL Server > Query Analyzer

    /image/gif/paws/45542/sql-queries-cdr-1.gif

  2. 登录服务器(您的本地服务器)。对于 Cisco CallManager 3.x,请选择 Use SQL Server authentication,然后输入您的用户名和密码。对于 Cisco CallManager 4.0 和更高版本,请选择 Use Windows NT authentication。建议使用Windows NT认证,虽然系统支持SQL认证。版本 4.0 和更高版本不支持设置 Cisco CallManager 的混合模式认证。SQL Server 认证早期版本的升级失败,系统需要更改回 Windows NT 认证。

    sql-queries-cdr-2.gif

    注意: 当第三方应用程序需要访问 Cisco CallManager 数据库时,可能需要进行 SQL 认证,而 Cisco 并不支持此认证。

  3. 从数据库下拉菜单(窗口的右上角)中选择“CDR Database”。

    sql-queries-cdr-3.gif

  4. 在面板中输入一条查询。

CDR 数据库中的数据格式

为了选择某个特定日期之后的所有呼叫,您需要将希望查询的日期转换为以通用时间为单位、精确到秒且不早于 1970 年 1 月 1 日的值。

例如,将 973995954 转换为 11/12/00 2:25 AM。完成下列步骤以破解时间戳。

  1. 转到 Microsoft Excel。

  2. 在 A1 单元格中键入在 dateTimeOrigination 的最后一条记录中找到的数字。

  3. 在 A2 单元格中粘贴公式 =A1/86400+DATE(1970,1,1)

  4. 右键单击 A2 单元格,然后选择 format cells

  5. 在“Number”选项卡下选择格式为 3/14/98 130 PM 的时间。

    结果为可读格式的实际时间。

完成下列步骤以便将您所需的日期转换为可用日期。

  1. 在 B2 单元格中输入 MM/DD/YYYY 00:00 AM 格式的日期。

  2. 在 A 单元格中输入公式 =(B2-DATE(1970,1,1))*86400

  3. 右键单击 B1 单元,然后选择 format cells

  4. 在“Number”选项卡下,选择 Number

    此编号是在公式中使用的以秒为单位的通用时间。

    要获得正确时间,请下载 CiscoCDRTime Converter-0.1.0.0.zip

    警告 警告: 此工具尚未获得 Cisco Systems 的正式支持。如果您下载、安装或使用此工具,则风险自负。Cisco Systems, Inc. 不负责更正由于使用此未获支持的工具而出现的任何问题。

搜索在某个日期/时间之后或两个日期/时间之间进行的呼叫

为了选择某个特定日期之后的所有呼叫,您需要将希望查询的日期转换为以通用时间为单位、精确到秒且不早于 1970 年 1 月 1 日的值。请参阅本文档中的了解 CDR 数据库中的数据格式部分。

  1. 转到 SQL Query Analyzer 中的窗口,针对在某个日期之后进行的所有呼叫输入公式 select * from CallDetailRecord where dateTimeConnect > '973995954'

  2. 如果要查看在两个时间之间进行的所有呼叫,请输入公式 select * from CallDetailRecord where dateTimeConnect > '973995954'datetimeconnect < '1063574868'

  3. 要执行该脚本,请单击页面顶部的复选标记,然后单击 play 按钮。

    /image/gif/paws/45542/sql-queries-cdr-4.gif

搜索对某个特定号码进行的呼叫

在某些情况下,您可能需要找出在某个特定日期呼叫 911 的分机。完成下列步骤以搜索对某个特定号码(如 911)的呼叫。

  1. 要搜索对某个特定号码的呼叫,您可以运行另一查询。

    例如,如果要查询对 911 的呼叫,可以输入查询 select * from CallDetailRecord where finalcalledpartynumber='911'

  2. 页面底部将显示 CDR 中最终呼叫方号码等于 911 的所有条目。

  3. 在此查询中添加一个日期,以精炼结果。

    例如,要查找 2003 年 8 月 1 日之后对 911 的所有呼叫,请运行查询 select * from CallDetailRecord where finalcalledpartynumber='911' and datetimeconnect > '1059696000'

  4. 页面底部将显示 CDR 中在 2003 年 8 月 1 日之后进行的最终呼叫方号码等于 911 的所有条目。'1059696000' 是 2003 年 8 月 1 日的以秒为单位的通用时间。

  5. 要查看呼叫 911 的呼叫方,请运行查询 select callingpartynumber from CallDetailRecord where finalcalledpartynumber='911'

  6. 要以 CSV 格式保存结果,请参阅本文档中的保存查询结果部分。

注意: 如果希望查找对某个号码进行呼叫的次数,则无法实现,因为这是一种转换模式。CDR 不记录转换模式;它只能监控 DN 模式和路由模式。

保存查询结果

运行查询之后,如果您希望以可在 Excel 中打开的 .CSV 文件格式保存获得的数据,请按以下步骤突出显示结果。

  1. 单击第一列并将鼠标拖动到最后一列,或者单击编号 1 上方的灰色方块。

    sql-queries-cdr-5.gif

  2. 选择 File > Save As

    /image/gif/paws/45542/sql-queries-cdr-6.gif

  3. 将其保存为 .CSV 文件,并在 Excel 或 Notepad 中查看它。

    /image/gif/paws/45542/sql-queries-cdr-7.gif

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 45542