自定义Twilio的点击通话,转录和收集统计数据

时间:2016-02-11 20:03:32

标签: twilio twilio-php twilio-click-to-call

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

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

我正在执行click-to-call-tutorial

中的步骤

然而,看起来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()为null。换句话说,我不知道客户A和B之间的对话是否曾经发生过。

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

twimlResponse.append(new Record());

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

所以我无法指导REST API转录,而TwiML Verbs甚至没有以我想要的方式记录对话。

有人可以帮忙吗?

感谢。

1 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

我担心在使用REST API录制通话的两个分支时,转录不可用。 Transcription is only available on single messages recorded by the <Record> verb when the recording is under 2 minutes long

我建议录制通话并下载要发送给第三方转录服务的文件,以便转录更长时间的2条腿电话。

answering machine detection而言,它是一项实验性功能,需要Twilio收听通话的前几秒钟,以确定它是否是机器。作为<Dial>动词的一部分,一个很好的选择是使用呼叫筛选。这是关于pros and cons of AMD, as well as a good description of using human detection by call screening的好文章。

让我知道这是否有帮助。