CallerID Name over IAX2 trunk - shows local not remote name


I have 2 FreePBX systems trunked together via an IAX2 trunk and calling works fine between them. The issue is that the extensions at each location overlap. ie. System A has extension 100 - 150 and System B has extension 100 - 150 as well.
In order to call between systems, one precedes the extension with an 8. ie. on System A, dial 8100 to get to extension 100 on System B and vice versa. This works fine however the callerID Name shown is of the local system and not of the remote system.

System A, ext 100 is Joe
System B ext 100 is Peter

If Joe calls anyone on System B, then the callerID number will be 100 but the callerID name shows as Peter instead of Joe.

I understand it is picking this name up from the local system but this is incorrect so is there anyway of preventing this local lookup fir the IAX trunk and passing the remote callerID name?

I have the routes set as Intra-Company routes and for the trunk to allow any CallerID.

Any thoughts on passing the correct callerID name?

I don’t think that there is anything that you can do through the freepbx web interface.
Put the following in your extensions_custom.conf file over the from-internal-custom, change the context in your trunk in both ends and try again

exten => _.,1,Dial(SIP/${EXTEN})

When you set up your IAX2 route, you probably turned on “Intra-company route”. If so, the internal extensions will be transmitted as your caller ID unless you override them somewhere.

Thanks, but will it not still pickup the CallerID name form the local system?

I did want the local extension to be displayed, just not the local CallerID NAME

Have you turned off the Caller ID lookup services on your local machines, or at least turned off the “look up the caller ID in the local database” option? It seems to me you want the “Display name from line” or something similar.

Yes, I have tried to disable the local database lookup but it made no difference. I can’t figure out where it is actually getting the name information from unless it is from Asterisk itself

Check astdb. In the CLI, try “database show” and see what comes up there.

using database show, I see some entries
/AMPUSER/200/cidname Reception
/AMPUSER/201/cidname Peter

So is this where it is getting the information from and how do I stop this for internal (external) calls?

I faced this today.

Any follow up regarding this issue?

You have to skip the entire user-callerid Macro for this or override things to that the user-callerid macro doesn’t catch what is going on.

The user-callerid Macro runs at almost every point devices are making or getting calls. So when the user from Location A who is ext 150 calls Location B (which also has a 150) the PBX is looking at the CallerID/From headers of the caller and then checking to see if that user exists in the system as a LOCAL extension/endpoint. Since 150 lives on the PBX at Location B, it is going to find a local user and user their information.

You basically need to manipulate the call from Location A so that the FROM user is not a matching user on the system and then set the CallerID on its own to the right information.

Having two PBXes linked together that have the same extensions/routing is going to cause issues like this and others.

This is nearly always a bad idea. There are just too many things that can go wrong.