簡體   English   中英

在web應用程序中使用twilo進行語音呼叫

[英]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();
        }
    }
}
  1. 您從包含所有電話號碼的HashMap開始
  2. 按下數字后,將調用/ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM