Greet Caller by Name in Java
package pbxsampleapp; import com.sun.net.httpserver.*; import java.io.*; import java.net.*; import java.util.*; public class GreetCallerbyName { public static void main(String[] args) { try { phoneBook = new LinkedHashMap<>(); phoneBook.put("+12345671", "John"); phoneBook.put("1001", "Kevin"); phoneBook.put("+12345675", "Jack"); System.out.println("Starting http server..."); HttpServer server = HttpServer.create(new InetSocketAddress(InetAddress.getByAddress(new byte[]{ 0, 0, 0, 0 }), 12345), 0); server.createContext("/greetcallerbyname", new PbxSampleApp.PBXRequestHandler()); server.start(); System.out.println("http server running on " + server.getAddress().toString()); } catch (IOException ex) { System.out.println("Error" + ex.toString()); } } static Map<String, String> phoneBook; static class PBXRequestHandler implements HttpHandler { @Override public void handle(HttpExchange httpExchange) throws IOException { Map parameters = parseQuery(httpExchange.getRequestURI().getQuery()); String callerName = "Sir or Madame"; if (parameters.containsKey("Caller") && phoneBook.containsKey(parameters.get("Caller")) ) { callerName = phoneBook.get(parameters.get("Caller").toString()).toString(); } httpExchange.getResponseHeaders().add("Content-type", "text/xml"); String response = "<?xml version=\"1.0\"?>" + "<Response>" + "<Speak>Hello " + callerName + "!</Speak>" + "</Response>"; httpExchange.sendResponseHeaders(200, response.length()); OutputStream os = httpExchange.getResponseBody(); os.write(response.getBytes()); os.close(); } private Map<String, String> parseQuery(String params) throws UnsupportedEncodingException { Map<String, String> query_pairs = new LinkedHashMap<String, String>(); String[] pairs = params.split("&"); String paramname; String value; for (String pair : pairs) { int idx = pair.indexOf("="); paramname = pair.substring(0, idx); value = pair.substring(idx + 1); query_pairs.put(paramname, value); System.out.println(String.format("%s: %s", paramname, value)); } return query_pairs; } } }
Code example 1
- Greeting the caller by using a phonebook
IN MORE DETAILS
- When your application receives a call, you will get a Request with all of the call details.
- Fill an associative array with telephone numbers and names.
- In this associative array (phonebook) we are looking for the Caller parameter of the Request.
- After that, send back the response OzML to the caller.
More information
- Greet Caller by Name in PHP
- Greet Caller by Name in C#.net
- Greet Caller by Name in Ruby
- Greet Caller by Name in VB
- Greet Caller by Name in ASP.net
- Greet Caller by Name in Perl
- How to record the voice of the Caller with Ozeki Phone System VoIP PBX
- How to transfer a call to another phone with Ozeki Phone System
- Greet Caller by Name in Python
- Greet Caller by Name in Java