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其他例子。

希望这可以帮助你。

相关问题