Twilio отправляет статус завершения вызова для всех вызовов - PullRequest
0 голосов
/ 20 марта 2020

Я настраивал статусные обратные вызовы для вызовов в nodeJS. Я настроил «ИЗМЕНЕНИЯ СОСТОЯНИЯ ВЫЗОВА» в конфигурации номера телефона, чтобы сделать POST-запрос к моему узлу. Но twilio, похоже, отправляет статус вызова завершенного для всех вызовов, независимо от того, был ли ответ «занят», «оставлен без ответа» или «завершен».

Вот мой код узла для отображения статуса вызова, отправленного Twilio:

app.post("/status", (req, res) => {
  res.sendStatus(200);
  console.log(req.body);
});

Выход для занятого вызова:

{
   ApiVersion: '2010-04-01',
   Called: '',
   CallStatus: 'completed',
   Duration: '15',
   From: 'client:AbrasiveHannahLiberty',
   CallDuration: '15',
   Direction: 'inbound',
   Timestamp: 'Fri, 20 Mar 2020 05:43:09 +0000',
   AccountSid: 'ACxxxxxxxx',
   CallbackSource: 'call-progress-events',
   ApplicationSid: 'APxxxxxxxx',
   Caller: 'client:AbrasiveHannahLiberty',
   SequenceNumber: '0',
   To: '',
   CallSid: 'CAxxxxxxxx'
 }

1 Ответ

1 голос
/ 20 марта 2020

В клиентских вызовах Twilio есть две ветви вызова. Когда клиент Twilio выполняет исходящий вызов, это родительский участок. Twilio автоматически отвечает на этот участок вызова, поэтому можно получить доступ к TwiML, связанному с вашим URL-адресом голосового запроса, все вызовы приведут к завершенным вызовам.

После выполнения вызова клиента определенное вами приложение TwiML (и переданное клиенту Twilio через токен доступа) имеет URL-адрес запроса, который используется для получения TwiML, поэтому Twilio знает, что делать с вызовом. и, например, помещает исходящий вызов в коммутируемую телефонную сеть publi c (PSTN), дочернюю ветвь.

В этом URL-адресе запроса используется TwiML, который должен использовать глагол Dial с существительным Number и statusCallback URL, чтобы получить статус, который вы ищете.

Голос TwiML ™: Номер

...