Twilio呼叫延迟问题:延迟第二通呼叫至第一通接听的排查与解决
说明:以下代码运行正常。我遇到的问题原因是
agent号码为Twilio号码,该号码会立即接听(将呼叫状态转为In-progress)并转接至SIP地址。当我直接将SIP地址设置为agent时,脚本运行符合预期。我保留此帖,以防其他开发者遇到类似因其他流程导致代码异常的问题。
需求流程
- 通过Twilio向坐席发起外呼,并将坐席加入会议。
- 等待坐席接听呼叫。
- 向坐席发送关于即将加入会议的客户的“提示”消息。
- 向客户发起外呼,并将客户加入会议。
已实现的C# .NET代码
// Initiate First Call var call = CallResource.Create( to: new Twilio.Types.PhoneNumber( "+" + agent ), from: new Twilio.Types.PhoneNumber( "+" + callerid ), callerId: callerid, twiml: new Twilio.Types.Twiml( "<Response><Dial answerOnBridge='true' hangupOnStar='true'>" + "<Conference startConferenceOnEnter='true' beep='false'>" + agent+member + "</Conference>" + "</Dial></Response>" ), statusCallback: new Uri( "https://callrouting-2700.twil.io/conference" ), statusCallbackEvent: new List<string> { "initiated","ringing","answered","completed" }, statusCallbackMethod: Twilio.Http.HttpMethod.Get ); // Initiate Second Call call = CallResource.Create( to: new Twilio.Types.PhoneNumber( "+" + member ), from: new Twilio.Types.PhoneNumber( "+" + callerid ), callerId: callerid, twiml: new Twilio.Types.Twiml( "<Response><Dial answerOnBridge='true'>" + "<Conference beep='false'>" + agent+member + "</Conference>" + "</Dial></Response>" ) );
但我遇到的问题是,第一通呼叫的状态很快从Initiated变为Ringing再变为In-progress,甚至在坐席接听之前就完成了状态转换。
2023-02-02 19:58:29 UTC Execution started... 2023-02-02 19:58:29 UTC Initiated 2023-02-02 19:58:29 UTC Execution ended in 60.63ms using 98MB 2023-02-02 19:58:29 UTC Execution started... 2023-02-02 19:58:29 UTC Ringing 2023-02-02 19:58:29 UTC Execution ended in 2.46ms using 102MB 2023-02-02 19:58:30 UTC Execution started... 2023-02-02 19:58:30 UTC In-progress 2023-02-02 19:58:30 UTC Execution ended in 2.45ms using 102MB
我推测问题在于无法为CallResource.Create添加answerOnBridge='true'参数,该参数可延迟In-progress状态至呼叫被接听时。
是否存在延迟第二通呼叫至第一通呼叫被接听的解决方案?
内容的提问来源于stack exchange,提问作者tcbeaton
相关产品推荐
相关产品推荐

