Twilio 出站电话会议

Twilio outbound call to conference

我需要帮助。我有代理人和客户的情况。如果座席打出电话而客户接听,我的系统上有一个按钮可以将座席和客户重定向到会议。下面的代码是我的函数,它拨打代理输入的号码。

function dialCall(num)
{
   params = {"phoneNumber": num, "record":"record-from-answer", "callStatus":"call", "callerId": callerId, "caller":agent_id};
   conn = Twilio.Device.connect(params);
   initializeStatus('Busy');
   isDialCall = true;
   return conn;
}

所以问题是主叫和被叫可以同时加入会议吗?

完全可以做到。 在您上面提到的代码中,Twilio.Device.connect(params) 调用与您帐户中的 TwiML App 关联的语音 URL。

这个语音URL可以通过做以下两件事来实现在同一会议中同时拨打主叫方和被叫方的功能

  1. 通过返回 TwiML 响应在会议中拨打呼叫者<Dial><Conference>
  2. 启动 REST API 呼叫目的地 URL 设置为将他拨入同一会议的端点。

下面列出了示例代码(nodejs)

app.get("/handleOutgoingAsConference",function(i_Req,o_Res)
{
  var ivrTwilRes = new twilio.TwimlResponse();
  var agentNum=i_Req.query.phoneNumber;
  /*read other params here */ 
  ivrTwilRes.dial(
    function(node) {
      node.conference('Conference_Caller_Callee', { beep:'false' , endConferenceOnExit:'true'})
    }
  );
  var restClient = new twilio.RestClient(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN);
  restClient.calls.create(
    {
      url: "/justDialIntoConference",
      to: agentNum,
      from: "+yourCallerId",
      method: "GET",
    }, 
    function(err, call) 
    {
      if(err)
        {
          console.log(err.message);
        }
    }
  ); 
  o_Res.set('Content-Type','text/xml');
  o_Res.send(ivrTwilRes.toString());
});

app.get("/justDialIntoConference",function(i_Req,o_Res)
{
  var ivrTwilRes = new twilio.TwimlResponse();
  ivrTwilRes.dial(
    function(node) {
      node.conference('Conference_Caller_Callee', { beep:'false' , endConferenceOnExit:'true'})
    }
  );
  o_Res.set('Content-Type','text/xml');
  o_Res.send(ivrTwilRes.toString());
});

你可以把上面两个功能结合起来,为了简单起见,我把它分开了。

希望对您有所帮助