How to Implement Cisco Call Manager Express at Home, part six

Part five on SIP will be rewritten; as some steps are missing.

Foreign Exchange Station or what the hell is FXS?

FXS is basically is what is in the landline world where the telephone line comes into a home or business. When things went to digital in the 1990s, not every phone system could take straight up ISDN, T1, DS1, etc. so a Customer Premise Equipment would be installed with basically an analog telephony dropdown. Adtran was  very successful in downconversion technology to tie a Partner key system into a large scale T1 line.

Then the advent of IP came along and tying older phone systems with native IP connections was very popular. In short, FXS acts as the Foreign Exchange Subscriber, that was traditionally foreign to the home central office of the customer.

In a Cisco environment, it can be used for multiple reasons. For today’s notes, it’s to extend analog telephones acting as extensions.

Wait, what’s the difference between an FXS and an Analog Telephone Adaptor?

An ATA is a separate device, that’s intended for things like fax machines, and some instances of analog telephones. Unlike Nortel and Avaya and even Mitel where it’s a box that goes embedded with a phone, the VOIP world likes to make little Netgear-like boxes instead. An ATA can have points of failure, and you’re not limited to ~ 300 feet of wiring. If say the network goes down (and it can!), you can have hard line failover, much like in your hybrid digital telephony setup. Unless something is wrong with the router, tricks to provide failover is very easy.

Again FXS can be used to tie analog trunk PBX systems or act as the ATA for a software based system like an Asterisk, this is intended for a Call Manager Express setup

To Start Dialing

Logged in and in configuration mode, type in voice-card 0/0 (in this example, first “o” is the gateway, “0” is the furthest right hand card on a Cisco 2801)

type on no shutdown

Then type exit

Now you need to type some more commands

First go to voice-port 0/0/0 (that’s Gateway 0, slot 0, port 0)

station-id name Dining Room (or another name or location you prefer)

station-id number 201 (or another number preferable, but you could leave this empty, but if you don’t hear it ring, you’ll know it was you!)

caller-id enable (this allows a Caller ID analog phone to give information from the caller, whether it’s a SIP call, SCCP call or even outside – Where Available, lol)

If you still struggle with Dial-Peers, it’s basically a dialing string or rule for anything other than Skinny phones. SIP is even foreign, and you have to create dial-peers for those stations too. Analogs do not talk in IP. When adding an ephone-dn or ephone; IOS already does that for you if you noticed. And you can tweak it if you so wanted to.

I used this approach dial-peer voice 1201 pots  in config mode

I told IOS, to have a destination-pattern 207

Port 0/0/0 – because that’s the port I put the station-id number on

Forward-digits all basically will dial the number after the person picks up, so if you want them to hear numbers dialing, than I’d leave it blank

The dial-peer is required if you have VOIP extensions whether it’s SIP or Skinny. The FXS slots when not in shutdown can make any calls against the dialing plans and dial-peers it knows, but it needs explicit instructions the other way around.

#

The FCC’s Brutal Regulation to Enterprise

Should the Internet, regulating Facebook (Messenger) be next?

If I am in a desperate situation, I should be able to type “911” on my Messenger screen and connect to my local Public Safety Answering Point because Facebook knows exactly where I live right?

At this point your desk phone will most likely get more punishment than say WMUR-TV Manchester getting their license nixed in the coming year.

The Federal Communications Commission is pushing another mandatory obedience to 9-1-1 call tracing, and if you thought Kari’s Law was bad, wait till you hear Ray Baum’s Act. This forces anyone with a phone system (like a PBX or a Key system) to provide detailed information. If you are a small creative office with no weird cubicle numbers, you may need to add C1021524BC-AD at the way I’ve read the law. Some enterprises are on the 3rd floor in a different suite, the reason why the telco carriers do not have this in their 9-1-1 database that is only activated when a 9-1-1 call is placed and forwarded to the PSAP is amusing.

Hell if I don’t give PayPal my specific location for a package, may not get the Buyers Victimization Program Protection! (Oh sorry “Buyer Protection Program”.)

In the days where little Gen. Colon Powell’s little kid, Michael ran the FCC, the spirit of Voice over IP and 9-1-1 routing was a hands off approach. In reality, prior to the Kari Hunt incident of 2013, they were even more closer to having general consensus on how 91-1-1 calls on private property would work.

(And when you prefer the boys club like him today… that shows you how extreme the FCC has lost it, refusing in the spirit of protecting America’s radiowaves.) The problem is that the younger Powell running the FCC under a Republican admin, like the GOP in general, was the party of yesteryear. When Kari’s Law and Ray Baum’s Act had been developed, a political style was developing: White Grievance. Another obs was narcissism (not taking personal responsibility of situational awareness), entitlement (the expectation “9-1-1” should be the only number even in a private property), and scapegoating (the PBX/MLTS was the one that really killed Kari) not a man of which previous accounts described their relationship as “estranged” and the motel meetup was “arraigned” and the brutal murder of “Hunt-Dunn” (Cisco refers her as hyphenated surname) was never the fault of the killer, of which local media reported he got 99 years in prison and despite The Spirit of Texas’ strong views on capital punishment, he’ll be locked up instead.

But… Multi Line Telephone Systems, Key Telephone Systems, whether they are digital or TDM or VOIP based, were the ones that killed Kari and delayed in saving the live of Ray Baum.

The parent company of Kensington should make millions and billions to put their signature “locks” on many of the VOIP phones not to be snatched, but ensure that 9-1-1 will get the right room, cube or desk space because not all phone systems have the ability to be user based not extension based. For instance Avaya treats extensions numbers as users, so if a person “hot desks” they don’t have to literally move their phone, whereas Cisco, Polycom and other hard phones have the extension number hardened to the phone device itself which makes moving cubes easier, but the information that may identify them in a time of crisis harder. But Avaya was the Official Sponsor of Kari’s Law and they declared bankruptcy a year before it got signed into law by POTUS Trump and company has never been the same since.

It’s sad to see chauvinism in technology worsen over time like how a narcissistic creep that don’t age really well. This is the FCC. And I am not holding my breath for the FCC to go back in their lane and rip WMUR-TV’s license once and for all with their alleged news product Newsnine of which they spend more time acting like a fascist media outlet and never covering the stories in their City of License. Or hell WZID (FM) focusing on the 51% of the menopause to death female audience and indirectly boxing men in the 603. But talking about broadcast media, should be in it’s own post instead.

The issues between DevOps and General Enterprise Technology

In the Facebook outage, it reminded people that you can’t trust a company which thinks they have only a few million users, when they don’t accept they work for a trillion dollar enterprise. This meaning that Facebook’s servers and services are more consumer-class than enterprise class or worse the braintrust is very weak.

It’s important to note, that even though the Internet Protocol is in itself a software stack (think of this as an “extension” or “driver”), but software engineering, web apps, etc., is in itself a different skillset. People who have used Microsoft’s Windows Server solutions really do not know much about IP networking. For many years, the Server editions came with a DHCP server, how many of the Microsoft certified admins know more about DHCP other than it gives IP address at the local level to get out onto “the Internet? I have suspected about VOIP deployments in the past, where NT admins didn’t understand “DHCP options” and alike because you know it’s more important to manage an Active Directory.

Look at Microsoft’s own VOIP systems, it fell shorter beyond Cisco’s Unified Call Manager, and obviously the Avaya, Nortel, Mitel or Shortels of the world. It’s sad when a Cisco can do better. This has a lot to do with Microsoft’s DNA of everything being software and talking to Microsoft’s own blueprint. Anything that routes outside a data center of an in house, on prem Microsoft solution is something Microsoft doesn’t get, and their software shows it. If it has to hit a Cisco, or needs to interact with a Cisco IOS, well good luck to that.

The Session Initiation Protocol part of Voice over IP was yet another rip-off from the traditional telephony, and was created by application people, since SIP was based off the Web standards or HTTP technically speaking if it’s a device talking to another machine. In a lot of ways SIP was designed almost like cell phones because a telephone number is basically a URL, and when you hear the “dial tone” it’s a fake noise to assure the user to replicate it’s a phone. Because the people who developed SIP didn’t understand enterprise voice systems, its basically like a landline with all the 19 potential features you could add on to your home hardwired or broadband phone service, because the people who likely created it looked at their POTS phone and assumed the same.

What a bunch of assholes to make an ass out of themselves.

Understanding software and an imaginary world is the worst thing to have in DevOps, of which is the new IT department fusing move-fast-and-break things punky coders, and wife beating sysadmins who hate change, but preach it to their “end users” or “lusers”. It’s kinda ironic that either type of man typically lacks software of another sorts, people. Understanding people. The IT world needs to be reformed to really not be the evil world to their fellow employees, and they need to stop jacking off to the C-suite, to help them save money by cutting jobs to their own people. This kinda goes full circle of the way money and influence is killing society with Facebook and their technical approach. If you are building a social network, that isn’t based on empathy, you are certainly going to cause rift amongst the people who are using your service.

On Facebook’s Outage…

I am not going to be the asshole tech pundit who trashes others for not knowing things like Border Gateway Protocol, or what have you.

I mean seriously, who at the Facebook’s technical staff even know what BGP stands for? Or any server administration period.

I am talking about the Facebook outage that occurred on Monday morning – the morning after the whistle blower appeared on 60 Minutes. There was little clarity whether it was a Distributed Denial of Service attacks (or DDOS – yes I capitalize the “O” because I find mixed capitals in initials to be tacky) or just a simple routing issue. It turns out, according to their blog post in response to the outage

“Our engineering teams have learned that configuration changes on the backbone routers that coordinate network traffic between our data centers caused issues that interrupted this communication. This disruption to network traffic had a cascading effect on the way our data centers communicate, bringing our services to a halt.” From Facebook’s engineering blog

Where is the PR to help gel out vague languages such as a “configuration change”… that even though I am not technical, I would certainly test things before applying (but that would violate the Move Fast and Break Things ethos.)

I’ve had a theory that coders were very narrowminded groups of people who don’t know much about networking, much like how networking guys took a literal backwards view on telephony.

Or that coders have basic views of networking, that is no different than a gamer or a YouTube influencer.

This is sad if a large trillion dollar enterprise is acting like a bro startup at a scrappy office building. It’s been confirmed that Facebook’s corporate hierarchy is “flat” according to the whistle blower speaking to Congress this week. It’s not a surprise and coders see the world as flat (maybe they are flat-earthers!)

Facebook’s own computing (of which they do, and not use Google or Microsoft or Amazon), is not just their own farm, but they had built their own bare computers, without standard rack hardware, just sitting out in the open, using open source software along with their wacky hardware designs. Facebook’s software however, should be concerning if the underlying code is basic Linux code, and if Linux servers are acting as routers, they typically are not intended to be built to handle billions of users.

This is really, really bad, if Facebook’s routing is as shallow as a home gamer with consumer grade equipment or consumer grade networking settings. This consumer mindset should alarm enterprises of any size because IP networking and routing is more than just from going in and out.

If you want to be the next Facebook, it’s likely logical you should consider Software Defined Networking, just make sure it’s built for scale and built for serious environments. Facebook’s very casual and reckless approach for managing their systems should also be a wake up call for aspiring web disrupters.

Techie No-Nos – On DNS…

For security purposes and ensuring you’re not clogging your own low voltage pipes, your “DNS address” should be local. If you use Google or your ISP’s DNS address any connection to your local devices can only be accessed by IP addresses because you have no way to have a DNS point to a name to a host with an numeric IP address.

Local IP addresses are kinda like the FRS radio bands, ones that ISPs are expected to not route for the purposes of having a local area networks routable.

Anything from:

  • 10.0.0.0 to 10.0.0.255
  • 172.16.0.0. 172.24.255.255
  • And 192.168.1.0 192.168.254.255

The local DNS address should point out to the firewall or wireless router. Many smaller end devices have the ability to basic DNS if you have a few devices where you want to connect them by domain-name.

With all these cyber attacks, it’s best to separate what’s exposed to the overall Internet, and what should be local. Computing devices should be connected with a local IP and DNS address and appliances that help route local devices to the overall Internet should be the ones with the most exposure like having the Google DNS address.

Just do the right thing, and keep your devices protected with a better structured local network

#

How to Implement Cisco Call Manager Express at Home, part five

Session Initiation Protocol

In 2020, as previously mentioned SIP is replacing most of the desktop phones. SIP stands for Session Initiation Protocol.  H323 or SIP is neither better or worse of standards, it only differs how the phones connect and disconnect calls. Cisco’s SCCP uses H323 standard, even though the protocol itself is proprietary. Your routers IP address handles the configuration (buttons and lines, sometimes for the user like backdrops and ring tones), the time clock (the time of day and day of the year), the signaling (the tones), and the transmission (the human conversation). SIP could do any of the four things and could be separate devices on separate networks.

The basis of the SIP “stack”/protocol/extension supports

  • Video chats
  • Audio calls (err the traditional telephony)
  • Instant Messaging (known as “texting”, “messaging” or “chat” if someone has been born after 1994
  • The basic SIP telephony stack supports essentially all standard 19 Custom Calling Features that the phone company used to provide separately, that many broadband phone companies provide for free or is included at a much lower price rate.
  • The protocol literally revolves around Caller ID. “Display Name” and “SIP Alias” is equivalent to the “station-id name” and “station-id number” in the FXO ports respectively  in the IOS configuration if you wanted to do ethical caller ID spoofing.)

Continue reading

How to Implement Cisco Call Manager Express at Home, part four

TFTP: (Sometimes known as the “CUCM address”)

TFTP and call management in Cisco land is the same. It’s assumed you are treating your router to just do voice, and you’re not mixing this with another network like an ASA or an AirPort Express with it’s own IP network, etc. (I am not the only one that had this inexperience.) You use SolarWinds or tftp32d to insert new files to the Cisco router; then use the tftp-server command to serve the files for the actual sets themselves. You typically don’t use the laptop/management PC’s TFTP server to have the phones get their files. Why?

TFTP and call management in Cisco land is the same.

Now depending on the files, you’re going to have to do this individually. If you have some mind in IOS, you can do in config mode, tftp-server flash:loa [first three letters of the file, then Tab] you can speed up this process. This flags the files living in the flash: directory this can be spit out to the TFTP server you have previously set up. Ensure that in config mode your tftp-server source-interface is set on the same network/subnet that the VOIP is running under.

Your going back to the telephony-service function yet again, this is where you enter in the “Loads” for your Skinny phone. Why if say it works out of the box and it registers? You may run into some bugs. My Cisco 7970 which I’ve had for years; didn’t understand the quad-lines very well, and it locked up, and sometimes would constantly reload. The firmware dates back to CME 4 years and perhaps it needed a little more up to date code so it would work better.

You type in the telephony-service prompt in config mode the following:

load 7970 [filename without the .loads, or .default]

change the model number if different from the example

There’s roughly 6 files, and it’s best you put them in the order that the other documentation has it.

The Cisco IP Phones basically phones home via TFTP and if it sees a new bootloader and firmware and checks against what it has, it should restart and attempt to upgrade.

There are catches and gotchas, ensure you have read Cisco’s documentation on upgrading, because hopping well past major versions will make the phone become a brick, or totally just ignore the new files. For an example, you can’t go to version 9 unless you have patched to 8 if the version is below 7. Understandable for IP appliances, yeah?

*

How to Implement Cisco Call Manager Express at Home, part three

The Numbers Game

There are several types of telephone numbers, known as “tags” to identify the individual extensions, sets, etc.; similar to how an Internet routing path works.

ephone for [Selsius] Ethernet Phone, or known today as Cisco IP Phone (the company Cisco acquired in the late 1990s)

ephone-dn for Directory Number (easy if you came off from Nortel)

voice register pool for a SIP Phone, whether it’s a Cisco or not

voice-register-dn the number for the SIP phones or devices

SIP and Voice Registers are in a separate post. As of this writing in 2020, the CME releases prior to 9 are essentially becoming End of Life; and SIP is now becoming the only protocol Cisco will officially support, no new models since the mid 2010s uses SCCP exclusively; though CME doesn’t work well with SIP natively if you have the 7900 series with SIP firmware. Since version 11, it only handles SIP at the desktop level, SCCP only works if you still have the VG200 analog phone gateways; or the smaller FXS cards. The more recent, 7800, 8800 and 9900 models only runs on SIP protocols. In reality, SIP is much more mature (but still not the best VOIP protocol around), and the newer generations of Cisco IP Phones with the SIP stack reflect it. The 7900 was never really intended to take all the lack of benefits to SIP and not only that the very original generations the 79×0 models limited it’s use to support BLFs, the speaker was half duplex, and the audio quality was at level of a POT set, over a set that had a Skinny firmware.

Trunk mode: Key System (“Call on Line 1”)

As much as I admire the 1A2 systems, and my poor fine motor skills, I don’t want to forget history of the largest types of systems, PBX are actually a microcosm in the telephony world. If you got a 796x, this will be easy; without loosing button space for other line appearances.

In this example, this would be a dummy extension

CORE1(config)# ephone-dn 60

CORE1(ephone-dn)# number 200

CORE1(ephone-dn)# label Line 1

CORE1(ephone-dn)# name Line 1

If you have Call Waiting and you enabled Switchook flash in telephony-service, you could set this up to be a dual-line, to achieve this, to do that, all you would need to do is add  “ephone-dn 60 dual-line” to the end if you did this already, and made a mistake you will need to remove it (using “no ephone-dn 60”  as the example) and reenter it as such.

FXO Configuration (voice-port)

Now it’s time to define that FXO port to match that dummy extension. Now you’ll branch out to the trunk level and assign various commands to make this work:

CORE1(config)# voice-port 0/1/0

Which means on the Cisco 2801, it’s on router  0, slot 1, port 0 (the female jack),  similar to 01A0401 on say a large Avaya PBX.

CORE1(voice-port)# supervisory-disconnect anytone 
CORE1(voice-port)# groundstart auto-tip
CORE1(voice-port)# timeouts-interdigit 6
CORE1(voice-port)# timeouts call-disconnect 28

I use this because the Xifinity Digital Voicemail, and if no one answers by the 6th ring, it stops ringing. If you do not have this type of timeout, the router “answers” the call and rings to the command below. If you do not insert this, the phones will “ring off the hook”. In fact it concerned one of my grandmother’s doctors who just happened to call on the same day of the final cutover, and I realized I omitted it.

connection plar opx 200

This means it will connect to a Private Line Automatic Ringdown to Off Premise Extension of 200, the ephone-dn 60 for the dummy “Line 1”. Ironically OPX must think the extensions is off premise to the router’s mind.

description Comcast POTS

caller-id enable

If say you wanted only one phone to answer the call (which this would act like a PBX, where a single point of entry), you’d use the DN that is of the extension you wanted to answer, such as say 101. For the home, it’s easier to lump sets on a dummy extension in case of some network flare up that caused a phone to go down, someone unplugged a set, etc. I’m a clumsy guy, and if you had one set go down, a busy signal would generate on the other end, because no device is able to ring.

There was some issues where the phones would ring once every 10 minutes or so. Upon a google search, I found entering the following in the config mode, this helped

voice class custom-cptone Comcast

 dualtone disconnect

  frequency 480 625

ephone-dn (Extension Number)

As previously explained, the ephone-dn is for the extension. In Release 8 and higher, there is more than just an option dual-line, but an octo-line. Octo means 8 different instances of calls can come into a CME  instance without a busy signal. Though in Cisco, your call appearances are virtual and requires juggling using softkeys and no hard keys like how Avaya is known for. With SIP, you could return back to the Avaya-style as call-waiting or appearance buttons are device-centric and not phone system specific, which in a lot of ways could be easier. In fact octo-line is designed for call-parking, which will be discussed in the future.

Depending on that PVDM that’s required to anything, even if you were just playing with commands, the more instances of calls will chew up resources on the PVDM, even if you are within the limits. This is because after you assign a Cisco IP Phone, the ephone command already populates the  lines after configuring, so that means that phone will have dedicated lines literally.

The SCCP protocol can support up to 200 simultaneous calls, but that’s more for say a UCM, and given how it can’t roll over to another idle button like an Avaya; it’s an overkill; especially when it’s line specific, not phone specific. It’s better off being a dummy extension than anything else.

Setting up Cisco IP Phones

If you did the ephone-dns for all your relevant extensions; and you’re in no hurry to add BLFs, you could in theory use auto-reg-ephone in the telephony-service function, and plug in the phones one at a time, to then to match extensions to phones. But if you want to do more, one at a time maybe your only  bet

For all intensive purposes, start with one. In config mode enter the following

CORE1(config)# ephone 1
CORE1(ephone)# mac-address 0000.0000.0000
CORE1(ephone)# type 7970
CORE1(ephone)# button 1:1
CORE1(ephone)# button 3m70

In mac-address use the MAC that is on your VOIP set that you’re adding ensure it’s split up into threes and add a “.” every 4 characters in the hardware address.

For all intensive purposes, “button 1:1” means Button 1 is tied to Directory Number 1, extension 100; button “3m70” is functioning as BLF for the dummy extension of 200 that’s acting as a Key line and is monitoring the line; you can access it and it will ring when the number receives a call. And I believe you could use 0s for MAC addresses if an event you’re waiting for a new Cisco phone to ship and use it as holding till the set arrives. I know this can be done in voice-register, but didn’t verify with ephone.

*

How to Implement Cisco Call Manager Express at Home, part two

Setting up Cisco CME without the setup command

For versions prior to 8x, the “setup” command has been “depreciated”, but yet it’s still seen on the Cisco router. It literally gets bitchy and basically tells you to eff-off and configure it the more complex way.

Also for $85 in the summer of 2018, it did not include the GUI. While I had an image for the GUI, it was for Release 4. And yet all the nerds love to brag doing everything in terminal  I also defend GUI because it also helps you for the small things, like changing the time at the end of the Daylight time, if you happened to fudge it up, or you want to change the music on hold, stuff like that. I consider the GUI to be the admin, and the terminal for heavier lifting tasks like the routing, etc.

If you so choose to, you’re going to have to set things up line by line.

If you have not assigned a DHCP pool yet, and the VOIP VLAN is separate to your data VLAN; you’re going have to enter (if you don’t have a DHCP server for the sets)

ip dhcp pool ITS*   

network 172.18.2.0 255.255.255.0

option 150 ip 172.18.2.2

default router 172.18.2.2

dns-server 172.18.2.16

* I used “ITS” for the sake of legacy uses because this is what would’ve been entered for the name if you had “setup” still in use.

Network means the server will spit out IP addresses along the network it’s bounded on, by the IP address set up on the interface. I used FastEthernet 0/0 because I felt internal/private LAN should be on the lowest port possible. Your option 150, handles the TFTP server, which will need it’s own discussion later.

Now enter telephony service by entering in

CORE1# telephony-service

Now you want to tell the router how many Cisco SCCP phones you want to have, say

CORE1(telephony)# max-ephones 24

For the number of extensions, double it plus a few more (especially if you want to do paging and Key system functionality)

CORE1(telephony)# max-dn 80

you want to remind the telephony service where its assigned on

CORE1(telephony)# ip source-address 172.18.1.2 port 2000

where port 2000 is the default pipe for Cisco’s SCCP

Do you want to change the line of “Cisco Unified CME” (that on the big CallManager it’s known by “Your Current Options” above the softkeys?

CORE1(telephony)# system-message  ((')) Merry Halloween (('))
CORE1(telephony)# voicemail 8*97

The voicemail button could in theory dial any pre-defined number, and I just used the most likely default carrier number if you don’t have Unity Express installed.

CORE1(telephony)# moh music-on-hold.au

ensure your music-on-hold.au meets Cisco’s spec and it’s living on the flash drive

Entering IP phones is not done in telephony-service at all. This could be because it could be used for SRST functionality, and they kept that prompt at the low level.  You can’t do SRST and CME at the same time.

For more on how the numbers game works in Cisco CME, it’s got it’s own page.