私はJavaを使用していますが、質問は言語に依存しないため、twilio-PHPタグの下にも投稿しました。
私のアプリケーションは、A と B の 2 人の顧客を接続する必要があります。会話を書き起こし、一方が応答せず、他方をボイスメールにスクリーニングしたかどうかを調べたいと考えています。
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 が応答を「調査」しているようで、ボイスメールに到達したことを理解するまでに、バックグラウンド ノイズが録音されていました。これはひどいユーザーエクスペリエンスです。何かアドバイス?
さらに、私の通話処理サーブレットは次のことを行います。
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() は 2 番目の呼び出しでは null です。つまり、顧客 A と B の間で会話があったかどうかはわかりません。
さらに、[TwiML Verb Record] ( https://www.twilio.com/docs/api/twiml/record ) は書き起こしを許可しますが、
twimlResponse.append(new Record());
会話を停止し、顧客の 1 人を録音します。
そのため、REST API に文字起こしを指示することはできず、TwiML Verbs は会話を希望どおりに記録することさえできません。
誰でも助けることができますか?
ありがとう。