package com.voxeo.moho.remote.sample; import java.net.URI; import javax.media.mscontrol.join.Joinable.Direction; 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.AnsweredEvent; import com.voxeo.moho.event.CallCompleteEvent; import com.voxeo.moho.event.HangupEvent; import com.voxeo.moho.event.JoinCompleteEvent; import com.voxeo.moho.event.Observer; import com.voxeo.moho.remote.MohoRemote; import com.voxeo.moho.remote.impl.MohoRemoteImpl; public class TwoCallsJoinSample implements Observer { static MohoRemote mohoRemote; /** * @param args */ public static void main(String[] args) { mohoRemote = new MohoRemoteImpl(); mohoRemote.addObserver(new TwoCallsJoinSample()); mohoRemote.connect(new SimpleAuthenticateCallbackImpl("usera", "1", "", "voxeo"), "localhost", "localhost"); try { Thread.sleep(100 * 60 * 1000); } catch (InterruptedException e) { e.printStackTrace(); } } @State public void outboundAnswered(final AnsweredEvent<Call> event) { System.out.println(event); // inCall.join(event.getSource(), JoinType.DIRECT, Direction.DUPLEX); } @State public void handleInvite(final IncomingCall call) { call.answer(); call.addObserver(this); CallableEndpoint endpoint = (CallableEndpoint) mohoRemote.createEndpoint(URI.create("sip:sipuserf@127.0.0.1:5678")); Call outboundCall = endpoint.createCall(call.getAddress()); outboundCall.addObserver(this); outboundCall.join(call, JoinType.DIRECT, Direction.DUPLEX); } @State public void joinComplete(final JoinCompleteEvent event) { System.out.print("Join complete:" + event.getSource() + ":" + event.getCause()); } @State public void CallComplete(final CallCompleteEvent event) { System.out.print("Call complete:" + event.getSource() + ":" + event.getCause()); } @State public void handleHangup(final HangupEvent event) { System.out.println(event.getSource()); } }