How to Implement Cisco Call Manager Express at Home

The future is all IP

The Future will be Rewritten to be all VOIP.

Cisco is the future.

Just kidd.

In seriousness, if you’re all wired at home, or you are interested in wiring up your home for multi line telephony or have the ability to answer calls from a number of phones or internally call people from within… I think given the consolidation and the access to them, the recommended path is to Cisco. As much as I can’t stand a lot of their technology, you do not need to need  to have everything running on Cisco to do Cisco telephony. Being frank. I have switches using Netgear, and I have some third party endpoints.

The advantage with Cisco is

  •  The “Gold-standard” in VOIP
  • Much easier to acquire, at a reasonable secondhand price (other devices that may be even better like MutiVOIP gateways, are really expensive)
  • Gets your feet wet into other platforms such as wireless, firewalls (ASA), etc.
  • Voice quality sounds better than any standard POTS phones, using the same POTS wiring from your phone company
  • They are more open to the standards-based, meaning you don’t have to be a Cisco showoff at the tables, desks. You could use SIP phones from other vendors now than historically.

I am writing this because a lot of the content out there is shit. Whether it’s written by guys who haven’t had proofread his own copy, or someone with U.S. English as a Second Language; or people who are so elitest with their Cisco certs, they’re like “it is (what it is!)”

First off, this is the third attempt in understanding Cisco IPT and this comes from a telephony point of view, with the legacy digital and analog systems (since I had this cred…) I tried this in 2011, to a massive fail, another attempt in 2015 (while it worked, it was still buggy and I corrupted the router) and by 2019, I started to “settle” with Cisco. The cutover was done in early 2020, and for the first time in 5 years, there has been a functioning telephone system that has done both internal calling and handling outside calls. All with trial and error (and countless web searches, and I will refuse to say “Google it” if you’re learning.)  And the Cisco textbooks are very condescending in tone.

There’s also a sidenote in 2016 to 2017, there was an attempt to use an Asterisk distro using it on a VM instance. I had some third party SIP phones, but learned the hard way that some SIP phones are more cumbersome than others. 

I recommend you learn before Cisco Voice the following:

  • The general knowledge of Cisco’s IOS
  • How to set up Ethernet ports, on the routing; and switching
  • How to set up Virtual Local Area Networks or VLANs to appropriately set up voice, data, or even test VLANs
  • The confusing language of ephones, voice pools, and what’s telephony-service and what’s not before putting all this together
  • that SCCP stands for Skinny Call Control Protocol, that is Cisco’s Proprietary protocol; and Session Initiation Protocol stands for SIP; and this where third party phones could come in. OR could be used as a “VOIP trunk” from an Internet Telephony Service Provider or ITSP.

IMPORTANT: You will need Packet Voice Data Modules or PVDMs, they look like RAM sticks, but they are DSPs. They vary, but one that costs about $15 on the secondhand sites, will probably be OK… it can vary but simplicity is the theme. If you do not have PVDM, the telephony-service will not work at all. And if an eBay seller explicitly sells you a router with CME and it you get a no PVDM message, I would fight to get a partial refund by claiming “not as described” because  you cannot use CME/telephony service if you don’t have a PVDM -at all. If an item is advertising CME abilities, or has CME installed, then gawddang it it needs a PVDM!

CME – Not to be Confused with Chicago Merc Exchange

Another day, I may do a general Cisco post, because that can fit under a thousand words; this focus will be on Cisco IP Telephony or Unified Communications, or whatever the brand of the day.

First off, Cisco’s Unified Communication Manager Express was once known as Cisco CallManager Express; that was once known as Cisco’s IOS Telephony Service (may run into the ITS phrase somewhere along the line), that was based on an acquisition by one of the 145 companies Cisco bought since the corporate inception to recent years. The latter brand is still well known in the IOS command prompts, which could confuse you. This runs on various routers, is part of an IOS train that ends on a filename with “enterprise” in the main IOS router binaries.

It can also run Survivable Remote Site Telephony or SRST. If you are running the PBX/software switch, the big Unified Communication Manager, you should know about SRST. As a sidenote, SRST basically a handicapped UCM, though if you’re a small site, like your house, you’ll see similarities in commands.

The Home CME Rig

Included in these examples are

  • Cisco 7900 Series IP Phones (will be programmed as ephones) Cisco 7970, 7961, 7965 using Skinny Call Control Protocol (SCCP)
  • 2 Polycom IP 311 SoundPoint desksets using Session Imitation Protocol or SIP
  • 2 Avaya 9611 VOIP sets using SIP firmware
  • 1 Cisco 2801 Integrated Services Router, using Cisco IOS 11 and CME 8.5
  • 1 2 port FXO Voice Interface Card or VIC.
  • Netgear GS108 POE Managed Ethernet Switch
  • Netgear GS728TPv3 Gigabit switch, (acting as a core switch between the machines and branch users.)

After doing general configuration on Cisco routers and switches, it’s now time to introduce VOIP, and I say “VOIP” because there is some protocol-specific  things you should be doing first.

After logging into Executive Privilege mode; and going into config mode like you see here


At this point you should enter:

voice service voip

enter the following commands

allow-connections h323 to h323

allow-connections h323 to sip

allow-connections sip to h323

allow-connections h323 to sip

This will allow SCCP sets to talk to SIP sets and vice versa

Beginning with Cisco CME 8x, they require the router to “bind” the  source interface to prevent VOIP hacks, and disruptions. Unfortunately, not all applications are doing this, and by “binding” this means that only CME traffic can live and move across those interfaces. If you are on vacay and want to call your folks without making an actual telephone call, it’s best you VPN. You should never put your source-address on an external facing IP address.

For reliability purposes across the system, it’s best you enter the following (adjust IP address accordingly to your environment, this is an example.) Ensure you’re in config mode, and exited out of any sub-prompts

sccp local FastEthernet0/0
sccp ccm identifier 1 version 7.0
sccp ip precedence 1

If you have other Cisco IOS routers with Voice support, you could actually make it be a backup system.

I did this as well to ensure reliability

sccp ccm group 1

bind interface FastEthernet 0/0

associate ccm 1 priority 1

registration timeout 3

keepalive timeout 3

connect interval 3

switchback method graceful

Another important feature for the overall routing of calls is called a “dial peer”. While it can be very confusing at first; put it this way, VOIP is a multi stack protocol that can go amonst various mediums (a single line telephone to a T1 circuit, or a Foreign Exchange Station to call to a SIP PBX set up for voicemail.) Because it can do a lot; the router needs to know when it listens to DTMF commands, to know what to do with it.

In this example I have it set to a FXO so when any user of any telset wants to dial out, they can. And for each type of number, needs it’s own dial-peer.  Even if you have Comcast, Charter, or some residential telephone line where any domestic number won’t be a charge, you’ll still need to keyboard exercises to basic calling

In configuration mode: enter

dial-peer voice 201 pots

 description Local Outbound

 preference 1

 destination-pattern 8[2-9]......

 incoming called-number ..........

 port 0/1/0

 forward-digits 7
(config)CORE1# dial-peer voice 1201 pots

 preference 1

 destination-pattern 8...........

 port 0/1/0

 forward-digits 11

CORE1# dial-peer voice 180 pots

 preference 1

 destination-pattern 818.........

 port 0/1/0

 forward-digits 11

If you live in an area where PBX systems  are likely to kill you more than some creepy man – you could enter something along the lines of (please consult with local regulations on how the emergency services number should be dialed and/or be tested or how to handle inadvertent dialing:

dial-peer voice 911 pots

 preference 1

 destination-pattern 911

 port 0/1/0

 forward-digits all

Part Two in a later post


2 thoughts on “How to Implement Cisco Call Manager Express at Home

Comments are closed.