从twilio子帐户进行调用(makeCall)

从twilio子帐户进行调用(makeCall),twilio,twilio-api,twilio-twiml,twilio-programmable-voice,Twilio,Twilio Api,Twilio Twiml,Twilio Programmable Voice,我正在使用twilio voice quickstart ios。目前我正在尝试使用twilio REST API从子帐户进行调用。这是我的makeCall端点 exports.handler = function(context, event, callback) { console.log("event :" + JSON.stringify(event)); var to = event.to; var from = event.from; let subaccountSi

我正在使用twilio voice quickstart ios。目前我正在尝试使用twilio REST API从子帐户进行调用。这是我的makeCall端点

exports.handler = function(context, event, callback) {
  console.log("event :" + JSON.stringify(event));
  var to = event.to;
  var from = event.from;
  let subaccountSid = event.sid;
  let subaccountAuthToken = event.token;
  const accountSid = context.ACCOUNT_SID;
  const authToken = context.AUTH_TOKEN;

  const client = require('twilio')(accountSid, authToken, {
     accountSid: subaccountSid
  });

  client.calls
    .create({
        url: 'http://twimlets.com/message?Message%5B0%5D=Hello%20from%20your%20subaccount',
        to: to,
        from: from
    }, function(err, call) {
        if (err) {
            console.log("err : " + err);
            callback(null, JSON.stringify(err));
        } else {
            console.log("call Sid " + call.sid);
            callback(null, call);
        }
  });
};
下面是从我的应用程序执行语音呼叫的代码

func performVoiceCall(uuid: UUID, client: String?, completionHandler: @escaping (Bool) -> Swift.Void) {
    guard let accessToken = fetchAccessToken() else {
        completionHandler(false)
        return
    }
    let dictionary = userdefaults.getSelectedNumbersSidAndAuth()
    let sid = dictionary["sid"]!
    let token = dictionary["token"]!
    let from = self.dialView.selectedNumberInDropdown

    let connectOptions: TVOConnectOptions = TVOConnectOptions(accessToken: accessToken) { (builder) in
        builder.params = [twimlParamTo : self.outgoingValue!, "sid" : sid, "from" : from, "token": token]
        builder.uuid = uuid
    }
    let call = TwilioVoice.connect(with: connectOptions, delegate: self)
    self.activeCall = call
    self.activeCalls[call.uuid.uuidString] = call
    self.callKitCompletionCallback = completionHandler
}
现在的问题是twilio的回调函数都没有被调用。(例如:如果被叫方或呼叫者断开呼叫,则不呼叫代理)。如果我从主帐户打电话,一切正常。但我必须从子账户打电话。
我怎样才能解决这个问题?是否需要从performVoiceCall函数调用makeCall端点?如果是的话,我怎么称呼这个?请让我知道。

如果一切都通过您的主帐户而不是子帐户工作,那么您是否使用主帐户详细信息创建访问令牌?您需要使用您的子帐户详细信息,并在子帐户中创建一个TwiML应用程序,用于拨打电话。对于每个子帐户,我是否需要创建TwiML应用程序?使用AppSid我需要创建accessToken,对吗?是的,你可以创建,所以你不需要每次都手动创建。我的身份验证失败了。这是我的终点。从子帐户创建apiKey、APISCREATE后是否需要更改任何其他信息身份验证未失败,但当被调用方或调用方断开连接或接收呼叫时,仍不会调用委托。@Philnash如果一切都从主帐户而不是从子帐户运行,那么,您是否正在使用主帐户详细信息创建访问令牌?您需要使用您的子帐户详细信息,并在子帐户中创建一个TwiML应用程序,用于拨打电话。对于每个子帐户,我是否需要创建TwiML应用程序?使用AppSid我需要创建accessToken,对吗?是的,你可以创建,所以你不需要每次都手动创建。我的身份验证失败了。这是我的终点。从子帐户创建apiKey、apiSecret后,我是否需要更改任何其他信息?身份验证未失败,但当被叫方或呼叫者断开连接或接收呼叫时,仍不会调用委托。@philnash