I thought to divide this topic into two blogs to make it more clear. First we will understand Caller ID Display from ISDN side, then we will map it to call control protocols (MGCP/SIP/H323).
Advanced ISDN IEs Configuration (Facility & Display)
Display IE is used mainly to provide the calling name over PRI Trunk. It can be sent in SETUP, ALERTING, or CALLPROC messages. For example,
Nov 23 12:36:11.610: ISDN Se0/2/0:23 Q931: TX -> SETUP pd = 8 callref = 0x00A3
Bearer Capability i = 0x8090A2
Standard = CCITT
Transfer Capability = Speech
Transfer Mode = Circuit
Transfer Rate = 64 kbit/s
Channel ID i = 0xA98383
Exclusive, Channel 3
Progress Ind i = 0x8183 - Origination address is non-ISDN
Display i = 'user01'
Calling Party Number i = 0x4180, '2023001'
Plan:ISDN, Type:Subscriber(local)
Called Party Number i = 0xC1, '3023001'
Plan:ISDN, Type:Subscriber(local)
Nov 23 12:36:11.642: ISDN Se0/2/0:23 Q931: RX <- CALL_PROC pd = 8 callref = 0x80A3
Channel ID i = 0xA98383
Exclusive, Channel 3
Nov 23 12:36:11.694: ISDN Se0/2/0:23 Q931: RX <- ALERTING pd = 8 callref = 0x80A3
Progress Ind i = 0x8188 - In-band info or appropriate now available
However, Display IE isn’t enabled by default. In order to enable it different methods are available.
1)
interface Serial0/2/0:23
no ip address
encapsulation hdlc
isdn switch-type primary-ni
isdn incoming-voice voice
isdn outgoing display-ie
no cdp enable
2)
interface Serial0/2/0:23
no ip address
encapsulation hdlc
isdn switch-type primary-ni
isdn incoming-voice voice
isdn outgoing ie display
no cdp enable
Also, calling name is considered as supplementary service and therefore it can be carried over Facility IE instead of Display IE. Facility IE is enabled by default on PRI trunk, however, calling name as supplementary service isn’t enabled by default. Facility IE can be carried in SETUP and ALERTING messages.
interface Serial0/2/0:23
no ip address
encapsulation hdlc
isdn switch-type primary-ni
isdn incoming-voice voice
isdn supp-service name calling
no cdp enable
end
Nov 23 12:26:23.558: ISDN Se0/2/0:23 Q931: TX -> SETUP pd = 8 callref = 0x009D
Bearer Capability i = 0x8090A2
Standard = CCITT
Transfer Capability = Speech
Transfer Mode = Circuit
Transfer Rate = 64 kbit/s
Channel ID i = 0xA98383
Exclusive, Channel 3
Facility i = 0x9F8B0100A10E0201080201008006757365723031
Protocol Profile = Networking Extensions
0xA10E0201080201008006757365723031
Component = Invoke component
Invoke Id = 8
Operation = CallingName
Name Presentation Allowed Extended
Name = user01
Progress Ind i = 0x8183 - Origination address is non-ISDN
Calling Party Number i = 0x4180, '2023001'
Plan:ISDN, Type:Subscriber(local)
Called Party Number i = 0xC1, '3023001'
Plan:ISDN, Type:Subscriber(local)
Nov 23 12:26:23.594: ISDN Se0/2/0:23 Q931: RX <- CALL_PROC pd = 8 callref = 0x809D
Channel ID i = 0xA98383
Exclusive, Channel 3
Nov 23 12:26:23.642: ISDN Se0/2/0:23 Q931: RX <- ALERTING pd = 8 callref = 0x809D
Progress Ind i = 0x8188 - In-band info or appropriate now available
The same command should be applied on the terminating gateway in order to decode the Facility IE value as calling name and send the displayed text to the phone (in case of CME) or to CUCM. Else, Facility IE will be forwarded without decode (raw value) and the calling name won’t be displayed since Facility IE isn’t recognized by phone or CUCM (KEEP THIS IN MIND CAUSE WE WILL USE IT IN THE SECOND BLOG).
Notes:
1. Calling Name (CNAM) as Facility IE and Display IE can be enabled simultenously.
2. IEs can be enabled/disabled invidually under D-Channel configuration. E.g. “no isdn outgoing ie facility”, “no isdn outgoing ie calling-number”, “no isdn outgoing ie called-number”, etc. This can be used to hide calling number by disabling Calling Number IE. Still CLID feature can be used as well.
3. Converting the hex value of Facility IE to ASCII, you can see the calling name.
Another hint is that CNAM can be sent as Facility IE without enabling CNAM as supplementary service. How??
IOS Gateways have the option to decode application protocol data units (APDUs) for supplementary services. If this command is not enabled, data units are not interpreted and are tunneled through the router.
voice service voip
qsig decode
Decoding those APDUs by the gateway locally enables it to use their contents. Since those APDUs are representing supplementary services, then those are Facility IEs.
Back to name display, once this feature is enabled on both gateways (mandatory on both gateways), IOS will encode all supplementary services on one side to Facility IE and decode them on the other side. Those supplementary services include CNAM and ALERTING name (display the name of called party on calling phone).
Very Important TIP: This is the only way to display the ALERTING NAME on calling phone. Note that ALERTING NAME is carried in the Facility IE of ALERTING message.
Nov 23 12:13:12.123: ISDN Se0/2/0:23 Q931: TX -> SETUP pd = 8 callref = 0x0095
Bearer Capability i = 0x8090A2
Standard = CCITT
Transfer Capability = Speech
Transfer Mode = Circuit
Transfer Rate = 64 kbit/s
Channel ID i = 0xA98383
Exclusive, Channel 3
Facility i = 0x9FAA068001018201018B0100A10E02012D0201008006757365723031
Protocol Profile = Networking Extensions
0x010182
0x01018B
0x0100
0xA10E02012D0201008006757365723031
Component = Invoke component
Progress Ind i = 0x8183 - Origination address is non-ISDN
Calling Party Number i = 0x4180, '2023001'
Plan:ISDN, Type:Subscriber(local)
Called Party Number i = 0xC1, '3023001'
Plan:ISDN, Type:Subscriber(local)
Nov 23 12:13:12.159: ISDN Se0/2/0:23 Q931: RX <- CALL_PROC pd = 8 callref = 0x8095
Channel ID i = 0xA98383
Exclusive, Channel 3
Nov 23 12:13:12.219: ISDN Se0/2/0:23 Q931: RX <- ALERTING pd = 8 callref = 0x8095
Facility i = 0x9FAA068001018201018B0100A10E02012A0201018006757365723032
Protocol Profile = Networking Extensions
0x010182
0x01018B
0x0100
0xA10E02012A0201018006757365723032
Component = Invoke component, Unsupported operation
Progress Ind i = 0x8188 - In-band info or appropriate now available
Note: In case CNAM as supplementary service is enabled as well as ‘qsig decode’ feature, ‘qsig decode’ feature will take precedence.
Also note the difference between Facility IE for CNAM as supplementary service and CNAM using ‘qsig decode’ feature. For this reason ‘qsig decode’ should be enabled at both sides in order to decode the Facility IE.
At this stage ISDN part should be clear and we can start the second blog.
Mohammed, thank you a lot for this article. I've been searching for the week to put it all together and suddenly I've found this article.
ReplyDeleteSo glad to know this :) ... I hope that my posts keep helping you and others :)
DeleteMany thanks
Very helpful article for understanding the concept.
ReplyDeleteThis is surely a great article!
ReplyDeleteReally a relief having this knowledge handy..Thanks Mate
If you are interfacing a DMS100 type switch the name should be sent in the display IE for best results. I work on the telco side and we do not support facility IE cname.
ReplyDeleteActually I am searching the Cisco IP phone updates. And I found your post. Its very helpful for me. Thanks or post it.
ReplyDeleteCisco ip phone
Actually desired to change caller id and also tone of voice during stay telephone calls?
ReplyDeleteMy Phone Robot provides you with portable and also net program for spoof and also nuisance cell phone calls.
The device is well know with superior good quality -
It utilizes true portable cable connections getting rid of an individual inadequate web connection.
We are trying to implement this in our CUCM 9 system but are unable to place a check mark in the "Send Calling Name in Facility IE". It's grayed out. Ideas/suggestions?
ReplyDeleteGreat Article! To the point and very easy to understand. Saved me a lot of time and helped me make a very angry customer happy again! :)
ReplyDeleteThanks for explaining it better than the Cisco CVOICE FLG.
ReplyDeleteVery nice articly, solved my QSIG CNAME issue :)
ReplyDelete