Incorrect Caller ID after forwarding call to Follow Me number

Hello everyone.

Distro Ver:
Asterisk Ver: 13.13.1
Applied Scripts Ver: 10.13.66-12

I have very strange problem, which I tried to search here, but unable to find, so decided to open a new topic. I have registered several trunks.

OK, for simplicity, I’ll describe an issue this way. when I’m calling from my mobile number (or from any external number) to one of trunks, Let’s say I’m calling to number 123, then I’m dialing internal extension and this extension has ‘Follow Me’ feature has enabled, so this call is transferred to personal mobile number of employee, but the Caller ID displayed on her mobile is different from the number which I’m calling to i.e. I was calling to 123, but after transferring number to mobile, it displays another Caller ID (of course from our trunks), but different from 123.

The extension which I’m calling to has set Outbound CID to use her trunk - 123, but anyways, I can’t understand where it takes from this different Caller ID. One thing I can tell is that this number is first in the list of outbound route trunk lists, but this extension is blocked to use this trunk with commercial module - Extension Routes.

Please suggest where should I start finding problem?
Thanks in advance

There are lots of places where CID can go wrong, especially if what you’re seeing actually makes sense.

  • The trunk provider can override your Caller ID all day long.
  • The trunk itself, if set up with one, can override the CID of the extensions.
  • The the outbound route for the cell phones is not marked as an “intracompany route” the caller ID will usually get overwritten with information from the route or trunk.
  • There is a module called “Set Caller ID” which I use whenver I want to send a call out with the caller’d CID. To set it up, you set up Miscellaneous Destinations for each of your corporate cell phones, and route the calls for the extension in question to the SCID module assigned to that cell phone. The next destination if the cell phone and the CID will be set correctly (barring the first three problems).

Hi cynjut, thanks for your reply.
Yes, you’re right, there’s so many place where you can configure CID, I’m completely lost.

Can you please help to clarify the trace of call route, I’m mean after call is transferred to Follow Me, it founds that it should be called to external/mobile number, in that case, which outbound route will it use, who do you think? I think, that it should use outbound route of an extension, which I was calling to, but apparently it’s not. That’s my main problem, it uses different outbound route and hence it calls from another thunk, so this trunk will be charged for that call (billing will be not clear).

So, my concern is billing, not the number appeared on mobile phone. I can’t figure out, where should I configure outbound route for follow me calls. :frowning:

OK - that’s good to know. Let me see if I can give you some hints:

Your trunks get selected by a combination of their configuration (the numbers that are routed through them) and (to an extent) the Caller ID of the phone.

This means that when a call is placed (any call), it is sent to all of the outbound routes. The first one that’s configured to handle the call is used for the outbound trunk. Each outbound route points to one or more trunks. The specific trunk is chosen is based on a couple of factors, including the Template for the outbound call (the number being called) and then the Caller ID of the phone placing the call.

Because of this process, the call (effectively) decides how it is going to be processed. An outgoing call drops onto the list of outbound routes, then gets validated by one of them, then sent to a list of trunks, which then validates one of the trunks. That makes the following assumption invalid:

Extensions don’t get a vote. For purposes of understanding the system better, it helps to think of it as the call from an extension goes to the PBX and is processed through a magical sequence (the extension has no idea what that sequence is) until it connects to the phone at the other end of the call.

Many people set up their FM/FM to go to a cell phone number. At that point, a new call is established (which originates in your PBX) and the two calls are merged together. So, having said that, the call to the cell phone will follow the same logic as every other call from an extension.

I don’t like to set the system up that way. I prefer to set up a Miscellaneous Destination that corresponds to the outbound cell phone number. I then set up the Caller ID modules to set the caller ID of the call to the original caller and connect that to the Miscellaneous Destination. In FM/FM, I set the No Answer destination to the Outbound Caller ID module, which then routes the call to the Cell Phone.

On the outbound route side, I set up a special outbound route just for my cell phones. It uses a VOIP provider that allows all foreign Caller IDs. I set this outbound route as the first outbound route, and since it is calling the cell phone (and has the cell phone number configured), it is automatically picked. The route then uses the Trunk I set up with my “Foreign CID Friendly” ITSP as the primary and another trunk that I use for “fail over” calls (if there’s a problem at ITSP 1) so the calls always go through correctly.

Now, the important conceptual part is that all of these pieces are independent. The outbound route is set up with the outbound CID I want to use, but I don’t tie it to anything else. The FMFM for my Virtual Extension (or even a real extension) is set up to set the Caller ID, which automatically routes the call to the specific phone number.

This way, anyone (or any thing) that wants to call my cell phone can dial the Virtual Extension Number and be connected to my cell phone AS IF my phone is on the network. You should see that the advantage is that now, without any further editting, I can set up almost anything in the system to go to the cell phone. If I need to connect through a module, I send the call to the SetCallerID entry. If I need to connect to an extension, I send the call to the Virtual Extension.

While it is a bit of work to set it up, I find that it saves me a lot of time in operations because I don’t have to solve the problems over and over again.

Hi again. Thanks for taking time to explain me. To be honest, its quite complicated for what you just told me, but I’ll try to clear it out in my mind :slight_smile:

Actually I think, I have very straight forward configuration:

external number calls to one of my phone number ==> IVR answers ==> then caller dials internal number e.g. extension ==> if after certain time, there’s no-one who can answer, then call goes to ==> Follow Me of that extension. there’s is written personal mobile number of my colleague, so call goes to ==> mobile number (O.K. now starts my frustration). As I said I have several phone numbers registered on my asterisk server (if I’m not mistaken, it’s calling DID number in VoIP world, am I correct?), ok so I have configured separate outbound routes with corresponding dial patterns and then corresponding trunks. The problem is, that each of those outbound routes can be used for calling on mobile numbers (as patters does allow that), but I have purchased commercial module, to restrict certain extensions to use only one particular outbound route and hence only particular trunk, as those trunks / numbers are properties of different companies and employees of those companies, should use only their trunks. But when call transfers to follow me and finds mobile number to call, it just check the very first outbound route, which can be used for mobile calls and just uses it and I can’t restrict to not use that, but use another route and hence another trunk. :disappointed:

OK, anyways, thank you very much for trying to help me and sorry for my English, as it’s not my native language.

This is a multi-tenant system then.

So what you’re actually telling us is that you are trying to do the one thing that FreePBX really sucks at, and want us to help you make the system do something that we all already know it doesn’t well?

That doesn’t sound like a productive use of any more of my time.