Sunday, October 10, 2010

Nexus 5000 - SFP validation failed on 1G port

My environment: Nexus 5010 with NX-OS 4.2(1)N2(1)

Nexus 5000 supports 1G connection starting from 4.0(1a)N1(1). I have tried to plug in the GE SFP to N5K and it shows the "SFP validation failed" message" in the "show interface" output. The trick is:

1. Unplug your GE SFP

2. go to your interface configuration, and type "speed 1000". You CAN'T change the port speed after you plug in your SFP.

3. Plug in your GE SFP again. And it works!

More information:

"If the interface and transceiver speed is mismatched, the SFP validation failed message is displayed when you enter the show interface ethernet slot/port command. For example, if you insert a 1-Gigabit SFP transceiver into a port without configuring the speed 1000 command, you will get this error. By default, all ports on a Cisco Nexus 5000 Series switch are 10 Gigabits. "

Monday, August 9, 2010

UCCX 8 Error - Content is not allowed in prolog

Referring the previous 2 blog posts:

Troubleshooting Contact Center Express + Nuance ASR

Contact Center Express 8 - Nuance Integration   

I have encountered a tricky question using the Simple Recognition Step. The error message is:

"org.xml.sax.SAXParseException: Content is not allowed in prolog"


After some troubleshooting, I found that the problem is the grammer file. When I type "more grammer.grxml" file in Windows, an character is observed at the start of file:


I copy and pasted the content without that character to my Linux host with vi and save the files to solve this problem.

Troubleshooting Contact Center Express + Nuance ASR

Referring to the previous blogpost:

Contact Center Express 8 - Nuance Integration

The very basic connectivity test can be shown from the page ASR Server Configuration:


REACHABLE means the Nuance Speech Server is listening port 4900/tcp. But it doesn't mean the ASR integration is done properly. One of the way to verify it is to extract the information from the "Get Contact Info" Step in UCCX editor.

First create a boolean variable:


Then store the resultant value "ASR Supported" to the parameter that you've created in the previous step:


Run the "Reactive Script" debugging and observe the value that you've created, in my case the parameter is called "asr"



You should see the value changed from false to true after "step over" the "Get Contact Info" step.


Then you can try ASR through either "Simple Recognition" or "Generic Recognition" step. Good Luck!

If you observe the boolean doesn't change to true, make sure you have correct settings in UCCX trigger:

201008092322.jpg The "Override Media Termination" should equal to "Yes" and make sure you've selected your ASR Dialog group.

Contact Center Express 8 - Nuance Integration

My environment:

Cisco Contact Center Express (UCCX)

ASR - Nuance Voice Recognizer 9.0.3

TTS - Nuance RealSpeak 4.5.4

MRCP Server - Nuance Speech Server 5.0.9

All 3 Nuance software are installed on the same Windows 2003 server.

If you want TTS and ASR capabilities for UCCX, Nuance is one of the option to provide you both capabilities. Voice Recognizer is the automatic speech recognition engine and RealSpeak provides text-to-speech capability. You will first need to install Voice Recognizer and RealSpeak as well as its language packs, finally install NSS, and load the software license to the license manager.

Start the Nuance Speech Manager in Windows Services MMC:


Then configure UCCX by first create the ASR provider, in my case it is Nuance:


Configure ASR Server, which is your Nuance server address:


"REACHABLE" means the NSS on Nuance is working properly with port 4900/tcp listening. 4900/tcp for MRCP version 1 integration and 5060/tcp for MRCP version 2 integration.

Add appropriate languages to the ASR server:


Next step is to create MRCP ASR Dialog group


For TTS configuration, it is pretty much similar. First specify the TTS provider:


Then add TTS server:


Add the language and gender for your TTS server:


If you are using demo license, make sure you follow the instruction below to modify Nuance config file:

Sunday, July 18, 2010

EIGRP Stub Leak

EIGRP Stub Leak is a feature on Cisco router which allows EIGRP stub routers to leak route to peer routers.  This is achieved by leak-map, which is a route map that permit specific route to leak through.  A video is recorded to demonstrate how it works:

English version:

Chinese (Cantonese) version:

Monday, April 12, 2010

Learning Nexus 7000 QoS by Example

My environment: Nexus 7010, NX-OS 4.2

Just got a chance to play with the Nexus 7000 NX-OS QoS, the “mls qos” syntax has gone and now all the commands are based on MQC.


In the following example, I’m going to configure 2 ingress ports, one with high priority traffic and one with normal traffic, and at egress port high priority traffic will be assigned to PQ to dequeue first.



N7K# conf t

class-map type queuing match-any 1p3q4t-out-pq1

  match cos 5

It can only be done via the main VDC.  It can’t be done on child VDC.  And you can ONLY match cos in the class-map.


Now let’s mark the ingress traffic, I will do this at the port assigned to the vdc “test”.

N7K# switchto vdc test


policy-map type queuing highpriority-in-policy

   class type queuing 2q4t-in-q-default

     set cos 5

Scheduling and Queuing

Finally, I want to assign the high priority traffic (cos=5) to PQ


policy-map type queuing highpriority-out-policy

  class type queuing 1p3q4t-out-pq1

    priority level 1

Last step is to assign service policy to the interface:


int e3/1

description - High Priority – Ingress -

service-policy type queuing input highpriority-in-policy


int e3/2

description – Low Priority – Ingress -


int e3/3

description – Egress Port -

service-policy type queuing output highpriority-out-policy


Tuesday, March 30, 2010

Create tftp bindings for phone firmware automatically on CME

My environment:  IOS 12.4(24)T1, CME 7.1, Cisco 2821
You can create automatic tftp bindings for all phone firmware instead of doing it manually one by one by using the “load” command under “telephony-service”.  Make sure you include the firmware file suffix in order to make the tftp binding automatically.  Without the suffix you need to configure it manually with the command “tftp-server flash:xxxx.loads”, etc.
load 7962 SCCP42.8-4-2S.loads
You might see this error after issuing the above load command:
LOAD COMMAND ERROR:cnf-file location system is not supported for creating automatic tftp bindings. Please use file location flash | slot0 | tftp OR create tftp bindings manually
Make sure you’ve entered the command “cnf-file location flash:” under “telephony-service” to specify the firmware location, then the error will go away!

An iPhone app for CME Config Generation: