首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我们能在Twilio的电话会议中间打个电话吗?

我们能在Twilio的电话会议中间打个电话吗?
EN

Stack Overflow用户
提问于 2017-11-17 13:54:12
回答 2查看 1.5K关注 0票数 3

我是这个领域的新手。来质问。我想在电话会议期间拨打一个电话号码,并将该与会者加入当前的会议。我已经尝试了一个给出这里Java的会议示例代码。是否有任何方法收集输入,然后拨打号码,并将参与者添加到同一会议。

这是我试过的。我已经创建了一个会议,它将返回以下响应

代码语言:javascript
运行
复制
<Response>
<Dial hangupOnStar="true">
<Conference startConferenceOnEnter="true" endConferenceOnExit="true">My Conference</Conference>
</Dial>
<Gather timeout="10" action="/twilio-tut/add/participant?confName=My%20Conference" finishOnKey="#">
<Say>Please enter the number you want to connect followed by hash key.</Say></Gather>
</Response>

现在,会议的一位与会者说,A press *,并拨打了一些他想要加入会议的另一个人。

现在,关于Gather动词的动作,我正在拨一个数字--代码如下所示

代码语言:javascript
运行
复制
Number number = 
                    new Number.Builder(some_valid_phone_number)
                    .statusCallback("https://xxxxxxx.ngrok.io/twilio-tut/to/conference")
                    .statusCallbackMethod(Method.POST)
                    .statusCallbackEvents(Arrays.asList(Event.ANSWERED))
                    .build();

            Dial dial = new Dial.Builder()
                    .number(number)
                    .conference(new Conference.Builder(conferenceName).build())
                    .build();

            twiml = new VoiceResponse.Builder().dial(dial)
                    .build();

some_valid_phone_number.上,我正在更新呼叫,以便将呼叫者和被叫者重定向到会议,其中来电者是通过按*离开会议的人,即A和被调用者是*。代码如下所示

代码语言:javascript
运行
复制
Call callee = Call.updater(callSid)
                    .setUrl("https://xxxxx.ngrok.io/twilio-tut/voice").setMethod(HttpMethod.POST).update();
            Call caller = Call.updater(parentCallSid)
                    .setUrl("https://xxxxx.ngrok.io/twilio-tut/voice").setMethod(HttpMethod.POST).update();

上面的代码传输被调用者,并在异常情况下断开调用者。

代码语言:javascript
运行
复制
com.twilio.exception.ApiException: Call is not in-progress. Cannot redirect.

我想做的是A打电话给其他号码,最后他们会连接到同一个会议。而A应该能够调用其他号码并将它们添加到同一个会议中。我正在用手机连接这些号码。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-26 23:00:58

两位开发人员在这里传道。

您所遇到的问题是,您正在尝试在TwiML中执行两个拨号,以响应。与其将与连接到您与<Gather>所拨打的号码,不如使用使用REST创建该调用并使用TwiML将电话中的人引导回原来的会议。

要明确地采取这一步骤,应该是这样的:

  1. 用户呼叫Twilio号码
  2. TwiML响应,将用户添加到hangUpOnStar的会议中
  3. 用户按下星号并收集请求拨号的号码。
  4. 在对来自REST的数字的响应中,使用REST创建调用,并将调用直接指向原始入站URL ("/conference")
  5. 在对聚集操作的响应中,返回TwiML以将原始调用方返回到会议(通过重定向到原始入站URL)

我不是Java开发人员,所以这可能是错误的,但是您需要的东西看起来有点像这样:

代码语言:javascript
运行
复制
@WebServlet("/dial/participant")
public class AddParticipantToConference extends HttpServlet {

    public static final String MODERATOR = System.getenv("MY_PHONE_NUMBER");
    public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID");
    public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN");

    @Override
    protected void doPost(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
            throws IOException {    
        String selectedOption = servletRequest.getParameter("Digits");

        VoiceResponse twiml;

        if(selectedOption != null){
            Call call = Call.creator(new PhoneNumber("+" + selectedOption), new PhoneNumber(MODERATOR),
        new URI("https://example.com/conference")).create();
        }

        twiml = new VoiceResponse.Builder().redirect("/conference").build();

        servletResponse.setContentType("text/xml");

        try {
            servletResponse.getWriter().print(twiml.toXml());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

你现在不需要statusCallback了。

如果这有帮助,请告诉我。

票数 4
EN

Stack Overflow用户

发布于 2017-11-18 00:51:13

这里有两名员工。

你可以的!您可以做的是使用REST进行出站呼叫,并让该调用返回带有会议动词的TwiML,并且具有相同的会议名称-例如,如果您创建了一个名为conference1的电话会议,您需要使用类似于以下内容的TwiML响应:

代码语言:javascript
运行
复制
<Response>
    <Dial>
        <Conference>conference1</Conference>
    </Dial>
</Response>

将出站调用连接到现有会议,或创建该会议的。

如果在现有调用中使用<Gather>谓词进行输入,那么也可以使用此解决方案。您希望重定向调用流,而不是创建一个全新的调用,所以只需在this回调中返回此TwiML即可。

如果您已经跟踪了Conference,还可以通过创建出站会议调用(这里的示例代码)以编程方式添加它们。类似于TwiML,如果电话会议不存在,Twilio将创建它;如果它确实存在,Twilio将向其添加人员。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47352223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档