How to Implement Cisco Call Manager Express at Home

Updated in 2023 to include compliance to the Fucking Kari Hunt Law… since PBX systems kill women… not deranged men!

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 MultiVOIP 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

CORE1#

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 172.16.18.2 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

Dial Peers

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

Remembering Kari Hunt as your First Dial-Peer (Fucking Kari’s Law!)

Updated in February 2023 because the very vague rules in the 1934 Communications Act had been codified to include Fucking Kari’s Law… approved by the US Congress during the Parkland massacre and singed by POTUS Trump; the law went right into effect right in the midst of COVID. I never understood how metal boxes could kill women, and why crazy men are never punished and why there is so many domestic violence cases, but a fucked up telephony vendor thinks that’s the case. Regardless, Cisco has had a separate page for this very reason, and virtually all Cisco products are compliant in nature (because the way it’s designed.) If you’re at home base, your crappy Cape Home that’s not for business and your uncertain, check with your pals or legal people, I cannot take any responsibility, but I still wonder why the FCC allows things like an Apple Watch to dial 9-1-1 without much work, and yet they force it for desk sets .

First off, you should think of Kari first when you make your first dial-peer, as the FCC wishes you to do if you’re in the States or Canada or Mexico. Essentially think of 911 as off-limits phone number for internal calling, and that 911 should automatically be dialed without hesitation

dial-peer voice 911 pots

description Emergency Calling 

destination-pattern 911

forward-digits all 

port 0/1/0

Repeat these steps if you have more than one voice port, and change the string on the port command… and there we prevented (in theory) that no delay to aid a slaughtered mother because of a crazy man who should’ve been executed in The Spirit of Texas, if the fucking Texas DPS had a brain.

Now for most home lab installs, you’re within no requirements to in theory for the Ray Baum Law that followed the kunt law. It’s strongly recommended that you do not add information such as station-id in voice-port prompts for your FXO… just in case that caller ID information does get passed through and overrides the subscriber’s records. If you’re such a chicken (no offense) ask some opinions on what you should do as I have no warranty on this advice. In this era of The FCC, I miss Nipplegate and them not allowing for Sinclair and Nexstar to grow as bloated and obese media properties.

Now Kari’s Law doesn’t stop the option to have the traditional trunk access code along with 9-1-1 (that’s really just vanity as you’ll see) since the requirement is no TAC for 9-1-1 by the baseline

dial-peer voice 8911 pots

description Emergency Calling 

destination-pattern 8911

forward-digits 3

port 0/1/0

notice the 8911 on the destination-pattern and forward-digits 3, so the “8” acts as a ceremonial code, but in reality unlike other systems where that TAC is so protected, its VOIP what can I say?

However one technical violation to the kunt law is alerting a primary extension for the number being called, well if you have a few telephones, and if you have say Business Class service, you should get a push notification or a text alert a 9-1-1 call was placed, this is how many got into “compliance” with Kari’s Law with a technology that was exclusive to Avaya’s multi-million dollar PBX systems with Crisis-Alert. I can speak with authority where my grandmother had heart situation in 2021, and it was before we upgraded to Business Class, so you’re more in compliance if you have a modern day carrier.

Now the past domestic emergency calls onto traditional egress dialing…

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.