/**
* $RCSfile: ,v $
* $Revision: $
* $Date: $
*
* Copyright (C) 2004-2011 Jive Software. All rights reserved.
*
* 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.sipmack.softphone;
import net.java.sipmack.media.MediaException;
import net.java.sipmack.sip.InterlocutorUI;
import net.java.sipmack.sip.SipRegisterStatus;
import net.java.sipmack.sip.event.CommunicationsListener;
import net.java.sipmack.softphone.gui.DefaultGuiManager;
import net.java.sipmack.softphone.listeners.InterlocutorListener;
import net.java.sipmack.softphone.listeners.SoftPhoneListener;
import java.util.List;
public interface SoftPhone {
/**
* Handle an UnregisterRequest
*/
public void handleUnregisterRequest();
/**
* Handle a Re-Register Request.
* This method will only have effect if the user has successfully registered beforeat least once before.
*/
public void handleReRegisterRequest();
/**
* Handle a RegisterRequest
*
* @param username username
* @param password password
*/
public void handleRegisterRequest(String username, String password);
/**
* Handle a RegisterRequest
*
* @param username username
* @param authName Authorization username
* @param password password
*/
public void handleRegisterRequest(String username, String authName, String password);
/**
* Handle an exit request
*/
public void handleExitRequest();
/**
* Return the DefaultGuiManager
*/
public DefaultGuiManager getDefaultGuiManager();
/**
* Create the softphone handlers and stack
*/
public void createSoftPhone(String server) throws MediaException;
/**
* Add SoftPhoneListener
*
* @param softPhoneListener
*/
public void addSoftPhoneListener(SoftPhoneListener softPhoneListener);
/**
* Add InterlocutorListener
*
* @param interlocutorListener
*/
public void addInterlocutorListener(InterlocutorListener interlocutorListener);
/**
* Remove InterlocutorListener
*
* @param interlocutorListener
*/
public void removeInterlocutorListener(InterlocutorListener interlocutorListener);
/**
* Returns the current interlocutors
*
* @return List<InterlocutorUI>
*/
public List<InterlocutorUI> getInterlocutors();
/**
* Add a CommunicationsListener
*
* @param communicationsListener CommunicationsListener
*/
public void addCommunicationsListener(CommunicationsListener communicationsListener);
/**
* Gets the current username
*
* @return The current connection username
*/
public String getUsername();
/**
* Gets the current server
*
* @return The current connection server
*/
public String getServer();
/**
* Return the current SIP connection status
*
* @return status
* @uml.property name="status"
*/
public SipRegisterStatus getStatus();
/**
* Handle a Hold request
*/
public void handleMute(InterlocutorUI iui, boolean mic);
}