はじめに
本ドキュメントでは、Cisco Unified Communications Manager (Unified CM) に登録している SIP IP Phone の Keypad Markup Language (KPML) ダイヤリング方式について紹介します。KPML は RFC 4730 で規定されています。一部の IP Phone (7905、7906、7940、7960)は KPML をサポートしていません。
SIP IP Phone のダイヤル方式
Unified CM がサポートしている SIP IP Phone のダイヤリング方式として、大きく分けて以下の方式があります。
エンブロック (Enbloc)
宛先の番号を一塊として相手に送信する方法で、一般的に広く用いられている方法です。SIP INVITE の Request-URI には [sip:0312345678@192.168.0.100] などのように宛先の番号を付与します。
Unified CM に登録している IP Phone では以下の場合に用いられます。
- オンフックダイヤリング(受話器を置いたままダイヤルし、Call ソフトキー、もしくはそのままオフフックで発信)
- スピードダイヤル
ディジットバイディジット (Digit by Digit)
IP Phone の番号をプッシュするたびに、一桁ずつ番号を Unified CM に送信する方法です。SIP INVITE の Request-URI には [sip:0@192.168.0.100] などのように最初の一桁だけ付与され、継続する番号は KPML を用いて SIP NOTIFY で送信されます。
Unified CM に登録している IP Phone では以下の場合に用いられます。
- オフフックダイヤリング (受話器を上げて、ダイヤル)
コールフロー (Digit by Digit)
IP Phone が受話器を上げて(オフフック)、2002 の番号を押して、KPML を用いてディジットバイディジットで発信する例のコールフローを紹介します。
- IP Phone がオフフックします。図では省略していますが、この時 IP Phone から Unified CM へオフフックを示す SIP NOTIFY が送信されます。
- IP Phone が 2 を押します。IP Phone から Unified CM へ SIP INVITE が Reqest-URI sip:2@<cucm の IP> で送信されます。
- KPML のセットアップのため、Unified CM から IP Phone へ SIP SUBSCRIBE (Event ヘッダ: kpml) が送信されます。
- IP Phone が 0 を押します。IP Phone から Unified CM へ SIP NOTIFY (Event ヘッダ: kpml) で 0 が通知されます。
- IP Phone が 0 を押します。IP Phone から Unified CM へ SIP NOTIFY (Event ヘッダ: kpml) で 0 が通知されます。
- IP Phone が 2 を押します。IP Phone から Unified CM へ SIP NOTIFY (Event ヘッダ: kpml) で 2 が通知されます。
- Unified CM は受信した 2002 が内部のルーティングテーブルとマッチしたことを確認し、2002 に紐付けられた IP Phone に INVITE を送信します。

SIP メッセージ例
KPML ダイヤリング方式の SIP メッセージ例を紹介します。
INVITE
最初の 2 をダイヤルした時に送信される INVITE の例です。Request-URI および To に一桁のみ付与されていることが確認できます。
INVITE sip:2@cucm125p;user=phone SIP/2.0
Via: SIP/2.0/TCP 192.168.1.21:49977;branch=z9hG4bK40382852
From: "User 1" <sip:1111@cucm125p>;tag=b07d47d1550200456343efd5-6d44bf30
To: <sip:2@cucm125p>
Call-ID: b07d47d1-55020011-061c555a-3c4b1bad@192.168.1.21
Max-Forwards: 70
Session-ID: 36c2188d00105000a000b07d47d15502;remote=00000000000000000000000000000000
Date: Mon, 26 Aug 2019 02:09:01 GMT
CSeq: 101 INVITE
User-Agent: Cisco-CP7811/12.5.1
Contact: <sip:0deaf766-3ca4-4634-9f3b-60e9e8b0ee54@192.168.1.21:49977;transport=tcp>;+u.sip!devicename.ccm.cisco.com="SEPB07D47D15502"
Expires: 180
Accept: application/sdp
Allow: ACK,BYE,CANCEL,INVITE,NOTIFY,OPTIONS,REFER,REGISTER,UPDATE,SUBSCRIBE,INFO
Remote-Party-ID: "User 1" <sip:1111@cucm125p>;party=calling;id-type=subscriber;privacy=off;screen=yes
Supported: replaces,join,sdp-anat,norefersub,resource-priority,extended-refer,X-cisco-callinfo,X-cisco-serviceuri,X-cisco-escapecodes,X-cisco-service-control,X-cisco-srtp-fallback,X-cisco-monrec,X-cisco-config,X-cisco-sis-7.0.0,X-cisco-xsi-8.5.1
Allow-Events: kpml,dialog
Recv-Info: conference
Recv-Info: x-cisco-conference
Content-Length: 686
Content-Type: application/sdp
Content-Disposition: session;handling=optional
v=0
o=Cisco-SIPUA 2627 0 IN IP4 192.168.1.21
s=SIP Call
b=AS:4064
t=0 0
m=audio 31294 RTP/AVP 114 9 113 115 0 8 116 18 101
c=IN IP4 192.168.1.21
b=TIAS:64000
a=rtpmap:114 opus/48000/2
a=fmtp:114 maxplaybackrate=16000;sprop-maxcapturerate=16000;maxaveragebitrate=64000;stereo=0;sprop-stereo=0;usedtx=0
a=rtpmap:9 G722/8000
a=rtpmap:113 AMR-WB/16000
a=fmtp:113 octet-align=0;mode-change-capability=2
a=rtpmap:115 AMR-WB/16000
a=fmtp:115 octet-align=1;mode-change-capability=2
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:116 iLBC/8000
a=fmtp:116 mode=20
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=yes
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
NOTIFY
次の 0 をダイヤルした時に送信される NOTIFY の例です。ペイロードに digits="0" が付与されていることが確認できます。
NOTIFY sip:2@192.168.98.40:5060;transport=tcp SIP/2.0
Via: SIP/2.0/TCP 192.168.1.21:49977;branch=z9hG4bK06fb450d
To: <sip:2@192.168.98.40>;tag=1303673285
From: <sip:1111@192.168.1.21>;tag=b07d47d1550200474afe0c1a-203bd45c
Call-ID: 77c73880-10001-7bfb-dd1540e8@192.168.98.40
Session-ID: b05eb45f00105000a000b07d47d15502;remote=00000000000000000000000000000000
Date: Mon, 26 Aug 2019 02:09:02 GMT
CSeq: 1001 NOTIFY
Event: kpml
Subscription-State: active; expires=7200
Max-Forwards: 70
Contact: <sip:0deaf766-3ca4-4634-9f3b-60e9e8b0ee54@192.168.1.21:49977;transport=tcp>;+u.sip!devicename.ccm.cisco.com="SEPB07D47D15502"
Allow: ACK,BYE,CANCEL,INVITE,NOTIFY,OPTIONS,REFER,REGISTER,UPDATE,SUBSCRIBE
Content-Length: 205
Content-Type: application/kpml-response+xml
Content-Disposition: session;handling=required
<?xml version="1.0" encoding="UTF-8"?>
<kpml-response xmlns="urn:ietf:params:xml:ns:kpml-response" version="1.0" code="200" text="OK" suppressed="false" forced_flush="false" digits="0" tag="Backspace OK"/>
CSA によるログの確認
Collaboration Solutions Analyzer (CSA) ツールを使うと、Unified CM の Cisco CallManager トレースログから、KPML でダイヤリングされているログを簡単に確認することができます。詳細は下記のドキュメントをご確認ください。
参考情報