Cisco CallManager + SIP + DIDWW.com = Success

It's been 10 days or so since I've written.  I don't want to be that guy who has to say something every day, so, thanks for not giving up on me 🙂

LifeChurch.tv is a Cisco CallManager shop.  We have been for 5+ years now beginning on the CCM 3.x train, and now currently running v6.x and we love it!  As ONE Church in multiple locations we utilize voice over IP to communicate between all of our campuses.

When we launched our Hendersonville, Tennessee campus, we brought them online using SIP service from bandwidth.com and it has worked well.  We have 5 DIDs and all of their incoming/outgoing calls run through our SIP Gateway to the Bandwidth.com service  I should probably blog about that setup sometime too.

Recently, we purchased a group of about 10 DIDs from didww.com.  We have one number from the US and the rest are International numbers.  Unlike bandwidth.com, the didww.com solution is INCOMING ONLY which is fine, but different of course. We wanted to tie those into our CallManager, but the project has been put on the back burner for a while.  We did simple forwarding of two of those numbers to cell phones, but that's not a scalable solution for sure.

So, just last night we got this working.  Here are some details that hopefully help someone else.

I'll start with the Cisco CallManager GUI setup.  Remember, the screenshots below are on v6.x of CCM.  I'm not going to get into the specifics of Cisco CCM terminology.  If you are implementing this, then you should be familiar with these terms and the what/when/why.

First of all, create the Calling Search Space… Call Routing -> Class of Control -> Calling Search Space

Picture 7

We created one called "Incoming Trunk" – Because, well, it made sense.  We added all the appropriate Partitions that were relevant for us.  Yours will be different of course.   Click Save.

Picture 10

Now it's time to make a Device Pool for the SIP Trunks… System -> Device Pool

Picture 11

We created a Device Pool cleverly named DIDWW-Pool and chose the options that were relevant to us including the Incoming Trunk CSS that was created above.  Click Save.

Picture 12

Next, we created a SIP Trunk Security Profile… System -> Security Profile -> Sip Trunk Security Profile

Picture 8

Our Profile was cleverly named DIDWW Trunk Profile.  Choose the relevant options.  Click Save.

Picture 13

Okay, prep-work done.  Now it's time to create some SIP Trunks.  DIDWW publishes their list of the SIP Trunk IP Addresses here, so make sure you get that.  Create your trunks… Device -> Trunk

Picture 6

Create a SIP Trunk for every IP Address from the DIDWW list.  We created ours with the country naming convention – DIDWW_US (US1, US2, etc.), DIDWW_UK (UK1, UK2, etc.), DIDWW_ME (ME1, ME2, etc.)

Here are three screenshots with details.  Remember, repeat this for all DIDWW SIP Trunk IP Addresses

Picture 14  Picture 15 Picture 16

Alrighty, you're done with Cisco CallManager.  Your SIP Trunks are ready.

Let's go to DIDWW.com and figure out what to do there.  Login with your Account and go to Mapping -> Custom -> Add Custom Server

Picture 17

Create your Custom SIP Server Mapping pointing to the IP Address of your SIP Gateway – for us, that's a Cisco 3725 router running the "ipvoice-ivs" IOS revision.  Choose your settings and click Add.

Picture 19

Great, now you have a SIP Gateway configured.  Time to point your DIDs to that Gateway.

Picture 20

That's it with DIDWW.com – now off to make sure the Cisco Gateway is configured properly.

First of all, you want to make sure the voip service is activated on your gateway.  For our Cisco 3725, this used the "voice service voip" commands in the global config.

voice service voip
 allow-connections h323 to sip
 allow-connections sip to h323
 allow-connections sip to sip
h323
 ip circuit max-calls 1000
 ip circuit default only

Next, define the codecs to be used.  On all of our voice routers, we have the same voice class.

voice class codec 99
 codec preference 1 g711ulaw
 codec preference 2 g729br8
 codec preference 3 g729r8

Next, you want to define a translation rule.  That is, when incoming calls hit your gateway, where do you want to translate them?  For this purpose, I want incoming calls to our New York DID above to go straight to extension 5433 (which spells "life" incidentally) and be answered by our awesome receptionist team.

voice translation-rule 2
 rule 1 /^.*2124613640/ /5433/

You can now test that like this

test voice translation-rule 2 2124613640 and you'll get responses like this which let you know it works

Picture 21

Activate your translation-rule with a translation profile

voice translation-profile DIDWW_Incoming
 translate called 2

Great, now it's time to create your dial-peer – the part that actually handles the call

dial-peer voice 101 voip
 description Incoming SIP from DIDWW.com
 translation-profile incoming DIDWW_Incoming
 service session
 voice-class codec 99
 session protocol sipv2
 session transport udp
 incoming called-number .
 dtmf-relay rtp-nte digit-drop
 no vad

Since, you're translating to 5433, you want to make sure there's also a dial-peer that knows how to get to extension 5433 on your PBX

dial-peer voice 1 voip
 preference 1
 destination-pattern 5…
 progress_ind setup enable 3
 progress_ind connect enable 8
 session target ipv4:IP.OF.YOUR.PBX
 dtmf-relay rtp-nte h245-alphanumeric
 codec g711ulaw

That's it.

You created your Trunks on Cisco CallManager

You created your Mapping on DIDWW.com

You created your translations and dial-peers on your SIP Gateway (Cisco router)

Dial your DID, and watch the magic happen!  Hooray!

UPDATED 12/18/2008 – 9:50PM EST
After further review and discussion with an amazing engineer, much of the Cisco CallManager setup above is unnecessary.  Further details here.

2 thoughts on “Cisco CallManager + SIP + DIDWW.com = Success

  1. Hi Daryl, what a terrific Web Site! I am so happy to find it. You do a fantastic job of keeping people informed in a fun way. Our office is in the discovery phase and trying to decide between voicemail/Unified Messaging on a Cisco Unity 8.5 or Exchange 2010. We have several versions of Unity now, from Express, to 7.0. We have no idea what Exchange strengths and weaknesses are. Can you tell me which system you prefer for users and administrators? We have 25 offices throughout the US and Canada, and approximately 1000 users. Thanks for any input you can provide.

  2. Hello,

    I have Cisco CME 3825, I have Created the SIP trunk on DIDWW.com , can you please send me the Command Line configuration on the CME. I don’t have unity Express.

Comments are closed.