⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interlocutor.java

📁 开源项目openfire的完整源程序
💻 JAVA
字号:
/**
 * $Revision: $
 * $Date: $
 *
 * Copyright (C) 2007 Jive Software. All rights reserved.
 *
 * This software is published under the terms of the GNU Lesser Public License (LGPL),
 * a copy of which is included in this distribution.
 */

package net.java.sipmack.sip;

import net.java.sipmack.common.Log;
import net.java.sipmack.sip.event.CallListener;
import net.java.sipmack.sip.event.CallStateEvent;
import net.java.sipmack.softphone.gui.GuiCallback;

/**
 * Title: SIPark
 * Description:JAIN-SIP Audio/Video phone application
 *
 * @author Thiago Rocha Camargo (thiago@jivesoftware.com)
 */

public class Interlocutor implements InterlocutorUI, CallListener {
    private Call call;

    private GuiCallback guiCallback;

    public static String BUSY = "BUSY";

    public static String RINGING = "RINGING";

    public static String ALERTING = "ALERTING";

    /**
     * @param call The call to set.
     * @uml.property name="call"
     */
    public void setCall(Call call) {
        this.call = call;
        call.addStateChangeListener(this);
    }

    /**
     * @return Returns the call.
     * @uml.property name="call"
     */
    public Call getCall() {
        return call;
    }

    // InterlocutorUI
    public boolean isCaller() {
        return call.isIncoming();
    }

    public boolean onHoldMic() {
        return call.onHoldMic();
    }

    public boolean onHoldCam() {
        return call.onHoldCam();
    }

    public String getAddress() {
        return call.getAddress();
    }

    public String getName() {
        return call.getRemoteName();
    }

    public int getID() {
        return call.getID();
    }

    public String getCallState() {
        return call.getState();
    }

    public void setCallback(GuiCallback callback) {
        this.guiCallback = callback;
    }

    // CallListener
    public void callStateChanged(CallStateEvent evt) {
        try {
            guiCallback.update(this);

            if (evt.getNewState() == Call.DISCONNECTED) {
                guiCallback.remove(this);
            }
            if (evt.getNewState() != evt.getOldState()) {
                if (evt.getOldState() == Call.ALERTING) {
                    guiCallback.stopAlert(ALERTING);
                } else if (evt.getOldState() == Call.RINGING) {
                    guiCallback.stopAlert(RINGING);
                } else if (evt.getOldState() == Call.BUSY) {
                    guiCallback.stopAlert(BUSY);
                    // Start current alert
                }
                if (evt.getNewState() == Call.ALERTING) {
                    guiCallback.startAlert(ALERTING);
                } else if (evt.getNewState() == Call.RINGING) {
                    if (evt.getSourceCall().getRemoteSdpDescription() == null || evt.getSourceCall().getRemoteSdpDescription().toString() == "")
                        guiCallback.startAlert(RINGING);
                } else if (evt.getNewState() == Call.BUSY) {
                    guiCallback.startAlert(BUSY);
                }
            }
        }
        catch (Exception e) {
            Log.error("callStateChanged-Interlocutor", e);
        }       
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -