呼叫者无法连接到会议

问题描述 投票:0回答:1

我正在尝试使用 Twilio 通过一种对讲机连接工作人员(所有工作人员都获得 JWT 以使用 Javascript SDK 进行浏览器调用),为此,当工作人员按下会议按钮时,我使用 Twiml 动词会议在浏览器中,它发送活动工作人员的列表(除了发起会议的工作人员),我使用 callSid 作为会议的名称以使其唯一,并使用 CallResource 将每个工作人员放入会议中。

但是列表中的工作人员开始听会议室的等待音乐,但是呼叫者一打开就自动结束连接,甚至没有结束会议,我不知道这是怎么回事代码,我正在关注 https://www.twilio.com/docs/voice/twiml/conference

中的会议文档

以下是需要创建会议时调用的方法:

public VoiceResponse ConferenceTalk(List<string> recipients, string caller, string callSid)
{
    TwilioClient.Init(my_account_sid, my_auth_token);
    var confName = $"wt_{callSid}";

    foreach (var recipient in recipients)
    {
        CallResource.Create(
            url: new Uri($"{this.publicUrl}/Conference/WtConference/{confName}"),
            to: new Twilio.Types.Client($"client:{recipient}"),
            from: new Twilio.Types.Client(caller));
    }

    var response = new VoiceResponse();

    var dial = new Dial();
    dial.Conference(confName,
        startConferenceOnEnter: true,
        endConferenceOnExit: true);

    response.Append(dial);

    return response;
}

这是具有 url 属性的

CallResource
目标的端点:

[HttpPost]
public TwiMLResult WtConference()
{
    var confName = Request.Url.Segments[Request.Url.Segments.Length - 1];
    var response = new VoiceResponse();
    var dial = new Dial();
    dial.Conference(confName);
    response.Append(dial);
    return TwiML(response);
}
c# twilio .net-4.8 twilio-programmable-voice
1个回答
0
投票

我觉得发生这一切所需的时间可能会导致您出现问题。 Twilio Voice SDK 可能不是这方面的最佳产品。我可能需要观看一段展示交互如何工作的视频才能完全致力于此。

与此同时,我可能会尝试通过在 API 调用中发送会议的 TwiML 来加快人们加入会议的速度,而不是等待 Webhook。例如:

        public VoiceResponse ConferenceTalk(List<string> recipients, string caller, string callSid)
        {
            TwilioClient.Init(my_account_sid, my_auth_token);
            var confName = $"wt_{callSid}";

            var outboundResponse = new VoiceResponse();
            var outboundDial = new Dial();
            outboundDial.Conference(confName);
            outboundResponse.Append(outboudDial);

            foreach (var recipient in recipients)
            {
                CallResource.Create(
                    twiml: outboundResponse,
                    to: new Twilio.Types.Client($"client:{recipient}"),
                    from: new Twilio.Types.Client(caller));
            }

            var response = new VoiceResponse();

            var dial = new Dial();
            dial.Conference(confName,
                startConferenceOnEnter: true,
                endConferenceOnExit: true);

            response.Append(dial);

            return response;
        }

我说 Twilio Voice 可能不是最适合此操作的,因为在 Twilio 后端,这会经历为拨打电话而构建的整个堆栈。出站呼叫的速率为每秒 1 个呼叫,因此这可能会减慢列表中的呼叫速度。

您可以考虑使用 Twilio Video SDK(您可以使用 Twilio Video 产品进行纯音频通话)。为此,您需要能够触发每个工作人员加入一个房间,然后用于分发音频。每秒的通话次数没有限制,工作人员只需要连接到一个房间,您的应用程序就能够控制谁可以在任何时候通话。

© www.soinside.com 2019 - 2024. All rights reserved.