【问题标题】:How to collect the user input when make a call using Twilio API?使用 Twilio API 拨打电话时如何收集用户输入?
【发布时间】:2021-04-09 02:51:31
【问题描述】:

我正在用 C# 开发一个简单的应用程序

  • 使用 Twilio 触发呼叫
  • 接听者来电后按*,按*后通话结束
  • 如果用户按下 * 则提供已完成状态,否则提供不同状态。

我可以拨打电话但无法接收用户输入或状态,我尝试了finishOnKey(),但没有成功,它始终提供已完成的状态。我没有从 Twilio 代码示例中得到太多帮助,有人可以重定向到正确的文章或提供代码来完成上述操作。

【问题讨论】:

  • 请分享您目前尝试过的代码。

标签: twilio twilio-api twilio-twiml


【解决方案1】:

这里是 Twilio 开发者宣传员。

成功接听电话后,无论通话是如何结束的,它到达的最终状态都是“完成”。你可以看到更多关于Twilio call statuses in this documentation的信息。您可以看到最终的通话状态可能是:

  • 已完成:呼叫已成功接听,然后结束
  • no-answer:Twilio 拨打了该号码,但在超时前没有应答
  • 占线:Twilio 拨了号码,但收到占线信号
  • 已取消:号码已拨打,但随后在接听之前使用 API 取消了呼叫
  • 失败:运营商无法接通电话

如果您使用<Gather> 获取用户输入,则应确保已将action attribute 设置为应用程序中的URL。当用户按下一个数字时,该 URL 将收到一个新的 webhook 请求。例如:

<Response>
  <Gather action="/gather_results" digits="1">
    <Say>... your content goes here ...</Say>
  </Gather>
</Response>

使用上述 TwiML,用户只需按 1 个键即可将呼叫移至下一阶段和 webhook '/gather_results'。

/gather_results 端点的请求将包含一个带有Digits 参数的主体。如果用户按下“*”,那么请求的正文将包括Digits=*,如果用户按下“1”,那么它将包括Digits=1。然后,您可以选择对这些结果做任何您喜欢的事情,包括挂断电话或记录提交的数字。

让我知道这是否有帮助。

【讨论】:

  • 抱歉,因为我们正在处理 twilio 许可证和所有问题,所以延迟响应。这是实际读出数字的代码,我们必须输入验证。如何使此代码像我们只需按 * 一样工作,它 verify.TwilioClient.Init(accountSid, authToken);验证资源验证; verify = VerificationResource.Create(to: "+1XXXXX", channel: "call", pathServiceSid: "VAXXXXX", locale: "en" );
  • 您好,不知道您现在要问什么。你能澄清一下吗?
  • 这里是要求 - 使用 Twilio 接收器触发呼叫,在收到呼叫后按 * 并在按后结束呼叫 * 如果用户按下,则提供状态完成 * 否则提供不同的状态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多