2016-05-12 4 views
0

誰かが私のTwilio番号を呼び出してからTwilioが呼び出し元をエージェントに接続しようとするユースケースがあります。エージェント#が拾うとき、私はScreenCallプロセスを使ってそれが人間であることを確認し、数字を押す必要があります。問題はScreenCallプロセスに入るとすぐにすべてがエージェント側で機能しますが、番号を押すと発信者は決して接続されません。ScreenCallプロセスがコールに接続しません

私には何が欠けていますか?スクリーンコールを削除するとすぐに、エージェントが応答するとすぐに発信者とエージェントが接続されます。

public ActionResult CallAgents(string From, string To, string CallSid) 
    { 
     var response = "<Response><Dial action = '" + Url.Action("EndCall", "Call") + "'> 
<Number action = '" + Url.Action("ScreenCall", "Call") + "'>1231231234</Number></Dial></Response>"; 

     return new TwiMLResult(response); 
    } 

public ActionResult ScreenCall(string From, string To, string CallSid) 
    { 
     var response = new TwilioResponse(); 

     response.BeginGather(new { action = "AnswerCall", numDigits = 1 }) 
      .Say("Press any key to accept the call.") 
      .EndGather(); 


     return new TwiMLResult(response); 
    } 

public ActionResult AnswerCall(string From, string To, string CallSid) 
    { 
     var response = new TwilioResponse().Say("Thank you, you are now being connected.").Record(); 

     return new TwiMLResult(response); 
    } 

答えて

0

response.BeginGather(新しい{アクション= "answerCallの"、numDigits = 1})上記で

AnswerCallは、単に文字列であるように見えます。 action attribute<Gather>の場合、絶対URLまたは相対URLが値として必要です。エージェントが数字の入力を完了すると、TwilioはこのURLに対してGETまたはPOSTリクエストを行います。 Twilioはこの要求をした後、あなたの応答で受け取ったTwiMLを使って現在の通話を続行します。

また、このチュートリアルでは例をスクリーニングコードの完全なコールをチェックアウトすることができます:https://www.twilio.com/docs/tutorials/walkthrough/ivr-screening/csharp/mvc#4

がスニペットエージェントがコールには次のようになりスクリーニングするとき:

// POST: Agent/ScreenCall 
[HttpPost] 
public ActionResult ScreenCall(string from) 
{ 
    var response = new TwilioResponse(); 
    var incomingCallMessage = "You have an incoming call from: " + 
           SpelledPhoneNumber(from); 
    response.BeginGather(new {numDigits = 1, action = Url.Action("ConnectMessage")}) 
     .Say(incomingCallMessage) 
     .Say("Press any key to accept") 
     .EndGather(); 

    response.Say("Sorry. Did not get your response"); 
    response.Hangup(); 

    return TwiML(response); 
} 

// GET: Agent/ConnectMessage 
public ActionResult ConnectMessage() 
{ 
    return TwiML(new TwilioResponse() 
     .Say("Connecting you now...")); 
} 
+0

が、私はそれを切り替えてみましたが、ありません変化する。 – ToddB

+0

問題が見つかりました。 screenCallが処理され、誰かが呼び出しを受け付けると、それは "レコード"コマンドを提供します。サンプルが何をやっているのかを理解して、それが私のものではないことを理解してください。 – ToddB

関連する問題