package ch.loway.oss.ari4java.sandbox;
import java.util.List;
import ch.loway.oss.ari4java.ARI;
import ch.loway.oss.ari4java.AriVersion;
import ch.loway.oss.ari4java.generated.ActionApplications;
import ch.loway.oss.ari4java.generated.ActionAsterisk;
import ch.loway.oss.ari4java.generated.ActionEvents;
import ch.loway.oss.ari4java.generated.Application;
import ch.loway.oss.ari4java.generated.AsteriskInfo;
import ch.loway.oss.ari4java.generated.Message;
import ch.loway.oss.ari4java.generated.Variable;
import ch.loway.oss.ari4java.tools.AriCallback;
import ch.loway.oss.ari4java.tools.RestException;
import ch.loway.oss.ari4java.tools.http.NettyHttpClient;
public class TestARI {
public static void main(String[] args) {
ARI ari = new ARI();
NettyHttpClient hc = new NettyHttpClient();
try {
hc.initialize("http://192.168.0.194:8088/", "admin", "admin");
ari.setHttpClient(hc);
ari.setWsClient(hc);
ari.setVersion(AriVersion.ARI_0_0_1);
ActionApplications ac = ari.getActionImpl(ActionApplications.class);
List<? extends Application> alist = ac.list();
for (Application app : alist) {
System.out.println(app.getName());
}
ActionAsterisk aa = ari.getActionImpl(ActionAsterisk.class);
AsteriskInfo ai = aa.getInfo("");
System.out.println(ai.getSystem().getEntity_id());
// Let's try async
aa.getInfo("", new AriCallback<AsteriskInfo>() {
@Override
public void onSuccess(AsteriskInfo result) {
System.out.println(result.getSystem().getEntity_id());
}
@Override
public void onFailure(RestException e) {
e.printStackTrace();
}
});
aa.getGlobalVar("AMPMGRPASS", new AriCallback<Variable>() {
@Override
public void onSuccess(Variable result) {
System.out.println(result.getValue());
}
@Override
public void onFailure(RestException e) {
e.printStackTrace();
}
});
aa.setGlobalVar("WHATUP", "Hoo", new AriCallback<Void>() {
@Override
public void onSuccess(Void result) {
System.out.println("Done");
}
@Override
public void onFailure(RestException e) {
e.printStackTrace();
}
});
aa.getGlobalVar("WHATUP", new AriCallback<Variable>() {
@Override
public void onSuccess(Variable result) {
System.out.println(result.getValue());
}
@Override
public void onFailure(RestException e) {
e.printStackTrace();
}
});
System.out.println("Waiting for response...");
ActionEvents ae = ari.getActionImpl(ActionEvents.class);
ae.eventWebsocket("hello,goodbye", new AriCallback<Message>() {
@Override
public void onSuccess(Message result) {
System.out.println("ws="+result);
}
@Override
public void onFailure(RestException e) {
e.printStackTrace();
}
});
Thread.sleep(5000); // Allow wheels to turn before applying brakes
ari.closeAction(ae);
Thread.sleep(5000);
hc.destroy();
} catch (Exception e) {
e.printStackTrace();
}
}
}