Sunday, 27 November 2011

Caller ID Display over ISDN PRI - PART 1

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.

11 comments:

  1. 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.

    ReplyDelete
    Replies
    1. So glad to know this :) ... I hope that my posts keep helping you and others :)

      Many thanks

      Delete
  2. Very helpful article for understanding the concept.

    ReplyDelete
  3. This is surely a great article!
    Really a relief having this knowledge handy..Thanks Mate

    ReplyDelete
  4. 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.

    ReplyDelete
  5. Actually I am searching the Cisco IP phone updates. And I found your post. Its very helpful for me. Thanks or post it.
    Cisco ip phone

    ReplyDelete
  6. Actually desired to change caller id and also tone of voice during stay telephone calls?
    My 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.

    ReplyDelete
  7. 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?

    ReplyDelete
  8. Great 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! :)

    ReplyDelete
  9. Thanks for explaining it better than the Cisco CVOICE FLG.

    ReplyDelete
  10. Very nice articly, solved my QSIG CNAME issue :)

    ReplyDelete