package org.freeswitch.esl.client.example; /* * To change this template, choose Tools | Templates * and open the template in the editor. */ import org.freeswitch.esl.client.inbound.Client; import org.freeswitch.esl.client.inbound.InboundConnectionFailure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.Scanner; /** * * @author leif */ public class ExampleClient { private final Logger log = LoggerFactory.getLogger( this.getClass() ); private String host = "localhost"; private int port = 8021; private String password = "ClueCon"; private Client client; private HeartbeatThread hbThread; public void do_connect() throws InterruptedException { client = new Client(); client.addEventListener( new EslEventListener() ); log.info( "Client connecting .." ); try { client.connect( host, port, password, 2 ); } catch ( InboundConnectionFailure e ) { log.error( "Connect failed", e ); return; } log.info( "Client connected .." ); //client.setEventSubscriptions( "plain", "heartbeat BACKGROUND_JOB CUSTOM" ); client.setEventSubscriptions( "plain", "all" ); client.addEventFilter( "Event-Name", "heartbeat" ); client.addEventFilter( "Event-Name", "custom" ); client.addEventFilter( "Event-Name", "background_job" ); } public void close_client() { stopHeartBeatThread(); client.close(); } public void startHeartBeatThread() { hbThread = new HeartbeatThread(client); new Thread(hbThread).start(); } public void stopHeartBeatThread() { hbThread.shutdown(); } /** * @param args the command line arguments */ public static void main(String[] args) { ExampleClient test = new ExampleClient(); try { test.do_connect(); //FIXME.. the reconnect code that this is intended to implement requires refactoring. //test.startHeartBeatThread(); Scanner myInput = new Scanner(System.in); boolean notDone = true; while(notDone){ String Input1 = myInput.next(); if(Input1.equalsIgnoreCase("q")){ notDone = false; } Thread.sleep( 25000 ); } //test.stopHeartBeatThread(); test.close_client(); }catch(InterruptedException ie) { return; } } }