/** * Copyright 2010 Voxeo Corporation Licensed under the Apache License, Version * 2.0 (the "License"); you may not use this file except in compliance with the * License. You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law * or agreed to in writing, software distributed under the License is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ package com.voxeo.moho; import java.io.IOException; import javax.media.mscontrol.join.Joinable.Direction; import com.voxeo.moho.Participant.JoinType; import com.voxeo.moho.common.event.MohoUnjoinCompleteEvent; import com.voxeo.moho.sip.JoinDelegate; /** * used in internal */ public interface ParticipantContainer { void addParticipant(Participant p, JoinType type, Direction direction, Participant realJoined); MohoUnjoinCompleteEvent doUnjoin(Participant other, boolean callPeerUnjoin) throws Exception; Unjoint unjoin(Participant other, boolean callPeerUnjoin) throws Exception; void startJoin(Participant participant, JoinDelegate delegate); void joinDone(Participant participant, JoinDelegate delegate); public JoinDelegate getJoinDelegate(String participantID); // ///the following method is used for direct remote join. // return sdp async(by joinDelegate.doInviteReponse) or sync(not answered // incoming call) byte[] getJoinSDP() throws IOException; void processSDPAnswer(byte[] sdp) throws IOException; // return sdp async(by joinDelegate.doInviteReponse) or sync(not answered // incoming call) byte[] processSDPOffer(byte[] sdp) throws IOException; }