问题描述
当我在应用程序中获取StatusCallback时。我看到“收件人”字段为空。我正在使用Twilio JS客户端SDK初始化调用。如何将“收件人”字段设置为我要呼叫的客户端ID?
到目前为止,我的twilio TwiML函数设置如下:
function voiceResponse(event) {
// Create a TwiML voice response
const twiml = new VoiceResponse();
if(event.To) {
// Wrap the phone number or client name in the appropriate TwiML verb
// if is a valid phone number
const attr = isAValidPhoneNumber(event.To) ? 'number' : 'client';
const dial = twiml.dial({
callerId: event.From,answerOnBridge: "true" // answerOnBridge starts the duration when both parties are connected,but might be 1-2s off during connectivity
});
dial[attr]({
statusCallbackEvent: 'completed',statusCallback: 'https://aaaa.com/statuscallback',statusCallbackMethod: 'POST'
},event.To);
} else {
twiml.say('Thanks for calling!');
}
return twiml.toString();
}
function tokenGenerator(user_uid,match_uid) {
const capability = new ClientCapability({
accountSid: config.accountSid,authToken: config.authToken,// time that the token is alive,call does NOT terminate if token expired,time in seconds,24hr max
ttl: 60
});
capability.addScope(new ClientCapability.IncomingClientScope(user_uid));
capability.addScope(new ClientCapability.OutgoingClientScope({
applicationSid: config.twimlAppSid,clientName: user_uid,}));
return {
identity: user_uid,token: capability.toJwt(),};
};
解决方法
因为To是Twilio,所以没有为Twilio Client SDK填充To。这被视为呼叫的“父”分支。您需要查看正在告诉Twilio代表客户端执行的TwiML(通过您作为访问令牌提供的Application SID)来查看另一条腿(“子”腿)要去哪里。