# Cold transfer (SIP REFER) on LiveKit Cloud — transfer-target caller ID changed from transferor (our agent number (DID)) → transferee (caller) with no app change. What can we control from the LiveKit side?

**URL:** <https://community.livekit.io/t/cold-transfer-sip-refer-on-livekit-cloud-transfer-target-caller-id-changed-from-transferor-our-agent-number-did-transferee-caller-with-no-app-change-what-can-we-control-from-the-livekit-side/1720>\
**Category:** Telephony\
**Tags:** sip-twilio, sip-trunking, livekit-cloud\
**Created:** [July 24, 2026, 1:35pm UTC](https://community.livekit.io/t/cold-transfer-sip-refer-on-livekit-cloud-transfer-target-caller-id-changed-from-transferor-our-agent-number-did-transferee-caller-with-no-app-change-what-can-we-control-from-the-livekit-side/1720 "2026-07-24T13:35:31Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Apu\_Chandraw\_Shill](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/apu_chandraw_shill/32/254_2.png) [@Apu\_Chandraw\_Shill](https://community.livekit.io/u/Apu_Chandraw_Shill)\
**Post date:** [July 24, 2026, 1:35pm UTC](https://community.livekit.io/t/cold-transfer-sip-refer-on-livekit-cloud-transfer-target-caller-id-changed-from-transferor-our-agent-number-did-transferee-caller-with-no-app-change-what-can-we-control-from-the-livekit-side/1720/1 "2026-07-24T13:35:31Z")

</div>

We do cold transfers via TransferSIPParticipant (SIP REFER). The caller ID shown on the transfer target’s phone changed from our DID (the “transferor”) to the original caller’s number (the “transferee”) — with no changes on our side. We want to understand what controls this on LiveKit Cloud and whether we can force it back to the DID.

Environment

- LiveKit: LiveKit Cloud
- Agents SDK: livekit-agents==1.5.9 (Python)
- Carrier: Twilio (Japan / Tokyo PSTN — Elastic SIP Trunking)
- Trunks provisioned via CreateSIPInboundTrunk / CreateSIPOutboundTrunk

Flow

1. Inbound: customer +81xxxxxxxxxx → our DID +81 50… (via Twilio).
2. Agent handles the call, then cold-transfers to a third number +81yyyyyyyyyy.
3. We call:  
```await livekit\_api.sip.transfer\_sip\_participant(  
api.TransferSIPParticipantRequest(  
participant\_identity=sip\_participant\_identity,  
room\_name=room\_name,  
transfer\_to=“tel:+81yyyyyyyyyy”,  
play\_dialtone=True,  
)  
)```

No From/headers/identity set on the request.

Observed vs expected

- Expected (and prior behavior): transfer target sees our agent number (transferor).
- Now: transfer target sees the original caller’s number (transferee).

Questions

1. On LiveKit Cloud, when we call TransferSIPParticipant, what does LiveKit put in the outgoing REFER (e.g. Refer-To, Referred-By, and any identity like From / P-Asserted-Identity)? We want to understand what Twilio keys off when it decides transferor vs transferee.
2. Did any recent LiveKit Cloud SIP change alter how the REFER (or its identity/Referred-By header) is constructed, which could make Twilio switch from showing the transferor to the transferee — explaining a regression with no app change on our side?
3. Is there any way to influence the transfer caller ID from LiveKit — trunk-level config, headers on TransferSIPParticipantRequest, or asserting P-Asserted-Identity — or is it strictly the carrier’s transfer-caller-id decision?
4. If the carrier setting can’t reliably present our DID, is there any recommended alternative?

---

<div class="post-metadata">

**Author:** ![darryncampbell](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/darryncampbell/32/20_2.png) [@darryncampbell](https://community.livekit.io/u/darryncampbell)\
**Post date:** [July 27, 2026, 11:51am UTC](https://community.livekit.io/t/cold-transfer-sip-refer-on-livekit-cloud-transfer-target-caller-id-changed-from-transferor-our-agent-number-did-transferee-caller-with-no-app-change-what-can-we-control-from-the-livekit-side/1720/2 "2026-07-27T11:51:36Z")

</div>

Hi, nothing has changed on the LiveKit side and we don’t expose that in `TransferSIPParticipant`, I don’t suppose you modified your Twilio config to set the callID there?

> **[Set CallerID for call transfer - Call Transfer via SIP REFER | Twilio](https://www.twilio.com/docs/sip-trunking/call-transfer#set-callerid-for-call-transfer)**
>
> You can set the caller ID for call transfer use cases in Twilio Console. In Twilio Console, go to Products & services \> Elastic SIP Trunking \> Manage \> Trunks(link takes you to an external page) and select a Trunk. You can also use the legacy...

---

<div class="post-metadata">

**Author:** ![system](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/system/32/26_2.png) [@system](https://community.livekit.io/u/system)\
**Post date:** [August 11, 2026, 11:52am UTC](https://community.livekit.io/t/cold-transfer-sip-refer-on-livekit-cloud-transfer-target-caller-id-changed-from-transferor-our-agent-number-did-transferee-caller-with-no-app-change-what-can-we-control-from-the-livekit-side/1720/3 "2026-08-11T11:52:20Z")

</div>

Closed on August 11, 2026, 11:52am UTC

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