I want to set up a system where if a transferred call is not answered, it is moved back into a queue so that someone else can grab it. I have the basics of catching the Dial status and then redirecting no-answer calls back to the queue.
My struggle is with the callerId. For inbound calls, everything works great and the correct inbound callerId shows at every step in the process.
For outbound calls using the Twilio Client, I can only get half way.
Assume: Business phone number = 555-555-5555
Customer phone number = 222-222-2222
Agent A dials outbound
Sid1: incoming clientAnonymous
Sid2: from: 555-555-5555 to: 222-222-2222
Agent A then transfers to Agent B
<Response>
<Dial callerId="+12222222222" action="/catchNoAnswer"><Client>AgentB</Client>
</Dial>
</Response>
Agent B correctly sees the callerId as the customer.
Sid3: from: +12222222222 to:AgentB
If AgentB doesn't answer, I want to put the call back into a queue, but no matter what I try, the queue always shows the "from" number as the business phone number rather than the customer phone number. With multiple agents, this results in several calls in the queue all showing the business phone number rather than the customer phone numbers that the calls really represent.
I don't want to use a conference to do a warm transfer.
Is there any way to set the callerId to the to number before enqueuing a call?
I have tried dialing a conference with the callerId set, similar to how I dialed the client, and then moving that leg of the call back to the queue, but the callerId didn't stick.