+ sign strip in freepbx outbound routes

When a user dials from a Zoiper Softphone on their mobile when they dial a number ‘+971aaaaaaaaa’ i am getting below error.

‘+971aaaaaaaaa’ rejected because extension not found in context ‘from-internal’.

is there a way in freepbx i can strip the + sign and replace that with 00

Set the match pattern as something other than . if you don’t want to match everything.


As far as I’m concerned - there’s no time when the “+” needs to be part of the INTERNAL operation of the PBX. Strip it out before it gets into your inbound route, contact database, and caller id. There’s no way to type a “+” in most phones, so getting rid of it just makes good sense.

If your provider requires a “+” on international calls, your outbound route and trunk should add it to the outbound call.

thanks for the response. i used this option and now its working well. thank you very much

Your concerns are US-centric. The + sign has an important purpose. It says that the next digits are a country code. If you strip + without putting some other digits (in the US, maybe 011, or elsewhere, likely 00) in place, you can’t tell whether the first digits of a number are a country code or part of the national plan.

My concerns are business centric. Many people use CRM systems for making and returning calls. Requiring at least two, and perhaps four different numbers for every contact makes it hard to correlate calls and gather business data.

Until there’s a “+” on the dial keypad, I’m going to continue to advocate for removing “+” signs from numbers inside the PBX. The convention of using “00” to designate “+” is perfectly reasonably. Having the phone system manage the outbound number format is just good practice.

Now, I am in the NANP area, so you’re right, life is good for me, but I still have to manage what my outbound call numbers look like. One of my providers requires country code and the other doesn’t. In my system, all North American numbers are stored in 10-digit format through careful application of inbound DID and CID management.

Well in my experience when the LEC/Carrier is sending you in a particular format they expect those calls to be sent to them in the same format. So if they send you E.164, they expect to get E.164 from you. If this is a case of the inbound calls are in E.164 but the outbound needs to be prefix 00 (or 011) then that says to me the outbound carrier is more than likely not the same as the inbound carrier. Of course this is based on my experience in the NANP so what happens outside of that could be different. They could send origination in one format but want termination in another.

However, either one of those scenarios leans credence to @cynjut point of stripping and adding that stuff at the PBX level so that every inbound and outbound call matches properly. Because while phones do not have a direct + button many IP phones will let you flip into an edit mode to select special characters like the + or use the alpha characters for URI dialing. As well the call history will store the CID characters and if you hit the Call Back/Redial button in those histories it will just send all the characters/digits at once to the system.

So if you’re not going to manipulate the incoming CallerID to set the digits to match your Outbound Routes patterns or have Outbound Routes that can match these formats you’re going to run into people dialing from the call history and then not matching any outbound routes.

It’s all about normalization.

Calls should be stored in the most recognizable fashion for the majority of your users.

All likely dialing patterns should be supported. 10 and 11 (perhaps 7) in NANPA land with and without + for 11 digits
In many countries, exceptional dialling of internal v external calls muddies the +Cc concept.

All outbound trunks should be manipulated such that the carrier gets what they want.

None of that is hard, yet would support all likely scenarios. If an unsupported one comes up, fix it :slight_smile:

1 Like

Also many non-NANPA locations prefix internal country calls with a 0.

For example, at home, we call us and japan a lot, but no other countries. I have the outbound routes set to recognize NXXNXXXXXX and 0.

The first gets a 1 pretended.

The later prepends 81 and prefix removes the 0.

So I can call US numbers 10 digit and my wife can call Japanese numbers like she did all her life before coming to the US.

All the carriers I have used don’t care about the +, but will accept it is present.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.