我正在使用 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 甚至不会以我想要的方式记录对话。
任何人都可以帮忙吗?
谢谢。