/* * Jitsi, the OpenSource Java VoIP and Instant Messaging client. * * Copyright @ 2015 Atlassian Pty Ltd * * 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 net.java.sip.communicator.service.protocol; /** * Provides operations necessary to create and handle conferencing calls. * * @author Emil Ivov * @author Lubomir Marinov */ public interface OperationSetTelephonyConferencing extends OperationSet { /** * Creates a conference call with the specified callees as call peers. * * @param callees the list of addresses that we should call * @return the newly created conference call containing all CallPeers * @throws OperationFailedException if establishing the conference call * fails * @throws OperationNotSupportedException if the provider does not have any * conferencing features. */ public Call createConfCall(String[] callees) throws OperationFailedException, OperationNotSupportedException; /** * Creates a conference call with the specified callees as call peers. * * @param callees the list of addresses that we should call * @param conference the <tt>CallConference</tt> which represents the state * of the telephony conference into which the specified callees are to be * invited * @return the newly created conference call containing all CallPeers * @throws OperationFailedException if establishing the conference call * fails * @throws OperationNotSupportedException if the provider does not have any * conferencing features. */ public Call createConfCall(String[] callees, CallConference conference) throws OperationFailedException, OperationNotSupportedException; /** * Invites the callee represented by the specified uri to an already * existing call. The difference between this method and createConfCall is * that inviteCalleeToCall allows a user to transform an existing 1-to-1 * call into a conference call, or add new peers to an already established * conference. * * @param uri the callee to invite to an existing conf call. * @param call the call that we should invite the callee to. * @return the CallPeer object corresponding to the callee represented by * the specified uri. * @throws OperationFailedException if inviting the specified callee to the * specified call fails * @throws OperationNotSupportedException if allowing additional callees to * a pre-established call is not supported. */ public CallPeer inviteCalleeToCall(String uri, Call call) throws OperationFailedException, OperationNotSupportedException; /** * Sets up a conference with no participants, which members of * <tt>chatRoom</tt> can join. Returns a <tt>ConferenceDescription</tt> * that describes how the call can be joined. * @param chatRoom the <tt>ChatRoom</tt> for which to set up a conference. * @return a <tt>ConferenceDescription</tt> corresponding to the created * conference. */ public ConferenceDescription setupConference(ChatRoom chatRoom); }