This is the fourth and final part of my Cisco voip basics series. ( Parts 1, 2 & 3 ) Our goal in this series has been setting up a working voice gateway that you could use in your home office. In this post were going to cover a very specific issue. How do you ring yours FXS line(s) and your ephone-dns’s?
As it turns out, in CME, you can’t do it. I’ve looked everywhere I can think of for an answer to this and have found that CME is lacking in features. At least on the platform that I’ve been using for this tutorial. Here is what I’ve tried.
- Configure FXS as SCCP controlled port using STCAPP. This is not supported on my 1760-V for some reason, it appears to be supported on the newer ISRs.
- Configure a hunt-group in broadcast mode between the FXS and ephone-dn. I have no clue how to do this, and can’t find any docs that show examples. (All the hunt groups I see are between ephones.. not FXS ports, or even mixed between them)
- What I originally tried was just setting the same number/destination-prefix on both, this didn’t work at all. Probably obvious for anyone that does this stuff day to day..
TCL to the rescue
No, I didn’t give up. I actually found a very helpful member of the Cisco Support Community that gave me a copy of a script he had written to support exactly this. You’ll want to download a copy of the script and tftp it over to your router.
Setting the script up is done in a few stages, first we need to define the application, and the parameters we pass to it. We’re going to use 50 for my ephone-dn and 55 for the FXS port.
CME#conf t CME(config)#application CME(config-app)#service bcast flash:/bcast.tcl CME(config-app-param) param destinations 50,55
The next thing we need to do is define the dial-peer that uses the broadcast service from the script. Here, were going to use dial-peer 100 to do just that. We also need to point this towards our FXO port connected to our external phone line.
CME(config)#dial-peer voice 100 pots CME(config-dial-peer)#description broadcast hunt-group CME(config-dial-peer)#service bcast CME(config-dial-peer)#port 0/1
Thats it! Our bcast TCL script has been configured, and our router is ready to use it. But of course, we’re not quite done yet.
One thing you’ll also need to configure is Private-line automatic ringdown or PLAR. PLAR normally ensures that when a device is taken off-hook, it applies a ringing voltage to the circuit. This is where we get into the realm of things I really don’t understand, or care to research in VOIP. All I know is that setting up connection plar on my FXO port allowed my other phones to stop ringing when I answered.. The full config for my FXO looks something like this.
voice-port 0/1 trunk-group OUT supervisory disconnect dualtone mid-call supervisory answer dualtone timeouts call-disconnect 1 timeouts wait-release 1 connection plar opx 5555555555 description Vonage (home) !
Another issue with my configuration is that my FXO cards do not support Caller ID, this is the main reason that I have discontinued using my CME server until I feel the need to purchase a new FXO card. In order to support caller id, you’ll need to purchase one of the following cards VIC-2FXO-M1, VIC-2FXO-M2, or the VIC-4FXO-M1.
This is more or less the configuration that I’ve ended up with after my adventure to understand more about Cisco VOIP and setup a working phone system for my home office.
! version 12.4 service timestamps debug datetime msec service timestamps log datetime msec no service password-encryption ! hostname CME ! boot-start-marker boot-end-marker ! ! no aaa new-model clock timezone EST -5 clock summer-time EDT recurring voice-card 0 ! voice-card 1 ! ip cef ! ! no ip dhcp use vrf connected ip dhcp excluded-address 10.1.8.0 10.1.8.100 ! ip dhcp pool VOIP network 10.1.8.0 255.255.255.0 domain-name mattke.net option 150 ip 10.1.8.1 lease 7 ! ! no ip domain lookup ip domain name mattke.net ip name-server 192.168.8.8 ip name-server 126.96.36.199 multilink bundle-name authenticated ! ! trunk group OUT ! voice register dn 1 ! application service bcast flash:/bcast.tcl param destinations 50,55 ! ! archive log config hidekeys ! ! ip ssh version 1 ! ! ! ! interface FastEthernet0/0 ip address 192.168.8.9 255.255.255.0 speed auto ! interface FastEthernet0/0.2 encapsulation dot1Q 2 ip address 10.1.8.1 255.255.255.0 ! ip default-gateway 192.168.8.1 ip forward-protocol nd ! ip http server no ip http secure-server ip http path flash:gui ! tftp-server flash:/phone/7940-7960/P00308010100.bin alias P00308010100.bin tftp-server flash:/phone/7940-7960/P00308010100.sb2 alias P00308010100.sb2 tftp-server flash:/phone/7940-7960/P00308010100.sbn alias P00308010100.sbn tftp-server flash:/phone/7940-7960/P00308010100.loads alias P00308010100.loads ! control-plane ! ! ! voice-port 0/0 supervisory disconnect dualtone mid-call supervisory answer dualtone timeouts call-disconnect 1 timeouts wait-release 1 connection plar 88 description Office ! voice-port 0/1 trunk-group OUT supervisory disconnect dualtone mid-call supervisory answer dualtone timeouts call-disconnect 1 timeouts wait-release 1 connection plar opx 5555555555 description Vonage (home) ! voice-port 1/0 description Home Phone station-id name HomePhone - 55 caller-id enable ! voice-port 1/1 description not used caller-id enable ! ! ! sccp local FastEthernet0/0 sccp ! ! ! dial-peer voice 55 pots preference 1 destination-pattern 55$ port 1/0 ! dial-peer voice 1001 pots trunkgroup OUT description Long Distance destination-pattern 1?[2-9]..[2-9]...... forward-digits all ! dial-peer voice 1002 pots trunkgroup OUT description Local Calls destination-pattern .T forward-digits 7 ! dial-peer voice 1003 pots description International destination-pattern 011T port 0/0 ! dial-peer voice 100 pots description broadcast hunt-group service bcast port 0/1 ! ! telephony-service load 7960-7940 P00308010100 max-ephones 3 max-dn 24 ip source-address 10.1.8.1 port 2000 calling-number initiator service dnis dir-lookup timeouts interdigit 2 system message ............................ cnf-file location flash: cnf-file perphone max-conferences 4 gain -6 moh music-on-hold.au web admin system name admin secret 5 $1$bQT5$xxxxxxxxxxxxxxxxx dn-webedit time-webedit transfer-system full-consult directory entry 1 5555555555 name Jessi - Cell create cnf-files version-stamp 7960 Mar 02 2002 10:41:36 ! ! ephone-dn 1 number 88 label BGPGuru description Tony Mattke name Anthony R. Mattke call-forward noan 55 timeout 18 hold-alert 30 originator ! ! ephone-dn 2 number 50 label Home description mattke.net preference 1 ! ! ephone 1 description Anthony R. Mattke mac-address 0017.94CF.1E45 type 7960 button 1:1 2:2 ! ! ! line con 0 line aux 0 line vty 0 4 login local line vty 5 15 login local ! ntp master 10 ntp server 188.8.131.52 prefer end
Obviously, as always, if you have any questions please leave a comment below. I promise I’ll try my best to help you out, or at least point you in the right direction. I’m in no way a voice engineer, but I was at least able to make this work for my home office.
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.