Я пытаюсь создать колл-центр с помощью Twilio, я почти на месте, но сейчас застрял, потому что не могу получить передаваемые пользователем параметры.
Моя главная цель - разрешить клиентам звонить, но сначала они должны предоставить сначала их адреса электронной почты и имена, затем нажмите кнопку вызова клиента, я хочу получить пользовательские параметры на стороне агента.
Теперь я пытаюсь передать параметры, но не могу их получить.
Вот мой код для совершения и приема вызовов, а также для передачи и получения параметров
(на стороне клиента). Этот код позволяет исходящим звонкам, клиентам совершать звонки агентам call-центра
require __DIR__ . '/vendor/autoload.php';
use Twilio\Jwt\ClientToken;
$accountSid = '';
$authToken = '';
$appSid = '';
$capability = new ClientToken($accountSid, $authToken);
$capability->allowClientOutgoing($appSid);
$token = $capability->generateToken();
Таким образом, в соответствии с документацией, я должен передать пользовательские параметры следующим образом:
var params = {"name": "John", "email": "john@gmail.com"};
Twilio.Device.connect(params);
(сторона агента) Этот код разрешает входящие звонки от клиентов агентам.
$accountSid = '';
$authToken = '';
$capability = new ClientToken($accountSid, $authToken);
$capability->allowClientIncoming('joey');
$token = $capability->generateToken();
In на стороне агента я использую этот код для получения информации о клиенте или пользовательских параметров. Согласно документации, код для получения пользовательских параметров выглядит следующим образом:
if (connection.customParameters.hasOwnProperty("name")) {
let displayName = connection.customParameters.get("name");
console.log(displayName)
}
if (connection.customParameters.hasOwnProperty("email")) {
let customerID = connection.customParameters.get("email");
console.log(customerID)
}
, но я получаю неопределенное
Так что, когда клиент вызывает эту функцию twilio, он ставит вызов в очередь и назначает его оператор
вот код:
exports.handler = function(context, event, callback) {
let twiml = new Twilio.twiml.VoiceResponse();
twiml.say(" Please hold, while we connect you to one of our available agent ");
twiml.enqueue({
workflowSid: context.WORKFLOW_SID
}).task({}, `{"selected_skill":"operator"}`);
callback(null, twiml);
};
Затем отсюда доступный оператор примет задачу, затем наберет агента
Оператор набирает клиента вот так
{"skills":["operator"],"contact_uri":"client:joey"}
Пожалуйста, помогите Спасибо заранее