1

我們正在嘗試爲我們的web應用程序使用語音通話。 我們嘗試使用下面的代碼:在web應用中使用twilo進行語音通話

public class MakeCall { 
    public static final String ACCOUNT_SID = "ACbXXXXXXXXXXXXXXXXXXXXXXXX"; 
    public static final String AUTH_TOKEN = "545XXXXXXXXXXXXXXXXXXXXXXXX"; 
    public static final String TWILIO_NUMBER = "+185XXXXXXXXX"; 
    public static void main(String[] args) throws TwilioRestException { 
    TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN); 
    Account mainAccount = client.getAccount(); 
    CallFactory callFactory = mainAccount.getCallFactory(); 
    Map<String, String> callParams = new HashMap<String, String>(); 
    callParams.put("From",TWILIO_NUMBER); 
    callParams.put("To", "+919014512394"); 
    callParams.put("Url", "http://ahoy.twilio.com/voice/api/demo"); 
    Call call = callFactory.create(callParams); 
    System.out.println(call.getSid()); 
    } 
} 

從上面的代碼中,我們能聽到twilio客戶的聲音即,歡迎Twilio的語音演示應用程序。按1聽取明天的天氣預報。按2聽歌。按3創建或加入會議橋。按4將您的聲音錄製5秒鐘。

其實我們想通過從twilio數

調用與其他手機號碼,說基本上我們是新的twilio API.Plz指導我們 先感謝

回答

0

Twilio開發者傳道這裏。

當您調用該端點時,您編寫的代碼將啓動一個新的呼叫。如果你想發起一個新的電話,然後連接到另一個號碼,這樣你們兩個可以說話,你需要改變,稍微去做你的號碼Dials

這裏的工作AFULL例如,告訴您如何挑選你想要進行交談,然後撥打該人誰。

package com.twilio; 

import com.twilio.twiml.Gather; 
import com.twilio.twiml.Method; 
import com.twilio.twiml.Play; 
import com.twilio.twiml.Say; 
import com.twilio.twiml.TwiMLException; 
import com.twilio.twiml.VoiceResponse; 

import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.io.IOException; 
import java.util.HashMap; 

public class TwilioServlet extends HttpServlet { 

    public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { 
     // Create a dict of people we know. 
     HashMap<String, String> callers = new HashMap<String, String>(); 
     callers.put("+14158675309", "Curious George"); 
     callers.put("+14158675310", "Boots"); 
     callers.put("+14158675311", "Virgil"); 

     String fromNumber = request.getParameter("From"); 
     String knownCaller = callers.get(fromNumber); 
     String message; 
     if (knownCaller == null) { 
      // Use a generic message 
      message = "Hello Monkey"; 
     } else { 
      // Use the caller's name 
      message = "Hello " + knownCaller; 
     } 

     // Create a TwiML response and add our friendly message. 
     VoiceResponse twiml = new VoiceResponse.Builder() 
       .say(new Say.Builder(message).build()) 
       // Play an MP3 for incoming callers. 
       .play(new Play.Builder("http://demo.twilio.com/hellomonkey/monkey.mp3").build()) 
       .gather(new Gather.Builder() 
         .action("/handle-key") 
         .method(Method.POST) 
         .numDigits(1) 
         .say(new Say 
           .Builder("To speak to a real monkey, press 1. Press any other key to start over.") 
           .build()) 
         .build() 
       ) 
       .build(); 

     response.setContentType("application/xml"); 
     try { 
      response.getWriter().print(twiml.toXml()); 
     } catch (TwiMLException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
  1. 您有包含您的所有電話號碼
  2. 當按下一個號碼一個HashMap開始時,/手柄鍵端點被調用。這是用於撥打另一個號碼的邏輯發生

    package com.twilio; 
    
    import com.twilio.twiml.Dial; 
    import com.twilio.twiml.Number; 
    import com.twilio.twiml.Say; 
    import com.twilio.twiml.TwiMLException; 
    import com.twilio.twiml.VoiceResponse; 
    
    import javax.servlet.http.HttpServlet; 
    import javax.servlet.http.HttpServletRequest; 
    import javax.servlet.http.HttpServletResponse; 
    import java.io.IOException; 
    
    public class TwilioHandleKeyServlet extends HttpServlet { 
    
        @Override 
        public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { 
    
         String digits = request.getParameter("Digits"); 
         VoiceResponse twiml; 
         // Check if the user pressed "1" on their phone 
         if (digits != null && digits.equals("1")) { 
          // Connect 310 555 1212 to the incoming caller. 
          Number number = new Number.Builder("+13105551212").build(); 
          Dial dial = new Dial.Builder().number(number).build(); 
    
          // If the above dial failed, say an error message. 
          Say say = new Say.Builder("The call failed, or the remote party hung up. Goodbye.").build(); 
    
          twiml = new VoiceResponse.Builder().dial(dial).say(say).build(); 
         } else { 
          // If they didn't press 1, redirect them to the TwilioServlet 
          response.sendRedirect("/twiml"); 
          return; 
         } 
    
         response.setContentType("application/xml"); 
         try { 
          response.getWriter().print(twiml.toXml()); 
         } catch (TwiMLException e) { 
          e.printStackTrace(); 
         } 
        } 
    } 
    

你可以閱讀這一個完整的解釋,並發現這quickstart其他例子。

希望這可以幫助你。

相關問題