如何使用 twilio 开始会议?
how to start a conference with twilio?
计划我的程序:有人在拨打 Twilio 号码,然后我在手机上接到电话。只要我不接听电话,来电者应该会听到音乐或类似的声音,如果我接听,会议就会开始。
目前:
有人正在拨打这个号码,然后用音乐排队,然后我的手机就被呼叫了。听起来还不错,但是当我接电话时我们没有连接。
所以我想我不太了解 Twilio 会议的运作方式,请问您有一些建议如何逐步完成。
我自己解决的,你需要用会议接听双方,当对方接听电话时会自动开始
示例
resp.say({voice:'woman'}, 'Welcome to our hotline. This could take a moment, please wait.')
.dial({},function(err){
this.conference('example');
});
这里是 Twilio 开发人员布道师。
好的,您正在使用 Node.js 进行构建,我知道我在其他问题中看到过您的代码,但我将从头开始这个问题。
对于 Twilio,您描述的流程应该如下所示。
- 有人打电话给你的 Twilio 号码
- Twilio 向号码的语音请求 URL(指向您的应用程序)发出 HTTP 请求
- 您的应用程序现在需要做两件事
- 拨打您的手机号码
- 将呼叫者加入会议并播放保持音乐
- 首先你需要决定会议的名称
- 然后要拨打您的号码,您的应用程序需要调用 Twilio REST API 以启动对您手机的呼叫
- 您需要在此调用中提供回调 URL,这样您也可以加入会议,您可以通过将会议名称作为参数包含在 URL[=47 中来实现=]
- 您的应用程序还需要 return TwiML 将呼叫者放入会议,使用相同的会议名称
- 最后,当您回答 phone 时,Twilio 将向您在发起呼叫时提供的 URL 发出 HTTP 请求
- 这将请求你的 URL,它应该用 TwiML 响应,让你加入同一个电话会议
让我们看看如何在 Node.js Express 应用程序中执行此操作:
您需要两条路线,一条将接收初始请求,一条将响应您回答 phone 时提出的请求。查看下面的代码和评论。
var express = require("express");
var bodyParser = require("body-parser");
var twilio = require("twilio");
var app = express();
app.use(bodyParser.urlencoded({ extended: true }));
var client = twilio(YOUR_ACCOUNT_SID, YOUR_AUTH_TOKEN);
// This is the endpoint your Twilio number's Voice Request URL should point at
app.post('/calls', function(req, res, next) {
// conference name will be a random number between 0 and 10000
var conferenceName = Math.floor(Math.random() * 10000).toString();
// Create a call to your mobile and add the conference name as a parameter to
// the URL.
client.calls.create({
from: YOUR_TWILIO_NUMBER,
to: YOUR_MOBILE_NUMBER,
url: "/join_conference?id=" + conferenceName
});
// Now return TwiML to the caller to put them in the conference, using the
// same name.
var twiml = new twilio.TwimlResponse();
twiml.dial(function(node) {
node.conference(conferenceName, {
waitUrl: "http://twimlets.com/holdmusic?Bucket=com.twilio.music.rock",
startConferenceOnEnter: false
});
});
res.set('Content-Type', 'text/xml');
res.send(twiml.toString());
});
// This is the endpoint that Twilio will call when you answer the phone
app.post("/join_conference", function(req, res, next) {
var conferenceName = req.query.id;
// We return TwiML to enter the same conference
var twiml = new twilio.TwimlResponse();
twiml.dial(function(node) {
node.conference(conferenceName, {
startConferenceOnEnter: true
});
});
res.set('Content-Type', 'text/xml');
res.send(twiml.toString());
});
如果这有帮助,请告诉我。
更新
在最新版本的 Twilio Node.js 库中,您无法使用 twilio.TwimlResponse
。相反,有单独的 类 用于语音和消息传递。在此示例中,行
var twiml = new twilio.TwimlResponse();
应更新为:
var twiml = new twilio.twiml.VoiceResponse();
计划我的程序:有人在拨打 Twilio 号码,然后我在手机上接到电话。只要我不接听电话,来电者应该会听到音乐或类似的声音,如果我接听,会议就会开始。
目前: 有人正在拨打这个号码,然后用音乐排队,然后我的手机就被呼叫了。听起来还不错,但是当我接电话时我们没有连接。
所以我想我不太了解 Twilio 会议的运作方式,请问您有一些建议如何逐步完成。
我自己解决的,你需要用会议接听双方,当对方接听电话时会自动开始
示例
resp.say({voice:'woman'}, 'Welcome to our hotline. This could take a moment, please wait.')
.dial({},function(err){
this.conference('example');
});
这里是 Twilio 开发人员布道师。
好的,您正在使用 Node.js 进行构建,我知道我在其他问题中看到过您的代码,但我将从头开始这个问题。
对于 Twilio,您描述的流程应该如下所示。
- 有人打电话给你的 Twilio 号码
- Twilio 向号码的语音请求 URL(指向您的应用程序)发出 HTTP 请求
- 您的应用程序现在需要做两件事
- 拨打您的手机号码
- 将呼叫者加入会议并播放保持音乐
- 首先你需要决定会议的名称
- 然后要拨打您的号码,您的应用程序需要调用 Twilio REST API 以启动对您手机的呼叫
- 您需要在此调用中提供回调 URL,这样您也可以加入会议,您可以通过将会议名称作为参数包含在 URL[=47 中来实现=]
- 您的应用程序还需要 return TwiML 将呼叫者放入会议,使用相同的会议名称
- 最后,当您回答 phone 时,Twilio 将向您在发起呼叫时提供的 URL 发出 HTTP 请求
- 这将请求你的 URL,它应该用 TwiML 响应,让你加入同一个电话会议
让我们看看如何在 Node.js Express 应用程序中执行此操作:
您需要两条路线,一条将接收初始请求,一条将响应您回答 phone 时提出的请求。查看下面的代码和评论。
var express = require("express");
var bodyParser = require("body-parser");
var twilio = require("twilio");
var app = express();
app.use(bodyParser.urlencoded({ extended: true }));
var client = twilio(YOUR_ACCOUNT_SID, YOUR_AUTH_TOKEN);
// This is the endpoint your Twilio number's Voice Request URL should point at
app.post('/calls', function(req, res, next) {
// conference name will be a random number between 0 and 10000
var conferenceName = Math.floor(Math.random() * 10000).toString();
// Create a call to your mobile and add the conference name as a parameter to
// the URL.
client.calls.create({
from: YOUR_TWILIO_NUMBER,
to: YOUR_MOBILE_NUMBER,
url: "/join_conference?id=" + conferenceName
});
// Now return TwiML to the caller to put them in the conference, using the
// same name.
var twiml = new twilio.TwimlResponse();
twiml.dial(function(node) {
node.conference(conferenceName, {
waitUrl: "http://twimlets.com/holdmusic?Bucket=com.twilio.music.rock",
startConferenceOnEnter: false
});
});
res.set('Content-Type', 'text/xml');
res.send(twiml.toString());
});
// This is the endpoint that Twilio will call when you answer the phone
app.post("/join_conference", function(req, res, next) {
var conferenceName = req.query.id;
// We return TwiML to enter the same conference
var twiml = new twilio.TwimlResponse();
twiml.dial(function(node) {
node.conference(conferenceName, {
startConferenceOnEnter: true
});
});
res.set('Content-Type', 'text/xml');
res.send(twiml.toString());
});
如果这有帮助,请告诉我。
更新
在最新版本的 Twilio Node.js 库中,您无法使用 twilio.TwimlResponse
。相反,有单独的 类 用于语音和消息传递。在此示例中,行
var twiml = new twilio.TwimlResponse();
应更新为:
var twiml = new twilio.twiml.VoiceResponse();