Twilio(TwiML):拨打另一部电话

时间:2016-01-20 07:40:45

标签: twilio twiml

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

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>代码中添加第二个数字?

1 个答案:

答案 0 :(得分:1)

Twilio开发者传道者在这里。

因为您已更改原始问题,我删除了之前的答案并为您准备了另一个示例。

因为您想自己开始通话并让用户按1以防他们想要接受问题,您将会想要使用REST API。具体来说,您希望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"));
}

希望这有助于你