Saturday, May 31, 2014
Example CME SIP Trunk configuration for Bandwidth.com
I recently helped a friend move his Cisco 2811 from analog lines to a SIP trunk through Bandwidth.com.
This was my first time dealing with a VOIP trunk that I didn't control both ends of, and my first time dealing with Bandwidth.com. I didn't think it would be all that difficult -- After all, I can't be their first customer to use Cisco gear, and there's bound to be lots of examples of how to do this that I can just Google up... right?
Well, it turns out that there wasn't much information available There was much more trial-and-error involved than I anticipated.
Below the "read more" link is the result of that trial-and-error, for anyone stuck in the same situation.
Bandwidth.com's support forums have only a single thread about getting their service to work with Cisco Call Manager Express. It also features a rather intimidating disclaimer:
Note: Bandwidth.com does not provide support for these configurations and they are not guaranteed to work. The above config is also very old and possibly out of date. It would be best to contact the PBX vendor - Cisco - for help with getting this to work with the bandwidth.com service.
Bandwidth.com wasn't kidding about not helping to configure your router. Their tech support people were polite and knew plenty about SIP, but the only Cisco specific information I was able to get out of them was a link to that forum thread.
The suggested remedy of contacting Cisco for help was also a non-starter, as the maintenance contract on the router we were using was long expired.
And now for a disclaimer of my own: The configuration below worked for me, but may not be correct or complete for your application. IP addresses and phone numbers have been changed to protect the innocent. This information is worth exactly what you paid for it, and I do not intend to provide free tech support for it or even answer any questions about it.
First define some voice service parameters. The "no supplementary-service sip" commands are necessary to get transfers, call-forwarding, and voicemail to work with Bandwidth.com.
!
voice service voip
allow-connections sip to sip
no supplementary-service sip moved-temporarily
no supplementary-service sip refer
fax protocol cisco
sip
bind control source-interface FastEthernet0/1
bind media source-interface FastEthernet0/1
!
!
Define codecs to negotiate. Calls to some area codes did not work until I added the g729br8 codec.
!
voice class codec 1
codec preference 1 g711ulaw
codec preference 2 g729r8
codec preference 3 g711alaw
codec preference 4 g729br8
!
!
!
Rule 2 translates outbound calls before they are sent to the SIP trunk. The local area code is 906.
!
voice translation-rule 2
rule 1 /^9(.......)$/ /+1906/
rule 2 /^9(..........)$/ /+11/
rule 3 /^9(.*)$/ /+1/
rule 4 /^9(...........)$/ /+1/
rule 5 /^9011(.*)$/ /+1/
Rule 3 translates inbound SIP calls to local 3-digit extensions. Ext 380 is the CUE AutoAttendant, 400 is an extension or hunt group.
!
voice translation-rule 3
rule 1 /+19065551212/ /380/
rule 2 /+19065551213/ /400/
rule 3 /+19065551214/ /400/
rule 4 /+18005551212/ /380/
Apply the translation rules to translation profiles
!
voice translation-profile SIP-IN
translate called 3
!
voice translation-profile SIPCALL
translate called 2
!
You are going to need a transcoder, so define dspfarm services
!
voice-card 0
dspfarm
dsp services dspfarm
!
!
!
There is nothing special about the interfaces. For simplicity, I am not showing any NAT.
192.168.10.1 is the local LAN
192.168.10.2 is the Cisco Unity Express (CUE) voicemail
10.10.100.88 is the "outside" WAN interface that connects to Bandwidth.com
!
interface FastEthernet0/0
description $FW_INSIDE$$ETH-LAN$$INTF-INFO-FE 0/0$
ip address 192.168.10.1 255.255.255.0
no ip redirects
no ip unreachables
ip virtual-reassembly
duplex auto
speed auto
!
interface Service-Engine0/0
ip unnumbered FastEthernet0/0
no ip redirects
no ip unreachables
ip flow ingress
service-module ip address 192.168.10.2 255.255.255.0
service-module ip default-gateway 192.168.10.1
!
!
interface FastEthernet0/1
ip address 10.10.100.88 255.255.255.0
ip access-group WAN-SIP in
ip verify unicast reverse-path
no ip redirects
no ip unreachables
no ip proxy-arp
ip virtual-reassembly
duplex auto
speed auto
no cdp enable
service-policy output SDM-Pol-Ethernet1
!
Some basic static routes
ip route 0.0.0.0 0.0.0.0 10.10.100.1
ip route 192.168.10.2 255.255.255.255 Service-Engine0/0
!
!
A simple WAN access-list that allows SIP connections from the Bandwidth.com peers, and RTP (UDP >1024)
The RTP traffic can come from anywhere, not just from the SIP peers.
!
ip access-list extended WAN-SIP
permit tcp host 216.82.224.202 host 10.10.100.88 range 5060 5061
permit tcp host 216.82.225.202 host 10.10.100.88 range 5060 5061
permit udp host 216.82.224.202 host 10.10.100.88 range 5060 5061
permit udp host 216.82.225.202 host 10.10.100.88 range 5060 5061
permit ip host 75.151.219.185 host 10.10.100.88
deny tcp any any eq telnet
deny tcp any any eq 22
permit udp any host 10.10.100.88 gt 1024
deny ip any any log
!
Define SCCP
!
sccp local FastEthernet0/0
sccp ccm 192.168.10.1 identifier 1 priority 1 version 3.1
sccp
!
Here is where the transcoder is bound to SCCP
!
sccp ccm group 1
associate ccm 1 priority 1
associate profile 1 register XCODER
And here is the transcoder definition. The 4 codecs here worked for me.
!
dspfarm profile 1 transcode
codec g711ulaw
codec g711alaw
codec g729abr8
codec g729r8
maximum sessions 8
associate application SCCP
!
Dial-peer for all the CUE extensions
!
dial-peer voice 380 voip
destination-pattern 38.
b2bua
session protocol sipv2
session target ipv4:192.168.10.2
dtmf-relay rtp-nte
codec g711ulaw
no vad
!
Two dial-peers for outgoing SIP calls. One for each SIP peer IP address.
!
dial-peer voice 101 voip
description ** Outgoing call to SIP trunk **
translation-profile outgoing SIPCALL
destination-pattern 9.T
voice-class codec 1
voice-class sip dtmf-relay force rtp-nte
session protocol sipv2
session target ipv4:216.82.224.202
dtmf-relay rtp-nte
ip qos dscp cs5 media
ip qos dscp cs4 signaling
clid network-number 9065551212
no vad
!
dial-peer voice 102 voip
description ** Outgoing call to SIP trunk **
translation-profile outgoing SIPCALL
destination-pattern 9.T
voice-class codec 1
voice-class sip dtmf-relay force rtp-nte
session protocol sipv2
session target ipv4:216.82.225.202
dtmf-relay rtp-nte
ip qos dscp cs5 media
ip qos dscp cs4 signaling
clid network-number 9065551212
no vad
!
Two dial-peers for incoming SIP calls. One for each peer address.
!
dial-peer voice 201 voip
description ** Incoming call from SIP Trunk ***
translation-profile incoming SIP-IN
b2bua
voice-class codec 1
voice-class sip dtmf-relay force rtp-nte
session protocol sipv2
session target ipv4:216.82.224.202
incoming called-number .%
dtmf-relay rtp-nte
ip qos dscp cs5 media
ip qos dscp cs4 signaling
no vad
!
dial-peer voice 202 voip
description ** Incoming call from SIP Trunk ***
translation-profile incoming SIP-IN
b2bua
voice-class codec 1
voice-class sip dtmf-relay force rtp-nte
session protocol sipv2
session target ipv4:216.82.225.202
incoming called-number .%
dtmf-relay rtp-nte
ip qos dscp cs5 media
ip qos dscp cs4 signaling
no vad
!
Add the lines below to your "telephony-service" config to make the transcoder work.
!
telephony-service
sdspfarm units 1
sdspfarm transcode sessions 8
sdspfarm tag 1 XCODER
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment