FreePBX 17 Caller ID not being transferred

I backed up and restored my FreePBX 16 onto a new FreePBX 17. Noticing that when external calls our phone line, reception takes the call and transfers the call to another extension, that callerid is not transferred with the call to the new extension.

Anyone can help to where start looking? I fiddled around with the Trunk/Extension/Advance setting send RPID but doesn’t look like any of the combinations work.

Hi @darkconz
Can you enable “Send Connected Line” to Yes from extensions → advanced setting tab and give a try

Is that from every extensions that the call is being transferred from?

No. It will be for every possible new extension.

I’ve changed all extension’s advance setting “Send Connected Line” to “Yes” and still not transferring the caller ID of the external caller.

At the destination phone it shows the callerid of the extension that initiated the transfer.

How are you implementing the transfer?

Feature code blind transfer?

Feature code attended transfer?

SIP attended transfer, or blind transfer on a phone that actually implements that as INVITE following by REFER/Replaces?

SIP blind transfer implemented as REFER without Replaces.

Do the destination phones actually support RPID?

Are you expecting the caller ID to change on the enquiry, for attended transfers, or on the completion?

I have a polycom SIP phones and here are the sequence:

  1. External calls in, the ring group rings (External callerid is appeared in this first ring)
  2. One of the attendants picks up the call
  3. Attendant hit the “Transfer” button (On the phone it shows “Transfer to:”
  4. Attendant enters the destination extension
  5. Attendant press the Transfer button again
  6. On the attendant’s phone the call is gone
  7. On the destination phone it shows the attendant is calling them (attendant’s extension # is shown as the callerid)
  8. Destination phone answers phone and talks to the external caller

I am not expecting the caller id to change

The caller ID should change. I’m now not sure if you are saying that you want the reception caller ID to remain or you want it never to be displayed.

The latter is not possible, as Asterisk doesn’t know that there is a transfer in progress at the time the new destination is rung; as far as it is concerned, it is just a separate call, on the receptionist’s second line. For the former, you would need to disable connected line updates.

At the destination extension (after the call has been transferred), I want that phone to display who is calling (eg. external caller id). Currently it shows the reception is calling and when that person picks up the phone, they are in for a surprise!

Everything was working the way it was intended on FreePBX 16. I did a backup+restore on the new system… Also changed from chan_sip to PJSIP

I think you need to provide a full log, verbosity at least 5, and with “pjsip set logger on” in effect, so we can confirm whether it should be and is sending the update,

The sequence you describe is a native SIP attended transfer, so the initial number displayed will be that of the receptionist, as the call is implemented as an enquiry followed by the actual transfer. One would then need to check whether UPDATE was allowed, and is actually being used.

Asterisk feature code transfer are identifiable as transfers, and will show the external caller ID, from the start.

Hi David,

Can you walk me through or directly me how I can get that log? I am pretty green at this.

Thank you so much for helping me out

https://sangomakb.atlassian.net/wiki/spaces/FP/pages/11829392/Asterisk+Log+Files

I have the full log of a call transfer that simulates the issue. How do I post the log and how do I make sure there is no sensitive data on there?

I would look at the “Extension” level, the issues I’ve usually had going from one PBX version to another has always been something with the extension. I would check these things, you can focus on just the reception extension and a test extension. Trust RPID=Yes, Send Connected Line=Yes, Send RPID=Send P-Asserted-Identity header

Typically by using a pasterbin server.

By examining the contents an redacting in a way that keep the difference between different addresses and different types of them.

Those 3 settings are set as you have said

I assume you have tried standard IT practices of rebooting server/clients, if not then at least reboot the reception phone and your test phone and do a fwconsole reload on your pbx. You might even go so far as to factory reset a test phone first and let it download it’s config again, then do your reception phone. Or restart the entire pbx this evening. Reboot’s can and do fix things sometimes. Maybe though if you can sanitize your logs and drop them in some pbx guru here can sift through them and find something.

Here is the sanitized version:

9999999999 - External Caller ID Number
ABABAB - External Caller ID Name
3333333333 - My DID

Sequence:
Call DID → Ext 1000 rings → Ext 1000 picks up phone → Transfers to 2000

Yep, I re-did the config files and forced the unit to update with the new configs

Try setting connnected_line_method to update. I don’t know if this is exposed by FreePBX.

The phone isn’t sending an Allow header, so I don’t think Asterisk can be sure that UPDATE will work, but you need it to work to be able to change connected line on an outgoing leg, before answer.