Cisco CM --> Asterisk, comments on plan needed

This is my introduction and first questions to the forum. I’m sysadmin for a small art college, current fleet of Cisco 7940/7960 phones is approx. 120. We run CCM & Unity on fairly old hardware, our gateway is a Cisco 2811 w/2 WICs & 2 ethernet ports, PRI circuits from same carrier. It’s time to upgrade and I tire of CCM administration and license costs. But our 2811 will remain.

My plan is to do the following so as to have a small number of phones running a secondary PBX/v-mail system on Asterisk so I can do proof of concept and gradually migrate phones & voice mail accounts to the Asterisk system. We have an existing VMware cluster but I will most likely run the Asterisk server on bare metal with voice mail running on a VM.

The current phone system runs on two VLANs; one for desk phones’ VOIP traffic, the other for the CCM twins and the Unity server. I’ve built an additional VLAN for the Asterisk server and would like to run this additional VLAN on one of the ethernet ports of the 2811 while the production system is running.

  1. Since both PRI circuits carry all our calls, is it possible for the 2811 to send some DIDs through one ethernet interface and some through the other?

  2. With a fleet of phones and voice mail accounts this small, would running Asterisk and the voice mail server as VMs work? I don’t see our fleet of phones growing, most likely it will shrink somewhat over the next two years.

  3. Can Asterisk take bulk new account creation data from some sort of export from CCM? If so, is there an ActiveDirectory component?

Thanks for your time!

Hi there,

1 - Depends on a few things. If you use MGCP to connect that gateway to the Call Manager then you’ll need to do your configuration on the CUCM, but if you have the 2811 set up as H323/SIP, then you’ll have local dial peers on that gateway. In the latter case, set the local dial peers to be more specific and point to the Asterisk IP address. (I’d recommend using SIP, btw.) If the 2811 is directly connected to this other subnet, then it will route all traffic out the other interface. There would still be a more generic pattern in a dial peer that would route calls to the CUCM. So… to “migrate”, you would just put in a new peer with a more specific/exact destination pattern match and point it to the new server. All other calls would still go to the CUCM.

If you are using MGCP, then I’ll admit I’m less familiar, but I’m wagering you’ll just need to create new route patterns on the call manager that point to this Asterisk server. The media will set up directly, still using your dedicated link.

While I’m on it, don’t forget that you’ll still need some sort of trunk between the CUCM and Asterisk to make sure a local dial plan works seamlessly. (i.e. 3 or 4 digit dialing, etc.) In your case, I would create specific patterns for “migrated” numbers as route patterns on the CUCM and point to the Asterisk box. On Asterisk I would do the same for “non migrated” numbers. That would prevent loops; if you are careful, though, you could try using catch-all patterns to do that, just make sure the two systems can never route a call back to the source of the call.

Finally, note that if you figure out the local dial plan, calls from that 2811 will also likely start completing to the Asterisk based extensions via the CUCM.

2 - I would expect so, but I would recommend following some of VMware’s “realtime” requirements to play it safe. (i.e. try not to oversubscribe the CPUs and memory on the host running this application; “nail up” a certain amount of CPU time for the guest; etc.) We run an Asterisk based call center and a variety of other Asterisk applications (and Cisco as well) on a dedicated “voice” VMware cluster and have no issues. Btw, Cisco has some info on virtualizing voice applications that essentially says the same thing as the VMware articles. Look on Cisco’s download site for voice product OVAs; they can give you a sense of what sort of virtual hardware is “super-safe” given a certain workload.

3 - Not sure. I assume you are looking for a bulk import tool for FreePBX. You can use the AXL SQL Toolkit to grab just about anything from the CUCM with a very convoluted SQL query, but I have not experimented with FreePBX all that much to know if it can easily do a bulk import.

Hope this helps!


  1. Yes, we’re using MGCP to get calls to the CUCM. Since using SIP makes more sense from a scalability standpoint, maybe changing the current production environment from SCCP to SIP first makes sense. What do you think?

Our current dial plan is DID-based. Desk phone extension numbers are the XXXX of the 414.847.XXXX flavor. Changing the current CUCM to SIP as a first step towards migration would make the config change you mention on the CUCM a moot point (if I’m understanding your explanation correctly), which to me is a good thing. There would also have to be the capability of calling/transfering calls from CUCM extension to Asterisk extension, which I imagine the 2811 can handle with a well-written dial plan and call routes.

And if you can direct me to a good site for SCCP->SIP migration that would be much appreciated.

  1. Our VM cluster is healthy so setting aside enough resources isn’t a problem. In our situation more virtualized systems is best. We used to be heavy on Xserves and since Apple left us in the ditch, causing the migration to either open source or Windows, that is what pushed us from VM experimentation to VM production. Apple dumping us in the ditch is the best thing that ever happened to us.

As for our telephone usage, in the six years I’ve worked for the college I have never seen any calls go out or in on the 2nd PRI circuit. Maybe I should have the telephone provider route different numbers to different PRI circuits while I migrate. :wink:

  1. That is good news indeed.

Thank you! Yes, your thoughts have been VERY helpful. At least I know my plan is workable.

If anything else comes to mind, please do share your thoughts.

1 - I would migrate to SIP simply because it’s more commonly used and makes just this type of transition easy. But, switching a Cisco gateway away from MGCP puts a lot of new configuration on the router. Cisco dial peers (for the uninitiated) can be quite a challenge because the logic is substantially different from the CUCM you are used to; in some cases just straight up backwards, in fact.

So in short, yes I would go that way, but don’t underestimate the added complexity if you aren’t already familiar with Cisco IOS voice implementation.

I would point your CUCM directly to Asterisk and Asterisk directly to the CUCM for XXXX calls, transfers, conferences, etc. Involving the 2811 wouldn’t be necessary; it’s only for DID and outbound, right?

I’ve not come across anything that could help with the SCCP to SIP migration, but I’ve also not really needed it. We’ve been H323/SIP from the start in my organization.

2 - Regarding PRIs, you could also consider SIP trunking once you switch your core over to SIP. Could save you a ton.

If you’ll allow me to make a suggestion:

Asterisk has a number of pretty nice applications, one of which is a conference bridge. Before you get too deep into migrating endpoints and fiddling with core dial plan, start by setting up a bridge for your users. Point a SIP trunk from CUCM to Asterisk, set a free XXXX DID to point to the trunk, and then set up Asterisk to dump that call into a bridge. You’ll be able to call the bridge from both inside and out, and the changes on the existing CUCM should be minimal. The 2811 shouldn’t have to change at all.

That’s how I started with all this, and I guarantee you’ll learn a ton about how to manipulate your dial plan.

Later you can start using the same SIP trunk and logic to migrate extensions. Once the CUCM is “empty”, you could migrate the 2811 last.

Good Luck!