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;
|
|||
|
}
|