Номер доступа дружеское имя от студии Twilio
Мы создаем IVR и имеем несколько номеров на город для различных кампаний. Например: Метро, Автобус, Google, Facebook, Веб-сайт и т. Д.
Когда поступает звонок, мы создаем запрос на Salesforce с номером, но мы пропускаем кампанию.
Имея доступ к номеру CallFrom {{trigger.call.From}} и номеру CallTo {{trigger.call.To}}, мы хотели бы также получить доступ к дружественному имени номера.
Это Дружественное имя номера содержит кампанию, есть ли способ получить к нему доступ, чтобы оно было отправлено вместе с остальной информацией?
Спасибо
1 ответ
Twilio разработчик евангелист здесь.
Когда вы получаете входящий звонок от Twilio, вам отправляются только параметры запроса в документации, которые не включают понятное имя вашего номера.
Вы можете получить это число, используя функцию Twilio как часть вашего потока Studio. Вам нужно будет передать значение from в качестве аргумента функции, установив его в качестве параметра в настройках виджета, например так:
trigger.call.To который является номером входящего телефона.
Тогда ваша функция будет выглядеть примерно так:
exports.handler = function(context, event, callback) {
const phoneNumber = event.To;
const client = context.getTwilioClient();
client.incomingPhoneNumbers.list(
{
phoneNumber: phoneNumber
},
(err, data) => {
if (err) {
return callback(err);
}
const response = { FriendlyName: data.incomingPhoneNumbers[0].friendlyName };
callback(null, response);
}
);
};
Это вернет данные в ваш поток, и вы сможете получить к ним доступ позже в потоке как {{widgets.MY_WIDGET_NAME.parsed.FriendlyName}}
,
Дайте мне знать, если это поможет.
Немного старого поста, на всякий случай это может кому-то помочь...
Прежде всего, спасибо, Фил, за то, что показал мне дорогу. Мне пришлось немного изменить ваш код, чтобы он работал с 3.x Twilio Client API, и я добавил сам phoneNumber в качестве запасного значения. Эта версия "хорошо известна" и работает для меня на дату этого поста:
exports.handler = function(context, event, callback) {
const phoneNumber = event.To;
const client = context.getTwilioClient();
client.incomingPhoneNumbers.list(
{
phoneNumber: phoneNumber
},
(err, data) => {
if (err) {
return callback(err);
}
console.log("data = " + data);
var fName;
if (data.length) {
fName = data[0].friendlyName;
}
else {
fName = phoneNumber;
}
const response = { FriendlyName: fName };
callback(null, response);
}
);
};