package org.ifsoft.openlink.component;
import java.util.*;
public class OpenlinkCall extends AbstractCall
{
public String speaker = "00";
public boolean traderLyncTransferFlag = false;
private boolean callbackActive = false;
private boolean voiceDropActive = false;
private boolean callbackAvailable = false;
private String callProgressFlag = null;
private OpenlinkUserInterest traderLyncUserInterest;
public String previousCalledNumber = null;
public String previousCalledLabel = null;
public void setVoiceDropActive(boolean voiceDropActive)
{
this.voiceDropActive = voiceDropActive;
}
public boolean getVoiceDropActive()
{
return voiceDropActive;
}
public void setCallbackActive(boolean callbackActive)
{
this.callbackActive = callbackActive;
}
public boolean getCallbackActive()
{
return callbackActive;
}
public void setCallbackAvailable(boolean callbackAvailable)
{
this.callbackAvailable = callbackAvailable;
}
public boolean getCallbackAvailable()
{
return callbackAvailable;
}
public void setCallProgress(String callProgressFlag)
{
this.callProgressFlag = callProgressFlag;
}
public String getCallProgress()
{
return callProgressFlag;
}
public void setOpenlinkUserInterest(OpenlinkUserInterest traderLyncUserInterest)
{
this.traderLyncUserInterest = traderLyncUserInterest;
}
public OpenlinkUserInterest getOpenlinkUserInterest()
{
return traderLyncUserInterest;
}
public void clear()
{
callProgressFlag = null;
previousCalledNumber = null;
proceedingDigitsLabel = null;
traderLyncTransferFlag = false;
super.clear();
}
@Override protected void setCallFailedActions()
{
validActions.add("ClearConnection");
validActions.add("ClearCall");
}
@Override protected void setCallOriginatedActions()
{
validActions.add("ClearConnection");
validActions.add("SendDigits");
validActions.add("ClearCall");
}
@Override protected void setCallEstablishedActions()
{
validActions.add("ClearConnection");
validActions.add("HoldCall");
validActions.add("ConsultationCall");
if (!platformIntercom)
{
if (!getCallbackActive())
validActions.add("IntercomTransfer");
validActions.add("SingleStepTransfer");
if("Y".equals(getPrivacy()))
validActions.add("PublicCall");
else
validActions.add("PrivateCall");
if (!getCallbackActive())
{
if (localConferenced)
{
validActions.add("ClearConference");
} else {
validActions.add("ConferenceCall");
}
}
validActions.add("SendDigit");
validActions.add("ClearCall");
if (getCallbackAvailable() && "N".equals(getPrivacy()))
{
validActions.add("AddThirdParty");
validActions.add("RemoveThirdParty");
if (getVoiceDropActive())
{
validActions.add("StartVoiceDrop");
validActions.add("StopVoiceDrop");
}
}
}
}
@Override protected void setCallDeliveredActions()
{
validActions.add("ClearConnection");
validActions.add("HoldCall");
if (!platformIntercom)
{
if("Y".equals(getPrivacy()))
validActions.add("PublicCall");
else
validActions.add("PrivateCall");
if (!getCallbackActive())
{
if (localConferenced)
{
validActions.add("ClearConference");
} else {
validActions.add("ConferenceCall");
}
}
validActions.add("SendDigit");
validActions.add("ClearCall");
}
}
@Override protected void setCallBusyActions()
{
if("N".equals(getPrivacy()))
{
if (delivered && "Outgoing".equals(direction) || "Incoming".equals(direction))
{
validActions.add("JoinCall");
if (getCallbackAvailable())
{
validActions.add("AddThirdParty");
validActions.add("RemoveThirdParty");
}
}
}
}
@Override protected void setCallHeldActions()
{
validActions.add("RetrieveCall");
}
@Override protected void setCallHeldElsewhereActions()
{
if("N".equals(getPrivacy()))
{
validActions.add("RetrieveCall");
}
}
@Override protected void setCallConferencedActions()
{
if (localConferenced && !getCallbackActive())
{
validActions.add("ClearConference");
validActions.add("ClearCall");
} else {
validActions.add("ClearConnection");
validActions.add("ClearCall");
if (getCallbackAvailable())
{
validActions.add("AddThirdParty");
validActions.add("RemoveThirdParty");
}
}
}
@Override protected void setCallTransferringActions()
{
validActions.add("ClearConnection");
validActions.add("HoldCall");
validActions.add("ConsultationCall");
}
@Override protected void setCallTransferredActions()
{
setCallTransferringActions();
//if(transferFlag) // consulatative transfer
//{
validActions.add("TransferCall");
//}
}
}