This is the first part of my Cisco voip basics series. ( Parts 2, 3 & 4 ) VOIP is obviously becoming a large part of networks, even now part of your CCNP requirements are basic voip knowledge. Recently I have been setting up Cisco Call Manager Express for my home / home office and I figured a short VOIP series would benefit those of you who have never had to deal with setting up a PBX or VOIP system. While I’m not going to delve into the nitty gritty details of voip ( since you could dedicate an entire blog to it ) I will try to point you in the right direction for setting up CME on your own.
Obviously setting up a voip lab requires some specific equipment. I’m not going to tell you to go out and buy a rather expensive 2800 series ISR, but you can if you so choose. My entire voip setup at home consists of 2x Cisco 1760-Vs ( the -V includes a Packet Voice DSP Module (PVDM) ), a Cisco 7960g Phone, 2x analog phones ( I got mine from Goodwill for $2 each ), and some Voice Interface Cards (VICs).
So, when you’re dealing with voice cards, you’ll need a router that supports them, or a NM card that does. The 1760 has 4 VIC slots, 2 of which can be used for WIC / VIC. There are two types of voice cards that we need to concern ourselves with.
- FXO — Used to connect to a line with dial tone. ie the telco
- FXS — Used to supply dial tone to an analog device. ie house phone
Everything I purchased I picked up off of eBay. You’ll want to find a 1760 that comes with a copy of CME, or hopefully you’ll have a copy you can use for your lab from somewhere else… You’re also going to want at least 2 FXS cards and one FXO card. You will also want to make sure that the IP phone you select comes with a power cord (unless you have a POE switch), and has the SCCP firmware installed (if it has SIP, you’ll need to mess around with finding the SCCP firmware and getting it on the phone). Here are the currently prices for the equipment that I used in my lab.
- Cisco 1760-V, 128M / 64F, PVDM-12 running an ipvoice IOS (~$110 each)
- Cisco VIC-2FXO-M1, the -m1 supports caller id in the US (~$50 each)
- Cisco VIC-2FXS (~$55 each)
- Cisco 7960g IP Phone, with power cord (~$60)
Our first (very) basic lab
Ok, lets go over the basics of setting up a voice call between two FXS ports. In this example were going to setup a call between voice-port 0/0 (using number 4040) and voice-port 1/0 (using 4140).
! dial-peer voice 100 pots destination-pattern 4040 port 0/0 ! dial-peer voice 101 pots destination-pattern 4140 port 1/0 !
The dial-peer tag number (100 and 101 on the above examples) is arbitrary number used to identify the dial peer. Some people match these to the destination patterns. As for the destination pattern, there are several wildcards you can use for matching. Why? Lets say you have two or three offices you wish to tie together, you could use destination patterns of 1…, 2…, and 3… to match one of the offices and forward the call to that voice gateway.
Wildcard Symbols Used in Destination Patterns
- . Indicates a single-digit placeholder. For example, 555…. matches any dialed string beginning with 555, plus at least four additional digits.
-  Indicates a range of digits. A consecutive range indicated with a hyphen (-), or a nonconsecutive range with a comma (,). Hyphens and commas can be used in combination ie [5-7,9].
Note Only single-digit ranges are supported. ie [98-102] is invalid.
- () Indicates a pattern; for example, 408(555). It is used in conjunction with the symbol ?, %, or +.
- ? Indicates that the preceding digit occurred zero or one time. Enter ctrl-v before entering ? from your keyboard.
- % Indicates that the preceding digit occurred zero or more times. This functions the same as the “*” used in regular expression.
- + Indicates that the preceding digit occurred one or more times.
- T Indicates the interdigit timeout. The router pauses to collect additional dialed digits.
In addition to wildcard characters, the following characters can be used in the destination pattern.
- Asterisk (*) and pound sign (#)—These characters on standard touch-tone dial pads can be used anywhere in the pattern. They can be used as the leading character (for example, *650), except on the Cisco 3600 series.
- Dollar sign ($)—Disables variable-length matching. It must be used at the end of the dial string.
- Circumflex symbol (^)—When used within brackets, allows you to eliminate a digit from consideration for dial peer matching purposes. For example, a destination pattern including [^7] would not match any string beginning with 7.
In the next lab, we’re going to configure both routers on an ethernet segment to simulate multiple offices, each router should have an a VIC-2FXS installed.
! Router 1 ! interface FastEthernet 0/0 ip address 10.1.0.1 255.255.255.0 ! dial-peer voice 100 pots destination-pattern 4040 port 0/0 ! dial-peer voice 101 voip session target ipv4:10.1.0.2 destination-pattern 2.... ! ! Router 2 ! interface FastEthernet 0/0 ip address 10.1.0.2 255.255.255.0 ! dial-peer voice 100 pots destination-pattern 2020 port 0/0 ! dial-peer voice 101 pots destination-pattern 2120 port 1/0 ! dial-peer voice 200 voip session target ipv4:10.1.0.1 destination-pattern 4.... !
When you dial extension 2020 from extension 4040 on Router 1, the destination patter 2…. will match. The router will forward and encode your call over the Ethernet segment to the other voice gateway. If you didn’t have any issues with the first lab, this one should be a piece of cake.
Some show commands to try out
- show dial-peer voice summary
- show voice port (summary)
- show voice call summary
That wraps up part one. If you have any questions, or if there is something you would like me to go over more thoroughly please feel free to leave a comment below.
Network engineer currently servicing the enterprise data center market. I started working on networks in the ’90s and still feel like that was just a few years ago. Jack of all trades, master of none; I love to learn about everything. Feel free to ask me about photography, woodworking, nhra, watches, or even networking! — For feedback, please leave a comment on the article in question, and I’ll gladly moderate it several weeks later. For everything else including fan mail or death threats, contact me via twitter.