Showing posts with label Collaboration. Show all posts
Showing posts with label Collaboration. Show all posts

Monday, January 22, 2018

Where's my Caller-ID Calling Name Man? (PRI Inbound Calling Name in subsequent FACILITY)

It's been a long minute since I've run into this particular scenario.  Unfortunately, I didn't have the solution in my notes so I reached out to my old pal google for some inspiration.

We just had a new telco company install a voice PRI with the intention of replacing our existing telco company's PRI at one of our remote sites.  After installing and testing the new voice PRI we realized that the inbound calling name was not displayed on the phones.

In this particular scenario the setup looked something like this:

PRI -----ISDN-----> Cisco ISR-G2 VG -----SIP-----> CUCM -----SCCP-----> Cisco IP Phone

We ran a "debug isdn q931" to troubleshoot the problem.  Upon inspection we found that the calling party name was not being sent in the initial ISDN setup message.  In fact, it indicated that the calling name would be send in a "subsequent FACILITY message".

First, the voice gateway won't process the calling name in a subsequent Facility messages by default. The fix for that is to apply the following to the d channel of the PRI:

interface Serial X/X/X:23
 isdn supp-service name calling

Secondly, there is a problem in this scenario with the voice gateway sending a SIP invite to Communications Manager right after it gets the ISDN setup message.  Since the initial ISDN setup message doesn't have the calling name the SIP invite will also be lacking the calling name. When we tested at this point the phones were showing "From pending" as the calling name. The work around for this issue is to introduce a delay before the voice gateway sends the SIP invite to CUCM. Each scenario may require a different amount of time. One can look at the debugs to find out how long it takes between the time the initial ISDN setup message is received and when the ISDN facility message with the name is received. In this particular case we tuned the delay to 500 milliseconds and it seems to work well. The command to delay the setup for 500 milliseconds is.

sip-ua
 timers buffer-invite 500

For more information, Cisco also has a bug id CSCup91440 that references using a buffer-invite on individual dial peers.

Below are some samples of what the debugs looked like on a typical inbound telco call and the telco that sends the calling name in a later message.

Standard Telco "Before Debug"
(The actual telephone numbers have been changed to protect the innocent.)

507963: Jan 22 09:53:13.269: ISDN Se0/2/0:23 Q931: RX <- SETUP pd = 8  callref = 0x14D4
        Bearer Capability i = 0x8090A2
                Standard = CCITT
                Transfer Capability = Speech 
                Transfer Mode = Circuit
                Transfer Rate = 64 kbit/s
        Channel ID i = 0xA98382
                Exclusive, Channel 2
        Facility i = 0x9F8B0100A11702010D020100800F4368696361676F202020202020494C
                Protocol Profile =  Networking Extensions
                0xA11702010D020100800F4368696361676F202020202020494C
                Component = Invoke component
                        Invoke Id = 13
                        Operation = CallingName
                                Name Presentation Allowed Extended

                                Name = Joshua Learn
        Display i = 'Joshua Learn'

        Calling Party Number i = 0x2180, '8005551212'
                Plan:ISDN, Type:National
        Called Party Number i = 0x80, '8885551212'
                Plan:ISDN, Type:National
507964: Jan 22 09:53:13.269: ISDN Se0/2/0:23 Q931: Received SETUP  callref = 0x94D4 callID = 0x13E4 switch = primary-ni interface = User 



Subsequent Facility Message Telco "After"
(The actual telephone numbers have been changed to protect the innocent.)

040306: Jan 22 07:49:27.801 PST: ISDN Se0/2/0:23 Q931: RX <- SETUP pd = 8  callref = 0x1A22
        Bearer Capability i = 0x8090A2
                Standard = CCITT
                Transfer Capability = Speech
                Transfer Mode = Circuit
                Transfer Rate = 64 kbit/s
        Channel ID i = 0xA98381
                Exclusive, Channel 1
        Facility i = 0x9F8B0100A10F02016A06072A8648CE1500040A0100
                Protocol Profile =  Networking Extensions
                0xA10F02016A06072A8648CE1500040A0100
                Component = Invoke component
                        Invoke Id = 106

                        Operation = InformationFollowing (calling_name)
                                Name information in subsequent FACILITY message

        Progress Ind i = 0x8281 - Call not end-to-end ISDN, may have in-band info
        Calling Party Number i = 0x2183, '8005551212'
                Plan:ISDN, Type:National
        Called Party Number i = 0xA1, '8885551212'
                Plan:ISDN, Type:National
040307: Jan 22 07:49:27.801 PST: ISDN Se0/2/0:23 Q931: Received SETUP  callref = 0x9A22 callID = 0x1D81 switch = primary-ni interface = User
040308: Jan 22 07:49:27.805 PST: ISDN Se0/2/0:23 Q931: TX -> CALL_PROC pd = 8  callref = 0x9A22
        Channel ID i = 0xA98381
                Exclusive, Channel 1
040309: Jan 22 07:49:27.848 PST: ISDN Se0/2/0:23 Q931: RX <- FACILITY pd = 8  callref = 0x1A22
        Facility i = 0x9F8B0100A11702016B020100800F332054524143452020202020202020
                Protocol Profile =  Networking Extensions
                0xA11702016B020100800F332054524143452020202020202020
                Component = Invoke component
                        Invoke Id = 107
                        Operation = CallingName
                                Name Presentation Allowed Extended

                                Name = Joshua Learn

                              




Thursday, January 11, 2018

How do I enable the line selection features for the Cisco 8800 phones on Communications Manager Express (CME)?

Many of us who have deployed the Cisco 88XX phones have run across 2 features that are life savers when working with multi-line phones connected to CUCM. Those features are "Show ALL Calls On Primary Line" and "Revert All Calls". For those who haven't used those features before I recommend checking out Amy Engineer's blog on why they are helpful and how they work with CUCM.

https://amyengineer.com/tag/8841/

While these 88XX line selection options have existed in the full Unified Communications Manager offering for a while. These options are not officially available in CME at the time of this writing. Luckily, since the phones have the functionality in firmware, there is a bit of a dirty hack to invoke these features in CME.

The following configuration will enable the "Show ALL Calls On Primary Line" feature on ALL phones.

telephony-service
service phone allCallsOnPrimary 1

The following configuration will enabled the "Revert All Calls" feature on ALL phones.

telephony-service
service phone revertToAllCalls 1

After those features have been enabled the phone profiles (config files) need to be re-created.  The following commands can be used to recreate the profiles.

voice register global
 no create profile
 create profile

Then we can validate the configs or skip this part and just reboot the phones and test.  Here's a sample scenario to check the config file.  Assuming CME is writing the config files to a directory called "its" and there is a phone with a name of "SEP101010101010", the following cli commands would show if the new configuration options are written to the config file.

more bootflash:/its/SEP101010101010.cnf.xml | i allCallsOnPrimary
and
more bootflash:/its/SEP101010101010.cnf.xml | i revertToAllCalls

After validating the the new addition to the configuration the phones will need to be rebooted and then voilĂ  the new features are active!



Friday, March 31, 2017

Fun with Cisco Compliance Recording (Live Monitoring)

* This list of notes is to remind myself of some of the gotchas during the installation.  Your mileage may very.


SQL Shenanigans
Configuring the Compliance Recording integration to SQL puked.  It threw a, "Network error IOException: Connection refused", error message.  It turns out that the TCP/IP protocol was disabled by default for SQL.  It was fixed by firing up the SQL Server Management Studio (SSMS) and enabling the TCP/IP protocol.

Fun with the UCCX integration

  • Primary & Secondary UCCX Server Hostname
Entering the hostname configuration to match the hostname of the UCCX server didn't work out.  In this case the hostname had hyphens in it.  Compliance Recording doesn't handle the hyphens correctly.  The hyphens in the hostnames need to be entered as underscores instead.  This is to ensure that the automagically generated "db instance name" guess matches the actual Informix database instance name.  For whatever reason, the software will not automagically replace the hyphens with an underscore.

(Incidentally, the install doc also states that if the server name starts with a number to add the letter "i" to the beginning of the name.  "For example, if the server name is “100-voiceuccx-01”, enter “i100_voiceuccx_01”.")

  • UCCX Workforce User Login
There are 2 options for UCCX Workforce User.  Both of these are preexisting special purpose users that live in the UCCX system.
  • uccxworkforce - The default user for standard "network" based recording with the media sense server.
  • uccxhruser - This user supports "mediasense" based recording.
The installation guide states, "The uccxworkforce login ID does not have permission to use contactcalldetail and agent connectiondetail tables that are required for reconciliation."

  • UCCX Workforce User Password
Using passwords with more than 8 characters and/or symbols is NOT supported!  The password needs to be 8 characters or less with no special characters (letters and numbers supported only)

The other fun fact is the password needs to be manually configured on both the Primary UCCX and the HA UCCX  servers.  (It doesn't synch).  But at least UCCX is nice enough to generate a warning after setting the password on the Primary "box".

Archive Work Flow
Configuring an archive work flow is mandatory for Live Monitoring (or "network" based recording to work).  I spent a couple of days going over everything with a fine tooth comb with the nice folks from Calabrio before we realized the archive work flow is mandatory for Live Monitoring.  Even if the calls are not meant to be archived, the archive work flow must still be configured (archive work flow can be set to not save recordings)  The other fun gotcha is I tested with a "test" team and almost forgot to enable the archive work flow for the production teams.

Live Monitoring - Network Based Recording Requirement
Live monitoring will not work with media sense integrated recording.  The standard "network" based CR server needs to capture the audio for Live Monitoring to work.

Sameday Download - Call Recording
Sameday audio (contacts) can not be downloaded by users until the audio is played in the browser (or at least selected so the audio loads in the web based media player).  After the audio (contact) is played in the browser it is migrated to long term storage.  The audio export process pulls the audio from long term storage.

Reference Docs
Cisco has some useful reference documents on their website.  calabrio.com also has some good information too for Cisco partners.  The Calabrio site does require obtaining a Calabrio login which can take a couple of days.

* Note - Observations based on a Compliance Recording 11.5.1 SR5 experience

Integrating WebEx Calling and Communications Manager Express 2/2

This is the second post in the two post series. It will go into more detail on the configuration of the solutions and workarounds put in pla...