Call Transfers
Daily provides two primary methods for handling transfers: PSTN and SIP call transfers, along with SIP REFER. Each method serves distinct use cases and maintains the original connection during the transfer process, ensuring seamless call continuity.
Understanding Call Transfer Methods
SIP Call Transfer is optimized for handling transfers within Daily's infrastructure, particularly between Daily rooms. This method maintains the existing connection and inserts a SIP transfer leg to achieve a seamless connection. Both inbound (dial-in) and outbound (dial-out) scenarios can be transferred. Key scenarios where call transfer is ideal:
- Moving calls between Daily rooms (e.g., agent-to-agent transfers in call centers)
- Transferring SIP calls while maintaining Daily's analytics and monitoring
- Forwarding calls to external SIP addresses while keeping Daily's connection management
Example workflow:
- Customer connects to a Daily Room A where an Support Agent is waiting. This original connectiop can be a dial-out or dial-in. In call transfers, we want to maintain this original connection and re-route the secondary connections.
- The Support agent in the Room determines that specialized support is needed and needs to forwarded or transferred to another sip address.
- Call is transferred to Daily Room B (Specialist Support)
In this case, the original connection is maintained while the secondary connections was switched between sip addresses of Room A and Room B.
PSTN Call Transfer allows you to transfer traditional phone calls between participants and rooms within the Daily infrastructure. Both inbound (dial-in) and outbound (dial-out) scenarios can be transferred.
Example workflow:
- Customer with Phone number (+1234567890) dials into Room A
- Support Agent in Room A decides to transfer the call to a new phone number (+1987654321)
- As soon as the transfer is initiated, the original caller disconnects from Room A and new number rings.
SIP REFER is designed for scenarios where a calls from an external sip address needs to be transferred back to an external SIP address. This method is particularly useful when working with external IVR systems or third-party SIP providers that forwarded a call to Daily and instread of reforwarding the call back to them, wants Daily to gracefully transfer back the original connection back to them. Common use cases:
- Transferring calls back to external IVR systems
- Moving calls between different SIP providers
Example workflow:
- An external IVR forwards call to a Daily Room
- Agent completes service in Daily Room and wants the originating call to referred back to the IVR.
- Using SIP REFER, the original connection is passed to a target sip refer address and a direct connection is established.
The Daily's Client SDK and REST APIs provides methods for both transfer types, see REST API docs and Client SDK APIs: sipCallTransfer()
, sipRefer()
.
Transfer Types and Scenarios
Call transfers will keep the SIP connection fixed to Daily at one end thus keeping the original user on the call. Meanwhile, the other end of the call can be directed to SIP URIs or PSTN numbers, depending on your use-case.
Room-to-Room Transfer
sip:alice@sip.example.com
is in Room A- needs to be transferred sip address of Room B
- call sipCallTransfer with `toEndpoint:"sip:room-B@domain.sip.daily.co"
- immediately
participant-left
along withdialin-stopped|dialout-stopped
will fire in Room A.participant-joined
will fire in Room B.
PSTN Transfer
- Original phone number in Room A
- needs to be transferred to a phone number (
+123455xxx
) - call sipCallTransfer with
toEndpoint:"++123455xxx"
- immediately
participant-left
along withdialin-stopped|dialout-stopped
will fire in Room A. Original phone number will start to hear ringing, and the phone+123455xxx
will start ringing.
Note: In scenarios 1 an 2, it is also possible to transfer SIP to PSTN and vice-versa. it does not need to be PSTN-PSTN or SIP-SIP transfers.
- External Transfers (SIP REFER)
In this case instead of forwarding the call to the new sip address, we can perform a SIP REFER that will directly connect the original SIP caller (sip:support@sip.example.com
) to the new SIP destination (sip:ivr@sip.example.com
). Once the SIP REFER is successful, this takes Daily's SIP hops out of the connection loop.
sip:support@sip.example.com
dials in to Room A.- User or agent in Room A decides to send the call to
sip:ivr@sip.example.com
- call sipRefer with `toEndpoint:"sip:ivr@sip.example.com"
- immediately
participant-left
along withdialin-stopped|dialout-stopped
will fire in Room A. The destination should start ringing.
For best practices choose the correct method
- Use
sipCallTransfer
to remove the current Daily room and connect to a different Daily room. - Use
startDialout
if you want to forward the call to a new SIP address or PSTN phone number. This brings the dialled out participant in to the Daily room instead of transfering. - Use SIP REFER for external-to-external transfers and remove Daily's SIP infrastructure from the loop.
Pricing Considerations
The choice between sipCallTransfer
and sipRefer
may have pricing implications based on your usage patterns and requirements. For detailed pricing information and guidance on which method best suits your needs, please contact:
- Email: help@daily.co
- Sales team: Contact for enterprise pricing and volume discussions