CUCM

  1. Cisco Unified Communications Manager (CUCM)
    1. High availability
  2. SIP registration
  3. LDAP
  4. CAR tool
    1. Call detail record (CDR)
    2. Call management record (CMR)
  5. Phones
  6. Dial plan
    1. Partition
    2. Calling search space (CSS)
    3. Patterns
      1. Wildcards
      2. Translation rule wildcards
    4. Dialing
    5. Hunting
    6. Automated alternate routing (AAR)
  7. Unity
  8. IM&P
    1. Jabber
  9. Gateway

Cisco Unified Communications Manager (CUCM)

  • requires Enterprise firmware
  • DNS SRV: _cisco-uds._tcp.<domain>

High availability

  • node:
    • publisher: ≈ master, RW, single instance
    • subscriber: ≈ slave, RO, multiple instances
  • node group based on service type
  • redundancy group:
    • 2:1 ≡ shared backup for 2 subscriber, passive/2×active
    • 1:1 ≡ backup per subscriber, active/active
  • when keepalives are lost, IP phone registers on secondary server; when primary is restored – preempt

SIP registration

  1. PoE
  2. boot local image
  3. VVID from CDP/LLDP-MED
  4. DHCP option 150: TFTP server IP
  5. TFTP/HTTP with MAC as key: SEP<MAC>.cnf.xml → XMLDefault.cnf.xml
  6. certificate trust list (CTL) from CUCM
  7. TFTP/HTTP image update
  8. alias + IP → CUCM

LDAP

  • OpenLDAP, AD, ONE
  • sync
    • after sync non-existent accounts become inactive
    • inactive accounts (> 24h) are deleted by garbage collection at 03:15
    • incremental sync: immediately after change in LDAP; ONE
  • password – LDAP, PIN – CUCM
  • auto-creating of DN on sync – only on account creation
  • AD
    • key attribute – ObjectGUID
    • AD sync only within domain, CUCM does not follow referrals (including subdomains)
    • user ID in AD forest – UserPrincipalName (UPN)

CAR tool

  • CDR analysis and reporting
  • uses SSH FTP to connect to CDR repository

Call detail record (CDR)

  1. called number
  2. calling number
  3. start datetime
  4. connected/ended time
  5. termination cause

Call management record (CMR)

  1. jitter
  2. lost packets
  3. latency
  4. send/received data

Phones

  • ID ≡ MAC

Dial plan

  • call routing: best match → first matching partition in CSS
  • class of service
  • endpoint numbering
  • digit manipulation
  • calling privileges
  • URI is mapped to DN
  • route group: gateway group
  • route list: ordered list of groups

Partition

  • group of devices
  • none is accessible by all
  • no access to own partition by default, CSS required

Calling search space (CSS)

  • what partitions are allowed to be accessed
  • none ≡ access to none partition only
  • line CSS > device CSS

Patterns

  • route pattern:
    • wildcard
    • ≈ IP route in RIB
    • interdigit timeout: if matched on pattern of variable length, CUCM waits 15s after dialing start before processing
    • urgent priority: do not wait interdigit timeout, call immediately
      • 911: 911 and [2-9]XXX patterns
  • translation pattern:
    • translate destination number + new destination lookup
    • ≈ destination NAT
    • search CSS for pattern
    • pre-routing
  • transformation pattern:
    • change source + destination numbers
    • post-routing

Wildcards

  • @ ≡ national numbering plan numbers
  • X ≡ single digit
  • ! ≡ one or more digits
  • ? ≡ 0 or more preceding symbols (digit or wildcard)
  • + ≡ 1 or more preceding symbols (digit or wildcard)
    • \+ ≡ IDD, not wirdcard
  • [] ≡ list of values
    • – ≡ range
    • ^ ≡ negate range
  • . ≡ separator between access code and DN (access code can be discarded on forwarding)
  • * ≡ extra digit
  • # ≡ input end for variable length pattern (≡ send) to skip interdigit timeout
    • 2 route patterns: with # and without

Translation rule wildcards

  • . ≡ any single digit
  • 0-9, *, # ≡ character
  • [] ≡ range
  • * ≡ 0 or more
  • + ≡ 1 or more
  • ^ ≡ line start
  • $ ≡ line end
  • – ≡ longest prefix match
  • \
    • in match: ignore digits for replacement string
    • in replace: insert set N in lieu of \N
  • / ≡ expression start and end
  • () ≡ set
    • (a\) ≡ copy a as set 1

-/(919\)555*\(1001\)*/ /\1444\2/

  • 919 ­– set 1, 1001 – set 2
  • 555 is ignored
  • \1 ≡ insert set 1
  • 919 555 1001 → 919 444 1001
(config)# voice translation-rule <RULE_TAG>
(cfg-translation-rule)# rule <N> <PATTERN>
(cfg-translation-rule)# rule <N> reject <PATTERN>
(config)# voice translation-profile <TPROFILE>
(cfg-translation-profile)# translate calling|called <RULE_TAG>
(config-dial-peer)# translation-profile incoming|outgoing <TPROFILE>
# test voice translation-rule <RULE_TAG>

Dialing

  • PSTN dialing
    • two-stage: first – common PSTN number, then extension
    • direct inward dialing (DID): PSTN number per phone
  • dialing method
    • en bloc: transmit number as a whole
    • keypad markup language (KPML): digits are send on key press, sequentially
  • international direct dialing (IDD)
    • dial-out code
    • prefix to exit to international line
    • “+” in number ≡ IDD of source country (calling location)
; transmit number as a whole, not by digit
(config-dial-peer)# direct-inward-call

Hunting

  • dial hunt pilot number → hunt list → line group
  • line group: group of DN or voicemail
  • hunt list: ordered list of line groups, sequential search
  • queuing:
    • agent ≡ DN
    • no support for desktop app, skill-based routing
    • if agent does not respond to call – agent logout
    • after login or call end – agent idle, can be assigned to new caller
    • caller selection – longest waiting time

Automated alternate routing (AAR)

  • reroute through PSTN or other network, if BW is insufficient

Unity

  • voicemail
  • own message and data store
  • users are retrieved from CUCM via AXL API (SOAP) or from AD
  • VUI: voice user interface
  • TUI: telephone user interface
  • IMAP: send voicemail to MS Exchange
  • WebDAV: import calendar from MS Exchange
  • handlers
    • system call: action on button press
    • directory call: search for users
    • interview call: question-answer
  • high availability: active/active cluster of 2 nodes

IM&P

  • WebDAV: import calendar from MS Exchange
  • compliance server:
    • forward messages over XMPP
    • policy enforcement, malware check, privileges
    • if server is down – IM not available
  • high availability: cluster, up to 6 nodes, publisher(1)-subscriber(5)
  • DNS SRV: _cuplogin._tcp.<domain>

Jabber

  • SOAP: configuration from IM&P
  • IMAP: voicemail from Unity
  • SIP: call control
  • XMPP: IM over TLS
  • modes
    • deskphone
      • control IP phone
      • CDP discovery
      • management – computer telephony interface (CTI)
    • softphone
  • Cisco audio session timeout (CAST)
    • sync audio from phone with video from Jabber
    • requirements: directly connected to phone, connectivity between VVID and PVID
  • CUCM IP phone service (CCMCIP): acquire list of devices, allocated to user

Gateway

  • bridges between VoIP and PSTN
  • controlled by MGCP
  • types
    • onnet: calls from GW – internal
    • offnet: calls from GW – external
      • by default calls between offnet GW are permitted
  • dialed number information service (DNIS): called sees called number
  • automatic number identification (ANI): called sees calling number
  • inbound dial peer
    1. called number (DNIS): incoming called-number
    2. calling number (ANI): answer-address
    3. calling number (ANI): destination-pattern
    4. voice port, TDM
      • if several matches, select first dial peer in config
    5. default dial peer 0: any codec, VAD, no RSVP, fax-rate voice
(config)# voice class codec <CODEC_TAG>
(config-class)# codec preference <M> <CODEC>
(config-class)# video codec <CODEC>
(config)# dial-peer voice <DIAL_TAG> pots|voip|vofr

; call destination
(config-dial-peer)# incoming called-number <REGEX>

; call source
(config-dial-peer)# answer-address <REGEX>

; for inbound ≡ calling, for outbound ≡ called
(config-dial-peer)# destination-pattern <REGEX>

; POTS
(config-dial-peer)# voice-port <INTF>

; ignored for inbound
(config-dial-peer)# session target ipv4:<IP>

(config-dial-peer)# voice-class codec <CODEC_TAG> offer-all