目錄

簡介

必要條件

需求

採用元件

表

SQL查詢

列出與IP電話關聯的所有DN

列出DN及其關聯的IP電話

列出裝置資訊以及關聯分割槽的DN

查詢具有線路級使用者關聯的電話

查詢沒有線路級使用者關聯的電話

查詢具有裝置級使用者關聯的電話

簡介

本文檔提供了結構化查詢語言(SQL)查詢，可以在CLI上運行，以便獲得與IP電話關聯的目錄號碼(DN)和分割槽以及任何終端使用者關聯。

必要條件

需求

思科建議您瞭解Cisco Unified Communications Manager(CUCM)。

採用元件

本文中的資訊是根據CUCM 8.X及更新版本，但也可能適用於早期版本。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

表

SQL查詢由以下表中的資料形成：

- Device — 此表包含裝置級資訊，如IP電話和網關。

- NumPlan — 此表包含有關CUCM中配置的所有模式的資訊。

- DeviceNumPlanMap — 此表包含Device表和NumPlan表中資料之間的對映。

- RoutePartition — 此表包含有關在CUCM中配置的所有分割槽的資訊

- EndUser — 此表包含與終端使用者相關的資訊。

- DeviceNumPlanMapEndUserMap -此表包含DeviceNumPlanMap表中的資料與EndUser表中的資料之間的對映。

- EndUserDeviceMap — 此表包含裝置表和終端使用者表中資料之間的對映。

有關這些表的詳細資訊，請參考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是表編號計畫中的列，其中包含與電話/尋線引導/虛擬機器埠/路由模式/CTI RP關聯的DN。

列出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%」。

此查詢列出DN以8開頭的所有條目。格式為<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%」

此查詢列出DN以8開頭的所有條目。格式為<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位於分割槽中時提供資訊。若要在「無分割槽」中包含這些分割槽，請輸入：

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%」。

此查詢列出DN以8開頭的所有條目。格式為<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位於分割槽中時提供資訊。若要在「無分割槽」中包含這些分割槽，請輸入：

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」和「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開頭的所有條目。格式為<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位於分割槽中時提供資訊。若要在「無分割槽」中包含這些分割槽，請輸入：

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開頭的所有條目。格式為<column name>如「<value>%」。