简介
本文档介绍用于获取与IP电话关联的目录号码(DN)和分区的SQL查询。
先决条件
要求
Cisco建议您了解Cisco Unified Communications Manager(CUCM)。
使用的组件
本文档中的信息基于CUCM版本8.X及更高版本,但也可以用于早期版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
表
SQL查询由以下表中的数据形成:
- 设备 — 此表包含设备级信息,如IP电话和网关。
- NumPlan — 此表包含有关CUCM中配置的所有模式的信息。
- DeviceNumPlanMap — 此表包含Device表和NumPlan表中数据之间的映射。
- RoutePartition — 此表包含有关CUCM中配置的所有分区的信息
- 最终用户 — 此表包含与最终用户相关的信息。
- DeviceNumPlanMapEndUserMap — 此表包含DeviceNumPlanMap表中的数据与EndUser表中的数据之间的映射。
- EndUserDeviceMap — 此表包含Device表和EndUser表中数据之间的映射。
有关这些表的详细信息,请参阅相应版本的CUCM数据字典。
SQL查询
编写查询是为了一次查找一个关联,以便更容易理解。
列出与IP电话关联的所有DN
以下查询旨在列出与IP电话关联的所有DN:
run sql select dnorpattern as dn from numplan where pkid IN(select fknumplan from
devicenumplanmap where fkdevice IN (select pkid from device where tkclass =
1)) order by dn
注意:tkclass = 1用于IP电话。dnorpattern是表编号计划中的一列,其中的DN与电话/寻线引导/VM端口/路由模式/CTI RP相关联。
列出DN及其关联的IP电话
以下是用于列出DN及其关联IP电话的查询:
run sql select d.name, d.description, n.dnorpattern as DN from device as d,
numplan as n, devicenumplanmap as dnpm where dnpm.fkdevice = d.pkid and
dnpm.fknumplan = n.pkid and d.tkclass = 1
name description dn
=============== ============================ ====
SEP0026CBBFF47E Line 1 - 7031; Line 2 - 7011 7011
SEP0026CBBFF47E Line 1 - 7031; Line 2 - 7011 7031
SEPC89C1DA3A5A9 Line 1 - 8021 8021
SEPA40CC3956C5C Line 1 - 1213; Line 2 - 1212 1213
SEPA40CC3956C5C Line 1 - 1213; Line 2 - 1212 1212
SEP503DE57D7DAC 8501 8501
SEP0008308B289A Line 1 - 8023 8023
SEP0008308BBEBD Line 1 - 8032; Line 2 - 8012 8012
SEP0008308BBEBD Line 1 - 8032; Line 2 - 8012 8032
如果添加tkmodel号以列出特定型号IP电话的详细信息,则可以修改查询。以下是IP电话型号7945的查询:
run sql select d.name, d.description, n.dnorpattern as DN from device as d,
numplan as n, devicenumplanmap as dnpm where dnpm.fkdevice = d.pkid and
dnpm.fknumplan = n.pkid and d.tkclass = 1 and d.tkmodel='435'
以下是获取所有IP电话型号的tkmodel值的查询:
run sql select name,tkmodel from TypeProduct
注意:可以对任何字段进行过滤,使其仅包含所需信息。例如,要按DN过滤,请在查询末尾添加以下内容:其中n.dnorpattern类似于“8%”。
此查询列出所有以8开头的DN条目。格式为其中<column name>如“<value>%”。
注意:可以向此查询添加一些提供有用信息(用户可读而不是主键标识符(PKID))的其他字段。在运行sql select和as DN之间添加这些字段。以下是可以添加的字段:
d.tkmodel — 使用上一注释中描述的查询以获得每个模型的值。
d.tkdeviceprotocol — 对于瘦呼叫控制协议(SCCP),值为0;对于会话发起协议(SIP),值为11。
列出设备信息以及关联分区的DN
以下是用于列出设备信息以及关联分区的DN的查询:
run sql select d.name, d.description, n.dnorpattern as DN, rp.name as partition
from device as d, numplan as n, devicenumplanmap as dnpm, routepartition as rp
where dnpm.fkdevice = d.pkid and dnpm.fknumplan = n.pkid and rp.pkid =
n.fkroutepartition and d.tkclass = 1
name description dn partition
=============== ============================ ==== ===========
SEPA40CC3956C5C Line 1 - 1213; Line 2 - 1212 1212 Internal_PT
SEP503DE57D7DAC 8501 8501 Internal_PT
SEPA40CC3956C5C Line 1 - 1213; Line 2 - 1212 1213 Internal_PT
SEP0008308B289A Line 1 - 8023 8023 Internal_PT
注意:此处未列出所有没有分区的DN。
随着在查询中添加的表越来越多,使用连接也变得更加容易。也可以编写上一个查询:
run sql select d.name, d.description, n.dnorpattern as DN, rp.name as partition
from device as d inner join devicenumplanmap as dnpm on dnpm.fkdevice = d.pkid
inner join numplan as n on dnpm.fknumplan = n.pkid inner join routepartition as
rp on n.fkroutepartition=rp.pkid and d.tkclass = 1
如果添加tkmodel号以列出特定型号IP电话的详细信息,则可以修改查询。对于IP电话型号7945,在查询末尾添加和d.tkmodel='435'。
要获取所有IP电话型号的tkmodel值,请输入:
run sql select name,tkmodel from TypeProduct
注意:可以对任何字段进行过滤,使其仅包含所需信息。例如,要根据DN进行过滤,请在查询末尾添加以下内容:其中n.dnorpattern类似于“8%”
此查询列出所有以8开头的DN条目。格式为其中<column name>如“<value>%”。
注意:可以向此查询添加一些提供有用信息(用户可读而非PKID)的其他字段。在运行sql select和as DN之间添加这些字段。以下是可以添加的字段:
d.tkmodel — 使用上一注释中描述的查询以获得每个模型的值。
d.tkdeviceprotocol — 对于SCCP,值为0;对于SIP,值为11。
查找具有线路级别用户关联的电话
以下查询旨在查找具有线路级用户关联的电话:
run sql select eu.userid, d.name, d.description, n.dnorpattern as DN, rp.name as
partition from device as d inner join devicenumplanmap as dnpm on dnpm.fkdevice =
d.pkid inner join devicenumplanmapendusermap as dnpeum on dnpeum.fkdevicenumplanmap=
dnpm.pkid inner join enduser as eu on dnpeum.fkenduser=eu.pkid inner join numplan as
n on dnpm.fknumplan = n.pkid inner join routepartition as rp on n.fkroutepartition=
rp.pkid and d.tkclass = 1
userid name description dn partition
============ =============== ============= ==== ===========
AMavilakandy SEP0008308B289A Line 1 - 8023 8023 Internal_PT
此查询仅在DN位于分区中时提供信息。要将1包含在none分区中,请输入:
run sql select eu.userid, d.name, d.description, n.dnorpattern as DN from device
as d inner join devicenumplanmap as dnpm on dnpm.fkdevice = d.pkid inner join
devicenumplanmapendusermap as dnpeum on dnpeum.fkdevicenumplanmap=dnpm.pkid inner
join enduser as eu on dnpeum.fkenduser=eu.pkid inner join numplan as n on dnpm.fknumplan
= n.pkid and d.tkclass = 1
如果添加tkmodel号以列出特定型号IP电话的详细信息,则可以修改查询。对于IP电话型号7945,在查询末尾添加和d.tkmodel='435'。
要获取所有IP电话型号的tkmodel值,请输入:
run sql select name,tkmodel from TypeProduct
还有其他可以提供有用信息(用户可读而非PKID)的字段可以添加到此查询。在运行sql select和as DN之间添加这些字段。以下是可以添加的字段:
- eu.firstname
- eu.middlename
- eu.lastname
- eu.manager
- eu.department
- eu.telephonenumber
- eu.mailid
- eu.mobile
- eu.homephone
- eu.title
- d.tkmodel — 使用前面提到的查询来获取每个模型的值。
- d.tkdeviceprotocol — 对于SCCP,值为0;对于SIP,值为11。
注意:可以对任何字段进行过滤,使其仅包含所需信息。例如,要根据DN进行过滤,请在查询末尾添加以下内容:其中n.dnorpattern类似于“8%”。
此查询列出所有以8开头的DN条目。格式为其中<column name>如“<value>%”。
查找没有线路级别用户关联的电话
以下查询旨在查找没有线路级用户关联的电话。
run sql select d.name, d.description, n.dnorpattern as DN, rp.name as partition
from device as d inner join devicenumplanmap as dnpm on dnpm.fkdevice = d.pkid
inner join devicenumplanmapendusermap as dnpeum on dnpeum.fkdevicenumplanmap!=
dnpm.pkid inner join numplan as n on dnpm.fknumplan = n.pkid inner join
routepartition as rp on n.fkroutepartition=rp.pkid and d.tkclass = 1
name description dn partition
=============== ============================ ==== ===========
SEPA40CC3956C5C Line 1 - 1213; Line 2 - 1212 1212 Internal_PT
SEP503DE57D7DAC 8501 8501 Internal_PT
SEPA40CC3956C5C Line 1 - 1213; Line 2 - 1212 1213 Internal_PT
此查询仅在DN位于分区中时提供信息。要将1包含在none分区中,请输入:
run sql select d.name, d.description, n.dnorpattern as DN from device as d inner
join devicenumplanmap as dnpm on dnpm.fkdevice = d.pkid inner join
devicenumplanmapendusermap as dnpeum on dnpeum.fkdevicenumplanmap!=dnpm.pkid
inner join numplan as n on dnpm.fknumplan = n.pkid and d.tkclass = 1
如果添加tkmodel号以列出特定型号IP电话的详细信息,则可以修改查询。对于IP电话型号7945,在查询末尾添加和d.tkmodel='435'。
要获取所有IP电话型号的tkmodel值,请输入:
run sql select name,tkmodel from TypeProduct
还有一些其他字段可以提供有用的信息(用户可读而非PKID),可以添加到此查询中。在运行sql select和作为DN之间添加它们。以下是可添加的字段:
- eu.firstname
- eu.middlename
- eu.lastname
- eu.manager
- eu.department
- eu.telephonenumber
- eu.mailid
- eu.mobile
- eu.homephone
- eu.title
- d.tkmodel — 使用前面提到的查询来获取每个模型的值。
- d.tkdeviceprotocol — 对于SCCP,值为0;对于SIP,值为11。
注意:可以对任何字段进行过滤,使其仅包含所需信息。例如,要根据DN进行过滤,请在查询末尾添加以下内容:其中n.dnorpattern类似于“8%”。
这将列出DN以8开头的所有条目。格式为where <column name>如“<value>%”。
查找具有设备级用户关联的电话
以下是用于查找具有设备级用户关联的电话的查询。
run sql select eu.userid, d.name, d.description, n.dnorpattern as DN, rp.name as
partition from device as d inner join devicenumplanmap as dnpm on dnpm.fkdevice =
d.pkid inner join enduserdevicemap as eudm on eudm.fkdevice=d.pkid inner join
enduser as eu on eudm.fkenduser=eu.pkid inner join numplan as n on dnpm.fknumplan =
n.pkid inner join routepartition as rp on n.fkroutepartition=rp.pkid and d.tkclass = 1
userid name description dn partition
============ =============== ============================ ==== ===========
AMavilakandy SEPA40CC3956C5C Line 1 - 1213; Line 2 - 1212 1212 Internal_PT
AMavilakandy SEPA40CC3956C5C Line 1 - 1213; Line 2 - 1212 1213 Internal_PT
AMavilakandy SEP0008308B289A Line 1 - 8023 8023 Internal_PT
此查询仅在DN位于分区中时提供信息。要将1包含在none分区中,请输入:
run sql select eu.userid, d.name, d.description, n.dnorpattern as DN from device
as d inner join devicenumplanmap as dnpm on dnpm.fkdevice = d.pkid inner join
enduserdevicemap as eudm on eudm.fkdevice=d.pkid inner join enduser as eu on
eudm.fkenduser=eu.pkid inner join numplan as n on dnpm.fknumplan = n.pkid and
d.tkclass = 1
如果添加tkmodel号以列出特定型号IP电话的详细信息,则可以修改查询。对于IP电话型号7945,在查询末尾添加和d.tkmodel='435'。
要获取所有IP电话型号的tkmodel值,请输入:
run sql select name,tkmodel from TypeProduct
还有一些其他字段可以提供有用的信息(用户可读而非PKID),可以添加到此查询中。在运行sql select和as DN之间添加这些字段。以下是可以添加的字段:
- eu.firstname
- eu.middlename
- eu.lastname
- eu.manager
- eu.department
- eu.telephonenumber
- eu.mailid
- eu.mobile
- eu.homephone
- eu.title
- d.tkmodel — 使用前面提到的查询来获取每个模型的值。
- d.tkdeviceprotocol — 对于SCCP,值为0;对于SIP,值为11。
注意:可以对任何字段进行过滤,使其仅包含所需信息。例如,要根据DN进行过滤,请在查询末尾添加以下内容:其中n.dnorpattern类似于“8%”。
这将列出DN以8开头的所有条目。格式为where <column name>如“<value>%”。