Wednesday, March 24, 2010

IPIPGW from CUCM to BR2

Tasks: configure HQ gw as IPIPGW aka CUBE to handle SIP calls from CUCM to BR2 CME
Recall that CUCM is using a SIP-TRUNK and codec g711u while CME on the BR2 side is using H.323 and codec g729r8.
  1. config HQ gw as IPIPGW with SIP interfacing CUCM and H323 toward BR2 CME
                                      voice service voip
                                         allow-connections h323 to h323
                                         allow-connections h323 to sip
                                         allow-connections sip to h323
                                         allow-connections sip to sip
                                      sip
                                           bind control source-interface Loopback0
                                           bind media source-interface Loopback0

                                       interface Loopback0
                                          ip address 10.10.32.1 255.255.255.255
                                          ip ospf network point-to-point
                                          h323-gateway voip interface
                                          h323-gateway voip h323-id HQ-IPIPGW
                                          h323-gateway voip bind srcaddr 10.10.32.1
                                       gateway
                                       sip-ua
  1. config HQ gw with DSP resource to do transcoding. NOTE: IPIPGW binds to Loopback0 while DSP resources bind to Gig0/0.30.  Test by calling from HQ toward BR2 PSTN and place both phones off-hook.  If TRANSCODING is not working , will get busy tone when going off-hook.
                                    voice-card 1
                                       no dspfarm
                                      dsp services dspfarm
                                    sccp local GigabitEthernet0/0.30
                                    sccp ccm 10.10.30.1
                                    sccp ip precedence 3
                                    sccp
                                    sccp ccm group 1
                                           associate ccm 1 priority 1
                                           associate profile 1 register HQ-XCODER
                                    !        
                                   dspfarm profile 1 transcode
                                            maximum sessions 2
                                           associate application SCCP
                                    telephony-service
                                           sdspfarm units 1
                                           sdspfarm transcode sessions 2
                                           sdspfarm tag 1 HQ-XCODER
                                           max-ephones 2
                                           max-dn 4
                                           ip source-address 10.10.30.1 port 2000
                                           create cnf-files
  1. config HW gw with a dial-peer to point H323 dialed string to BR2
                                  dial-peer voice 1000 voip
                                          description ==== IPIPGW h323 to BR2 area code
                                          destination-pattern 4423.T
                                          session target ipv4:10.10.32.3
                                          dtmf-relay h245-alphanumeric
                                           no vad  
                                          codec g729r8
                                  dial-peer voice 1001 voip
                                         description ==== abbrev. dialing to BR2 internal IP phones
                                         destination-pattern 3...$
                                         session target ipv4:10.10.32.3
                                         dtmf-relay h245-alphanumeric
                                          no vad
  1. Add a SIP-TRUNK on CUCM, this is SIP trunk from CUCM to HQ gw.  Device-name = SIP-TRUNK-IPIPGW , DP = HQ , location = HQ , SIP destination-address = HQ Loopback0
  2. Add this SIP-TRUNK into RG-BR2 . 
  3. Add  RL-TEHO-HQ-TO-BR2  with 1st RG = RG-BR2 (Use Calling Party's External Phone Number Mask = ON , Discard Digits = predot) , 2nd RG = RG-HQ (Use Calling Party's External Phone Number Mask = ON , Discard Digits = predot , Prefix Digits (Outgoing Calls) = 011 ) .  
  4. Add Route-Pattern    9011.4423XXXXXXXX  , partition = PT-HQ-INTL , Route-List = RL-TEHO-HQ-TO-BR2 , urgent priority , strip PREDOT .
  5. For abbrev. dialing to BR2 internal IP phones , add following :   RL = RL-TEHO-HQ-TO-BR2-INTERNAL with  1st RG = RG-BR2 (Use Calling Party's External Phone Number Mask = ON , Discard Digits = predot) , 2nd RG = RG-HQ (Use Calling Party's External Phone Number Mask = ON , Discard Digits = predot , Prefix Digits (Outgoing Calls) = 01144232131 ) .  Pretty much same RL as on step 3 , except for the PSTN dialing part .  Add Router-Pattern  3XXX , PT = PT-internal , RL = RL-TEHO-HQ-TO-BR2-INTERNAL
 This should take care of HQ side, now we need to configure BR2 to handle incoming H323 calls
  1. config BR2 as H323 GW
                   interface Loopback0
                          ip address 10.10.32.3 255.255.255.255
                          ip ospf network point-to-point
                          h323-gateway voip interface
                          h323-gateway voip h323-id BR2
                          h323-gateway voip bind srcaddr 10.10.32.3
                   gateway
  1. config voice translation-rule & dial-peer  to handle incoming calls from VOIP
                  voice translation-rule 1
                         rule 2 /^44232131\(3\)\(...\)$/ /\1\2/    ==== strip to 3xxx for BR2 IP phones
                         rule 3 /^4423\(........\)$/ /9\1/              ==== strip to 9xxxxxxxx for BR2 local calls
                  voice translation-profile teho-cucm-to-br2
                        translate called 1
                  dial-peer voice 2000 voip
                        description ==== incoming from CUCM
                         translation-profile incoming teho-cucm-to-br2
                         incoming called-number 4423.T
                        dtmf-relay h245-alphanumeric
                         no vad
                        codec g729r8

Test calls by calling from HQ phones to BR2 internal phones + BR2 area PSTN numbers
  1. config voice translation-rule and dial-peer in BR2 for abbrev. dialing to CUCM
                          voice translation-rule 2
                                rule 1 /1\(...\)$/ /7752011\1/
                                rule 2 /1\(...\)$/ /3123012\1/
                          voice translation-pro to-cucm
                                translate called 2
                          dial-peer voice 2001 voip
                               description ==== from BR2 to CUCM
                               translation-profile outgoing to-cucm
                               preference 1
                              destination-pattern [1-2]...$
                              session target ipv4:10.10.32.1   ==== this is HQ Loop 0 int
                              dtmf-relay h245-alphanumeric
                              codec g729r8
                              no vad
  1. config IPIPGW dial-peer to handle incoming calls from BR2
                        dial-peer voice 1001 voip
                             description ==== BR2 calls to CUCM
                              preference 1
                             destination-pattern 775.T
                             session protocol sipv2
                             session target ipv4:10.1.200.21   ==== this is CUCM IP addrs
                             dtmf-relay rtp-nte
                             codec g711ulaw
  1.   config CUCM to handle incoming calls from BR2
                 add  PT = PT-IPIPGW , CSS = CSS-IPIPGW (with PT-INTERNAL & PT-IPIPGW)
                 set SIP-TRUNK-IPIPGW with CSS-IPIPGW , significant-digits = ALL
                 add translation-pattern , pattern = 775201.XXXX , PT = PT-IPIPGW , CSS = CSS-IPIPGW

Additional tasks for BR2 to call HQ area code numbers
  1. dial-peer voice 2002 voip   ==== dial-peer on BR2
     description ==== from BR2 to CUCM area code
     preference 1
     destination-pattern 9001775.......$
     session target ipv4:10.10.32.1
     dtmf-relay h245-alphanumeric
     codec g729r8
          no vad  
  1. voice translation-rule 1    ==== add voice translation-rule on HQ GW
            rule 3 /9001\(.*\)/ /\1/
    voice translation-profile DID
            translate called 1
    dial-peer voice 1002 voip    ==== same dial-peer configured before on HQ
            translation-profile incoming DID
            incoming called-number .
  2. on CUCM , add other PT such as PT-HQ-LOCAL , PT-HQ-LD into CSS-IPIPGW . 
  3. Add Translation-pattern , pattern = 775.XXXXXXX , PT = PT-IPIPGW , CSS = CSS-IPIPGW , discard-digit = PREDOT , Prefix Digits (Outgoing Calls) = 9  (remember , we want to use the HQ GW for PSTN local calls).
Test by calling from BR2 IP phone to HQ PSTN numbers + HQ IP phones.

CAVEATS:  TEHO calls from BR2 to BR1 area configs:
  • on BR2, add voip dial-peer 
                 dial-peer voice 3005 voip
                      translation-profile outgoing  teho-to-cucm
                      destination-pattern  9001312.T
                      session target ipv4:10.10.32.1
                      codec g729r8
                      dtmf-relay h245-alphanumeric
                      no vad
  • on HQ gw, add voip dial-peer to forward incoming calls from BR2  to CUCM, but specify g729codec
                dial-peer voice 1004 voip
                      description ==== handle calls from BR2 , teho to BR1 area
                      destination-pattern  312.T
                      session protocol sipv2
                      session target ipv4:10.1.200.21
                      codec g729r8
                      dtmf-relay h245-alphanumeric

  • Test by calling from BR2 phones to BR1 area code number.  Should see calls coming out of BR1 GW.  Note: on CUCM, should set Region for G729 between HQ and BR1 (default is G711).

Tasks to go over before the LAB test - voice exam check list

  1. DialPlan with GK - posted
  2. DialPlan with IPIPGW - posted
  3. DialPlan with COR - done
  4. DialPlan with Local-route (single RP, translation-pattern, transformation-pattern)
  5. CME with SCCP - done
  6. CME with SIP endpoints - need to do SIP
  7. CUE with CME - posted
  8. CUE with CUCM - posted
  9. Extension mobillity - posted
  10. SNR - posted
  11. SRST
  12. AAR - posted
  13. Call park, Call pickup, Barge, Callback - done Barge/cBarge, CallBack, callPark, callPickup = not enough phone
  14. IPMA - posted
  15. QOS -
  16. IPCCEx scripting - need to do
  17.  
  18.  
  19.  
  20. https://learningnetwork.cisco.com/docs/DOC-7024

Tuesday, March 16, 2010

Integrating CUE and CUCM

CUE config:
interface Service-Engine2/0
 ip unnumbered GigabitEthernet0/0.130
 service-module ip address 10.10.130.3 255.255.255.0    >>> this is the IP addr of CUE
 service-module ip default-gateway 10.10.130.1
ip route 10.10.130.3 255.255.255.255 Service-Engine2/0
>>> no other config on CUE or IOS router is necessary

Log into CUE module and restore to factory default
BR1#service-module in2/0 sess
    ....
NME-CUE#
NME-CUE# offline
    ....
Are you sure you want to go offline[n]? : y
    ....
NME-CUE(offline)# restore factory default

NME-CUE(offline)#
MONITOR SHUTDOWN...
                    After a few minutes, CUE will boot up, fill in the necessary info
Do you wish to start configuration now (y,n)? y

       .................

Enter Call Agent
 (CME, CCM, or enter to use CME as default): CCM                         >>>> make sure you select CCM
Selected Call Agent: CCM
Setting Call Agent to CCM in /usr/wfavvid/workflow.properties
    ....
    ....
Enter administrator user ID:
  (user ID): admin
Enter password for admin:
  (password):
Confirm password for admin by reentering it:
  (password):

SYSTEM ONLINE
br1-cue# sh software license
    ....
Core:
 - Application mode: CCM
 - Total usable system ports: 8    >>>CUE has 8 lic ports, make sure on CUCM, you will add 8 CTI ports .....  hmmmm, maybe 2 CTI ports is good enough . Verified operation on 3/29 with 2 CTI ports.
    ....
br1-cue#

  1. Add CTI port on CUCM, under Device/Phone, add new Phone Type = CTI Port, device name = cue1,  DP = BR1, location = BR1. Add new DN for the CTI Port, DN = 1601, PT = PT-USA . Repeat for all ports of CUE. Verified operation on 3/29 with 2 CTI ports.
  • IMPORTANT : don't forget to config "External Phone Number Mask" for CUE CTI ports and Route-Point , or they won't register in CUCM
    1. Add CTI Route Point on CUCM, under Device/CTI Route Point, add new CTI RP, device name = BR1-CUE ,  DP = BR1, location = BR1 , CSS = CSS-GLOBAL. Add new DN for the CTI RP , DN = 1600, PT = PS-USA, CSS = CSS-GLOBAL.
    1. Add new application user, username = cue , password = cisco , Controlled Devices = cue1, cue1 .... cue8  , BR1-CUE , Groups/Roles = standard CTI enabled, CTI control of all devices, AXL API access.  This username = CUE JTAPI username. Controlled Devices = BR1-CUE + cue1 + cue2 ...
    1. Create new Voicemail Pilot and Profile for CUE - on CUCM , create CUE Voicemail Pilot (DN=1600)  and CUE Voicemail Profile . Assign this Voicemail Profile into IP phone (i.e. BR1 Phone1 , br1user1 ...) which wants to use CUE instead of Unity.
    - Web login into CUE and run the Wizard , Web User Name:= admin/cisco , JTAPI User Name = cue/cisco. Alternately, you can use cue/cisco & cue/cisco for both Web and JTAPI usernames. Import CUCM users and complete Wizard setup.

    - Reload CUE.  Re-login into CUE and verify imported users has "Primary Extension , i.e 2001, 1003

    - Test by dialing into the IP phone (BR1 phone1) which was setup with the CUE Voicemail Profile above, should get the CUE prompt and MWI led should lit up.  If a fast BUSY tone is heard when dialing CUE pilot # , there 're  a mismatch of codec between sites (remember that CUE uses SIP and G711 only) . Either change codec relationship in System/Region or add in required Transcoder.

    Screen shot of CTI Ports and CTI RP on a working CUCM. Notice that both CTI Ports & CTI RP are registered to CUCM with CUE IP addrs (10.10.130.3)

    Friday, March 12, 2010

    CUCM dialplan with GK installed on the HQ router

    Tasks to accomplished:
       1. Calls from HQ to BR2 should be made over GK trunk with PSTN as backup
       2. Calls from HQ to BR2 area/city codes  should be made over GK trunk with PSTN as backup
       3. Calls from BR2 to HQ should use 4 digits dialing via GK trunk with PSTN as backup
       4. Calls from BR2 to HQ area/city codes should be made over GK trunk with PSTN as backup 

    HQ number = 17752011001
    BR2 number = 442321313001 (w/ 011 as international code)
    • config BR2 as GW   
    interface Loopback0
     ip address 10.10.32.3 255.255.255.255
     ip ospf network point-to-point
     h323-gateway voip interface
     h323-gateway voip id ZONE-01 ipaddr 10.10.32.1 1719  ==== ip addr of HQ Loop0
     h323-gateway voip h323-id BR2
     h323-gateway voip tech-prefix 1#
     h323-gateway voip bind srcaddr 10.10.32.3
    gateway      ====  don't forget to turn on gateway feature
    • config HQ for GK
    gatekeeper
     zone local ZONE-01 cisco.com 10.10.32.1  ==== define GK id
     zone prefix ZONE-01 1* gw-priority 9 TRUNK-GK-HQ_1
     zone prefix ZONE-01 1* gw-priority 0 BR2   ==== avoid sending calls with prefix 1 to BR2
     zone prefix ZONE-01 44* gw-priority 9 BR2
     zone prefix ZONE-01 44* gw-priority 0 TRUNK-GK-HQ_1  ==== avoid sending calls with prefix 44 to CUCM
      zone prefix ZONE-01 1... gw-priority 10 TRUNK-GK-HQ_1  === this is for HQ internal phones
      zone prefix ZONE-01 2... gw-priority 10 TRUNK-GK-HQ_1  === this is for BR1 internal phones

     no shutdown

    Configure following for those 4 tasks:

    1.    Task #1 -  Calls from HQ to BR2 should be made over GK trunk with PSTN as backup
    • In CUCM, add GK with HQ interface Loop0 IP address
    • add h.225 (GK controlled) trunk
                  - device name = TRUNK-GK-HQ
                  - device pool = HQ
                  - Inbound Calls , Significant digits = 4   (so that calls from BR2 to HQ will be stripped to 4 digits)

                  - Gatekeeper Name = HQ interface Loop0 IP address
                  - = gateway
                  - Technology Prefix = 1#
                  - Zone = ZONE-01
    • add GK trunk into a RG
    • add RG into RL , name = RL-GK-TO-BR2,  first RG = RG-BR2 , Prefix Digits (Outgoing Calls) = 1#44232131 ,   secondary RG = RG-HQ with Prefix Digits (Outgoing Calls) = +01144232131   RG-HQ served as PSTN backup from HQ to BR2
    • add Route Pattern, Route Pattern = 3XXX, Partition = PT-INTERNAL or PT-USA , Gateway/Route List = RL-GK-TO-BR2 .
    That should handle outgoing calls from CUCM HQ to BR2. Next, we need to configure BR2 router to handle incoming calls from GK
        voice translation-rule 200
          rule 1 /1#44232131\(....\)/ /\1/
          rule 2 /1#4423\(........\)/ /9\1/
          rule 3 /1#0114423\(........\)/ /9\1/
        voice translation-profile GK-INCOMING
          translate called 200
       dial-peer voice 2000 voip
          translation-profile incoming GK-INCOMING
          incoming called-number 1#.T
         dtmf-relay h245-alphanumeric
          no vad
          codec g729r8

    2.   Task #2 -  Calls from HQ to BR2 area/city codes  should be made over GK trunk with PSTN as backup
    • Add new RL , name = RL-TEHO-HQ-TO-BR2
    • First RG = RG-BR2,  Discard Digit = predot , Prefix Digits (Outgoing Calls) = 1# (remember that user will dial 9 011 4432 XXXXXXXX  for BR2 city/area code)
    • Second RG = RG-HQ , Discard Digit = predot trailing # 
    • Add new Route Pattern, pattern = 9.0114423XXXXXXXX# , Gateway/Route List = RL-TEHO-HQ-TO-BR2
    3.   Task #3 and #4 - Calls from BR2 to HQ/BR1 should use GK trunk with PSTN as backup. Notice that BR2 user will dial 9001775....... for HQ area code numbers and 1XXX for HQ internal phones.
    • on CUCM , add PT , CSS , to handle incoming call from BR2 . PT = PT-GK-TRUNK , CSS = CSS-GK-TRUNK with PT-INTERNAL + PT-GK-TRUNK + PT-HQ-LOCAL + PT-HQ-LD _ PT-BR1-LOCAL + PT-BR1-LD
    •  Add Translation-Pattern  1#1775.XXXXXXX  (pt = pt-gk-trunk , css=css-gk-trunk). 
      Discard PREDOT , prefix = 9 . Repeat for BR1 area code
    • Add Translation-Pattern  1#.XXXX  (pt = pt-gk-trunk , css=css-internal) . Discard PREDOT.  This is for HQ and BR1 internal phones
    • Change TRUNK-GK-HQ with CSS = CSS-GK-TRUNK , Significant Digits = ALL
    • configure BR2 dial-peer for abbrev. dialing to 1XXX & TEHO dialing to HQ area
                                            voice translation-rule 2    ==== strip out 900
                                                      rule 1 /9001775\(.*\)$/ /1775\1/
                                                      rule 2 /9001312\(.*\)$/ /1312\1/
                                            voice translation-profile teho-to-hq-area
                                                     translate called 2
                                           dial-peer voice 1004 voip
                                                    description ==== teho to HQ area code
                                                    translation-profile outgoing teho-to-hq-area
                                                   destination-pattern 9001775.T
                                                    session target ras
                                                    tech-prefix 1#
                                           dial-peer voice 2002 voip
                                                      description ==== abbrev dialing to HQ
                                                      destination-pattern 1...$
                                                      session target ras
                                                      tech-prefix 1#
                                                     dtmf-relay h245-alphanumeric
                                                     no vad
                                          ! PSTN backup dial-peer
                                          dial-peer voice 3001 pots
                                                    description ==== abbrev. dialing to HQ
                                                    prefer 2
                                                   destination-pattern 1...$
                                                    port 1/0:15
                                                   prefix 9001775201

      CME MWI interwork with CUE

      Remember that CME signaling is SCCP in nature and using G729r8 while CUE only supports SIP and G711u.
      To get MWI working between CME and CUE, perform following:

      ! dont forget the ever-important voice translation-rule
      voice translation-rule 400
       rule 1 /^.*\(3500\)$/ /\1/
       rule 2 /^.*\(3555\)$/ /\1/
      voice translation-profile TO-VM
       translate calling 400
       translate called 400
       translate redirect-target 400
       translate redirect-called 400
      !
      ! enable SIP and H323 intersignaling
       voice service voip
       allow-connections h323 to h323
       allow-connections h323 to sip
       allow-connections sip to h323
       allow-connections sip to sip

       sip
        bind control source-interface GigabitEthernet0/0.230    ====  do not use Loopback0
        bind media source-interface GigabitEthernet0/0.230      ====  or MWI won't work

      ! add a dial-peer to make sure calls to VM is using SIP and G711u
      dial-peer voice 3500 voip
       description ==== to VM
       destination-pattern 3500
       session protocol sipv2
       session target ipv4:10.10.230.3
       dtmf-relay sip-notify
       codec g711ulaw
       no vad
      ! add dial-peer to handle calls from PSTN to VM
      dial-peer voice 21313500 voip
       description ==== VM
       translation-profile incoming TO-VM
       translation-profile outgoing TO-VM
       max-conn 3
       destination-pattern 21313500
       session protocol sipv2
       session target ipv4:10.10.230.3
       dtmf-relay sip-notify
       codec g711ulaw
       no vad
      !  add this dial-peer to make sure MWI calls from CUE to CME is using G711u, otherwise MWI wont work
      dial-peer voice 3998 voip
       description ==== MWI on and off
       incoming called-number 399[8,9]....
       codec g711ulaw
       no vad
      !
      num-exp 3500 21313500
      num-exp 3555 21313555
      sip-ua   
       disable-early-media 180
      ! the usual CME config
      telephony-service
       max-ephones 10
       max-dn 40
       ip source-address 10.10.230.1 port 2000
       dialplan-pattern 1 21313... extension-length 4 no-reg
       voicemail 3500
      !  add MWI number , notice that MWI is in this format XXXX.... (XXXX = mwi number, .... = user number)
      ephone-dn  5
       number 3998....
       mwi on
      !
      ephone-dn  6
       number 3999....
       mwi off