Note – This post is the first part of configuring a lab. This is not, however, the first post about building the lab. The first post, where my lab was built, including the installation of CUCM, was on a previous post called “Let’s build a lab!” Be sure to check out that post if you need to before starting here.
Time to configure the CUBE! This is exciting, right? Well, hold up, before we get deep into the CUBE stuff, right now we just have a router. We have to give our router the basic commands to make it work, and then we can make it a CUBE. Since this is a lab and I bought the router from a e-recycler, I had to password reset and then wipe the old configs off the router before I could do anything. And since I don’t have any licenses, I’m going to boot it up to a basic configuration and enable a trial license that will last about 8 weeks. Once we have our basic configurations, we can move on to setting up the actual CUBE functionality.
One cool note is that Windows 10 automatically installed my Cisco USB driver for the rollover console cable to my router, so… you know… Thanks, Microsoft.
Another note, if I use any terms here that you don’t understand, check at the bottom for the terminology section, and if I missed anything, just go ahead and comment and ask and I’ll add it to the list.
First things first, lets configure the interface so that I can get this thing online and then give it a static route out to my gateway. Let’s not pretend that I’m a data network engineer here… I’m not. I realistically probably only have CCNA level networking knowledge, and most of that is in my past and would take some refreshing to really figure out again, and since I’m more focused on the Collaboration portion anyway, I’m just going to make this thing as basic as I can right now.
At this point, you will have to be tethered to the device via a cisco console cable directly into the console port of your device. Here is a quick tutorial from a youtube channel called Network Advisor to help you out in case you’ve never done this before.
He doesn’t go over this in the video, but once you’re connected, you might need to download the cisco usb driver from the cisco website. If you’re on Windows 10, it might install automatically, though. Go to your search bar and type in “Device Manager”, open that up and look in your communications ports drop down to find which COM port you are currently connected to. In putty you will have to type in the right COM port as you see below. Select the Serial radio dial, set your speed to 9600 if it isn’t already there by default, and type in the COM port you found in your device manager.
Now that you’re in the router, let’s start configuring.
// short for configure terminal, this allows you to start configuring the router.
// This will set our router name
ip address 192.168.50.226 255.255.255.0
// All we did here was assign the IP address to the interface
ip route 0.0.0.0 0.0.0.0 192.168.50.1
// This is a static route telling the router to push all traffic out to my home router that is connected to the internet.
line vty 0 15
transport input telnet
// This just configured the router for telnet so that I don’t have to continue sitting in the uncomfortable folding chair in my basement and can do the rest of my office.
ip name-server 18.104.22.168
// Obviously enough, we need some way to translate domain names into IP addresses, so this is just defining a public DNS server to do that.
license boot suit AdvUCSuiteK9
license accept end user agreement
// This enables the trial of our UC license. This will require a reload of the router, so let’s go ahead and do that.
// In case you didn’t know, the write command saves our configuration. This would be the same as typing copy run start, or copy running-configuration startup-configuration. This can even be shorted to simply “wr” because a router only needs as many characters as it takes to eliminate all other option. So once you’ve typed in wr, there is no other option other than write, so you can stop there and press enter.
CUBE Specific Configurations
Now that we have our basic router set up, we can log in, and we can ping it and telnet into it, the rest can be done from the comfort of our desk. So let’s get started turning this guy into a CUBE router.
voice service voip
// this enters the voice service configuration
mode border-element license capacity 200
// This enables our router as a CUBE. It’s honor based licensing, and since our entire router is set up on a trial at the moment, we are going to go ahead and roll with it. In a real environment you will purchase this licensing with your router and will get a little sheet of paper and electronic document confirming this. The 200 just means we have a capacity of 200 SIP channels.
do show cube status
// This will simply show us that our commands were successful and the router is now licensed to be a CUBE.
allow connections sip to sip
// Yes, we have to define that this CUBE will connect SIP to SIP calls.
// This command tells the router to use the CUBE address rather than your CUCM address to protect your internal systems from exposure to the big bad web.
ip address trusted list
// This gives us a very specific trusted list of who to accept voice messages from. It is highly recommended to specify only your SIP provider and your CUCM or any other internal servers that will connect directly to your CUBE.”
ipv4 [IP ADDRESS] [SUBNET MASK]
ip address trusted call-block cause not-in-cug
// This will send a message to calls not coming from our above listed servers, stating that they aren’t trusted in our call user group.
// The gcid is the Global Call ID. This command enables the Global Call ID in every outbound leg of the call. You want this because every time your call hits a new call leg, the Call ID is changed. This will give you a consistent Call ID.
clid substitute name
// This allows you to put a display name field in the Remote-Party-ID and From headers. The Calling Number is substituted for the Display Name field. Source
// This enters the sip specific configurations
bind all source-interface gigabitethernet 0/0
// This will bind our SIP with our CUBE interface. By default all interfaces will be enabled for SIP, which means someone malicious could exploit the SIP ports on a different interface without this command.
// These allow SIP headers, errors, and midcall-signaling to pass through during a call.
// This forces early-offer messages on every invite message with SDP information.
// Enables routing calls based on URI’s.
Now we have a CUBE! Cool, right? Well, curb your excitement, because we still have to add more configurations to this bad boy and to our CUCM before we can start making phone calls.
VoIP – Voice over Internet Protocol. This is the term used to describe telephony traversal over an IP network.
CUBE – Cisco Unified Border Element. This is the gateway used to connect voice and video across two or more VoIP networks.
SIP – Session Initiation Protocol. Standardized by the Internet Engineering Task Force (IETF) and published in Request for Comment (RFC) 3621. This protocol is used for signaling two or more participant devices.
SDP – Session Description Protocol. Also standardized by the IETF and published in RFC 4566, SDP messages describe the multimedia session, such as the type of media, codecs used, and more.
URI – Uniform Resource Identifier. Once again, an IETF standard in RFC 7320. This is an address used in SIP messages to identify a destination, formatted similar to an email address in email@example.com format, or user@ipaddress format.
SIP Channel – A SIP Channel is a single call path. Only a single inbound or outbound call can occupy a single SIP channel.
SIP Trunk – A SIP Trunk is a collection of SIP channels provided by your ITSP over a single connection.
ITSP – Internet Telephony Service Provider. This would be your Charters, ATTs, and Verizons of the world. Your ITSP is who delivers your SIP trunk to you. This could be via an online registrar or a physical NIU (network interface unit) connect at your point of demarcation in your business.