External CID not kept when transfer

Incoming call from ISDN gateway.
Caller ID Is shown on Yealink phones configured “as usual”.
Once answered an transferred (blind or attended) to another extension, CLI is lost and only transferring extno is shown.
Why ??

How was the transfer requested? For SIP attended transfers, Asterisk doesn’t know it is a transfer until the transfer is completed. Some phones actually implement blind transfers as attended ones, with automated completion.

This is for both attended and blind.
Usually transfer destination phone sees oustide line caller id immediately while ringing in blind transfer, or after transferring phone hung , this doesn’t happen.
I don’t see any different configuration setting in pbx or phones compared with other installations…
Incoming calls came from provider BRI interface through a patton gateway, could this affect the issue (despite caller ID is correctly shown for incoming calls) ?

Is this a feature code transfer or a SIP transfer?

If a SIP transfer, can you confirm that the blind transfer starts with a REFER, rather than a new INVITE?

If the transfer is a SIP (blind) transfer starting with REFER, I think you will need to provide the full log for the whole call, to see where the wrong number is added.

Transfer is done with Yealink phones, using BLF keys as well as TRANS key.
Ok for attended transfer, it is uncompleted until caller ends transfer procedure.
Let’s look at blind transfer:
Incoming call via DID makes phone to ring , original caller id is shown.
Phone answers
Press TRANS, dial extno, extension rings showing caller phone extno/name.
Press TRANS again , blind transfer done, caller phone is idle, called phone rings but STILL shows caller phone id and NOT external caller id.
Called phone answers , it’s online with external caller but caller extension name/number is STILL displayed.
Caller extension name/number is STILL displayed also after an attended transfer is completed.

That’s an attended transfer, even if you complete it before answer. The destination needs to support connected line updates, and they have to be enabled, for the number to be updated. At the Asterisk end, enabling means turning on P-Asserted-Identity or Remote-Party-ID. The other end must support the use of whichever is used, for connected line updates.

You mean the patton gateway as “the other end” to be enabled for connected-line?

I mean everything in the direction in which you want to send the caller ID.

Analogue lines cannot do connected line updates. You will need to do feature code transfers, or use a SIP phone that does true SIP blind transfers

Later I’ll try to setup a sip trunk with provider.
I suppose that way all should work as usual…

You would need to investigate their STIR/SHAKEN policies, or equivalents in other countries. Forwarding caller ID has got a lot more difficult in the last year or two.

Provider supplies just the bri interface ,
Bri to SIP conversion is a thing of mine , with all its misconfiguration and failures …. :grimacing:

Just to clarify, I’m talking about transferring calls inside the same pbx between sip phones ,
ISDN-BRI is the outside world , freepbx is pjsip trunk-connected to patton gateway.

In that case, you are not sending the caller ID to the gateway.

The caller ID of outside caller from ISDN Is passed correctly to Freepbx via sip trunk ( in fact it Is displayed on ringing Yealink phone).
The issue is when that call has to be transferred to a collegue extension within the same pbx.
Outside caller phone number is not preserved

Connected line update needs to work towards the colleague’s phone.

You are doing an attended transfer. The caller ID is sent just before the phone starts ringing, and at that point, Asterisk doesn’t know that the call is related to an incoming call. The transfer only happens when the TRANS button is pressed the second time, and connected line update must be working for that number to be forwarded to the colleague.

If you do a feature code transfer, Asterisk knows that it is a transfer.

If you do a true SIP blind transfer, Asterisk also knows it is a transfer, and is already running on the incoming channel at the point where it rings the colleague’s phone.

Well, now I’m trying the same with a pjsip trunk between asterisk and provider
The issue is still the same
The same configuration get the CallerID preserved in all my other installation.
So I must investigate in something mis-configured in this particular case…

Check your Settings>> Advanced Settings. Here is what I use:

How about a call log showing this happening so we can see if something isn’t passing CID like it should.

trustrpid isn’t relevant, as it relates to information received, but the issue is in sending.