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







.