[英]Voice call using twilo in web application
我們正在嘗試將語音呼叫用於我們的Web應用程序。 我們嘗試使用以下代碼:
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的新手指導我們預先感謝
Twilio開發者傳道者在這里。
您編寫的代碼將在您調用該端點時發起新呼叫。 如果你想發起一個新的電話,然后連接到另一個號碼,這樣你們兩個人就可以說話了,你需要稍微改變一下。為你撥號碼。
這是一個完整的工作示例,向您展示如何選擇您想要與誰交談,然后撥打該人。
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();
}
}
}
按下數字后,將調用/ handle-key端點。 這是撥打另一個號碼的邏輯發生的地方
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(); } } }
您可以閱讀本文的完整說明,並在本快速入門中找到其他示例。
希望這可以幫助你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.