rushfee/WebContent/www/huaweiScripts/ocx/interface/agent_interface.js

548 lines
14 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

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