Twilio (TwiML):再拨一个 phone

Twilio (TwiML): Dial another phone

我想在该流程中连接两个 phone 号码:

Person_1 正在接听电话。播放了一条语音消息,询问他是否愿意参加电话会议。只有Person_1接受电话会议才会发起:

这就是我想要做的:

Intro.chtml:

<Response>
   <Gather numDigits="1" action="StartConferenceCall.chtml" method="GET">
       <Say>Press 1 to start the conference call</Say>
   </Gather>
</Response>

StartConferenceCall.chtml:

@{
    var digits = Request["Digits"];
    if(digits == "1")
    {
       <Response>
        <Dial>   // I would like to dial the second person

            <Conference beep="false" record="record-from-start"  
               Room 1234
            </Conference>
        </Dial>
      </Response>
    }
    else
    {
       <Hangup/>
    }

}

是否可以在 <Dial> 标签内添加第二个数字?

这里是 Twilio 开发人员布道者。

因为你改变了原来的问题,我删除了我之前的答案,并为你整理了另一个例子。

因为您想自己开始通话并让用户按 1 以防他们想接受问题,所以您将要使用 REST API. Specifically, you want to initiate a new call 然后提示用户按下按钮。下面的代码是C#。

public void CallUser(){
    var client = new TwilioRestClient(AccountSid,AuthToken);
    client.InitiateOutboundCall("from", "to", "/Call");
    client.InitiateOutboundCall("from", "to", "/Conference");
}

在上面的代码中,我发起了两个调用。一个给客户,一个给另一个应该在线的人。如果你愿意,你可以改变它的逻辑,但为了简化事情,我同时发起两个调用。

第一个通话会将用户放在菜单上,他们可以按 1 加入通话。

public IActionResult Call()
{
    var twiml = new TwilioResponse();
    return TwiML(twiml.BeginGather(new { action = "/Conference", numDigits = "1" }).Say("Press 1 to start the conference call").EndGather());
}

然后两个呼叫都被重定向到 /conference,在那里创建或加入了会议室。你可以有逻辑来检查用户是否在这里拨了1

public IActionResult Conference()
{
    var twiml = new TwilioResponse();
    return TwiML(twiml.DialConference("Room 1234"));
}

希望对您有所帮助