Java program for connecting to the FreeSWITCH XML-RPC
I would like to show simple Java program which use XML-RPC interface to do some freeswitch commands.
We should on freeswitch console load mod_xml_rpc:
Worth checking out if it works, in web browser type:
Next we download Apache XML-RPC library.
Now we create Java program (using Apache XML-RPC):
After running this simple Java program we can see on Java console:
http://fshost8080/webapi/helpIf you see "FreeSWITCH help" it works.
Next we download Apache XML-RPC library.
Now we create Java program (using Apache XML-RPC):
package fstest1; import java.net.URL; import java.util.Scanner; import org.apache.xmlrpc.client.XmlRpcClient; import org.apache.xmlrpc.client.XmlRpcClientConfigImpl; public class FsTest1 { public static void main(String[] args) { System.out.println("------ hello freeswitch -------\n"); XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); XmlRpcClient client = new XmlRpcClient(); try { config.setServerURL(new URL("http://fshost:8080/RPC2")); config.setBasicUserName("freeswitch"); config.setBasicPassword("works"); client.setConfig(config); System.out.println("--- call 1000 1001 (press Enter) ---"); new Scanner(System.in).nextLine(); String resp = (String)client.execute("freeswitch.api", new Object[]{"originate", "user/1000 1001 xml default"}); System.out.println(resp); System.out.println("--- show channels (press Enter) ---"); new Scanner(System.in).nextLine(); resp = (String)client.execute("freeswitch.api", new Object[]{"show", "channels"}); System.out.println(resp); int idx = resp.indexOf("\n"); resp = resp.substring(idx); idx = resp.indexOf(","); String uuid = resp.substring(1, idx); System.out.println("--- uuid_transfer " + uuid + " 5000 (press Enter) ---"); new Scanner(System.in).nextLine(); resp = (String)client.execute("freeswitch.api", new Object[]{"uuid_transfer", uuid + " 5000"}); System.out.println(resp); System.out.println("--- show channels (press Enter) ---"); new Scanner(System.in).nextLine(); resp = (String)client.execute("freeswitch.api", new Object[]{"show", "channels"}); System.out.println(resp); System.out.println("--- uuid_kill " + uuid + " (press Enter) ---"); new Scanner(System.in).nextLine(); resp = (String)client.execute("freeswitch.api", new Object[]{"uuid_kill", uuid}); System.out.println(resp); } catch (Exception ex) { ex.printStackTrace(); } System.out.println("--- bye freeswitch ---"); } }
After running this simple Java program we can see on Java console:
------ hello freeswitch ------- --- call 1000 1001 (press Enter) --- +OK 0e913ce9-6c86-4f28-a6ed-7356084873bc --- show channels (press Enter) --- uuid,direction,(...),sent_callee_num 0e913ce9-6c86-4f28-a6ed-7356084873bc,outbound,(...),1001 cb6a78bf-ce83-4269-9af2-c100991adff3,outbound,(...),1000 2 total. --- uuid_transfer 0e913ce9-6c86-4f28-a6ed-7356084873bc 5000 (press Enter) --- +OK --- show channels (press Enter) --- uuid,direction,(...),cid_num,(...), dest,(...) 0e913ce9-6c86-4f28-a6ed-7356084873bc,outbound,(...)1000,(...),5000,(...) 1 total. --- uuid_kill 0e913ce9-6c86-4f28-a6ed-7356084873bc (press Enter) --- +OK --- bye freeswitch ---A lot of fun :)
Komentarze