Call Control Concepts | Appendix | Web Sequence Diagrams
The following web sequence diagrams are meant to help better understand a few of TaskRouter's key call control concepts: Blind Transfer and Warm Transfer
If you want to customize any of the flows described here for your own use, you can paste the full descriptions found below each diagram into websequencediagrams.com and edit from there.
Brand new to these call control concepts? We've got you covered: check out our documentation to learn more about blind call transfers and warm transfers.
Blind Transfer
title Blind Call Transfer Caller->Twilio: new call note over Twilio, App: <not shown> create Task Twilio->App: Reservation request App->Twilio: instruction:conference note right of Twilio: Twilio connects agent and caller to conference App->Twilio: Conference hold conference.participants.customer App->Twilio: New Task note right of Twilio: fill in task.requested_agent or task.desired_queue. Ensure workflow acts on this information Include conference SID of existing call and TaskSID of original task end note App->Twilio: remove original agent leg from conference App->Twilio: complete original task (or move to wrap) note right of Twilio: Task gets assigned Twilio->App: Reservation request App->Twilio: instruction:call note right of Twilio: Agent answers Twilio->App: webhook for TwiML for answered call App->Twilio: <Dial><Conference>Original Task SID</Conference></Dial>
Warm Transfer
title Warm Transfer Caller->Twilio: new call note over Twilio, App: <not shown> create Task Twilio->App: Reservation request App->Twilio: instruction:conference note right of Twilio: Twilio connects agent and caller to conference App->Twilio: Conference hold conference.participants.customer App->Twilio: New Task alt Warm Transfer to known person note right of Twilio: fill in task.requested_agent Ensure workflow acts on this information end note else Warm Transfer to queue note right of Twilio: fill in task.desired_queue. Ensure workflow acts on this information end note end note right of Twilio: For either option, include in Task: - conference SID of existing call - TaskSID of original task end note note right of Twilio: Task gets assigned Twilio->App: Reservation request App->Twilio: instruction:call note right of Twilio: Agent answers Twilio->App: webhook for TwiML for answered call App->Twilio: <Dial><Conference>Original Task SID</Conference></Dial> note over Twilio, App: Customer, Agent 1 and Agent 2 in 3-way App->Twilio: remove original agent leg from conference App->Twilio: complete original task (or move to wrap) note over Twilio, App: Customer and Agent 2 in 1:1
Need some help?
We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.