4

C# で Twilio を使用しているときに小さな問題が発生しました。基本的に、.Dial メソッドが呼び出された後の呼び出しの制御に問題があります。

次のコードがあるとします。

   TwilioResponse _twiml = new TwilioResponse();
   _twiml.Dial(RedirectPhoneNumner, new { action = Url.Action("BusyCallAction"), timeout = 5 });`

以下は私のアプリケーションでレンダリングされています:

<Response>
<Dial action="/Home/BusyCallAction" timeout="5">*RedirectPhoneNumber*</Dial>
</Response>

テスト目的で、 5 秒のタイムアウトを追加しました。タイムアウトが経過すると、ユーザーを次のコントローラーにリダイレクトする代わりに、呼び出しが終了します。

[HttpPost]
public ActionResult BusyCallAction(string dialCallStatus)
    {
        if (dialCallStatus == "busy")
        {
            _twiml.Say(dialCallStatus);
            //more code here
        }
        return TwiML(_twiml);
    }

注: ダイヤル メソッドのデフォルトのメソッド属性がPOSTに設定されているため、このメソッドには HttpPost データ アノテーションがあります。

通話に応答したか、通話中であったかを知る必要があります。

4

1 に答える 1

3

注:この質問は、Twilio のエージェントの 1 人によって回答されました。私は彼に答えをここに投稿するように言いましたが、彼はまだSO アカウントを持っていません。

解決策は確かに非常に単純で、コードは期待どおりに機能しますが、

if (dialCallStatus == "busy")
        {
            _twiml.Say(dialCallStatus);
            //more code here
        }

このテスト シナリオではトリガーされません。タイムアウトが発生すると、ステータスは「無応答」になります。ここで指定されているとおりです: https://www.twilio.com/docs/api/twiml/dial

この回答が同じ状況の人に役立つことを願っています。

于 2014-09-12T02:59:05.363 に答える