I am trying to build a phone system which is building via Twilio's Browsersoftphone.
Step1: Outbound call is made by an agent A to say X
Step2: X wishes the call to be transferred to agent B.
Step3: Agent A presses "Transfer" button
Step4: call gets routed to Agent B and "Call Transferred Notification" is shown on screen of Agent A. But Agent A is never participates in the call.
Note: It may the case X does not wish to transfer the call and in that case agent A has ability to press "Hangup" button and end the call.
Need to record the overall call and its length.
See how UI looks: http://puu.sh/lT1fK/19465e05d9.png
I have used <conference>
to initiate a call which dials in agent A and X . The above UI depicts that state. Now as an Agent A, I have option to "Hangup" or do "Transfer" button at bottom left.
Here is the problem:
When I use endConferenceOnExit = True
, agent A is able to finish the <conference>
as he presses "Hangup". But than unable to "Transfer" the call as <conference>
ends
When I set endConferenceExit = False
, then agent A is able to "Transfer" the call but unable to "Hangup" as he loses control as moderator.
I cannot somehow tweak this value in runtime as it is only set once when <conference>
is initiated.
What is the best possible solution for this scenario?
Twilio developer evangelist here.
You want to use the endConferenceOnExit = False
method as you've described. I guess you're not satisfied with both ends hanging up independently when the call is over?
What you can do instead of a normal hangup using the Twilio Client in the browser is to pass the job off to your server. You can then access all the participants of the conference and update their calls individually. There is a good tutorial on modifying conference calls here.
Let me know if that helps at all.