Hi, I’ve been browsing these forums for a little while. I’m new to freepbx / Asterisk but have some experience with Cisco VOIP.
I am confused and going around in circles a bit, trying to translate knowledge of Cisco into the freepbx.
To put it simply, at the moment I have the following:
CUCM 2-node cluster <-> Cisco CUBE <-> SIP ITSP
And I am trying to achieve the following (basically swapping the CUBE for freepbx):
CUCM 2-node cluster <-> Freepbx <-> SIP ITSP
freepbx will not register any phones / endpoints at all.
I have inbound and outbound calls working via freepbx, so from ITSP to CUCM-registered phones and from the cucm phones to ITSP. But I am a bit confused about the trunk/inbound/outbound routes.
Freepbx does not register any endpoints here, it’s just allowing CUCM to send and receive calls from the ITSP.
Firstly I configured 3 x trunks on freepbx:
- SIP trunk to the ITSP
2 I then configured 2 x SIP trunks to each cucm node.
After that I configured 2 x outbound routes. 1 to the ITSP with a string of XXXXXXXXXXX to match a 11-digit number. A 2nd outbound route, pointing to the CUCM trunks matching 5XXX for the internal 4-digit extensions.
I was then able to call from a cucm phone to a 11-digit number via freepbx.
So first question, does creating the outbound routes also then match as inbound call legs? Or is there a ‘default’ call leg?
Inbound calls from my mobile phone were not working at this point as expected. So I then created an inbound route, matching the DID of my ITSP phone number. The destination is set to “trunks” and I set the main active node of CUCM as the destination trunk (in Cisco, the active member isn;t normally the primary node fyi).
After doing this, inbound calls are now working which is great.
The next issue is that if the active node goes down for any reason, freepbx is configured only to point to that node so will no longer be able to route calls to the cucm cluster which may be up and working. I have googled around for this scenario and is the only way to achieve resilient trunking by using “ring groups” ?
For digit manipulation I am doing this in a few places and it is a bit confusing.
First place is on the trunk towards CUCM. On there I am matching the DID and replacing with a 4-digit extension which is registered to CUCM. The call goes through as expected. I am using the prefix and prepend fields for that.
In contrast, for calls towards the ITSP I am using the outbound route to remove the trunk code and leave the dialed number. Basically I am stripping the leading dialed digit and leaving the rest.
My only other question is for the digit matching for the outbound calls. At the moment I am using 11 X’s which only matches 11-digit numbers. I think that I would like to match any number here. Because the call will come in over a trunk from cucm, I shouldnt need to wait for an interdigit timeout (because the call is not accepted from an endpoint). How would I go about this? Could I simply use a dot ‘.’ in the match pattern? Or would it be better to use .X or X. (notice the position of the dot). Reason for this would be so at least a dialled number is matched but looking at the “dialed number manipulation rules” config page it says the . matches one or more and the X matches any single digit.
Thanks in advance and excuse the questions. If there’s some info contained in a document that I have obviously missed / not found, then please post here? I am happy to go away and read some docs.
Lastly, when trying to find out how to set the inbound trunk to route towards two destination internal trunks, I found some posts suggesting a SIP proxy might be more useful, given the above should I be looking at a SIP proxy instead?
Thanks
Tony