package com.voxeo.moho.sample; import javax.media.mscontrol.join.Joinable.Direction; import org.apache.log4j.Logger; import com.voxeo.moho.Application; import com.voxeo.moho.ApplicationContext; import com.voxeo.moho.Call; import com.voxeo.moho.CallableEndpoint; import com.voxeo.moho.IncomingCall; import com.voxeo.moho.Participant.JoinType; import com.voxeo.moho.State; import com.voxeo.moho.event.JoinCompleteEvent; import com.voxeo.moho.event.RingEvent; public class JoinTest implements Application { private static final Logger LOG = Logger.getLogger(JoinTest.class); ApplicationContext _ctx; @Override public void init(ApplicationContext ctx) { _ctx = ctx; } @Override public void destroy() { } @State public void handleInvite(final IncomingCall call) throws Exception { call.answer(); call.output("hello"); call.addObserver(this); call.setApplicationState("personal-call"); CallableEndpoint endpoint2 = (CallableEndpoint) _ctx.createEndpoint("sip:sipuserf@127.0.0.1:64536"); Call call2 = endpoint2.createCall("sip:martin@example.com"); try { call2.join(call, JoinType.BRIDGE, Direction.DUPLEX); } catch (Exception ex) { LOG.error("Error", ex); } } @State public void handleInvite(final JoinCompleteEvent event) throws Exception { System.out.println(event.getCause() + ".." + event.getParticipant()); } @State public void handleInvite(final RingEvent event) throws Exception { System.out.println("Received ring event" + event); } }