Twilio Node.js-在statusCallback

时间:2019-07-17 18:58:21

标签: twilio twilio-api

我正在尝试更新呼叫以将其拨入会议的功能,然后我想跟踪会议中有哪些电话号码。在更新呼叫之前,我已经有了电话号码,因此我的计划是将其作为参数添加到statusCallback中,然后当有人加入时,我会知道已加入(或离开了)哪个电话号码。这是我用来将通话更新为会议的Twiml。

let conferenceTwiml = function(conferenceName, phoneNumber) {
    let voiceResponse = new VoiceResponse();
    let options = {
        startConferenceOnEnter: true,
        endConferenceOnExit: false,
        waitUrl: <myWaitUrl>,
        statusCallbackEvent: "join leave",
        statusCallback: <myStatusCallBackUrl> + '?phoneNumber=' + phoneNumber,
        statusCallbackMethod:"POST",
    };

    voiceResponse.dial().conference(options, conferenceName);

    return voiceResponse.toString();
}

发送到statusCallback的正文如下:

{
    Coaching: 'false',
    FriendlyName: 'Room 123',
    SequenceNumber: '4',
    ConferenceSid: 'CF1c7a162ba5d0587f390a0d7e7c6eb9a5',
    EndConferenceOnExit: 'false',
    CallSid: 'CA5244195567afec7327bb24d65a2d2b15',
    StatusCallbackEvent: 'participant-join',
    Timestamp: 'Wed, 17 Jul 2019 18:18:27 +0000',
    StartConferenceOnEnter: 'true',
    Hold: 'false',
    AccountSid: <myAccountSid>,
    Muted: 'false' 
}

因此,您可以看到,没有附加的查询参数,实际上并没有任何标识信息。

根据文档,我遇到的问题是:

  

statusCallback URL由参加会议的第一位参与者设置,后续的statusCallbacks将被忽略。

因此,从本质上讲,我无法为要拨入会议的每个人动态设置phoneNumber参数,因为它将始终反映出第一个加入会议的人的phoneNumber。

我的问题是,如何获得有关谁参加或退出会议的识别信息?我的twilio福音传教士在哪里?谢谢!

1 个答案:

答案 0 :(得分:1)

Heyooo开发人员布道者在这里。 ?

有两种方法可以解决这个问题。

1。自己通过CallSid保留通话信息

当您收到初始电话并将您带入会议时,您可以执行以下操作以将通话信息(包括电话号码)保留在终端,并在以后使用CallSid进行引用您会收到statusCallback钩子。这样,当插入CallSid钩子时,您将可以使用可用的statusCallback掌握所有信息。

2。收到statusCallback

时获取呼叫信息

尽管statusCallback挂接不包含呼叫详细信息,但您始终可以做的是to fetch the call information again by using the CallSid。这样,您可以从StatusCallbackEvent获取信息,并在收到呼叫详细信息后将其与其他信息合并。


两种方法都有优点和缺点,但是在必须从“某处”获取呼叫信息的方式上相似。

第一种方法需要您找到一种保留呼叫信息的方法。这在您的应用程序中带来了额外的开销。

第二种方法使您无需保留呼叫详细信息,但引入了额外的API请求。

一如既往-这取决于您的情况。希望对您有所帮助。 :)