Monday, August 27, 2012

CCME - SIP Phone Configurations


I don't think I've seen SIP deployed yet in a CCME environment unless the phone set supported only SIP. Anyway, SIP seems like the direction most of the new phone sets are heading towards, and it's pretty cool that most of the older phones support SCCP and SIP. So let's figure out how to deploy SIP phones on CCME...

Phone Firmware Files
     Before you can configure and register SIP phones, you'll need to upload the relevant phone firmware files into the router's flash memory. Keep in mind that some firmware files are version specific. If you upgrade/downgrade, you may have to re-upload the applicable phone firmware files or it may not work.

CCME SIP Firmware Files Required:
  •  cme-gui-124-24T.tar                                !! for web GUI access
  •  79XX-79XX-sip.<version>.tar                   !! for 79XX phone types
  •  P00308000500.tar                                    !! for 7940 and 7960 SCCP and SIP phones
  •  ringtone.tar                                             !! for additional ringtones
     To find out the specific files that you need for each phone, search Google/Cisco for your specific version of CME. Since we are using CME version 7.1, here is the associated documentation for firmware and more:
http://www.cisco.com/en/US/docs/voice_ip_comm/cucme/requirements/guide/cme71spc.htm


     To upload the phone firmware files, each IOS Release has a matching Complete Support File Set TAR/ZIP. When you have this TAR file, you can use the archive tar command to extract the specific files needed to flash memory

archive  tar  /xtract  tftp://<source-url>/  flash:
archive  tar  /xtract tftp://192.168.1.1/P00308000500.tar  flash:/PHONE/


SIP Configurations

ip dhcp excluded-address 10.10.202.1 10.10.202.49
ip dhcp excluded-address 10.10.202.70 10.10.202.254

ip dhcp pool PHONES
  network 10.10.202.0 255.255.255.0
  option 150 ip 10.10.202.1
  default-router 10.10.202.1


tftp-server flash:PHONE/P00308000500.loads  alias  P00308000500.loads
tftp-server flash:PHONE/P00308000500.sb2  alias  P00308000500.sb2
tftp-server flash:PHONE/P00308000500.bin  alias  P00308000500.bin
tftp-server flash:PHONE/P00308000500.sbn  alias  P00308000500.sbn

     Set up the TFTP server the with required SIP firmware files. The "tftp-server flash:" command allows the TFTP server on the CME router to serve that specific file. The "load" command within "voice register global" or "telephony-service" specifies the load that the phones should run. It is recommended to keep all phones at the same firmware version level to avoid version interoperability issues and to simplify troubleshooting across all phones.
     Use the "alias" command when the tftp-server file is not located at the flash: root location. Since we have it in the PHONES sub-directory, we must create an alias of the file name for phones download this file.


voice service voip
  allow-connection h323 to sip
  allow-connections sip to h323
  allow-connections sip to sip
  sip
    bind control source-interface FastEthernet0/0.522      !! use same IP address as SIP source
    bind media source-interface FastEthernet0/0.522       !! use same IP address as SIP source
    registrar server expires max 600 min 60                    !! Enable Cisco IOS SIP registrar


voice class codec 1
   codec preference 1 g711ulaw
   codec preference 2 g729r8


     We need to allow connections from SIP to SIP and H323 as SIP phones create voip dial-peers and SCCP phones create EFXS POTS dial-peers. Without these allowed connections we will be unable to have SIP and SCCP phones communicate with each other.
     The SIP section under voice service voip is also required. You must bind the control and media (you can also use the "all" command for both) with the same IP address on the source-address under your SIP Voice Register Global section or you will run into phone registration problems.
     The registrar server command is needed for phones to register. Users register with this registrar server using their assigned SIP addresses. The registrar server then provides the registration information.


voice register global
  mode cme                                                     !! default is srst, need to set to CME mode
  source-address 192.168.1.1 port 5060             !! assign same address as the bind media/control
  max-dn 10                                                     !! sets the maximum extension amount
  max-pool 10                                                  !! sets the maximum phone amount
  authenticate register                                     !! allows phones to authenticate with ID & PW
  time-format 24                                               !! set the time to 12 or 24 hour format
  date-format D/M/Y                                         !! set the date format to D/M/Y
  tftp-path flash:                                               !! sets the location of all the phone firmware files
  create profile                                                !! any change made? always use this command
  ntp-server 192.168.100.1 mode unicast          !! set the NTP server

    Voice register global is the "telephony-service" of the SIP CME world. The first command you need to enter is "mode cme" as the default is "mode srst". Without "mode cme" you will be missing quite a few commands which you need to get phones registered.
     Set the source-address to the same IP address as you did with the bind control and media commands under voice service voip sip. Also set the "tftp-path" command to the flash location of all the phone firmware files you uploaded.
     One of the most used SIP CME commands is "create profile". Anytime you make a change to a DN, Pool, Global, Template, or pretty much anything SIP phone related, you MUST run this command.
    
voice register dn 1                       !! SIP DN - equivalent to SCCP ephone-dn
  number 3000                              !! extension DN number
  name BR2 - 3000                        !! caller ID name string
  label BR2 - 3000                         !! line text label on the phone

  
voice register template  1
  dialplan 1                                                          !! dialplan needed for SIP phones w/o KPML
  softkeys connected  Endcall Hold Trnsfer           !! specify softkeys for specific phone states

  softkeys hold {[Newcall] [Resume]} 
  softkeys idle {[Cfwdall] [Newcall] [Redial]}  
  softkeys seized {[Cfwdall] [Endcall] [Redial]}

voice register dialplan  1                  !! choose either 7940-7960 or 7905-7912
  type 7940-7960-others                      !! can only have one type for each dialplan
  pattern 1 3...                                    !! removes inter-digit timeout due to lack of KPML
  pattern 2 999                                    !! create a pattern for each outgoing dial-peer pattern



voice register pool 1                       !! SIP Phone - equivalent to SCCP ephone
  id mac 1111.2222.3333                  !! phone MAC address
  type 7965                                      !! phone model type
  number 1 dn 1                              !! assign a DN to a button 
  template 1                                    !! assign a voice register template
  dialplan 1                                     !! choose a dialplan which overrides the template dialplan
  description 32143000                  !! external phone mask - displays at top right of phone
  voice-class codec 1                       !! set the codec preference class

 

Troubleshooting SIP CME

Router
  • debug tftp events
  • debug tftp packets
  • debug ccsip messages
  • debug ccsip error
  • show ip dhcp bind
  • show voice register tftp-bind
  • show voice register global
  • show voice register statistics

Switch
  • show power inline
  • show cdp neigh [detail]

.

Wednesday, August 22, 2012

CCME - Enabling the Web GUI



     Here are the basic configurations I typically use when setting up the Web GUI for CCME. This will allow administrators to utilize the web GUI for changes to the system.

GUI Files
     Before you can configure the web GUI, you'll need to upload the GUI files into the router's flash memory. Keep in mind that ALL GUI files are version specific. If you upgrade/downgrade, you have to re-upload the applicable GUI files or it will NOT work!! For convenience and easy deletion, you can upload the GUI files to a GUI folder within flash memory so that it is separated and isolated from the rest of the files.

Standard GUI Files (IOS ver 12.4(24)T):
Admin-user.html
Admin_user.js
CiscoLogo.gif
delete.gif
dom.js
downarrow.gif
ephone_admin.html
logohome.gif
normal_user.html
normal_user.js
Plus.gif
sxiconad.gif
Tab.gif
Telephony_service.html
uparrow.gif
xml.template
xml-test.html


To upload the GUI files, each IOS Release has a matching GUI  TAR/ZIP file. When you have this TAR file, you can use the archive tar command to extract the files to flash memory

archive  tar  /xtract  tftp://<source-url>/  flash:/GUI/
archive  tar  /xtract tftp://192.168.1.1/cme-gui-7.1.0.1.tar  flash:/GUI/



CCME Web GUI Restrictions   
      After extracting the files to flash, you're almost ready to start configuring the Web GUI. You'll have to make sure that you're not running into any of these conflicts/restrictions:
  • As discussed above, CME GUI is IOS version specific! You need to make sure the GUI files match the version you are running!!
  • The user name that you will be setting up for CME Web GUI access must be unique. It cannot match any username value, such as the local router login accounts or username for Extension Mobility.
  • If you have more than 100 phones configured, don't use the CME GUI as it will take too long to load search screens.


CCME Web GUI Configurations
     And finally we get to configure the CME Web GUI.

  ip http server                                                                      !! enables the HTTP server on the router
  ip http path flash:/GUI/                                                      !! the location of the GUI HTML files
  ip http authentication [aaa  |  enable  |  local  |  tacacs]    !! default uses the enable password

  telephony-service
  web admin system name <username> password  <string> !! the username MUST BE unique
  dn-webedit                                                                           !! allows user to add directory numbers
  dn-timedit                                                                            !! allows user to set the phone time





CCME Web GUI Access
     To access the web GUI, go to the following URL where the router's IP address is the CME source IP address.

  http://<router's IP address>/ccme.html

     You will be presented with a login screen. The "ip http authentication" command determines where the authentication occurs and by default it uses the enable password. Users with privilege level 15 also have system administrator level privileges in CCME after being authenticated locally or remotely through AAA.

     There are three types of user accounts:
  1. System Administrators - full access to CLI and CME GUI features
  2. Customer Administrators - Access only to CME Web GUI
  3. Phone User - Able to program a small set of features on their phone and search the CME directory.

Configuring Customer Administrator Accounts

  telephony-service
  web admin customer name <username> password <string>


Configuring Phone User Accounts

  ephone <phone-tag>
  username <username> password <string>





.

Wednesday, August 15, 2012

VGW - Basic Configurations

Basic Voice Gateway Configurations

     Here are the basic configurations I typically use when setting up a voice router. This will help in setting up a voice T1/E1 circuit for H.323 or SIP trunked routers.

Card Type and Clocking
     Before you can configure the card, you'll need to tell the router what card type is configured (T1 or E1), and where it is located.
     The network-clock commands allow voice cards to access the clock on the backplane.  Since these cards don't have DSPs built in on them, they have to use the clock provided by the DSPs on the motherboard. This is opposed to something like a T1 on an NM-HDV where the card has it's own DSPs and doesn't need to use the backplane clocking.

     For VWICs plugged into the chassis they will not operate without network-clock-participate. The TDM backplane can only do one clocking at a time, and the network-clock-select chooses which of the clocks it will sync with the TDM backplane. This proves problematic when you have two separate carrier circuits with different clocking.

  card type e1 0 1
  card type t1 1 1
  network-clock-participate wic 1
  network-clock-select 1 E1 0/1/0


ISDN Switch-Type
     Want to configure a VWIC card so that a PRI can be setup? You better enter the isdn switch-type command first. Without it you won't be able to fully configure the controller or see any serial interfaces. The switch-type can be applied globally or at the Serial interface level which overrides the global setting.

  isdn switch-type primary-ni

Other ISDN switch type ptions are primary-4ess, primary-5ess, primary-dms100, primary-dpnss, primary-net5, primary-ni, primary-ntt, primary-qsig, and primary-ts014.


Voice Card
     Configure a voice card for local and/or CUCM (SCCP) DSP resource sharing. Voice-card 0 points to the default chassis voice-card.
     If you do not have enough DSPs on the chassis for a PRI and you have a module (eg. NM-HDV2) with DSPs, you can use the dspfarm command under the voice card where the additional DSPs are located and make them available for sharing with the chassis. Typically this is not the case and we set “no dspfarm” under Voice-card 0 to prevent DSP sharing within the router.
     If you want to configure hardware conferencing (CFB), transcoding (XCD), or media termination points (MTP) you need to enable “dsp services dspfarm”. That command makes the DSP’s for CFB, XCD, and MTP available to be controlled by the Skinny (SCCP) application that runs on the router.

voice-card 0
   no dspfarm
   dsp services dspfarm



Voice Service VOIP
     To specify which protocols the router can communicate with or allow, configure voice service voip.

  Voice service voip
     allow-connections h323 to h323
     allow-connections h323 to sip
     allow-connections sip to h323
     allow-connections sip to sip
     allow-connections  [SIP | MGCP | H323]

     [SIP | H323]


Voice Class Codec
     These commands specify what codec preferences are allowed and in what order. You apply this group of codecs to specific dial-peers. If no voice-class group of codecs are assigned to a dial-peer, the dial-peer by default utilizes the G.729 Codec. This will bring some hurt when you’re trying to figure out why your T.38 fax isn’t working over SIP!!

  Voice-class codec 1
    codec preference 1 g711ulaw
    codec preference 2 g729br8
    codec preference 3 g729r8



Voice Class H323
     When setting up redundant dial-peers for sending calls from an H.323 gateway to a Pub and Subs there is a default timeout value before the router will check to see if the fallback CUCM servers are available. Unfortunately that default value is 15 seconds which is WAY too long. If you leave the default value, then the router will never check the fallback CUCM servers, which sucks in the cases where the primary is unreachable. Modify the time to something shorter than 10 seconds.
     If your H225 establish time is more than 10 seconds, the Q.931 timer will expire and send a call disconnect message. Three seconds is a good time to set so that failover to redundant dial-peers doesn’t take too long. The allowed range is 0 to 30 with a default of 15 seconds. If you enter 0, the H.225 TCP timer is disabled.

  voice class h323 1
     h225 timeout  tcp  establish 3



Controllers T1/E1
     The controllers are your PRI circuits. You will need to configure these based on the information provided by the carrier or that you requested from the carrier. Also specify the amount of ports or timeslots available as well as the DESCRIPTION with circuit numbers and provider!

  controller E1 0/0/0
    framing CRC4
    linecode HDB3
    pri-group timeslots 1-3,16

    description Partial E1

  controller T1 0/0/1
    framing esf
    linecode b8zs
    cablelength long 0db
    pri-group timeslots 1-24
    description Qwest LongDist #2 CID DS1-55556666

  controller T1 0/0/2
    framing esf
    linecode b8zs
    cablelength long 0db
    pri-group timeslots 1-24
    description ATT Local #2 CID 55HCFS000555-000PT



Serial Interface
     To configure your PRI you will need to setup your serial interfaces with the correct information. Make sure to verify this information (e.g. isdn switch-type primary-ni or primary-dms100, and encapsulation type) with the carrier. Settings at the Serial level have a higher precedence than the global settings.
     The isdn incoming-voice voice command configures the interface to send all incoming calls to the DSP for processing as a voice call and is required.
     The isdn bchan-number-order command changes the order in which bearer channels are utilized.


interface Serial0/1/0:15
 no ip address
 encapsulation hdlc
 isdn switch-type primary-net5
 isdn incoming-voice voice
 no cdp enable

interface Serial0/0/1:23
 no ip address
 encapsulation hdlc
 isdn switch-type primary-dms100
 isdn incoming-voice voice
 no cdp enable







.

Thursday, June 7, 2012

H.323 Call Preservation

     One of the big differences that used to exist between MGCP and H.323 was call preservation. However, H.323 has resolved that difference with "call preserve" (first integrated into IOS version 12.4(9)T) and it works quite well!

How to Setup H.323 Call Preservation

CUCM Configuration
  1. In CUCM Administration, go to System > Service Parameters
  2. From the Server drop down, select the Publisher server
  3. From the Service drop down, Cisco CallManager
  4. Click on the Advanced button on the top for additional parameters
  5. Search for and set "Allow Peer to Preserve H.323 Calls" to True
  6. Click Save
     This parameter determines whether CUCM allows the peer H.323 endpoint to try to preserve active H.323 calls by not sending a Release Complete message to the peer H.323 endpoint when the TCP connection is lost between CUCM and the far endpoint, such as a Skinny Client Control Protocol [SCCP] IP phone. When connectivity is lost, the H.225 and H.245 TCP connection is torn down but CUCM does not send the Release Complete message so that the peer H.323 endpoint can attempt to preserve the media path.

H.323 Gateway Configuration (Global)
  • conf t
    • voice service voip
      • h323
        • call preserve limit-media-detection

H.323 Gateway Configuration (Dial-Peer)

  • conf t
    • voice-class h323 10
      • call preserve limit-media-detection
    • dial-peer voice 1 voip
      • voice-class h323 10


call preserve [limit-media-detection]
     The call preserve command activates H.323 VoIP call preservation for the following types of failures and connections:

Failure Types
  • WAN failures that include WAN links flapping or degraded WAN links
  • Cisco Unified CallManager software failure, such as when the ccm.exe service crashes on a Cisco Unified CallManager server.
  • LAN connectivity failure, except when a failure occurs at the local branch
Connection Types
  •  Calls between two CUCM controlled endpoints 
    • During CUCM reloads 
    • When a Transmission Control Protocol (TCP) connection between one or both endpoints and CUCM used for signaling H.225.0 or H.245 messages is lost or flapping  
    • Between endpoints that are registered to different CUCM in a cluster and the TCP connection between the two CUCM is lost 
    • Between IP phones and the PSTN at the same site
  • Calls between Cisco IOS gateway and an endpoint controlled by a softswitch where the signaling (H.225.0, H.245 or both) flows between the gateway and the softswitch and media flows between the gateway and the endpoint. 
    •  When the softswitch reloads. 
    •  When the H.225.0 or H.245 TCP connection between the gateway and the softswitch is lost, and the softswitch does not clear the call on the endpoint 
    •  When the H.225.0 or H.245 TCP connection between softswitch and the endpoint is lost, and the soft-switch does not clear the call on the gateway 
  •  Call flows that involve a Cisco IP in IP (IPIP) gateway running in media flow-around mode that reload or lose connection with the rest of the network. 
     When bidirectional silence and RTP and RTCP inactivity detection are configured, they are enabled for all calls by default. To enable them for H.323 VoIP preserved calls only, you must use the call preserve command's limit-media-detection keyword. 

H.323 VoIP call preservation can be applied globally to all calls and to a dial peer. 










.

Sunday, May 6, 2012

UCCX - Resource Groups or Skills?

There are a few and very distinct differences between choosing Resource Groups and Resource Skills in Cisco Unified Contact Center Express 8.x (UCCX 8). You'll have to ask yourself the following questions to help decide on Groups or Skills.

  1. How do I want to select my agents?
    • Resource Group
      • Longest Available — Selects the agent who has been in the Available state for the longest amount of time.
      • Linear — Selects the agent with the highest priority.
      • Circular — Selects the next available agent in the resource group order.
      • Most Handled Contacts — Selects the agent who has answered the most handled calls.
      • Shortest Average Handle Time — Selects the agent who generally spends the least amount of time talking to customer
  • Skill Groups
    • Longest Available — Selects the agent who has been in the Available state for the longest amount of time.
    • Most Handled Contacts — Selects the agent who has answered the most handled calls.
    • Shortest Average Handle Time — Selects the agent who generally spends the least amount of time talking to customer
    • Most Skilled — Used for expert agent call distribution. Selects the agent with the highest total competency level. The total competency level is determined by adding the agent’s competency levels for each of their assigned skills that are also assigned to the CSQ.
      • – Example 1: If Agent1 is assigned Skill1(5), Skill2(6), and Skill3(7) and CSQ1 specifies Skill1(min=1) and Skill3(min=1), the total competency level for Agent1 for CSQ1 is 12.
      • – Example 2: If Agent1 is assigned Skill1(5) and Skill2(6) and Skill3(7) and CSQ1 specifies Skill1(min=1), only, the total competency level for Agent1 for CSQ1 is 5.
    • Least Skilled — Used for expert agent call distribution. Selects the agent with the lowest total competency level. The total competency level is determined by adding the agent’s competency level in each assigned skill.
    • Most Skilled By Weight — Used for expert agent call distribution. Selects the agent with the highest total competency level multiplied by the skill’s associated weight.
    • Least Skilled By Weight —Used for expert agent call distribution. Selects the agent with the lowest total competency level multiplied by the skill’s associated weight.
    • Most Skilled By Order — Used for expert agent call distribution. Selects the agent with the highest total competency level in the ordered list.
    • Least Skilled by Order — Used for expert agent call distribution. Selects the agent with the lowest total competency level in the ordered list.
     2. Do I need to have an agent, or groups of agents in multiple CSQs?
    • Once a Resource Group has been utilized by a CSQ, it can no longer be applied or used for another group.
    • A Skill Group can be used by multiple CSQs, allowing for the overlap of skilled agent groups to more than one CSQ.
     3.  Within my agent groupings, do I need to have user priorities?
    • With Skill Groups, agents are giving a skill competency from 1-10 (1 = beginner, 10 = expert) which, based on the selection criteria, may play a major role in Agent Selection, call flow, and design.
     4. Who will be assigning agents to groups?
    • If this needs to be simple, assigning agents to resource groups is much easier.
    • Resource Groups - Assign an agent to a unique Resource Group, that can only be used for a single CSQ
    • Resource Skills - Assign a skill to an agent with a specific competency level. This skill and competency assignment may affect other CSQs if that skill is utilized by more than one CSQ.
     5. Do I need to bulk remove the Resource Group or Skill from agents? 
    • Both Resource Groups and Skills can be simultaneously assigned to multiple agents. 
      • This is done through Subsystems > RmCm > Assign Skills
      • Check mark each agent you'd like to assign a skill or group
      • Click on Add Skill
      • Choose the Resource Group or Skill/Competency and click Update
    • Resource Groups cannot be removed in bulk. Only skills can be removed to multiple agents simultaneously through Subsystems > RmCm > Assign Skills and selecting Remove Skill.








.

Monday, February 13, 2012

CUCM - MOH Conversion

In order for Cisco to be able to accept/upload a Music On Hold (MOH) file, the file must meet the specific property requirements below.

Format: WAV
Encoding: 8-bit CCITT u-Law or a-Law (stereo/mono)
Average Data Rate: 8 kbps
Sample Rates: 8 kHz, 16 kHz, 32 kHz, 48 kHz
Audio Sample Size: 16-bit PCM (stereo/mono) 
Channels: 1 (Mono) 

 *** CCITT uLaw, 8 kHz, 8-bit, 8 Kbps, mono ***

A good and free program to use for this is Audacity, a digital audio editor. Here's how to convert to Cisco's MOH specifications using Audacity 1.3.x.

  1. Launch Audacity 1.3.x
  2. Open the Audio File you are looking to use as an MOH file
  3. Locate the Project Rate (Hz) in the bottom left corner. Set this value to 8000.
  4. In the track bar, click the drop down menu and select "Split Stereo to Mono"
  5. In the track bar, select "Set Sample Format", and choose "16-bit PCM"
  6. Click File > Export...
  7. Set the file name as desired, and verify that the File Name has NO SPACES as they are not allowed
  8. Under "Save as type:" select "Other uncompressed files"
  9. Click on the "Options..." button
  10. Under Header select "WAV (Microsoft)"
  11. Under Encoding select "U-Law"
  12. Click OK and then click Save
You now have a file that is MOH worthy. Feel free to upload and test. Make sure that if you have multiple CUCM nodes/subscribers that you upload the file to each subscriber and configure accordingly.






.

Monday, January 9, 2012

CME - VG224 Interoperability

        There are a few ways to configure a VG224 to work with Cisco CallManager Express. 

Skinny (SCCP)
        This Layer 2 option treats the VG224 as a SCCP device or phone. There is very little configuration on the VG224 router other than the SCCP integration with CME. Think of the VG224 as a device containing 24 ephones. Configuring each voice port with "service stcapp" converts an FXS port to a SCCP phone, so this must be done to all VG224 voice ports.

Example:
(VG224)
sccp local FastEthernet0/0
sccp ccm 192.168.25.2 identifier 10
sccp
!
sccp ccm group 1
associate ccm 10 priority 1

dial-peer voice 200 pots
 service stcapp
 port 2/0
 .


H.323
        The Layer 3 option treats the VG224 as a separate voice gateway. There is much more configuration on the VG224 router, but less configuration on CME. When CME receives a call, it uses its outbound dial-peers to send the call and one or more of those outbound dial-peers points to the IP Address of the VG224.

Example:
(CME)
voice service voip
allow-connections h323 to h323
!

interface GigabitEthernet0/1
ip address 192.168.25.1 255.255.255.0
no ip mroute-cache
duplex auto
speed auto
h323-gateway voip interface
h323-gateway voip bind srcaddr 192.168.25.1
!
dial-peer voice 100 voip
incoming called-number .
dtmf-relay h245-alphanumeric
codec g711alaw
no vad
!
dial-peer voice 200 voip
destination-pattern 200
modem passthrough nse codec g711alaw
voice-class h323 1
session target ipv4:192.168.25.2 
codec g711alaw
fax rate disable
fax protocol none
no vad



(VG224)

h323
!
voice class h323 1
h225 timeout tcp establish 3
!
interface FastEthernet0/0
ip address 192.168.25.2 255.255.255.0
duplex auto
speed auto
h323-gateway voip interface
h323-gateway voip bind srcaddr 192.168.25.2
!
dial-peer voice 100 voip
description OUTGOING TO CME
destination-pattern OT
modem passthrough nse codec g711alaw
session target ipv4:192.168.25.1
voice-class h323 1
codec g711alaw
no vad
fax protocol none
!

dial-peer voice 101 voip
description INCOMING FROM CME
incoming called-number .
modem passthrough nse codec g711alaw
voice-class h323 1
codec g711alaw
no vad
fax protocol none
 

dial-peer voice 200 pots
description INCOMING TO VG PORT
destination-pattern 200
port 0/0
forward-digits all





.

Thursday, January 5, 2012

UCCX - Agents Stuck In Certain State

        In all version of UCCX, I've noticed that Agents can get stuck in a certain state (Reserved, Talking, Not Ready, Ready). Here are some reasons best practices to follow to hopefully avoid or resolve this issue.
  • The biggest violator is misconfiguration. This is what you shouldn't do:
    • Do NOT configure two lines on an agent's phone that have the same extension, but exist in different partitions (eg. Internal_PT, and UCCX_PT)
    • Do NOT configure the same ICD extension on multiple phones
    • Do NOT configure Call Forwarding on an ICD line prior to CRS 3.1
    • Do NOT configure a Max Busy Trigger of anything other than 1 on an ICD extension (Agents can only receive one call at a time)
    • Do NOT set the CUCM ICD extension's No Answer Ring Duration (Default or Static) to be less than the UCCX Select Resource Timeout value. 
      • On the Extension the setting is under "No Answer Ring Duration"
      • In Service Parameters > Cisco CallManager it is under Clusterwide Parameters (Forward) > Forward No Answer Timer and defaults at 12 seconds.
  • CSCeb36950 - Do NOT configure any GOTO steps that point to a label within the Select Resource step. Always point to a label before the Select Resource Step.
  • CSCdx46617 & CSCeb49310 - Set a 1 second delay step at the beginning (before the Accept Step) of all of your scripts. This is to prevent callers getting stuck in queue and not being able to be reached as well as agents getting stuck in a certain state. 
    • Typically a transfer redirect step from one script or queue into another script causes issues if there is no delay set. The redirect is too fast for the call to be marked as handled and then accepted and handled within another script.
    • Agents are typically left in the RESERVED state and the caller is typically left in a routing loop and cannot be answered. The caller must drop off and call back in.

Resolutions and Rules:
  1. Configure only one unique ICD line per phone
  2. Do not configure an ICD extension that is used by any other extension in any other partition
  3. Add a 1 to 2 second delay step to all of your scripts before the Accept Step
  4. Statically set the Forward No Answer or No Answer Ring Duration to a value higher than the UCCX Select Resource Timeout value
  5. Always add a SetContactInfo step to the Successful branch of a Redirect Step
  6. Do NOT configure Labels within the Select Resource step and have a GoTo pointing to it from the outside of the Select Resource step





.

Tuesday, January 3, 2012

UC on UCS - Where to Start

        There is a big push for all UC Appliances to go virtual. This push comes from all the awesome benefits/features of virtualization, Cisco emerging and exploding in the server hardware arena, and from the IT architects and directors who want to stay current or  push the envelope.

        So you want Cisco UC to be virtual, but where do you start and where are the instructions?  From an information/instruction perspective, Cisco is moving towards Online Wiki's because of the speed in which they may publish information. The old days of 4-month literary approvals and information releases are gone. The snail's pace of releasing documentation doesn't make sense in a rapidly advancing and evolving arena such as virtualized Unified Communications.

Start here:


1) Considerations
        You want to make sure that what you're about to buy is compatible. The question is how compatible do you want it to be? There is Super Compatible (down to a gnat's ass), then there's Compatible (okay it works *fingers crossed*), and then there's Incompatible (this thing just doesn't work).

Tested Reference Configurations (TRC) - Super Compatible!
  • http://docwiki.cisco.com/wiki/Tested_Reference_Configurations_%28TRC%29
  • TRC's are for these type of customers
    • lower levels of virtualization proficiency
    • require guaranteed UC app virtual machine performance when the solution elements under Cisco UC's control are configured correctly per UC support policy
    • desire Cisco to handle hardware sizing, determining hardware specs and translating those specs into a hardware parts list to ensure the above guarantee
    • are willing to accept as tradeoffs for the guarantee less choices for hardware and less choices for virtual machine deployment options.
    • TRC's typically come packaged in a single part number - yay!!
 Specs-Based VMware Hardware Support - Compatible
  • http://docwiki.cisco.com/wiki/Specification-Based_Hardware_Support
  • Specs-Based is intended for customers with extensive expertise in virtualization and server/storage who wish to use their own hardware standards.
    • The hardware choices have not be directly tested/documented by Cisco (since they didn't choose the configurations... you did!!)
    • Cisco is not responsible for the screw-ups you caused. That being said, I think it would be difficult to pin-point many issues back to the hardware configuration unless you did a pretty shoddy job of choosing and sizing.
    • A good rule of thumb is to follow the TRC specs or choose hardware better than what the TRC has tested.
Sizing Network Hardware and QoS Considerations

2) Implementing
        So your hardware has arrived, but now what?

Configuring Hardware Platforms
  • Raid configuration, BIOS settings, firmware upgrades/configuration and monitoring of hardware health
Installation

3) Building UC Appliances
        You've installed ESXi 4.1 and vSphere. Now after all of that, you still need to build out your UC applications!

Building the VMs
  • OVA/OVF (Open Virtualization Appliance/Format) is a game changer.
    • These small files can be downloaded on Cisco.com under the appliance you're looking to install. The OVA templates build out the required virtual hardware specs that are supported by Cisco.
    • You don't have to build or spec out the hardware. Just deploy the OVA!!
  • Once your machines are built you can proceed with the standard install procedures.
  • Do not use Snapshots (especially Snapshots with memory) as they are not supported for Cisco UC applications and they can take your system down and take up hard drive space.
    • Use cloning or templates!

4) Some Key Reminders
  • Make sure you are fully licensed
    • The trial runs out in 60 days and then your VMs won't turn on!
  • Configure the auto power-on sequence upon host start-up
  • Again, no Snapshots!
  • Set alarms/alerts so that you're kept in the loop on the health of your host(s)
  • Setup vCenter if you have more than one host
  • Upgrade VMware tools!!
  • Configure backups for your UC appliances
  • Make sure to review the system utilization (hard drive, memory, CPU, etc.)



.

Thursday, December 22, 2011

CER - Configuration

        After installation of the Cisco Emergency Responder (E911), the configuration is a little confusing if you haven't done it in a while or if it is your first time. Not many states require E911 capabilities and it is an extra cost that you must enable with your provider.

  1. Enable SNMP - E911 uses SNMP to utilize CDR to discover IP phones that are connected
    1. Enable SNMP on the switch
      1. "snmp-server community <SNMP-String> RO"
      2. Make the SNMP String something more cryptic than just "public"
      3. RO stands for Read Only
    2. Enable SNMP on CUCM 
      1. In the top-right corner, under Navigation, select "Cisco Unified Serviceability" and click Go
      2. Select SNMP V1/V2c > Community String and click "Add New"
      3. Enter the community string that you created on the switch and select "Accept SNMP Packets from any host"
      4. For Access Privileges select "ReadOnly", checkmark "Apply To All Nodes" and click Save.
    3. Enable SNMP on E911
      1. In CER Administration select Phone Tracking > SNMP Settings
      2. Add New SNMP entries for CUCM and the switches
        1. *.*.*.* is a valid catchall statement
    1. Configure Phone Tracking
      1. In E911 select Phone Tracking > LAN Switch Details
        1. Enter the Switch IP or Host Name, Description and click Insert
        2. Do this for each switch in your network containing IP Phones
      1.  Add CUCM nodes to E911
        1. Add an Application User in CUCM
          1. In CUCM Administration, select User Management > Application User and click on "Add New"
          2. Create a new user called "CER_User"
          3. Assign the Permissions: Standard CCM End Users, Standard CTI Allow Calling Number Modification, and Standard CTI Enabled
        2. Add the same Application User in E911
          1. In E911 Administration, select Phone Tracking > Cisco Unified Communications Manager Clusters
          2. Add New cluster and enter the CUCM IP address, CER_User with password, and the BackUp CTI Manager(s) which are your CUCM Subscribers
        1. Create a CTI Route Point - Used to communicate between CUCM and E911
          1. In CUCM Administration go to Device > CTI Route Point and click Add New
          2. Create a RP911 Route Point with no Calling Search Space (we will add this later)
          3. Add a DN for RP911. This DN will be "911" for users to dial. Place this 911 DN in the E911 Partition.
            1. The E911-PT should be at the TOP of all CSS lists so that phones will match this first.
            2. Leave the CSS blank for now and we'll add it later
          1. Import IP Phone Information into E911
            1. In E911 Administration go to Phone Tracking > Run Switch-Port & Phone Update
            2. IP Phones will show up under ERL Membership > Switch Ports

            3. In E911 select System > Cisco ER Group Settings






          .

            Wednesday, December 21, 2011

            VGW - TSHOOT (T1 or E1)

            For a T1 or E1 PRI troubleshooting, follow the following steps.

            1. show controllers [t1 | e1] 
              1. Check most of the PRI fields by this show controllers command.
            2. Ensure that line coding, framing, and clock source are configured and match the settings set by your Service Provider
              1. Line Coding
                1. T1 - Bipolar-8 Zero Substitution (B8ZS) and Alternate Mark Inversion (AMI) 
                  1. B8ZS - (also called Clear Channel and Binary 8 Zero Substitution) replaces each string of 8 consecutive zeros with the special pattern "000VB0VB" 
                  2. AMI -  Each successive mark is inverted and the average or DC level of the line is therefor zero
                2. E1 - High Density Bipolar of Order 3 (HDB3)
              2. Framing
                1. T1 - Super Frame (sf) and Extended Super Frame (esf) - not compatible with each other
                  1. Super Frame - consists of 12 consecutive 193-bit frames
                  2. Extended Super Frame - consists of 24 consecutive 193-bit frames
                1. E1 - framing crc4 (cyclic redundancy check) and no-crc4
            3. Check if the line is down
              1. Make sure the controller is NOT administratively down. Perform a "no shut" command on the Controller interface.
            4. Check for reported alarms
              1.  Use the show controllers command to see if there are any alarms on the controller.
              2. Receive Alarm Indication Signal (BLUE)

            5. Check for error events
            6. Check if the interface is T1 or E1 CAS, E1 R2, or PRI


            show controllers t1


            T1 0/3/0 is up.
              Applique type is Channelized T1
              Cablelength is long 0db
              Description: Qwest LongDist #4 CID DS1-1234567
              No alarms detected.
              alarm-trigger is not set
              Soaking time: 3, Clearance time: 10
              AIS State:Clear  LOS State:Clear  LOF State:Clear
              Version info Firmware: 20100222, FPGA: 13, spm_count = 0
              Framing is ESF, Line Code is B8ZS, Clock Source is Line.
              CRC Threshold is 320. Reported from firmware  is 320.
              Data in current interval (155 seconds elapsed):
                 0 Line Code Violations, 0 Path Code Violations
                 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins
                 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs
              Total Data (last 24 hours)
                 0 Line Code Violations, 0 Path Code Violations,
                 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins,
                 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs

            Tuesday, December 20, 2011

            VGW - Troubleshooting

            Docwiki Troubleshooting T1

            • show controller T1
            • show isdn status
            • show voice port summary
            • show dial-peer voice [summary]
            • show call history voice
            • show call active voice
            •  
            • show rawmsg
            • show cdapi
            • debug isdn event
            • debug tsp
            • debug cdapi
            • debug voice ccapi inout
              • Traces the execution path through the call control API, which serves as the interface between the call session application and the underlying network specific software
            • debug isdn q931
            • debug isdn q921
            • debug vpm
              • debug vpm all
              • debug vpm spi
              • debug vpm signal
              • debug vpm dsp
            • debug vtsp
              • debug vtsp session
              • debug vtsp error
              • debug vtsp dsp





            .