Twilio 的状态和事件

问题描述 投票:0回答:1

我将 Scala 与 Twilio 的 java SDK 结合使用

我正在发送语音消息并配置当前事件以获取枚举 Number.Event 中所有值的 Webhook 响应

public class Number extends TwiML {
    public enum Event {
        INITIATED("initiated"),
        RINGING("ringing"),
        ANSWERED("answered"),
        COMPLETED("completed");

在进行异步调用后,我可以获得调用的状态,这是一个不同的枚举

public enum Status {
        QUEUED("queued"),
        RINGING("ringing"),
        IN_PROGRESS("in-progress"),
        COMPLETED("completed"),
        BUSY("busy"),
        FAILED("failed"),
        NO_ANSWER("no-answer"),
        CANCELED("canceled");

我运行了代码,发送了一条语音消息,回复了它,然后让 Twilio 挂断了。

现在,我正在查看 twilio 的监视器 -> 日志 -> 通话。

我可以看到,当我发起请求时,我得到了字段状态:queued

之后,我看到带有 CallStatus 字段的 multilpe webhook 请求: 发起铃声进行中已完成

  1. 我可以只订阅这4个活动吗? 发起、振铃、应答、完成
  2. 我不明白我可以获得什么 CallStatuses 值 例如,“已启动”在“事件”中定义,而“正在进行”在“状态”中定义

编辑:格式化

scala twilio twilio-api
1个回答
0
投票

不幸的是,我对Scala不熟悉。但是,您可以按照 StatusCallbackEvent 文档中的说明订阅事件:

如果您在 StatusCallbackEvent 中指定任何呼叫进度事件 参数,Twilio 将向 您在 POST 请求中提供的 StatusCallback URL。

您可以指定的通话进度事件有:

已启动 - Twilio 将您的呼叫从队列中删除并开始拨号。

响铃 - 电话开始响铃。

已接听 - 呼叫已接听。如果指定了此事件,Twilio 将发送正在进行的状态。

已完成 - 呼叫已完成,无论终止状态如何(可以是忙、已取消、已完成、失败或无人应答)。

这里是 Twilio 文档中的代码,显示了如何在 Java 中设置状态回调事件

// Install the Java helper library from twilio.com/docs/java/install

import com.twilio.Twilio;
import com.twilio.http.HttpMethod;
import com.twilio.rest.api.v2010.account.Call;
import com.twilio.type.PhoneNumber;

import java.net.URI;
import java.util.Arrays;

public class Example {
    // Find your Account SID and Auth Token at twilio.com/console
    // and set the environment variables. See http://twil.io/secure
    public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID");
    public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN");

    public static void main(String[] args) {
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        Call call = Call.creator(
                new com.twilio.type.PhoneNumber("+14155551212"),
                new com.twilio.type.PhoneNumber("+18668675310"),
                URI.create("http://demo.twilio.com/docs/voice.xml"))
            .setMethod(HttpMethod.GET)
            .setStatusCallback(URI.create("https://www.myapp.com/events"))
            .setStatusCallbackEvent(
                Arrays.asList("initiated",
                "answered"))
            .setStatusCallbackMethod(HttpMethod.POST)
            .create();

        System.out.println(call.getSid());
    }
}

如果您使用上述内容,“https://www.myapp.com/events”端点(您需要自己自定义 url 和主机)将在调用通过各种状态时接收 webhook。

© www.soinside.com 2019 - 2024. All rights reserved.