소개
이 문서에서는 최종 사용자 연결과 함께 IP Phone과 연결된 DN(Directory Number) 및 파티션을 얻기 위해 CLI에서 실행할 수 있는 SQL(Structured Query Language) 쿼리를 제공합니다.
사전 요구 사항
요구 사항
CUCM(Cisco Unified Communications Manager)에 대한 지식이 있는 것이 좋습니다.
사용되는 구성 요소
이 문서의 정보는 CUCM 버전 8.X 이상을 기반으로 하지만 이전 버전에서도 작동할 수 있습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
표
SQL 쿼리는 다음 테이블의 데이터로 구성됩니다.
- Device - 이 표에는 IP Phone 및 게이트웨이와 같은 디바이스 레벨 정보가 포함되어 있습니다.
- NumPlan - 이 표에는 CUCM에 구성된 모든 패턴에 대한 정보가 포함되어 있습니다.
- DeviceNumPlanMap - 이 테이블에는 Device 테이블과 NumPlan 테이블의 데이터 간 매핑이 포함됩니다.
- RoutePartition - 이 테이블에는 CUCM에 구성된 모든 파티션에 대한 정보가 포함됩니다.
- EndUser - 이 표에는 최종 사용자와 관련된 정보가 포함되어 있습니다.
- DeviceNumPlanMapEndUserMap - 이 테이블에는 DeviceNumPlanMap 테이블의 데이터와 EndUser 테이블 간의 매핑이 포함됩니다.
- EndUserDeviceMap - 이 테이블에는 Device 테이블과 EndUser 테이블의 데이터 간의 매핑이 포함됩니다.
이러한 테이블에 대한 자세한 내용은 해당 버전의 CUCM 데이터 사전을 참조하십시오.
SQL 쿼리
쿼리는 이해하기 쉽도록 한 번에 하나의 연관을 찾기 위해 작성됩니다.
IP 전화와 연결된 모든 DN 나열
다음은 IP Phone과 연결된 모든 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은 전화기/헌트 파일럿/VM 포트/경로 패턴/CTI RP와 연결된 DN이 있는 테이블 numplan의 열입니다.
DN 및 연결된 IP 전화 나열
다음은 DN 및 연결된 IP Phone을 나열하도록 설계된 쿼리입니다.
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
특정 모델 IP Phone의 세부사항을 나열하기 위해 tkmodel 번호를 추가하면 쿼리를 수정할 수 있습니다. 다음은 IP Phone Model 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 Phone 모델에 대한 tkmodel 값을 얻기 위한 쿼리는 다음과 같습니다.
run sql select name,tkmodel from TypeProduct
참고: 원하는 정보만 포함하도록 모든 필드를 필터링할 수 있습니다. 예를 들어, DN에 대해 필터링하려면 쿼리 끝에 이를 추가합니다. 여기서 n.dnorpattern은 '8%'와 같습니다.
이 쿼리는 8로 시작하는 DN이 있는 모든 항목을 나열합니다. 형식은 <column name>이 '<value>%'와 같은 형식입니다.
참고: 유용한 정보(PKID(Primary Key Identifier)가 아닌 사용자가 읽을 수 있는 필드)를 제공하는 일부 다른 필드를 이 쿼리에 추가할 수 있습니다. 'run sql select'와 'as DN' 사이에 추가합니다. 추가할 수 있는 필드는 다음과 같습니다.
d.tkmodel - 각 모델의 값을 가져오려면 이전 주석에 설명된 질의를 사용합니다.
d.tkdeviceprotocol - SCCP(Skinny Call Control Protocol)의 경우 값은 0이고 SIP(Session Initiation Protocol)의 경우 값은 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
특정 모델 IP Phone의 세부사항을 나열하기 위해 tkmodel 번호를 추가하면 쿼리를 수정할 수 있습니다. IP Phone Model 7945의 경우 쿼리의 끝에 d.tkmodel='435'를 추가합니다.
모든 IP Phone 모델에 대한 tkmodel 값을 가져오려면 다음을 입력합니다.
run sql select name,tkmodel from TypeProduct
참고: 원하는 정보만 포함하도록 모든 필드를 필터링할 수 있습니다. 예를 들어, DN에서 필터링하려면 쿼리 끝에 이를 추가합니다. 여기서 n.dnorpattern은 '8%'와 같습니다.
이 쿼리는 8로 시작하는 DN이 있는 모든 항목을 나열합니다. 형식은 <column name>이 '<value>%'와 같은 형식입니다.
참고: 유용한 정보(PKID가 아니라 사용자가 읽을 수 있음)를 제공하는 일부 다른 필드를 이 쿼리에 추가할 수 있습니다. 'run 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이 파티션에 있는 경우에만 정보를 제공합니다. None Partition(없음 파티션)에 항목을 포함하려면 다음을 입력합니다.
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
특정 모델 IP Phone의 세부사항을 나열하기 위해 tkmodel 번호를 추가하면 쿼리를 수정할 수 있습니다. IP Phone Model 7945의 경우 쿼리의 끝에 d.tkmodel='435'를 추가합니다.
모든 IP Phone 모델에 대한 tkmodel 값을 가져오려면 다음을 입력합니다.
run sql select name,tkmodel from TypeProduct
이 쿼리에 추가할 수 있는 유용한 정보(PKID가 아니라 사용자가 읽을 수 있음)를 제공하는 다른 필드가 있습니다. 'run sql select'와 'as DN' 사이에 추가합니다. 추가할 수 있는 필드는 다음과 같습니다.
- eu.이름
- eu.middlename
- eu.lastname
- eu.manager
- eu.부서
- 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이 파티션에 있는 경우에만 정보를 제공합니다. None Partition(없음 파티션)에 항목을 포함하려면 다음을 입력합니다.
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
특정 모델 IP Phone의 세부사항을 나열하기 위해 tkmodel 번호를 추가하면 쿼리를 수정할 수 있습니다. IP Phone Model 7945의 경우 쿼리의 끝에 d.tkmodel='435'를 추가합니다.
모든 IP Phone 모델에 대한 tkmodel 값을 가져오려면 다음을 입력합니다.
run sql select name,tkmodel from TypeProduct
이 쿼리에 추가할 수 있는 유용한 정보(PKID가 아니라 사용자가 읽을 수 있음)를 제공하는 다른 필드가 있습니다. 'run sql select'와 'as DN' 사이에 추가합니다. 추가할 수 있는 필드는 다음과 같습니다.
- eu.이름
- eu.middlename
- eu.lastname
- eu.manager
- eu.부서
- 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 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이 파티션에 있는 경우에만 정보를 제공합니다. None Partition(없음 파티션)에 항목을 포함하려면 다음을 입력합니다.
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
특정 모델 IP Phone의 세부사항을 나열하기 위해 tkmodel 번호를 추가하면 쿼리를 수정할 수 있습니다. IP Phone Model 7945의 경우 쿼리의 끝에 d.tkmodel='435'를 추가합니다.
모든 IP Phone 모델에 대한 tkmodel 값을 가져오려면 다음을 입력합니다.
run sql select name,tkmodel from TypeProduct
이 쿼리에 추가할 수 있는 유용한 정보(PKID가 아니라 사용자가 읽을 수 있음)를 제공하는 다른 필드가 있습니다. 'run sql select'와 'as DN' 사이에 추가합니다. 추가할 수 있는 필드는 다음과 같습니다.
- eu.이름
- eu.middlename
- eu.lastname
- eu.manager
- eu.부서
- 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>%'와 같은 형식입니다.