Feb 25

WFO QM Not Syncing with CCX

A quick little blurb regarding WFO QM and CCX DB Connection.. I’ve setup QM a number of times now.. But I know the below is a little gotcha for newbies.. and speaking from experience this can be very frustrating!

Problem is when attempting to connect the QM Server to the CCX DB. No error is displayed in the Post Install setup.. However, you do not see any CCX info such as Agents when configuring the via the Admin Portal. When attempting to run a manual sync via the Admin Portal, it errors out.

The Sync Log show the below error:

ERROR SYNC2000 Failed to connect to side A of an ACD connection. Will try side B

Resolution is to replace the hyphens with underscores in the server name. This piece of information can be found in the install guide for QM.. Obviously my eyes perused over this key piece of information!

Feb 20

ATA190 Faxing to PSTN via ISDN and CUCM SIP Trunk

I’ve been deploying a lot of CUBE environments of late with faxing working from the T.38 protocol. I did want to jot something down regarding faxing to the PSTN via ISDN using an ATA190 registered to CUCM (doesn’t really matter what version) and connected the Voice gateway via a SIP Trunk.

I’m based in Australia and the fax settings I’ve found to be most successful as follows.

ATA190 Device Configuration page in CUCM

  •  Ring Voltage = 70V
  • Ring Frequency = 25Hz
  • Fax Mode = NSE Fax Pass-through g711alaw

 Voice Gateway (Cisco IOS)

Under the Voice Service Voip Menu.

  • modem passthrough nse codec g711alaw

CUCM SIP Trunk configured as per normal, no special configuration. I have aLaw configured, I found  uLaw (which is also acceptable in Australia) was working for outbound faxing but not for inbound faxing, however I have had some case where the opposite is true.

Just a matter of making logical/strategic changes to the faxing configuration to ensure both directions are operating correctly.

Feb 06

Cisco Jabber Last Logged in Report

To find out the last logged in times for Jabbers in CUCM required the below shell command. I found the command on the Cisco Support Forum.. I have added the reference link to the bottom of this blog. I though I would extend the the process of getting the info out of CUCM and into a spreadsheet to make some sense of the data.

SSH to the CUCM Publisher Server and execute the below SQL command.

run sql select e.userid, cd.timelastaccessed from enduser as e, credentialdynamic as cd, credential as cr where e.pkid=cr.fkenduser and e.tkuserprofile=1 and e.primarynodeid is not null and cr.tkcredential=3 and cr.pkid=cd.fkcredential order by cd.timelastaccessed

Jabber last Logged In

Snippet of the results.

jabber-last-logged-in-1

I had logging enabled in Secure Shell as the results will span past the shell buffer. Open Excel and import the log file generated. I use ‘Delimitated’ and separated via ‘space’.

After the log file has been imported into excel, I use the Unix to excel time formula to make sense of the date.

Formula is =CELL/(60*60*24)+”1/1/1970″

*Note: ensure the format of the cell is ‘Date’.

Save the spreadsheet, and you now have a full list of all users and their last logged in date for Jabber.

References:

Cisco Support Forum: https://supportforums.cisco.com/t5/unified-communications/jabber-report/td-p/2957556

Feb 02

CSR 12.0 Extension Mobility Sign-in Options

Extension Mobility in Cisco Collaboration Services 12.0 has expanded with a couple of useful options. When configuring Extension Mobility sign-in service, you can now elect to setup a further two types of sign-in options.

These are Primary Extension and PIN known as Login Type ‘DN’. The second is using the Self Service User ID and PIN, known as the login type ‘SP’. This is on top of the current User ID and PIN, know as the login type ‘UID’.

URLs for these options are below.

Login Type DN

URL: http://:8080/emapp/EMAppServlet?device=#DEVICENAME#&EMCC=#EMCC#&loginType=DN

Login Type SP

URL: http://:8080/emapp/EMAppServlet?device=#DEVICENAME#&EMCC=#EMCC#&loginType=SP

Login Type UID

URL: http://:8080/emapp/EMAppServlet?device=#DEVICENAME#&EMCC=#EMCC#&loginType=UID

Nov 14

MoH Silent – SIP CUBE to ITSP without MTP – OPTION 2

More MoH talk with ITSP and CUBE’s. I mentioned in earlier posts that playing MoH without an MTP can be achieved by creating sip-profiles to manipulate some of the SDP attributes. I recently have another MoH issues where the MoH stream was simply dead air or silent. Of course enabling the MTP on the SIP Trunk in CUCM resolved the issue.. however we want to avoid forcing an MTP for all calls.

I resolved this by removing the cmd “pass-thru content sdp” under the Voice Service Voip -> SIP config menu. In this case the sip-profile route was not working for me.. The above cmd negates the Gateway in the negotiation process, hence passing through codec and mtp negotiations. The potential problem here is the mismatch between CUCM and ITSP, we want the gateway to participate and effectively inter-work between CUCM and the ITSP.

If you have other options or methods that work to combat silence in MoH using an ITSP, please post.

Apr 30

Cisco Jabber cannot Call out to PSTN

Migrated to SIP Carrier and experience an issue where Deskphones could call out to the PSTN, however the Cisco Jabber softphones could not. The annunciator message was played from the carrier network. The remote device (being the device across the PSTN Network) would ring once.

Tracing the SIP messages, I could see the carrier was sending back a SIP reason of “Q.850;cause=41″. Looked up the code which is “Temporary Network Failure – Try again”. So not too much help there..

I analysed the SDP being sent to the carrier from the Cisco Jabber softphone vs the Deskphone and found the video and content sharing attributes were being passed out to the Telco. This Telco connection is just an audio PSTN service, so it would not support video.

I created a new Device Pool for the SIP Trunk to the CUBE, along with a new Region and set the Video to “None”. This effectively disables Video, hence any endpoint including Cisco Jabber establishing call, will not send the Video/Content media attributes. Telco is now happy and calls proceed through the PSTN.

FYI, have pasted below the differences in the SDP.

SDP – Cisco Jabber

v=0
o=CiscoSystemsSIP-GW-UserAgent 9138 8218 IN IP4 192.168.241.20
s=SIP Call
c=IN IP4 192.168.241.20
t=0 0
m=audio 17206 RTP/AVP 8 0 18 101
c=IN IP4 192.168.241.20
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
m=video 51372 RTP/AVP 31
c=IN IP4 192.168.241.20
m=application 17458 RTP/AVP 125
c=IN IP4 192.168.241.20

SDP – Standard IP Phone (No Camera)

v=0
o=CiscoSystemsSIP-GW-UserAgent 7438 4222 IN IP4 192.168.241.20
s=SIP Call
c=IN IP4 192.168.241.20
t=0 0
m=audio 18034 RTP/AVP 8 0 18 101
c=IN IP4 192.168.241.20
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15

a=ptime:20

Apr 19

MoH – SIP CUBE to ITSP without MTP

No Music to PSTN using SIP Cube toward ITSP? Using an MTP would resolve this issue, however if using an MTP was not an option, then use the below SIP Profile statement to allow Music on hold to stream toward the PSTN.

Create (or append if you are already using sip-profiles) a sip-profile voice class and add statements.

voice class sip-profiles 1
request REINVITE sdp-header Audio-Attribute modify “inactive” “sendrecv”
request ACK sdp-header Audio-Attribute modify “sendonly” “sendrecv”
response 200 sdp-header Audio-Attribute modify “sendonly” “sendrecv”

Apply the sip-profiles globally or on the Dial-Peer.

** GLOBAL**

Voice service voip
sip
sip-profiles 1

** DIAL-PEER **

Voice-class sip profiles 1

Apr 10

Group Voicemail Alternative – Cisco Jabber

Departmental or Group voicemail is always requested when deploying a phone system. The traditional method of distribution lists worked great, however since the introduction of Jabber, there seem to be caveats in configuring these lists. Jabber will display the voice message no worries, this is great.. Except you can not accept or decline a voice message. So you will still need to log into the Voicemail Server via the phone and follow the prompts to accept messages.

Another method is to use Alternate Extensions (if the user doesn’t already have a mailbox). This is limited to a certain number of users who can access the mailbox via alternate extensions. But I’ve found in most cases.. The number of users wanting access to department or group mailbox is fewer than the limitation.

Alternate Extensions also allows Jabber to visually display the voicemail, allow to tag as unread, read, delete message etc.. And yes voice message are indeed synchronised across the Jabber clients that have access to the mailbox. Users can also forward voice messages from Jabber 11.8.

Outline on how to set up this alternate method is below.

The Jabber Service Profile must include the Voicemail Server configuration along with the Credentials field set to “not set”. ie this means the user must enter the credentials for the mailbox.

On the Unity Connection Server ensure the below is configured.

- Mailbox Password is set (This is not the PIN)
- Alternate Extension of the Jabber Users
- MWI Extension of the Jabber Users.

Assign the Jabber Service Profile to the End User in CUCM. Once the user logs into the Jabber client, select the Voice Messages Tab. The user will have to enter the credentials of the group mailbox.

On top of this, we can also configure single mailbox for the group. (if the destination email address is a Exchange/O365 mailbox).

Mar 30

Session Line Mode vs Enhance Line Mode – 8800 Series

Enable Enhanced line mode to use the buttons on both sides of the phone screen as line keys. Predictive dialing and Actionable incoming call alerts are enabled by default in Enhanced line mode.

You must create a new, customized phone button template.

Step 1 In Cisco Unified Communications Manager Administration, select Device > Phone.
Step 2 Locate the phone that you need to set up.
Step 3 Navigate to the Product Specific Configuration area and set the Line Mode field to Enhanced Line Mode.
Step 4 Navigate to the Device Information area and set the Phone Button Template field to a customized template.
Step 5 Select Apply Config.
Step 6 Select Save.
Step 7 Restart the phone.

Features Available in Enhanced Line Mode

Enhanced line mode supports most but not all features. Enabling a feature does not imply support. Read the following table to confirm that a feature is supported.

Feature Supported by Firmware Release 11.5(1) Notes
Answer Yes
Automatically Answer Calls Yes
Barge/cBarge Yes
Bluetooth Smartphone integration Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Bluetooth USB Headsets Yes
Call Back Yes
Call Chaperone Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Call Forward All Yes
Call Park Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Call Park Line Status Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Call Pickup Yes
Call Pickup Line Status Yes
CFWA on multiple calls Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Cisco Extension Mobility Cross Cluster Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Cisco IP Manager Assistant (IPMA) Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Cisco Unified Communications Manager Express Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Conference Yes
Computer Telephony Integration (CTI) applications Yes
Decline Yes
Device Invoked Recording Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Directed BLF Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Do Not Disturb Yes
Enhanced SRST Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Extension Mobility Yes
Group Pickup Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Hold Yes
Hunt Groups Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Incoming Call Alert with configurable timer Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Intercom Yes
Key Expansion Module Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Malicious Call Identification (MCID) Yes
Meet Me Yes
Mobile Connect Yes
Multilevel Precedence and Preemption Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Mute Yes
Programmable Line Key (PLK) Support for Queue Status Yes
Privacy Yes
Queue Status Yes
Quality Reporting Tool (QRT) Yes
Right to Left locale support Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Redial Yes
Silent Monitoring and Recording Not supported by Firmware Release 11.5(1) This feature is being considered for future releases.
Speed Dial Yes
Survivable Remote Site Telephony (SRST) Yes
Transfer Yes
Uniform Resource Identifier (URI) Dialing Yes
Video Calls Yes
Visual Voicemail Yes
Voicemail Yes

Cisco IP Phone 8800 Series Administration Guide

http://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cuipph/8800-series/english/adminguide/P881_BK_C136782F_00_cisco-ip-phone-8800_series/P881_BK_C136782F_00_cisco-ip-phone-8811-8841_chapter_01011.html#task_99EA577B0C5DA470C3075195494F789C

Mar 25

Poor Voice Quality. Is it My problem or the Telco’s?

Quite often in the voice world we are pointed at and told that our system doesn’t work, call quality is poor, the caller’s voice drops out, calls are being disconnected randomly etc. Then we have to go and decipher what is really going on and isolate the issue so we can determine where the fault lies within the network… or perhaps outside the network.

Rcvr Lost counter on an IP Phone simply states that the phone expected to receive x amount of packets and only receive y amount of packets, the difference being the RCVR Lost counter. How does the phone know what to expect? Well RTP is a stream of organised sequential packets, each packet has a sequential number associated to it.. If RTP packet number 1002 was lost along the way, then the phone would receive RTP packet 1001 and then 1003… the phone would be asking.. Hey where was RTP packet 1002? And then notch up the RCVR Lost counter. With enough packets lost in a RTP stream.. The callers now start to experience poor quality with words dropping out etc.

Of course this is our problem until proven otherwise, Telcos never want to investigate into the problem first.. I’ve outlined the process of what I undertook to essentially clear the phone system of any wrong doing and force the Telco to take a closer look at the issue.

First of all, this is a SIP ITSP connection.. I have a Cisco 2901 ISR acting as a CUBE, with CUCM sitting behind the CUBE.

1. Enable web access to the phone. View the phone from the web and select stream 1. This is the primary conversation. There will be a few counters in here.. But we interested in RCVR Lost counter and the customer is complaining about not being able to hear callers, as their voice drops in and out, hence we look at the incoming stream. If the RCVR Lost counter has any number higher then ’1′ then we have a potential issue.

2. Now lets log into the CUBE. We are looking for packets received and packets sent for the call conversation. These should exactly match the phone. Use the following command on the CUBE to view packets in / out. HOSTNAME# show call active voice brief

call_active_voice_bri
In the above output, you can see between the Inbound and outbound call legs (same Call IDs), the rx (received) packet count on the inbound call leg exactly matches the tx (transceive) packet count on the outbound call leg. (The yellow highlight represents the call flow inbound and the Red underline represents the call flow outbound.

When the rx and tx are matching, this indicates the CUBE is not dropping any packets in the RTP stream. So we must look further out to the Telco.

4. Also check the Switching interfaces for lost packets, this is quite rare, but worth verifying to ensure switch ports or QoS are not dropping packets etc.

5. Lets take a packet capture on the outside interface of the CUBE. We want to do this to explicitly identify if the any RTP packets have been lost before arriving at the CUBE. We can also playback the RTP stream in wireshark to listen for the defect in the voice.

6. To capture packets on the CUBE follow the below. There is also a great article, which I have linked below that expands on capturing packets.

(config)# monitor capture buffer BUF size 2048 max-size 1518 linear

(config)# ip access-list extended RTP
(config-ext-nacl)# permit udp any any range 16384 32767
(config-ext-nacl)# permit tcp any any eq 5060
(config-ext-nacl)# permit udp any any eq 5060

(config)# monitor capture buffer BUF filter access-list RTP

Select the interface of the capture point. Also select the switching plan.. Which should be cef and not process.

(config)# monitor capture point ip cef POINT gigabitethernet 0/1 both

(config)# monitor capture point associate POINT BUF

(config)# monitor capture point start POINT

(config)# monitor capture point stop POINT

(config)# monitor capture buffer BUF export tftp://10.1.1.1/BUF.pcap

Delete capture point and capture buffer

(config)# no monitor capture point ip cef POINT fastEthernet 0 both
(config)# no monitor capture buffer BUF

7. Now we can open the stream in wireshark. If the stream is g711u/alaw then wireshark will have no problems analysing the RTP stream and playing it back to you. If the stream is G729 however, I’ll add a note onto the bottom of this blog to take you through decoding g729, actually I’ll add this is as a separate blog entry.

8. Open the PCAP file in wireshark. Navigate to Telephony -> RTP -> RTP Streams. This will display the captured RTP Streams.

rtp_streams_wireshark

We can also see from here that the inbound call leg for the external facing interface is displaying lost packets and a high jitter number. These lost packets are known because the RTP stream is sequential.. Hence the CUBE knows how many packets it should have received vs the packets is has received. In this case we can send this result to the Telco as this definitively states the issue lies before the one-premise CUBE processes the RTP Stream.

We can also play the stream to hear for any missing voice etc. Select the ‘Analyze’ button. This will display a window with more statistics for the RTP Stream.

rtp_streams_analyze

No select Play Stream. This will playback the stream.

rtp_streams_play

Link to capturing packets on Cisco IOS Router.
www.cisco.com/c/en/us/support/docs/ios-nx-os-software/ios-embedded-packet-capture/116045-productconfig-epc-00.html