package com.twilio.example; import com.twilio.Twilio; import com.twilio.rest.api.v2010.account.Call; import com.twilio.rest.api.v2010.account.CallCreator; import com.twilio.rest.api.v2010.account.IncomingPhoneNumber; import com.twilio.rest.api.v2010.account.Message; import com.twilio.rest.api.v2010.account.availablephonenumbercountry.Local; import com.twilio.rest.api.v2010.account.usage.Record; import com.twilio.rest.trunking.v1.Trunk; import com.twilio.rest.trunking.v1.TrunkCreator; import com.twilio.twiml.Play; import com.twilio.twiml.Say; import com.twilio.twiml.TwiML; import com.twilio.twiml.TwiMLException; import com.twilio.twiml.VoiceResponse; import com.twilio.type.PhoneNumber; import java.net.URI; import java.util.Iterator; public class Example { public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID"); public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN"); public static final PhoneNumber PHONE_NUMBER = new PhoneNumber("+18885551234"); /** * Example Twilio usage. * * @param args command line args * @throws TwiMLException if unable to generate TwiML */ public static void main(String[] args) throws TwiMLException { Twilio.init(ACCOUNT_SID, AUTH_TOKEN); Iterable<Record> usage = Record.reader().read(); for (Record record : usage) { System.out.println(record); } // Get a number IncomingPhoneNumber number = buyNumber(); System.out.println(number.getPhoneNumber()); // Send a text message Message message = Message.creator( ACCOUNT_SID, PHONE_NUMBER, number.getPhoneNumber(), "Hello world!" ).create(); System.out.println(message.getSid()); System.out.println(message.getBody()); // Make a phone call Call call = new CallCreator( ACCOUNT_SID, PHONE_NUMBER, number.getPhoneNumber(), URI.create("https://twilio.com") ).create(); System.out.println(call.getSid()); // Print all the messages Iterable<Message> messages = Message.reader().read(); for (Message m : messages) { System.out.println(m.getSid()); System.out.println(m.getBody()); } // Get some calls Iterable<Call> calls = Call.reader().pageSize(2).read(); for (Call c : calls) { System.out.println(c.getSid()); } Trunk trunk = new TrunkCreator() .setFriendlyName("shiny trunk") .setSecure(false) .create(); System.out.println(trunk); // TwiML TwiML twiml = new VoiceResponse.Builder() .say(new Say.Builder("Hello World!").build()) .play(new Play.Builder("https://api.twilio.com/cowbell.mp3").loop(5).build()) .build(); System.out.println(twiml.toXml()); } private static IncomingPhoneNumber buyNumber() { // Look up some phone numbers Iterable<Local> numbers = Local.reader(ACCOUNT_SID, "US").read(); // Buy the first phone number Iterator<Local> iter = numbers.iterator(); if (iter.hasNext()) { Local local = iter.next(); return IncomingPhoneNumber.creator( ACCOUNT_SID, local.getPhoneNumber() ).create(); } return null; } }