1

我正在使用 Java,但问题与语言无关,所以我也将其发布在 twilio-PHP 标签下。

我的应用程序需要连接两个客户:A 和 B。我想转录对话并查明其中一方是否没有接听并将另一方屏蔽到语音邮件。

我正在按照点击通话教程中的步骤进行操作

但是,看起来Rest API支持录制但不支持转录。我成功地可以做到:

    Map<String, String> params = new HashMap<String, String>();
    params.put("From", myTwilioNumber);
    params.put("To", customerAPhoneNumber);
    params.put("Url", "http://MyHandler.jsp");
    params.put("IfMachine", "Hangup");
    params.put("Record", "true");
    Call call = client.getAccount().getCallFactory().create(params);

这会记录整个对话,但不会转录!

作为旁注 -

    params.put("IfMachine", "Hangup"); 

确实挂断了,当到达语音邮件时,但不是在留下带有随机噪音的语音邮件之前。看起来 Twilio 正在“探测”响应,当它理解到语音邮件时,背景噪音已经被记录下来。这是糟糕的用户体验。有什么建议吗?

此外,我的呼叫处理 servlet 还可以:

TwiMLResponse twimlResponse = new TwiMLResponse();
Say sayMessage = new Say(
    "Hi, customer A, stay on line to speak with customer B?");
twimlResponse.append(sayMessage);
Dial dial = new Dial(customerBPhoneNumber);
twimlResponse.append(dial);

但是当我查看TwiML Verbs时,没有地方可以设置 params.put("IfMachine", "Continue") 。因此,对于第二次调用,字段 call.getAnsweredBy() 为空。换句话说,我不知道客户 A 和 B 之间是否发生过对话。

此外,[TwiML 动词记录] ( https://www.twilio.com/docs/api/twiml/record ) 确实允许转录,但如果我这样做

twimlResponse.append(new Record());

它停止对话并记录其中一位客户。

因此,我无法指示 REST API 进行转录,而且 TwiML Verbs 甚至不会以我想要的方式记录对话。

任何人都可以帮忙吗?

谢谢。

4

1 回答 1

0

Twilio 开发人员布道者在这里。

恐怕在使用 REST API 记录通话的两段时,转录不可用。当录音时长少于 2 分钟时,仅可对动词所记录的单个消息进行转录<Record>

我建议记录通话并下载要发送到第三方转录服务的文件,以便转录更长的、像这样的 2 条腿的通话。

答录机检测而言,它是一项实验性功能,需要 Twilio 监听通话的前几秒以确定它是否是机器。<Dial>一个很好的替代方法是使用呼叫筛选,它也可以作为动词的一部分。这是一篇关于AMD 优缺点的好文章,也是对通过呼叫筛选使用人体检测的好描述

让我知道这是否有帮助。

于 2016-02-12T11:18:00.693 回答