CUCM 8.5 and Trixbox as a SIP Proxy

Hi,

I’d like to forward all my inbound calls to my Cisco Call Manager 8.5, I followed this "Tutorial"
http://www.freepbx.org/news/2009-06-07/cisco-unified-cm-6-1-to-asterisk-and-freepbx-sip-trunks-powered-by-bandwidth-com

But right now I can do outbound call without any problem from my Cucm, to my Asterisk then it goes to my SIP provider (Voip.ms). I can’t receive any call to my cucm. I tried to add an inbound route to one of my asterisk extensions and it work fine…

I can call from any asterisk extension to my cucm without any problems…

If I call my DID with my cellphone I can’t see anything in the asterisk console (asterisk -r), but if I add a route there is an output…

So if someone could help me it would be very cool of you guys

Thanks you!

Actually this is going to be a bit trickier.

Do you have the ability to add a SIP username in the CUCM?

Since you have the trunk defined in the from-pstn context it can’t make outbound calls, only from-internal users can make outbound calls.

It’s a bit of a catch-22 because the inbound route module requires from-pstn context.

This is why there is an option to create a second peer in the trunk page to separate inbound and outbound paths. The problem is you are only using IP address as the authentication so you can’t have two identical peers.

I think if I ever figure out how it work I’ll make a tutorial somewhere lol

This is my problem, I can’t use SIP Authentication with CUCM… Cisco want us to buys all kind of appliances to do special thing, if I want auth I’ll have to buy a router that support CUBE. I don’t want to pay over a thousand $ for home testing, haha. My little 1811 Is more than enough for me :stuck_out_tongue:

I could use 2 different Asterisk, one for inbound the other one for outbound? They are running on VM’s on my ESX so that would not be a problem. And Voipms has like 4 servers close to me, so my ping would be okay on both.

I think it’s starting to work! Well my asterisk is trying to forward the call to cucm but cucm don’t accept it… lol So I guess it a problem with cucm, I’ll try some settings.

Let’s say my cellphone number is is 450-555-5555
and My DID number from voip.ms is 450-888-8888

When I try to call my DID from my cellphone I get this :

 -- Executing [4508888888@from-trunk:1] NoOp("SIP/voipms-00000026", "Catch-All DID Match - Found 4508888888 - You probably want a DID for this.") in new stack
    -- Executing [4508888888@from-trunk:2] Goto("SIP/voipms-00000026", "ext-did,s,1") in new stack
    -- Goto (ext-did,s,1)
    -- Executing [s@ext-did:1] Set("SIP/voipms-00000026", "__FROM_DID=s") in new stack
    -- Executing [s@ext-did:2] Gosub("SIP/voipms-00000026", "app-blacklist-check,s,1") in new stack
    -- Executing [s@app-blacklist-check:1] GotoIf("SIP/voipms-00000026", "0?blacklisted") in new stack
    -- Executing [s@app-blacklist-check:2] Set("SIP/voipms-00000026", "CALLED_BLACKLIST=1") in new stack
    -- Executing [s@app-blacklist-check:3] Return("SIP/voipms-00000026", "") in new stack
    -- Executing [s@ext-did:3] ExecIf("SIP/voipms-00000026", "0 ?Set(CALLERID(name)=4505555555)") in new stack
    -- Executing [s@ext-did:4] Set("SIP/voipms-00000026", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [s@ext-did:5] Set("SIP/voipms-00000026", "CALLERPRES()=allowed_not_screened") in new stack
    -- Executing [s@ext-did:6] Goto("SIP/voipms-00000026", "ext-trunk,2,1") in new stack
    -- Goto (ext-trunk,2,1)
    -- Executing [2@ext-trunk:1] Set("SIP/voipms-00000026", "TDIAL_STRING=SIP/cucm01") in new stack
    -- Executing [2@ext-trunk:2] Set("SIP/voipms-00000026", "DIAL_TRUNK=2") in new stack
    -- Executing [2@ext-trunk:3] Goto("SIP/voipms-00000026", "ext-trunk,tdial,1") in new stack
    -- Goto (ext-trunk,tdial,1)
    -- Executing [tdial@ext-trunk:1] Set("SIP/voipms-00000026", "OUTBOUND_GROUP=OUT_2") in new stack
    -- Executing [tdial@ext-trunk:2] GotoIf("SIP/voipms-00000026", "1?nomax") in new stack
    -- Goto (ext-trunk,tdial,4)
    -- Executing [tdial@ext-trunk:4] ExecIf("SIP/voipms-00000026", "1?Set(CALLERPRES()=allowed_not_screened)") in new stack
    -- Executing [tdial@ext-trunk:5] Set("SIP/voipms-00000026", "DIAL_NUMBER=s") in new stack
    -- Executing [tdial@ext-trunk:6] GosubIf("SIP/voipms-00000026", "0?sub-flp-2,s,1") in new stack
    -- Executing [tdial@ext-trunk:7] Set("SIP/voipms-00000026", "OUTNUM=s") in new stack
    -- Executing [tdial@ext-trunk:8] Dial("SIP/voipms-00000026", "SIP/cucm01/s,300,") in new stack
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Called cucm01/s
    -- SIP/cucm01-00000027 is circuit-busy
  == Everyone is busy/congested at this time (1:0/1/0)
    -- Executing [tdial@ext-trunk:9] Set("SIP/voipms-00000026", "CALLERID(number)=4505555555") in new stack
    -- Executing [tdial@ext-trunk:10] Set("SIP/voipms-00000026", "CALLERID(name)=Rogers Wilcot") in new stack
    -- Executing [tdial@ext-trunk:11] Hangup("SIP/voipms-00000026", "") in new stack
  == Spawn extension (ext-trunk, tdial, 11) exited non-zero on 'SIP/voipms-00000026'
  == Manager 'admin' logged on from 127.0.0.1
  == Manager 'admin' logged off from 127.0.0.1
  == Manager 'admin' logged on from 127.0.0.1
  == Manager 'admin' logged off from 127.0.0.1
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Executing [4508888888@from-trunk:1] NoOp("SIP/voipms-00000028", "Catch-All DID Match - Found 4508888888 - You probably want a DID for this.") in new stack
    -- Executing [4508888888@from-trunk:2] Goto("SIP/voipms-00000028", "ext-did,s,1") in new stack
    -- Goto (ext-did,s,1)
    -- Executing [s@ext-did:1] Set("SIP/voipms-00000028", "__FROM_DID=s") in new stack
    -- Executing [s@ext-did:2] Gosub("SIP/voipms-00000028", "app-blacklist-check,s,1") in new stack
    -- Executing [s@app-blacklist-check:1] GotoIf("SIP/voipms-00000028", "0?blacklisted") in new stack
    -- Executing [s@app-blacklist-check:2] Set("SIP/voipms-00000028", "CALLED_BLACKLIST=1") in new stack
    -- Executing [s@app-blacklist-check:3] Return("SIP/voipms-00000028", "") in new stack
    -- Executing [s@ext-did:3] ExecIf("SIP/voipms-00000028", "0 ?Set(CALLERID(name)=4505555555)") in new stack
    -- Executing [s@ext-did:4] Set("SIP/voipms-00000028", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [s@ext-did:5] Set("SIP/voipms-00000028", "CALLERPRES()=allowed_not_screened") in new stack
    -- Executing [s@ext-did:6] Goto("SIP/voipms-00000028", "ext-trunk,2,1") in new stack
    -- Goto (ext-trunk,2,1)
    -- Executing [2@ext-trunk:1] Set("SIP/voipms-00000028", "TDIAL_STRING=SIP/cucm01") in new stack
    -- Executing [2@ext-trunk:2] Set("SIP/voipms-00000028", "DIAL_TRUNK=2") in new stack
    -- Executing [2@ext-trunk:3] Goto("SIP/voipms-00000028", "ext-trunk,tdial,1") in new stack
    -- Goto (ext-trunk,tdial,1)
    -- Executing [tdial@ext-trunk:1] Set("SIP/voipms-00000028", "OUTBOUND_GROUP=OUT_2") in new stack
    -- Executing [tdial@ext-trunk:2] GotoIf("SIP/voipms-00000028", "1?nomax") in new stack
    -- Goto (ext-trunk,tdial,4)
    -- Executing [tdial@ext-trunk:4] ExecIf("SIP/voipms-00000028", "1?Set(CALLERPRES()=allowed_not_screened)") in new stack
    -- Executing [tdial@ext-trunk:5] Set("SIP/voipms-00000028", "DIAL_NUMBER=s") in new stack
    -- Executing [tdial@ext-trunk:6] GosubIf("SIP/voipms-00000028", "0?sub-flp-2,s,1") in new stack
    -- Executing [tdial@ext-trunk:7] Set("SIP/voipms-00000028", "OUTNUM=s") in new stack
    -- Executing [tdial@ext-trunk:8] Dial("SIP/voipms-00000028", "SIP/cucm01/s,300,") in new stack
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Called cucm01/s
    -- SIP/cucm01-00000029 is circuit-busy
  == Everyone is busy/congested at this time (1:0/1/0)
    -- Executing [tdial@ext-trunk:9] Set("SIP/voipms-00000028", "CALLERID(number)=4505555555") in new stack
    -- Executing [tdial@ext-trunk:10] Set("SIP/voipms-00000028", "CALLERID(name)=Rogers Wilcot") in new stack
    -- Executing [tdial@ext-trunk:11] Hangup("SIP/voipms-00000028", "") in new stack
  == Spawn extension (ext-trunk, tdial, 11) exited non-zero on 'SIP/voipms-00000028'

But now when I make a call to my provider from cucm, it won’t work. It says the number I dialed is invalid (message from My Asterisk), so I guess my outbound route is incorrect? But why a call from one of my Asterisk sip extensions (X-lite) work?

EDIT1 : Ah I just found out that Actually all my calls (even from cucm) are forwarded to my cucm (haha) So it just do a loop when I try to place a call… Will check my routes.

Thanks a lot for your time!

Hi,

Thanks for everything SkykingOH, I decided to go with AsteriskNow, and it seem to work fine. Now I just have to configure my trunks to work with cucm. And I saw that news about freepbx going to release their own distro can’t wait to see! And maybe I’ll switch when the time comes. At least updates will be more frequent than other distro.

Can you give me a little hint how to forward all incoming calls to a trunk? I updated freepbx to 2.8 (could update to 2.9beta11 if needed)

Do I just have to put This

  context=from-internal
  host=x.x.x.x or hostname
  type=friend
  insecure=port,invite

In my CUCM Trunk, or do I miss something?

Thanks!

trixbox user to work but they have not updated in almost two years so many of the new features are not included.

Elastix works but it is a very “heavy” distribution. Asterisknow is a very simple bare bones Distro. Some folks like PBXIAF, it has everything and the kitchen sink and the unique feature of downloading and building everything from source.

If you look at the FreePBX news we also have our own distro that will be arriving soon.

I would also lock the CODEC in with an:

disallow=all
allow=ulaw

Then you set the trunk as the destination of your inbound route.

For this to work your context must be from-trunk to hit the inbound routes.

Really? What asterisk disrt you sould suggest me? Before trixbox I was using Elastix but someone told me to use Trixbox and it would work but it won’t… lol

I like pretty much more Elastix than Trixbox, but do you know any other distro I could use?

Thanks!

This is the FreePBX support forum not trixbox. trixbox uses an old modified, end of live version of FreePBX that would require custom code or at a minimum custom extensions to achieve what you want.

FreePBX 2.8 and later allows you to set a trunk as the destination of an inbound route, exactly what you want to do.

I suggest you install a system based on genuine FreePBX that supports the features you need.

This is how i got it to work for TrixBox to forward calls to CUCM. Create a ring group on TrixBox with the extensions of the CUCM phones that need to receive calls. Ensure you place a # at the end of them. So if your extensions are 4 digits and begin with the number 3 type 3XXX#. The # informs TrixBox that the extension is not local to the box and thus it forwards it down the trunk according to the configured route pattern.

I am attempting to do this very project and this last bit did not help. Could you give me an overview of your setup. I have a post up about this problem here: http://www.freepbx.org/forum/freepbx/tips-and-tricks/google-voice-freepbx-cucm

Any help would be much appreciated.