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 by visiting Twilio's Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.