548 lines
14 KiB
JavaScript
548 lines
14 KiB
JavaScript
// Agent Ocx
|
||
// Copyright © Huawei Technologies Co., Ltd. 2015. All rights reserved.
|
||
|
||
function GetLanguagePageString(LanguagePageItem){
|
||
var LanguagePage = new LanguagePageClass();
|
||
var I18N = new I18NClass();
|
||
var languageObj = null;
|
||
languageObj = LanguagePage.GetLanguagePage(Config.Common['Language'])
|
||
if (languageObj === null || languageObj === undefined){
|
||
return LanguagePageItem;
|
||
}
|
||
if (languageObj[LanguagePageItem] === null || languageObj[LanguagePageItem] === undefined){
|
||
return LanguagePageItem;
|
||
}
|
||
return languageObj[LanguagePageItem];
|
||
}
|
||
var Agent = function()
|
||
{
|
||
this._ocx = null;; //ocx object
|
||
// !function whether ocx is null(private function)
|
||
this._isNull = function()
|
||
{
|
||
return (null===this._ocx || undefined===this._ocx);
|
||
}
|
||
}
|
||
|
||
Agent.prototype = {
|
||
|
||
// !function init Agent
|
||
init: function (ocxId) {
|
||
this._ocx = document.getElementById(ocxId);
|
||
|
||
//SetBtnStatus("signout");
|
||
AgentUI.UpdateAgentStatus();
|
||
AgentUI.UpdateCallStatus();
|
||
},
|
||
|
||
Register: function (PhoneNumber, PhonePwd) {
|
||
return VoiceExcute("Register", PhoneNumber, PhonePwd, 0);
|
||
},
|
||
|
||
// !function SignInEx
|
||
SignInEx: function (WorkNo, AgentPwd, ProgID, PhoneNumber) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
var _return;
|
||
|
||
this._ocx.MainCcsIP = Config.Agent.MainCcsIP;
|
||
this._ocx.BackCcsIP = Config.Agent.BackCcsIP;
|
||
this._ocx.CcsID = Config.Agent.CcsID;
|
||
this._ocx.AgentType = 4;// pc phone
|
||
this._ocx.WorkNo = WorkNo;
|
||
this._ocx.Password = AgentPwd;
|
||
this._ocx.AutoAnswer = Config.Agent.AutoAnswer;
|
||
this._ocx.AutoRelease = 1;// auto release
|
||
this._ocx.MyID = ProgID;
|
||
|
||
//initial
|
||
_return = this._ocx.Initial();
|
||
|
||
if (_return !== 0) {
|
||
//returning 131 indicates that the agent has logged in, promote to force login
|
||
if (_return === 131){
|
||
|
||
var r=confirm(GetLanguagePageString("I18N_AGENTAPPDEMO_PROMOTE_FORCE_LOGIN"));
|
||
if (r===true){
|
||
INFO_LOG_METHOD("AgentOcx", "Agent choose to force sign in");
|
||
_return = this._ocx.InitialEx();
|
||
if (_return !== 0) {
|
||
INFO_LOG_METHOD("AgentOcx", "Interface:Initial, error.result:" + _return);
|
||
return ;
|
||
}
|
||
}
|
||
else {
|
||
INFO_LOG_METHOD("AgentOcx", "Agent canceled force sign in");
|
||
INFO_LOG_METHOD("AgentOcx", "Interface:Initial, error.result:" + _return);
|
||
return ;
|
||
}
|
||
}
|
||
else{
|
||
INFO_LOG_METHOD("AgentOcx", "Interface:Initial, error.result:" + _return);
|
||
return _return;
|
||
}
|
||
}
|
||
//if sign in enter work, first change status to study, to avoid call in before say busy
|
||
if (Config.Agent.SignInEnterWork){
|
||
this._ocx.ChangeAgentStatus(8, 1, 0);//8 indicates study status
|
||
}
|
||
_return = this._ocx.SignInEx('TTF', AgentOcx._ocx.AgentType, PhoneNumber);
|
||
|
||
if (_return !== 0) {
|
||
INFO_LOG_METHOD("AgentOcx", "Interface:SignInEx, error.result:" + _return);
|
||
return _return;
|
||
}
|
||
//if sign in enter work, second change status to busy
|
||
if (Config.Agent.SignInEnterWork){
|
||
this._ocx.AgentEnterWork();
|
||
this._ocx.ChangeAgentStatus(8, 0, 0);//8 indicates study status
|
||
}
|
||
return this._ocx.SetAgentAutoEnterIdle(Config.Agent.AutoEnterIdle);
|
||
},
|
||
|
||
// !function SignOutEx
|
||
SignOutEx: function () {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.SignOutEx();
|
||
},
|
||
|
||
// !function SayBusy
|
||
SayBusy: function () {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.SayBusy();
|
||
},
|
||
SayBusyWithReason: function(busyReason){
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.SayBusyWithReason(busyReason);
|
||
},
|
||
// !function SayFree
|
||
SayFree: function () {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.SayFree();
|
||
},
|
||
|
||
// !function AgentEnterWork
|
||
AgentEnterWork: function () {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.AgentEnterWork();
|
||
},
|
||
|
||
// !function AgentEnterIdle
|
||
AgentEnterIdle: function () {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
var _return = this._ocx.AgentEnterIdle();
|
||
|
||
|
||
return _return;
|
||
},
|
||
|
||
// !function RestEx
|
||
RestEx: function (restTime, restCause) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
// RestEx(RestDuration,RestCause)
|
||
return this._ocx.RestEx(restTime, restCause);
|
||
},
|
||
|
||
// !function RestEx
|
||
Rest: function (restTime) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
// RestEx(RestDuration,RestCause)
|
||
return this._ocx.Rest(restTime);
|
||
},
|
||
|
||
// !function CancelRest
|
||
CancelRest: function () {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.CancelRest();
|
||
},
|
||
|
||
// !function AnswerEx
|
||
AnswerEx: function (usMediaType) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.AnswerEx(usMediaType);
|
||
},
|
||
|
||
// !function ReleaseCallEx
|
||
ReleaseCallEx: function (usMediaType, usCCBIdx) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
if (parseInt(usMediaType) === 1)//webchat mediatype is 1
|
||
{
|
||
INFO_LOG_METHOD("AgentOcx","Release webchat ccbidx="+usCCBIdx);
|
||
return this._ocx.ReleaseCallExWithCCBIdx(usMediaType, usCCBIdx);
|
||
}
|
||
INFO_LOG_METHOD("AgentOcx","Release mediatype=" + usMediaType);
|
||
//if media type is 2 or 5
|
||
return this._ocx.ReleaseCallExWithCCBIdx(5, 1);
|
||
},
|
||
|
||
// !function BeginMuteUserEx
|
||
BeginMuteUserEx: function () {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.BeginMuteUserEx();
|
||
},
|
||
|
||
// !function EndMuteUserEx
|
||
EndMuteUserEx: function () {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.EndMuteUserEx();
|
||
},
|
||
|
||
// !function HoldEx
|
||
HoldEx: function () {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.HoldEx();
|
||
},
|
||
|
||
// !function GerHoldEx
|
||
GetHoldEx: function () {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
var _return;
|
||
|
||
_return = this._ocx.QueryHoldListEx();
|
||
|
||
if (_return === 0) {
|
||
if (this._ocx.CallIDNum > 0)
|
||
{
|
||
//get latest callid
|
||
var _CallID = this._ocx.GetCallIDByIdx(this._ocx.CallIDNum - 1);
|
||
|
||
return this._ocx.GetHoldEx(_CallID);
|
||
}
|
||
else {
|
||
INFO_LOG_METHOD("AgentOcx", "Interface:GetHoldEx, there is no hold call!");
|
||
return 1;
|
||
}
|
||
|
||
}
|
||
else {
|
||
INFO_LOG_METHOD("AgentOcx", "Interface:GetHoldEx, error.result:" + _return);
|
||
return 1;
|
||
}
|
||
},
|
||
|
||
// !function BeginRecordEx
|
||
BeginRecordEx: function () {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
var _Date = new Date();
|
||
|
||
var _RecordName = _Date.getYear().toString() + (_Date.getMonth() + 1).toString() + _Date.getDate().toString() + _Date.getUTCMilliseconds().toString() + ".dat";
|
||
|
||
//mediatype 5 is voice, now only supports record voice
|
||
return this._ocx.BeginRecordEx(0, _RecordName, 5);
|
||
},
|
||
|
||
// !function StopRecordEx
|
||
StopRecordEx: function () {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.StopRecordEx();
|
||
},
|
||
|
||
// !function StopRecordEx
|
||
CallOutEx: function (caller, called) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
//CalloutEx(Caller,Called,Mode,Pilot)
|
||
return this._ocx.CallOutEx(caller, called, 0, '');
|
||
},
|
||
|
||
// !function CallInnerEx
|
||
CallInnerEx: function (workNo, mediaType) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
//CallInnerEx(Caller,Called,Mode,Pilot)
|
||
return this._ocx.CallInnerEx(workNo, mediaType);
|
||
},
|
||
|
||
// !function ConfJoinEx
|
||
ConfJoinEx: function () {
|
||
var _CallID
|
||
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
var _return = this._ocx.QueryHoldListEx();
|
||
|
||
if (_return === 0) {
|
||
_CallID = this._ocx.GetCallIDByIdx(0);
|
||
}
|
||
else {
|
||
return 1;
|
||
}
|
||
|
||
return this._ocx.ConfJoinEx(_CallID);
|
||
},
|
||
|
||
// !function AgentSendDTMF
|
||
AgentSendDTMF: function (dtmf) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.AgentSendDTMF(dtmf);
|
||
},
|
||
|
||
// !function SetCallDataEx
|
||
SetCallDataEx: function (mediaType, calldata) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.SetCallDataEx(mediaType, calldata);
|
||
},
|
||
|
||
// !function DisconnectCall
|
||
DisconnectCall: function () {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
var _return = this._ocx.QueryCallIDOnAgentEx(this._ocx.WorkNo);
|
||
|
||
if (_return === 0) {
|
||
var _CallID = this._ocx.GetCallIDByIdx(0);
|
||
|
||
if (_CallID !== 0) {
|
||
return this._ocx.DisconnectCall(_CallID);
|
||
}
|
||
else {
|
||
INFO_LOG_METHOD("AgentOcx", "Interface:GetCallIDByIdx, error.result:" + _CallID);
|
||
return 1;
|
||
}
|
||
}
|
||
else {
|
||
INFO_LOG_METHOD("AgentOcx", "Interface:QueryCallIDOnAgentEx, error.result:" + _return);
|
||
return _return;
|
||
}
|
||
},
|
||
TransToQueueEx: function (mediaType, transType, usSkillID) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
var _return;
|
||
var _fn;
|
||
|
||
_return = this._ocx.TransToQueueEx(mediaType, transType, usSkillID);
|
||
_fn = "TransToQueueEx";
|
||
if (_return !== 0) {
|
||
INFO_LOG_METHOD("AgentOcx", "Interface:" + _fn + ", error.result:" + _return);
|
||
}
|
||
return _return;
|
||
|
||
},
|
||
TransToAgent: function (mediaType, transType, workNo) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
var _return;
|
||
var _fn;
|
||
|
||
_return = this._ocx.TransToAgent(mediaType, transType, workNo);
|
||
_fn = "TransToAgent";
|
||
if (_return !== 0) {
|
||
INFO_LOG_METHOD("AgentOcx", "Interface:" + _fn + ", error.result:" + _return);
|
||
}
|
||
return _return;
|
||
|
||
},
|
||
TransToIVR: function (mediaType, transType, accessCode) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
var _return;
|
||
var _fn;
|
||
|
||
_return = this._ocx.TransToIVR(mediaType, transType, accessCode);
|
||
_fn = "TransToIVR";
|
||
if (_return !== 0) {
|
||
INFO_LOG_METHOD("AgentOcx", "Interface:" + _fn + ", error.result:" + _return);
|
||
}
|
||
return _return;
|
||
|
||
},
|
||
TransToAccess: function (mediaType, transType, accessCode) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
var _return;
|
||
var _fn;
|
||
|
||
_return = this._ocx.TransToAccess(mediaType, transType, accessCode);
|
||
_fn = "TransToAccess";
|
||
if (_return !== 0) {
|
||
INFO_LOG_METHOD("AgentOcx", "Interface:" + _fn + ", error.result:" + _return);
|
||
}
|
||
return _return;
|
||
|
||
},
|
||
TransOutEx2: function (mediaType, transType, number) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
var _return;
|
||
var _fn;
|
||
|
||
_return = this._ocx.TransOutEx2(mediaType, '', number, transType, 0, '');
|
||
_fn = "TransOutEx2";
|
||
if (_return !== 0) {
|
||
INFO_LOG_METHOD("AgentOcx", "Interface:" + _fn + ", error.result:" + _return);
|
||
}
|
||
return _return;
|
||
|
||
},
|
||
// !function CallInnerEx
|
||
InternalHelpEx: function (mediaType, workNo, helpMode) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
var _return;
|
||
var _fn;
|
||
|
||
_return = this._ocx.InternalHelpEx(mediaType, workNo, helpMode);
|
||
_fn = "InternalHelpEx";
|
||
|
||
if (_return !== 0) {
|
||
INFO_LOG_METHOD("AgentOcx", "Interface:" + _fn + ", error.result:" + _return);
|
||
}
|
||
return _return;
|
||
},
|
||
InternalHelpEx2: function (mediaType, skillID, helpMode) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
var _return;
|
||
var _fn;
|
||
|
||
var WorkNo;
|
||
_return = this._ocx.InternalHelpEx2(mediaType, skillID, helpMode, WorkNo);
|
||
_fn = "InternalHelpEx2";
|
||
|
||
if (_return !== 0) {
|
||
INFO_LOG_METHOD("AgentOcx", "Interface:" + _fn + ", error.result:" + _return);
|
||
}
|
||
var obj = new Object();
|
||
obj.ret = _return;
|
||
obj.workNo = WorkNo;
|
||
return obj;
|
||
},
|
||
SendChat: function (ccbIdx, content) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
var _return = this._ocx.SendMediaStreamWithCCBIdx(1, ccbIdx, content);
|
||
return _return;
|
||
},
|
||
|
||
RequestMultimediaConfEx: function (callID, partNum, agentList) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
var _return = 0;
|
||
_return = this._ocx.RequestMultimediaConfEx(callID, partNum, agentList);
|
||
return _return;
|
||
},
|
||
InviteJoinMultimediaConfEx: function (confID, partNum, agentList) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
var _return = 0;
|
||
_return = this._ocx.InviteJoinMultimediaConfEx(confID, partNum, agentList);
|
||
return _return;
|
||
},
|
||
StopMultimediaConf: function (ulConfID) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
return this._ocx.StopMultimediaConf(ulConfID);
|
||
},
|
||
|
||
JoinMultimediaConfResponse: function (ulConfID, usResultCode, usCause) {
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.JoinMultimediaConfResponseEx(ulConfID, usResultCode, usCause);
|
||
},
|
||
GetPromptByErrorCode :function(ErrorCode){
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.GetPromptByErrorCode(ErrorCode);
|
||
},
|
||
ModifyAgentPwd : function(OldPwd, NewPwd){
|
||
if (this._isNull()) {
|
||
return null;
|
||
}
|
||
|
||
return this._ocx.ModifyAgentPwd(OldPwd, NewPwd);
|
||
}
|
||
}
|
||
|
||
function GetAgentAutoReleaseSet()
|
||
{
|
||
return AgentOcx._ocx.AutoRelease;
|
||
} |