- Cisco Unified Communications Manager (CUCM)
- SIP registration
- LDAP
- CAR tool
- Phones
- Dial plan
- Unity
- IM&P
- 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
- PoE
- boot local image
- VVID from CDP/LLDP-MED
- DHCP option 150: TFTP server IP
- TFTP/HTTP with MAC as key: SEP<MAC>.cnf.xml → XMLDefault.cnf.xml
- certificate trust list (CTL) from CUCM
- TFTP/HTTP image update
- 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)
- called number
- calling number
- start datetime
- connected/ended time
- termination cause
Call management record (CMR)
- jitter
- lost packets
- latency
- 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
- deskphone
- 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
- called number (DNIS): incoming called-number
- calling number (ANI): answer-address
- calling number (ANI): destination-pattern
- voice port, TDM
- if several matches, select first dial peer in config
- 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