2016-03-28 13 views
0

私は電話をかけようとしています。私は正常に電話をかけることができますが、「申し訳ありませんが、アプリケーションエラーが発生しました」と言っています。これは、応答XMLの問題となる可能性があります。以下はTwiMLResponseとJavaのダイヤル動詞

は、呼び出しを行うためのコードは次のとおりです。

以下
@RequestMapping(value = "/makeCall", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) 
    public @ResponseBody 
    String makeCall(@RequestBody TwilRequest twilRequest, HttpServletRequest request) { 

    .... 
    Map<String, String> params = new HashMap<String, String>(); 
    params.put("From", CallerID); 
    params.put("To", addPulsIfNot(twilRequest.getToPhone())); 
    params.put(
    "Url", "http://example.com/ws/twil/voiceResponse?phone=9198989..."); 

    ..... 
    } 

は呼び出しと応答XMLを返す応答サービスです:

@RequestMapping(value = "/voiceResponse", method = RequestMethod.GET) 
    public @ResponseBody String voiceResponse(HttpServletRequest request, 
    HttpServletResponse response) throws IOException { 
    TwiMLResponse twiml = new TwiMLResponse(); 
     Dial dial = new Dial(addPulsIfNot(phone)); 
     try { 
     dial.append(client); 
     twiml.append(dial); 
     } catch (TwiMLException e) { 
     e.printStackTrace(); 
    } 
    response.setContentType("Application/xml"); 
    return twiml.toXML(); 
    } 

私が間違っているのかわからないです。助けてください。前もって感謝します。

+1

これはローカルまたはサーバーで実行していますか? Twilioダッシュボードの[モニタ](https://www.twilio.com/user/account/monitor/alerts)セクションをチェックして、エラーが実際に何かを確認できますか? – philnash

+1

ありがとうphilnash、今問題は、method = RequestMethod.GETでした。そのPOSTはPOSTでなければなりません。それは他人を助けることができます。 – Dharmraj

+0

Aha!実際には、[APIへのリクエストで使用する方法](https://www.twilio.com/docs/api/rest/making-calls#post-parameters-optional)を設定することができます。ただし、POSTを使用することをお勧めします。喜んでそれはあなたのためにすべて今働いています。 – philnash

答えて

3

問題は方法=RequestMethod.GETでした、POSTでなければなりません。

API requestで使用する方法を特定することができます。 POSTが推奨され、デフォルトです。

この例ではTwilioは、コールを処理するためにTwiMLをフェッチするhttp://demo.twilio.com/docs/voice.xmlに掲載します:

// Build a filter for the CallList 
List<NameValuePair> params = new ArrayList<NameValuePair>(); 
params.add(new BasicNameValuePair("Url", "http://demo.twilio.com/docs/voice.xml")); 
params.add(new BasicNameValuePair("To", "client:tommy")); 
params.add(new BasicNameValuePair("From", "+14158675309")); 

しかし、ここでTwilioは、コールを処理するためにTwiMLをフェッチするhttp://demo.twilio.com/docs/voice.xmlにGETリクエストを送信します。

// Build a filter for the CallList 
List<NameValuePair> params = new ArrayList<NameValuePair>(); 
params.add(new BasicNameValuePair("Url", "http://demo.twilio.com/docs/voice.xml")); 
params.add(new BasicNameValuePair("To", "+14155551212")); 
params.add(new BasicNameValuePair("SendDigits", "1234#")); 
params.add(new BasicNameValuePair("From", "+18668675309")); 
params.add(new BasicNameValuePair("Method", "GET")); 
+0

ありがとうメガン、それは動作します – Dharmraj

関連する問題