var XYClient=function(e,t){"use strict";var i;function r(){}function s(){s.init.call(this)}function n(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function a(e,t,i,s){var a,o,h,d;if("function"!=typeof i)throw new TypeError('"listener" argument must be a function');if((o=e._events)?(o.newListener&&(e.emit("newListener",t,i.listener?i.listener:i),o=e._events),h=o[t]):(o=e._events=new r,e._eventsCount=0),h){if("function"==typeof h?h=o[t]=s?[i,h]:[h,i]:s?h.unshift(i):h.push(i),!h.warned&&(a=n(e))&&a>0&&h.length>a){h.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+h.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=h.length,d=c,"function"==typeof console.warn?console.warn(d):console.log(d)}}else h=o[t]=i,++e._eventsCount;return e}function o(e,t,i){var r=!1;function s(){e.removeListener(t,s),r||(r=!0,i.apply(e,arguments))}return s.listener=i,s}function h(e){var t=this._events;if(t){var i=t[e];if("function"==typeof i)return 1;if(i)return i.length}return 0}function d(e,t){for(var i=new Array(t);t--;)i[t]=e[t];return i}r.prototype=Object.create(null),s.EventEmitter=s,s.usingDomains=!1,s.prototype.domain=void 0,s.prototype._events=void 0,s.prototype._maxListeners=void 0,s.defaultMaxListeners=10,s.init=function(){this.domain=null,s.usingDomains&&(void 0).active&&(void 0).Domain,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new r,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},s.prototype.getMaxListeners=function(){return n(this)},s.prototype.emit=function(e){var t,i,r,s,n,a,o,h="error"===e;if(a=this._events)h=h&&null==a.error;else if(!h)return!1;if(o=this.domain,h){if(t=arguments[1],!o){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=o,t.domainThrown=!1,o.emit("error",t),!1}if(!(i=a[e]))return!1;var l="function"==typeof i;switch(r=arguments.length){case 1:!function(e,t,i){if(t)e.call(i);else for(var r=e.length,s=d(e,r),n=0;n0;)if(i[a]===t||i[a].listener&&i[a].listener===t){o=i[a].listener,n=a;break}if(n<0)return this;if(1===i.length){if(i[0]=void 0,0==--this._eventsCount)return this._events=new r,this;delete s[e]}else!function(e,t){for(var i=t,r=i+1,s=e.length;r0?Reflect.ownKeys(this._events):[]},function(e){e[e.None=0]="None",e[e.Init=1]="Init",e[e.Normal=2]="Normal",e[e.Callout=3]="Callout",e[e.Incoming=4]="Incoming",e[e.Ringing=5]="Ringing",e[e.Connect=6]="Connect",e[e.Release=7]="Release",e[e.Hold=8]="Hold",e[e.Unhold=9]="Unhold"}(i||(i={}));const c=t.Ice._ModuleRegistry,l=t.Ice.Slice;let g=c.module("Dispatcher");g.ECode=l.defineEnum([["ECodeNone",0],["ECodeRegister",1e3],["ECodeRegisterKickout",1001],["ECodeRegisterTimeout",1002],["ECodeRegisterNotRegister",1003],["ECodeRegisterDisConnect",1004],["ECodeRegisterUserIsLogin",1005],["ECodeRegisterErrorPwd",1006],["ECodeCalling",1100],["ECodeCallingCaller",1101],["ECodeCallingCallee",1102],["ECodeCallingType",1103],["ECodeCallingSessionNotFound",1104],["ECodeCallingTerminalNotFound",1105],["ECodeCallingNumberNotRegistered",1106],["ECodeCallingUserNotExist",1107],["ECodeCallingNoAuth",1108],["ECodeCallingOprFailed",1109],["ECodeCallingUserNotInGroup",1110],["ECodeCallingGroupNotFound",1111],["ECodeCallingCallTypeError",1112],["ECodeCallingSessionCreateFailed",1113],["ECodeOpFaxFailured",1114],["ECodeFileNotFound",1115],["ECodeNoCid",1116],["ECodeNumberBusy",1117],["ECodeCallingOperateFailed",1118],["ECodeCallingNotHaveFitCall",1119],["ECodeNotDTPUser",1120],["ECodeSessionStateError",1121],["ECodeCanNotCallIntercomGroup",1122],["ECodeCallingOperateNotConn",1123],["ECodeConsole",1200],["ECodeConsoleBind",1201],["ECodeErrLicense",1202],["ECodeErrCanNotUse",1203],["ECodeConsoleBindErrorType",1204],["ECodeConsoleBindFristRegist",1205],["ECodeNotMCUSession",1300],["ECodeIsBinded",1301],["ECodeMsgGroupExist",1400],["ECodeMsgGroupNotExist",1401],["ECodeVideoBugCalledIsVoice",1500]]),Object.defineProperty(g,"ECodeNoneDis",{value:"未定义错误"}),Object.defineProperty(g,"ECodeRegisterKickoutDis",{value:"异地登陆"}),Object.defineProperty(g,"ECodeRegisterTimeoutDis",{value:"登陆超时"}),Object.defineProperty(g,"ECodeRegisterNotRegisterDis",{value:"号码未注册"}),Object.defineProperty(g,"ECodeRegisterDisConnectDis",{value:"连接已断开"}),Object.defineProperty(g,"ECodeRegisterUserIsLoginDis",{value:"号码已在其它终端登录"}),Object.defineProperty(g,"ECodeRegisterErrorPwdDis",{value:"密码错误"}),Object.defineProperty(g,"ECodeCallingCallerDis",{value:"主叫号码错误"}),Object.defineProperty(g,"ECodeCallingCalleeDis",{value:"被叫号码错误"}),Object.defineProperty(g,"ECodeCallingTypeDis",{value:"呼叫类型错误"}),Object.defineProperty(g,"ECodeCallingSessionNotFoundDis",{value:"找不到呼叫ID"}),Object.defineProperty(g,"ECodeConsoleBindDis",{value:"绑定号码错误,号码未注册"}),Object.defineProperty(g,"ECodeConsoleBindErrorTypeDis",{value:"绑定号码错误,号码类型错误"}),Object.defineProperty(g,"ECodeConsoleBindFristRegistDis",{value:"请先注册再绑定号码"}),Object.defineProperty(g,"ECodeCallingTerminalNotFoundDis",{value:"号码不存在"}),Object.defineProperty(g,"ECodeCallingNumberNotRegisteredDis",{value:"号码未注册"}),Object.defineProperty(g,"ECodeCallingUserNotExistDis",{value:"用户不存在"}),Object.defineProperty(g,"ECodeCallingNoAuthDis",{value:"没有权限"}),Object.defineProperty(g,"ECodeCallingOprFailedDis",{value:"操作执行失败"}),Object.defineProperty(g,"ECodeCallingUserNotInGroupDis",{value:"用户在该组中不存在"}),Object.defineProperty(g,"ECodeCallingGroupNotFoundDis",{value:"组号不存在"}),Object.defineProperty(g,"ECodeCallingCallTypeErrorDis",{value:"呼叫类型错误"}),Object.defineProperty(g,"ECodeCallingSessionCreateFailedDis",{value:"呼叫创建失败"}),Object.defineProperty(g,"ECodeCallingOperateFailedDis",{value:"操作失败"}),Object.defineProperty(g,"ECodeCallingNotHaveFitCallDis",{value:"没有符合条件呼叫"}),Object.defineProperty(g,"ECodeSessionStateErrorDis",{value:"呼叫状态错误"}),Object.defineProperty(g,"ECodeCanNotCallIntercomGroupDis",{value:"不能呼叫对讲组"}),Object.defineProperty(g,"ECodeCallingOperateNotConnDis",{value:"仅可对通话中的用户进行操作"}),Object.defineProperty(g,"ECodeOpFaxFailuredDis",{value:"发送传真失败"}),Object.defineProperty(g,"ECodeFileNotFoundDis",{value:"找不到文件"}),Object.defineProperty(g,"ECodeNoCidDis",{value:"呼叫ID为空"}),Object.defineProperty(g,"ECodeNumberBusyDis",{value:"指定号码忙"}),Object.defineProperty(g,"ECodeErrLicenseDis",{value:"超出license限制"}),Object.defineProperty(g,"ECodeErrCanNotUseDis",{value:"功能未开通"}),Object.defineProperty(g,"ECodeNotDTPUserDis",{value:"非调度用户"}),Object.defineProperty(g,"ECodeNotMCUSessionDis",{value:"非MCU呼叫"}),Object.defineProperty(g,"ECodeIsBindedDis",{value:"号码已被绑定,绑定人:"}),Object.defineProperty(g,"ECodeMsgGroupExistDis",{value:"当前群已存在"}),Object.defineProperty(g,"ECodeMsgGroupNotExistDis",{value:"指定的群不存在"}),Object.defineProperty(g,"ECodeVideoBugCalledIsVoiceDis",{value:"指定号码在音频通话中"}),g.Error=class extends t.Ice.UserException{constructor(e=g.ECode.ECodeNone,t="",i=""){super(i),this.code=e,this.desc=t}static get _parent(){return t.Ice.UserException}static get _id(){return"::Dispatcher::Error"}_mostDerivedType(){return g.Error}_writeMemberImpl(e){g.ECode._write(e,this.code),e.writeString(this.desc)}_readMemberImpl(e){this.code=g.ECode._read(e),this.desc=e.readString()}},Object.defineProperty(g,"SYSMessageDiskUsed",{value:"调度服务器存储快满,请及时备份或清除数据"}),Object.defineProperty(g,"SYSMessageDiskClear",{value:"调度服务器存储空间清理完毕"});const u=t.Ice._ModuleRegistry,p=t.Ice.Slice;let m=u.module("Dispatcher");m.CallType=p.defineEnum([["CallTypeNone",0],["CallTypeSingle",1],["CallTypeTmpgroup",2],["CallTypeReport",3],["CallTypeBroadcast",4],["CallTypeTemporary",5],["CallTypeInterpose",6],["CallTypeForceremove",7],["CallTypeMonitor",8],["CallTypeIntercom",9],["CallTypeSwitch",10],["CallTypeUrgent",11],["CallTypeSingle2",12],["CallTypeTmpintercom",13],["CallTypeVideobug",14],["CallTypeMCUMetting",15],["CallTypeSOS",16],["CallTypeTransferVideo",17],["CallTypeTransferVideoToMcu",18],["CallTypeUploadVideo",19]]),m.SubCallType=p.defineEnum([["SubCallTypeNone",0],["SubCallTypeFixMeeting",1],["SubCallTypeScheduleMeeting",2],["SubCallTypeSwitch",3]]),m.RegisterState=p.defineEnum([["RegisterStateNone",0],["RegisterStateLogin",1],["RegisterStateLogout",2],["RegisterStateTTOnline",20]]),m.CallState=p.defineEnum([["CallStateNone",0],["CallStateInit",1],["CallStateNormal",2],["CallStateCallout",3],["CallStateIncoming",4],["CallStateRinging",5],["CallStateConnect",6],["CallStateHold",7],["CallStateBusy",8],["CallStateOffhook",9],["CallStateRelease",10],["CallStateUnspeak",11],["CallStateSpeak",12],["CallStateQueue",13],["CallStateUnhold",14],["CallStateZombie",15]]),m.MediaType=p.defineEnum([["MediaTypeNone",0],["MediaTypeAudio",1],["MediaTypeVideo",2]]),m.GroupType=p.defineEnum([["GroupTypeIntercomgroup",0],["GroupTypeOther",1],["GroupTypeNone",2]]),m.UserType=p.defineEnum([["UserTypeDispatch",0],["UserTypeHandheld",1],["UserTypeCommonuser",2],["UserTypeOutlineuser",3],["UserTypeMonitoruser",4],["UserTypeSsu",5],["UserType3ghandheld",6],["UserTypeMonitordevice",7],["UserTypeNone",8],["UserType323",9],["UserTypeStationGroup",10],["UserTypeStationUser",11],["UserTypeRelayUser",12],["UserTypeBroadRelayUser",13],["UserTypeRelayGW",14],["UserTypeMCUReg",15],["UserTypeOutlineHandler",16],["UserTypeWeiDe",17],["UserTypeOutlineCar",18],["UserTypeTianTong",20],["UserTypeMeshDev",21]]),m.FileType=p.defineEnum([["FileTypeNone",0],["FileTypeText",1],["FileTypePic",2],["FileTypeVoice",3],["FileTypeVideo",4],["FileTypeGisinfo",5],["FileTypePlayAudio",6],["FileTypeFax",7],["FileTypeOther",8],["FileTypePlayVideo",9]]),m.FileState=p.defineEnum([["FileStateNone",0],["FileStateUploading",1],["FileStateUploaded",2]]),m.SpeakType=p.defineEnum([["SpeakTypeNone",0],["SpeakTypeMute",1],["SpeakTypeUnmute",2]]),m.UserOrGroup=p.defineEnum([["UOGNone",0],["UOGEmployee",1],["UOGGroup",2]]),m.HearType=p.defineEnum([["HearTypeNone",0],["HearTypeMute",1],["HearTypeUnmute",2]]),m.PushVideoType=p.defineEnum([["PushVideoTypeNone",0],["PushVideoTypePush",1],["PushVideoTypeUnpush",2]]),m.PlayAudioType=p.defineEnum([["PlayAudioTypeNone",0],["PlayAudioTypeStart",1],["PlayAudioTypeStop",2]]),m.PlayVideoType=p.defineEnum([["PlayVideoTypeNone",0],["PlayVideoTypeStart",1],["PlayVideoTypeStop",2]]),m.AudioFileType=p.defineEnum([["AudioFileTypeNone",0],["AudioFileTypeEcho",1]]),m.AnswerType=p.defineEnum([["AnswerTypeNone",0],["AnswerTypeAuto",1],["AnswerTypeMan",2]]),m.HoldType=p.defineEnum([["HoldTypeNone",0],["HoldTypeHold",1],["HoldTypeUnhold",2]]),m.GisTraceType=p.defineEnum([["GisTraceTypeNone",0],["GisTraceTypeSub",1],["GisTraceTypeUnsub",2]]),m.PrePlanState=p.defineEnum([["PrePlanStateNone",0],["PrePlanStateRuning",1],["PrePlanStateEnd",2]]),m.VBugStateType=p.defineEnum([["VBugStateTypeNone",0],["VBugStateTypeOk",1],["VBugStateTypeFailure",2],["VBugStateTypeRelease",3]]),m.PrePlanInstType=p.defineEnum([["PrePlanTypeInstMessage",1],["PrePlanTypeInstBroadCast",2],["PrePlanTypeInstMeeting",3]]),m.FaxStateSend=p.defineEnum([["FaxStateSendNone",0],["FaxStateSending",1],["FaxStateSended",2],["FaxStateSendFailure",3]]),m.FaxStateRecv=p.defineEnum([["FaxStateRecvNone",0],["FaxStateRecving",1],["FaxStateRecved",2],["FaxStateRecvedFailure",3]]),m.emCalledType=p.defineEnum([["CalledTypeNONE",0],["CalledTypeTDNSFreeswitch",1],["CalledTypeMCU",2],["CalledTypePlayVideo",3],["CalledTypeMCUDevice",4],["CalledType28181",5],["CalledTypeMonitorDeivce",6],["CalledTypePlayHisVideo",7]]),m.emVideoDeviceType=p.defineEnum([["VDTNONE",0],["VDTHKIPC",1],["VDTOTHER",2],["VDTHKDVR",3],["VDTHKVIDEOSERVER",4],["VDTHKDECOMPILER",5],["VDTDHIPC",10],["VDTDHDVR",11],["VDTDHVIDEOSERVER",12],["VDTDHDECOMPILER",13],["VDTWEIBOIPC",14],["VDT4GMONITOR",15]]),m.emCodecType=p.defineEnum([["CDTNONE",0],["CDTH264",1],["CDTH265",2],["CDT264265",3]]),m.Identity=class{constructor(e=""){this.user=e}_write(e){e.writeString(this.user)}_read(e){this.user=e.readString()}static get minWireSize(){return 1}},p.defineStruct(m.Identity,!0,!0),m.CommonRequestT=class{constructor(e=""){this.cid=e}_write(e){e.writeString(this.cid)}_read(e){this.cid=e.readString()}static get minWireSize(){return 1}},p.defineStruct(m.CommonRequestT,!0,!0),Object.defineProperty(m,"CALLREMARKENGOTRANSFER",{value:"协商转接"}),Object.defineProperty(m,"CALLREMARKMOINTOR",{value:"监听"}),Object.defineProperty(m,"CALLREMARKSUBSTITUTE",{value:"代接"}),Object.defineProperty(m,"CALLREMARKINTERPOSE",{value:"强插"}),Object.defineProperty(m,"CALLREMARKREMOVE",{value:"强断"}),Object.defineProperty(m,"CALLREMARKSWITCH",{value:"转接"}),Object.defineProperty(m,"CALLREMARKADDMEMBER",{value:"邀请成员"}),Object.defineProperty(m,"CALLREMARKPLAYFILE",{value:"播放文件"}),Object.defineProperty(m,"CALLREMARKREMOVEOTHER",{value:"强拆"}),Object.defineProperty(m,"STRYMSDISPATCHERGROUP",{value:"调度服务器专用"});t.Ice._ModuleRegistry;const S=t.Ice.Slice;g.BusinessTypeRT=class{constructor(e=0,t=0,i="",r=0,s="",n=0,a=0,o=""){this.id=e,this.WTGroupID=t,this.WorkTypeName=i,this.TheValue=r,this.description=s,this.TheState=n,this.IsDefault=a,this.WTGroupName=o}_write(e){e.writeInt(this.id),e.writeInt(this.WTGroupID),e.writeString(this.WorkTypeName),e.writeInt(this.TheValue),e.writeString(this.description),e.writeInt(this.TheState),e.writeInt(this.IsDefault),e.writeString(this.WTGroupName)}_read(e){this.id=e.readInt(),this.WTGroupID=e.readInt(),this.WorkTypeName=e.readString(),this.TheValue=e.readInt(),this.description=e.readString(),this.TheState=e.readInt(),this.IsDefault=e.readInt(),this.WTGroupName=e.readString()}static get minWireSize(){return 23}},S.defineStruct(g.BusinessTypeRT,!0,!0),S.defineSequence(g,"BusinessTypeRTSeqHelper","Dispatcher.BusinessTypeRT",!1),g.SendBusFileReceiveT=class{constructor(e="",t="",i="",r="",s=""){this.MsgUUID=e,this.Receiver=t,this.ReceiverName=i,this.Remark=r,this.ModifyEmployee=s}_write(e){e.writeString(this.MsgUUID),e.writeString(this.Receiver),e.writeString(this.ReceiverName),e.writeString(this.Remark),e.writeString(this.ModifyEmployee)}_read(e){this.MsgUUID=e.readString(),this.Receiver=e.readString(),this.ReceiverName=e.readString(),this.Remark=e.readString(),this.ModifyEmployee=e.readString()}static get minWireSize(){return 5}},S.defineStruct(g.SendBusFileReceiveT,!0,!0),S.defineSequence(g,"SendBusFileReceiveSeqHelper","Dispatcher.SendBusFileReceiveT",!1),g.StartSendBusFileT=class{constructor(e="",t="",i=0,r="",s=""){this.MsgUUID=e,this.FileUUID=t,this.FileType=i,this.FileName=r,this.Remark=s}_write(e){e.writeString(this.MsgUUID),e.writeString(this.FileUUID),e.writeInt(this.FileType),e.writeString(this.FileName),e.writeString(this.Remark)}_read(e){this.MsgUUID=e.readString(),this.FileUUID=e.readString(),this.FileType=e.readInt(),this.FileName=e.readString(),this.Remark=e.readString()}static get minWireSize(){return 8}},S.defineStruct(g.StartSendBusFileT,!0,!0),S.defineSequence(g,"StartSendBusFileSeqHelper","Dispatcher.StartSendBusFileT",!1),g.StartSendBusInfoT=class{constructor(e="",t=0,i=0,r="",s="",n="",a=0,o="",h="",d=0,c=null,l=null){this.MsgUUID=e,this.KeyStationID=t,this.KeyLineID=i,this.KeyRailNum=r,this.Sender=s,this.senderName=n,this.WorkTypeValue=a,this.ParentID=o,this.Descrip=h,this.SendState=d,this.Files=c,this.Receivers=l}_write(e){e.writeString(this.MsgUUID),e.writeInt(this.KeyStationID),e.writeInt(this.KeyLineID),e.writeString(this.KeyRailNum),e.writeString(this.Sender),e.writeString(this.senderName),e.writeInt(this.WorkTypeValue),e.writeString(this.ParentID),e.writeString(this.Descrip),e.writeInt(this.SendState),g.StartSendBusFileSeqHelper.write(e,this.Files),g.SendBusFileReceiveSeqHelper.write(e,this.Receivers)}_read(e){this.MsgUUID=e.readString(),this.KeyStationID=e.readInt(),this.KeyLineID=e.readInt(),this.KeyRailNum=e.readString(),this.Sender=e.readString(),this.senderName=e.readString(),this.WorkTypeValue=e.readInt(),this.ParentID=e.readString(),this.Descrip=e.readString(),this.SendState=e.readInt(),this.Files=g.StartSendBusFileSeqHelper.read(e),this.Receivers=g.SendBusFileReceiveSeqHelper.read(e)}static get minWireSize(){return 24}},S.defineStruct(g.StartSendBusInfoT,!0,!0),g.StartSendBusFileRT=class{constructor(e="",t="",i="",r=""){this.MsgUUID=e,this.FileUUID=t,this.FileName=i,this.FilePath=r}_write(e){e.writeString(this.MsgUUID),e.writeString(this.FileUUID),e.writeString(this.FileName),e.writeString(this.FilePath)}_read(e){this.MsgUUID=e.readString(),this.FileUUID=e.readString(),this.FileName=e.readString(),this.FilePath=e.readString()}static get minWireSize(){return 4}},S.defineStruct(g.StartSendBusFileRT,!0,!0),S.defineSequence(g,"StartSendBusFileRTSeqHelper","Dispatcher.StartSendBusFileRT",!1),g.SendBusInfoRT=class{constructor(e="",t="",i=null){this.MsgUUID=e,this.Sender=t,this.Files=i}_write(e){e.writeString(this.MsgUUID),e.writeString(this.Sender),g.StartSendBusFileRTSeqHelper.write(e,this.Files)}_read(e){this.MsgUUID=e.readString(),this.Sender=e.readString(),this.Files=g.StartSendBusFileRTSeqHelper.read(e)}static get minWireSize(){return 3}},S.defineStruct(g.SendBusInfoRT,!0,!0),g.SendBusInfoEndT=class{constructor(e="",t=1){this.MsgUUID=e,this.SendState=t}_write(e){e.writeString(this.MsgUUID),e.writeInt(this.SendState)}_read(e){this.MsgUUID=e.readString(),this.SendState=e.readInt()}static get minWireSize(){return 5}},S.defineStruct(g.SendBusInfoEndT,!0,!0),g.SendBusFileEndT=class{constructor(e="",t=1){this.FileUUID=e,this.SendState=t}_write(e){e.writeString(this.FileUUID),e.writeInt(this.SendState)}_read(e){this.FileUUID=e.readString(),this.SendState=e.readInt()}static get minWireSize(){return 5}},S.defineStruct(g.SendBusFileEndT,!0,!0),g.BusFileReceivedT=class{constructor(e="",t=""){this.MsgUUID=e,this.receiver=t}_write(e){e.writeString(this.MsgUUID),e.writeString(this.receiver)}_read(e){this.MsgUUID=e.readString(),this.receiver=e.readString()}static get minWireSize(){return 2}},S.defineStruct(g.BusFileReceivedT,!0,!0),g.GetNotReceivedInfoT=class{constructor(e=10,t=""){this.maxnum=e,this.receiver=t}_write(e){e.writeInt(this.maxnum),e.writeString(this.receiver)}_read(e){this.maxnum=e.readInt(),this.receiver=e.readString()}static get minWireSize(){return 5}},S.defineStruct(g.GetNotReceivedInfoT,!0,!0),g.GetNotReceivedInfoRT=class{constructor(e=0,t=!1){this.Sendnum=e,this.HaveOther=t}_write(e){e.writeInt(this.Sendnum),e.writeBool(this.HaveOther)}_read(e){this.Sendnum=e.readInt(),this.HaveOther=e.readBool()}static get minWireSize(){return 5}},S.defineStruct(g.GetNotReceivedInfoRT,!0,!1);g.BusinessOP=class extends t.Ice.Object{},g.BusinessOPPrx=class extends t.Ice.ObjectPrx{},S.defineOperations(g.BusinessOP,g.BusinessOPPrx,["::Dispatcher::BusinessOP","::Ice::Object"],0,{opGetBusinessTypes:[,,,,["Dispatcher.BusinessTypeRTSeqHelper"],[[g.Identity]],,[g.Error],,],opStartSendBusinessInfo:[,,,,[g.SendBusInfoRT],[[g.Identity],[g.StartSendBusInfoT]],,[g.Error],,],opStartSendFile:[,,,,[g.StartSendBusFileRT],[[g.Identity],[g.StartSendBusFileT]],,[g.Error],,],opSendBusinessInfoEnd:[,,,,[1],[[g.Identity],[g.SendBusInfoEndT]],,[g.Error],,],opSendBusinessFileEnd:[,,,,[1],[[g.Identity],[g.SendBusFileEndT]],,[g.Error],,],opChangeBusFileReceive:[,,,,[1],[[g.Identity],[g.SendBusFileReceiveT]],,[g.Error],,],opBusFileReceived:[,,,,,[[g.Identity],[g.BusFileReceivedT]],,[g.Error],,],opGetNotReceivedInfo:[,,,,[g.GetNotReceivedInfoRT],[[g.Identity],[g.GetNotReceivedInfoT]],,[g.Error],,],opDeleteBusInfo:[,,,,[1],[[g.Identity],[7]],,[g.Error],,]});t.Ice._ModuleRegistry;const f=t.Ice.Slice;g.PlayAudioEvT=class{constructor(e="",t="",i=g.PlayAudioType.PlayAudioTypeNone){this.cid=e,this.uuid=t,this.type=i}_write(e){e.writeString(this.cid),e.writeString(this.uuid),g.PlayAudioType._write(e,this.type)}_read(e){this.cid=e.readString(),this.uuid=e.readString(),this.type=g.PlayAudioType._read(e)}static get minWireSize(){return 3}},f.defineStruct(g.PlayAudioEvT,!0,!0),g.CallDirect=f.defineEnum([["CallDirectNone",0],["CallDirectOut",1],["CallDirectIn",2]]),g.SessionChangeT=class{constructor(e="",t="",i="",r="",s="",n=g.CallDirect.CallDirectNone,a=g.CallState.CallStateNone,o=g.CallType.CallTypeNone,h=0,d=g.MediaType.MediaTypeNone,c=""){this.cid=e,this.callingnum=t,this.callingname=i,this.othernum=r,this.othername=s,this.direction=n,this.state=a,this.type=o,this.level=h,this.isVideo=d,this.RoadParameters=c}_write(e){e.writeString(this.cid),e.writeString(this.callingnum),e.writeString(this.callingname),e.writeString(this.othernum),e.writeString(this.othername),g.CallDirect._write(e,this.direction),g.CallState._write(e,this.state),g.CallType._write(e,this.type),e.writeInt(this.level),g.MediaType._write(e,this.isVideo),e.writeString(this.RoadParameters)}_read(e){this.cid=e.readString(),this.callingnum=e.readString(),this.callingname=e.readString(),this.othernum=e.readString(),this.othername=e.readString(),this.direction=g.CallDirect._read(e),this.state=g.CallState._read(e),this.type=g.CallType._read(e),this.level=e.readInt(),this.isVideo=g.MediaType._read(e),this.RoadParameters=e.readString()}static get minWireSize(){return 14}},f.defineStruct(g.SessionChangeT,!0,!0),f.defineSequence(g,"SessionChangeTSeqHelper","Dispatcher.SessionChangeT",!1);t.Ice._ModuleRegistry;const I=t.Ice.Slice;g.CMStateChangeT=class{constructor(e="",t="",i=g.CallState.CallStateNone,r="",s="",n=8){this.cid=e,this.employeeid=t,this.state=i,this.stateDecorate=r,this.name=s,this.type=n}_write(e){e.writeString(this.cid),e.writeString(this.employeeid),g.CallState._write(e,this.state),e.writeString(this.stateDecorate),e.writeString(this.name),e.writeInt(this.type)}_read(e){this.cid=e.readString(),this.employeeid=e.readString(),this.state=g.CallState._read(e),this.stateDecorate=e.readString(),this.name=e.readString(),this.type=e.readInt()}static get minWireSize(){return 9}},I.defineStruct(g.CMStateChangeT,!0,!0),g.CallChangeT=class{constructor(e="",t=g.CallState.CallStateNone,i="",r="",s="",n=0){this.employeeid=e,this.state=t,this.othername=i,this.othernumber=r,this.DNSprefix=s,this.islocal=n}_write(e){e.writeString(this.employeeid),g.CallState._write(e,this.state),e.writeString(this.othername),e.writeString(this.othernumber),e.writeString(this.DNSprefix),e.writeInt(this.islocal)}_read(e){this.employeeid=e.readString(),this.state=g.CallState._read(e),this.othername=e.readString(),this.othernumber=e.readString(),this.DNSprefix=e.readString(),this.islocal=e.readInt()}static get minWireSize(){return 9}},I.defineStruct(g.CallChangeT,!0,!0),g.SessionChange1T=class{constructor(e="",t="",i="",r="",s="",n=g.CallDirect.CallDirectNone,a=g.CallState.CallStateNone,o=g.CallType.CallTypeNone,h=0,d=g.MediaType.MediaTypeNone,c="",l=""){this.cid=e,this.callingnum=t,this.callingname=i,this.othernum=r,this.othername=s,this.direction=n,this.state=a,this.type=o,this.level=h,this.isVideo=d,this.RoadParameters=c,this.othermsg=l}_write(e){e.writeString(this.cid),e.writeString(this.callingnum),e.writeString(this.callingname),e.writeString(this.othernum),e.writeString(this.othername),g.CallDirect._write(e,this.direction),g.CallState._write(e,this.state),g.CallType._write(e,this.type),e.writeInt(this.level),g.MediaType._write(e,this.isVideo),e.writeString(this.RoadParameters),e.writeString(this.othermsg)}_read(e){this.cid=e.readString(),this.callingnum=e.readString(),this.callingname=e.readString(),this.othernum=e.readString(),this.othername=e.readString(),this.direction=g.CallDirect._read(e),this.state=g.CallState._read(e),this.type=g.CallType._read(e),this.level=e.readInt(),this.isVideo=g.MediaType._read(e),this.RoadParameters=e.readString(),this.othermsg=e.readString()}static get minWireSize(){return 15}},I.defineStruct(g.SessionChange1T,!0,!0);g.CallingCB=class extends t.Ice.Object{},g.CallingCBPrx=class extends t.Ice.ObjectPrx{},I.defineOperations(g.CallingCB,g.CallingCBPrx,["::Dispatcher::CallingCB","::Ice::Object"],0,{IFCNotifySessionStateEvt:[,2,2,,,[[g.SessionChangeT]],,,,],IFCNotifySessionStateEvt2:[,2,2,,,[[g.SessionChange1T]],,,,],IFCNotifyConfMemberStateEvt:[,2,2,,,[[g.CMStateChangeT]],,,,],IFCNotifyCallStateEvt:[,2,2,,,[[g.CallChangeT]],,,,],IFCNotifyAudioPlayStateEvt:[,2,2,,,[[g.PlayAudioEvT]],,,,]});g.CallingCBSub=class extends t.Ice.Object{},g.CallingCBSubPrx=class extends t.Ice.ObjectPrx{},I.defineOperations(g.CallingCBSub,g.CallingCBSubPrx,["::Dispatcher::CallingCBSub","::Ice::Object"],0);t.Ice._ModuleRegistry;const T=t.Ice.Slice;g.NegoTransferT=class{constructor(e="",t="",i="",r="",s=""){this.number=e,this.call1=t,this.call2=i,this.cid1=r,this.cid2=s}_write(e){e.writeString(this.number),e.writeString(this.call1),e.writeString(this.call2),e.writeString(this.cid1),e.writeString(this.cid2)}_read(e){this.number=e.readString(),this.call1=e.readString(),this.call2=e.readString(),this.cid1=e.readString(),this.cid2=e.readString()}static get minWireSize(){return 5}},T.defineStruct(g.NegoTransferT,!0,!0),g.NegoTransferRT=class{constructor(e=""){this.cid=e}_write(e){e.writeString(this.cid)}_read(e){this.cid=e.readString()}static get minWireSize(){return 1}},T.defineStruct(g.NegoTransferRT,!0,!0),g.PlayAudioT=class{constructor(e="",t="",i="",r=g.PlayAudioType.PlayAudioTypeNone,s=""){this.fname=e,this.empid=t,this.cid=i,this.state=r,this.uuid=s}_write(e){e.writeString(this.fname),e.writeString(this.empid),e.writeString(this.cid),g.PlayAudioType._write(e,this.state),e.writeString(this.uuid)}_read(e){this.fname=e.readString(),this.empid=e.readString(),this.cid=e.readString(),this.state=g.PlayAudioType._read(e),this.uuid=e.readString()}static get minWireSize(){return 5}},T.defineStruct(g.PlayAudioT,!0,!0),g.PlayAudioRT=class{constructor(e=0){this.code=e}_write(e){e.writeInt(this.code)}_read(e){this.code=e.readInt()}static get minWireSize(){return 4}},T.defineStruct(g.PlayAudioRT,!0,!1),g.CallCommonT=class{constructor(e="",t="",i=""){this.cid=e,this.caller=t,this.called=i}_write(e){e.writeString(this.cid),e.writeString(this.caller),e.writeString(this.called)}_read(e){this.cid=e.readString(),this.caller=e.readString(),this.called=e.readString()}static get minWireSize(){return 3}},T.defineStruct(g.CallCommonT,!0,!0),g.CallCommonRET=class{constructor(e="",t="",i=""){this.cid=e,this.caller=t,this.callee=i}_write(e){e.writeString(this.cid),e.writeString(this.caller),e.writeString(this.callee)}_read(e){this.cid=e.readString(),this.caller=e.readString(),this.callee=e.readString()}static get minWireSize(){return 3}},T.defineStruct(g.CallCommonRET,!0,!0),T.defineSequence(g,"CallCommonRESeqHelper","Dispatcher.CallCommonRET",!1),g.CallCommonRT=class{constructor(e=null){this.seq=e}_write(e){g.CallCommonRESeqHelper.write(e,this.seq)}_read(e){this.seq=g.CallCommonRESeqHelper.read(e)}static get minWireSize(){return 1}},T.defineStruct(g.CallCommonRT,!0,!0),g.SpeakerT=class{constructor(e="",t="",i=g.SpeakType.SpeakTypeNone){this.cid=e,this.employeeid=t,this.speakertypea=i}_write(e){e.writeString(this.cid),e.writeString(this.employeeid),g.SpeakType._write(e,this.speakertypea)}_read(e){this.cid=e.readString(),this.employeeid=e.readString(),this.speakertypea=g.SpeakType._read(e)}static get minWireSize(){return 3}},T.defineStruct(g.SpeakerT,!0,!0),g.SpeakerRT=class{constructor(e=0){this.code=e}_write(e){e.writeInt(this.code)}_read(e){this.code=e.readInt()}static get minWireSize(){return 4}},T.defineStruct(g.SpeakerRT,!0,!1),g.HearT=class{constructor(e="",t="",i=g.HearType.HearTypeNone){this.cid=e,this.number=t,this.hear=i}_write(e){e.writeString(this.cid),e.writeString(this.number),g.HearType._write(e,this.hear)}_read(e){this.cid=e.readString(),this.number=e.readString(),this.hear=g.HearType._read(e)}static get minWireSize(){return 3}},T.defineStruct(g.HearT,!0,!0),g.HearRT=class{constructor(e=0){this.code=e}_write(e){e.writeInt(this.code)}_read(e){this.code=e.readInt()}static get minWireSize(){return 4}},T.defineStruct(g.HearRT,!0,!1),g.MuteLocalTrackT=class{constructor(e="",t="",i=!1){this.cid=e,this.number=t,this.mute=i}_write(e){e.writeString(this.cid),e.writeString(this.number),e.writeBool(this.mute)}_read(e){this.cid=e.readString(),this.number=e.readString(),this.mute=e.readBool()}static get minWireSize(){return 3}},T.defineStruct(g.MuteLocalTrackT,!0,!0),g.ForceEndConfeT=class{constructor(e="",t=""){this.cid=e,this.employeeid=t}_write(e){e.writeString(this.cid),e.writeString(this.employeeid)}_read(e){this.cid=e.readString(),this.employeeid=e.readString()}static get minWireSize(){return 2}},T.defineStruct(g.ForceEndConfeT,!0,!0),g.HoldT=class{constructor(e="",t=g.HoldType.HoldTypeNone){this.cid=e,this.htype=t}_write(e){e.writeString(this.cid),g.HoldType._write(e,this.htype)}_read(e){this.cid=e.readString(),this.htype=g.HoldType._read(e)}static get minWireSize(){return 2}},T.defineStruct(g.HoldT,!0,!0),g.HoldRT=class{constructor(e=""){this.cid=e}_write(e){e.writeString(this.cid)}_read(e){this.cid=e.readString()}static get minWireSize(){return 1}},T.defineStruct(g.HoldRT,!0,!0),g.HangupT=class{constructor(e=""){this.cid=e}_write(e){e.writeString(this.cid)}_read(e){this.cid=e.readString()}static get minWireSize(){return 1}},T.defineStruct(g.HangupT,!0,!0),g.HangupT1=class{constructor(e="",t=""){this.cid=e,this.member=t}_write(e){e.writeString(this.cid),e.writeString(this.member)}_read(e){this.cid=e.readString(),this.member=e.readString()}static get minWireSize(){return 2}},T.defineStruct(g.HangupT1,!0,!0),g.HangupRT=class{constructor(e=""){this.cid=e}_write(e){e.writeString(this.cid)}_read(e){this.cid=e.readString()}static get minWireSize(){return 1}},T.defineStruct(g.HangupRT,!0,!0),g.CalleeT=class{constructor(e=""){this.employeeid=e}_write(e){e.writeString(this.employeeid)}_read(e){this.employeeid=e.readString()}static get minWireSize(){return 1}},T.defineStruct(g.CalleeT,!0,!0),T.defineSequence(g,"CalleeSeqHelper","Dispatcher.CalleeT",!1),g.CreateConfT=class{constructor(e=null,t="",i="",r="",s=g.CallType.CallTypeNone,n=g.MediaType.MediaTypeNone){this.member=e,this.sessname=t,this.sessnum=i,this.caller=r,this.ctype=s,this.isVideo=n}_write(e){g.CalleeSeqHelper.write(e,this.member),e.writeString(this.sessname),e.writeString(this.sessnum),e.writeString(this.caller),g.CallType._write(e,this.ctype),g.MediaType._write(e,this.isVideo)}_read(e){this.member=g.CalleeSeqHelper.read(e),this.sessname=e.readString(),this.sessnum=e.readString(),this.caller=e.readString(),this.ctype=g.CallType._read(e),this.isVideo=g.MediaType._read(e)}static get minWireSize(){return 6}},T.defineStruct(g.CreateConfT,!0,!0),g.CreateMcuConfT=class{constructor(e=null,t="",i="",r="",s=g.CallType.CallTypeNone,n=g.MediaType.MediaTypeNone,a=!1){this.member=e,this.sessname=t,this.sessnum=i,this.caller=r,this.ctype=s,this.isVideo=n,this.isMcuCall=a}_write(e){g.CalleeSeqHelper.write(e,this.member),e.writeString(this.sessname),e.writeString(this.sessnum),e.writeString(this.caller),g.CallType._write(e,this.ctype),g.MediaType._write(e,this.isVideo),e.writeBool(this.isMcuCall)}_read(e){this.member=g.CalleeSeqHelper.read(e),this.sessname=e.readString(),this.sessnum=e.readString(),this.caller=e.readString(),this.ctype=g.CallType._read(e),this.isVideo=g.MediaType._read(e),this.isMcuCall=e.readBool()}static get minWireSize(){return 7}},T.defineStruct(g.CreateMcuConfT,!0,!0),g.CreateMcuConf1T=class{constructor(e=null,t="",i="",r="",s=g.CallType.CallTypeNone,n=g.MediaType.MediaTypeNone,a=!1,o=""){this.member=e,this.sessname=t,this.sessnum=i,this.caller=r,this.ctype=s,this.isVideo=n,this.isMcuCall=a,this.defaultsdp=o}_write(e){g.CalleeSeqHelper.write(e,this.member),e.writeString(this.sessname),e.writeString(this.sessnum),e.writeString(this.caller),g.CallType._write(e,this.ctype),g.MediaType._write(e,this.isVideo),e.writeBool(this.isMcuCall),e.writeString(this.defaultsdp)}_read(e){this.member=g.CalleeSeqHelper.read(e),this.sessname=e.readString(),this.sessnum=e.readString(),this.caller=e.readString(),this.ctype=g.CallType._read(e),this.isVideo=g.MediaType._read(e),this.isMcuCall=e.readBool(),this.defaultsdp=e.readString()}static get minWireSize(){return 8}},T.defineStruct(g.CreateMcuConf1T,!0,!0),g.CreateConf1T=class{constructor(e=null,t="",i="",r="",s=g.CallType.CallTypeNone,n=g.MediaType.MediaTypeNone,a=!1,o=""){this.member=e,this.sessname=t,this.sessnum=i,this.caller=r,this.ctype=s,this.isVideo=n,this.isMcuCall=a,this.defaultsdp=o}_write(e){g.CalleeSeqHelper.write(e,this.member),e.writeString(this.sessname),e.writeString(this.sessnum),e.writeString(this.caller),g.CallType._write(e,this.ctype),g.MediaType._write(e,this.isVideo),e.writeBool(this.isMcuCall),e.writeString(this.defaultsdp)}_read(e){this.member=g.CalleeSeqHelper.read(e),this.sessname=e.readString(),this.sessnum=e.readString(),this.caller=e.readString(),this.ctype=g.CallType._read(e),this.isVideo=g.MediaType._read(e),this.isMcuCall=e.readBool(),this.defaultsdp=e.readString()}static get minWireSize(){return 8}},T.defineStruct(g.CreateConf1T,!0,!0),g.CreateConfRT=class{constructor(e="",t="",i=""){this.sessnum=e,this.cid=t,this.empid=i}_write(e){e.writeString(this.sessnum),e.writeString(this.cid),e.writeString(this.empid)}_read(e){this.sessnum=e.readString(),this.cid=e.readString(),this.empid=e.readString()}static get minWireSize(){return 3}},T.defineStruct(g.CreateConfRT,!0,!0),g.AddMemberT=class{constructor(e="",t="",i=g.AnswerType.AnswerTypeNone){this.cid=e,this.number=t,this.astype=i}_write(e){e.writeString(this.cid),e.writeString(this.number),g.AnswerType._write(e,this.astype)}_read(e){this.cid=e.readString(),this.number=e.readString(),this.astype=g.AnswerType._read(e)}static get minWireSize(){return 3}},T.defineStruct(g.AddMemberT,!0,!0),g.AddMemberRT=class{constructor(e="",t=""){this.cid=e,this.empid=t}_write(e){e.writeString(this.cid),e.writeString(this.empid)}_read(e){this.cid=e.readString(),this.empid=e.readString()}static get minWireSize(){return 2}},T.defineStruct(g.AddMemberRT,!0,!0),g.DelMemberT=class{constructor(e="",t=""){this.cid=e,this.number=t}_write(e){e.writeString(this.cid),e.writeString(this.number)}_read(e){this.cid=e.readString(),this.number=e.readString()}static get minWireSize(){return 2}},T.defineStruct(g.DelMemberT,!0,!0),g.DelMemberRT=class{constructor(e="",t=""){this.cid=e,this.empid=t}_write(e){e.writeString(this.cid),e.writeString(this.empid)}_read(e){this.cid=e.readString(),this.empid=e.readString()}static get minWireSize(){return 2}},T.defineStruct(g.DelMemberRT,!0,!0),g.AllCallMemberT=class{constructor(e="",t=""){this.sid=e,this.cid=t}_write(e){e.writeString(this.sid),e.writeString(this.cid)}_read(e){this.sid=e.readString(),this.cid=e.readString()}static get minWireSize(){return 2}},T.defineStruct(g.AllCallMemberT,!0,!0),g.AllCallMemberRT=class{constructor(e="",t="",i="",r=8,s=g.CallState.CallStateNone,n=""){this.cid=e,this.employeeid=t,this.name=i,this.type=r,this.state=s,this.stateDecorate=n}_write(e){e.writeString(this.cid),e.writeString(this.employeeid),e.writeString(this.name),e.writeInt(this.type),g.CallState._write(e,this.state),e.writeString(this.stateDecorate)}_read(e){this.cid=e.readString(),this.employeeid=e.readString(),this.name=e.readString(),this.type=e.readInt(),this.state=g.CallState._read(e),this.stateDecorate=e.readString()}static get minWireSize(){return 9}},T.defineStruct(g.AllCallMemberRT,!0,!0),T.defineSequence(g,"AllCallMemberRSeqHelper","Dispatcher.AllCallMemberRT",!1),g.PullQueueCallT=class{constructor(e="",t=""){this.cid=e,this.caller=t}_write(e){e.writeString(this.cid),e.writeString(this.caller)}_read(e){this.cid=e.readString(),this.caller=e.readString()}static get minWireSize(){return 2}},T.defineStruct(g.PullQueueCallT,!0,!0),g.PushCallToQueueT=class{constructor(e="",t=""){this.cid=e,this.RoadParameters=t}_write(e){e.writeString(this.cid),e.writeString(this.RoadParameters)}_read(e){this.cid=e.readString(),this.RoadParameters=e.readString()}static get minWireSize(){return 2}},T.defineStruct(g.PushCallToQueueT,!0,!0),g.PushCallToQueueT1=class{constructor(e="",t="",i=""){this.cid=e,this.member=t,this.RoadParameters=i}_write(e){e.writeString(this.cid),e.writeString(this.member),e.writeString(this.RoadParameters)}_read(e){this.cid=e.readString(),this.member=e.readString(),this.RoadParameters=e.readString()}static get minWireSize(){return 3}},T.defineStruct(g.PushCallToQueueT1,!0,!0),g.GetAllSessionT=class{constructor(e=""){this.employeeid=e}_write(e){e.writeString(this.employeeid)}_read(e){this.employeeid=e.readString()}static get minWireSize(){return 1}},T.defineStruct(g.GetAllSessionT,!0,!0),g.GetAllSession1T=class{constructor(e="",t=g.CallType.CallTypeNone){this.employeeid=e,this.cType=t}_write(e){e.writeString(this.employeeid),g.CallType._write(e,this.cType)}_read(e){this.employeeid=e.readString(),this.cType=g.CallType._read(e)}static get minWireSize(){return 2}},T.defineStruct(g.GetAllSession1T,!0,!0),g.SendDTMFbyCidT=class{constructor(e="",t="",i=""){this.cid=e,this.member=t,this.strdtmf=i}_write(e){e.writeString(this.cid),e.writeString(this.member),e.writeString(this.strdtmf)}_read(e){this.cid=e.readString(),this.member=e.readString(),this.strdtmf=e.readString()}static get minWireSize(){return 3}},T.defineStruct(g.SendDTMFbyCidT,!0,!0),g.OrderDetailT=class{constructor(e="",t=0,i=30){this.number=e,this.index=t,this.ringtime=i}_write(e){e.writeString(this.number),e.writeInt(this.index),e.writeInt(this.ringtime)}_read(e){this.number=e.readString(),this.index=e.readInt(),this.ringtime=e.readInt()}static get minWireSize(){return 9}},T.defineStruct(g.OrderDetailT,!0,!0),T.defineSequence(g,"OrderDetailSeqHelper","Dispatcher.OrderDetailT",!1),g.OrderCalledT=class{constructor(e="",t=null){this.called=e,this.details=t}_write(e){e.writeString(this.called),g.OrderDetailSeqHelper.write(e,this.details)}_read(e){this.called=e.readString(),this.details=g.OrderDetailSeqHelper.read(e)}static get minWireSize(){return 2}},T.defineStruct(g.OrderCalledT,!0,!0),T.defineSequence(g,"OrderCalledSeqHelper","Dispatcher.OrderCalledT",!1),g.CalledOrderT=class{constructor(e=null,t="",i="",r="",s=g.CallType.CallTypeNone,n=g.MediaType.MediaTypeNone){this.calleds=e,this.sessname=t,this.sessnum=i,this.caller=r,this.ctype=s,this.isVideo=n}_write(e){g.OrderCalledSeqHelper.write(e,this.calleds),e.writeString(this.sessname),e.writeString(this.sessnum),e.writeString(this.caller),g.CallType._write(e,this.ctype),g.MediaType._write(e,this.isVideo)}_read(e){this.calleds=g.OrderCalledSeqHelper.read(e),this.sessname=e.readString(),this.sessnum=e.readString(),this.caller=e.readString(),this.ctype=g.CallType._read(e),this.isVideo=g.MediaType._read(e)}static get minWireSize(){return 6}},T.defineStruct(g.CalledOrderT,!0,!0),g.CalledOrderRT=class{constructor(e="",t="",i=""){this.sessnum=e,this.cid=t,this.empid=i}_write(e){e.writeString(this.sessnum),e.writeString(this.cid),e.writeString(this.empid)}_read(e){this.sessnum=e.readString(),this.cid=e.readString(),this.empid=e.readString()}static get minWireSize(){return 3}},T.defineStruct(g.CalledOrderRT,!0,!0),g.AddMemberByCallOrderT=class{constructor(e="",t="",i=g.AnswerType.AnswerTypeNone,r=null){this.cid=e,this.number=t,this.astype=i,this.details=r}_write(e){e.writeString(this.cid),e.writeString(this.number),g.AnswerType._write(e,this.astype),g.OrderDetailSeqHelper.write(e,this.details)}_read(e){this.cid=e.readString(),this.number=e.readString(),this.astype=g.AnswerType._read(e),this.details=g.OrderDetailSeqHelper.read(e)}static get minWireSize(){return 4}},T.defineStruct(g.AddMemberByCallOrderT,!0,!0),g.ReCallDetailT=class{constructor(e="",t=0){this.number=e,this.callnum=t}_write(e){e.writeString(this.number),e.writeInt(this.callnum)}_read(e){this.number=e.readString(),this.callnum=e.readInt()}static get minWireSize(){return 5}},T.defineStruct(g.ReCallDetailT,!0,!0),T.defineSequence(g,"ReCallDetailSeqHelper","Dispatcher.ReCallDetailT",!1),g.SetReCallNumberT=class{constructor(e="",t=null){this.cid=e,this.details=t}_write(e){e.writeString(this.cid),g.ReCallDetailSeqHelper.write(e,this.details)}_read(e){this.cid=e.readString(),this.details=g.ReCallDetailSeqHelper.read(e)}static get minWireSize(){return 2}},T.defineStruct(g.SetReCallNumberT,!0,!0),g.AllCallMemberRT1=class{constructor(e="",t="",i="",r=8,s=g.CallState.CallStateNone,n="",a=10,o=!1,h=-1){this.cid=e,this.employeeid=t,this.name=i,this.type=r,this.state=s,this.stateDecorate=n,this.level=a,this.IsReCall=o,this.ReCallNum=h}_write(e){e.writeString(this.cid),e.writeString(this.employeeid),e.writeString(this.name),e.writeInt(this.type),g.CallState._write(e,this.state),e.writeString(this.stateDecorate),e.writeInt(this.level),e.writeBool(this.IsReCall),e.writeInt(this.ReCallNum)}_read(e){this.cid=e.readString(),this.employeeid=e.readString(),this.name=e.readString(),this.type=e.readInt(),this.state=g.CallState._read(e),this.stateDecorate=e.readString(),this.level=e.readInt(),this.IsReCall=e.readBool(),this.ReCallNum=e.readInt()}static get minWireSize(){return 18}},T.defineStruct(g.AllCallMemberRT1,!0,!0),T.defineSequence(g,"AllCallMemberRSeq1Helper","Dispatcher.AllCallMemberRT1",!1),g.SessionJoinT=class{constructor(e=""){this.cid=e}_write(e){e.writeString(this.cid)}_read(e){this.cid=e.readString()}static get minWireSize(){return 1}},T.defineStruct(g.SessionJoinT,!0,!0),T.defineSequence(g,"SessionJoinSeqHelper","Dispatcher.SessionJoinT",!1),g.CreateSOSCallT=class{constructor(e=null,t="",i="",r="",s=g.MediaType.MediaTypeNone){this.member=e,this.sessname=t,this.sessnum=i,this.caller=r,this.isVideo=s}_write(e){g.CalleeSeqHelper.write(e,this.member),e.writeString(this.sessname),e.writeString(this.sessnum),e.writeString(this.caller),g.MediaType._write(e,this.isVideo)}_read(e){this.member=g.CalleeSeqHelper.read(e),this.sessname=e.readString(),this.sessnum=e.readString(),this.caller=e.readString(),this.isVideo=g.MediaType._read(e)}static get minWireSize(){return 5}},T.defineStruct(g.CreateSOSCallT,!0,!0),g.UploadVideoCallT=class{constructor(e=null,t="",i="",r="",s=g.MediaType.MediaTypeNone){this.member=e,this.sessname=t,this.sessnum=i,this.caller=r,this.isVideo=s}_write(e){g.CalleeSeqHelper.write(e,this.member),e.writeString(this.sessname),e.writeString(this.sessnum),e.writeString(this.caller),g.MediaType._write(e,this.isVideo)}_read(e){this.member=g.CalleeSeqHelper.read(e),this.sessname=e.readString(),this.sessnum=e.readString(),this.caller=e.readString(),this.isVideo=g.MediaType._read(e)}static get minWireSize(){return 5}},T.defineStruct(g.UploadVideoCallT,!0,!0),g.TransferVideoT=class{constructor(e="",t="",i="",r="",s=null){this.sessname=e,this.sessnum=t,this.srccid=i,this.srcnumber=r,this.calleds=s}_write(e){e.writeString(this.sessname),e.writeString(this.sessnum),e.writeString(this.srccid),e.writeString(this.srcnumber),g.OrderCalledSeqHelper.write(e,this.calleds)}_read(e){this.sessname=e.readString(),this.sessnum=e.readString(),this.srccid=e.readString(),this.srcnumber=e.readString(),this.calleds=g.OrderCalledSeqHelper.read(e)}static get minWireSize(){return 5}},T.defineStruct(g.TransferVideoT,!0,!0),g.TransferVideoToMCUT=class{constructor(e="",t="",i="",r="",s="",n=null){this.sessname=e,this.sessnum=t,this.srccid=i,this.srcnumber=r,this.defaultcode=s,this.calleds=n}_write(e){e.writeString(this.sessname),e.writeString(this.sessnum),e.writeString(this.srccid),e.writeString(this.srcnumber),e.writeString(this.defaultcode),g.OrderCalledSeqHelper.write(e,this.calleds)}_read(e){this.sessname=e.readString(),this.sessnum=e.readString(),this.srccid=e.readString(),this.srcnumber=e.readString(),this.defaultcode=e.readString(),this.calleds=g.OrderCalledSeqHelper.read(e)}static get minWireSize(){return 6}},T.defineStruct(g.TransferVideoToMCUT,!0,!0),g.TransferVideoRT=class{constructor(e=""){this.newcid=e}_write(e){e.writeString(this.newcid)}_read(e){this.newcid=e.readString()}static get minWireSize(){return 1}},T.defineStruct(g.TransferVideoRT,!0,!0),g.AddMemberT1=class{constructor(e="",t="",i=g.AnswerType.AnswerTypeNone,r=g.SpeakType.SpeakTypeNone,s=g.HearType.HearTypeNone,n="",a=null){this.cid=e,this.number=t,this.astype=i,this.speakertypea=r,this.hear=s,this.RoadParameters=n,this.details=a}_write(e){e.writeString(this.cid),e.writeString(this.number),g.AnswerType._write(e,this.astype),g.SpeakType._write(e,this.speakertypea),g.HearType._write(e,this.hear),e.writeString(this.RoadParameters),g.OrderDetailSeqHelper.write(e,this.details)}_read(e){this.cid=e.readString(),this.number=e.readString(),this.astype=g.AnswerType._read(e),this.speakertypea=g.SpeakType._read(e),this.hear=g.HearType._read(e),this.RoadParameters=e.readString(),this.details=g.OrderDetailSeqHelper.read(e)}static get minWireSize(){return 7}},T.defineStruct(g.AddMemberT1,!0,!0);g.CallingOP=class extends t.Ice.Object{},g.CallingOPPrx=class extends t.Ice.ObjectPrx{},T.defineOperations(g.CallingOP,g.CallingOPPrx,["::Dispatcher::CallingOP","::Ice::Object"],0,{IFCReqNegoTransfer:[,,,,[g.NegoTransferRT],[[g.Identity],[g.NegoTransferT]],,[g.Error],,],IFCReqPlayAudio:[,,,,[g.PlayAudioRT],[[g.Identity],[g.PlayAudioT]],,[g.Error],,],IFCReqCallPickup:[,,,,[g.CallCommonRT],[[g.Identity],[g.CallCommonT]],,[g.Error],,],IFCReqForbiddenTalk:[,,,,[g.SpeakerRT],[[g.Identity],[g.SpeakerT]],,[g.Error],,],IFCReqForbiddenHear:[,,,,[g.HearRT],[[g.Identity],[g.HearT]],,[g.Error],,],IFCReqMuteLocalMic:[,,,,[1],[[g.Identity],[g.MuteLocalTrackT]],,[g.Error],,],IFCReqMuteLocalCamera:[,,,,[1],[[g.Identity],[g.MuteLocalTrackT]],,[g.Error],,],IFCReqEndConf:[,,,,[g.CommonRequestT],[[g.Identity],[g.ForceEndConfeT]],,[g.Error],,],IFCReqForceBreak:[,,,,[g.CallCommonRT],[[g.Identity],[g.CallCommonT]],,[g.Error],,],IFCReqForceDemolition:[,,,,[g.CallCommonRT],[[g.Identity],[g.CallCommonT]],,[g.Error],,],IFCReqForceInsert:[,,,,[g.CallCommonRT],[[g.Identity],[g.CallCommonT]],,[g.Error],,],IFCReqMonitor:[,,,,[g.CallCommonRT],[[g.Identity],[g.CallCommonT]],,[g.Error],,],IFCReqCallTransfer:[,,,,[g.CallCommonRT],[[g.Identity],[g.CallCommonT]],,[g.Error],,],IFCReqHold:[,,,,[g.HoldRT],[[g.Identity],[g.HoldT]],,[g.Error],,],IFCReqHangup:[,,,,[g.HangupRT],[[g.Identity],[g.HangupT]],,[g.Error],,],IFCReqHangup2:[,,,,[g.HangupRT],[[g.Identity],[g.HangupT1]],,[g.Error],,],IFCReqCreateConf:[,,,,[g.CreateConfRT],[[g.Identity],[g.CreateConfT]],,[g.Error],,],IFCReqCreateMcuConf:[,,,,[g.CreateConfRT],[[g.Identity],[g.CreateMcuConfT]],,[g.Error],,],IFCReqCreateMcuConf2:[,,,,[g.CreateConfRT],[[g.Identity],[g.CreateMcuConf1T]],,[g.Error],,],IFCReqCreateConf2:[,,,,[g.CreateConfRT],[[g.Identity],[g.CreateConf1T]],,[g.Error],,],IFCReqCreateScheduleConf:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqFixScheduleConf:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqDeleteScheduleConf:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqGetScheduleConf:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqAddMember:[,,,,[g.AddMemberRT],[[g.Identity],[g.AddMemberT]],,[g.Error],,],IFCReqDelMember:[,,,,[g.DelMemberRT],[[g.Identity],[g.DelMemberT]],,[g.Error],,],IFCReqGetAllMember:[,,,,["Dispatcher.AllCallMemberRSeqHelper"],[[g.Identity],[g.AllCallMemberT]],,[g.Error],,],IFCReqPullCallFromQueue:[,,,,[g.CommonRequestT],[[g.Identity],[g.PullQueueCallT]],,[g.Error],,],IFCReqPushCallToQueue:[,,,,[g.CommonRequestT],[[g.Identity],[g.PushCallToQueueT]],,[g.Error],,],IFCReqPushCallToQueue2:[,,,,[g.CommonRequestT],[[g.Identity],[g.PushCallToQueueT1]],,[g.Error],,],IFCReqGetAllSessions:[,,,,["Dispatcher.SessionChangeTSeqHelper"],[[g.Identity],[g.GetAllSessionT]],,[g.Error],,],IFCReqGetAllSessions2:[,,,,["Dispatcher.SessionChangeTSeqHelper"],[[g.Identity],[g.GetAllSession1T]],,[g.Error],,],IFCReqSendDtmf:[,,,,[1],[[g.Identity],[g.SendDTMFbyCidT]],,[g.Error],,],IFCReqCreateCallByOrder:[,,,,[g.CalledOrderRT],[[g.Identity],[g.CalledOrderT]],,[g.Error],,],IFCReqInviteMemberByOrder:[,,,,,[[g.Identity],[g.AddMemberByCallOrderT]],,[g.Error],,],IFCReqSetCallCount:[,,,,,[[g.Identity],[g.SetReCallNumberT]],,[g.Error],,],IFCReqGetAllMember1:[,,,,["Dispatcher.AllCallMemberRSeq1Helper"],[[g.Identity],[g.AllCallMemberT]],,[g.Error],,],IFCReqCallMerge:[,,,,[g.CreateConfRT],[[g.Identity],["Dispatcher.SessionJoinSeqHelper"]],,[g.Error],,],IFCReqCreateSOSCall:[,,,,[g.CreateConfRT],[[g.Identity],[g.CreateSOSCallT]],,[g.Error],,],IFCReqTransferVideo:[,,,,[g.TransferVideoRT],[[g.Identity],[g.TransferVideoT]],,[g.Error],,],IFCReqTransferVideoToMCU:[,,,,[g.TransferVideoRT],[[g.Identity],[g.TransferVideoToMCUT]],,[g.Error],,],IFCReqCreateVideoUploadCall:[,,,,[g.CreateConfRT],[[g.Identity],[g.UploadVideoCallT]],,[g.Error],,],IFCReqTmpCallMerge:[,,,,["Dispatcher.SessionJoinSeqHelper"],[[g.Identity],["Dispatcher.SessionJoinSeqHelper"]],,[g.Error],,],IFCReqAddMember2:[,,,,[g.AddMemberRT],[[g.Identity],[g.AddMemberT1]],,[g.Error],,],IFCReqRecallIntercom:[,,,,,[[g.Identity],[7]],,[g.Error],,],IFCReqGetAllMember2:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqGetAllFixMeetingSessions:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqAddMemberToFixMeeting:[,,,,[7],[[g.Identity],[7]],,[g.Error],,]});g.CallingSB=class extends t.Ice.Object{},g.CallingSBPrx=class extends t.Ice.ObjectPrx{},T.defineOperations(g.CallingSB,g.CallingSBPrx,["::Dispatcher::CallingSB","::Ice::Object"],0);t.Ice._ModuleRegistry;const w=t.Ice.Slice;g.SendVideoT=class{constructor(e="",t="",i="",r="",s="",n="",a="",o="",h=""){this.sid=e,this.cid=t,this.employeeid=i,this.ip=r,this.port=s,this.codec=n,this.stream=a,this.framerate=o,this.agentid=h}_write(e){e.writeString(this.sid),e.writeString(this.cid),e.writeString(this.employeeid),e.writeString(this.ip),e.writeString(this.port),e.writeString(this.codec),e.writeString(this.stream),e.writeString(this.framerate),e.writeString(this.agentid)}_read(e){this.sid=e.readString(),this.cid=e.readString(),this.employeeid=e.readString(),this.ip=e.readString(),this.port=e.readString(),this.codec=e.readString(),this.stream=e.readString(),this.framerate=e.readString(),this.agentid=e.readString()}static get minWireSize(){return 9}},w.defineStruct(g.SendVideoT,!0,!0),g.SendVideoRT=class{constructor(e="",t="",i="",r=""){this.sid=e,this.ip=t,this.port=i,this.agentid=r}_write(e){e.writeString(this.sid),e.writeString(this.ip),e.writeString(this.port),e.writeString(this.agentid)}_read(e){this.sid=e.readString(),this.ip=e.readString(),this.port=e.readString(),this.agentid=e.readString()}static get minWireSize(){return 4}},w.defineStruct(g.SendVideoRT,!0,!0),g.GetVideoT=class{constructor(e="",t="",i="",r="",s="",n="",a="",o="",h="",d=""){this.sid=e,this.cid=t,this.employeeid=i,this.ip=r,this.port=s,this.employeeiddst=n,this.codec=a,this.stream=o,this.framerate=h,this.agentid=d}_write(e){e.writeString(this.sid),e.writeString(this.cid),e.writeString(this.employeeid),e.writeString(this.ip),e.writeString(this.port),e.writeString(this.employeeiddst),e.writeString(this.codec),e.writeString(this.stream),e.writeString(this.framerate),e.writeString(this.agentid)}_read(e){this.sid=e.readString(),this.cid=e.readString(),this.employeeid=e.readString(),this.ip=e.readString(),this.port=e.readString(),this.employeeiddst=e.readString(),this.codec=e.readString(),this.stream=e.readString(),this.framerate=e.readString(),this.agentid=e.readString()}static get minWireSize(){return 10}},w.defineStruct(g.GetVideoT,!0,!0),g.GetVideoRT=class{constructor(e="",t=""){this.sid=e,this.cid=t}_write(e){e.writeString(this.sid),e.writeString(this.cid)}_read(e){this.sid=e.readString(),this.cid=e.readString()}static get minWireSize(){return 2}},w.defineStruct(g.GetVideoRT,!0,!0),g.ChangeVideoT=class{constructor(e="",t="",i="",r="",s="",n="",a="",o="",h="",d=""){this.sid=e,this.cid=t,this.employeeid=i,this.ip=r,this.port=s,this.employeeiddst=n,this.codec=a,this.stream=o,this.framerate=h,this.agentid=d}_write(e){e.writeString(this.sid),e.writeString(this.cid),e.writeString(this.employeeid),e.writeString(this.ip),e.writeString(this.port),e.writeString(this.employeeiddst),e.writeString(this.codec),e.writeString(this.stream),e.writeString(this.framerate),e.writeString(this.agentid)}_read(e){this.sid=e.readString(),this.cid=e.readString(),this.employeeid=e.readString(),this.ip=e.readString(),this.port=e.readString(),this.employeeiddst=e.readString(),this.codec=e.readString(),this.stream=e.readString(),this.framerate=e.readString(),this.agentid=e.readString()}static get minWireSize(){return 10}},w.defineStruct(g.ChangeVideoT,!0,!0),g.ChangeVideoRT=class{constructor(e="",t="",i="",r="",s="",n="",a="",o=""){this.sid=e,this.streamid=t,this.ip=i,this.port=r,this.codec=s,this.stream=n,this.framerate=a,this.agentid=o}_write(e){e.writeString(this.sid),e.writeString(this.streamid),e.writeString(this.ip),e.writeString(this.port),e.writeString(this.codec),e.writeString(this.stream),e.writeString(this.framerate),e.writeString(this.agentid)}_read(e){this.sid=e.readString(),this.streamid=e.readString(),this.ip=e.readString(),this.port=e.readString(),this.codec=e.readString(),this.stream=e.readString(),this.framerate=e.readString(),this.agentid=e.readString()}static get minWireSize(){return 8}},w.defineStruct(g.ChangeVideoRT,!0,!0),g.ReleaseVideoT=class{constructor(e="",t="",i="",r="",s="",n="",a="",o=""){this.sid=e,this.cid=t,this.employeeid=i,this.ip=r,this.port=s,this.streamid=n,this.employeeiddst=a,this.agentid=o}_write(e){e.writeString(this.sid),e.writeString(this.cid),e.writeString(this.employeeid),e.writeString(this.ip),e.writeString(this.port),e.writeString(this.streamid),e.writeString(this.employeeiddst),e.writeString(this.agentid)}_read(e){this.sid=e.readString(),this.cid=e.readString(),this.employeeid=e.readString(),this.ip=e.readString(),this.port=e.readString(),this.streamid=e.readString(),this.employeeiddst=e.readString(),this.agentid=e.readString()}static get minWireSize(){return 8}},w.defineStruct(g.ReleaseVideoT,!0,!0),g.ReleaseVideoRT=class{constructor(e="",t=""){this.sid=e,this.agentid=t}_write(e){e.writeString(this.sid),e.writeString(this.agentid)}_read(e){this.sid=e.readString(),this.agentid=e.readString()}static get minWireSize(){return 2}},w.defineStruct(g.ReleaseVideoRT,!0,!0),g.PushVideoT=class{constructor(e="",t="",i="",r="",s="",n=g.PushVideoType.PushVideoTypeNone,a=""){this.sid=e,this.cid=t,this.employeeid=i,this.streamid=r,this.revid=s,this.IsPush=n,this.agentid=a}_write(e){e.writeString(this.sid),e.writeString(this.cid),e.writeString(this.employeeid),e.writeString(this.streamid),e.writeString(this.revid),g.PushVideoType._write(e,this.IsPush),e.writeString(this.agentid)}_read(e){this.sid=e.readString(),this.cid=e.readString(),this.employeeid=e.readString(),this.streamid=e.readString(),this.revid=e.readString(),this.IsPush=g.PushVideoType._read(e),this.agentid=e.readString()}static get minWireSize(){return 7}},w.defineStruct(g.PushVideoT,!0,!0),g.PushVideoRT=class{constructor(e="",t=""){this.sid=e,this.agentid=t}_write(e){e.writeString(this.sid),e.writeString(this.agentid)}_read(e){this.sid=e.readString(),this.agentid=e.readString()}static get minWireSize(){return 2}},w.defineStruct(g.PushVideoRT,!0,!0),g.SendVideoEvT=class{constructor(e="",t="",i="",r=""){this.sid=e,this.ip=t,this.port=i,this.agentid=r}_write(e){e.writeString(this.sid),e.writeString(this.ip),e.writeString(this.port),e.writeString(this.agentid)}_read(e){this.sid=e.readString(),this.ip=e.readString(),this.port=e.readString(),this.agentid=e.readString()}static get minWireSize(){return 4}},w.defineStruct(g.SendVideoEvT,!0,!0),g.GetVideoEvT=class{constructor(e="",t="",i="",r="",s="",n="",a="",o="",h="",d=""){this.sid=e,this.streamid=t,this.ip=i,this.port=r,this.codec=s,this.stream=n,this.framerate=a,this.employeeid=o,this.cid=h,this.agentid=d}_write(e){e.writeString(this.sid),e.writeString(this.streamid),e.writeString(this.ip),e.writeString(this.port),e.writeString(this.codec),e.writeString(this.stream),e.writeString(this.framerate),e.writeString(this.employeeid),e.writeString(this.cid),e.writeString(this.agentid)}_read(e){this.sid=e.readString(),this.streamid=e.readString(),this.ip=e.readString(),this.port=e.readString(),this.codec=e.readString(),this.stream=e.readString(),this.framerate=e.readString(),this.employeeid=e.readString(),this.cid=e.readString(),this.agentid=e.readString()}static get minWireSize(){return 10}},w.defineStruct(g.GetVideoEvT,!0,!0),g.GetKeyFrameT=class{constructor(e="",t="",i=""){this.cid=e,this.employeeid=t,this.deviceid=i}_write(e){e.writeString(this.cid),e.writeString(this.employeeid),e.writeString(this.deviceid)}_read(e){this.cid=e.readString(),this.employeeid=e.readString(),this.deviceid=e.readString()}static get minWireSize(){return 3}},w.defineStruct(g.GetKeyFrameT,!0,!0);t.Ice._ModuleRegistry;const C=t.Ice.Slice;g.CallingVCB=class extends t.Ice.Object{},g.CallingVCBPrx=class extends t.Ice.ObjectPrx{},C.defineOperations(g.CallingVCB,g.CallingVCBPrx,["::Dispatcher::CallingVCB","::Ice::Object"],0,{IFCNotifySendVideoEvt:[,2,2,,,[[g.SendVideoEvT]],,,,],IFCNotifyGetVideoEvt:[,2,2,,,[[g.GetVideoEvT]],,,,]});t.Ice._ModuleRegistry;const y=t.Ice.Slice;g.GetMemberVideoRT=class{constructor(e="",t="",i="",r=""){this.sid=e,this.cid=t,this.fsip=i,this.fsport=r}_write(e){e.writeString(this.sid),e.writeString(this.cid),e.writeString(this.fsip),e.writeString(this.fsport)}_read(e){this.sid=e.readString(),this.cid=e.readString(),this.fsip=e.readString(),this.fsport=e.readString()}static get minWireSize(){return 4}},y.defineStruct(g.GetMemberVideoRT,!0,!0),y.defineSequence(g,"ReceiveNumSeqHelper","Ice.StringHelper",!1),g.MCUPushMemberToOtherT=class{constructor(e="",t="",i=null){this.cid=e,this.pushednum=t,this.ReceiveNumbers=i}_write(e){e.writeString(this.cid),e.writeString(this.pushednum),g.ReceiveNumSeqHelper.write(e,this.ReceiveNumbers)}_read(e){this.cid=e.readString(),this.pushednum=e.readString(),this.ReceiveNumbers=g.ReceiveNumSeqHelper.read(e)}static get minWireSize(){return 3}},y.defineStruct(g.MCUPushMemberToOtherT,!0,!0),g.StopMCUPushMemberToOtherT=class{constructor(e=""){this.cid=e}_write(e){e.writeString(this.cid)}_read(e){this.cid=e.readString()}static get minWireSize(){return 1}},y.defineStruct(g.StopMCUPushMemberToOtherT,!0,!0),g.SendVideoRT1=class{constructor(e="",t="",i="",r="",s=""){this.sid=e,this.ip=t,this.port=i,this.agentid=r,this.codec=s}_write(e){e.writeString(this.sid),e.writeString(this.ip),e.writeString(this.port),e.writeString(this.agentid),e.writeString(this.codec)}_read(e){this.sid=e.readString(),this.ip=e.readString(),this.port=e.readString(),this.agentid=e.readString(),this.codec=e.readString()}static get minWireSize(){return 5}},y.defineStruct(g.SendVideoRT1,!0,!0);g.CallingVOP=class extends t.Ice.Object{},g.CallingVOPPrx=class extends t.Ice.ObjectPrx{},y.defineOperations(g.CallingVOP,g.CallingVOPPrx,["::Dispatcher::CallingVOP","::Ice::Object"],0,{IFCReqSendVideo:[,,,,[g.SendVideoRT],[[g.Identity],[g.SendVideoT]],,[g.Error],,],IFCReqSendVideo2:[,,,,[g.SendVideoRT1],[[g.Identity],[g.SendVideoT]],,[g.Error],,],IFCReqSendVideoByJson:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqGetVideo:[,,,,[g.GetVideoRT],[[g.Identity],[g.GetVideoT]],,[g.Error],,],IFCReqWebrtcGetVideo:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqChangeVideo:[,,,,[g.ChangeVideoRT],[[g.Identity],[g.ChangeVideoT]],,[g.Error],,],IFCReqReleaseVideo:[,,,,[g.ReleaseVideoRT],[[g.Identity],[g.ReleaseVideoT]],,[g.Error],,],IFCReqPushVideo:[,,,,[g.PushVideoRT],[[g.Identity],[g.PushVideoT]],,[g.Error],,],IFCReqGetKeyFrame:[,,,,,[[g.Identity],[g.GetKeyFrameT]],,[g.Error],,],IFCReqGetMemberVideo:[,,,,[g.GetMemberVideoRT],[[g.Identity],[g.GetVideoT]],,[g.Error],,],IFCReqMcuPushMemberToOther:[,,,,,[[g.Identity],[g.MCUPushMemberToOtherT]],,[g.Error],,],IFCReqStopMcuPushMemberToOther:[,,,,,[[g.Identity],[g.StopMCUPushMemberToOtherT]],,[g.Error],,]});const v=t.Ice._ModuleRegistry,_=t.Ice.Slice;let E=v.module("DispatcherDB");E.EMPLOYEEINFO=class{constructor(e=0,t="",i="",r=0,s=0,n=0,a="",o="",h="",d=0,c=0,l="",g=0,u=0,p=0,m="",S="",f="",I=0,T="",w=0){this.mID=e,this.mEmployeeID=t,this.mPassword=i,this.mEmployeeLevel=r,this.mDepartID=s,this.mRoleID=n,this.mName=a,this.mAddTime=o,this.mModifyTime=h,this.mTheState=d,this.mTheType=c,this.mRemark=l,this.mLatitude=g,this.mLongitude=u,this.mIsRecord=p,this.mMonName=m,this.mMonPasswd=S,this.mMonIP=f,this.mMonPort=I,this.mMonFlag=T,this.mIsVideo=w}_write(e){e.writeInt(this.mID),e.writeString(this.mEmployeeID),e.writeString(this.mPassword),e.writeInt(this.mEmployeeLevel),e.writeInt(this.mDepartID),e.writeInt(this.mRoleID),e.writeString(this.mName),e.writeString(this.mAddTime),e.writeString(this.mModifyTime),e.writeInt(this.mTheState),e.writeInt(this.mTheType),e.writeString(this.mRemark),e.writeFloat(this.mLatitude),e.writeFloat(this.mLongitude),e.writeInt(this.mIsRecord),e.writeString(this.mMonName),e.writeString(this.mMonPasswd),e.writeString(this.mMonIP),e.writeInt(this.mMonPort),e.writeString(this.mMonFlag),e.writeInt(this.mIsVideo)}_read(e){this.mID=e.readInt(),this.mEmployeeID=e.readString(),this.mPassword=e.readString(),this.mEmployeeLevel=e.readInt(),this.mDepartID=e.readInt(),this.mRoleID=e.readInt(),this.mName=e.readString(),this.mAddTime=e.readString(),this.mModifyTime=e.readString(),this.mTheState=e.readInt(),this.mTheType=e.readInt(),this.mRemark=e.readString(),this.mLatitude=e.readFloat(),this.mLongitude=e.readFloat(),this.mIsRecord=e.readInt(),this.mMonName=e.readString(),this.mMonPasswd=e.readString(),this.mMonIP=e.readString(),this.mMonPort=e.readInt(),this.mMonFlag=e.readString(),this.mIsVideo=e.readInt()}static get minWireSize(){return 54}},_.defineStruct(E.EMPLOYEEINFO,!1,!0),_.defineSequence(E,"EMPLOYEEINFOSeqHelper","DispatcherDB.EMPLOYEEINFO",!1),E.GROUPEMPLOYEE=class{constructor(e=0,t=0,i="",r=""){this.mID=e,this.mGroupID=t,this.mEmployeeID=i,this.mAddTime=r}_write(e){e.writeInt(this.mID),e.writeInt(this.mGroupID),e.writeString(this.mEmployeeID),e.writeString(this.mAddTime)}_read(e){this.mID=e.readInt(),this.mGroupID=e.readInt(),this.mEmployeeID=e.readString(),this.mAddTime=e.readString()}static get minWireSize(){return 10}},_.defineStruct(E.GROUPEMPLOYEE,!0,!0),_.defineSequence(E,"GROUPEMPLOYEESeqHelper","DispatcherDB.GROUPEMPLOYEE",!1),E.EmployeeRelatedAll=class{constructor(e=0,t="",i="",r=0,s=0,n=0,a="",o="",h="",d=0,c=0,l="",g=0,u="",p=0,m="",S=0,f=""){this.mID=e,this.mEmployeeID=t,this.mPassword=i,this.mEmployeeLevel=r,this.mDepartID=s,this.mRoleID=n,this.mName=a,this.mAddTime=o,this.mModifyTime=h,this.mTheState=d,this.mTheType=c,this.mRemark=l,this.mGroupID=g,this.mGroupName=u,this.mGroupParentID=p,this.mGroupNum=m,this.mGroupType=S,this.mRoleName=f}_write(e){e.writeInt(this.mID),e.writeString(this.mEmployeeID),e.writeString(this.mPassword),e.writeInt(this.mEmployeeLevel),e.writeInt(this.mDepartID),e.writeInt(this.mRoleID),e.writeString(this.mName),e.writeString(this.mAddTime),e.writeString(this.mModifyTime),e.writeInt(this.mTheState),e.writeInt(this.mTheType),e.writeString(this.mRemark),e.writeInt(this.mGroupID),e.writeString(this.mGroupName),e.writeInt(this.mGroupParentID),e.writeString(this.mGroupNum),e.writeInt(this.mGroupType),e.writeString(this.mRoleName)}_read(e){this.mID=e.readInt(),this.mEmployeeID=e.readString(),this.mPassword=e.readString(),this.mEmployeeLevel=e.readInt(),this.mDepartID=e.readInt(),this.mRoleID=e.readInt(),this.mName=e.readString(),this.mAddTime=e.readString(),this.mModifyTime=e.readString(),this.mTheState=e.readInt(),this.mTheType=e.readInt(),this.mRemark=e.readString(),this.mGroupID=e.readInt(),this.mGroupName=e.readString(),this.mGroupParentID=e.readInt(),this.mGroupNum=e.readString(),this.mGroupType=e.readInt(),this.mRoleName=e.readString()}static get minWireSize(){return 45}},_.defineStruct(E.EmployeeRelatedAll,!0,!0),_.defineSequence(E,"EmployeeRelatedAllSeqHelper","DispatcherDB.EmployeeRelatedAll",!1),E.DEVICECONFIG=class{constructor(e=0,t="",i=0,r="",s=0,n=0,a="",o="",h=0,d="",c=""){this.mID=e,this.mStartDevice=t,this.mSumDevice=i,this.mServerIP=r,this.mServerPort=s,this.mTheState=n,this.mModifyTime=a,this.mAddTime=o,this.mTheType=h,this.mUserName=d,this.mUserPWD=c}_write(e){e.writeInt(this.mID),e.writeString(this.mStartDevice),e.writeInt(this.mSumDevice),e.writeString(this.mServerIP),e.writeInt(this.mServerPort),e.writeInt(this.mTheState),e.writeString(this.mModifyTime),e.writeString(this.mAddTime),e.writeInt(this.mTheType),e.writeString(this.mUserName),e.writeString(this.mUserPWD)}_read(e){this.mID=e.readInt(),this.mStartDevice=e.readString(),this.mSumDevice=e.readInt(),this.mServerIP=e.readString(),this.mServerPort=e.readInt(),this.mTheState=e.readInt(),this.mModifyTime=e.readString(),this.mAddTime=e.readString(),this.mTheType=e.readInt(),this.mUserName=e.readString(),this.mUserPWD=e.readString()}static get minWireSize(){return 26}},_.defineStruct(E.DEVICECONFIG,!0,!0),_.defineSequence(E,"DEVICECONFIGSeqHelper","DispatcherDB.DEVICECONFIG",!1),E.SYSPARAMETER=class{constructor(e="",t="",i=0){this.mTheKey=e,this.mTheValue=t,this.mTheState=i}_write(e){e.writeString(this.mTheKey),e.writeString(this.mTheValue),e.writeInt(this.mTheState)}_read(e){this.mTheKey=e.readString(),this.mTheValue=e.readString(),this.mTheState=e.readInt()}static get minWireSize(){return 6}},_.defineStruct(E.SYSPARAMETER,!0,!0),_.defineSequence(E,"SYSPARAMETERSeqHelper","DispatcherDB.SYSPARAMETER",!1),E.SYSCONFIGREAD=class{constructor(e="",t="",i="",r=0,s=""){this.mTableName=e,this.mAddTime=t,this.mReadTime=i,this.mState=r,this.mValue1=s}_write(e){e.writeString(this.mTableName),e.writeString(this.mAddTime),e.writeString(this.mReadTime),e.writeInt(this.mState),e.writeString(this.mValue1)}_read(e){this.mTableName=e.readString(),this.mAddTime=e.readString(),this.mReadTime=e.readString(),this.mState=e.readInt(),this.mValue1=e.readString()}static get minWireSize(){return 8}},_.defineStruct(E.SYSCONFIGREAD,!0,!0),_.defineSequence(E,"SYSCONFIGREADSeqHelper","DispatcherDB.SYSCONFIGREAD",!1),E.CALLCALLLOGType=class{constructor(e="",t="",i="",r="",s="",n=0,a=0,o=0,h=0){this.mCid=e,this.mCaller=t,this.mCalled=i,this.mCreateTime=r,this.mReleaseTime=s,this.mTimeLength=n,this.mCallType=a,this.mCallResult=o,this.mReleaseReason=h}_write(e){e.writeString(this.mCid),e.writeString(this.mCaller),e.writeString(this.mCalled),e.writeString(this.mCreateTime),e.writeString(this.mReleaseTime),e.writeInt(this.mTimeLength),e.writeInt(this.mCallType),e.writeInt(this.mCallResult),e.writeInt(this.mReleaseReason)}_read(e){this.mCid=e.readString(),this.mCaller=e.readString(),this.mCalled=e.readString(),this.mCreateTime=e.readString(),this.mReleaseTime=e.readString(),this.mTimeLength=e.readInt(),this.mCallType=e.readInt(),this.mCallResult=e.readInt(),this.mReleaseReason=e.readInt()}static get minWireSize(){return 21}},_.defineStruct(E.CALLCALLLOGType,!0,!0),_.defineSequence(E,"CALLCALLLOGSeqHelper","DispatcherDB.CALLCALLLOGType",!1),E.CALLRECORDType=class{constructor(e="",t="",i="",r=0,s=0,n="",a="",o=0,h=0,d=""){this.mCid=e,this.mRecordName=t,this.mSubPath=i,this.mReadTimes=r,this.mRecordServerID=s,this.mCreateTime=n,this.mReleaseTime=a,this.mTimeLength=o,this.mRecordType=h,this.mWebPath=d}_write(e){e.writeString(this.mCid),e.writeString(this.mRecordName),e.writeString(this.mSubPath),e.writeInt(this.mReadTimes),e.writeInt(this.mRecordServerID),e.writeString(this.mCreateTime),e.writeString(this.mReleaseTime),e.writeInt(this.mTimeLength),e.writeInt(this.mRecordType),e.writeString(this.mWebPath)}_read(e){this.mCid=e.readString(),this.mRecordName=e.readString(),this.mSubPath=e.readString(),this.mReadTimes=e.readInt(),this.mRecordServerID=e.readInt(),this.mCreateTime=e.readString(),this.mReleaseTime=e.readString(),this.mTimeLength=e.readInt(),this.mRecordType=e.readInt(),this.mWebPath=e.readString()}static get minWireSize(){return 22}},_.defineStruct(E.CALLRECORDType,!0,!0),_.defineSequence(E,"CALLRECORDSeqHelper","DispatcherDB.CALLRECORDType",!1),E.VIDEO=class{constructor(e=0,t="",i="",r="",s="",n="",a=0,o=""){this.mID=e,this.mVideoIP=t,this.mVideoPort=i,this.mUser=r,this.mPassWord=s,this.mShowName=n,this.mTheType=a,this.mBindEmployeeID=o}_write(e){e.writeInt(this.mID),e.writeString(this.mVideoIP),e.writeString(this.mVideoPort),e.writeString(this.mUser),e.writeString(this.mPassWord),e.writeString(this.mShowName),e.writeInt(this.mTheType),e.writeString(this.mBindEmployeeID)}_read(e){this.mID=e.readInt(),this.mVideoIP=e.readString(),this.mVideoPort=e.readString(),this.mUser=e.readString(),this.mPassWord=e.readString(),this.mShowName=e.readString(),this.mTheType=e.readInt(),this.mBindEmployeeID=e.readString()}static get minWireSize(){return 14}},_.defineStruct(E.VIDEO,!0,!0),_.defineSequence(E,"VIDEOSeqHelper","DispatcherDB.VIDEO",!1),E.VIDEORECORDType=class{constructor(e="",t="",i="",r=0,s=0,n="",a="",o=0,h=0,d=""){this.mCid=e,this.mRecordName=t,this.mSubPath=i,this.mReadTimes=r,this.mRecordServerID=s,this.mCreateTime=n,this.mReleaseTime=a,this.mTimeLength=o,this.mRecordType=h,this.mWebPath=d}_write(e){e.writeString(this.mCid),e.writeString(this.mRecordName),e.writeString(this.mSubPath),e.writeInt(this.mReadTimes),e.writeInt(this.mRecordServerID),e.writeString(this.mCreateTime),e.writeString(this.mReleaseTime),e.writeInt(this.mTimeLength),e.writeInt(this.mRecordType),e.writeString(this.mWebPath)}_read(e){this.mCid=e.readString(),this.mRecordName=e.readString(),this.mSubPath=e.readString(),this.mReadTimes=e.readInt(),this.mRecordServerID=e.readInt(),this.mCreateTime=e.readString(),this.mReleaseTime=e.readString(),this.mTimeLength=e.readInt(),this.mRecordType=e.readInt(),this.mWebPath=e.readString()}static get minWireSize(){return 22}},_.defineStruct(E.VIDEORECORDType,!0,!0),_.defineSequence(E,"VIDEORECORDSeqHelper","DispatcherDB.VIDEORECORDType",!1),E.MSGINFO=class{constructor(e=0,t="",i="",r="",s="",n="",a=0,o=0){this.mID=e,this.mMsgID=t,this.mSendID=i,this.mSendName=r,this.mMsgBody=s,this.mSendTime=n,this.mIsUpload=a,this.mMsgType=o}_write(e){e.writeInt(this.mID),e.writeString(this.mMsgID),e.writeString(this.mSendID),e.writeString(this.mSendName),e.writeString(this.mMsgBody),e.writeString(this.mSendTime),e.writeInt(this.mIsUpload),e.writeInt(this.mMsgType)}_read(e){this.mID=e.readInt(),this.mMsgID=e.readString(),this.mSendID=e.readString(),this.mSendName=e.readString(),this.mMsgBody=e.readString(),this.mSendTime=e.readString(),this.mIsUpload=e.readInt(),this.mMsgType=e.readInt()}static get minWireSize(){return 17}},_.defineStruct(E.MSGINFO,!0,!0),_.defineSequence(E,"MSGINFOSeqHelper","DispatcherDB.MSGINFO",!1),E.MSGSENDRS=class{constructor(e=0,t="",i="",r="",s="",n=""){this.mID=e,this.mMsgID=t,this.mReceiverID=i,this.mReceiverName=r,this.mIsFinish=s,this.mRecvTime=n}_write(e){e.writeInt(this.mID),e.writeString(this.mMsgID),e.writeString(this.mReceiverID),e.writeString(this.mReceiverName),e.writeString(this.mIsFinish),e.writeString(this.mRecvTime)}_read(e){this.mID=e.readInt(),this.mMsgID=e.readString(),this.mReceiverID=e.readString(),this.mReceiverName=e.readString(),this.mIsFinish=e.readString(),this.mRecvTime=e.readString()}static get minWireSize(){return 9}},_.defineStruct(E.MSGSENDRS,!0,!0),_.defineSequence(E,"MSGSENDRSSeqHelper","DispatcherDB.MSGSENDRS",!1),E.ROUTECFG=class{constructor(e=0,t="",i=""){this.mID=e,this.mRouteNum=t,this.mIP=i}_write(e){e.writeInt(this.mID),e.writeString(this.mRouteNum),e.writeString(this.mIP)}_read(e){this.mID=e.readInt(),this.mRouteNum=e.readString(),this.mIP=e.readString()}static get minWireSize(){return 6}},_.defineStruct(E.ROUTECFG,!0,!0),_.defineSequence(E,"ROUTECFGSeqHelper","DispatcherDB.ROUTECFG",!1),E.IVRCFG=class{constructor(e=0,t="",i=""){this.mID=e,this.mIvrName=t,this.mIvrNum=i}_write(e){e.writeInt(this.mID),e.writeString(this.mIvrName),e.writeString(this.mIvrNum)}_read(e){this.mID=e.readInt(),this.mIvrName=e.readString(),this.mIvrNum=e.readString()}static get minWireSize(){return 6}},_.defineStruct(E.IVRCFG,!0,!0),_.defineSequence(E,"IVRCFGSeqHelper","DispatcherDB.IVRCFG",!1),E.MDVSCFG=class{constructor(e=0,t="",i=""){this.mID=e,this.mMdvsName=t,this.mIP=i}_write(e){e.writeInt(this.mID),e.writeString(this.mMdvsName),e.writeString(this.mIP)}_read(e){this.mID=e.readInt(),this.mMdvsName=e.readString(),this.mIP=e.readString()}static get minWireSize(){return 6}},_.defineStruct(E.MDVSCFG,!0,!0),_.defineSequence(E,"MDVSCFGSeqHelper","DispatcherDB.MDVSCFG",!1),E.GISDETAIL=class{constructor(e="",t=0,i=0,r="",s="",n=0){this.mEmployeeid=e,this.mLatitude=t,this.mLongitude=i,this.mPositionTime=r,this.mMessage=s,this.type=n}_write(e){e.writeString(this.mEmployeeid),e.writeDouble(this.mLatitude),e.writeDouble(this.mLongitude),e.writeString(this.mPositionTime),e.writeString(this.mMessage),e.writeInt(this.type)}_read(e){this.mEmployeeid=e.readString(),this.mLatitude=e.readDouble(),this.mLongitude=e.readDouble(),this.mPositionTime=e.readString(),this.mMessage=e.readString(),this.type=e.readInt()}static get minWireSize(){return 23}},_.defineStruct(E.GISDETAIL,!1,!0),_.defineSequence(E,"GISDETAILSeqHelper","DispatcherDB.GISDETAIL",!1),E.PREPLANINFO=class{constructor(e="",t=0,i="",r=0,s="",n=""){this.mPlanName=e,this.mPlanID=t,this.mPlanPasswd=i,this.mPlanType=r,this.mPlanAddr=s,this.mPlanAlloc=n}_write(e){e.writeString(this.mPlanName),e.writeInt(this.mPlanID),e.writeString(this.mPlanPasswd),e.writeInt(this.mPlanType),e.writeString(this.mPlanAddr),e.writeString(this.mPlanAlloc)}_read(e){this.mPlanName=e.readString(),this.mPlanID=e.readInt(),this.mPlanPasswd=e.readString(),this.mPlanType=e.readInt(),this.mPlanAddr=e.readString(),this.mPlanAlloc=e.readString()}static get minWireSize(){return 12}},_.defineStruct(E.PREPLANINFO,!0,!0),_.defineSequence(E,"PREPLANINFOSeqHelper","DispatcherDB.PREPLANINFO",!1),E.PREPLANINSTRUMENT=class{constructor(e=0,t="",i=0){this.mPlanInstID=e,this.mPlanInstName=t,this.mPlanInstType=i}_write(e){e.writeInt(this.mPlanInstID),e.writeString(this.mPlanInstName),e.writeInt(this.mPlanInstType)}_read(e){this.mPlanInstID=e.readInt(),this.mPlanInstName=e.readString(),this.mPlanInstType=e.readInt()}static get minWireSize(){return 9}},_.defineStruct(E.PREPLANINSTRUMENT,!0,!0),_.defineSequence(E,"PREPLANINSTRUMENTSeqHelper","DispatcherDB.PREPLANINSTRUMENT",!1),E.PREPLANINSTRUREF=class{constructor(e=0,t=0){this.mPlanID=e,this.mPlanInstID=t}_write(e){e.writeInt(this.mPlanID),e.writeInt(this.mPlanInstID)}_read(e){this.mPlanID=e.readInt(),this.mPlanInstID=e.readInt()}static get minWireSize(){return 8}},_.defineStruct(E.PREPLANINSTRUREF,!0,!1),_.defineSequence(E,"PREPLANINSTRUREFSeqHelper","DispatcherDB.PREPLANINSTRUREF",!0),E.PREPLANMEMBER=class{constructor(e=0,t=""){this.mPlanInstID=e,this.mEmployeeID=t}_write(e){e.writeInt(this.mPlanInstID),e.writeString(this.mEmployeeID)}_read(e){this.mPlanInstID=e.readInt(),this.mEmployeeID=e.readString()}static get minWireSize(){return 5}},_.defineStruct(E.PREPLANMEMBER,!0,!0),_.defineSequence(E,"PREPLANMEMBERSeqHelper","DispatcherDB.PREPLANMEMBER",!1);t.Ice._ModuleRegistry;const R=t.Ice.Slice;m.CommSrv=class extends t.Ice.Object{},m.CommSrvPrx=class extends t.Ice.ObjectPrx{},R.defineOperations(m.CommSrv,m.CommSrvPrx,["::Dispatcher::CommSrv","::Ice::Object"],0);m.CommCli=class extends t.Ice.Object{},m.CommCliPrx=class extends t.Ice.ObjectPrx{},R.defineOperations(m.CommCli,m.CommCliPrx,["::Dispatcher::CommCli","::Ice::Object"],0);t.Ice._ModuleRegistry;const b=t.Ice.Slice;g.TreeT=class{constructor(e="",t="",i="",r=0){this.userId=e,this.groupnum=t,this.dnsprefix=i,this.type=r}_write(e){e.writeString(this.userId),e.writeString(this.groupnum),e.writeString(this.dnsprefix),e.writeInt(this.type)}_read(e){this.userId=e.readString(),this.groupnum=e.readString(),this.dnsprefix=e.readString(),this.type=e.readInt()}static get minWireSize(){return 7}},b.defineStruct(g.TreeT,!0,!0);g.UserT=class extends t.Ice.Value{constructor(e="",t="",i=8,r="",s=0,n=g.RegisterState.RegisterStateNone,a=g.CallState.CallStateNone,o="",h=""){super(),this.userid=e,this.username=t,this.type=i,this.dnsprefix=r,this.islocal=s,this.rstate=n,this.cstate=a,this.othernumber=o,this.othername=h}_iceWriteMemberImpl(e){e.writeString(this.userid),e.writeString(this.username),e.writeInt(this.type),e.writeString(this.dnsprefix),e.writeInt(this.islocal),g.RegisterState._write(e,this.rstate),g.CallState._write(e,this.cstate),e.writeString(this.othernumber),e.writeString(this.othername)}_iceReadMemberImpl(e){this.userid=e.readString(),this.username=e.readString(),this.type=e.readInt(),this.dnsprefix=e.readString(),this.islocal=e.readInt(),this.rstate=g.RegisterState._read(e),this.cstate=g.CallState._read(e),this.othernumber=e.readString(),this.othername=e.readString()}},b.defineValue(g.UserT,"::Dispatcher::UserT",!1),b.defineSequence(g,"UserSeqHelper","Ice.ObjectHelper",!1,"Dispatcher.UserT"),b.defineSequence(g,"GroupSeqHelper","Ice.ObjectHelper",!1,"Dispatcher.GroupT");g.GroupT=class extends t.Ice.Value{constructor(e=0,t="",i="",r=g.GroupType.GroupTypeNone,s=null,n=null,a="",o=0,h=0,d=0){super(),this.id=e,this.groupnum=t,this.groupname=i,this.type=r,this.user=s,this.group=n,this.dnsprefix=a,this.islocal=o,this.canshowall=h,this.level=d}_iceWriteMemberImpl(e){e.writeInt(this.id),e.writeString(this.groupnum),e.writeString(this.groupname),g.GroupType._write(e,this.type),g.UserSeqHelper.write(e,this.user),g.GroupSeqHelper.write(e,this.group),e.writeString(this.dnsprefix),e.writeInt(this.islocal),e.writeInt(this.canshowall),e.writeInt(this.level)}_iceReadMemberImpl(e){this.id=e.readInt(),this.groupnum=e.readString(),this.groupname=e.readString(),this.type=g.GroupType._read(e),this.user=g.UserSeqHelper.read(e),this.group=g.GroupSeqHelper.read(e),this.dnsprefix=e.readString(),this.islocal=e.readInt(),this.canshowall=e.readInt(),this.level=e.readInt()}},b.defineValue(g.GroupT,"::Dispatcher::GroupT",!1);g.TreeRT=class extends t.Ice.Value{constructor(e=null){super(),this.roots=e}_iceWriteMemberImpl(e){g.GroupSeqHelper.write(e,this.roots)}_iceReadMemberImpl(e){this.roots=g.GroupSeqHelper.read(e)}},b.defineValue(g.TreeRT,"::Dispatcher::TreeRT",!1),g.VersionElem=class{constructor(e="",t="",i="",r=""){this.name=e,this.type=t,this.version=i,this.time=r}_write(e){e.writeString(this.name),e.writeString(this.type),e.writeString(this.version),e.writeString(this.time)}_read(e){this.name=e.readString(),this.type=e.readString(),this.version=e.readString(),this.time=e.readString()}static get minWireSize(){return 4}},b.defineStruct(g.VersionElem,!0,!0),b.defineSequence(g,"VersionSeqHelper","Dispatcher.VersionElem",!1),g.VersionEventT=class{constructor(e=null){this.vseq=e}_write(e){g.VersionSeqHelper.write(e,this.vseq)}_read(e){this.vseq=g.VersionSeqHelper.read(e)}static get minWireSize(){return 1}},b.defineStruct(g.VersionEventT,!0,!0),g.GetVersionT=class{constructor(e=""){this.dummy=e}_write(e){e.writeString(this.dummy)}_read(e){this.dummy=e.readString()}static get minWireSize(){return 1}},b.defineStruct(g.GetVersionT,!0,!0),g.GetVersionRT=class{constructor(e=null){this.vseq=e}_write(e){g.VersionSeqHelper.write(e,this.vseq)}_read(e){this.vseq=g.VersionSeqHelper.read(e)}static get minWireSize(){return 1}},b.defineStruct(g.GetVersionRT,!0,!0);t.Ice._ModuleRegistry;const P=t.Ice.Slice;g.ConfigureCB=class extends t.Ice.Object{},g.ConfigureCBPrx=class extends t.Ice.ObjectPrx{},P.defineOperations(g.ConfigureCB,g.ConfigureCBPrx,["::Dispatcher::ConfigureCB","::Ice::Object"],0);g.ConfigureCBSub=class extends t.Ice.Object{},g.ConfigureCBSubPrx=class extends t.Ice.ObjectPrx{},P.defineOperations(g.ConfigureCBSub,g.ConfigureCBSubPrx,["::Dispatcher::ConfigureCBSub","::Ice::Object"],0);t.Ice._ModuleRegistry;const D=t.Ice.Slice;g.FXDeviceNumberRT=class extends t.Ice.Value{constructor(e="",t="",i="",r="",s="",n="",a="",o=""){super(),this.dev=e,this.num=t,this.name=i,this.orgid=r,this.domain=s,this.latitude=n,this.longitude=a,this.remarks=o}_iceWriteMemberImpl(e){e.writeString(this.dev),e.writeString(this.num),e.writeString(this.name),e.writeString(this.orgid),e.writeString(this.domain),e.writeString(this.latitude),e.writeString(this.longitude),e.writeString(this.remarks)}_iceReadMemberImpl(e){this.dev=e.readString(),this.num=e.readString(),this.name=e.readString(),this.orgid=e.readString(),this.domain=e.readString(),this.latitude=e.readString(),this.longitude=e.readString(),this.remarks=e.readString()}},D.defineValue(g.FXDeviceNumberRT,"::Dispatcher::FXDeviceNumberRT",!1),D.defineSequence(g,"NumbersRTHelper","Ice.ObjectHelper",!1,"Dispatcher.FXDeviceNumberRT"),D.defineSequence(g,"OrgsRTHelper","Ice.ObjectHelper",!1,"Dispatcher.FXOrgRT");g.FXOrgRT=class extends t.Ice.Value{constructor(e="",t="",i="",r="",s="",n="",a="",o=null,h=null){super(),this.id=e,this.name=t,this.parentid=i,this.ldap=r,this.domain=s,this.remarks=n,this.ordernum=a,this.Orgs=o,this.Numbers=h}_iceWriteMemberImpl(e){e.writeString(this.id),e.writeString(this.name),e.writeString(this.parentid),e.writeString(this.ldap),e.writeString(this.domain),e.writeString(this.remarks),e.writeString(this.ordernum),g.OrgsRTHelper.write(e,this.Orgs),g.NumbersRTHelper.write(e,this.Numbers)}_iceReadMemberImpl(e){this.id=e.readString(),this.name=e.readString(),this.parentid=e.readString(),this.ldap=e.readString(),this.domain=e.readString(),this.remarks=e.readString(),this.ordernum=e.readString(),this.Orgs=g.OrgsRTHelper.read(e),this.Numbers=g.NumbersRTHelper.read(e)}},D.defineValue(g.FXOrgRT,"::Dispatcher::FXOrgRT",!1);g.FXDeviceRT=class extends t.Ice.Value{constructor(e="",t="",i="",r=null){super(),this.id=e,this.name=t,this.remarks=i,this.Orgs=r}_iceWriteMemberImpl(e){e.writeString(this.id),e.writeString(this.name),e.writeString(this.remarks),g.OrgsRTHelper.write(e,this.Orgs)}_iceReadMemberImpl(e){this.id=e.readString(),this.name=e.readString(),this.remarks=e.readString(),this.Orgs=g.OrgsRTHelper.read(e)}},D.defineValue(g.FXDeviceRT,"::Dispatcher::FXDeviceRT",!1),g.LocalDNSPrefixRT=class{constructor(e=""){this.prefix=e}_write(e){e.writeString(this.prefix)}_read(e){this.prefix=e.readString()}static get minWireSize(){return 1}},D.defineStruct(g.LocalDNSPrefixRT,!0,!0),D.defineSequence(g,"FXDeviceSeqHelper","Ice.ObjectHelper",!1,"Dispatcher.FXDeviceRT"),g.GetFXDeviceT=class{constructor(e=!0,t=""){this.getdetail=e,this.remarks=t}_write(e){e.writeBool(this.getdetail),e.writeString(this.remarks)}_read(e){this.getdetail=e.readBool(),this.remarks=e.readString()}static get minWireSize(){return 2}},D.defineStruct(g.GetFXDeviceT,!0,!0),g.GetFXDeviceDetailT=class{constructor(e="",t="",i=""){this.fxDeviceid=e,this.orgid=t,this.remarks=i}_write(e){e.writeString(this.fxDeviceid),e.writeString(this.orgid),e.writeString(this.remarks)}_read(e){this.fxDeviceid=e.readString(),this.orgid=e.readString(),this.remarks=e.readString()}static get minWireSize(){return 3}},D.defineStruct(g.GetFXDeviceDetailT,!0,!0),g.KeyConfig=class{constructor(e="",t=""){this.Key=e,this.Value1=t}_write(e){e.writeString(this.Key),e.writeString(this.Value1)}_read(e){this.Key=e.readString(),this.Value1=e.readString()}static get minWireSize(){return 2}},D.defineStruct(g.KeyConfig,!0,!0),D.defineSequence(g,"KeyConfigSeqHelper","Dispatcher.KeyConfig",!1),g.MealConfig=class{constructor(e=0,t="",i=0,r=null){this.id=e,this.SetMealName=t,this.SetMealState=i,this.Details=r}_write(e){e.writeInt(this.id),e.writeString(this.SetMealName),e.writeInt(this.SetMealState),g.KeyConfigSeqHelper.write(e,this.Details)}_read(e){this.id=e.readInt(),this.SetMealName=e.readString(),this.SetMealState=e.readInt(),this.Details=g.KeyConfigSeqHelper.read(e)}static get minWireSize(){return 10}},D.defineStruct(g.MealConfig,!0,!0),g.KeyConfig1=class{constructor(e="",t=""){this.TheKey=e,this.TheValue=t}_write(e){e.writeString(this.TheKey),e.writeString(this.TheValue)}_read(e){this.TheKey=e.readString(),this.TheValue=e.readString()}static get minWireSize(){return 2}},D.defineStruct(g.KeyConfig1,!0,!0),D.defineSequence(g,"KeyConfigSeq1Helper","Dispatcher.KeyConfig1",!1),g.MealConfig1=class{constructor(e=0,t="",i=0,r=null){this.id=e,this.SetMealName=t,this.SetMealState=i,this.Details=r}_write(e){e.writeInt(this.id),e.writeString(this.SetMealName),e.writeInt(this.SetMealState),g.KeyConfigSeq1Helper.write(e,this.Details)}_read(e){this.id=e.readInt(),this.SetMealName=e.readString(),this.SetMealState=e.readInt(),this.Details=g.KeyConfigSeq1Helper.read(e)}static get minWireSize(){return 10}},D.defineStruct(g.MealConfig1,!0,!0);g.ConfigureOP=class extends t.Ice.Object{},g.ConfigureOPPrx=class extends t.Ice.ObjectPrx{},D.defineOperations(g.ConfigureOP,g.ConfigureOPPrx,["::Dispatcher::ConfigureOP","::Ice::Object"],0,{IFCReqGetOrganization:[,,,,["Dispatcher.TreeRT",!0],[[g.Identity],[g.TreeT]],,[g.Error],,!0],IFCReqGetVersion:[,,,,[g.GetVersionRT],[[g.Identity],[g.GetVersionT]],,[g.Error],,],IFCReqGetLocalUserByType:[,,,,["Dispatcher.TreeRT",!0],[[g.Identity],[g.TreeT]],,[g.Error],,!0],IFCReqGet28181Devices:[,,,,["Dispatcher.FXDeviceSeqHelper"],[[g.Identity],[g.GetFXDeviceT]],,[g.Error],,!0],IFCReqGet28181DeviceDetail:[,,,,["Dispatcher.FXDeviceSeqHelper"],[[g.Identity],[g.GetFXDeviceDetailT]],,[g.Error],,!0],IFCReqGetConfigByKey:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqGetLocalPrefix:[,,,,[g.LocalDNSPrefixRT],[[g.Identity]],,[g.Error],,],IFCReqGetConfigByKeys:[,,,,["Dispatcher.KeyConfigSeqHelper"],[[g.Identity],["Dispatcher.KeyConfigSeqHelper"]],,[g.Error],,],IFCReqGetMealConfig:[,,,,[g.MealConfig],[[g.Identity]],,[g.Error],,],IFCReqGetConfigByKeys2:[,,,,["Dispatcher.KeyConfigSeq1Helper"],[[g.Identity],["Dispatcher.KeyConfigSeq1Helper"]],,[g.Error],,],IFCReqGetMealConfig2:[,,,,[g.MealConfig1],[[g.Identity]],,[g.Error],,],IFCReqGetOrganizationByJson:[,,,,[7],[[g.Identity],[g.TreeT]],,[g.Error],,],IFCReqGetGroupDetail:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqSetDeviceChange2:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqGetLicenseInfo:[,,,,[7],[[g.Identity],[7]],,[g.Error],,]});g.ConfigureSB=class extends t.Ice.Object{},g.ConfigureSBPrx=class extends t.Ice.ObjectPrx{},D.defineOperations(g.ConfigureSB,g.ConfigureSBPrx,["::Dispatcher::ConfigureSB","::Ice::Object"],0);t.Ice._ModuleRegistry;const M=t.Ice.Slice;g.DecoderDeviceInfo=class{constructor(e="",t="",i="",r="",s="",n="",a=0){this.id=e,this.videoip=t,this.videoport=i,this.user=r,this.Password=s,this.showname=n,this.thetype=a}_write(e){e.writeString(this.id),e.writeString(this.videoip),e.writeString(this.videoport),e.writeString(this.user),e.writeString(this.Password),e.writeString(this.showname),e.writeInt(this.thetype)}_read(e){this.id=e.readString(),this.videoip=e.readString(),this.videoport=e.readString(),this.user=e.readString(),this.Password=e.readString(),this.showname=e.readString(),this.thetype=e.readInt()}static get minWireSize(){return 10}},M.defineStruct(g.DecoderDeviceInfo,!0,!0),M.defineSequence(g,"DecoderDeviceInfoSeqHelper","Dispatcher.DecoderDeviceInfo",!1),g.DecoderDisplayChan=class{constructor(e=0){this.byChan=e}_write(e){e.writeByte(this.byChan)}_read(e){this.byChan=e.readByte()}static get minWireSize(){return 1}},M.defineStruct(g.DecoderDisplayChan,!0,!1),M.defineSequence(g,"DecoderDisplayChanSeqHelper","Dispatcher.DecoderDisplayChan",!0),g.DecoderDisplayCfg=class{constructor(e=0,t=0,i=0,r=0,s=0,n=null,a=0){this.Channelid=e,this.dwWindowMode=t,this.byAudio=i,this.byVedioFormat=r,this.dwResolution=s,this.byJoinDecChans=n,this.byDispChanType=a}_write(e){e.writeInt(this.Channelid),e.writeInt(this.dwWindowMode),e.writeByte(this.byAudio),e.writeByte(this.byVedioFormat),e.writeInt(this.dwResolution),g.DecoderDisplayChanSeqHelper.write(e,this.byJoinDecChans),e.writeByte(this.byDispChanType)}_read(e){this.Channelid=e.readInt(),this.dwWindowMode=e.readInt(),this.byAudio=e.readByte(),this.byVedioFormat=e.readByte(),this.dwResolution=e.readInt(),this.byJoinDecChans=g.DecoderDisplayChanSeqHelper.read(e),this.byDispChanType=e.readByte()}static get minWireSize(){return 16}},M.defineStruct(g.DecoderDisplayCfg,!0,!0),M.defineSequence(g,"DecoderDisplayCfgSeqHelper","Dispatcher.DecoderDisplayCfg",!1);t.Ice._ModuleRegistry;const O=t.Ice.Slice;g.DecoderCB=class extends t.Ice.Object{},g.DecoderCBPrx=class extends t.Ice.ObjectPrx{},O.defineOperations(g.DecoderCB,g.DecoderCBPrx,["::Dispatcher::DecoderCB","::Ice::Object"],0);t.Ice._ModuleRegistry;const A=t.Ice.Slice;g.GetDisplayCfg=class{constructor(e=""){this.Decoderid=e}_write(e){e.writeString(this.Decoderid)}_read(e){this.Decoderid=e.readString()}static get minWireSize(){return 1}},A.defineStruct(g.GetDisplayCfg,!0,!0),g.SetDecoderCfg=class{constructor(e="",t=new g.DecoderDisplayCfg){this.Decoderid=e,this.Cfg=t}_write(e){e.writeString(this.Decoderid),g.DecoderDisplayCfg.write(e,this.Cfg)}_read(e){this.Decoderid=e.readString(),this.Cfg=g.DecoderDisplayCfg.read(e,this.Cfg)}static get minWireSize(){return 17}},A.defineStruct(g.SetDecoderCfg,!0,!0),g.RetDecoderAllCfg=class{constructor(e="",t=null){this.Decoderid=e,this.Cfgs=t}_write(e){e.writeString(this.Decoderid),g.DecoderDisplayCfgSeqHelper.write(e,this.Cfgs)}_read(e){this.Decoderid=e.readString(),this.Cfgs=g.DecoderDisplayCfgSeqHelper.read(e)}static get minWireSize(){return 2}},A.defineStruct(g.RetDecoderAllCfg,!0,!0),g.opDecoderInfo=class{constructor(e="",t="",i="",r=""){this.Decoderid=e,this.Channel=t,this.cid=i,this.disNumber=r}_write(e){e.writeString(this.Decoderid),e.writeString(this.Channel),e.writeString(this.cid),e.writeString(this.disNumber)}_read(e){this.Decoderid=e.readString(),this.Channel=e.readString(),this.cid=e.readString(),this.disNumber=e.readString()}static get minWireSize(){return 4}},A.defineStruct(g.opDecoderInfo,!0,!0),g.opTransferRTPInfo=class{constructor(e="",t="",i="",r=0){this.cid=e,this.Number=t,this.disip=i,this.disport=r}_write(e){e.writeString(this.cid),e.writeString(this.Number),e.writeString(this.disip),e.writeInt(this.disport)}_read(e){this.cid=e.readString(),this.Number=e.readString(),this.disip=e.readString(),this.disport=e.readInt()}static get minWireSize(){return 7}},A.defineStruct(g.opTransferRTPInfo,!0,!0),g.opDecoderByUrlInfo=class{constructor(e="",t="",i=""){this.Decoderid=e,this.Channel=t,this.url=i}_write(e){e.writeString(this.Decoderid),e.writeString(this.Channel),e.writeString(this.url)}_read(e){this.Decoderid=e.readString(),this.Channel=e.readString(),this.url=e.readString()}static get minWireSize(){return 3}},A.defineStruct(g.opDecoderByUrlInfo,!0,!0),g.opDecoderByVideoInfo=class{constructor(e="",t="",i="",r="",s="",n="",a="",o=g.emVideoDeviceType.VDTNONE){this.Decoderid=e,this.Channel=t,this.VideoUser=i,this.VideoPwd=r,this.VideoIP=s,this.VideoPort=n,this.VideoChannel=a,this.VideoType=o}_write(e){e.writeString(this.Decoderid),e.writeString(this.Channel),e.writeString(this.VideoUser),e.writeString(this.VideoPwd),e.writeString(this.VideoIP),e.writeString(this.VideoPort),e.writeString(this.VideoChannel),g.emVideoDeviceType._write(e,this.VideoType)}_read(e){this.Decoderid=e.readString(),this.Channel=e.readString(),this.VideoUser=e.readString(),this.VideoPwd=e.readString(),this.VideoIP=e.readString(),this.VideoPort=e.readString(),this.VideoChannel=e.readString(),this.VideoType=g.emVideoDeviceType._read(e)}static get minWireSize(){return 8}},A.defineStruct(g.opDecoderByVideoInfo,!0,!0),g.opChannelStatus=class{constructor(e="",t=""){this.Decoderid=e,this.Channel=t}_write(e){e.writeString(this.Decoderid),e.writeString(this.Channel)}_read(e){this.Decoderid=e.readString(),this.Channel=e.readString()}static get minWireSize(){return 2}},A.defineStruct(g.opChannelStatus,!0,!0),g.RetDecoderAbility=class{constructor(e="",t=g.emVideoDeviceType.VDTNONE,i=0){this.Decoderid=e,this.VideoType=t,this.InChannelsNum=i}_write(e){e.writeString(this.Decoderid),g.emVideoDeviceType._write(e,this.VideoType),e.writeInt(this.InChannelsNum)}_read(e){this.Decoderid=e.readString(),this.VideoType=g.emVideoDeviceType._read(e),this.InChannelsNum=e.readInt()}static get minWireSize(){return 6}},A.defineStruct(g.RetDecoderAbility,!0,!0);g.DecoderOP=class extends t.Ice.Object{},g.DecoderOPPrx=class extends t.Ice.ObjectPrx{},A.defineOperations(g.DecoderOP,g.DecoderOPPrx,["::Dispatcher::DecoderOP","::Ice::Object"],0,{IFCReqGetDecoderDevice:[,,,,["Dispatcher.DecoderDeviceInfoSeqHelper"],[[g.Identity]],,[g.Error],,],IFCReqGetDisplayConfig:[,,,,[g.RetDecoderAllCfg],[[g.Identity],[g.GetDisplayCfg]],,,,],IFCReqGetDecoderAbility:[,,,,[g.RetDecoderAbility],[[g.Identity],[g.GetDisplayCfg]],,,,],IFCReqGetChannelDecodeState:[,,,,[1],[[g.Identity],[g.opChannelStatus]],,,,],IFCReqSetDisplayConfig:[,,,,[1],[[g.Identity],[g.SetDecoderCfg]],,,,],IFCReqStartDecode:[,,,,[1],[[g.Identity],[g.opDecoderInfo]],,,,],IFCReqStartDecodeByURL:[,,,,[1],[[g.Identity],[g.opDecoderByUrlInfo]],,,,],IFCReqStopDecode:[,,,,[1],[[g.Identity],[g.opDecoderInfo]],,,,],IFCReqStopDecodeByURL:[,,,,[1],[[g.Identity],[g.opDecoderByUrlInfo]],,,,],IFCReqTransferRtp:[,,,,[1],[[g.Identity],[g.opTransferRTPInfo]],,,,],IFCReqStopTransferRtp:[,,,,[1],[[g.Identity],[g.opTransferRTPInfo]],,,,],IFCReqStartDecodeByVideoInfo:[,,,,[1],[[g.Identity],[g.opDecoderByVideoInfo]],,,,],IFCReqStopDecodeByVideoInfo:[,,,,[1],[[g.Identity],[g.opDecoderByVideoInfo]],,,,],IFCReqGetDisplayConfig2:[,,,,[7],[[g.Identity],[g.GetDisplayCfg]],,,,],IFCReqSetWindows:[,,,,[7],[[g.Identity],[7],[7]],,,,],IFCReqGetSubWindowsStatus:[,,,,[7],[[g.Identity],[7],[7]],,,,],IFCReqSetDisplayPosition:[,,,,[1],[[g.Identity],[7],[7]],,,,],IFCReqSetScreenMode:[,,,,[1],[[g.Identity],[7],[7]],,,,]});const x=t.Ice._ModuleRegistry;t.Ice.Slice;let q=x.module("EM");q.EMError=class extends t.Ice.UserException{constructor(e=0,t="",i=""){super(i),this.code=e,this.desc=t}static get _parent(){return t.Ice.UserException}static get _id(){return"::EM::EMError"}_mostDerivedType(){return q.EMError}_writeMemberImpl(e){e.writeInt(this.code),e.writeString(this.desc)}_readMemberImpl(e){this.code=e.readInt(),this.desc=e.readString()}};const N=t.Ice._ModuleRegistry,F=t.Ice.Slice;let H=N.module("EM");H.EMIdentity=class{constructor(e=""){this.user=e}_write(e){e.writeString(this.user)}_read(e){this.user=e.readString()}static get minWireSize(){return 1}},F.defineStruct(H.EMIdentity,!0,!0);t.Ice._ModuleRegistry;const k=t.Ice.Slice;q.EMEventCB=class extends t.Ice.Object{},q.EMEventCBPrx=class extends t.Ice.ObjectPrx{},k.defineOperations(q.EMEventCB,q.EMEventCBPrx,["::EM::EMEventCB","::Ice::Object"],0,{EMCBNotifyNewEvent:[,2,2,,,[[7]],,[q.EMError],,],EMCBNotifyEventStateChanged:[,2,2,,,[[7]],,[q.EMError],,],EMCBNotifyNewTask:[,2,2,,,[[7]],,[q.EMError],,],EMCBNotifyTaskStateChanged:[,2,2,,,[[7]],,[q.EMError],,]});t.Ice._ModuleRegistry;const $=t.Ice.Slice;q.EMMaterialCB=class extends t.Ice.Object{},q.EMMaterialCBPrx=class extends t.Ice.ObjectPrx{},$.defineOperations(q.EMMaterialCB,q.EMMaterialCBPrx,["::EM::EMMaterialCB","::Ice::Object"],0,{EMCBNotifyWarehouseChanged:[,2,2,,,[[7],[7]],,[q.EMError],,],EMCBNotifyMaterialChanged:[,2,2,,,[[7],[7]],,[q.EMError],,]});t.Ice._ModuleRegistry;const V=t.Ice.Slice;q.EMCli=class extends t.Ice.Object{static get _iceImplements(){return[q.EMEventCB,q.EMMaterialCB]}},q.EMCliPrx=class extends t.Ice.ObjectPrx{static get _implements(){return[q.EMEventCBPrx,q.EMMaterialCBPrx]}},V.defineOperations(q.EMCli,q.EMCliPrx,["::EM::EMCli","::EM::EMEventCB","::EM::EMMaterialCB","::Ice::Object"],0,{EMHeartbeatCB:[,2,2,,,[[7]],,[q.EMError],,],EMDataChangedCB:[,2,2,,,[[7]],,[q.EMError],,]});t.Ice._ModuleRegistry;const U=t.Ice.Slice;q.EMDutyOP=class extends t.Ice.Object{},q.EMDutyOPPrx=class extends t.Ice.ObjectPrx{},U.defineOperations(q.EMDutyOP,q.EMDutyOPPrx,["::EM::EMDutyOP","::Ice::Object"],0,{EMDutyAddOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMDutyDelOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMDutyFixOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMDutyGetOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,]});t.Ice._ModuleRegistry;const B=t.Ice.Slice;q.EMEventOP=class extends t.Ice.Object{},q.EMEventOPPrx=class extends t.Ice.ObjectPrx{},B.defineOperations(q.EMEventOP,q.EMEventOPPrx,["::EM::EMEventOP","::Ice::Object"],0,{EMEventGetParam:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMEventReportOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMEventViewOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMEventConfirmOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMEventStartProcessOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMEventProcessOverOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMEventDistributeOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMEventReturnOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMGetEventsOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMGetTaskBySelfOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMGetEventDetialOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMGetStatisticsDataByEmployeeOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMGetStatisticsDataByStateOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMGetStatisticsDataByLevelOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMGetStatisticsDataByTypeOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,]});t.Ice._ModuleRegistry;const G=t.Ice.Slice;q.EMIFCCli=class extends t.Ice.Object{},q.EMIFCCliPrx=class extends t.Ice.ObjectPrx{},G.defineOperations(q.EMIFCCli,q.EMIFCCliPrx,["::EM::EMIFCCli","::Ice::Object"],0,{EMCBSendDBChange:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMCBHeartBeat:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,]});t.Ice._ModuleRegistry;const L=t.Ice.Slice;q.EMIFCSrv=class extends t.Ice.Object{},q.EMIFCSrvPrx=class extends t.Ice.ObjectPrx{},L.defineOperations(q.EMIFCSrv,q.EMIFCSrvPrx,["::EM::EMIFCSrv","::Ice::Object"],0,{EMOPSetClientInfo:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,]});t.Ice._ModuleRegistry;const j=t.Ice.Slice;q.EMMaterialOP=class extends t.Ice.Object{},q.EMMaterialOPPrx=class extends t.Ice.ObjectPrx{},j.defineOperations(q.EMMaterialOP,q.EMMaterialOPPrx,["::EM::EMMaterialOP","::Ice::Object"],0,{EMMaterialAddWareHouseOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMMaterialDelWareHouseOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMMaterialFixWareHouseInfoOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMMaterialGetWareHouseOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMMaterialAddMaterialOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMMaterialDelMaterialOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMMaterialFixMaterialInfoOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMMaterialGetMaterialOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,]});t.Ice._ModuleRegistry;const W=t.Ice.Slice;q.EMPlanOP=class extends t.Ice.Object{},q.EMPlanOPPrx=class extends t.Ice.ObjectPrx{},W.defineOperations(q.EMPlanOP,q.EMPlanOPPrx,["::EM::EMPlanOP","::Ice::Object"],0,{EMPlanGetFilesOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,]});t.Ice._ModuleRegistry;const z=t.Ice.Slice;q.EMSrv=class extends t.Ice.Object{static get _iceImplements(){return[q.EMEventOP,q.EMPlanOP,q.EMMaterialOP,q.EMDutyOP]}},q.EMSrvPrx=class extends t.Ice.ObjectPrx{static get _implements(){return[q.EMEventOPPrx,q.EMPlanOPPrx,q.EMMaterialOPPrx,q.EMDutyOPPrx]}},z.defineOperations(q.EMSrv,q.EMSrvPrx,["::EM::EMDutyOP","::EM::EMEventOP","::EM::EMMaterialOP","::EM::EMPlanOP","::EM::EMSrv","::Ice::Object"],4,{EMRegisterOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMUnRegisterOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,],EMHeartbeatOP:[,2,2,,[7],[[q.EMIdentity],[7]],,[q.EMError],,]});const K=t.Ice._ModuleRegistry;t.Ice.Slice;let J=K.module("Dispatcher");Object.defineProperty(J,"EventEmployeeStateReg",{value:"Employee.State.Reg"}),Object.defineProperty(J,"EventEmployeeStateCall",{value:"Employee.State.Call"}),Object.defineProperty(J,"EventPttState",{value:"Ptt.State"}),Object.defineProperty(J,"EventPttStateSpeaker",{value:"Ptt.State.Speaker"}),Object.defineProperty(J,"EventPttWaiting",{value:"Ptt.Waiting"}),Object.defineProperty(J,"EventPttReject",{value:"Ptt.Reject"}),Object.defineProperty(J,"EventHistoryVideoInfo",{value:"Video.Role.History.Info"}),Object.defineProperty(J,"EventSessionStateChange",{value:"Session.State.Change"}),Object.defineProperty(J,"EventSessionMemberChange",{value:"Session.Member.Change"}),Object.defineProperty(J,"EventSessionSendToCreater",{value:"Session.SendToCreater.State"}),Object.defineProperty(J,"EventSessionSendToAllDTP",{value:"Session.SendToAllDTP.State"}),Object.defineProperty(J,"EventSessionMemberToAllDTP",{value:"Session.SendMemberToAllDTP.State"}),Object.defineProperty(J,"EventSessionStateChangeFixMeeting",{value:"Session.State.Change.FixMeeting"}),Object.defineProperty(J,"EventSessionMemberChangeFixMeeting",{value:"Session.Member.Change.FixMeeting"}),Object.defineProperty(J,"EventCallVideoGetVideoEvent",{value:"CallVideo.GetVideo.Event"}),Object.defineProperty(J,"EventBusFileOnReceive",{value:"BusFile.OnReceive"}),Object.defineProperty(J,"EventCALLPLAYAUDIOCB",{value:"CallPlay.Audio.CB"}),Object.defineProperty(J,"EventGisPositionChange",{value:"GIS.Position.Change"}),Object.defineProperty(J,"EventFileMsgOnReceive",{value:"FileMsg.OnReceive"}),Object.defineProperty(J,"EventMsgOnReceive",{value:"Msg.OnReceive"}),Object.defineProperty(J,"EventEmployeeChannelChange",{value:"Employee.Relay.ChannelChange"}),Object.defineProperty(J,"EventDBChangeGroupChange",{value:"DB.Group.Change"});t.Ice._ModuleRegistry;const Y=t.Ice.Slice;g.FaxT=class{constructor(e="",t="",i="",r=""){this.fid=e,this.fname=t,this.srcnum=i,this.dstnum=r}_write(e){e.writeString(this.fid),e.writeString(this.fname),e.writeString(this.srcnum),e.writeString(this.dstnum)}_read(e){this.fid=e.readString(),this.fname=e.readString(),this.srcnum=e.readString(),this.dstnum=e.readString()}static get minWireSize(){return 4}},Y.defineStruct(g.FaxT,!0,!0),g.FaxRT=class{constructor(e="",t="",i=""){this.fid=e,this.fname=t,this.fpath=i}_write(e){e.writeString(this.fid),e.writeString(this.fname),e.writeString(this.fpath)}_read(e){this.fid=e.readString(),this.fname=e.readString(),this.fpath=e.readString()}static get minWireSize(){return 3}},Y.defineStruct(g.FaxRT,!0,!0),g.FaxEvT=class{constructor(e="",t=g.FileState.FileStateNone){this.fid=e,this.code=t}_write(e){e.writeString(this.fid),g.FileState._write(e,this.code)}_read(e){this.fid=e.readString(),this.code=g.FileState._read(e)}static get minWireSize(){return 2}},Y.defineStruct(g.FaxEvT,!0,!0),g.FaxEv2T=class{constructor(e="",t=g.FaxStateSend.FaxStateSendNone){this.fid=e,this.code=t}_write(e){e.writeString(this.fid),g.FaxStateSend._write(e,this.code)}_read(e){this.fid=e.readString(),this.code=g.FaxStateSend._read(e)}static get minWireSize(){return 2}},Y.defineStruct(g.FaxEv2T,!0,!0),g.NewFaxEvT=class{constructor(e=""){this.fid=e}_write(e){e.writeString(this.fid)}_read(e){this.fid=e.readString()}static get minWireSize(){return 1}},Y.defineStruct(g.NewFaxEvT,!0,!0);t.Ice._ModuleRegistry;const Z=t.Ice.Slice;g.FaxCB=class extends t.Ice.Object{},g.FaxCBPrx=class extends t.Ice.ObjectPrx{},Z.defineOperations(g.FaxCB,g.FaxCBPrx,["::Dispatcher::FaxCB","::Ice::Object"],0,{IFCNotifyFaxEvt:[,2,2,,,[[g.FaxEv2T]],,,,],IFCNotifyNewFaxEvt:[,2,2,,,[[g.NewFaxEvT]],,,,]});t.Ice._ModuleRegistry;const X=t.Ice.Slice;g.FaxOP=class extends t.Ice.Object{},g.FaxOPPrx=class extends t.Ice.ObjectPrx{},X.defineOperations(g.FaxOP,g.FaxOPPrx,["::Dispatcher::FaxOP","::Ice::Object"],0,{IFCReqSendFax:[,,,,[g.FaxRT],[[g.Identity],[g.FaxT]],,[g.Error],,]});const Q=t.Ice._ModuleRegistry,ee=t.Ice.Slice;let te=Q.module("Fax");te.FaxDirectType=ee.defineEnum([["FaxDirectTypeSend",0],["FaxDirectTypeRecv",1]]),te.Error=class extends t.Ice.UserException{constructor(e="",t=0,i="",r=""){super(r),this.fid=e,this.code=t,this.desc=i}static get _parent(){return t.Ice.UserException}static get _id(){return"::Fax::Error"}_mostDerivedType(){return te.Error}_writeMemberImpl(e){e.writeString(this.fid),e.writeInt(this.code),e.writeString(this.desc)}_readMemberImpl(e){this.fid=e.readString(),this.code=e.readInt(),this.desc=e.readString()}},te.FaxOriginateT=class{constructor(e="",t="",i=0,r="",s="",n="",a=0,o="",h="",d=te.FaxDirectType.FaxDirectTypeSend){this.fid=e,this.srcip=t,this.srcport=i,this.srcpath=r,this.srcuser=s,this.dstip=n,this.dstport=a,this.dstpath=o,this.dstuser=h,this.direct=d}_write(e){e.writeString(this.fid),e.writeString(this.srcip),e.writeInt(this.srcport),e.writeString(this.srcpath),e.writeString(this.srcuser),e.writeString(this.dstip),e.writeInt(this.dstport),e.writeString(this.dstpath),e.writeString(this.dstuser),te.FaxDirectType._write(e,this.direct)}_read(e){this.fid=e.readString(),this.srcip=e.readString(),this.srcport=e.readInt(),this.srcpath=e.readString(),this.srcuser=e.readString(),this.dstip=e.readString(),this.dstport=e.readInt(),this.dstpath=e.readString(),this.dstuser=e.readString(),this.direct=te.FaxDirectType._read(e)}static get minWireSize(){return 16}},ee.defineStruct(te.FaxOriginateT,!0,!0),te.FaxFeedbackT=class{constructor(e="",t=0,i=0,r="",s="",n=""){this.fid=e,this.direct=t,this.code=i,this.msg=r,this.tiffname=s,this.tiffpath=n}_write(e){e.writeString(this.fid),e.writeInt(this.direct),e.writeInt(this.code),e.writeString(this.msg),e.writeString(this.tiffname),e.writeString(this.tiffpath)}_read(e){this.fid=e.readString(),this.direct=e.readInt(),this.code=e.readInt(),this.msg=e.readString(),this.tiffname=e.readString(),this.tiffpath=e.readString()}static get minWireSize(){return 12}},ee.defineStruct(te.FaxFeedbackT,!0,!0);te.FaxServer=class extends t.Ice.Object{},te.FaxServerPrx=class extends t.Ice.ObjectPrx{},ee.defineOperations(te.FaxServer,te.FaxServerPrx,["::Fax::FaxServer","::Ice::Object"],0,{faxOriginate:[,,,,[te.FaxFeedbackT],[[te.FaxOriginateT]],,[te.Error],,]});t.Ice._ModuleRegistry;const ie=t.Ice.Slice;g.UploadEvent2T=class{constructor(e="",t=null,i="",r="",s="",n=g.FileState.FileStateNone,a=g.FileType.FileTypeNone,o=""){this.snum=e,this.dnum=t,this.fname=i,this.fid=r,this.fpath=s,this.state=n,this.ftype=a,this.sendtime=o}_write(e){e.writeString(this.snum),t.Ice.StringSeqHelper.write(e,this.dnum),e.writeString(this.fname),e.writeString(this.fid),e.writeString(this.fpath),g.FileState._write(e,this.state),g.FileType._write(e,this.ftype),e.writeString(this.sendtime)}_read(e){this.snum=e.readString(),this.dnum=t.Ice.StringSeqHelper.read(e),this.fname=e.readString(),this.fid=e.readString(),this.fpath=e.readString(),this.state=g.FileState._read(e),this.ftype=g.FileType._read(e),this.sendtime=e.readString()}static get minWireSize(){return 8}},ie.defineStruct(g.UploadEvent2T,!0,!0),ie.defineSequence(g,"UploadEvent2SeqHelper","Dispatcher.UploadEvent2T",!1);t.Ice._ModuleRegistry;const re=t.Ice.Slice;g.FileCB=class extends t.Ice.Object{},g.FileCBPrx=class extends t.Ice.ObjectPrx{},re.defineOperations(g.FileCB,g.FileCBPrx,["::Dispatcher::FileCB","::Ice::Object"],0,{IFCNotifyUploadEvt:[,2,2,,,[[g.UploadEvent2T]],,,,],IFCNotifyDeleteFileEvt:[,2,2,,,[[7]],,,,]});t.Ice._ModuleRegistry;const se=t.Ice.Slice;g.ApplyUploadET=class{constructor(e="",t="",i=g.FileType.FileTypeNone){this.fid=e,this.fname=t,this.ftype=i}_write(e){e.writeString(this.fid),e.writeString(this.fname),g.FileType._write(e,this.ftype)}_read(e){this.fid=e.readString(),this.fname=e.readString(),this.ftype=g.FileType._read(e)}static get minWireSize(){return 3}},se.defineStruct(g.ApplyUploadET,!0,!0),se.defineSequence(g,"ApplyUploadESeqHelper","Dispatcher.ApplyUploadET",!1),g.ApplyUploadT=class{constructor(e=null,t=new g.ApplyUploadET){this.recv=e,this.file=t}_write(e){t.Ice.StringSeqHelper.write(e,this.recv),g.ApplyUploadET.write(e,this.file)}_read(e){this.recv=t.Ice.StringSeqHelper.read(e),this.file=g.ApplyUploadET.read(e,this.file)}static get minWireSize(){return 4}},se.defineStruct(g.ApplyUploadT,!0,!0),g.ApplyUploadRT=class{constructor(e="",t="",i=""){this.fid=e,this.fname=t,this.fpath=i}_write(e){e.writeString(this.fid),e.writeString(this.fname),e.writeString(this.fpath)}_read(e){this.fid=e.readString(),this.fname=e.readString(),this.fpath=e.readString()}static get minWireSize(){return 3}},se.defineStruct(g.ApplyUploadRT,!0,!0),se.defineSequence(g,"ApplyUploadRSeqHelper","Dispatcher.ApplyUploadRT",!1),g.UploadEventT=class{constructor(e="",t=g.FileState.FileStateNone){this.fid=e,this.state=t}_write(e){e.writeString(this.fid),g.FileState._write(e,this.state)}_read(e){this.fid=e.readString(),this.state=g.FileState._read(e)}static get minWireSize(){return 2}},se.defineStruct(g.UploadEventT,!0,!0),g.FlistT=class{constructor(e="",t="",i="",r="",s="",n=g.FileType.FileTypeNone){this.sendid=e,this.recvid=t,this.isfinish=i,this.begtime=r,this.endtime=s,this.ftype=n}_write(e){e.writeString(this.sendid),e.writeString(this.recvid),e.writeString(this.isfinish),e.writeString(this.begtime),e.writeString(this.endtime),g.FileType._write(e,this.ftype)}_read(e){this.sendid=e.readString(),this.recvid=e.readString(),this.isfinish=e.readString(),this.begtime=e.readString(),this.endtime=e.readString(),this.ftype=g.FileType._read(e)}static get minWireSize(){return 6}},se.defineStruct(g.FlistT,!0,!0),se.defineSequence(g,"FlistSeqHelper","Dispatcher.FlistT",!1),g.FlistRT=class{constructor(e="",t="",i="",r="",s="",n=0,a=g.FileType.FileTypeNone,o="",h="",d=0,c=""){this.fid=e,this.sendid=t,this.sendname=i,this.msgbody=r,this.sendtime=s,this.isupload=n,this.type=a,this.recvid=o,this.recvname=h,this.isfinish=d,this.recvtime=c}_write(e){e.writeString(this.fid),e.writeString(this.sendid),e.writeString(this.sendname),e.writeString(this.msgbody),e.writeString(this.sendtime),e.writeInt(this.isupload),g.FileType._write(e,this.type),e.writeString(this.recvid),e.writeString(this.recvname),e.writeInt(this.isfinish),e.writeString(this.recvtime)}_read(e){this.fid=e.readString(),this.sendid=e.readString(),this.sendname=e.readString(),this.msgbody=e.readString(),this.sendtime=e.readString(),this.isupload=e.readInt(),this.type=g.FileType._read(e),this.recvid=e.readString(),this.recvname=e.readString(),this.isfinish=e.readInt(),this.recvtime=e.readString()}static get minWireSize(){return 17}},se.defineStruct(g.FlistRT,!0,!0),se.defineSequence(g,"FlistRSeqHelper","Dispatcher.FlistRT",!1),g.FileReceivedT=class{constructor(e="",t=""){this.fid=e,this.employeeid=t}_write(e){e.writeString(this.fid),e.writeString(this.employeeid)}_read(e){this.fid=e.readString(),this.employeeid=e.readString()}static get minWireSize(){return 2}},se.defineStruct(g.FileReceivedT,!0,!0),g.FileDeleteT=class{constructor(e=""){this.fid=e}_write(e){e.writeString(this.fid)}_read(e){this.fid=e.readString()}static get minWireSize(){return 1}},se.defineStruct(g.FileDeleteT,!0,!0),se.defineSequence(g,"FileDeleteTSeqHelper","Dispatcher.FileDeleteT",!1);g.FileOP=class extends t.Ice.Object{},g.FileOPPrx=class extends t.Ice.ObjectPrx{},se.defineOperations(g.FileOP,g.FileOPPrx,["::Dispatcher::FileOP","::Ice::Object"],0,{IFCReqapPlayUploadFile:[,,,,[g.ApplyUploadRT],[[g.Identity],[g.ApplyUploadT]],,[g.Error],,],IFCNotifyUploadFileEvt:[,2,2,,,[[g.Identity],[g.UploadEventT]],,[g.Error],,],IFCReqGetFileList:[,,,,["Dispatcher.FlistRSeqHelper"],[[g.Identity],["Dispatcher.FlistSeqHelper"]],,[g.Error],,],IFCReqFileReceived:[,,,,,[[g.Identity],[g.FileReceivedT]],,[g.Error],,],IFCReqDeleteFile:[,,,,,[[g.Identity],["Dispatcher.FileDeleteTSeqHelper"]],,[g.Error],,],IFCReqUploadFileToGroup:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqSetUploadFileState:[,,,,[7],[[g.Identity],[7]],,[g.Error],,]});t.Ice._ModuleRegistry;const ne=t.Ice.Slice;g.GisInfoEventT=class{constructor(e="",t=0,i=0,r="",s="",n="",a=0){this.mEmployeeid=e,this.mLatitude=t,this.mLongitude=i,this.mPositionTime=r,this.mMessage=s,this.disid=n,this.type=a}_write(e){e.writeString(this.mEmployeeid),e.writeDouble(this.mLatitude),e.writeDouble(this.mLongitude),e.writeString(this.mPositionTime),e.writeString(this.mMessage),e.writeString(this.disid),e.writeInt(this.type)}_read(e){this.mEmployeeid=e.readString(),this.mLatitude=e.readDouble(),this.mLongitude=e.readDouble(),this.mPositionTime=e.readString(),this.mMessage=e.readString(),this.disid=e.readString(),this.type=e.readInt()}static get minWireSize(){return 24}},ne.defineStruct(g.GisInfoEventT,!1,!0),g.GisInfoEventT1=class{constructor(e="",t=0,i=0,r="",s="",n="",a=0,o=""){this.mEmployeeid=e,this.mLatitude=t,this.mLongitude=i,this.mPositionTime=r,this.mMessage=s,this.disid=n,this.type=a,this.dnsprefix=o}_write(e){e.writeString(this.mEmployeeid),e.writeDouble(this.mLatitude),e.writeDouble(this.mLongitude),e.writeString(this.mPositionTime),e.writeString(this.mMessage),e.writeString(this.disid),e.writeInt(this.type),e.writeString(this.dnsprefix)}_read(e){this.mEmployeeid=e.readString(),this.mLatitude=e.readDouble(),this.mLongitude=e.readDouble(),this.mPositionTime=e.readString(),this.mMessage=e.readString(),this.disid=e.readString(),this.type=e.readInt(),this.dnsprefix=e.readString()}static get minWireSize(){return 25}},ne.defineStruct(g.GisInfoEventT1,!1,!0);g.GisCB=class extends t.Ice.Object{},g.GisCBPrx=class extends t.Ice.ObjectPrx{},ne.defineOperations(g.GisCB,g.GisCBPrx,["::Dispatcher::GisCB","::Ice::Object"],0,{IFCNotifyGisInfoEvt:[,2,2,,,[[g.GisInfoEventT]],,,,],IFCNotifyGisInfoEvt2:[,2,2,,,[[g.GisInfoEventT1]],,,,]});t.Ice._ModuleRegistry;const ae=t.Ice.Slice;g.GisInfoByTimeT=class{constructor(e="",t="",i="",r=0){this.employeeid=e,this.begin=t,this.end=i,this.type=r}_write(e){e.writeString(this.employeeid),e.writeString(this.begin),e.writeString(this.end),e.writeInt(this.type)}_read(e){this.employeeid=e.readString(),this.begin=e.readString(),this.end=e.readString(),this.type=e.readInt()}static get minWireSize(){return 7}},ae.defineStruct(g.GisInfoByTimeT,!0,!0),g.GisInfoByEllipseT=class{constructor(e="",t=0,i=0,r=0,s=0,n=""){this.sid=e,this.a=t,this.b=i,this.c=r,this.d=s,this.type=n}_write(e){e.writeString(this.sid),e.writeDouble(this.a),e.writeDouble(this.b),e.writeDouble(this.c),e.writeDouble(this.d),e.writeString(this.type)}_read(e){this.sid=e.readString(),this.a=e.readDouble(),this.b=e.readDouble(),this.c=e.readDouble(),this.d=e.readDouble(),this.type=e.readString()}static get minWireSize(){return 34}},ae.defineStruct(g.GisInfoByEllipseT,!1,!0),g.GisInfoByRectangleT=class{constructor(e=0,t=0,i=0,r=0,s=""){this.a=e,this.b=t,this.c=i,this.d=r,this.type=s}_write(e){e.writeDouble(this.a),e.writeDouble(this.b),e.writeDouble(this.c),e.writeDouble(this.d),e.writeString(this.type)}_read(e){this.a=e.readDouble(),this.b=e.readDouble(),this.c=e.readDouble(),this.d=e.readDouble(),this.type=e.readString()}static get minWireSize(){return 33}},ae.defineStruct(g.GisInfoByRectangleT,!1,!0),g.GetPositionT=class{constructor(e=""){this.employeeid=e}_write(e){e.writeString(this.employeeid)}_read(e){this.employeeid=e.readString()}static get minWireSize(){return 1}},ae.defineStruct(g.GetPositionT,!0,!0),g.GetPositionElem=class{constructor(e="",t="",i="",r="",s="",n=-1,a="",o=g.RegisterState.RegisterStateLogout,h=""){this.employeeid=e,this.name=t,this.longitude=i,this.latitude=r,this.message=s,this.type=n,this.dnsprefix=a,this.regstate=o,this.positiontime=h}_write(e){e.writeString(this.employeeid),e.writeString(this.name),e.writeString(this.longitude),e.writeString(this.latitude),e.writeString(this.message),e.writeInt(this.type),e.writeString(this.dnsprefix),g.RegisterState._write(e,this.regstate),e.writeString(this.positiontime)}_read(e){this.employeeid=e.readString(),this.name=e.readString(),this.longitude=e.readString(),this.latitude=e.readString(),this.message=e.readString(),this.type=e.readInt(),this.dnsprefix=e.readString(),this.regstate=g.RegisterState._read(e),this.positiontime=e.readString()}static get minWireSize(){return 12}},ae.defineStruct(g.GetPositionElem,!0,!0),ae.defineSequence(g,"GetPositionSeqHelper","Dispatcher.GetPositionElem",!1),g.GetPositionRT=class{constructor(e=null){this.pseq=e}_write(e){g.GetPositionSeqHelper.write(e,this.pseq)}_read(e){this.pseq=g.GetPositionSeqHelper.read(e)}static get minWireSize(){return 1}},ae.defineStruct(g.GetPositionRT,!0,!0),g.GetPositionT1=class{constructor(e=""){this.employeeid=e}_write(e){e.writeString(this.employeeid)}_read(e){this.employeeid=e.readString()}static get minWireSize(){return 1}},ae.defineStruct(g.GetPositionT1,!0,!0),g.GetPositionElem1=class{constructor(e="",t="",i="",r="",s="",n=0,a="",o=g.RegisterState.RegisterStateLogout){this.employeeid=e,this.name=t,this.longitude=i,this.latitude=r,this.message=s,this.type=n,this.dnsprefix=a,this.regstate=o}_write(e){e.writeString(this.employeeid),e.writeString(this.name),e.writeString(this.longitude),e.writeString(this.latitude),e.writeString(this.message),e.writeInt(this.type),e.writeString(this.dnsprefix),g.RegisterState._write(e,this.regstate)}_read(e){this.employeeid=e.readString(),this.name=e.readString(),this.longitude=e.readString(),this.latitude=e.readString(),this.message=e.readString(),this.type=e.readInt(),this.dnsprefix=e.readString(),this.regstate=g.RegisterState._read(e)}static get minWireSize(){return 11}},ae.defineStruct(g.GetPositionElem1,!0,!0),ae.defineSequence(g,"GetPositionSeq1Helper","Dispatcher.GetPositionElem1",!1),g.GetPositionRT1=class{constructor(e=null){this.pseq=e}_write(e){g.GetPositionSeq1Helper.write(e,this.pseq)}_read(e){this.pseq=g.GetPositionSeq1Helper.read(e)}static get minWireSize(){return 1}},ae.defineStruct(g.GetPositionRT1,!0,!0),g.GisTraceT=class{constructor(e="",t="",i=g.GisTraceType.GisTraceTypeNone){this.dstid=e,this.space=t,this.flag=i}_write(e){e.writeString(this.dstid),e.writeString(this.space),g.GisTraceType._write(e,this.flag)}_read(e){this.dstid=e.readString(),this.space=e.readString(),this.flag=g.GisTraceType._read(e)}static get minWireSize(){return 3}},ae.defineStruct(g.GisTraceT,!0,!0),ae.defineSequence(g,"GisTraceSeqHelper","Dispatcher.GisTraceT",!1),g.GisTraceRT=class{constructor(e=""){this.employeeid=e}_write(e){e.writeString(this.employeeid)}_read(e){this.employeeid=e.readString()}static get minWireSize(){return 1}},ae.defineStruct(g.GisTraceRT,!0,!0),ae.defineSequence(g,"GisTraceRSeqHelper","Dispatcher.GisTraceRT",!1),g.GisInfoT=class{constructor(e=0,t=0,i="",r=""){this.latitude=e,this.longitude=t,this.time=i,this.grmc=r}_write(e){e.writeDouble(this.latitude),e.writeDouble(this.longitude),e.writeString(this.time),e.writeString(this.grmc)}_read(e){this.latitude=e.readDouble(),this.longitude=e.readDouble(),this.time=e.readString(),this.grmc=e.readString()}static get minWireSize(){return 18}},ae.defineStruct(g.GisInfoT,!1,!0),g.GISDETAIL1=class{constructor(e="",t=0,i=0,r="",s="",n=0,a="",o=g.RegisterState.RegisterStateLogout){this.mEmployeeid=e,this.mLatitude=t,this.mLongitude=i,this.mPositionTime=r,this.mMessage=s,this.type=n,this.dnsprefix=a,this.regstate=o}_write(e){e.writeString(this.mEmployeeid),e.writeDouble(this.mLatitude),e.writeDouble(this.mLongitude),e.writeString(this.mPositionTime),e.writeString(this.mMessage),e.writeInt(this.type),e.writeString(this.dnsprefix),g.RegisterState._write(e,this.regstate)}_read(e){this.mEmployeeid=e.readString(),this.mLatitude=e.readDouble(),this.mLongitude=e.readDouble(),this.mPositionTime=e.readString(),this.mMessage=e.readString(),this.type=e.readInt(),this.dnsprefix=e.readString(),this.regstate=g.RegisterState._read(e)}static get minWireSize(){return 25}},ae.defineStruct(g.GISDETAIL1,!1,!0),ae.defineSequence(g,"GISDETAILSeq1Helper","Dispatcher.GISDETAIL1",!1);g.GisOP=class extends t.Ice.Object{},g.GisOPPrx=class extends t.Ice.ObjectPrx{},ae.defineOperations(g.GisOP,g.GisOPPrx,["::Dispatcher::GisOP","::Ice::Object"],0,{IFCReqGetGisInfoByTime:[,,,,["DispatcherDB.GISDETAILSeqHelper"],[[g.Identity],[g.GisInfoByTimeT]],,[g.Error],,],IFCReqGetGisInfoByTime2:[,,,,["Dispatcher.GISDETAILSeq1Helper"],[[g.Identity],[g.GisInfoByTimeT]],,[g.Error],,],IFCReqGetGisInfoByTimeByJson:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqGetGisInfoByEllipse:[,,,,["DispatcherDB.GISDETAILSeqHelper"],[[g.Identity],[g.GisInfoByEllipseT]],,[g.Error],,],IFCReqGetGisInfoByEllipse2:[,,,,["Dispatcher.GISDETAILSeq1Helper"],[[g.Identity],[g.GisInfoByEllipseT]],,[g.Error],,],IFCReqGetGisInfoByEllipseByJson:[,,,,[7],[[g.Identity],[g.GisInfoByEllipseT]],,[g.Error],,],IFCReqGetGisInfoByRectangle:[,,,,["DispatcherDB.GISDETAILSeqHelper"],[[g.Identity],[g.GisInfoByRectangleT]],,[g.Error],,],IFCReqGetGisInfoByRectangle2:[,,,,["Dispatcher.GISDETAILSeq1Helper"],[[g.Identity],[g.GisInfoByRectangleT]],,[g.Error],,],IFCReqGetGisInfoByRectangleByJson:[,,,,[7],[[g.Identity],[g.GisInfoByRectangleT]],,[g.Error],,],IFCReqGetGisInfo:[,,,,[g.GetPositionRT],[[g.Identity],[g.GetPositionT]],,[g.Error],,],IFCReqGetGisInfo2:[,,,,[g.GetPositionRT1],[[g.Identity],[g.GetPositionT1]],,[g.Error],,],IFCReqGetGisInfoByJson:[,,,,[7],[[g.Identity],[g.GetPositionT1]],,[g.Error],,],IFCReqTraceGisInfo:[,,,,["Dispatcher.GisTraceRSeqHelper"],[[g.Identity],["Dispatcher.GisTraceSeqHelper"]],,[g.Error],,],IFCReqReportGisInfo:[,2,2,,,[[g.Identity],[g.GisInfoT]],,,,],IFCReqReportGisInfoByJson:[,2,2,,[7],[[g.Identity],[7]],,,,]});t.Ice._ModuleRegistry,t.Ice.Slice,t.Ice._ModuleRegistry;const oe=t.Ice.Slice;g.McuCB=class extends t.Ice.Object{},g.McuCBPrx=class extends t.Ice.ObjectPrx{},oe.defineOperations(g.McuCB,g.McuCBPrx,["::Dispatcher::McuCB","::Ice::Object"],0);t.Ice._ModuleRegistry;const he=t.Ice.Slice;g.ScreenDisPlay=class{constructor(e=-1,t="",i=!0){this.index=e,this.showmember=t,this.hasstream=i}_write(e){e.writeInt(this.index),e.writeString(this.showmember),e.writeBool(this.hasstream)}_read(e){this.index=e.readInt(),this.showmember=e.readString(),this.hasstream=e.readBool()}static get minWireSize(){return 6}},he.defineStruct(g.ScreenDisPlay,!0,!0),g.ScreenInfo=class{constructor(e="",t=1,i=2){this.type=e,this.stream=t,this.role=i}_write(e){e.writeString(this.type),e.writeInt(this.stream),e.writeInt(this.role)}_read(e){this.type=e.readString(),this.stream=e.readInt(),this.role=e.readInt()}static get minWireSize(){return 9}},he.defineStruct(g.ScreenInfo,!0,!0),he.defineSequence(g,"ScreenDisPlaySeqHelper","Dispatcher.ScreenDisPlay",!1),g.SetScreenT=class{constructor(e="",t=new g.ScreenInfo,i=null){this.cid=e,this.screen=t,this.DisplaySeq=i}_write(e){e.writeString(this.cid),g.ScreenInfo.write(e,this.screen),g.ScreenDisPlaySeqHelper.write(e,this.DisplaySeq)}_read(e){this.cid=e.readString(),this.screen=g.ScreenInfo.read(e,this.screen),this.DisplaySeq=g.ScreenDisPlaySeqHelper.read(e)}static get minWireSize(){return 11}},he.defineStruct(g.SetScreenT,!0,!0),g.SetScreenRT=class{constructor(e="",t=0){this.cid=e,this.reslut=t}_write(e){e.writeString(this.cid),e.writeInt(this.reslut)}_read(e){this.cid=e.readString(),this.reslut=e.readInt()}static get minWireSize(){return 5}},he.defineStruct(g.SetScreenRT,!0,!0),g.SetMemberRoleT=class{constructor(e="",t="",i=0){this.cid=e,this.member=t,this.role=i}_write(e){e.writeString(this.cid),e.writeString(this.member),e.writeInt(this.role)}_read(e){this.cid=e.readString(),this.member=e.readString(),this.role=e.readInt()}static get minWireSize(){return 6}},he.defineStruct(g.SetMemberRoleT,!0,!0),g.SetMemberRoleRT=class{constructor(e="",t=0){this.cid=e,this.reslut=t}_write(e){e.writeString(this.cid),e.writeInt(this.reslut)}_read(e){this.cid=e.readString(),this.reslut=e.readInt()}static get minWireSize(){return 5}},he.defineStruct(g.SetMemberRoleRT,!0,!0),g.MCUDevice=class{constructor(e=0,t="",i=0,r=0,s=""){this.id=e,this.ip=t,this.thetype=i,this.defaultbandwidth=r,this.thename=s}_write(e){e.writeInt(this.id),e.writeString(this.ip),e.writeInt(this.thetype),e.writeInt(this.defaultbandwidth),e.writeString(this.thename)}_read(e){this.id=e.readInt(),this.ip=e.readString(),this.thetype=e.readInt(),this.defaultbandwidth=e.readInt(),this.thename=e.readString()}static get minWireSize(){return 14}},he.defineStruct(g.MCUDevice,!0,!0),g.MCUMettingOP=class{constructor(e="",t=""){this.cid=e,this.number=t}_write(e){e.writeString(this.cid),e.writeString(this.number)}_read(e){this.cid=e.readString(),this.number=e.readString()}static get minWireSize(){return 2}},he.defineStruct(g.MCUMettingOP,!0,!0),he.defineSequence(g,"MCUDeviceSeqHelper","Dispatcher.MCUDevice",!1);g.McuOP=class extends t.Ice.Object{},g.McuOPPrx=class extends t.Ice.ObjectPrx{},he.defineOperations(g.McuOP,g.McuOPPrx,["::Dispatcher::McuOP","::Ice::Object"],0,{IFCReSetScreen:[,,,,[g.SetScreenRT],[[g.Identity],[g.SetScreenT]],,[g.Error],,],IFCReqSetMemberRole:[,,,,[g.SetMemberRoleRT],[[g.Identity],[g.SetMemberRoleT]],,[g.Error],,],IFCReqGetMcuDevice:[,,,,["Dispatcher.MCUDeviceSeqHelper"],[[g.Identity]],,[g.Error],,],IFCReqMcuConfAddDevice:[,,,,,[[g.Identity],[g.MCUMettingOP]],,[g.Error],,],IFCReqMcuConfDelDevice:[,,,,,[[g.Identity],[g.MCUMettingOP]],,[g.Error],,]});t.Ice._ModuleRegistry;const de=t.Ice.Slice;g.Message2T=class{constructor(e="",t="",i="",r="",s=null,n=null,a=g.UserType.UserTypeDispatch){this.msgid=e,this.body=t,this.sendid=i,this.time=r,this.receiver=s,this.attach=n,this.utype=a}_write(e){e.writeString(this.msgid),e.writeString(this.body),e.writeString(this.sendid),e.writeString(this.time),t.Ice.StringSeqHelper.write(e,this.receiver),g.UploadEvent2SeqHelper.write(e,this.attach),g.UserType._write(e,this.utype)}_read(e){this.msgid=e.readString(),this.body=e.readString(),this.sendid=e.readString(),this.time=e.readString(),this.receiver=t.Ice.StringSeqHelper.read(e),this.attach=g.UploadEvent2SeqHelper.read(e),this.utype=g.UserType._read(e)}static get minWireSize(){return 7}},de.defineStruct(g.Message2T,!0,!0),de.defineSequence(g,"Message2SeqHelper","Dispatcher.Message2T",!1);t.Ice._ModuleRegistry;const ce=t.Ice.Slice;g.MessageCB=class extends t.Ice.Object{static get _iceImplements(){return[g.FileCB]}},g.MessageCBPrx=class extends t.Ice.ObjectPrx{static get _implements(){return[g.FileCBPrx]}},ce.defineOperations(g.MessageCB,g.MessageCBPrx,["::Dispatcher::FileCB","::Dispatcher::MessageCB","::Ice::Object"],1,{IFCNotifyMsgEvt:[,2,2,,,[[g.Message2T]],,,,],IFCNotifyMsgDelEvt:[,2,2,,,[[7]],,,,]});t.Ice._ModuleRegistry;const le=t.Ice.Slice;g.MessageET=class{constructor(e="",t=null){this.body=e,this.attach=t}_write(e){e.writeString(this.body),g.ApplyUploadESeqHelper.write(e,this.attach)}_read(e){this.body=e.readString(),this.attach=g.ApplyUploadESeqHelper.read(e)}static get minWireSize(){return 2}},le.defineStruct(g.MessageET,!0,!0),g.MessageT=class{constructor(e=null,t=new g.MessageET){this.receiver=e,this.message=t}_write(e){t.Ice.StringSeqHelper.write(e,this.receiver),g.MessageET.write(e,this.message)}_read(e){this.receiver=t.Ice.StringSeqHelper.read(e),this.message=g.MessageET.read(e,this.message)}static get minWireSize(){return 3}},le.defineStruct(g.MessageT,!0,!0),g.MessageRT=class{constructor(e="",t=null){this.msgid=e,this.attach=t}_write(e){e.writeString(this.msgid),g.ApplyUploadRSeqHelper.write(e,this.attach)}_read(e){this.msgid=e.readString(),this.attach=g.ApplyUploadRSeqHelper.read(e)}static get minWireSize(){return 2}},le.defineStruct(g.MessageRT,!0,!0),g.MessageReceivedT=class{constructor(e="",t=""){this.msgid=e,this.employeeid=t}_write(e){e.writeString(this.msgid),e.writeString(this.employeeid)}_read(e){this.msgid=e.readString(),this.employeeid=e.readString()}static get minWireSize(){return 2}},le.defineStruct(g.MessageReceivedT,!0,!0),g.GetOldMsgFileT=class{constructor(e="",t=0){this.employeeid=e,this.getnum=t}_write(e){e.writeString(this.employeeid),e.writeInt(this.getnum)}_read(e){this.employeeid=e.readString(),this.getnum=e.readInt()}static get minWireSize(){return 5}},le.defineStruct(g.GetOldMsgFileT,!0,!0),g.GetOldMsgFileRT=class{constructor(e=null,t=null){this.fileinfos=e,this.msginfos=t}_write(e){g.UploadEvent2SeqHelper.write(e,this.fileinfos),g.Message2SeqHelper.write(e,this.msginfos)}_read(e){this.fileinfos=g.UploadEvent2SeqHelper.read(e),this.msginfos=g.Message2SeqHelper.read(e)}static get minWireSize(){return 2}},le.defineStruct(g.GetOldMsgFileRT,!0,!0);g.MessageOP=class extends t.Ice.Object{static get _iceImplements(){return[g.FileOP]}},g.MessageOPPrx=class extends t.Ice.ObjectPrx{static get _implements(){return[g.FileOPPrx]}},le.defineOperations(g.MessageOP,g.MessageOPPrx,["::Dispatcher::FileOP","::Dispatcher::MessageOP","::Ice::Object"],1,{IFCReqMsg:[,,,,[g.MessageRT],[[g.Identity],[g.MessageT]],,[g.Error],,],IFCReqMsgReceived:[,,,,,[[g.Identity],[g.MessageReceivedT]],,[g.Error],,],IFCReqGetOldMsgFile:[,,,,[g.GetOldMsgFileRT],[[g.Identity],[g.GetOldMsgFileT]],,[g.Error],,],IFCReqDelMsg:[,,,,,[[g.Identity],[7]],,[g.Error],,],IFCReqGetGroupMsgByUserid:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqAddGroupMsg:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqUpdateGroupMsg:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqDeleteGroupMsg:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqSendMsg:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqGetOldMsg:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqGetSmsGis:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqGetSmsGisRepeat:[,,,,[7],[[g.Identity],[7],[7]],,[g.Error],,]});t.Ice._ModuleRegistry;const ge=t.Ice.Slice;g.PrePlanT=class{constructor(e=""){this.dummy=e}_write(e){e.writeString(this.dummy)}_read(e){this.dummy=e.readString()}static get minWireSize(){return 1}},ge.defineStruct(g.PrePlanT,!0,!0),g.PrePlanRT=class{constructor(e=0,t="",i="",r="",s="",n=0,a=""){this.planId=e,this.planName=t,this.planAddr=i,this.planMeans=r,this.planNumber=s,this.planType=n,this.dis=a}_write(e){e.writeInt(this.planId),e.writeString(this.planName),e.writeString(this.planAddr),e.writeString(this.planMeans),e.writeString(this.planNumber),e.writeInt(this.planType),e.writeString(this.dis)}_read(e){this.planId=e.readInt(),this.planName=e.readString(),this.planAddr=e.readString(),this.planMeans=e.readString(),this.planNumber=e.readString(),this.planType=e.readInt(),this.dis=e.readString()}static get minWireSize(){return 13}},ge.defineStruct(g.PrePlanRT,!0,!0),ge.defineSequence(g,"PrePlanRSeqHelper","Dispatcher.PrePlanRT",!1),g.PrePlanStartT=class{constructor(e=0,t="",i=""){this.planId=e,this.passwd=t,this.caller=i}_write(e){e.writeInt(this.planId),e.writeString(this.passwd),e.writeString(this.caller)}_read(e){this.planId=e.readInt(),this.passwd=e.readString(),this.caller=e.readString()}static get minWireSize(){return 6}},ge.defineStruct(g.PrePlanStartT,!0,!0),g.PrePlanStartRT=class{constructor(e=""){this.dummy=e}_write(e){e.writeString(this.dummy)}_read(e){this.dummy=e.readString()}static get minWireSize(){return 1}},ge.defineStruct(g.PrePlanStartRT,!0,!0),g.PrePlanEvT=class{constructor(e=0,t=g.PrePlanState.PrePlanStateNone){this.planId=e,this.state=t}_write(e){e.writeInt(this.planId),g.PrePlanState._write(e,this.state)}_read(e){this.planId=e.readInt(),this.state=g.PrePlanState._read(e)}static get minWireSize(){return 5}},ge.defineStruct(g.PrePlanEvT,!0,!0),g.PrePlanStopT=class{constructor(e=0,t=""){this.planId=e,this.passwd=t}_write(e){e.writeInt(this.planId),e.writeString(this.passwd)}_read(e){this.planId=e.readInt(),this.passwd=e.readString()}static get minWireSize(){return 5}},ge.defineStruct(g.PrePlanStopT,!0,!0),g.PrePlanStopRT=class{constructor(e=""){this.dummy=e}_write(e){e.writeString(this.dummy)}_read(e){this.dummy=e.readString()}static get minWireSize(){return 1}},ge.defineStruct(g.PrePlanStopRT,!0,!0);t.Ice._ModuleRegistry;const ue=t.Ice.Slice;g.PrePlanCB=class extends t.Ice.Object{},g.PrePlanCBPrx=class extends t.Ice.ObjectPrx{},ue.defineOperations(g.PrePlanCB,g.PrePlanCBPrx,["::Dispatcher::PrePlanCB","::Ice::Object"],0,{onPrePlanEv:[,2,2,,,[[g.PrePlanEvT]],,,,]});t.Ice._ModuleRegistry;const pe=t.Ice.Slice;g.PrePlanOP=class extends t.Ice.Object{static get _iceImplements(){return[g.MessageOP]}},g.PrePlanOPPrx=class extends t.Ice.ObjectPrx{static get _implements(){return[g.MessageOPPrx]}},pe.defineOperations(g.PrePlanOP,g.PrePlanOPPrx,["::Dispatcher::FileOP","::Dispatcher::MessageOP","::Dispatcher::PrePlanOP","::Ice::Object"],2,{IFCReqSelectPreplan:[,,,,["Dispatcher.PrePlanRSeqHelper"],[[g.Identity],[g.PrePlanT]],,[g.Error],,],IFCReqSelectPreplan2:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqStartPreplan:[,,,,[g.PrePlanStartRT],[[g.Identity],[g.PrePlanStartT]],,[g.Error],,],IFCReqStopPreplan:[,,,,[g.PrePlanStopRT],[[g.Identity],[g.PrePlanStopT]],,[g.Error],,]});t.Ice._ModuleRegistry;const me=t.Ice.Slice;g.PttIndCallInfoElem=class{constructor(e="",t="",i=""){this.group=e,this.speaker=t,this.callid=i}_write(e){e.writeString(this.group),e.writeString(this.speaker),e.writeString(this.callid)}_read(e){this.group=e.readString(),this.speaker=e.readString(),this.callid=e.readString()}static get minWireSize(){return 3}},me.defineStruct(g.PttIndCallInfoElem,!0,!0),me.defineSequence(g,"PttIndCallInfoSeqHelper","Dispatcher.PttIndCallInfoElem",!1),g.G3MessageT=class{constructor(e="",t="",i=null,r="",s=0){this.sid=e,this.employeeid=t,this.callinfo=i,this.ip=r,this.port=s}_write(e){e.writeString(this.sid),e.writeString(this.employeeid),g.PttIndCallInfoSeqHelper.write(e,this.callinfo),e.writeString(this.ip),e.writeInt(this.port)}_read(e){this.sid=e.readString(),this.employeeid=e.readString(),this.callinfo=g.PttIndCallInfoSeqHelper.read(e),this.ip=e.readString(),this.port=e.readInt()}static get minWireSize(){return 8}},me.defineStruct(g.G3MessageT,!0,!0),g.PttIndGroupInfoElem=class{constructor(e="",t="",i=0,r=0,s=0,n="",a=0,o=g.GroupType.GroupTypeNone){this.groupname=e,this.groupnum=t,this.grouplevel=i,this.ipstatespace=r,this.ipheartbeatspace=s,this.ip=n,this.port=a,this.thetype=o}_write(e){e.writeString(this.groupname),e.writeString(this.groupnum),e.writeInt(this.grouplevel),e.writeInt(this.ipstatespace),e.writeInt(this.ipheartbeatspace),e.writeString(this.ip),e.writeInt(this.port),g.GroupType._write(e,this.thetype)}_read(e){this.groupname=e.readString(),this.groupnum=e.readString(),this.grouplevel=e.readInt(),this.ipstatespace=e.readInt(),this.ipheartbeatspace=e.readInt(),this.ip=e.readString(),this.port=e.readInt(),this.thetype=g.GroupType._read(e)}static get minWireSize(){return 20}},me.defineStruct(g.PttIndGroupInfoElem,!0,!0),me.defineSequence(g,"PttIndGroupInfoSeqHelper","Dispatcher.PttIndGroupInfoElem",!1),g.PttIndGroupInfoT=class{constructor(e=null,t="",i="",r=0,s=""){this.seq=e,this.employeeid=t,this.ip=i,this.port=r,this.type=s}_write(e){g.PttIndGroupInfoSeqHelper.write(e,this.seq),e.writeString(this.employeeid),e.writeString(this.ip),e.writeInt(this.port),e.writeString(this.type)}_read(e){this.seq=g.PttIndGroupInfoSeqHelper.read(e),this.employeeid=e.readString(),this.ip=e.readString(),this.port=e.readInt(),this.type=e.readString()}static get minWireSize(){return 8}},me.defineStruct(g.PttIndGroupInfoT,!0,!0),g.PttReqRightRT=class{constructor(e="",t="",i=""){this.employeeid=e,this.result=t,this.reason=i}_write(e){e.writeString(this.employeeid),e.writeString(this.result),e.writeString(this.reason)}_read(e){this.employeeid=e.readString(),this.result=e.readString(),this.reason=e.readString()}static get minWireSize(){return 3}},me.defineStruct(g.PttReqRightRT,!0,!0);t.Ice._ModuleRegistry;const Se=t.Ice.Slice;g.PttCB=class extends t.Ice.Object{},g.PttCBPrx=class extends t.Ice.ObjectPrx{},Se.defineOperations(g.PttCB,g.PttCBPrx,["::Dispatcher::PttCB","::Ice::Object"],0,{IFCNotifyPhoneMsgEvt:[,2,2,,,[[g.G3MessageT]],,,,],IFCNotifyGroupInfoEvt:[,2,2,,,[[g.PttIndGroupInfoT]],,,,],IFCNotifyReqRightResultEvt:[,2,2,,,[[g.PttReqRightRT]],,,,]});t.Ice._ModuleRegistry;const fe=t.Ice.Slice;g.PttReqRightT=class{constructor(e="",t="",i=""){this.groupnum=e,this.caller=t,this.messageinfo=i}_write(e){e.writeString(this.groupnum),e.writeString(this.caller),e.writeString(this.messageinfo)}_read(e){this.groupnum=e.readString(),this.caller=e.readString(),this.messageinfo=e.readString()}static get minWireSize(){return 3}},fe.defineStruct(g.PttReqRightT,!0,!0),g.PttReqGroupInfoT=class{constructor(e="",t=""){this.employeeid=e,this.type=t}_write(e){e.writeString(this.employeeid),e.writeString(this.type)}_read(e){this.employeeid=e.readString(),this.type=e.readString()}static get minWireSize(){return 2}},fe.defineStruct(g.PttReqGroupInfoT,!0,!0),g.PttReqMemberInfoT=class{constructor(e="",t=""){this.employeeid=e,this.groupnum=t}_write(e){e.writeString(this.employeeid),e.writeString(this.groupnum)}_read(e){this.employeeid=e.readString(),this.groupnum=e.readString()}static get minWireSize(){return 2}},fe.defineStruct(g.PttReqMemberInfoT,!0,!0),g.PttReqMemberInfoRElem=class{constructor(e="",t="",i=g.CallState.CallStateNone){this.num=e,this.name=t,this.state=i}_write(e){e.writeString(this.num),e.writeString(this.name),g.CallState._write(e,this.state)}_read(e){this.num=e.readString(),this.name=e.readString(),this.state=g.CallState._read(e)}static get minWireSize(){return 3}},fe.defineStruct(g.PttReqMemberInfoRElem,!0,!0),fe.defineSequence(g,"PttReqMemberInfoRSeqHelper","Dispatcher.PttReqMemberInfoRElem",!1),g.PttReqMemberInfoRT=class{constructor(e="",t="",i=null){this.groupnum=e,this.employeeid=t,this.memberinfo=i}_write(e){e.writeString(this.groupnum),e.writeString(this.employeeid),g.PttReqMemberInfoRSeqHelper.write(e,this.memberinfo)}_read(e){this.groupnum=e.readString(),this.employeeid=e.readString(),this.memberinfo=g.PttReqMemberInfoRSeqHelper.read(e)}static get minWireSize(){return 3}},fe.defineStruct(g.PttReqMemberInfoRT,!0,!0),g.PttReqMemberInfoT1=class{constructor(e="",t="",i=""){this.sid=e,this.groupnum=t,this.employeeid=i}_write(e){e.writeString(this.sid),e.writeString(this.groupnum),e.writeString(this.employeeid)}_read(e){this.sid=e.readString(),this.groupnum=e.readString(),this.employeeid=e.readString()}static get minWireSize(){return 3}},fe.defineStruct(g.PttReqMemberInfoT1,!0,!0),g.PttReqMemberInfoRElem1=class{constructor(e="",t="",i=8,r=10,s=g.CallState.CallStateNone,n=""){this.employeeid=e,this.name=t,this.type=i,this.level=r,this.state=s,this.stateDecorate=n}_write(e){e.writeString(this.employeeid),e.writeString(this.name),e.writeInt(this.type),e.writeInt(this.level),g.CallState._write(e,this.state),e.writeString(this.stateDecorate)}_read(e){this.employeeid=e.readString(),this.name=e.readString(),this.type=e.readInt(),this.level=e.readInt(),this.state=g.CallState._read(e),this.stateDecorate=e.readString()}static get minWireSize(){return 12}},fe.defineStruct(g.PttReqMemberInfoRElem1,!0,!0),fe.defineSequence(g,"PttReqMemberInfoRSeq1Helper","Dispatcher.PttReqMemberInfoRElem1",!1),g.PttReqMemberInfoRT1=class{constructor(e="",t="",i=null){this.groupnum=e,this.employeeid=t,this.memberinfo=i}_write(e){e.writeString(this.groupnum),e.writeString(this.employeeid),g.PttReqMemberInfoRSeq1Helper.write(e,this.memberinfo)}_read(e){this.groupnum=e.readString(),this.employeeid=e.readString(),this.memberinfo=g.PttReqMemberInfoRSeq1Helper.read(e)}static get minWireSize(){return 3}},fe.defineStruct(g.PttReqMemberInfoRT1,!0,!0),g.PttTimeOutT=class{constructor(e="",t="",i="",r="",s=""){this.cid=e,this.MaxQueue=t,this.IdelTimeout=i,this.SpeakTimeout=r,this.RefreshStateSpace=s}_write(e){e.writeString(this.cid),e.writeString(this.MaxQueue),e.writeString(this.IdelTimeout),e.writeString(this.SpeakTimeout),e.writeString(this.RefreshStateSpace)}_read(e){this.cid=e.readString(),this.MaxQueue=e.readString(),this.IdelTimeout=e.readString(),this.SpeakTimeout=e.readString(),this.RefreshStateSpace=e.readString()}static get minWireSize(){return 5}},fe.defineStruct(g.PttTimeOutT,!0,!0);g.PttOP=class extends t.Ice.Object{},g.PttOPPrx=class extends t.Ice.ObjectPrx{},fe.defineOperations(g.PttOP,g.PttOPPrx,["::Dispatcher::PttOP","::Ice::Object"],0,{IFCReqGetMemberInfo:[,,,,[g.PttReqMemberInfoRT],[[g.Identity],[g.PttReqMemberInfoT]],,[g.Error],,],IFCReqGetMemberInfo2:[,,,,[g.PttReqMemberInfoRT1],[[g.Identity],[g.PttReqMemberInfoT1]],,[g.Error],,],IFCReqApplyRight:[,,,,[g.CommonRequestT],[[g.Identity],[g.PttReqRightT]],,[g.Error],,],IFCReqSetIntercomTimeoutInfo:[,,,,[3],[[g.Identity],[g.PttTimeOutT]],,[g.Error],,],IFCReqGetIntercomTimeoutInfo:[,,,,[g.PttTimeOutT],[[g.Identity],[7]],,[g.Error],,],IFCReqGetGroupInfo:[,2,2,,,[[g.Identity],[g.PttReqGroupInfoT]],,,,]});g.PttSB=class extends t.Ice.Object{},g.PttSBPrx=class extends t.Ice.ObjectPrx{},fe.defineOperations(g.PttSB,g.PttSBPrx,["::Dispatcher::PttSB","::Ice::Object"],0);const Ie=t.Ice._ModuleRegistry,Te=t.Ice.Slice;let we=Ie.module("Dispatcher");we.ContentInfo=class{constructor(e=""){this.strContent=e}_write(e){e.writeString(this.strContent)}_read(e){this.strContent=e.readString()}static get minWireSize(){return 1}},Te.defineStruct(we.ContentInfo,!0,!0),Te.defineSequence(we,"SubContentSeqHelper","Dispatcher.ContentInfo",!1),we.SubInfo=class{constructor(e="",t=null){this.subHeader=e,this.subContents=t}_write(e){e.writeString(this.subHeader),we.SubContentSeqHelper.write(e,this.subContents)}_read(e){this.subHeader=e.readString(),this.subContents=we.SubContentSeqHelper.read(e)}static get minWireSize(){return 2}},Te.defineStruct(we.SubInfo,!0,!0),Te.defineSequence(we,"SubInfoSeqHelper","Dispatcher.SubInfo",!1),we.SubInfos=class{constructor(e=null){this.Infos=e}_write(e){we.SubInfoSeqHelper.write(e,this.Infos)}_read(e){this.Infos=we.SubInfoSeqHelper.read(e)}static get minWireSize(){return 1}},Te.defineStruct(we.SubInfos,!0,!0),we.PubInfo=class{constructor(e="",t=""){this.subHeader=e,this.subMsg=t}_write(e){e.writeString(this.subHeader),e.writeString(this.subMsg)}_read(e){this.subHeader=e.readString(),this.subMsg=e.readString()}static get minWireSize(){return 2}},Te.defineStruct(we.PubInfo,!0,!0),we.FixReceiveInfo=class{constructor(e="",t="",i=""){this.subHeader=e,this.subMsg=t,this.receive=i}_write(e){e.writeString(this.subHeader),e.writeString(this.subMsg),e.writeString(this.receive)}_read(e){this.subHeader=e.readString(),this.subMsg=e.readString(),this.receive=e.readString()}static get minWireSize(){return 3}},Te.defineStruct(we.FixReceiveInfo,!0,!0),we.OnReceiveHeartBeat=class{constructor(e="",t=!1){this.number=e,this.issub=t}_write(e){e.writeString(this.number),e.writeBool(this.issub)}_read(e){this.number=e.readString(),this.issub=e.readBool()}static get minWireSize(){return 2}},Te.defineStruct(we.OnReceiveHeartBeat,!0,!0);t.Ice._ModuleRegistry;const Ce=t.Ice.Slice;g.PublishCB=class extends t.Ice.Object{},g.PublishCBPrx=class extends t.Ice.ObjectPrx{},Ce.defineOperations(g.PublishCB,g.PublishCBPrx,["::Dispatcher::PublishCB","::Ice::Object"],0,{IFCNotifyPublishMsgEvt:[,2,2,,,[[g.PubInfo]],,,,],IFCNotifyFixMsgEvt:[,2,2,,,[[g.FixReceiveInfo]],,,,],IFCNotifyPublishHBEvt:[,2,2,,,[[g.OnReceiveHeartBeat]],,,,]});t.Ice._ModuleRegistry;const ye=t.Ice.Slice;g.PublishOP=class extends t.Ice.Object{},g.PublishOPPrx=class extends t.Ice.ObjectPrx{},ye.defineOperations(g.PublishOP,g.PublishOPPrx,["::Dispatcher::PublishOP","::Ice::Object"],0,{IFCReqPublishMsg:[,,,,,[[g.Identity],[g.SubInfos]],,,,],IFCReqUnpublishMsg:[,,,,,[[g.Identity]],,,,],IFCReqPublishHB:[,,,,[1],[[g.Identity],[3]],,[g.Error],,]});t.Ice._ModuleRegistry;const ve=t.Ice.Slice;g.StationLineT=class{constructor(e=-1,t=""){this.stationid=e,this.Employeeid=t}_write(e){e.writeInt(this.stationid),e.writeString(this.Employeeid)}_read(e){this.stationid=e.readInt(),this.Employeeid=e.readString()}static get minWireSize(){return 5}},ve.defineStruct(g.StationLineT,!0,!0),g.StationLineRT=class{constructor(e=0,t="",i=0,r=""){this.LineID=e,this.LineName=t,this.StationID=i,this.Description=r}_write(e){e.writeInt(this.LineID),e.writeString(this.LineName),e.writeInt(this.StationID),e.writeString(this.Description)}_read(e){this.LineID=e.readInt(),this.LineName=e.readString(),this.StationID=e.readInt(),this.Description=e.readString()}static get minWireSize(){return 10}},ve.defineStruct(g.StationLineRT,!0,!0),ve.defineSequence(g,"StationLineRTSeqHelper","Dispatcher.StationLineRT",!1),g.StationT=class{constructor(e=""){this.Employeeid=e}_write(e){e.writeString(this.Employeeid)}_read(e){this.Employeeid=e.readString()}static get minWireSize(){return 1}},ve.defineStruct(g.StationT,!0,!0),g.StationRT=class{constructor(e=0,t="",i=""){this.StationID=e,this.StationName=t,this.StationDes=i}_write(e){e.writeInt(this.StationID),e.writeString(this.StationName),e.writeString(this.StationDes)}_read(e){this.StationID=e.readInt(),this.StationName=e.readString(),this.StationDes=e.readString()}static get minWireSize(){return 6}},ve.defineStruct(g.StationRT,!0,!0),ve.defineSequence(g,"StationRTSeqHelper","Dispatcher.StationRT",!1);g.RailWayOP=class extends t.Ice.Object{},g.RailWayOPPrx=class extends t.Ice.ObjectPrx{},ve.defineOperations(g.RailWayOP,g.RailWayOPPrx,["::Dispatcher::RailWayOP","::Ice::Object"],0,{IFCReqGetStationLine:[,,,,["Dispatcher.StationLineRTSeqHelper"],[[g.Identity],[g.StationLineT]],,[g.Error],,],IFCReqstopGetStation:[,,,,[g.StationRT],[[g.Identity],[g.StationT]],,[g.Error],,],IFCReqGetAllStations:[,,,,["Dispatcher.StationRTSeqHelper"],[[g.Identity]],,[g.Error],,]});t.Ice._ModuleRegistry;const _e=t.Ice.Slice;g.ForceLogoutT=class{constructor(e=g.ECode.ECodeNone){this.code=e}_write(e){g.ECode._write(e,this.code)}_read(e){this.code=g.ECode._read(e)}static get minWireSize(){return 1}},_e.defineStruct(g.ForceLogoutT,!0,!0);g.RegisterCB=class extends t.Ice.Object{},g.RegisterCBPrx=class extends t.Ice.ObjectPrx{},_e.defineOperations(g.RegisterCB,g.RegisterCBPrx,["::Dispatcher::RegisterCB","::Ice::Object"],0,{IFCNotifyForceLogout:[,2,2,,,[[g.ForceLogoutT]],,,,]});g.RegisterCBSub=class extends t.Ice.Object{},g.RegisterCBSubPrx=class extends t.Ice.ObjectPrx{},_e.defineOperations(g.RegisterCBSub,g.RegisterCBSubPrx,["::Dispatcher::RegisterCBSub","::Ice::Object"],0);t.Ice._ModuleRegistry;const Ee=t.Ice.Slice;g.LoginT=class{constructor(e="",t="",i=0,r=g.UserType.UserTypeNone){this.pass=e,this.ip=t,this.interval=i,this.type=r}_write(e){e.writeString(this.pass),e.writeString(this.ip),e.writeInt(this.interval),g.UserType._write(e,this.type)}_read(e){this.pass=e.readString(),this.ip=e.readString(),this.interval=e.readInt(),this.type=g.UserType._read(e)}static get minWireSize(){return 7}},Ee.defineStruct(g.LoginT,!0,!0),g.LoginRT=class{constructor(e=!1,t="",i=""){this.firstlogin=e,this.sptpsw=t,this.dnsprefix=i}_write(e){e.writeBool(this.firstlogin),e.writeString(this.sptpsw),e.writeString(this.dnsprefix)}_read(e){this.firstlogin=e.readBool(),this.sptpsw=e.readString(),this.dnsprefix=e.readString()}static get minWireSize(){return 3}},Ee.defineStruct(g.LoginRT,!0,!0),g.LogoutT=class{constructor(e=""){this.dummy=e}_write(e){e.writeString(this.dummy)}_read(e){this.dummy=e.readString()}static get minWireSize(){return 1}},Ee.defineStruct(g.LogoutT,!0,!0),g.LogoutRT=class{constructor(e=""){this.dummy=e}_write(e){e.writeString(this.dummy)}_read(e){this.dummy=e.readString()}static get minWireSize(){return 1}},Ee.defineStruct(g.LogoutRT,!0,!0),g.ReloginT=class{constructor(e=0,t=""){this.state=e,this.ip=t}_write(e){e.writeInt(this.state),e.writeString(this.ip)}_read(e){this.state=e.readInt(),this.ip=e.readString()}static get minWireSize(){return 5}},Ee.defineStruct(g.ReloginT,!0,!0),g.HeartbeatRT=class{constructor(e=0){this.dummy=e}_write(e){e.writeInt(this.dummy)}_read(e){this.dummy=e.readInt()}static get minWireSize(){return 4}},Ee.defineStruct(g.HeartbeatRT,!0,!1),g.ChangePassWordT=class{constructor(e="",t="",i=""){this.Employeeid=e,this.oldPassWord=t,this.newPassWord=i}_write(e){e.writeString(this.Employeeid),e.writeString(this.oldPassWord),e.writeString(this.newPassWord)}_read(e){this.Employeeid=e.readString(),this.oldPassWord=e.readString(),this.newPassWord=e.readString()}static get minWireSize(){return 3}},Ee.defineStruct(g.ChangePassWordT,!0,!0),g.ChangePassWordRT=class{constructor(e="",t=!1){this.Employeeid=e,this.issuccess=t}_write(e){e.writeString(this.Employeeid),e.writeBool(this.issuccess)}_read(e){this.Employeeid=e.readString(),this.issuccess=e.readBool()}static get minWireSize(){return 2}},Ee.defineStruct(g.ChangePassWordRT,!0,!0),g.ForceKickOutT=class{constructor(e=""){this.Employeeid=e}_write(e){e.writeString(this.Employeeid)}_read(e){this.Employeeid=e.readString()}static get minWireSize(){return 1}},Ee.defineStruct(g.ForceKickOutT,!0,!0);g.RegisterOP=class extends t.Ice.Object{},g.RegisterOPPrx=class extends t.Ice.ObjectPrx{},Ee.defineOperations(g.RegisterOP,g.RegisterOPPrx,["::Dispatcher::RegisterOP","::Ice::Object"],0,{IFCReqLogin:[,,,,[g.LoginRT],[[g.Identity],[g.LoginT]],,[g.Error],,],IFCReqLogout:[,,,,[g.LogoutRT],[[g.Identity],[g.LogoutT]],,[g.Error],,],IFCReqRelogin:[,2,2,,,[[g.Identity],[g.ReloginT]],,,,],IFCReqSendHB:[,,,,[g.HeartbeatRT],[[g.Identity],[3]],,[g.Error],,],IFCReqChangePasswd:[,,,,[g.ChangePassWordRT],[[g.Identity],[g.ChangePassWordT]],,[g.Error],,],IFCReqForceLogout:[,,,,[1],[[g.Identity],[g.ForceKickOutT]],,[g.Error],,]});g.RegisterSB=class extends t.Ice.Object{},g.RegisterSBPrx=class extends t.Ice.ObjectPrx{},Ee.defineOperations(g.RegisterSB,g.RegisterSBPrx,["::Dispatcher::RegisterSB","::Ice::Object"],0);t.Ice._ModuleRegistry;const Re=t.Ice.Slice;g.Agent=class{constructor(e="",t=g.RegisterState.RegisterStateNone,i="",r="",s="",n=""){this.employeeid=e,this.state=t,this.othernumber=i,this.othername=r,this.ip=s,this.DNSprefix=n}_write(e){e.writeString(this.employeeid),g.RegisterState._write(e,this.state),e.writeString(this.othernumber),e.writeString(this.othername),e.writeString(this.ip),e.writeString(this.DNSprefix)}_read(e){this.employeeid=e.readString(),this.state=g.RegisterState._read(e),this.othernumber=e.readString(),this.othername=e.readString(),this.ip=e.readString(),this.DNSprefix=e.readString()}static get minWireSize(){return 6}},Re.defineStruct(g.Agent,!0,!0),Re.defineSequence(g,"AgentSeqHelper","Dispatcher.Agent",!1);g.StateCB=class extends t.Ice.Object{},g.StateCBPrx=class extends t.Ice.ObjectPrx{},Re.defineOperations(g.StateCB,g.StateCBPrx,["::Dispatcher::StateCB","::Ice::Object"],0,{IFCNotifyUserStateEvt:[,2,2,,,[["Dispatcher.AgentSeqHelper"]],,,,]});t.Ice._ModuleRegistry;const be=t.Ice.Slice;g.VideoBugT=class{constructor(e="",t="",i="",r="",s="",n=g.VBugStateType.VBugStateTypeNone){this.cid=e,this.ip=t,this.port=i,this.srcid=r,this.dstid=s,this.state=n}_write(e){e.writeString(this.cid),e.writeString(this.ip),e.writeString(this.port),e.writeString(this.srcid),e.writeString(this.dstid),g.VBugStateType._write(e,this.state)}_read(e){this.cid=e.readString(),this.ip=e.readString(),this.port=e.readString(),this.srcid=e.readString(),this.dstid=e.readString(),this.state=g.VBugStateType._read(e)}static get minWireSize(){return 6}},be.defineStruct(g.VideoBugT,!0,!0),g.VideoBugT1=class{constructor(e="",t="",i="",r="",s="",n="",a="",o=g.VBugStateType.VBugStateTypeNone){this.cid=e,this.ip=t,this.port=i,this.srcid=r,this.dstid=s,this.audiocodec=n,this.videocodec=a,this.state=o}_write(e){e.writeString(this.cid),e.writeString(this.ip),e.writeString(this.port),e.writeString(this.srcid),e.writeString(this.dstid),e.writeString(this.audiocodec),e.writeString(this.videocodec),g.VBugStateType._write(e,this.state)}_read(e){this.cid=e.readString(),this.ip=e.readString(),this.port=e.readString(),this.srcid=e.readString(),this.dstid=e.readString(),this.audiocodec=e.readString(),this.videocodec=e.readString(),this.state=g.VBugStateType._read(e)}static get minWireSize(){return 8}},be.defineStruct(g.VideoBugT1,!0,!0),g.PlayVideoEvT=class{constructor(e="",t="",i=g.PlayVideoType.PlayVideoTypeNone){this.cid=e,this.uuid=t,this.type=i}_write(e){e.writeString(this.cid),e.writeString(this.uuid),g.PlayVideoType._write(e,this.type)}_read(e){this.cid=e.readString(),this.uuid=e.readString(),this.type=g.PlayVideoType._read(e)}static get minWireSize(){return 3}},be.defineStruct(g.PlayVideoEvT,!0,!0);g.VideoCB=class extends t.Ice.Object{},g.VideoCBPrx=class extends t.Ice.ObjectPrx{},be.defineOperations(g.VideoCB,g.VideoCBPrx,["::Dispatcher::VideoCB","::Ice::Object"],0,{IFCNotifyVideoBugEvt:[,2,2,,,[[g.VideoBugT]],,,,],IFCNotifyVideoBugEvt2:[,2,2,,,[[g.VideoBugT1]],,,,],IFCNotifyPlayVideoEvt:[,2,2,,,[[g.PlayVideoEvT]],,,,]});t.Ice._ModuleRegistry;const Pe=t.Ice.Slice;g.VideoBugStartT=class{constructor(e="",t="",i="",r="",s=""){this.dstid=e,this.ip=t,this.port=i,this.codec=r,this.srcid=s}_write(e){e.writeString(this.dstid),e.writeString(this.ip),e.writeString(this.port),e.writeString(this.codec),e.writeString(this.srcid)}_read(e){this.dstid=e.readString(),this.ip=e.readString(),this.port=e.readString(),this.codec=e.readString(),this.srcid=e.readString()}static get minWireSize(){return 5}},Pe.defineStruct(g.VideoBugStartT,!0,!0),g.VideoBugStartRT=class{constructor(e="",t=""){this.cid=e,this.srcid=t}_write(e){e.writeString(this.cid),e.writeString(this.srcid)}_read(e){this.cid=e.readString(),this.srcid=e.readString()}static get minWireSize(){return 2}},Pe.defineStruct(g.VideoBugStartRT,!0,!0),g.VideoBugEndT=class{constructor(e="",t=""){this.cid=e,this.srcid=t}_write(e){e.writeString(this.cid),e.writeString(this.srcid)}_read(e){this.cid=e.readString(),this.srcid=e.readString()}static get minWireSize(){return 2}},Pe.defineStruct(g.VideoBugEndT,!0,!0),g.VideoBugEndRT=class{constructor(e=""){this.srcid=e}_write(e){e.writeString(this.srcid)}_read(e){this.srcid=e.readString()}static get minWireSize(){return 1}},Pe.defineStruct(g.VideoBugEndRT,!0,!0),g.PlayVideoT=class{constructor(e="",t="",i=g.PlayVideoType.PlayVideoTypeNone){this.cid=e,this.fid=t,this.state=i}_write(e){e.writeString(this.cid),e.writeString(this.fid),g.PlayVideoType._write(e,this.state)}_read(e){this.cid=e.readString(),this.fid=e.readString(),this.state=g.PlayVideoType._read(e)}static get minWireSize(){return 3}},Pe.defineStruct(g.PlayVideoT,!0,!0),g.PlayVideoRT=class{constructor(e=0){this.code=e}_write(e){e.writeInt(this.code)}_read(e){this.code=e.readInt()}static get minWireSize(){return 4}},Pe.defineStruct(g.PlayVideoRT,!0,!1),g.VideoInfoT=class{constructor(e=""){this.dummy=e}_write(e){e.writeString(this.dummy)}_read(e){this.dummy=e.readString()}static get minWireSize(){return 1}},Pe.defineStruct(g.VideoInfoT,!0,!0),g.VideoChannelInfo=class{constructor(e=0,t=0,i="",r=""){this.ID=e,this.ChannelNum=t,this.bindEmployeeID=i,this.ChannelName=r}_write(e){e.writeInt(this.ID),e.writeInt(this.ChannelNum),e.writeString(this.bindEmployeeID),e.writeString(this.ChannelName)}_read(e){this.ID=e.readInt(),this.ChannelNum=e.readInt(),this.bindEmployeeID=e.readString(),this.ChannelName=e.readString()}static get minWireSize(){return 10}},Pe.defineStruct(g.VideoChannelInfo,!0,!0),Pe.defineSequence(g,"VideoChannelsHelper","Dispatcher.VideoChannelInfo",!1),g.VideoInfoElem=class{constructor(e=0,t="",i="",r="",s="",n="",a=g.emVideoDeviceType.VDTNONE,o=null){this.id=e,this.videoIP=t,this.videoport=i,this.user=r,this.password=s,this.showname=n,this.type=a,this.channels=o}_write(e){e.writeInt(this.id),e.writeString(this.videoIP),e.writeString(this.videoport),e.writeString(this.user),e.writeString(this.password),e.writeString(this.showname),g.emVideoDeviceType._write(e,this.type),g.VideoChannelsHelper.write(e,this.channels)}_read(e){this.id=e.readInt(),this.videoIP=e.readString(),this.videoport=e.readString(),this.user=e.readString(),this.password=e.readString(),this.showname=e.readString(),this.type=g.emVideoDeviceType._read(e),this.channels=g.VideoChannelsHelper.read(e)}static get minWireSize(){return 11}},Pe.defineStruct(g.VideoInfoElem,!0,!0),Pe.defineSequence(g,"VideoInfoSeqHelper","Dispatcher.VideoInfoElem",!1),g.VideoInfoRT=class{constructor(e=null){this.vseq=e}_write(e){g.VideoInfoSeqHelper.write(e,this.vseq)}_read(e){this.vseq=g.VideoInfoSeqHelper.read(e)}static get minWireSize(){return 1}},Pe.defineStruct(g.VideoInfoRT,!0,!0),g.VideoChannelInfo1=class{constructor(e=0,t=0,i="",r=""){this.ID=e,this.ChannelNum=t,this.bindEmployeeID=i,this.ChannelName=r}_write(e){e.writeInt(this.ID),e.writeInt(this.ChannelNum),e.writeString(this.bindEmployeeID),e.writeString(this.ChannelName)}_read(e){this.ID=e.readInt(),this.ChannelNum=e.readInt(),this.bindEmployeeID=e.readString(),this.ChannelName=e.readString()}static get minWireSize(){return 10}},Pe.defineStruct(g.VideoChannelInfo1,!0,!0),Pe.defineSequence(g,"VideoChannels1Helper","Dispatcher.VideoChannelInfo1",!1),g.VideoInfoElem1=class{constructor(e=0,t="",i="",r="",s="",n="",a=0,o=null){this.id=e,this.videoIP=t,this.videoport=i,this.user=r,this.password=s,this.showname=n,this.type=a,this.channels=o}_write(e){e.writeInt(this.id),e.writeString(this.videoIP),e.writeString(this.videoport),e.writeString(this.user),e.writeString(this.password),e.writeString(this.showname),e.writeInt(this.type),g.VideoChannels1Helper.write(e,this.channels)}_read(e){this.id=e.readInt(),this.videoIP=e.readString(),this.videoport=e.readString(),this.user=e.readString(),this.password=e.readString(),this.showname=e.readString(),this.type=e.readInt(),this.channels=g.VideoChannels1Helper.read(e)}static get minWireSize(){return 14}},Pe.defineStruct(g.VideoInfoElem1,!0,!0),Pe.defineSequence(g,"VideoInfoSeq1Helper","Dispatcher.VideoInfoElem1",!1),g.VideoInfoRT1=class{constructor(e=null){this.vseq=e}_write(e){g.VideoInfoSeq1Helper.write(e,this.vseq)}_read(e){this.vseq=g.VideoInfoSeq1Helper.read(e)}static get minWireSize(){return 1}},Pe.defineStruct(g.VideoInfoRT1,!0,!0),g.VideoControlType=Pe.defineEnum([["VideoControlTypeX",0],["VideoControlTypeY",1],["VideoControlTypeZoom",2],["VideoControlTypeLR",3],["VideoControlTypeFocus",4]]),g.CameraNumberControl=class{constructor(e="",t=g.VideoControlType.VideoControlTypeX,i=!0,r=0,s=0){this.number=e,this.ctype=t,this.IsStart=i,this.TimeOut=r,this.step=s}_write(e){e.writeString(this.number),g.VideoControlType._write(e,this.ctype),e.writeBool(this.IsStart),e.writeInt(this.TimeOut),e.writeFloat(this.step)}_read(e){this.number=e.readString(),this.ctype=g.VideoControlType._read(e),this.IsStart=e.readBool(),this.TimeOut=e.readInt(),this.step=e.readFloat()}static get minWireSize(){return 11}},Pe.defineStruct(g.CameraNumberControl,!1,!0),g.CameraIPControl=class{constructor(e="",t="",i="",r="",s=-1,n=g.VideoControlType.VideoControlTypeX,a=!0,o=0,h=0){this.strip=e,this.strport=t,this.struser=i,this.strpwd=r,this.channel=s,this.ctype=n,this.IsStart=a,this.TimeOut=o,this.step=h}_write(e){e.writeString(this.strip),e.writeString(this.strport),e.writeString(this.struser),e.writeString(this.strpwd),e.writeInt(this.channel),g.VideoControlType._write(e,this.ctype),e.writeBool(this.IsStart),e.writeInt(this.TimeOut),e.writeFloat(this.step)}_read(e){this.strip=e.readString(),this.strport=e.readString(),this.struser=e.readString(),this.strpwd=e.readString(),this.channel=e.readInt(),this.ctype=g.VideoControlType._read(e),this.IsStart=e.readBool(),this.TimeOut=e.readInt(),this.step=e.readFloat()}static get minWireSize(){return 18}},Pe.defineStruct(g.CameraIPControl,!1,!0),g.HistoryVideoT=class{constructor(e="",t="",i="",r=""){this.srcnumber=e,this.caramnumber=t,this.timestart=i,this.timeend=r}_write(e){e.writeString(this.srcnumber),e.writeString(this.caramnumber),e.writeString(this.timestart),e.writeString(this.timeend)}_read(e){this.srcnumber=e.readString(),this.caramnumber=e.readString(),this.timestart=e.readString(),this.timeend=e.readString()}static get minWireSize(){return 4}},Pe.defineStruct(g.HistoryVideoT,!0,!0),g.HistoryVideoOperateT=class{constructor(e="",t="",i=0){this.cid=e,this.caramnumber=t,this.second=i}_write(e){e.writeString(this.cid),e.writeString(this.caramnumber),e.writeInt(this.second)}_read(e){this.cid=e.readString(),this.caramnumber=e.readString(),this.second=e.readInt()}static get minWireSize(){return 6}},Pe.defineStruct(g.HistoryVideoOperateT,!0,!0),g.HistoryVSpeedT=class{constructor(e="",t="",i=1){this.cid=e,this.caramnumber=t,this.speed=i}_write(e){e.writeString(this.cid),e.writeString(this.caramnumber),e.writeFloat(this.speed)}_read(e){this.cid=e.readString(),this.caramnumber=e.readString(),this.speed=e.readFloat()}static get minWireSize(){return 6}},Pe.defineStruct(g.HistoryVSpeedT,!1,!0),g.PlayHistoryVideoRT=class{constructor(e="",t="",i=""){this.cid=e,this.caramnumber=t,this.msg=i}_write(e){e.writeString(this.cid),e.writeString(this.caramnumber),e.writeString(this.msg)}_read(e){this.cid=e.readString(),this.caramnumber=e.readString(),this.msg=e.readString()}static get minWireSize(){return 3}},Pe.defineStruct(g.PlayHistoryVideoRT,!0,!0),g.SipPhoneVideoBugT=class{constructor(e="",t="",i=""){this.called=e,this.caller=t,this.codec=i}_write(e){e.writeString(this.called),e.writeString(this.caller),e.writeString(this.codec)}_read(e){this.called=e.readString(),this.caller=e.readString(),this.codec=e.readString()}static get minWireSize(){return 3}},Pe.defineStruct(g.SipPhoneVideoBugT,!0,!0),g.SipPhoneVideoBugRT=class{constructor(e="",t="",i=""){this.cid=e,this.empid=t,this.sessnum=i}_write(e){e.writeString(this.cid),e.writeString(this.empid),e.writeString(this.sessnum)}_read(e){this.cid=e.readString(),this.empid=e.readString(),this.sessnum=e.readString()}static get minWireSize(){return 3}},Pe.defineStruct(g.SipPhoneVideoBugRT,!0,!0);g.VideoOP=class extends t.Ice.Object{},g.VideoOPPrx=class extends t.Ice.ObjectPrx{},Pe.defineOperations(g.VideoOP,g.VideoOPPrx,["::Dispatcher::VideoOP","::Ice::Object"],0,{IFCReqStartVideoBug:[,,,,[g.VideoBugStartRT],[[g.Identity],[g.VideoBugStartT]],,[g.Error],,],IFCReqStopVideoBug:[,,,,[g.VideoBugEndRT],[[g.Identity],[g.VideoBugEndT]],,[g.Error],,],IFCReqPlayVideo:[,,,,[g.PlayVideoRT],[[g.Identity],[g.PlayVideoT]],,[g.Error],,],IFCReqGetVideoInfo:[,,,,[g.VideoInfoRT],[[g.Identity],[g.VideoInfoT]],,[g.Error],,],IFCReqGetVideoInfo2:[,,,,[g.VideoInfoRT1],[[g.Identity],[g.VideoInfoT]],,[g.Error],,],IFCReqCameraControlByNumber:[,,,,,[[g.Identity],[g.CameraNumberControl]],,[g.Error],,],IFCReqCameraControlByIP:[,,,,,[[g.Identity],[g.CameraIPControl]],,[g.Error],,],IFCReqGetHistoryVideo:[,,,,,[[g.Identity],[g.HistoryVideoT]],,[g.Error],,],IFCReqPlayHistoryVideo:[,,,,[g.PlayHistoryVideoRT],[[g.Identity],[g.HistoryVideoT]],,[g.Error],,],IFCReqHistoryVideoPlay:[,,,,,[[g.Identity],[g.HistoryVideoOperateT]],,[g.Error],,],IFCReqHistoryVideoPause:[,,,,,[[g.Identity],[g.HistoryVideoOperateT]],,[g.Error],,],IFCReqHistoryVideoSpeed:[,,,,,[[g.Identity],[g.HistoryVSpeedT]],,[g.Error],,],IFCReqPhoneVideoBug:[,,,,[g.SipPhoneVideoBugRT],[[g.Identity],[g.SipPhoneVideoBugT]],,[g.Error],,]});t.Ice._ModuleRegistry;const De=t.Ice.Slice;g.MdsStateAgentMonitorSessionType=class{constructor(e="",t=""){this.sid=e,this.employeeid=t}_write(e){e.writeString(this.sid),e.writeString(this.employeeid)}_read(e){this.sid=e.readString(),this.employeeid=e.readString()}static get minWireSize(){return 2}},De.defineStruct(g.MdsStateAgentMonitorSessionType,!0,!0),g.MdsStateAgentMonitorSessionElem=class{constructor(e="",t="",i="",r=0,s="",n=0,a=""){this.cid=e,this.caller=t,this.called=i,this.type=r,this.time=s,this.level=n,this.state=a}_write(e){e.writeString(this.cid),e.writeString(this.caller),e.writeString(this.called),e.writeInt(this.type),e.writeString(this.time),e.writeInt(this.level),e.writeString(this.state)}_read(e){this.cid=e.readString(),this.caller=e.readString(),this.called=e.readString(),this.type=e.readInt(),this.time=e.readString(),this.level=e.readInt(),this.state=e.readString()}static get minWireSize(){return 13}},De.defineStruct(g.MdsStateAgentMonitorSessionElem,!0,!0),De.defineSequence(g,"MdsStateAgentMonitorSessionSeqHelper","Dispatcher.MdsStateAgentMonitorSessionElem",!1),g.MdsStateAgentMonitorSessionRType=class{constructor(e="",t=null){this.sid=e,this.sseq=t}_write(e){e.writeString(this.sid),g.MdsStateAgentMonitorSessionSeqHelper.write(e,this.sseq)}_read(e){this.sid=e.readString(),this.sseq=g.MdsStateAgentMonitorSessionSeqHelper.read(e)}static get minWireSize(){return 2}},De.defineStruct(g.MdsStateAgentMonitorSessionRType,!0,!0),g.MdsStateAgentMonitorDeviceType=class{constructor(e="",t="",i="",r=0){this.sid=e,this.employeeid=t,this.employeename=i,this.type=r}_write(e){e.writeString(this.sid),e.writeString(this.employeeid),e.writeString(this.employeename),e.writeInt(this.type)}_read(e){this.sid=e.readString(),this.employeeid=e.readString(),this.employeename=e.readString(),this.type=e.readInt()}static get minWireSize(){return 7}},De.defineStruct(g.MdsStateAgentMonitorDeviceType,!0,!0),g.MdsStateAgentMonitorDeviceElem=class{constructor(e="",t="",i=0){this.employeename=e,this.employeeid=t,this.type=i}_write(e){e.writeString(this.employeename),e.writeString(this.employeeid),e.writeInt(this.type)}_read(e){this.employeename=e.readString(),this.employeeid=e.readString(),this.type=e.readInt()}static get minWireSize(){return 6}},De.defineStruct(g.MdsStateAgentMonitorDeviceElem,!0,!0),De.defineSequence(g,"MdsStateAgentMonitorDeviceSeqHelper","Dispatcher.MdsStateAgentMonitorDeviceElem",!1),g.MdsStateAgentMonitorDeviceRType=class{constructor(e="",t=null){this.sid=e,this.dseq=t}_write(e){e.writeString(this.sid),g.MdsStateAgentMonitorDeviceSeqHelper.write(e,this.dseq)}_read(e){this.sid=e.readString(),this.dseq=g.MdsStateAgentMonitorDeviceSeqHelper.read(e)}static get minWireSize(){return 2}},De.defineStruct(g.MdsStateAgentMonitorDeviceRType,!0,!0),g.MdsSessionAgentSetNightServiceType=class{constructor(e="",t="",i="",r="",s=""){this.sid=e,this.employeeid=t,this.nightnumber=i,this.starttime=r,this.endtime=s}_write(e){e.writeString(this.sid),e.writeString(this.employeeid),e.writeString(this.nightnumber),e.writeString(this.starttime),e.writeString(this.endtime)}_read(e){this.sid=e.readString(),this.employeeid=e.readString(),this.nightnumber=e.readString(),this.starttime=e.readString(),this.endtime=e.readString()}static get minWireSize(){return 5}},De.defineStruct(g.MdsSessionAgentSetNightServiceType,!0,!0),g.MdsSessionAgentSetNightServiceRsType=class{constructor(e=""){this.sid=e}_write(e){e.writeString(this.sid)}_read(e){this.sid=e.readString()}static get minWireSize(){return 1}},De.defineStruct(g.MdsSessionAgentSetNightServiceRsType,!0,!0),g.MdsSessionAgentSetNightServiceReType=class{constructor(e="",t=0,i=""){this.sid=e,this.errid=t,this.dis=i}_write(e){e.writeString(this.sid),e.writeInt(this.errid),e.writeString(this.dis)}_read(e){this.sid=e.readString(),this.errid=e.readInt(),this.dis=e.readString()}static get minWireSize(){return 6}},De.defineStruct(g.MdsSessionAgentSetNightServiceReType,!0,!0),g.MdsDataAgentGetConfigType=class{constructor(e="",t=""){this.sid=e,this.employeeid=t}_write(e){e.writeString(this.sid),e.writeString(this.employeeid)}_read(e){this.sid=e.readString(),this.employeeid=e.readString()}static get minWireSize(){return 2}},De.defineStruct(g.MdsDataAgentGetConfigType,!0,!0),g.MdsDataAgentGetConfigRType=class{constructor(e="",t="",i="",r="",s="",n="",a=""){this.sid=e,this.databasetype=t,this.databasename=i,this.databaseuser=r,this.databasepwd=s,this.databaseip=n,this.databaseport=a}_write(e){e.writeString(this.sid),e.writeString(this.databasetype),e.writeString(this.databasename),e.writeString(this.databaseuser),e.writeString(this.databasepwd),e.writeString(this.databaseip),e.writeString(this.databaseport)}_read(e){this.sid=e.readString(),this.databasetype=e.readString(),this.databasename=e.readString(),this.databaseuser=e.readString(),this.databasepwd=e.readString(),this.databaseip=e.readString(),this.databaseport=e.readString()}static get minWireSize(){return 7}},De.defineStruct(g.MdsDataAgentGetConfigRType,!0,!0),g.MdsDataAgentDatachangeType=class{constructor(e=0){this.a=e}_write(e){e.writeInt(this.a)}_read(e){this.a=e.readInt()}static get minWireSize(){return 4}},De.defineStruct(g.MdsDataAgentDatachangeType,!0,!1),g.MdsDataAgentGetDataType=class{constructor(e="",t=""){this.sid=e,this.tablename=t}_write(e){e.writeString(this.sid),e.writeString(this.tablename)}_read(e){this.sid=e.readString(),this.tablename=e.readString()}static get minWireSize(){return 2}},De.defineStruct(g.MdsDataAgentGetDataType,!0,!0),g.MdsDataAgentGetTerminalVideoIpType=class{constructor(e="",t=""){this.sid=e,this.employeeid=t}_write(e){e.writeString(this.sid),e.writeString(this.employeeid)}_read(e){this.sid=e.readString(),this.employeeid=e.readString()}static get minWireSize(){return 2}},De.defineStruct(g.MdsDataAgentGetTerminalVideoIpType,!0,!0),g.MdsDataAgentGetTerminalVideoIpRType=class{constructor(e="",t="",i=""){this.sid=e,this.employeeid=t,this.videoip=i}_write(e){e.writeString(this.sid),e.writeString(this.employeeid),e.writeString(this.videoip)}_read(e){this.sid=e.readString(),this.employeeid=e.readString(),this.videoip=e.readString()}static get minWireSize(){return 3}},De.defineStruct(g.MdsDataAgentGetTerminalVideoIpRType,!0,!0),g.BindTerminalT=class{constructor(e="",t=0){this.number=e,this.type=t}_write(e){e.writeString(this.number),e.writeInt(this.type)}_read(e){this.number=e.readString(),this.type=e.readInt()}static get minWireSize(){return 5}},De.defineStruct(g.BindTerminalT,!0,!0),De.defineSequence(g,"BindTerminalSeqHelper","Dispatcher.BindTerminalT",!1),g.BindTerminalRT=class{constructor(e=""){this.ret=e}_write(e){e.writeString(this.ret)}_read(e){this.ret=e.readString()}static get minWireSize(){return 1}},De.defineStruct(g.BindTerminalRT,!0,!0),g.AllStateT=class{constructor(e="",t="",i=""){this.type=e,this.group=t,this.employeeid=i}_write(e){e.writeString(this.type),e.writeString(this.group),e.writeString(this.employeeid)}_read(e){this.type=e.readString(),this.group=e.readString(),this.employeeid=e.readString()}static get minWireSize(){return 3}},De.defineStruct(g.AllStateT,!0,!0),g.AllStateRT=class{constructor(e="",t=g.RegisterState.RegisterStateNone,i=g.CallState.CallStateNone,r="",s=""){this.employeeid=e,this.rstate=t,this.cstate=i,this.othernumber=r,this.othername=s}_write(e){e.writeString(this.employeeid),g.RegisterState._write(e,this.rstate),g.CallState._write(e,this.cstate),e.writeString(this.othernumber),e.writeString(this.othername)}_read(e){this.employeeid=e.readString(),this.rstate=g.RegisterState._read(e),this.cstate=g.CallState._read(e),this.othernumber=e.readString(),this.othername=e.readString()}static get minWireSize(){return 5}},De.defineStruct(g.AllStateRT,!0,!0),De.defineSequence(g,"AllStateRSeqHelper","Dispatcher.AllStateRT",!1),g.SetNightServiceT=class{constructor(e="",t="",i=""){this.nightnumber=e,this.starttime=t,this.endtime=i}_write(e){e.writeString(this.nightnumber),e.writeString(this.starttime),e.writeString(this.endtime)}_read(e){this.nightnumber=e.readString(),this.starttime=e.readString(),this.endtime=e.readString()}static get minWireSize(){return 3}},De.defineStruct(g.SetNightServiceT,!0,!0),g.SetNightServiceRT=class{constructor(e=""){this.dummy=e}_write(e){e.writeString(this.dummy)}_read(e){this.dummy=e.readString()}static get minWireSize(){return 1}},De.defineStruct(g.SetNightServiceRT,!0,!0),g.GetNightServiceRT=class{constructor(e="",t="",i=""){this.nightnumber=e,this.starttime=t,this.endtime=i}_write(e){e.writeString(this.nightnumber),e.writeString(this.starttime),e.writeString(this.endtime)}_read(e){this.nightnumber=e.readString(),this.starttime=e.readString(),this.endtime=e.readString()}static get minWireSize(){return 3}},De.defineStruct(g.GetNightServiceRT,!0,!0),g.GetNightServiceT=class{constructor(e=""){this.number=e}_write(e){e.writeString(this.number)}_read(e){this.number=e.readString()}static get minWireSize(){return 1}},De.defineStruct(g.GetNightServiceT,!0,!0),g.TerminalDetailT=class{constructor(e=""){this.number=e}_write(e){e.writeString(this.number)}_read(e){this.number=e.readString()}static get minWireSize(){return 1}},De.defineStruct(g.TerminalDetailT,!0,!0),g.TerminalDetailRT=class{constructor(e=0,t="",i="",r=0,s=0,n=0,a="",o="",h="",d=0,c=0,l="",g=0,u=0,p=0,m="",S="",f="",I=0,T="",w=0){this.id=e,this.employeeId=t,this.password=i,this.employeeLevel=r,this.departId=s,this.roleId=n,this.name=a,this.addTime=o,this.modifyTime=h,this.theState=d,this.theType=c,this.remark=l,this.latitude=g,this.longitude=u,this.isRecord=p,this.monName=m,this.monPasswd=S,this.monIp=f,this.monPort=I,this.monFlag=T,this.isVideo=w}_write(e){e.writeInt(this.id),e.writeString(this.employeeId),e.writeString(this.password),e.writeInt(this.employeeLevel),e.writeInt(this.departId),e.writeInt(this.roleId),e.writeString(this.name),e.writeString(this.addTime),e.writeString(this.modifyTime),e.writeInt(this.theState),e.writeInt(this.theType),e.writeString(this.remark),e.writeDouble(this.latitude),e.writeDouble(this.longitude),e.writeInt(this.isRecord),e.writeString(this.monName),e.writeString(this.monPasswd),e.writeString(this.monIp),e.writeInt(this.monPort),e.writeString(this.monFlag),e.writeInt(this.isVideo)}_read(e){this.id=e.readInt(),this.employeeId=e.readString(),this.password=e.readString(),this.employeeLevel=e.readInt(),this.departId=e.readInt(),this.roleId=e.readInt(),this.name=e.readString(),this.addTime=e.readString(),this.modifyTime=e.readString(),this.theState=e.readInt(),this.theType=e.readInt(),this.remark=e.readString(),this.latitude=e.readDouble(),this.longitude=e.readDouble(),this.isRecord=e.readInt(),this.monName=e.readString(),this.monPasswd=e.readString(),this.monIp=e.readString(),this.monPort=e.readInt(),this.monFlag=e.readString(),this.isVideo=e.readInt()}static get minWireSize(){return 62}},De.defineStruct(g.TerminalDetailRT,!1,!0),g.GetSessionEventT=class{constructor(e=""){this.dummy=e}_write(e){e.writeString(this.dummy)}_read(e){this.dummy=e.readString()}static get minWireSize(){return 1}},De.defineStruct(g.GetSessionEventT,!0,!0);g.IFCSrv=class extends t.Ice.Object{static get _iceImplements(){return[g.CommSrv,g.RegisterOP,g.CallingOP,g.ConfigureOP,g.VideoOP,g.GisOP,g.PttOP,g.MessageOP,g.CallingVOP,g.PrePlanOP,g.FaxOP,g.DecoderOP,g.McuOP,g.PublishOP,g.BusinessOP,g.RailWayOP]}},g.IFCSrvPrx=class extends t.Ice.ObjectPrx{static get _implements(){return[g.CommSrvPrx,g.RegisterOPPrx,g.CallingOPPrx,g.ConfigureOPPrx,g.VideoOPPrx,g.GisOPPrx,g.PttOPPrx,g.MessageOPPrx,g.CallingVOPPrx,g.PrePlanOPPrx,g.FaxOPPrx,g.DecoderOPPrx,g.McuOPPrx,g.PublishOPPrx,g.BusinessOPPrx,g.RailWayOPPrx]}},De.defineOperations(g.IFCSrv,g.IFCSrvPrx,["::Dispatcher::BusinessOP","::Dispatcher::CallingOP","::Dispatcher::CallingVOP","::Dispatcher::CommSrv","::Dispatcher::ConfigureOP","::Dispatcher::DecoderOP","::Dispatcher::FaxOP","::Dispatcher::FileOP","::Dispatcher::GisOP","::Dispatcher::IFCSrv","::Dispatcher::McuOP","::Dispatcher::MessageOP","::Dispatcher::PrePlanOP","::Dispatcher::PttOP","::Dispatcher::PublishOP","::Dispatcher::RailWayOP","::Dispatcher::RegisterOP","::Dispatcher::VideoOP","::Ice::Object"],9,{IFCReqBindNumber:[,,,,[g.BindTerminalRT],[[g.Identity],["Dispatcher.BindTerminalSeqHelper"]],,[g.Error],,],IFCReqGetAllState:[,,,,["Dispatcher.AllStateRSeqHelper"],[[g.Identity],[g.AllStateT]],,[g.Error],,],IFCReqSetNightService:[,,,,[g.SetNightServiceRT],[[g.Identity],[g.SetNightServiceT]],,[g.Error],,],IFCReqSetNightServiceByJson:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqGetNightService:[,,,,[g.GetNightServiceRT],[[g.Identity],[g.GetNightServiceT]],,[g.Error],,],IFCReqGetUserDetail:[,,,,[g.TerminalDetailRT],[[g.Identity],[g.TerminalDetailT]],,[g.Error],,],IFCReqGetUserDetailByJson:[,,,,[7],[[g.Identity],[7]],,[g.Error],,],IFCReqGetSessionEvt:[,2,2,,,[[g.Identity],[g.GetSessionEventT]],,,,],IFCReqGetUserConfig:[,2,2,,,[[7],[g.MdsDataAgentGetConfigType]],,,,],IFCReqDataChange:[,2,2,,,[[7],[g.MdsDataAgentDatachangeType]],,,,],IFCReqMonitorSession:[,2,2,,,[[7],[g.MdsStateAgentMonitorSessionType]],,,,],IFCReqMonitorDevice:[,2,2,,,[[7],[g.MdsStateAgentMonitorDeviceType]],,,,],IFCReqAgentGetUserVideoIP:[,2,2,,,[[7],[g.MdsDataAgentGetTerminalVideoIpType]],,,,]});g.MDCCli=class extends t.Ice.Object{static get _iceImplements(){return[g.CommCli,g.RegisterCB,g.CallingCB,g.ConfigureCB,g.VideoCB,g.GisCB,g.PttCB,g.MessageCB,g.CallingVCB,g.PrePlanCB,g.FaxCB,g.StateCB,g.DecoderCB,g.McuCB,g.PublishCB]}},g.MDCCliPrx=class extends t.Ice.ObjectPrx{static get _implements(){return[g.CommCliPrx,g.RegisterCBPrx,g.CallingCBPrx,g.ConfigureCBPrx,g.VideoCBPrx,g.GisCBPrx,g.PttCBPrx,g.MessageCBPrx,g.CallingVCBPrx,g.PrePlanCBPrx,g.FaxCBPrx,g.StateCBPrx,g.DecoderCBPrx,g.McuCBPrx,g.PublishCBPrx]}},De.defineOperations(g.MDCCli,g.MDCCliPrx,["::Dispatcher::CallingCB","::Dispatcher::CallingVCB","::Dispatcher::CommCli","::Dispatcher::ConfigureCB","::Dispatcher::DecoderCB","::Dispatcher::FaxCB","::Dispatcher::FileCB","::Dispatcher::GisCB","::Dispatcher::MDCCli","::Dispatcher::McuCB","::Dispatcher::MessageCB","::Dispatcher::PrePlanCB","::Dispatcher::PttCB","::Dispatcher::PublishCB","::Dispatcher::RegisterCB","::Dispatcher::StateCB","::Dispatcher::VideoCB","::Ice::Object"],8);t.Ice._ModuleRegistry;const Me=t.Ice.Slice;var Oe,Ae,xe,qe,Ne,Fe;g.MobileOP=class extends t.Ice.Object{static get _iceImplements(){return[g.RegisterOP,g.PttOP,g.VideoOP,g.CallingOP,g.MessageOP,g.GisOP,g.CallingVOP,g.ConfigureOP]}},g.MobileOPPrx=class extends t.Ice.ObjectPrx{static get _implements(){return[g.RegisterOPPrx,g.PttOPPrx,g.VideoOPPrx,g.CallingOPPrx,g.MessageOPPrx,g.GisOPPrx,g.CallingVOPPrx,g.ConfigureOPPrx]}},Me.defineOperations(g.MobileOP,g.MobileOPPrx,["::Dispatcher::CallingOP","::Dispatcher::CallingVOP","::Dispatcher::ConfigureOP","::Dispatcher::FileOP","::Dispatcher::GisOP","::Dispatcher::MessageOP","::Dispatcher::MobileOP","::Dispatcher::PttOP","::Dispatcher::RegisterOP","::Dispatcher::VideoOP","::Ice::Object"],6),function(e){e[e.Normal=0]="Normal",e[e.PTT=1]="PTT"}(Oe||(Oe={}));class He{constructor(){this.enable=!0}static getInstance(){return null==He.sInstance&&(He.sInstance=new He),He.sInstance}log(e){this.enable&&console.log(e)}warn(e){this.enable&&console.warn(e)}error(e){this.enable&&console.error(e)}}He.sInstance=null;class ke{constructor(){this.handleMode=e.HandleMode.Normal,this.audioInputDeviceConfig={id:""},this.videoInputDeviceConfig={id:"",width:0,height:0,frameRate:100}}static getInstance(){return null==ke.s_instance&&(ke.s_instance=new ke),ke.s_instance}get currentNumber(){switch(this.handleMode){case e.HandleMode.Left:return this.leftPhone;case e.HandleMode.Right:return this.rightPhone}return this.number}}!function(e){e[e.None=0]="None",e[e.Dispatcher=1]="Dispatcher",e[e.APP=2]="APP",e[e.SIP=3]="SIP",e[e.Monitor=4]="Monitor",e[e.Phone=5]="Phone",e[e.OutLine=6]="OutLine",e[e.MonitorDevice=7]="MonitorDevice",e[e.handHeld=8]="handHeld",e[e.VideoMeetingDevice=9]="VideoMeetingDevice",e[e.StationGroup=10]="StationGroup",e[e.StationUser=11]="StationUser",e[e.RelayGateway=14]="RelayGateway",e[e.MCUReg=15]="MCUReg",e[e.NarrowIntercom=16]="NarrowIntercom",e[e.Wade=17]="Wade",e[e.OutlineCar=18]="OutlineCar",e[e.TianTong=20]="TianTong",e[e.MeshDevice=21]="MeshDevice",e[e.OutlineDispatch=100]="OutlineDispatch",e[e.OutlineHandHeld=101]="OutlineHandHeld",e[e.OutlineCommonUser=102]="OutlineCommonUser",e[e.OutlineMonitorUser=104]="OutlineMonitorUser",e[e.OutlineSsu=105]="OutlineSsu",e[e.OutlineMonitorDevice=107]="OutlineMonitorDevice",e[e.OutlineMonitorPhone=110]="OutlineMonitorPhone",e[e.OutlineTelePhone=111]="OutlineTelePhone",e[e.Outline3ghandheld=106]="Outline3ghandheld"}(Ae||(Ae={})),function(e){e[e.None=0]="None",e[e.Init=1]="Init",e[e.Normal=2]="Normal",e[e.Callout=3]="Callout",e[e.Incoming=4]="Incoming",e[e.Ringing=5]="Ringing",e[e.Connect=6]="Connect",e[e.Hold=7]="Hold",e[e.Busy=8]="Busy",e[e.Offhook=9]="Offhook",e[e.Release=10]="Release",e[e.Unspeak=11]="Unspeak",e[e.Speak=12]="Speak",e[e.Queue=13]="Queue",e[e.Unhold=14]="Unhold",e[e.Zombie=15]="Zombie"}(xe||(xe={})),function(e){e[e.None=0]="None",e[e.Single=1]="Single",e[e.Group=2]="Group",e[e.Report=3]="Report",e[e.Broadcast=4]="Broadcast",e[e.Conference=5]="Conference",e[e.Interpose=6]="Interpose",e[e.Forceremove=7]="Forceremove",e[e.Monitor=8]="Monitor",e[e.Switch=9]="Switch",e[e.Urgent=10]="Urgent",e[e.Intercom=11]="Intercom",e[e.Tempintercom=12]="Tempintercom",e[e.VideoBug=13]="VideoBug",e[e.MCUMetting=14]="MCUMetting",e[e.SOS=15]="SOS",e[e.TransferVideo=16]="TransferVideo",e[e.TransferVideoToMCU=17]="TransferVideoToMCU"}(qe||(qe={}));class $e{constructor(){const t={number:"0",otherNumber:"0",otherName:"0",callType:qe.None,state:xe.None};this.state={registState:e.RegistState.Unregisted,callState:t}}}!function(e){e[e.regStateChange=0]="regStateChange",e[e.CallStateChange=1]="CallStateChange",e[e.SessionStateChange=2]="SessionStateChange",e[e.ServerDisconnect=3]="ServerDisconnect",e[e.ServerConnectd=4]="ServerConnectd",e[e.SessionMemberChange=5]="SessionMemberChange",e[e.PttStateSpeaker=6]="PttStateSpeaker",e[e.GisInfo=7]="GisInfo",e[e.MsgReceived=8]="MsgReceived",e[e.FileMsgReceived=9]="FileMsgReceived",e[e.SessionSendToCreaterState=10]="SessionSendToCreaterState"}(Ne||(Ne={})),function(e){e[e.nUnavailable=0]="nUnavailable",e[e.nDisconnect=1]="nDisconnect",e[e.nConnected=2]="nConnected",e[e.nPublished=3]="nPublished"}(Fe||(Fe={}));class Ve extends g.MDCCli{constructor(){super(...arguments),this._logger=He.getInstance(),this._lasthbTime=0}onPrePlanEv(e,t){throw new Error("Method not implemented.")}IFCNotifyForceLogout(e,t){throw new Error("Method not implemented.")}IFCNotifySessionStateEvt(e,t){throw new Error("Method not implemented.")}IFCNotifySessionStateEvt2(e,t){throw new Error("Method not implemented.")}IFCNotifyConfMemberStateEvt(e,t){throw new Error("Method not implemented.")}IFCNotifyCallStateEvt(e,t){throw new Error("Method not implemented.")}IFCNotifyAudioPlayStateEvt(e,t){}IFCNotifyVideoBugEvt(e,t){}IFCNotifyVideoBugEvt2(e,t){}IFCNotifyPlayVideoEvt(e,t){throw new Error("Method not implemented.")}IFCNotifyGisInfoEvt(e,t){throw new Error("Method not implemented.")}IFCNotifyGisInfoEvt2(e,t){throw new Error("Method not implemented.")}IFCNotifyPhoneMsgEvt(e,t){throw new Error("Method not implemented.")}IFCNotifyGroupInfoEvt(e,t){throw new Error("Method not implemented.")}IFCNotifyReqRightResultEvt(e,t){throw new Error("Method not implemented.")}IFCNotifyUploadEvt(e,t){throw new Error("Method not implemented.")}IFCNotifyDeleteFileEvt(e,t){throw new Error("Method not implemented.")}IFCNotifyMsgEvt(e,t){this._eventEmitter.emit(Ne.MsgReceived.toString(),JSON.stringify(e))}IFCNotifyMsgDelEvt(e,t){throw new Error("Method not implemented.")}IFCNotifySendVideoEvt(e,t){throw new Error("Method not implemented.")}IFCNotifyGetVideoEvt(e,t){throw new Error("Method not implemented.")}IFCNotifyFaxEvt(e,t){throw new Error("Method not implemented.")}IFCNotifyNewFaxEvt(e,t){throw new Error("Method not implemented.")}IFCNotifyUserStateEvt(e,t){throw new Error("Method not implemented.")}IFCNotifyPublishMsgEvt(t,i){var r="IFCNotifyPublishMsgEvt header: "+t.subHeader+", msg: "+t.subMsg;this._logger.log(r);let s=JSON.parse(t.subMsg);switch(t.subHeader){case"Employee.State.Reg":let i=e.RegistState.Unregisted;switch(s[0].state){case"1":i=e.RegistState.Registed;break;case"2":i=e.RegistState.Unregisted}this._eventEmitter.emit(Ne.regStateChange.toString(),s[0].employeeid,i);break;case"Employee.State.Call":let r=Ue.convertIceCallType(s[0].calltype),n=Ue.convertIceCallState(s[0].state);const a={number:s[0].enployeeid,otherNumber:s[0].othernumber,otherName:s[0].othername,callType:r,state:n};this._eventEmitter.emit(Ne.CallStateChange.toString(),s[0].employeeid,a)}}IFCNotifyFixMsgEvt(e,t){var i="IFCNotifyFixMsgEvt header: "+e.subHeader+", msg: "+e.subMsg;switch(this._logger.log(i),e.subHeader){case"Session.State.Change":this._eventEmitter.emit(Ne.SessionStateChange.toString(),e.subMsg);break;case"Session.Member.Change":this._eventEmitter.emit(Ne.SessionMemberChange.toString(),e.subMsg);break;case"Ptt.State.Speaker":this._eventEmitter.emit(Ne.PttStateSpeaker.toString(),e.subMsg);break;case"GIS.Position.Change":this._eventEmitter.emit(Ne.GisInfo.toString(),e.subMsg);break;case"FileMsg.OnReceive":this._eventEmitter.emit(Ne.FileMsgReceived.toString(),e.subMsg);break;case"Session.SendToCreater.State":this._eventEmitter.emit(Ne.SessionSendToCreaterState.toString(),e.subMsg)}}IFCNotifyPublishHBEvt(e,t){this._lasthbTime=Date.now()}get lasthbTime(){return 0==this._lasthbTime&&(this._lasthbTime=Date.now()),this._lasthbTime}}class Ue extends s{constructor(){super(),this._dispatcherPrx=null,this._caller="1000",this._iceStatus=Fe.nUnavailable,this._isCheckIceNetworck=!1,this._hbCount=0,this._logger=He.getInstance()}static getInstance(){return null==Ue.instance&&(Ue.instance=new Ue),Ue.instance}static convertIceCallState(e){let t=xe.None;switch(e){case"1":t=xe.Init;break;case"2":t=xe.Normal;break;case"3":t=xe.Callout;break;case"4":t=xe.Incoming;break;case"5":t=xe.Ringing;break;case"6":t=xe.Connect;break;case"7":t=xe.Hold;break;case"8":t=xe.Busy;break;case"9":t=xe.Offhook;break;case"10":t=xe.Release;break;case"11":t=xe.Unspeak;break;case"12":t=xe.Speak;break;case"13":t=xe.Queue;break;case"14":t=xe.Unhold;break;case"15":t=xe.Zombie}return t}static convertIceCallState1(e){let t=i.None;switch(e){case"1":t=i.Init;break;case"2":t=i.Normal;break;case"3":t=i.Callout;break;case"4":t=i.Incoming;break;case"5":t=i.Ringing;break;case"6":t=i.Connect;break;case"7":t=i.Hold;break;case"10":t=i.Release;break;case"14":t=i.Unhold}return t}static convertIceCallType(e){var t=qe.None;switch(e){case"1":t=qe.Single;break;case"2":t=qe.Group;break;case"3":t=qe.Report;break;case"4":t=qe.Broadcast;break;case"5":t=qe.Conference;break;case"6":case"7":t=qe.Interpose;break;case"8":t=qe.Monitor;break;case"9":t=qe.Intercom;break;case"10":t=qe.Switch;break;case"11":t=qe.Urgent;break;case"12":t=qe.Single;break;case"13":t=qe.Tempintercom;break;case"14":t=qe.VideoBug;break;case"15":t=qe.MCUMetting;break;case"16":t=qe.SOS;break;case"17":t=qe.TransferVideo;break;case"18":t=qe.TransferVideoToMCU}return t}iceInit(){const e=t.Ice.createProperties();e.setProperty("Ice.ACM.Close","0");const i=new t.Ice.InitializationData;i.properties=e,this._iceCommunicator=t.Ice.initialize(i),this._iceStatus=Fe.nDisconnect}async connect(){let e=this._iceCommunicator.stringToProxy("IFCSrv:wss -h "+this._serverIP+" -p "+this._serverPort);this._caller=this._username,e.ice_timeout(1e4);e=(e=e.ice_invocationTimeout(3e3)).ice_twoway(),this._dispatcherPrx=g.IFCSrvPrx.uncheckedCast(e);const i=await this._iceCommunicator.createObjectAdapter(""),r=new t.Ice.Identity(this._caller,"MDCCli");this._myid=new g.Identity(this._caller),this._myReceiver=new Ve,this._myReceiver._delegate=this._delegate,this._myReceiver._eventEmitter=this,i.add(this._myReceiver,r);try{(await this._dispatcherPrx.ice_getConnection()).setAdapter(i)}catch(e){return void this._logger.error("connect error: "+e)}this._iceStatus=Fe.nConnected}sendHeartBeat(){null!=this._dispatcherPrx&&this._iceStatus==Fe.nPublished&&this._dispatcherPrx.IFCReqPublishHB(this._myid,30)}publishInfo(){const e=new g.SubInfos;e.Infos=new Array;const t=new g.SubInfo;t.subHeader=g.EventPttStateSpeaker,e.Infos.push(t);const i=new g.SubInfo;i.subHeader=g.EventEmployeeStateReg,e.Infos.push(i);const r=new g.SubInfo;r.subHeader=g.EventEmployeeStateCall,e.Infos.push(r),this._dispatcherPrx.IFCReqPublishMsg(this._myid,e),this._iceStatus=Fe.nPublished,this.emit(Ne.ServerConnectd.toString())}checkIceNetwork(){if(null!=Ue.getInstance()._myReceiver){let e=Date.now()-Ue.getInstance()._myReceiver.lasthbTime;e>2e4&&(Ue.getInstance()._logger.warn("hbTimeout!!! lasthbTime:"+Ue.getInstance()._myReceiver.lasthbTime+", timeout: "+e),Ue.getInstance()._iceStatus=Fe.nDisconnect,Ue.getInstance().emit(Ne.ServerDisconnect.toString()))}Ue.getInstance()._iceStatus==Fe.nUnavailable&&Ue.getInstance().iceInit(),Ue.getInstance()._iceStatus==Fe.nDisconnect&&Ue.getInstance().connect(),Ue.getInstance()._iceStatus==Fe.nConnected&&Ue.getInstance().publishInfo(),Ue.getInstance().sendHeartBeat(),Ue.getInstance()._isCheckIceNetworck&&setTimeout(Ue.getInstance().checkIceNetwork,5e3)}regist(e,t,i,r){this._serverIP=e,this._serverPort=t,this._username=i,this._isCheckIceNetworck=!0,this._delegate=r,this.checkIceNetwork()}unRegist(){this._isCheckIceNetworck=!1;try{this._iceStatus==Fe.nPublished&&(this._dispatcherPrx.IFCReqUnpublishMsg(this._myid),this._iceStatus=Fe.nConnected),null!=this._dispatcherPrx&&(this._dispatcherPrx=null)}catch(e){this._logger.log(e)}this._iceStatus=Fe.nDisconnect}async getGroupTree(){const e=new g.TreeT;e.groupnum="",e.userId=this._caller;const t=await this._dispatcherPrx.IFCReqGetOrganization(this._myid,e);try{var i=JSON.stringify(t.roots);this._logger.log(i)}catch(e){}return""}getRootGroups(){const e=new g.TreeT;return e.groupnum="",e.userId=this._caller,this._dispatcherPrx.IFCReqGetOrganization(this._myid,e).then(e=>{var t=new Array;return e.roots.forEach(e=>{var i=this.convertICEGroup(e);t.push(i)}),Promise.resolve(t)})}getGroupWithUsersById(e){const t=new g.TreeT;return t.type=-1,t.groupnum=e,t.userId=this._caller,this._dispatcherPrx.IFCReqGetOrganization(this._myid,t).then(e=>{if(this._logger.log(JSON.stringify(e)),e.roots.length>0){let t=this.convertICEGroup(e.roots.pop());return Promise.resolve(t)}})}getLocalVideos(){let e=new g.TreeT;return e.type=7,e.userId=this._caller,this._dispatcherPrx.IFCReqGetLocalUserByType(this._myid,e).then(e=>{this._logger.warn("getlocalVideo: "+JSON.stringify(e));let t=new Array;return e.roots.forEach(e=>{this.getMonitorsByGroup(e).forEach(e=>{let i=!1;t.forEach(t=>{t.number==e.number&&(i=!0)}),i||t.push(e)})}),Promise.resolve(t)})}get28281Groups(){let e=new g.GetFXDeviceT;return e.getdetail=!1,this._dispatcherPrx.IFCReqGet28181Devices(this._myid,e).then(e=>{var t=new Array;return this._logger.log(JSON.stringify(e)),e.forEach(e=>{var i=Array();e.Orgs.forEach(e=>{var t=this.convertICE28281Group(e);i.push(t)});const r={id:e.id,name:e.name,subGroups:i};t.push(r),this._logger.log(e.name)}),Promise.resolve(t)})}getMonitors28281ByGroupId(e,t){var i=new g.GetFXDeviceDetailT;return i.fxDeviceid=e,i.orgid=t,this._dispatcherPrx.IFCReqGet28181DeviceDetail(this._myid,i).then(e=>{let t=Array();return e.forEach(e=>{e.Orgs.forEach(e=>{e.Numbers.forEach(e=>{const i={number:e.num,name:e.name};t.push(i)})})}),this._logger.log(JSON.stringify(e)),Promise.resolve(t)})}getMonitorsByGroup(e){let t=new Array;return e.user.forEach(e=>{let i={number:e.userid,name:e.username};t.push(i)}),e.group.forEach(e=>{this.getMonitorsByGroup(e).forEach(e=>{t.push(e)})}),t}convertICEGroup(t){var i=new Array;t.group.forEach(e=>{const t=this.convertICEGroup(e);i.push(t)});var r=new Array;t.user.forEach(t=>{let i=new $e;i.id=t.userid,i.name=t.username,i.number=t.userid;let s=Ae.None;switch(s=t.type,t.type){case 0:s=Ae.Dispatcher;break;case 1:s=Ae.handHeld;break;case 2:s=Ae.SIP;break;case 3:s=Ae.OutLine;break;case 4:s=Ae.Monitor;break;case 5:s=Ae.Phone;break;case 6:s=Ae.APP;case 8:s=Ae.None}i.type=s;let n=e.RegistState.Unregisted;switch(t.rstate){case g.RegisterState.RegisterStateLogin:n=e.RegistState.Registed;break;case g.RegisterState.RegisterStateLogout:n=e.RegistState.Unregisted}switch(t.type>=100&&(n=e.RegistState.Registed),s){case Ae.MonitorDevice:case Ae.VideoMeetingDevice:case Ae.OutLine:case Ae.Outline3ghandheld:case Ae.OutlineCommonUser:case Ae.OutlineDispatch:case Ae.OutlineHandHeld:case Ae.OutlineMonitorDevice:case Ae.OutlineMonitorPhone:case Ae.OutlineMonitorUser:case Ae.OutlineTelePhone:case Ae.NarrowIntercom:case Ae.Wade:case Ae.StationGroup:case Ae.StationUser:case Ae.MCUReg:case Ae.RelayGateway:n=e.RegistState.Registed}i.state.registState=n,i.state.callState.otherNumber=t.othernumber,i.state.callState.otherName=t.othername,i.state.callState.number=t.username,i.state.callState.state=Ue.convertIceCallState(t.cstate.value.toString()),r.push(i),this._logger.log(i.number)});let s=Oe.Normal;t.type==g.GroupType.GroupTypeIntercomgroup&&(s=Oe.PTT);const n={id:t.id.toString(),name:t.groupname,groupNumber:t.groupnum,level:t.level,type:s,subGroups:i,subUser:r};return this._logger.log(n.name),n}convertICE28281Group(e){var t=new Array;e.Orgs.forEach(e=>{const i=this.convertICE28281Group(e);t.push(i)});new Array;return{id:e.id.toString(),name:e.name,subGroups:t}}makecall(e,t){return this.makecall1(ke.getInstance().currentNumber,e,t)}makecallByLeftPhone(e,t){return this.makecall1(ke.getInstance().leftPhone,e,t)}makecallByRightPhone(e,t){return this.makecall1(ke.getInstance().rightPhone,e,t)}makecall1(e,t,i){try{const r=new g.CreateConfT;r.caller=e;const s=new g.CalleeT(t),n=new Array;return r.member=n,r.member.push(s),r.ctype=g.CallType.CallTypeSingle2,r.isVideo=i?g.MediaType.MediaTypeVideo:g.MediaType.MediaTypeAudio,this._dispatcherPrx.IFCReqCreateConf(this._myid,r).then(e=>(this._logger.log("IFCReqCreateConf: "+JSON.stringify(e)),Promise.resolve(e.cid))).catch(e=>Promise.reject(e))}catch(e){this._logger.log(e)}}createConference(e,t,i=this._caller){const r=new g.CreateConfT;r.caller=i;const s=new Array;return e.forEach(e=>{const t=new g.CalleeT(e);s.push(t)}),r.member=s,r.ctype=g.CallType.CallTypeTemporary,r.isVideo=t?g.MediaType.MediaTypeVideo:g.MediaType.MediaTypeAudio,r.sessname="MT"+Date.parse((new Date).toString()),r.sessnum=this._caller+Date.parse((new Date).toString()),this._dispatcherPrx.IFCReqCreateConf(this._myid,r)}startTempIntercom(e,t=this._caller){const i=new g.CreateConfT;i.caller=t;const r=new Array;return e.forEach(e=>{const t=new g.CalleeT(e);r.push(t)}),i.member=r,i.ctype=g.CallType.CallTypeTmpintercom,i.isVideo=g.MediaType.MediaTypeAudio,i.sessname="tmpIntercom"+Date.parse((new Date).toString()),i.sessnum=this._caller+Date.parse((new Date).toString()),this._dispatcherPrx.IFCReqCreateConf(this._myid,i)}startBroadcast(e,t=this._caller){const i=new g.CreateConfT;i.caller=t;const r=new Array;return e.forEach(e=>{const t=new g.CalleeT(e);r.push(t)}),i.member=r,i.ctype=g.CallType.CallTypeBroadcast,i.sessname="broadcast"+Date.parse((new Date).toString()),i.sessnum=this._caller+Date.parse((new Date).toString()),this._dispatcherPrx.IFCReqCreateConf(this._myid,i)}applySpeak(e,t=this._caller){const i=new g.PttReqRightT;return i.caller=t,i.groupnum=e,i.messageinfo="req:ptt_request_speak_right",this._dispatcherPrx.IFCReqApplyRight(this._myid,i)}releaseSpeak(e){const t=new g.PttReqRightT;return t.caller=this._caller,t.groupnum=e,t.messageinfo="req:ptt_cancle_speak_right",this._dispatcherPrx.IFCReqApplyRight(this._myid,t)}conferenceAddMember(e,t){try{const i=new g.AddMemberT;return i.cid=e,i.number=t,i.astype=g.AnswerType.AnswerTypeMan,this._dispatcherPrx.IFCReqAddMember(this._myid,i)}catch(e){this._logger.log(e)}}async conferenceDeleteMember(e,t){try{const i=new g.DelMemberT;i.cid=e,i.number=t,await this._dispatcherPrx.IFCReqDelMember(this._myid,i)}catch(e){this._logger.log(e)}}endConference(e){const t=new g.ForceEndConfeT;return t.cid=e,this._dispatcherPrx.IFCReqEndConf(this._myid,t)}conferenceGetVideo(e,t){try{let i='{"sid":"bob","cid":"'+e+'","recv_id":"'+this._caller+'","ip":"","port":"","source_id":"'+t+'","codec":"","stream":"","framerate":"","agentid":"'+this._caller+'"}';return this._dispatcherPrx.IFCReqWebrtcGetVideo(this._myid,i)}catch(e){this._logger.log(e.toString())}}conferencePushMember(e,t){const i=new g.PushVideoT;return i.cid=e,i.employeeid=t,i.IsPush=g.PushVideoType.PushVideoTypePush,this._dispatcherPrx.IFCReqPushVideo(this._myid,i)}startAttended(e){let t={nightnumber:e,starttime:"",endtime:""};return this._dispatcherPrx.IFCReqSetNightServiceByJson(this._myid,JSON.stringify(t))}getUnattendedState(){let e={number:ke.getInstance().number};return this._dispatcherPrx.IFCReqGetUserDetailByJson(this._myid,JSON.stringify(e)).then(e=>{let t=JSON.parse(e).nightnumber;return Promise.resolve(t)}).catch(e=>(null==e&&(e={error:"unkown"}),Promise.reject(e)))}bindPhoneHandle(e,t){let i=new Array,r=new g.BindTerminalT;r.number=this._caller,i.push(r);let s=new g.BindTerminalT;s.number=e,i.push(s);let n=new g.BindTerminalT;return n.number=t,i.push(n),this._dispatcherPrx.IFCReqBindNumber(this._myid,i)}switch(e,t,i){let r=new g.CallCommonT;return r.cid=e,r.caller=t,r.called=i,this._dispatcherPrx.IFCReqCallTransfer(this._myid,r)}SubsituteCall(e,t){let i=new g.CallCommonT;return i.cid=t,i.caller=this._caller,i.called=e,this._dispatcherPrx.IFCReqCallPickup(this._myid,i)}transferVideo(e,t,i){let r=new g.TransferVideoT;r.srccid=e,r.srcnumber=t;let s=new Array;return i.forEach(e=>{let t=new g.OrderCalledT;t.called=e;let i=new g.OrderDetailT;i.number=e,i.index=1,i.ringtime=30,t.details=new Array,t.details.push(i),s.push(t)}),r.calleds=s,this._dispatcherPrx.IFCReqTransferVideo(this._myid,r)}getUserDetail(){let e=new g.TerminalDetailT(this._caller);return this._dispatcherPrx.IFCReqGetUserDetail(this._myid,e)}getUserDetailByNumber(e){let t=new g.TerminalDetailT(e);return this._dispatcherPrx.IFCReqGetUserDetail(this._myid,t)}getUserDetailByNumber1(e){let t={number:e};return this._dispatcherPrx.IFCReqGetUserDetailByJson(this._myid,JSON.stringify(t))}getConfMembers(e){let t=new g.AllCallMemberT;return t.cid=e,this._dispatcherPrx.IFCReqGetAllMember1(this._myid,t)}forceInterposeCall(e,t){let i=new g.CallCommonT;return i.called=t,i.caller=ke.getInstance().currentNumber,i.cid=e,this._dispatcherPrx.IFCReqForceInsert(this._myid,i)}forceRemoveOther(e,t){let i=new g.CallCommonT;return i.called=t,i.caller=ke.getInstance().currentNumber,i.cid=e,this._dispatcherPrx.IFCReqForceDemolition(this._myid,i)}forceRemoveCall(e,t){let i=new g.CallCommonT;return i.called=t,i.caller=this._caller,i.cid=e,this._dispatcherPrx.IFCReqForceBreak(this._myid,i)}MonitorCall(e,t){let i=new g.CallCommonT;return i.called=t,i.caller=this._caller,i.cid=e,this._dispatcherPrx.IFCReqMonitor(this._myid,i)}GetUserSessions(e){let t=new g.GetAllSession1T;return t.employeeid=e,t.cType=g.CallType.CallTypeNone,this._dispatcherPrx.IFCReqGetAllSessions2(this._myid,t)}allowSpeak(e,t,i){let r=new g.SpeakerT;r.employeeid=t,r.cid=e;let s=g.SpeakType.SpeakTypeUnmute;return s=i?g.SpeakType.SpeakTypeUnmute:g.SpeakType.SpeakTypeMute,r.speakertypea=s,this._dispatcherPrx.IFCReqForbiddenTalk(this._myid,r)}allowListen(e,t,i){let r=new g.HearT;r.number=t,r.cid=e;let s=g.HearType.HearTypeUnmute;return s=i?g.HearType.HearTypeUnmute:g.HearType.HearTypeMute,r.hear=s,this._dispatcherPrx.IFCReqForbiddenHear(this._myid,r)}muteLocalMic(e,t,i){const r=new g.MuteLocalTrackT;return r.cid=e,r.number=t,r.mute=i,this._dispatcherPrx.IFCReqMuteLocalMic(this._myid,r)}muteLocalCamera(e,t,i){const r=new g.MuteLocalTrackT;return r.cid=e,r.number=t,r.mute=i,this._dispatcherPrx.IFCReqMuteLocalCamera(this._myid,r)}hold(e){let t=new g.PushCallToQueueT;return t.cid=e,this._dispatcherPrx.IFCReqPushCallToQueue(this._myid,t)}unHold(e){let t=new g.PullQueueCallT;return t.cid=e,t.caller=this._caller,this._dispatcherPrx.IFCReqPullCallFromQueue(this._myid,t)}PTZMoveY(e,t,i,r){return this.PTZMove(e,g.VideoControlType.VideoControlTypeY,t,i,r)}PTZMoveX(e,t,i,r){return this.PTZMove(e,g.VideoControlType.VideoControlTypeX,t,i,r)}PTZZoom(e,t,i,r){return this.PTZMove(e,g.VideoControlType.VideoControlTypeZoom,t,i,r)}PTZMoveLR(e,t,i,r){return this.PTZMove(e,g.VideoControlType.VideoControlTypeLR,t,i,r)}PTZFocus(e,t,i,r){return this.PTZMove(e,g.VideoControlType.VideoControlTypeFocus,t,i,r)}PTZMove(e,t,i,r,s){let n=new g.CameraNumberControl;return n.number=e,n.TimeOut=s,n.IsStart=r,n.step=i,n.ctype=t,this._dispatcherPrx.IFCReqCameraControlByNumber(this._myid,n)}SipPhoneVideoBug(e,t,i){let r=new g.SipPhoneVideoBugT;r.called=e,r.caller=this._caller;let s="*7*";return s+=t?"1":"2",s+="0",s+=i?"1":"2",r.codec=s,this._dispatcherPrx.IFCReqPhoneVideoBug(this._myid,r)}getDecoderDevices(){return this._dispatcherPrx.IFCReqGetDecoderDevice(this._myid)}getDecoderDeviceConfig(e){let t=new g.GetDisplayCfg;return t.Decoderid=e,this._dispatcherPrx.IFCReqGetDisplayConfig2(this._myid,t)}getDecoderChannelState(e,t){let i=new g.opChannelStatus;return i.Decoderid=e,i.Channel=t,this._dispatcherPrx.IFCReqGetChannelDecodeState(this._myid,i)}setDecoderWindows(e,t){return this._dispatcherPrx.IFCReqSetWindows(this._myid,e,t)}startDecoderWall(e,t,i,r){let s=new g.opDecoderInfo;return s.Decoderid=e,s.Channel=t,s.disNumber=r,s.cid=i,this._dispatcherPrx.IFCReqStartDecode(this._myid,s)}stopDecoderWall(e,t){let i=new g.opDecoderByVideoInfo;return i.Decoderid=e,i.Channel=t,i.VideoChannel="",i.VideoIP="",i.VideoPort="1",i.VideoPwd="",i.VideoType=g.emVideoDeviceType.VDTDHIPC,i.VideoUser="",this._dispatcherPrx.IFCReqStopDecodeByVideoInfo(this._myid,i)}uploadGISInfo(e,t,i){let r=new g.GisInfoT;return r.latitude=e,r.longitude=t,r.grmc=i,r.time="",this._dispatcherPrx.IFCReqReportGisInfo(this._myid,r)}setGisTrace(e){const t=new Array;return e.forEach(e=>{const i=new g.GisTraceT;i.dstid=e,i.space="",i.flag=g.GisTraceType.GisTraceTypeSub,t.push(i)}),this._dispatcherPrx.IFCReqTraceGisInfo(this._myid,t)}cancelGisTrace(e){const t=new Array;return e.forEach(e=>{const i=new g.GisTraceT;i.dstid=e,i.space="",i.flag=g.GisTraceType.GisTraceTypeUnsub,t.push(i)}),this._dispatcherPrx.IFCReqTraceGisInfo(this._myid,t)}getGisHistory(e,t,i){const r=new g.GisInfoByTimeT;return r.employeeid=e,r.begin=t,r.end=i,r.type=0,this._dispatcherPrx.IFCReqGetGisInfoByTime2(this._myid,r)}getGisInfoByRectangle(e,t,i,r,s){const n=new g.GisInfoByRectangleT;return n.a=e,n.b=t,n.c=i,n.d=r,n.type=s,this._dispatcherPrx.IFCReqGetGisInfoByRectangle2(this._myid,n)}getGisInfoByEllipse(e,t,i,r,s){const n=new g.GisInfoByEllipseT;return n.a=e,n.b=t,n.c=i,n.d=r,n.type=s,this._dispatcherPrx.IFCReqGetGisInfoByEllipse2(this._myid,n)}getGisPosition(e){const t=new g.GetPositionT1;return t.employeeid=e,this._dispatcherPrx.IFCReqGetGisInfoByJson(this._myid,t)}SendMsg(e,t){try{const i=new g.MessageT;i.message.body=e,i.receiver=new Array,t.forEach(e=>{i.receiver.push(e)}),this._dispatcherPrx.IFCReqMsg(this._myid,i)}catch(e){this._logger.log("IceConn error:"+e)}}getOfflineMsg(e){const t=new g.GetOldMsgFileT;return t.getnum=e,t.employeeid=this._caller,this._dispatcherPrx.IFCReqGetOldMsgFile(this._myid,t)}SetFileRecieved(e,t){const i=new g.FileReceivedT;return i.fid=e,i.employeeid=t,this._dispatcherPrx.IFCReqFileReceived(this._myid,i)}SetMessageRecevied(e,t){const i=new g.MessageReceivedT;return i.msgid=e,i.employeeid=t,this._dispatcherPrx.IFCReqMsgReceived(this._myid,i)}SetUploadFileResult(e,t){const i=new g.UploadEventT;return i.fid=e,i.state=g.FileState.valueOf(t),this._dispatcherPrx.IFCNotifyUploadFileEvt(this._myid,i)}ApplyUploadFile(e,t,i){const r=new g.ApplyUploadT;return r.file.fname=e,r.file.ftype=g.FileType.valueOf(i),r.recv=t,this._dispatcherPrx.IFCReqapPlayUploadFile(this._myid,r)}getPlanInfo(){return this._dispatcherPrx.IFCReqSelectPreplan2(this._myid,"")}startPlan(e){const t=new g.PrePlanStartT;return t.planId=e,t.caller=ke.getInstance().number,this._dispatcherPrx.IFCReqStartPreplan(this._myid,t)}createShecduleConf(e,t,i,r){let s=1;t&&(s=2);let n="";e.forEach(e=>{""!=n&&(n+=","),n+=e});let a={meeting_name:r,cid:"",media_type:s,start_time:this.dateFormat(i,"yyyy-MM-dd hh:mm:ss"),call_type:5,dnsprefix:"",members:n},o=JSON.stringify(a);return this._logger.warn("schedule members: "+o),this._dispatcherPrx.IFCReqCreateScheduleConf(this._myid,o)}fixScheduleConf(e,t,i,r,s){let n=1;i&&(n=2);let a="";t.forEach(e=>{""!=a&&(a+=","),a+=e});let o={meeting_name:s,cid:e,media_type:n,start_time:this.dateFormat(r,"yyyy-MM-dd hh:mm:ss"),call_type:5,dnsprefix:"",members:a},h=JSON.stringify(o);return this._logger.warn("schedule members: "+h),this._dispatcherPrx.IFCReqFixScheduleConf(this._myid,h)}getScheduleConf(){return this._dispatcherPrx.IFCReqGetScheduleConf(this._myid,"")}deleteScheduleConf(e){let t={cid:e};return this._dispatcherPrx.IFCReqDeleteScheduleConf(this._myid,JSON.stringify(t))}dateFormat(e,t){null==e&&null==t?(e=new Date,t="yyyy-MM-dd HH:mm:ss"):"string"==typeof e?(t=e,e=new Date):void 0===t&&(t="yyyy-MM-dd HH:mm:ss");var i={y:e.getFullYear()+"",M:e.getMonth()+1+"",d:e.getDate()+"",H:e.getHours(),m:e.getMinutes()+"",s:e.getSeconds()+"",q:Math.floor((e.getMonth()+3)/3)+"",f:e.getMilliseconds()+""};i.h=i.H+"",i.H+="";for(var r="yMdHhmsqf",s="",n="",a=0,o=0;a0){if(s.length==i[r[a]].length)n=i[r[a]];else if(s.length>i[r[a]].length)n="f"==r[a]?i[r[a]]+this.charString("0",s.length-i[r[a]].length):this.charString("0",s.length-i[r[a]].length)+i[r[a]];else switch(r[a]){case"y":n=i[r[a]].substr(i[r[a]].length-s.length);break;case"f":n=i[r[a]].substr(0,s.length);break;default:n=i[r[a]]}t=t.replace(s,n)}}return t}charString(e,t){for(var i="";t--;)i+=e;return i}hangup(e,t=ke.getInstance().currentNumber){const i=new g.HangupT1;return i.cid=e,i.member=t,this._dispatcherPrx.IFCReqHangup2(this._myid,i)}hangupSession(e){const t=new g.HangupT;return t.cid=e,this._dispatcherPrx.IFCReqHangup(this._myid,t)}requestSendVideoByJson(e){const t={cid:e,sid:"",employeeid:ke.getInstance().number,ip:"255.255.255.255",port:"",codec:"",stream:"",framerate:"",agentid:"",proto:"sip"};let i=JSON.stringify(t);return this._logger.warn(" requestSendVideoByJson para: "+i),this._dispatcherPrx.IFCReqSendVideoByJson(this._myid,i).then(e=>{this._logger.warn("IFCReqSendVideoByJson success: "+e)}).catch(e=>{this._logger.error("IFCReqSendVideoByJson fail: "+JSON.stringify(e))})}getSmsGis(e){return this._dispatcherPrx.IFCReqGetSmsGis(this._myid,e)}getSmsGisRepeat(e,t){return this._dispatcherPrx.IFCReqGetSmsGisRepeat(this._myid,e,t.toString())}negotiatedTransfer(e,t,i,r){const s=new g.NegoTransferT;return s.cid1=e,s.cid2=t,s.call1=i,s.call2=r,s.number=ke.getInstance().currentNumber,this._dispatcherPrx.IFCReqNegoTransfer(this._myid,s)}getVersion(){const e=new g.GetVersionT;return this._dispatcherPrx.IFCReqGetVersion(this._myid,e)}getCompanyName(){return this._dispatcherPrx.IFCReqGetConfigByKey(this._myid,"CompanyName")}}Ue.instance=null;const Be=(e,t)=>{const i=new RegExp("m="+t+".*$","gm"),r=new RegExp("^a=group:.*$","gm");if(i.test(e)){let i;const s=(e=e.split(/^m=/gm).filter(e=>{if(e.substr(0,t.length)===t){if(i=e.match(/^a=mid:.*$/gm)){const e=i[0].match(/:.+$/g);e&&(i=e[0].substr(1))}return!1}return!0}).join("m=")).match(r);if(s&&1===s.length){let t=s[0];const n=new RegExp(" *"+i+"[^ ]*","g");t=t.replace(n,""),e=e.split(r).join(t)}}return e};function Ge(e){return e.sdp=Be(e.sdp||"","video"),Promise.resolve(e)}var Le;!function(e){e.ACK="ACK",e.BYE="BYE",e.CANCEL="CANCEL",e.INFO="INFO",e.INVITE="INVITE",e.MESSAGE="MESSAGE",e.NOTIFY="NOTIFY",e.OPTIONS="OPTIONS",e.REGISTER="REGISTER",e.UPDATE="UPDATE",e.SUBSCRIBE="SUBSCRIBE",e.PUBLISH="PUBLISH",e.REFER="REFER",e.PRACK="PRACK"}(Le||(Le={}));class je{constructor(e){this.parameters={};for(const t in e)e.hasOwnProperty(t)&&this.setParam(t,e[t])}setParam(e,t){e&&(this.parameters[e.toLowerCase()]=null==t?null:t.toString())}getParam(e){if(e)return this.parameters[e.toLowerCase()]}hasParam(e){return!!e&&!!this.parameters.hasOwnProperty(e.toLowerCase())}deleteParam(e){if(e=e.toLowerCase(),this.parameters.hasOwnProperty(e)){const t=this.parameters[e];return delete this.parameters[e],t}}clearParams(){this.parameters={}}}class We extends je{constructor(e,t,i){super(i),this.uri=e,this._displayName=t}get friendlyName(){return this.displayName||this.uri.aor}get displayName(){return this._displayName}set displayName(e){this._displayName=e}clone(){return new We(this.uri.clone(),this._displayName,JSON.parse(JSON.stringify(this.parameters)))}toString(){let e=this.displayName||"0"===this.displayName?'"'+this.displayName+'" ':"";e+="<"+this.uri.toString()+">";for(const t in this.parameters)this.parameters.hasOwnProperty(t)&&(e+=";"+t,null!==this.parameters[t]&&(e+="="+this.parameters[t]));return e}}class ze extends je{constructor(e,t,i,r,s,n){if(super(s),this.headers={},!i)throw new TypeError('missing or invalid "host" parameter');e=e||"sip";for(const e in n)n.hasOwnProperty(e)&&this.setHeader(e,n[e]);this.raw={scheme:e,user:t,host:i,port:r},this.normal={scheme:e.toLowerCase(),user:t,host:i.toLowerCase(),port:r}}get scheme(){return this.normal.scheme}set scheme(e){this.raw.scheme=e,this.normal.scheme=e.toLowerCase()}get user(){return this.normal.user}set user(e){this.normal.user=this.raw.user=e}get host(){return this.normal.host}set host(e){this.raw.host=e,this.normal.host=e.toLowerCase()}get aor(){return this.normal.user+"@"+this.normal.host}get port(){return this.normal.port}set port(e){this.normal.port=this.raw.port=e}setHeader(e,t){this.headers[this.headerize(e)]=t instanceof Array?t:[t]}getHeader(e){if(e)return this.headers[this.headerize(e)]}hasHeader(e){return!!e&&!!this.headers.hasOwnProperty(this.headerize(e))}deleteHeader(e){if(e=this.headerize(e),this.headers.hasOwnProperty(e)){const t=this.headers[e];return delete this.headers[e],t}}clearHeaders(){this.headers={}}clone(){return new ze(this._raw.scheme,this._raw.user||"",this._raw.host,this._raw.port,JSON.parse(JSON.stringify(this.parameters)),JSON.parse(JSON.stringify(this.headers)))}toRaw(){return this._toString(this._raw)}toString(){return this._toString(this._normal)}get _normal(){return this.normal}get _raw(){return this.raw}_toString(e){let t=e.scheme+":";e.scheme.toLowerCase().match("^sips?$")||(t+="//"),e.user&&(t+=this.escapeUser(e.user)+"@"),t+=e.host,(e.port||0===e.port)&&(t+=":"+e.port);for(const e in this.parameters)this.parameters.hasOwnProperty(e)&&(t+=";"+e,null!==this.parameters[e]&&(t+="="+this.parameters[e]));const i=[];for(const e in this.headers)if(this.headers.hasOwnProperty(e))for(const t in this.headers[e])this.headers[e].hasOwnProperty(t)&&i.push(e+"="+this.headers[e][t]);return i.length>0&&(t+="?"+i.join("&")),t}escapeUser(e){let t;try{t=decodeURIComponent(e)}catch(e){throw e}return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%2B/gi,"+").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}headerize(e){const t={"Call-Id":"Call-ID",Cseq:"CSeq","Min-Se":"Min-SE",Rack:"RAck",Rseq:"RSeq","Www-Authenticate":"WWW-Authenticate"},i=e.toLowerCase().replace(/_/g,"-").split("-"),r=i.length;let s="";for(let e=0;e"\\x0"+i(e)).replace(/[\x10-\x1F\x7F-\x9F]/g,e=>"\\x"+i(e))}function s(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,e=>"\\x0"+i(e)).replace(/[\x10-\x1F\x7F-\x9F]/g,e=>"\\x"+i(e))}function n(e){switch(e.type){case"literal":return'"'+r(e.text)+'"';case"class":const t=e.parts.map(e=>Array.isArray(e)?s(e[0])+"-"+s(e[1]):s(e));return"["+(e.inverted?"^":"")+t+"]";case"any":return"any character";case"end":return"end of input";case"other":return e.description}}return"Expected "+function(e){const t=e.map(n);let i,r;if(t.sort(),t.length>0){for(i=1,r=1;i",S(">",!1),"\\",S("\\",!1),"[",S("[",!1),"]",S("]",!1),"{",S("{",!1),"}",S("}",!1),function(){return"*"},function(){return"/"},function(){return"="},function(){return"("},function(){return")"},function(){return">"},function(){return"<"},function(){return","},function(){return";"},function(){return":"},function(){return'"'},/^[!-']/,f([["!","'"]],!1,!1),/^[*-[]/,f([["*","["]],!1,!1),/^[\]-~]/,f([["]","~"]],!1,!1),function(e){return e},/^[#-[]/,f([["#","["]],!1,!1),/^[\0-\t]/,f([["\0","\t"]],!1,!1),/^[\x0B-\f]/,f([["\v","\f"]],!1,!1),/^[\x0E-\x7F]/,f([["",""]],!1,!1),function(){(t=t||{data:{}}).data.uri=new ze(t.data.scheme,t.data.user,t.data.host,t.data.port),delete t.data.scheme,delete t.data.user,delete t.data.host,delete t.data.host_type,delete t.data.port},function(){(t=t||{data:{}}).data.uri=new ze(t.data.scheme,t.data.user,t.data.host,t.data.port,t.data.uri_params,t.data.uri_headers),delete t.data.scheme,delete t.data.user,delete t.data.host,delete t.data.host_type,delete t.data.port,delete t.data.uri_params,"SIP_URI"===t.startRule&&(t.data=t.data.uri)},"sips",S("sips",!0),"sip",S("sip",!0),function(e){(t=t||{data:{}}).data.scheme=e},function(){(t=t||{data:{}}).data.user=decodeURIComponent(p().slice(0,-1))},function(){(t=t||{data:{}}).data.password=p()},function(){return(t=t||{data:{}}).data.host=p(),t.data.host},function(){return(t=t||{data:{}}).data.host_type="domain",p()},/^[a-zA-Z0-9_\-]/,f([["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),/^[a-zA-Z0-9\-]/,f([["a","z"],["A","Z"],["0","9"],"-"],!1,!1),function(){return(t=t||{data:{}}).data.host_type="IPv6",p()},"::",S("::",!1),function(){return(t=t||{data:{}}).data.host_type="IPv6",p()},function(){return(t=t||{data:{}}).data.host_type="IPv4",p()},"25",S("25",!1),/^[0-5]/,f([["0","5"]],!1,!1),"2",S("2",!1),/^[0-4]/,f([["0","4"]],!1,!1),"1",S("1",!1),/^[1-9]/,f([["1","9"]],!1,!1),function(e){return t=t||{data:{}},e=parseInt(e.join("")),t.data.port=e,e},"transport=",S("transport=",!0),"udp",S("udp",!0),"tcp",S("tcp",!0),"sctp",S("sctp",!0),"tls",S("tls",!0),function(e){(t=t||{data:{}}).data.uri_params||(t.data.uri_params={}),t.data.uri_params.transport=e.toLowerCase()},"user=",S("user=",!0),"phone",S("phone",!0),"ip",S("ip",!0),function(e){(t=t||{data:{}}).data.uri_params||(t.data.uri_params={}),t.data.uri_params.user=e.toLowerCase()},"method=",S("method=",!0),function(e){(t=t||{data:{}}).data.uri_params||(t.data.uri_params={}),t.data.uri_params.method=e},"ttl=",S("ttl=",!0),function(e){(t=t||{data:{}}).data.params||(t.data.params={}),t.data.params.ttl=e},"maddr=",S("maddr=",!0),function(e){(t=t||{data:{}}).data.uri_params||(t.data.uri_params={}),t.data.uri_params.maddr=e},"lr",S("lr",!0),function(){(t=t||{data:{}}).data.uri_params||(t.data.uri_params={}),t.data.uri_params.lr=void 0},function(e,i){(t=t||{data:{}}).data.uri_params||(t.data.uri_params={}),i=null===i?void 0:i[1],t.data.uri_params[e.toLowerCase()]=i},function(e,i){e=e.join("").toLowerCase(),i=i.join(""),(t=t||{data:{}}).data.uri_headers||(t.data.uri_headers={}),t.data.uri_headers[e]?t.data.uri_headers[e].push(i):t.data.uri_headers[e]=[i]},function(){"Refer_To"===(t=t||{data:{}}).startRule&&(t.data.uri=new ze(t.data.scheme,t.data.user,t.data.host,t.data.port,t.data.uri_params,t.data.uri_headers),delete t.data.scheme,delete t.data.user,delete t.data.host,delete t.data.host_type,delete t.data.port,delete t.data.uri_params)},"//",S("//",!1),function(){(t=t||{data:{}}).data.scheme=p()},S("SIP",!0),function(){(t=t||{data:{}}).data.sip_version=p()},"INVITE",S("INVITE",!1),"ACK",S("ACK",!1),"VXACH",S("VXACH",!1),"OPTIONS",S("OPTIONS",!1),"BYE",S("BYE",!1),"CANCEL",S("CANCEL",!1),"REGISTER",S("REGISTER",!1),"SUBSCRIBE",S("SUBSCRIBE",!1),"NOTIFY",S("NOTIFY",!1),"REFER",S("REFER",!1),"PUBLISH",S("PUBLISH",!1),function(){return(t=t||{data:{}}).data.method=p(),t.data.method},function(e){(t=t||{data:{}}).data.status_code=parseInt(e.join(""))},function(){(t=t||{data:{}}).data.reason_phrase=p()},function(){(t=t||{data:{}}).data=p()},function(){var e,i;for(i=(t=t||{data:{}}).data.multi_header.length,e=0;e""6>7?.A &2@""6@7A.5 &2B""6B7C.) &2D""6D7E'),C(";).# &;,"),C('2F""6F7G.} &2H""6H7I.q &2J""6J7K.e &2L""6L7M.Y &2N""6N7O.M &2P""6P7Q.A &2R""6R7S.5 &2T""6T7U.) &2V""6V7W'),C('%%2X""6X7Y/5#;#/,$;#/#$+#)(#\'#("\'#&\'#/"!&,)'),C('%%$;$0#*;$&/,#; /#$+")("\'#&\'#." &"/=#$;$/�#*;$&&&#/\'$8":Z" )("\'#&\'#'),C(';.." &"'),C("%$;'.# &;(0)*;'.# &;(&/?#28\"\"6879/0$;//'$8#:[# )(#'#(\"'#&'#"),C('%%$;2/�#*;2&&&#/g#$%$;.0#*;.&/,#;2/#$+")("\'#&\'#0=*%$;.0#*;.&/,#;2/#$+")("\'#&\'#&/#$+")("\'#&\'#/"!&,)'),C('4\\""5!7].# &;3'),C('4^""5!7_'),C('4`""5!7a'),C(';!.) &4b""5!7c'),C('%$;).• &2F""6F7G.‰ &2J""6J7K.} &2L""6L7M.q &2X""6X7Y.e &2P""6P7Q.Y &2H""6H7I.M &2@""6@7A.A &2d""6d7e.5 &2R""6R7S.) &2N""6N7O/ž#0›*;).• &2F""6F7G.‰ &2J""6J7K.} &2L""6L7M.q &2X""6X7Y.e &2P""6P7Q.Y &2H""6H7I.M &2@""6@7A.A &2d""6d7e.5 &2R""6R7S.) &2N""6N7O&&&#/"!&,)'),C('%$;).‰ &2F""6F7G.} &2L""6L7M.q &2X""6X7Y.e &2P""6P7Q.Y &2H""6H7I.M &2@""6@7A.A &2d""6d7e.5 &2R""6R7S.) &2N""6N7O/’#0*;).‰ &2F""6F7G.} &2L""6L7M.q &2X""6X7Y.e &2P""6P7Q.Y &2H""6H7I.M &2@""6@7A.A &2d""6d7e.5 &2R""6R7S.) &2N""6N7O&&&#/"!&,)'),C('2T""6T7U.ã &2V""6V7W.× &2f""6f7g.Ë &2h""6h7i.¿ &2:""6:7;.³ &2D""6D7E.§ &22""6273.› &28""6879. &2j""6j7k.ƒ &;&.} &24""6475.q &2l""6l7m.e &2n""6n7o.Y &26""6677.M &2>""6>7?.A &2p""6p7q.5 &2r""6r7s.) &;\'.# &;('),C('%$;).ī &2F""6F7G.ğ &2J""6J7K.ē &2L""6L7M.ć &2X""6X7Y.û &2P""6P7Q.ï &2H""6H7I.ã &2@""6@7A.× &2d""6d7e.Ë &2R""6R7S.¿ &2N""6N7O.³ &2T""6T7U.§ &2V""6V7W.› &2f""6f7g. &2h""6h7i.ƒ &28""6879.w &2j""6j7k.k &;&.e &24""6475.Y &2l""6l7m.M &2n""6n7o.A &26""6677.5 &2p""6p7q.) &2r""6r7s/Ĵ#0ı*;).ī &2F""6F7G.ğ &2J""6J7K.ē &2L""6L7M.ć &2X""6X7Y.û &2P""6P7Q.ï &2H""6H7I.ã &2@""6@7A.× &2d""6d7e.Ë &2R""6R7S.¿ &2N""6N7O.³ &2T""6T7U.§ &2V""6V7W.› &2f""6f7g. &2h""6h7i.ƒ &28""6879.w &2j""6j7k.k &;&.e &24""6475.Y &2l""6l7m.M &2n""6n7o.A &26""6677.5 &2p""6p7q.) &2r""6r7s&&&#/"!&,)'),C("%;//?#2P\"\"6P7Q/0$;//'$8#:t# )(#'#(\"'#&'#"),C("%;//?#24\"\"6475/0$;//'$8#:u# )(#'#(\"'#&'#"),C("%;//?#2>\"\"6>7?/0$;//'$8#:v# )(#'#(\"'#&'#"),C("%;//?#2T\"\"6T7U/0$;//'$8#:w# )(#'#(\"'#&'#"),C("%;//?#2V\"\"6V7W/0$;//'$8#:x# )(#'#(\"'#&'#"),C('%2h""6h7i/0#;//\'$8":y" )("\'#&\'#'),C('%;//6#2f""6f7g/\'$8":z" )("\'#&\'#'),C("%;//?#2D\"\"6D7E/0$;//'$8#:{# )(#'#(\"'#&'#"),C("%;//?#22\"\"6273/0$;//'$8#:|# )(#'#(\"'#&'#"),C("%;//?#28\"\"6879/0$;//'$8#:}# )(#'#(\"'#&'#"),C("%;//0#;&/'$8\":~\" )(\"'#&'#"),C("%;&/0#;//'$8\":~\" )(\"'#&'#"),C("%;=/T#$;G.) &;K.# &;F0/*;G.) &;K.# &;F&/,$;>/#$+#)(#'#(\"'#&'#"),C('4""5!7€.A &4""5!7‚.5 &4ƒ""5!7„.) &;3.# &;.'),C("%%;//Q#;&/H$$;J.# &;K0)*;J.# &;K&/,$;&/#$+$)($'#(#'#(\"'#&'#/\"!&,)"),C("%;//]#;&/T$%$;J.# &;K0)*;J.# &;K&/\"!&,)/1$;&/($8$:…$!!)($'#(#'#(\"'#&'#"),C(';..G &2L""6L7M.; &4†""5!7‡./ &4ƒ""5!7„.# &;3'),C('%2j""6j7k/J#4ˆ""5!7‰.5 &4Š""5!7‹.) &4Œ""5!7/#$+")("\'#&\'#'),C("%;N/M#28\"\"6879/>$;O.\" &\"/0$;S/'$8$:Ž$ )($'#(#'#(\"'#&'#"),C("%;N/d#28\"\"6879/U$;O.\" &\"/G$;S/>$;_/5$;l.\" &\"/'$8&:& )(&'#(%'#($'#(#'#(\"'#&'#"),C('%3""5$7‘.) &3’""5#7“/\' 8!:”!! )'),C('%;P/]#%28""6879/,#;R/#$+")("\'#&\'#." &"/6$2:""6:7;/\'$8#:•# )(#\'#("\'#&\'#'),C("$;+.) &;-.# &;Q/2#0/*;+.) &;-.# &;Q&&&#"),C('2<""6<7=.q &2>""6>7?.e &2@""6@7A.Y &2B""6B7C.M &2D""6D7E.A &22""6273.5 &26""6677.) &24""6475'),C('%$;+._ &;-.Y &2<""6<7=.M &2>""6>7?.A &2@""6@7A.5 &2B""6B7C.) &2D""6D7E0e*;+._ &;-.Y &2<""6<7=.M &2>""6>7?.A &2@""6@7A.5 &2B""6B7C.) &2D""6D7E&/& 8!:–! )'),C('%;T/J#%28""6879/,#;^/#$+")("\'#&\'#." &"/#$+")("\'#&\'#'),C("%;U.) &;\\.# &;X/& 8!:—! )"),C('%$%;V/2#2J""6J7K/#$+")("\'#&\'#0<*%;V/2#2J""6J7K/#$+")("\'#&\'#&/D#;W/;$2J""6J7K." &"/\'$8#:˜# )(#\'#("\'#&\'#'),C('$4™""5!7š/,#0)*4™""5!7š&&&#'),C('%4$""5!7%/?#$4›""5!7œ0)*4›""5!7œ&/#$+")("\'#&\'#'),C('%2l""6l7m/?#;Y/6$2n""6n7o/\'$8#:# )(#\'#("\'#&\'#'),C('%%;Z/³#28""6879/¤$;Z/›$28""6879/Œ$;Z/ƒ$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+-)(-\'#(,\'#(+\'#(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.ސ &%2ž""6ž7Ÿ/¤#;Z/›$28""6879/Œ$;Z/ƒ$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+,)(,\'#(+\'#(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.۹ &%2ž""6ž7Ÿ/Œ#;Z/ƒ$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+*)(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.ٺ &%2ž""6ž7Ÿ/t#;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+()((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.ؓ &%2ž""6ž7Ÿ/\\#;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+&)(&\'#(%\'#($\'#(#\'#("\'#&\'#.ׄ &%2ž""6ž7Ÿ/D#;Z/;$28""6879/,$;[/#$+$)($\'#(#\'#("\'#&\'#.֍ &%2ž""6ž7Ÿ/,#;[/#$+")("\'#&\'#.ծ &%2ž""6ž7Ÿ/,#;Z/#$+")("\'#&\'#.Տ &%;Z/›#2ž""6ž7Ÿ/Œ$;Z/ƒ$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$++)(+\'#(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.Ӈ &%;Z/ª#%28""6879/,#;Z/#$+")("\'#&\'#." &"/ƒ$2ž""6ž7Ÿ/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+*)(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.а &%;Z/¹#%28""6879/,#;Z/#$+")("\'#&\'#." &"/’$%28""6879/,#;Z/#$+")("\'#&\'#." &"/k$2ž""6ž7Ÿ/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+))()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.Ί &%;Z/È#%28""6879/,#;Z/#$+")("\'#&\'#." &"/¡$%28""6879/,#;Z/#$+")("\'#&\'#." &"/z$%28""6879/,#;Z/#$+")("\'#&\'#." &"/S$2ž""6ž7Ÿ/D$;Z/;$28""6879/,$;[/#$+()((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.˕ &%;Z/×#%28""6879/,#;Z/#$+")("\'#&\'#." &"/°$%28""6879/,#;Z/#$+")("\'#&\'#." &"/‰$%28""6879/,#;Z/#$+")("\'#&\'#." &"/b$%28""6879/,#;Z/#$+")("\'#&\'#." &"/;$2ž""6ž7Ÿ/,$;[/#$+\')(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.ȑ &%;Z/þ#%28""6879/,#;Z/#$+")("\'#&\'#." &"/×$%28""6879/,#;Z/#$+")("\'#&\'#." &"/°$%28""6879/,#;Z/#$+")("\'#&\'#." &"/‰$%28""6879/,#;Z/#$+")("\'#&\'#." &"/b$%28""6879/,#;Z/#$+")("\'#&\'#." &"/;$2ž""6ž7Ÿ/,$;Z/#$+()((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.Ħ &%;Z/Ĝ#%28""6879/,#;Z/#$+")("\'#&\'#." &"/õ$%28""6879/,#;Z/#$+")("\'#&\'#." &"/Î$%28""6879/,#;Z/#$+")("\'#&\'#." &"/§$%28""6879/,#;Z/#$+")("\'#&\'#." &"/€$%28""6879/,#;Z/#$+")("\'#&\'#." &"/Y$%28""6879/,#;Z/#$+")("\'#&\'#." &"/2$2ž""6ž7Ÿ/#$+()((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#/& 8!: ! )'),C('%;#/M#;#." &"/?$;#." &"/1$;#." &"/#$+$)($\'#(#\'#("\'#&\'#'),C("%;Z/;#28\"\"6879/,$;Z/#$+#)(#'#(\"'#&'#.# &;\\"),C("%;]/o#2J\"\"6J7K/`$;]/W$2J\"\"6J7K/H$;]/?$2J\"\"6J7K/0$;]/'$8':¡' )(''#(&'#(%'#($'#(#'#(\"'#&'#"),C('%2¢""6¢7£/2#4¤""5!7¥/#$+")("\'#&\'#.˜ &%2¦""6¦7§/;#4¨""5!7©/,$;!/#$+#)(#\'#("\'#&\'#.j &%2ª""6ª7«/5#;!/,$;!/#$+#)(#\'#("\'#&\'#.B &%4¬""5!7­/,#;!/#$+")("\'#&\'#.# &;!'),C('%%;!." &"/[#;!." &"/M$;!." &"/?$;!." &"/1$;!." &"/#$+%)(%\'#($\'#(#\'#("\'#&\'#/\' 8!:®!! )'),C('$%22""6273/,#;`/#$+")("\'#&\'#0<*%22""6273/,#;`/#$+")("\'#&\'#&'),C(";a.A &;b.; &;c.5 &;d./ &;e.) &;f.# &;g"),C('%3¯""5*7°/a#3±""5#7².G &3³""5#7´.; &3µ""5$7¶./ &3·""5#7¸.# &;6/($8":¹"! )("\'#&\'#'),C('%3º""5%7»/I#3¼""5%7½./ &3¾""5"7¿.# &;6/($8":À"! )("\'#&\'#'),C('%3Á""5\'7Â/1#;/($8":Ã"! )("\'#&\'#'),C('%3Ä""5$7Å/1#;ð/($8":Æ"! )("\'#&\'#'),C('%3Ç""5&7È/1#;T/($8":É"! )("\'#&\'#'),C('%3Ê""5"7Ë/N#%2>""6>7?/,#;6/#$+")("\'#&\'#." &"/\'$8":Ì" )("\'#&\'#'),C('%;h/P#%2>""6>7?/,#;i/#$+")("\'#&\'#." &"/)$8":Í""! )("\'#&\'#'),C('%$;j/�#*;j&&&#/"!&,)'),C('%$;j/�#*;j&&&#/"!&,)'),C(";k.) &;+.# &;-"),C('2l""6l7m.e &2n""6n7o.Y &24""6475.M &28""6879.A &2<""6<7=.5 &2@""6@7A.) &2B""6B7C'),C('%26""6677/n#;m/e$$%2<""6<7=/,#;m/#$+")("\'#&\'#0<*%2<""6<7=/,#;m/#$+")("\'#&\'#&/#$+#)(#\'#("\'#&\'#'),C('%;n/A#2>""6>7?/2$;o/)$8#:Î#"" )(#\'#("\'#&\'#'),C("$;p.) &;+.# &;-/2#0/*;p.) &;+.# &;-&&&#"),C("$;p.) &;+.# &;-0/*;p.) &;+.# &;-&"),C('2l""6l7m.e &2n""6n7o.Y &24""6475.M &26""6677.A &28""6879.5 &2@""6@7A.) &2B""6B7C'),C(";‘.# &;r"),C("%;/G#;'/>$;s/5$;'/,$;„/#$+%)(%'#($'#(#'#(\"'#&'#"),C(";M.# &;t"),C("%;/E#28\"\"6879/6$;u.# &;x/'$8#:Ï# )(#'#(\"'#&'#"),C('%;v.# &;w/J#%26""6677/,#;ƒ/#$+")("\'#&\'#." &"/#$+")("\'#&\'#'),C('%2Ð""6Ð7Ñ/:#;€/1$;w." &"/#$+#)(#\'#("\'#&\'#'),C('%24""6475/,#;{/#$+")("\'#&\'#'),C("%;z/3#$;y0#*;y&/#$+\")(\"'#&'#"),C(";*.) &;+.# &;-"),C(';+. &;-.‰ &22""6273.} &26""6677.q &28""6879.e &2:""6:7;.Y &2<""6<7=.M &2>""6>7?.A &2@""6@7A.5 &2B""6B7C.) &2D""6D7E'),C('%;|/e#$%24""6475/,#;|/#$+")("\'#&\'#0<*%24""6475/,#;|/#$+")("\'#&\'#&/#$+")("\'#&\'#'),C('%$;~0#*;~&/e#$%22""6273/,#;}/#$+")("\'#&\'#0<*%22""6273/,#;}/#$+")("\'#&\'#&/#$+")("\'#&\'#'),C("$;~0#*;~&"),C(';+.w &;-.q &28""6879.e &2:""6:7;.Y &2<""6<7=.M &2>""6>7?.A &2@""6@7A.5 &2B""6B7C.) &2D""6D7E'),C('%%;"/‡#$;".G &;!.A &2@""6@7A.5 &2F""6F7G.) &2J""6J7K0M*;".G &;!.A &2@""6@7A.5 &2F""6F7G.) &2J""6J7K&/#$+")("\'#&\'#/& 8!:Ò! )'),C(";.# &;‚"),C('%%;O/2#2:""6:7;/#$+")("\'#&\'#." &"/,#;S/#$+")("\'#&\'#." &"'),C('$;+.ƒ &;-.} &2B""6B7C.q &2D""6D7E.e &22""6273.Y &28""6879.M &2:""6:7;.A &2<""6<7=.5 &2>""6>7?.) &2@""6@7A/Œ#0‰*;+.ƒ &;-.} &2B""6B7C.q &2D""6D7E.e &22""6273.Y &28""6879.M &2:""6:7;.A &2<""6<7=.5 &2>""6>7?.) &2@""6@7A&&&#'),C("$;y0#*;y&"),C('%3’""5#7Ó/q#24""6475/b$$;!/�#*;!&&&#/L$2J""6J7K/=$$;!/�#*;!&&&#/\'$8%:Ô% )(%\'#($\'#(#\'#("\'#&\'#'),C('2Õ""6Õ7Ö'),C('2×""6×7Ø'),C('2Ù""6Ù7Ú'),C('2Û""6Û7Ü'),C('2Ý""6Ý7Þ'),C('2ß""6ß7à'),C('2á""6á7â'),C('2ã""6ã7ä'),C('2å""6å7æ'),C('2ç""6ç7è'),C('2é""6é7ê'),C("%;….Y &;†.S &;ˆ.M &;‰.G &;Š.A &;‹.; &;Œ.5 &;./ &;.) &;Ž.# &;6/& 8!:ë! )"),C("%;„/G#;'/>$;’/5$;'/,$;”/#$+%)(%'#($'#(#'#(\"'#&'#"),C("%;“/' 8!:ì!! )"),C("%;!/5#;!/,$;!/#$+#)(#'#(\"'#&'#"),C("%$;*.A &;+.; &;-.5 &;3./ &;4.) &;'.# &;(0G*;*.A &;+.; &;-.5 &;3./ &;4.) &;'.# &;(&/& 8!:í! )"),C("%;¶/Y#$%;A/,#;¶/#$+\")(\"'#&'#06*%;A/,#;¶/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),C('%;9/N#%2:""6:7;/,#;9/#$+")("\'#&\'#." &"/\'$8":î" )("\'#&\'#'),C("%;:.c &%;˜/Y#$%;A/,#;˜/#$+\")(\"'#&'#06*%;A/,#;˜/#$+\")(\"'#&'#&/#$+\")(\"'#&'#/& 8!:ï! )"),C("%;L.# &;™/]#$%;B/,#;›/#$+\")(\"'#&'#06*%;B/,#;›/#$+\")(\"'#&'#&/'$8\":ð\" )(\"'#&'#"),C("%;š.\" &\"/>#;@/5$;M/,$;?/#$+$)($'#(#'#(\"'#&'#"),C("%%;6/Y#$%;./,#;6/#$+\")(\"'#&'#06*%;./,#;6/#$+\")(\"'#&'#&/#$+\")(\"'#&'#.# &;H/' 8!:ñ!! )"),C(";œ.) &;.# &; "),C("%3ò\"\"5!7ó/:#;$;Ï/5$;./,$;/#$+%)(%'#($'#(#'#(\"'#&'#"),C("%$;!/�#*;!&&&#/' 8!:ŋ!! )"),C("%;Ñ/]#$%;A/,#;Ñ/#$+\")(\"'#&'#06*%;A/,#;Ñ/#$+\")(\"'#&'#&/'$8\":Ō\" )(\"'#&'#"),C("%;™/]#$%;B/,#; /#$+\")(\"'#&'#06*%;B/,#; /#$+\")(\"'#&'#&/'$8\":ō\" )(\"'#&'#"),C('%;L.O &;™.I &%;@." &"/:#;t/1$;?." &"/#$+#)(#\'#("\'#&\'#/]#$%;B/,#; /#$+")("\'#&\'#06*%;B/,#; /#$+")("\'#&\'#&/\'$8":Ŏ" )("\'#&\'#'),C("%;Ô/]#$%;B/,#;Õ/#$+\")(\"'#&'#06*%;B/,#;Õ/#$+\")(\"'#&'#&/'$8\":ŏ\" )(\"'#&'#"),C("%;–/& 8!:Ő! )"),C('%3ő""5(7Œ/:#;$;6/5$;;/,$;ì/#$+%)(%'#($'#(#'#(\"'#&'#"),C('%3’""5#7Ó.# &;6/\' 8!:Ƌ!! )'),C('%3±""5#7ƌ.G &3³""5#7ƍ.; &3·""5#7Ǝ./ &3µ""5$7Ə.# &;6/\' 8!:Ɛ!! )'),C('%;î/D#%;C/,#;ï/#$+")("\'#&\'#." &"/#$+")("\'#&\'#'),C("%;U.) &;\\.# &;X/& 8!:Ƒ! )"),C('%%;!." &"/[#;!." &"/M$;!." &"/?$;!." &"/1$;!." &"/#$+%)(%\'#($\'#(#\'#("\'#&\'#/\' 8!:ƒ!! )'),C('%%;!/?#;!." &"/1$;!." &"/#$+#)(#\'#("\'#&\'#/\' 8!:Ɠ!! )'),C(";¾"),C('%;ž/^#$%;B/,#;ó/#$+")("\'#&\'#06*%;B/,#;ó/#$+")("\'#&\'#&/($8":Ɣ"!!)("\'#&\'#'),C(";ô.# &; "),C('%2ƕ""6ƕ7Ɩ/L#;""6>7?'),C('%;Ā/b#28""6879/S$;û/J$%2ƣ""6ƣ7Ƥ/,#;ì/#$+")("\'#&\'#." &"/#$+$)($\'#(#\'#("\'#&\'#'),C('%3ƥ""5%7Ʀ.) &3Ƨ""5$7ƨ/\' 8!:ơ!! )'),C('%3±""5#7².6 &3³""5#7´.* &$;+0#*;+&/\' 8!:Ʃ!! )'),C("%;Ą/‡#2F\"\"6F7G/x$;ă/o$2F\"\"6F7G/`$;ă/W$2F\"\"6F7G/H$;ă/?$2F\"\"6F7G/0$;ą/'$8):ƪ) )()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#"),C("%;#/>#;#/5$;#/,$;#/#$+$)($'#(#'#(\"'#&'#"),C("%;ă/,#;ă/#$+\")(\"'#&'#"),C("%;ă/5#;ă/,$;ă/#$+#)(#'#(\"'#&'#"),C("%;q/T#$;m0#*;m&/D$%; /,#;ø/#$+\")(\"'#&'#.\" &\"/#$+#)(#'#(\"'#&'#"),C('%2ƫ""6ƫ7Ƭ.) &2ƭ""6ƭ7Ʈ/w#;0/n$;Ĉ/e$$%;B/2#;ĉ.# &; /#$+")("\'#&\'#0<*%;B/2#;ĉ.# &; /#$+")("\'#&\'#&/#$+$)($\'#(#\'#("\'#&\'#'),C(";™.# &;L"),C("%2Ư\"\"6Ư7ư/5#;l&&(l=o,g=[]),g.push(e))}function C(e){return e.split("").map(e=>e.charCodeAt(0)-32)}if(t.data={},(c=function t(r){const s=a[r];let d=0;const c=[];let l=s.length;const g=[],p=[];let m;for(;;){for(;do?(l=d+3+s[d+1],d+=3):(l=d+3+s[d+1]+s[d+2],d+=3+s[d+1]);break;case 18:g.push(l),c.push(d+4+s[d+2]+s[d+3]),e.substr(o,n[s[d+1]].length)===n[s[d+1]]?(l=d+4+s[d+2],d+=4):(l=d+4+s[d+2]+s[d+3],d+=4+s[d+2]);break;case 19:g.push(l),c.push(d+4+s[d+2]+s[d+3]),e.substr(o,n[s[d+1]].length).toLowerCase()===n[s[d+1]]?(l=d+4+s[d+2],d+=4):(l=d+4+s[d+2]+s[d+3],d+=4+s[d+2]);break;case 20:g.push(l),c.push(d+4+s[d+2]+s[d+3]),n[s[d+1]].test(e.charAt(o))?(l=d+4+s[d+2],d+=4):(l=d+4+s[d+2]+s[d+3],d+=4+s[d+2]);break;case 21:p.push(e.substr(o,s[d+1])),o+=s[d+1],d+=2;break;case 22:p.push(n[s[d+1]]),o+=n[s[d+1]].length,d+=2;break;case 23:p.push(i),0===u&&w(n[s[d+1]]),d+=2;break;case 24:h=p[p.length-1-s[d+1]],d+=2;break;case 25:h=o,d++;break;case 26:m=s.slice(d+4,d+4+s[d+3]).map(function(e){return p[p.length-1-e]}),p.splice(p.length-s[d+2],s[d+2],n[s[d+1]].apply(null,m)),d+=4+s[d+3];break;case 27:p.push(t(s[d+1])),d+=2;break;case 28:u++,d++;break;case 29:u--,d++;break;default:throw new Error("Invalid opcode: "+s[d]+".")}if(!(g.length>0))break;l=g.pop(),d=c.pop()}return p[0]}(s))!==i&&o===e.length)return c;throw c!==i&&o=this.headers[e].length)return;const i=this.headers[e][t],r=i.raw;if(i.parsed)return i.parsed;const s=Ye.parse(r,e.replace(/-/g,"_"));return-1===s?void this.headers[e].splice(t,1):(i.parsed=s,s)}s(e,t=0){return this.parseHeader(e,t)}setHeader(e,t){this.headers[et(e)]=[{raw:t}]}toString(){return this.data}}class st extends rt{constructor(){super()}}class nt extends rt{constructor(){super()}}class at{constructor(e,t,i,r,s,n,a){this.headers={},this.extraHeaders=[],this.options=at.getDefaultOptions(),s&&(this.options=Object.assign(Object.assign({},this.options),s),this.options.optionTags&&this.options.optionTags.length&&(this.options.optionTags=this.options.optionTags.slice()),this.options.routeSet&&this.options.routeSet.length&&(this.options.routeSet=this.options.routeSet.slice())),n&&n.length&&(this.extraHeaders=n.slice()),a&&(this.body={body:a.content,contentType:a.contentType}),this.method=e,this.ruri=t.clone(),this.fromURI=i.clone(),this.fromTag=this.options.fromTag?this.options.fromTag:Qe(),this.from=at.makeNameAddrHeader(this.fromURI,this.options.fromDisplayName,this.fromTag),this.toURI=r.clone(),this.toTag=this.options.toTag,this.to=at.makeNameAddrHeader(this.toURI,this.options.toDisplayName,this.toTag),this.callId=this.options.callId?this.options.callId:this.options.callIdPrefix+Ze(15),this.cseq=this.options.cseq,this.setHeader("route",this.options.routeSet),this.setHeader("via",""),this.setHeader("to",this.to.toString()),this.setHeader("from",this.from.toString()),this.setHeader("cseq",this.cseq+" "+this.method),this.setHeader("call-id",this.callId),this.setHeader("max-forwards","70")}static getDefaultOptions(){return{callId:"",callIdPrefix:"",cseq:1,toDisplayName:"",toTag:"",fromDisplayName:"",fromTag:"",forceRport:!1,hackViaTcp:!1,optionTags:["outbound"],routeSet:[],userAgentString:"sip.js",viaHost:""}}static makeNameAddrHeader(e,t,i){const r={};return i&&(r.tag=i),new We(e,t,r)}getHeader(e){const t=this.headers[et(e)];if(t){if(t[0])return t[0]}else{const t=new RegExp("^\\s*"+e+"\\s*:","i");for(const e of this.extraHeaders)if(t.test(e))return e.substring(e.indexOf(":")+1).trim()}}getHeaders(e){const t=[],i=this.headers[et(e)];if(i)for(const e of i)t.push(e);else{const i=new RegExp("^\\s*"+e+"\\s*:","i");for(const e of this.extraHeaders)i.test(e)&&t.push(e.substring(e.indexOf(":")+1).trim())}return t}hasHeader(e){if(this.headers[et(e)])return!0;{const t=new RegExp("^\\s*"+e+"\\s*:","i");for(const e of this.extraHeaders)if(t.test(e))return!0}return!1}setHeader(e,t){this.headers[et(e)]=t instanceof Array?t:[t]}setViaHeader(e,t="WSS"){this.options.hackViaTcp&&(t="TCP");let i="SIP/2.0/"+t;i+=" "+this.options.viaHost+";branch="+e,this.options.forceRport&&(i+=";rport"),this.setHeader("via",i),this.branch=e}toString(){let e="";e+=this.method+" "+this.ruri.toRaw()+" SIP/2.0\r\n";for(const t in this.headers)if(this.headers[t])for(const i of this.headers[t])e+=t+": "+i+"\r\n";for(const t of this.extraHeaders)e+=t.trim()+"\r\n";return e+="Supported: "+this.options.optionTags.join(", ")+"\r\n",e+="User-Agent: "+this.options.userAgentString+"\r\n",this.body?"string"==typeof this.body?(e+="Content-Length: "+tt(this.body)+"\r\n\r\n",e+=this.body):this.body.body&&this.body.contentType?(e+="Content-Type: "+this.body.contentType+"\r\n",e+="Content-Length: "+tt(this.body.body)+"\r\n\r\n",e+=this.body.body):e+="Content-Length: 0\r\n\r\n":e+="Content-Length: 0\r\n\r\n",e}}function ot(e){const t="string"==typeof e?e:e.body,i="string"==typeof e?"application/sdp":e.contentType;return{contentDisposition:ct(i),contentType:i,content:t}}function ht(e){let t,i,r;if(e instanceof st&&e.body){const s=e.parseHeader("Content-Disposition");t=s?s.type:void 0,i=e.parseHeader("Content-Type"),r=e.body}if(e instanceof nt&&e.body){const s=e.parseHeader("Content-Disposition");t=s?s.type:void 0,i=e.parseHeader("Content-Type"),r=e.body}if(e instanceof at&&e.body)if(t=e.getHeader("Content-Disposition"),i=e.getHeader("Content-Type"),"string"==typeof e.body){if(!i)throw new Error("Header content type header does not equal body content type.");r=e.body}else{if(i&&i!==e.body.contentType)throw new Error("Header content type header does not equal body content type.");i=e.body.contentType,r=e.body.body}if(dt(e)&&(t=e.contentDisposition,i=e.contentType,r=e.content),r){if(i&&!t&&(t=ct(i)),!t)throw new Error("Content disposition undefined.");if(!i)throw new Error("Content type undefined.");return{contentDisposition:t,contentType:i,content:r}}}function dt(e){return!(!e||"string"!=typeof e.content||"string"!=typeof e.contentType||void 0!==e.contentDisposition)||"string"==typeof e.contentDisposition}function ct(e){return"application/sdp"===e?"session":"render"}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function lt(e,t){return e(t={exports:{}},t.exports),t.exports}var gt,ut,pt,mt=lt(function(e,t){var i;e.exports=(i=i||function(e,t){var i=Object.create||function(){function e(){}return function(t){var i;return e.prototype=t,i=new e,e.prototype=null,i}}(),r={},s=r.lib={},n=s.Base={extend:function(e){var t=i(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},a=s.WordArray=n.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||h).stringify(this)},concat:function(e){var t=this.words,i=e.words,r=this.sigBytes,s=e.sigBytes;if(this.clamp(),r%4)for(var n=0;n>>2]>>>24-n%4*8&255;t[r+n>>>2]|=a<<24-(r+n)%4*8}else for(var n=0;n>>2]=i[n>>>2];return this.sigBytes+=s,this},clamp:function(){var t=this.words,i=this.sigBytes;t[i>>>2]&=4294967295<<32-i%4*8,t.length=e.ceil(i/4)},clone:function(){var e=n.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var i,r=[],s=function(t){var t=t,i=987654321,r=4294967295;return function(){var s=((i=36969*(65535&i)+(i>>16)&r)<<16)+(t=18e3*(65535&t)+(t>>16)&r)&r;return s/=4294967296,(s+=.5)*(e.random()>.5?1:-1)}},n=0;n>>2]>>>24-s%4*8&255;r.push((n>>>4).toString(16)),r.push((15&n).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,i=[],r=0;r>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new a.init(i,t/2)}},d=o.Latin1={stringify:function(e){for(var t=e.words,i=e.sigBytes,r=[],s=0;s>>2]>>>24-s%4*8&255;r.push(String.fromCharCode(n))}return r.join("")},parse:function(e){for(var t=e.length,i=[],r=0;r>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new a.init(i,t)}},c=o.Utf8={stringify:function(e){try{return decodeURIComponent(escape(d.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return d.parse(unescape(encodeURIComponent(e)))}},l=s.BufferedBlockAlgorithm=n.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=c.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var i=this._data,r=i.words,s=i.sigBytes,n=this.blockSize,o=4*n,h=s/o,d=(h=t?e.ceil(h):e.max((0|h)-this._minBufferSize,0))*n,c=e.min(4*d,s);if(d){for(var l=0;l>>24)|4278255360&(s<<24|s>>>8)}var n=this._hash.words,a=e[t+0],h=e[t+1],u=e[t+2],p=e[t+3],m=e[t+4],S=e[t+5],f=e[t+6],I=e[t+7],T=e[t+8],w=e[t+9],C=e[t+10],y=e[t+11],v=e[t+12],_=e[t+13],E=e[t+14],R=e[t+15],b=n[0],P=n[1],D=n[2],M=n[3];b=d(b,P,D,M,a,7,o[0]),M=d(M,b,P,D,h,12,o[1]),D=d(D,M,b,P,u,17,o[2]),P=d(P,D,M,b,p,22,o[3]),b=d(b,P,D,M,m,7,o[4]),M=d(M,b,P,D,S,12,o[5]),D=d(D,M,b,P,f,17,o[6]),P=d(P,D,M,b,I,22,o[7]),b=d(b,P,D,M,T,7,o[8]),M=d(M,b,P,D,w,12,o[9]),D=d(D,M,b,P,C,17,o[10]),P=d(P,D,M,b,y,22,o[11]),b=d(b,P,D,M,v,7,o[12]),M=d(M,b,P,D,_,12,o[13]),D=d(D,M,b,P,E,17,o[14]),b=c(b,P=d(P,D,M,b,R,22,o[15]),D,M,h,5,o[16]),M=c(M,b,P,D,f,9,o[17]),D=c(D,M,b,P,y,14,o[18]),P=c(P,D,M,b,a,20,o[19]),b=c(b,P,D,M,S,5,o[20]),M=c(M,b,P,D,C,9,o[21]),D=c(D,M,b,P,R,14,o[22]),P=c(P,D,M,b,m,20,o[23]),b=c(b,P,D,M,w,5,o[24]),M=c(M,b,P,D,E,9,o[25]),D=c(D,M,b,P,p,14,o[26]),P=c(P,D,M,b,T,20,o[27]),b=c(b,P,D,M,_,5,o[28]),M=c(M,b,P,D,u,9,o[29]),D=c(D,M,b,P,I,14,o[30]),b=l(b,P=c(P,D,M,b,v,20,o[31]),D,M,S,4,o[32]),M=l(M,b,P,D,T,11,o[33]),D=l(D,M,b,P,y,16,o[34]),P=l(P,D,M,b,E,23,o[35]),b=l(b,P,D,M,h,4,o[36]),M=l(M,b,P,D,m,11,o[37]),D=l(D,M,b,P,I,16,o[38]),P=l(P,D,M,b,C,23,o[39]),b=l(b,P,D,M,_,4,o[40]),M=l(M,b,P,D,a,11,o[41]),D=l(D,M,b,P,p,16,o[42]),P=l(P,D,M,b,f,23,o[43]),b=l(b,P,D,M,w,4,o[44]),M=l(M,b,P,D,v,11,o[45]),D=l(D,M,b,P,R,16,o[46]),b=g(b,P=l(P,D,M,b,u,23,o[47]),D,M,a,6,o[48]),M=g(M,b,P,D,I,10,o[49]),D=g(D,M,b,P,E,15,o[50]),P=g(P,D,M,b,S,21,o[51]),b=g(b,P,D,M,v,6,o[52]),M=g(M,b,P,D,p,10,o[53]),D=g(D,M,b,P,C,15,o[54]),P=g(P,D,M,b,h,21,o[55]),b=g(b,P,D,M,T,6,o[56]),M=g(M,b,P,D,R,10,o[57]),D=g(D,M,b,P,f,15,o[58]),P=g(P,D,M,b,_,21,o[59]),b=g(b,P,D,M,m,6,o[60]),M=g(M,b,P,D,y,10,o[61]),D=g(D,M,b,P,u,15,o[62]),P=g(P,D,M,b,w,21,o[63]),n[0]=n[0]+b|0,n[1]=n[1]+P|0,n[2]=n[2]+D|0,n[3]=n[3]+M|0},_doFinalize:function(){var t=this._data,i=t.words,r=8*this._nDataBytes,s=8*t.sigBytes;i[s>>>5]|=128<<24-s%32;var n=e.floor(r/4294967296),a=r;i[15+(s+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),i[14+(s+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),t.sigBytes=4*(i.length+1),this._process();for(var o=this._hash,h=o.words,d=0;d<4;d++){var c=h[d];h[d]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return o},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}});function d(e,t,i,r,s,n,a){var o=e+(t&i|~t&r)+s+a;return(o<>>32-n)+t}function c(e,t,i,r,s,n,a){var o=e+(t&r|i&~r)+s+a;return(o<>>32-n)+t}function l(e,t,i,r,s,n,a){var o=e+(t^i^r)+s+a;return(o<>>32-n)+t}function g(e,t,i,r,s,n,a){var o=e+(i^(t|~r))+s+a;return(o<>>32-n)+t}t.MD5=n._createHelper(h),t.HmacMD5=n._createHmacHelper(h)}(Math),i.MD5)});class ft{constructor(e,t,i){this.logger=e.getLogger("sipjs.digestauthentication"),this.username=t,this.password=i,this.nc=0,this.ncHex="00000000"}authenticate(e,t,i){if(this.algorithm=t.algorithm,this.realm=t.realm,this.nonce=t.nonce,this.opaque=t.opaque,this.stale=t.stale,this.algorithm){if("MD5"!==this.algorithm)return this.logger.warn("challenge with Digest algorithm different than 'MD5', authentication aborted"),!1}else this.algorithm="MD5";if(!this.realm)return this.logger.warn("challenge without Digest realm, authentication aborted"),!1;if(!this.nonce)return this.logger.warn("challenge without Digest nonce, authentication aborted"),!1;if(t.qop)if(t.qop.indexOf("auth")>-1)this.qop="auth";else{if(!(t.qop.indexOf("auth-int")>-1))return this.logger.warn("challenge without Digest qop different than 'auth' or 'auth-int', authentication aborted"),!1;this.qop="auth-int"}else this.qop=void 0;return this.method=e.method,this.uri=e.ruri,this.cnonce=Ze(12),this.nc+=1,this.updateNcHex(),4294967296===this.nc&&(this.nc=1,this.ncHex="00000001"),this.calculateResponse(i),!0}toString(){const e=[];if(!this.response)throw new Error("response field does not exist, cannot generate Authorization header");return e.push("algorithm="+this.algorithm),e.push('username="'+this.username+'"'),e.push('realm="'+this.realm+'"'),e.push('nonce="'+this.nonce+'"'),e.push('uri="'+this.uri+'"'),e.push('response="'+this.response+'"'),this.opaque&&e.push('opaque="'+this.opaque+'"'),this.qop&&(e.push("qop="+this.qop),e.push('cnonce="'+this.cnonce+'"'),e.push("nc="+this.ncHex)),"Digest "+e.join(", ")}updateNcHex(){const e=Number(this.nc).toString(16);this.ncHex="00000000".substr(0,8-e.length)+e}calculateResponse(e){let t;const i=St(this.username+":"+this.realm+":"+this.password);"auth"===this.qop?(t=St(this.method+":"+this.uri),this.response=St(i+":"+this.nonce+":"+this.ncHex+":"+this.cnonce+":auth:"+t)):"auth-int"===this.qop?(t=St(this.method+":"+this.uri+":"+St(e||"")),this.response=St(i+":"+this.nonce+":"+this.ncHex+":"+this.cnonce+":auth-int:"+t)):void 0===this.qop&&(t=St(this.method+":"+this.uri),this.response=St(i+":"+this.nonce+":"+t))}}function It(e,t){const i="\r\n";if(t.statusCode<100||t.statusCode>699)throw new TypeError("Invalid statusCode: "+t.statusCode);const r=t.reasonPhrase?t.reasonPhrase:Xe(t.statusCode);let s="SIP/2.0 "+t.statusCode+" "+r+i;t.statusCode>=100&&t.statusCode,t.statusCode;const n="From: "+e.getHeader("From")+i,a="Call-ID: "+e.callId+i,o="CSeq: "+e.cseq+" "+e.method+i,h=e.getHeaders("via").reduce((e,t)=>e+"Via: "+t+i,"");let d="To: "+e.getHeader("to");if(t.statusCode>100&&!e.parseHeader("to").hasParam("tag")){let e=t.toTag;e||(e=Qe()),d+=";tag="+e}d+=i;let c="";t.supported&&(c="Supported: "+t.supported.join(", ")+i);let l="";t.userAgent&&(l="User-Agent: "+t.userAgent+i);let g="";return t.extraHeaders&&(g=t.extraHeaders.reduce((e,t)=>e+t.trim()+i,"")),s+=h,s+=n,s+=d,s+=o,s+=a,s+=c,s+=l,s+=g,t.body?(s+="Content-Type: "+t.body.contentType+i,s+="Content-Length: "+tt(t.body.content)+i+i,s+=t.body.content):s+="Content-Length: 0\r\n\r\n",{message:s}}!function(e){function t(e,t){let i=t,r=0,s=0;if(e.substring(i,i+2).match(/(^\r\n)/))return-2;for(;0===r;){if(-1===(s=e.indexOf("\r\n",i)))return s;!e.substring(s+2,s+4).match(/(^\r\n)/)&&e.charAt(s+2).match(/(^\s+)/)?i=s+2:r=s}return r}function i(e,t,i,r){const s=t.indexOf(":",i),n=t.substring(i,s).trim(),a=t.substring(s+1,r).trim();let o;switch(n.toLowerCase()){case"via":case"v":e.addHeader("via",a),1===e.getHeaders("via").length?(o=e.parseHeader("Via"))&&(e.via=o,e.viaBranch=o.branch):o=0;break;case"from":case"f":e.setHeader("from",a),(o=e.parseHeader("from"))&&(e.from=o,e.fromTag=o.getParam("tag"));break;case"to":case"t":e.setHeader("to",a),(o=e.parseHeader("to"))&&(e.to=o,e.toTag=o.getParam("tag"));break;case"record-route":if(-1===(o=Ye.parse(a,"Record_Route"))){o=void 0;break}if(!(o instanceof Array)){o=void 0;break}o.forEach(t=>{e.addHeader("record-route",a.substring(t.position,t.offset)),e.headers["Record-Route"][e.getHeaders("record-route").length-1].parsed=t.parsed});break;case"call-id":case"i":e.setHeader("call-id",a),(o=e.parseHeader("call-id"))&&(e.callId=a);break;case"contact":case"m":if(-1===(o=Ye.parse(a,"Contact"))){o=void 0;break}if(!(o instanceof Array)){o=void 0;break}o.forEach(t=>{e.addHeader("contact",a.substring(t.position,t.offset)),e.headers.Contact[e.getHeaders("contact").length-1].parsed=t.parsed});break;case"content-length":case"l":e.setHeader("content-length",a),o=e.parseHeader("content-length");break;case"content-type":case"c":e.setHeader("content-type",a),o=e.parseHeader("content-type");break;case"cseq":e.setHeader("cseq",a),(o=e.parseHeader("cseq"))&&(e.cseq=o.value),e instanceof nt&&(e.method=o.method);break;case"max-forwards":e.setHeader("max-forwards",a),o=e.parseHeader("max-forwards");break;case"www-authenticate":e.setHeader("www-authenticate",a),o=e.parseHeader("www-authenticate");break;case"proxy-authenticate":e.setHeader("proxy-authenticate",a),o=e.parseHeader("proxy-authenticate");break;case"refer-to":case"r":e.setHeader("refer-to",a),(o=e.parseHeader("refer-to"))&&(e.referTo=o);break;default:e.addHeader(n.toLowerCase(),a),o=0}return void 0!==o||{error:"error parsing header '"+n+"'"}}e.getHeader=t,e.parseHeader=i,e.parseMessage=function(e,r){let s=0,n=e.indexOf("\r\n");if(-1===n)return void r.warn("no CRLF found, not a SIP message, discarded");const a=e.substring(0,n),o=Ye.parse(a,"Request_Response");let h,d;if(-1!==o){for(o.status_code?((h=new nt).statusCode=o.status_code,h.reasonPhrase=o.reason_phrase):((h=new st).method=o.method,h.ruri=o.uri),h.data=e,s=n+2;;){if(-2===(n=t(e,s))){d=s+2;break}if(-1===n)return void r.error("malformed message");if(!0!==i(h,e,s,n))return void r.error(o.error);s=n+2}return h.hasHeader("content-length")?h.body=e.substr(d,Number(h.getHeader("content-length"))):h.body=e.substring(d),h}r.warn('error parsing first line of SIP message: "'+a+'"')}}(gt||(gt={}));class Tt{constructor(e,t){this.core=e,this.dialogState=t,this.core.dialogs.set(this.id,this)}static initialDialogStateForUserAgentClient(e,t){const i=t.getHeaders("record-route").reverse(),r=t.parseHeader("contact");if(!r)throw new Error("Contact undefined.");if(!(r instanceof We))throw new Error("Contact not instance of NameAddrHeader.");const s=r.uri,n=e.cseq,a=e.callId,o=e.fromTag,h=t.toTag;if(!a)throw new Error("Call id undefined.");if(!o)throw new Error("From tag undefined.");if(!h)throw new Error("To tag undefined.");if(!e.from)throw new Error("From undefined.");if(!e.to)throw new Error("To undefined.");const d=e.from.uri,c=e.to.uri;if(!t.statusCode)throw new Error("Incoming response status code undefined.");return{id:a+o+h,early:t.statusCode<200,callId:a,localTag:o,remoteTag:h,localSequenceNumber:n,remoteSequenceNumber:void 0,localURI:d,remoteURI:c,remoteTarget:s,routeSet:i,secure:!1}}static initialDialogStateForUserAgentServer(e,t,i=!1){const r=e.getHeaders("record-route"),s=e.parseHeader("contact");if(!s)throw new Error("Contact undefined.");if(!(s instanceof We))throw new Error("Contact not instance of NameAddrHeader.");const n=s.uri,a=e.cseq,o=e.callId,h=t,d=e.fromTag,c=e.from.uri;return{id:o+h+d,early:i,callId:o,localTag:h,remoteTag:d,localSequenceNumber:void 0,remoteSequenceNumber:a,localURI:e.to.uri,remoteURI:c,remoteTarget:n,routeSet:r,secure:!1}}dispose(){this.core.dialogs.delete(this.id)}get id(){return this.dialogState.id}get early(){return this.dialogState.early}get callId(){return this.dialogState.callId}get localTag(){return this.dialogState.localTag}get remoteTag(){return this.dialogState.remoteTag}get localSequenceNumber(){return this.dialogState.localSequenceNumber}get remoteSequenceNumber(){return this.dialogState.remoteSequenceNumber}get localURI(){return this.dialogState.localURI}get remoteURI(){return this.dialogState.remoteURI}get remoteTarget(){return this.dialogState.remoteTarget}get routeSet(){return this.dialogState.routeSet}get secure(){return this.dialogState.secure}get userAgentCore(){return this.core}confirm(){this.dialogState.early=!1}receiveRequest(e){if(e.method!==Le.ACK){if(this.remoteSequenceNumber){if(e.cseq<=this.remoteSequenceNumber)throw new Error("Out of sequence in dialog request. Did you forget to call sequenceGuard()?");this.dialogState.remoteSequenceNumber=e.cseq}this.remoteSequenceNumber||(this.dialogState.remoteSequenceNumber=e.cseq)}}recomputeRouteSet(e){this.dialogState.routeSet=e.getHeaders("record-route").reverse()}createOutgoingRequestMessage(e,t){const i=this.remoteURI,r=this.remoteTag,s=this.localURI,n=this.localTag,a=this.callId;let o;o=t&&t.cseq?t.cseq:this.dialogState.localSequenceNumber?this.dialogState.localSequenceNumber+=1:this.dialogState.localSequenceNumber=1;const h=this.remoteTarget,d=this.routeSet,c=t&&t.extraHeaders,l=t&&t.body;return this.userAgentCore.makeOutgoingRequestMessage(e,h,s,i,{callId:a,cseq:o,fromTag:n,toTag:r,routeSet:d},c,l)}sequenceGuard(e){return e.method===Le.ACK||(!(this.remoteSequenceNumber&&e.cseq<=this.remoteSequenceNumber)||(this.core.replyStateless(e,{statusCode:500}),!1))}}!function(e){e.Initial="Initial",e.Early="Early",e.AckWait="AckWait",e.Confirmed="Confirmed",e.Terminated="Terminated"}(ut||(ut={})),function(e){e.Initial="Initial",e.HaveLocalOffer="HaveLocalOffer",e.HaveRemoteOffer="HaveRemoteOffer",e.Stable="Stable",e.Closed="Closed"}(pt||(pt={}));const wt=500,Ct={T1:wt,T2:4e3,T4:5e3,TIMER_B:32e3,TIMER_D:0,TIMER_F:32e3,TIMER_H:32e3,TIMER_I:0,TIMER_J:0,TIMER_K:0,TIMER_L:32e3,TIMER_M:32e3,TIMER_N:32e3,PROVISIONAL_RESPONSE_INTERVAL:6e4};class yt extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}}class vt extends yt{constructor(e){super(e||"Transaction state error.")}}class _t extends yt{constructor(e){super(e||"Unspecified transport error.")}}class Et extends s{constructor(e,t,i,r,s){super(),this._transport=e,this._user=t,this._id=i,this._state=r,this.logger=t.loggerFactory.getLogger(s,i),this.logger.debug(`Constructing ${this.typeToString()} with id ${this.id}.`)}dispose(){this.logger.debug(`Destroyed ${this.typeToString()} with id ${this.id}.`)}get id(){return this._id}get kind(){throw new Error("Invalid kind.")}get state(){return this._state}get transport(){return this._transport}on(e,t){return super.on(e,t)}logTransportError(e,t){this.logger.error(e.message),this.logger.error(`Transport error occurred in ${this.typeToString()} with id ${this.id}.`),this.logger.error(t)}send(e){return this.transport.send(e).catch(e=>{if(e instanceof _t)throw this.onTransportError(e),e;let t;throw t=e&&"string"==typeof e.message?new _t(e.message):new _t,this.onTransportError(t),t})}setState(e){this.logger.debug(`State change to "${e}" on ${this.typeToString()} with id ${this.id}.`),this._state=e,this._user.onStateChange&&this._user.onStateChange(e),this.emit("stateChanged")}typeToString(){return"UnknownType"}}class Rt extends Et{constructor(e,t,i,r,s){super(t,i,Rt.makeId(e),r,s),this._request=e,this.user=i;const n=t.server&&t.server.scheme?t.server.scheme:void 0;e.setViaHeader(this.id,n)}static makeId(e){if("CANCEL"===e.method){if(!e.branch)throw new Error("Outgoing CANCEL request without a branch.");return e.branch}return"z9hG4bK"+Math.floor(1e7*Math.random())}get request(){return this._request}onRequestTimeout(){this.user.onRequestTimeout&&this.user.onRequestTimeout()}}var bt,Pt;!function(e){e.Accepted="Accepted",e.Calling="Calling",e.Completed="Completed",e.Confirmed="Confirmed",e.Proceeding="Proceeding",e.Terminated="Terminated",e.Trying="Trying"}(bt||(bt={}));class Dt extends Rt{constructor(e,t,i){super(e,t,i,bt.Calling,"sip.transaction.ict"),this.ackRetransmissionCache=new Map,this.B=setTimeout(()=>this.timer_B(),Ct.TIMER_B),this.send(e.toString()).catch(e=>{this.logTransportError(e,"Failed to send initial outgoing request.")})}dispose(){this.B&&(clearTimeout(this.B),this.B=void 0),this.D&&(clearTimeout(this.D),this.D=void 0),this.M&&(clearTimeout(this.M),this.M=void 0),super.dispose()}get kind(){return"ict"}ackResponse(e){const t=e.toTag;if(!t)throw new Error("To tag undefined.");const i="z9hG4bK"+Math.floor(1e7*Math.random()),r=this.transport.server&&this.transport.server.scheme?this.transport.server.scheme:void 0;e.setViaHeader(i,r),this.ackRetransmissionCache.set(t,e),this.send(e.toString()).catch(e=>{this.logTransportError(e,"Failed to send ACK to 2xx response.")})}receiveResponse(e){const t=e.statusCode;if(!t||t<100||t>699)throw new Error(`Invalid status code ${t}`);switch(this.state){case bt.Calling:if(t>=100&&t<=199)return this.stateTransition(bt.Proceeding),void(this.user.receiveResponse&&this.user.receiveResponse(e));if(t>=200&&t<=299)return this.ackRetransmissionCache.set(e.toTag,void 0),this.stateTransition(bt.Accepted),void(this.user.receiveResponse&&this.user.receiveResponse(e));if(t>=300&&t<=699)return this.stateTransition(bt.Completed),this.ack(e),void(this.user.receiveResponse&&this.user.receiveResponse(e));break;case bt.Proceeding:if(t>=100&&t<=199)return void(this.user.receiveResponse&&this.user.receiveResponse(e));if(t>=200&&t<=299)return this.ackRetransmissionCache.set(e.toTag,void 0),this.stateTransition(bt.Accepted),void(this.user.receiveResponse&&this.user.receiveResponse(e));if(t>=300&&t<=699)return this.stateTransition(bt.Completed),this.ack(e),void(this.user.receiveResponse&&this.user.receiveResponse(e));break;case bt.Accepted:if(t>=200&&t<=299){if(!this.ackRetransmissionCache.has(e.toTag))return this.ackRetransmissionCache.set(e.toTag,void 0),void(this.user.receiveResponse&&this.user.receiveResponse(e));const t=this.ackRetransmissionCache.get(e.toTag);return t?void this.send(t.toString()).catch(e=>{this.logTransportError(e,"Failed to send retransmission of ACK to 2xx response.")}):void 0}break;case bt.Completed:if(t>=300&&t<=699)return void this.ack(e);break;case bt.Terminated:break;default:throw new Error(`Invalid state ${this.state}`)}const i=`Received unexpected ${t} response while in state ${this.state}.`;this.logger.warn(i)}onTransportError(e){this.user.onTransportError&&this.user.onTransportError(e),this.stateTransition(bt.Terminated,!0)}typeToString(){return"INVITE client transaction"}ack(e){const t=this.request.ruri,i=this.request.callId,r=this.request.cseq,s=this.request.getHeader("from"),n=e.getHeader("to"),a=this.request.getHeader("via"),o=this.request.getHeader("route");if(!s)throw new Error("From undefined.");if(!n)throw new Error("To undefined.");if(!a)throw new Error("Via undefined.");let h=`ACK ${t} SIP/2.0\r\n`;o&&(h+=`Route: ${o}\r\n`),h+=`Via: ${a}\r\n`,h+=`To: ${n}\r\n`,h+=`From: ${s}\r\n`,h+=`Call-ID: ${i}\r\n`,h+=`CSeq: ${r} ACK\r\n`,h+="Max-Forwards: 70\r\n",h+="Content-Length: 0\r\n\r\n",this.send(h).catch(e=>{this.logTransportError(e,"Failed to send ACK to non-2xx response.")})}stateTransition(e,t=!1){const i=()=>{throw new Error(`Invalid state transition from ${this.state} to ${e}`)};switch(e){case bt.Calling:i();break;case bt.Proceeding:this.state!==bt.Calling&&i();break;case bt.Accepted:case bt.Completed:this.state!==bt.Calling&&this.state!==bt.Proceeding&&i();break;case bt.Terminated:this.state!==bt.Calling&&this.state!==bt.Accepted&&this.state!==bt.Completed&&(t||i());break;default:i()}this.B&&(clearTimeout(this.B),this.B=void 0),bt.Proceeding,e===bt.Completed&&(this.D=setTimeout(()=>this.timer_D(),Ct.TIMER_D)),e===bt.Accepted&&(this.M=setTimeout(()=>this.timer_M(),Ct.TIMER_M)),e===bt.Terminated&&this.dispose(),this.setState(e)}timer_A(){}timer_B(){this.logger.debug(`Timer B expired for INVITE client transaction ${this.id}.`),this.state===bt.Calling&&(this.onRequestTimeout(),this.stateTransition(bt.Terminated))}timer_D(){this.logger.debug(`Timer D expired for INVITE client transaction ${this.id}.`),this.state===bt.Completed&&this.stateTransition(bt.Terminated)}timer_M(){this.logger.debug(`Timer M expired for INVITE client transaction ${this.id}.`),this.state===bt.Accepted&&this.stateTransition(bt.Terminated)}}class Mt extends Et{constructor(e,t,i,r,s){super(t,i,e.viaBranch,r,s),this._request=e,this.user=i}get request(){return this._request}}class Ot extends Mt{constructor(e,t,i){super(e,t,i,bt.Proceeding,"sip.transaction.ist")}dispose(){this.stopProgressExtensionTimer(),this.H&&(clearTimeout(this.H),this.H=void 0),this.I&&(clearTimeout(this.I),this.I=void 0),this.L&&(clearTimeout(this.L),this.L=void 0),super.dispose()}get kind(){return"ist"}receiveRequest(e){switch(this.state){case bt.Proceeding:if(e.method===Le.INVITE)return void(this.lastProvisionalResponse&&this.send(this.lastProvisionalResponse).catch(e=>{this.logTransportError(e,"Failed to send retransmission of provisional response.")}));break;case bt.Accepted:if(e.method===Le.INVITE)return;break;case bt.Completed:if(e.method===Le.INVITE){if(!this.lastFinalResponse)throw new Error("Last final response undefined.");return void this.send(this.lastFinalResponse).catch(e=>{this.logTransportError(e,"Failed to send retransmission of final response.")})}if(e.method===Le.ACK)return void this.stateTransition(bt.Confirmed);break;case bt.Confirmed:case bt.Terminated:if(e.method===Le.INVITE||e.method===Le.ACK)return;break;default:throw new Error(`Invalid state ${this.state}`)}const t=`INVITE server transaction received unexpected ${e.method} request while in state ${this.state}.`;this.logger.warn(t)}receiveResponse(e,t){if(e<100||e>699)throw new Error(`Invalid status code ${e}`);switch(this.state){case bt.Proceeding:if(e>=100&&e<=199)return this.lastProvisionalResponse=t,e>100&&this.startProgressExtensionTimer(),void this.send(t).catch(e=>{this.logTransportError(e,"Failed to send 1xx response.")});if(e>=200&&e<=299)return this.lastFinalResponse=t,this.stateTransition(bt.Accepted),void this.send(t).catch(e=>{this.logTransportError(e,"Failed to send 2xx response.")});if(e>=300&&e<=699)return this.lastFinalResponse=t,this.stateTransition(bt.Completed),void this.send(t).catch(e=>{this.logTransportError(e,"Failed to send non-2xx final response.")});break;case bt.Accepted:if(e>=200&&e<=299)return void this.send(t).catch(e=>{this.logTransportError(e,"Failed to send 2xx response.")});break;case bt.Completed:case bt.Confirmed:case bt.Terminated:break;default:throw new Error(`Invalid state ${this.state}`)}const i=`INVITE server transaction received unexpected ${e} response from TU while in state ${this.state}.`;throw this.logger.error(i),new Error(i)}retransmitAcceptedResponse(){this.state===bt.Accepted&&this.lastFinalResponse&&this.send(this.lastFinalResponse).catch(e=>{this.logTransportError(e,"Failed to send 2xx response.")})}onTransportError(e){this.user.onTransportError&&this.user.onTransportError(e)}typeToString(){return"INVITE server transaction"}stateTransition(e){const t=()=>{throw new Error(`Invalid state transition from ${this.state} to ${e}`)};switch(e){case bt.Proceeding:t();break;case bt.Accepted:case bt.Completed:this.state!==bt.Proceeding&&t();break;case bt.Confirmed:this.state!==bt.Completed&&t();break;case bt.Terminated:this.state!==bt.Accepted&&this.state!==bt.Completed&&this.state!==bt.Confirmed&&t();break;default:t()}this.stopProgressExtensionTimer(),e===bt.Accepted&&(this.L=setTimeout(()=>this.timer_L(),Ct.TIMER_L)),e===bt.Completed&&(this.H=setTimeout(()=>this.timer_H(),Ct.TIMER_H)),e===bt.Confirmed&&(this.I=setTimeout(()=>this.timer_I(),Ct.TIMER_I)),e===bt.Terminated&&this.dispose(),this.setState(e)}startProgressExtensionTimer(){void 0===this.progressExtensionTimer&&(this.progressExtensionTimer=setInterval(()=>{if(this.logger.debug(`Progress extension timer expired for INVITE server transaction ${this.id}.`),!this.lastProvisionalResponse)throw new Error("Last provisional response undefined.");this.send(this.lastProvisionalResponse).catch(e=>{this.logTransportError(e,"Failed to send retransmission of provisional response.")})},Ct.PROVISIONAL_RESPONSE_INTERVAL))}stopProgressExtensionTimer(){void 0!==this.progressExtensionTimer&&(clearInterval(this.progressExtensionTimer),this.progressExtensionTimer=void 0)}timer_G(){}timer_H(){this.logger.debug(`Timer H expired for INVITE server transaction ${this.id}.`),this.state===bt.Completed&&(this.logger.warn("ACK to negative final response was never received, terminating transaction."),this.stateTransition(bt.Terminated))}timer_I(){this.logger.debug(`Timer I expired for INVITE server transaction ${this.id}.`),this.stateTransition(bt.Terminated)}timer_L(){this.logger.debug(`Timer L expired for INVITE server transaction ${this.id}.`),this.state===bt.Accepted&&this.stateTransition(bt.Terminated)}}class At extends Rt{constructor(e,t,i){super(e,t,i,bt.Trying,"sip.transaction.nict"),this.F=setTimeout(()=>this.timer_F(),Ct.TIMER_F),this.send(e.toString()).catch(e=>{this.logTransportError(e,"Failed to send initial outgoing request.")})}dispose(){this.F&&(clearTimeout(this.F),this.F=void 0),this.K&&(clearTimeout(this.K),this.K=void 0),super.dispose()}get kind(){return"nict"}receiveResponse(e){const t=e.statusCode;if(!t||t<100||t>699)throw new Error(`Invalid status code ${t}`);switch(this.state){case bt.Trying:if(t>=100&&t<=199)return this.stateTransition(bt.Proceeding),void(this.user.receiveResponse&&this.user.receiveResponse(e));if(t>=200&&t<=699)return this.stateTransition(bt.Completed),408===t?void this.onRequestTimeout():void(this.user.receiveResponse&&this.user.receiveResponse(e));break;case bt.Proceeding:if(t>=100&&t<=199&&this.user.receiveResponse)return this.user.receiveResponse(e);if(t>=200&&t<=699)return this.stateTransition(bt.Completed),408===t?void this.onRequestTimeout():void(this.user.receiveResponse&&this.user.receiveResponse(e));case bt.Completed:case bt.Terminated:return;default:throw new Error(`Invalid state ${this.state}`)}const i=`Non-INVITE client transaction received unexpected ${t} response while in state ${this.state}.`;this.logger.warn(i)}onTransportError(e){this.user.onTransportError&&this.user.onTransportError(e),this.stateTransition(bt.Terminated,!0)}typeToString(){return"non-INVITE client transaction"}stateTransition(e,t=!1){const i=()=>{throw new Error(`Invalid state transition from ${this.state} to ${e}`)};switch(e){case bt.Trying:i();break;case bt.Proceeding:this.state!==bt.Trying&&i();break;case bt.Completed:this.state!==bt.Trying&&this.state!==bt.Proceeding&&i();break;case bt.Terminated:this.state!==bt.Trying&&this.state!==bt.Proceeding&&this.state!==bt.Completed&&(t||i());break;default:i()}e===bt.Completed&&(this.F&&(clearTimeout(this.F),this.F=void 0),this.K=setTimeout(()=>this.timer_K(),Ct.TIMER_K)),e===bt.Terminated&&this.dispose(),this.setState(e)}timer_F(){this.logger.debug(`Timer F expired for non-INVITE client transaction ${this.id}.`),this.state!==bt.Trying&&this.state!==bt.Proceeding||(this.onRequestTimeout(),this.stateTransition(bt.Terminated))}timer_K(){this.state===bt.Completed&&this.stateTransition(bt.Terminated)}}class xt extends Mt{constructor(e,t,i){super(e,t,i,bt.Trying,"sip.transaction.nist")}dispose(){this.J&&(clearTimeout(this.J),this.J=void 0),super.dispose()}get kind(){return"nist"}receiveRequest(e){switch(this.state){case bt.Trying:break;case bt.Proceeding:if(!this.lastResponse)throw new Error("Last response undefined.");this.send(this.lastResponse).catch(e=>{this.logTransportError(e,"Failed to send retransmission of provisional response.")});break;case bt.Completed:if(!this.lastResponse)throw new Error("Last response undefined.");this.send(this.lastResponse).catch(e=>{this.logTransportError(e,"Failed to send retransmission of final response.")});break;case bt.Terminated:break;default:throw new Error(`Invalid state ${this.state}`)}}receiveResponse(e,t){if(e<100||e>699)throw new Error(`Invalid status code ${e}`);if(e>100&&e<=199)throw new Error("Provisional response other than 100 not allowed.");switch(this.state){case bt.Trying:if(this.lastResponse=t,e>=100&&e<200)return this.stateTransition(bt.Proceeding),void this.send(t).catch(e=>{this.logTransportError(e,"Failed to send provisional response.")});if(e>=200&&e<=699)return this.stateTransition(bt.Completed),void this.send(t).catch(e=>{this.logTransportError(e,"Failed to send final response.")});break;case bt.Proceeding:if(this.lastResponse=t,e>=200&&e<=699)return this.stateTransition(bt.Completed),void this.send(t).catch(e=>{this.logTransportError(e,"Failed to send final response.")});break;case bt.Completed:return;case bt.Terminated:break;default:throw new Error(`Invalid state ${this.state}`)}const i=`Non-INVITE server transaction received unexpected ${e} response from TU while in state ${this.state}.`;throw this.logger.error(i),new Error(i)}onTransportError(e){this.user.onTransportError&&this.user.onTransportError(e),this.stateTransition(bt.Terminated,!0)}typeToString(){return"non-INVITE server transaction"}stateTransition(e,t=!1){const i=()=>{throw new Error(`Invalid state transition from ${this.state} to ${e}`)};switch(e){case bt.Trying:i();break;case bt.Proceeding:this.state!==bt.Trying&&i();break;case bt.Completed:this.state!==bt.Trying&&this.state!==bt.Proceeding&&i();break;case bt.Terminated:this.state!==bt.Proceeding&&this.state!==bt.Completed&&(t||i());break;default:i()}e===bt.Completed&&(this.J=setTimeout(()=>this.timer_J(),Ct.TIMER_J)),e===bt.Terminated&&this.dispose(),this.setState(e)}timer_J(){this.logger.debug(`Timer J expired for NON-INVITE server transaction ${this.id}.`),this.state===bt.Completed&&this.stateTransition(bt.Terminated)}}class qt{constructor(e,t,i,r){this.transactionConstructor=e,this.core=t,this.message=i,this.delegate=r,this.challenged=!1,this.stale=!1,this.logger=this.loggerFactory.getLogger("sip.user-agent-client"),this.init()}dispose(){this.transaction.dispose()}get loggerFactory(){return this.core.loggerFactory}get transaction(){if(!this._transaction)throw new Error("Transaction undefined.");return this._transaction}cancel(e,t={}){if(!this.transaction)throw new Error("Transaction undefined.");if(!this.message.to)throw new Error("To undefined.");if(!this.message.from)throw new Error("From undefined.");const i=this.core.makeOutgoingRequestMessage(Le.CANCEL,this.message.ruri,this.message.from.uri,this.message.to.uri,{toTag:this.message.toTag,fromTag:this.message.fromTag,callId:this.message.callId,cseq:this.message.cseq},t.extraHeaders);if(i.branch=this.message.branch,this.message.headers.Route&&(i.headers.Route=this.message.headers.Route),e&&i.setHeader("Reason",e),this.transaction.state===bt.Proceeding){new qt(At,this.core,i)}else this.transaction.once("stateChanged",()=>{if(this.transaction&&this.transaction.state===bt.Proceeding){new qt(At,this.core,i)}});return i}authenticationGuard(e){const t=e.statusCode;if(!t)throw new Error("Response status code undefined.");if(401!==t&&407!==t)return!0;let i,r;if(401===t?(i=e.parseHeader("www-authenticate"),r="authorization"):(i=e.parseHeader("proxy-authenticate"),r="proxy-authorization"),!i)return this.logger.warn(t+" with wrong or missing challenge, cannot authenticate"),!0;if(this.challenged&&(this.stale||!0!==i.stale))return this.logger.warn(t+" apparently in authentication loop, cannot authenticate"),!0;if(!this.credentials&&(this.credentials=this.core.configuration.authenticationFactory(),!this.credentials))return this.logger.warn("Unable to obtain credentials, cannot authenticate"),!0;if(!this.credentials.authenticate(this.message,i))return!0;this.challenged=!0,i.stale&&(this.stale=!0);const s=this.message.cseq+=1;return this.message.setHeader("cseq",s+" "+this.message.method),this.message.setHeader(r,this.credentials.toString()),this.init(),!1}onRequestTimeout(){this.logger.warn("User agent client request timed out. Generating internal 408 Request Timeout.");const e=new nt;e.statusCode=408,e.reasonPhrase="Request Timeout",this.receiveResponse(e)}onTransportError(e){this.logger.error(e.message),this.logger.error("User agent client request transport error. Generating internal 503 Service Unavailable.");const t=new nt;t.statusCode=503,t.reasonPhrase="Service Unavailable",this.receiveResponse(t)}receiveResponse(e){if(!this.authenticationGuard(e))return;const t=e.statusCode?e.statusCode.toString():"";if(!t)throw new Error("Response status code undefined.");switch(!0){case/^100$/.test(t):this.delegate&&this.delegate.onTrying&&this.delegate.onTrying({message:e});break;case/^1[0-9]{2}$/.test(t):this.delegate&&this.delegate.onProgress&&this.delegate.onProgress({message:e});break;case/^2[0-9]{2}$/.test(t):this.delegate&&this.delegate.onAccept&&this.delegate.onAccept({message:e});break;case/^3[0-9]{2}$/.test(t):this.delegate&&this.delegate.onRedirect&&this.delegate.onRedirect({message:e});break;case/^[4-6][0-9]{2}$/.test(t):this.delegate&&this.delegate.onReject&&this.delegate.onReject({message:e});break;default:throw new Error(`Invalid status code ${t}`)}}init(){const e={loggerFactory:this.loggerFactory,onRequestTimeout:()=>this.onRequestTimeout(),onStateChange:e=>{e===bt.Terminated&&(this.core.userAgentClients.delete(i),t===this._transaction&&this.dispose())},onTransportError:e=>this.onTransportError(e),receiveResponse:e=>this.receiveResponse(e)},t=new this.transactionConstructor(this.message,this.core.transport,e);this._transaction=t;const i=t.id+t.request.method;this.core.userAgentClients.set(i,this)}}class Nt extends qt{constructor(e,t,i){const r=e.createOutgoingRequestMessage(Le.BYE,i);super(At,e.userAgentCore,r,t),e.dispose()}}class Ft{constructor(e,t,i,r){this.transactionConstructor=e,this.core=t,this.message=i,this.delegate=r,this.logger=this.loggerFactory.getLogger("sip.user-agent-server"),this.toTag=i.toTag?i.toTag:Qe(),this.init()}dispose(){this.transaction.dispose()}get loggerFactory(){return this.core.loggerFactory}get transaction(){if(!this._transaction)throw new Error("Transaction undefined.");return this._transaction}accept(e={statusCode:200}){if(!this.acceptable)throw new vt(`${this.message.method} not acceptable in state ${this.transaction.state}.`);const t=e.statusCode;if(t<200||t>299)throw new TypeError(`Invalid statusCode: ${t}`);return this.reply(e)}progress(e={statusCode:180}){if(!this.progressable)throw new vt(`${this.message.method} not progressable in state ${this.transaction.state}.`);const t=e.statusCode;if(t<101||t>199)throw new TypeError(`Invalid statusCode: ${t}`);return this.reply(e)}redirect(e,t={statusCode:302}){if(!this.redirectable)throw new vt(`${this.message.method} not redirectable in state ${this.transaction.state}.`);const i=t.statusCode;if(i<300||i>399)throw new TypeError(`Invalid statusCode: ${i}`);const r=new Array;return e.forEach(e=>r.push(`Contact: ${e.toString()}`)),t.extraHeaders=(t.extraHeaders||[]).concat(r),this.reply(t)}reject(e={statusCode:480}){if(!this.rejectable)throw new vt(`${this.message.method} not rejectable in state ${this.transaction.state}.`);const t=e.statusCode;if(t<400||t>699)throw new TypeError(`Invalid statusCode: ${t}`);return this.reply(e)}trying(e){if(!this.tryingable)throw new vt(`${this.message.method} not tryingable in state ${this.transaction.state}.`);return this.reply({statusCode:100})}receiveCancel(e){this.delegate&&this.delegate.onCancel&&this.delegate.onCancel(e)}get acceptable(){if(this.transaction instanceof Ot)return this.transaction.state===bt.Proceeding||this.transaction.state===bt.Accepted;if(this.transaction instanceof xt)return this.transaction.state===bt.Trying||this.transaction.state===bt.Proceeding;throw new Error("Unknown transaction type.")}get progressable(){if(this.transaction instanceof Ot)return this.transaction.state===bt.Proceeding;if(this.transaction instanceof xt)return!1;throw new Error("Unknown transaction type.")}get redirectable(){if(this.transaction instanceof Ot)return this.transaction.state===bt.Proceeding;if(this.transaction instanceof xt)return this.transaction.state===bt.Trying||this.transaction.state===bt.Proceeding;throw new Error("Unknown transaction type.")}get rejectable(){if(this.transaction instanceof Ot)return this.transaction.state===bt.Proceeding;if(this.transaction instanceof xt)return this.transaction.state===bt.Trying||this.transaction.state===bt.Proceeding;throw new Error("Unknown transaction type.")}get tryingable(){if(this.transaction instanceof Ot)return this.transaction.state===bt.Proceeding;if(this.transaction instanceof xt)return this.transaction.state===bt.Trying;throw new Error("Unknown transaction type.")}reply(e){e.toTag||100===e.statusCode||(e.toTag=this.toTag),e.userAgent=e.userAgent||this.core.configuration.userAgentHeaderFieldValue,e.supported=e.supported||this.core.configuration.supportedOptionTagsResponse;const t=It(this.message,e);return this.transaction.receiveResponse(e.statusCode,t.message),t}init(){const e={loggerFactory:this.loggerFactory,onStateChange:e=>{e===bt.Terminated&&(this.core.userAgentServers.delete(i),this.dispose())},onTransportError:e=>{this.logger.error(e.message),this.delegate&&this.delegate.onTransportError?this.delegate.onTransportError(e):this.logger.error("User agent server response transport error.")}},t=new this.transactionConstructor(this.message,this.core.transport,e);this._transaction=t;const i=t.id;this.core.userAgentServers.set(t.id,this)}}class Ht extends Ft{constructor(e,t,i){super(xt,e.userAgentCore,t,i)}}class kt extends qt{constructor(e,t,i){const r=e.createOutgoingRequestMessage(Le.INFO,i);super(At,e.userAgentCore,r,t)}}class $t extends Ft{constructor(e,t,i){super(xt,e.userAgentCore,t,i)}}class Vt extends qt{constructor(e,t,i){const r=e.createOutgoingRequestMessage(Le.NOTIFY,i);super(At,e.userAgentCore,r,t)}}class Ut extends Ft{constructor(e,t,i){const r=void 0!==e.userAgentCore?e.userAgentCore:e;super(xt,r,t,i)}}class Bt extends qt{constructor(e,t,i){const r=e.createOutgoingRequestMessage(Le.PRACK,i);super(At,e.userAgentCore,r,t),e.signalingStateTransition(r)}}class Gt extends Ft{constructor(e,t,i){super(xt,e.userAgentCore,t,i),e.signalingStateTransition(t),this.dialog=e}accept(e={statusCode:200}){return e.body&&this.dialog.signalingStateTransition(e.body),super.accept(e)}}class Lt extends qt{constructor(e,t,i){const r=e.createOutgoingRequestMessage(Le.INVITE,i);super(Dt,e.userAgentCore,r,t),this.delegate=t,e.signalingStateTransition(r),e.reinviteUserAgentClient=this,this.dialog=e}receiveResponse(e){const t=e.statusCode?e.statusCode.toString():"";if(!t)throw new Error("Response status code undefined.");switch(!0){case/^100$/.test(t):this.delegate&&this.delegate.onTrying&&this.delegate.onTrying({message:e});break;case/^1[0-9]{2}$/.test(t):this.delegate&&this.delegate.onProgress&&this.delegate.onProgress({message:e,session:this.dialog,prack:e=>{throw new Error("Unimplemented.")}});break;case/^2[0-9]{2}$/.test(t):this.dialog.signalingStateTransition(e),this.delegate&&this.delegate.onAccept&&this.delegate.onAccept({message:e,session:this.dialog,ack:e=>{return this.dialog.ack(e)}});break;case/^3[0-9]{2}$/.test(t):this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentClient=void 0,this.delegate&&this.delegate.onRedirect&&this.delegate.onRedirect({message:e});break;case/^[4-6][0-9]{2}$/.test(t):this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentClient=void 0,this.delegate&&this.delegate.onReject&&this.delegate.onReject({message:e});break;default:throw new Error(`Invalid status code ${t}`)}}}class jt extends Ft{constructor(e,t,i){super(Ot,e.userAgentCore,t,i),e.reinviteUserAgentServer=this,this.dialog=e}accept(e={statusCode:200}){e.extraHeaders=e.extraHeaders||[],e.extraHeaders=e.extraHeaders.concat(this.dialog.routeSet.map(e=>`Record-Route: ${e}`));const t=super.accept(e),i=this.dialog,r=Object.assign(Object.assign({},t),{session:i});return e.body&&this.dialog.signalingStateTransition(e.body),this.dialog.reConfirm(),r}progress(e={statusCode:180}){const t=super.progress(e),i=this.dialog,r=Object.assign(Object.assign({},t),{session:i});return e.body&&this.dialog.signalingStateTransition(e.body),r}redirect(e,t={statusCode:302}){throw this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentServer=void 0,new Error("Unimplemented.")}reject(e={statusCode:488}){return this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentServer=void 0,super.reject(e)}}class Wt extends qt{constructor(e,t,i){const r=e.createOutgoingRequestMessage(Le.REFER,i);super(At,e.userAgentCore,r,t)}}class zt extends Ft{constructor(e,t,i){const r=void 0!==e.userAgentCore?e.userAgentCore:e;super(xt,r,t,i)}}class Kt extends Tt{constructor(e,t,i,r){super(t,i),this.initialTransaction=e,this._signalingState=pt.Initial,this.ackWait=!1,this.delegate=r,e instanceof Ot&&(this.ackWait=!0),this.early||this.start2xxRetransmissionTimer(),this.signalingStateTransition(e.request),this.logger=t.loggerFactory.getLogger("sip.invite-dialog"),this.logger.log(`INVITE dialog ${this.id} constructed`)}dispose(){super.dispose(),this._signalingState=pt.Closed,this._offer=void 0,this._answer=void 0,this.invite2xxTimer&&(clearTimeout(this.invite2xxTimer),this.invite2xxTimer=void 0),this.logger.log(`INVITE dialog ${this.id} destroyed`)}get sessionState(){return this.early?ut.Early:this.ackWait?ut.AckWait:this._signalingState===pt.Closed?ut.Terminated:ut.Confirmed}get signalingState(){return this._signalingState}get offer(){return this._offer}get answer(){return this._answer}confirm(){this.early&&this.start2xxRetransmissionTimer(),super.confirm()}reConfirm(){this.reinviteUserAgentServer&&this.startReInvite2xxRetransmissionTimer()}ack(e={}){let t;if(this.logger.log(`INVITE dialog ${this.id} sending ACK request`),this.reinviteUserAgentClient){if(!(this.reinviteUserAgentClient.transaction instanceof Dt))throw new Error("Transaction not instance of InviteClientTransaction.");t=this.reinviteUserAgentClient.transaction,this.reinviteUserAgentClient=void 0}else{if(!(this.initialTransaction instanceof Dt))throw new Error("Initial transaction not instance of InviteClientTransaction.");t=this.initialTransaction}e.cseq=t.request.cseq;const i=this.createOutgoingRequestMessage(Le.ACK,e);return t.ackResponse(i),this.signalingStateTransition(i),{message:i}}bye(e,t){if(this.logger.log(`INVITE dialog ${this.id} sending BYE request`),this.initialTransaction instanceof Ot){if(this.early)throw new Error("UAS MUST NOT send a BYE on early dialogs.");if(this.ackWait&&this.initialTransaction.state!==bt.Terminated)throw new Error("UAS MUST NOT send a BYE on a confirmed dialog until it has received an ACK for its 2xx response or until the server transaction times out.")}return new Nt(this,e,t)}info(e,t){if(this.logger.log(`INVITE dialog ${this.id} sending INFO request`),this.early)throw new Error("Dialog not confirmed.");return new kt(this,e,t)}invite(e,t){if(this.logger.log(`INVITE dialog ${this.id} sending INVITE request`),this.early)throw new Error("Dialog not confirmed.");if(this.reinviteUserAgentClient)throw new Error("There is an ongoing re-INVITE client transaction.");if(this.reinviteUserAgentServer)throw new Error("There is an ongoing re-INVITE server transaction.");return new Lt(this,e,t)}notify(e,t){if(this.logger.log(`INVITE dialog ${this.id} sending NOTIFY request`),this.early)throw new Error("Dialog not confirmed.");return new Vt(this,e,t)}prack(e,t){return this.logger.log(`INVITE dialog ${this.id} sending PRACK request`),new Bt(this,e,t)}refer(e,t){if(this.logger.log(`INVITE dialog ${this.id} sending REFER request`),this.early)throw new Error("Dialog not confirmed.");return new Wt(this,e,t)}receiveRequest(e){if(this.logger.log(`INVITE dialog ${this.id} received ${e.method} request`),e.method===Le.ACK){if(this.ackWait){if(this.initialTransaction instanceof Dt)return void this.logger.warn(`INVITE dialog ${this.id} received unexpected ${e.method} request, dropping.`);if(this.initialTransaction.request.cseq!==e.cseq)return void this.logger.warn(`INVITE dialog ${this.id} received unexpected ${e.method} request, dropping.`);this.ackWait=!1}else{if(!this.reinviteUserAgentServer)return void this.logger.warn(`INVITE dialog ${this.id} received unexpected ${e.method} request, dropping.`);if(this.reinviteUserAgentServer.transaction.request.cseq!==e.cseq)return void this.logger.warn(`INVITE dialog ${this.id} received unexpected ${e.method} request, dropping.`);this.reinviteUserAgentServer=void 0}return this.signalingStateTransition(e),void(this.delegate&&this.delegate.onAck&&this.delegate.onAck({message:e}))}if(this.sequenceGuard(e)){if(e.method===Le.INVITE){if(this.reinviteUserAgentServer){const t=[`Retry-After: ${Math.floor(10*Math.random())+1}`];return void this.core.replyStateless(e,{statusCode:500,extraHeaders:t})}if(this.reinviteUserAgentClient)return void this.core.replyStateless(e,{statusCode:491})}if(super.receiveRequest(e),e.method===Le.INVITE){const t=e.parseHeader("contact");if(!t)throw new Error("Contact undefined.");if(!(t instanceof We))throw new Error("Contact not instance of NameAddrHeader.");this.dialogState.remoteTarget=t.uri}switch(e.method){case Le.BYE:{const t=new Ht(this,e);this.delegate&&this.delegate.onBye?this.delegate.onBye(t):t.accept(),this.dispose()}break;case Le.INFO:{const t=new $t(this,e);this.delegate&&this.delegate.onInfo?this.delegate.onInfo(t):t.reject({statusCode:469,extraHeaders:["Recv-Info :"]})}break;case Le.INVITE:{const t=new jt(this,e);this.signalingStateTransition(e),this.delegate&&this.delegate.onInvite?this.delegate.onInvite(t):t.reject({statusCode:488})}break;case Le.NOTIFY:{const t=new Ut(this,e);this.delegate&&this.delegate.onNotify?this.delegate.onNotify(t):t.accept()}break;case Le.PRACK:{const t=new Gt(this,e);this.delegate&&this.delegate.onPrack?this.delegate.onPrack(t):t.accept()}break;case Le.REFER:{const t=new zt(this,e);this.delegate&&this.delegate.onRefer?this.delegate.onRefer(t):t.reject()}break;default:this.logger.log(`INVITE dialog ${this.id} received unimplemented ${e.method} request`),this.core.replyStateless(e,{statusCode:501})}}else this.logger.log(`INVITE dialog ${this.id} rejected out of order ${e.method} request.`)}reliableSequenceGuard(e){const t=e.statusCode;if(!t)throw new Error("Status code undefined");if(t>100&&t<200){const t=e.getHeader("require"),i=e.getHeader("rseq"),r=t&&t.includes("100rel")&&i?Number(i):void 0;if(r){if(this.rseq&&this.rseq+1!==r)return!1;this.rseq||(this.rseq=r)}}return!0}signalingStateRollback(){this._signalingState!==pt.HaveLocalOffer&&this.signalingState!==pt.HaveRemoteOffer||this._rollbackOffer&&this._rollbackAnswer&&(this._signalingState=pt.Stable,this._offer=this._rollbackOffer,this._answer=this._rollbackAnswer)}signalingStateTransition(e){const t=ht(e);if(t&&"session"===t.contentDisposition){if(this._signalingState===pt.Stable&&(this._rollbackOffer=this._offer,this._rollbackAnswer=this._answer),e instanceof st)switch(this._signalingState){case pt.Initial:case pt.Stable:this._signalingState=pt.HaveRemoteOffer,this._offer=t,this._answer=void 0;break;case pt.HaveLocalOffer:this._signalingState=pt.Stable,this._answer=t;break;case pt.HaveRemoteOffer:case pt.Closed:break;default:throw new Error("Unexpected signaling state.")}if(e instanceof nt)switch(this._signalingState){case pt.Initial:case pt.Stable:this._signalingState=pt.HaveRemoteOffer,this._offer=t,this._answer=void 0;break;case pt.HaveLocalOffer:this._signalingState=pt.Stable,this._answer=t;break;case pt.HaveRemoteOffer:case pt.Closed:break;default:throw new Error("Unexpected signaling state.")}if(e instanceof at)switch(this._signalingState){case pt.Initial:case pt.Stable:this._signalingState=pt.HaveLocalOffer,this._offer=t,this._answer=void 0;break;case pt.HaveLocalOffer:break;case pt.HaveRemoteOffer:this._signalingState=pt.Stable,this._answer=t;break;case pt.Closed:break;default:throw new Error("Unexpected signaling state.")}if(dt(e))switch(this._signalingState){case pt.Initial:case pt.Stable:this._signalingState=pt.HaveLocalOffer,this._offer=t,this._answer=void 0;break;case pt.HaveLocalOffer:break;case pt.HaveRemoteOffer:this._signalingState=pt.Stable,this._answer=t;break;case pt.Closed:break;default:throw new Error("Unexpected signaling state.")}}}start2xxRetransmissionTimer(){if(this.initialTransaction instanceof Ot){const e=this.initialTransaction;let t=Ct.T1;const i=()=>{this.ackWait?(this.logger.log("No ACK for 2xx response received, attempting retransmission"),e.retransmitAcceptedResponse(),t=Math.min(2*t,Ct.T2),this.invite2xxTimer=setTimeout(i,t)):this.invite2xxTimer=void 0};this.invite2xxTimer=setTimeout(i,t);const r=()=>{e.state===bt.Terminated&&(e.removeListener("stateChanged",r),this.invite2xxTimer&&(clearTimeout(this.invite2xxTimer),this.invite2xxTimer=void 0),this.ackWait&&(this.delegate&&this.delegate.onAckTimeout?this.delegate.onAckTimeout():this.bye()))};e.addListener("stateChanged",r)}}startReInvite2xxRetransmissionTimer(){if(this.reinviteUserAgentServer&&this.reinviteUserAgentServer.transaction instanceof Ot){const e=this.reinviteUserAgentServer.transaction;let t=Ct.T1;const i=()=>{this.reinviteUserAgentServer?(this.logger.log("No ACK for 2xx response received, attempting retransmission"),e.retransmitAcceptedResponse(),t=Math.min(2*t,Ct.T2),this.invite2xxTimer=setTimeout(i,t)):this.invite2xxTimer=void 0};this.invite2xxTimer=setTimeout(i,t);const r=()=>{e.state===bt.Terminated&&(e.removeListener("stateChanged",r),this.invite2xxTimer&&(clearTimeout(this.invite2xxTimer),this.invite2xxTimer=void 0),this.reinviteUserAgentServer)};e.addListener("stateChanged",r)}}}!function(e){e.Initial="Initial",e.NotifyWait="NotifyWait",e.Pending="Pending",e.Active="Active",e.Terminated="Terminated"}(Pt||(Pt={}));const Jt=[Le.ACK,Le.BYE,Le.CANCEL,Le.INFO,Le.INVITE,Le.MESSAGE,Le.NOTIFY,Le.OPTIONS,Le.PRACK,Le.REFER,Le.REGISTER,Le.SUBSCRIBE];class Yt extends qt{constructor(e,t,i){const r=e.createOutgoingRequestMessage(Le.SUBSCRIBE,i);super(At,e.userAgentCore,r,t),this.dialog=e}waitNotifyStop(){}receiveResponse(e){if(e.statusCode&&e.statusCode>=200&&e.statusCode<300){const t=e.getHeader("Expires");if(t){const e=Number(t);this.dialog.subscriptionExpires>e&&(this.dialog.subscriptionExpires=e)}else this.logger.warn("Expires header missing in a 200-class response to SUBSCRIBE")}if(e.statusCode&&e.statusCode>=400&&e.statusCode<700){-1!==[404,405,410,416,480,481,482,483,484,485,489,501,604].indexOf(e.statusCode)&&this.dialog.terminate()}super.receiveResponse(e)}}class Zt extends Tt{constructor(e,t,i,r,s,n){super(r,s),this.delegate=n,this._autoRefresh=!1,this._subscriptionEvent=e,this._subscriptionExpires=t,this._subscriptionExpiresInitial=t,this._subscriptionExpiresLastSet=Math.floor(Date.now()/1e3),this._subscriptionRefresh=void 0,this._subscriptionRefreshLastSet=void 0,this._subscriptionState=i,this.logger=r.loggerFactory.getLogger("sip.subscribe-dialog"),this.logger.log(`SUBSCRIBE dialog ${this.id} constructed`)}static initialDialogStateForSubscription(e,t){const i=t.getHeaders("record-route"),r=t.parseHeader("contact");if(!r)throw new Error("Contact undefined.");if(!(r instanceof We))throw new Error("Contact not instance of NameAddrHeader.");const s=r.uri,n=e.cseq,a=e.callId,o=e.fromTag,h=t.fromTag;if(!a)throw new Error("Call id undefined.");if(!o)throw new Error("From tag undefined.");if(!h)throw new Error("To tag undefined.");if(!e.from)throw new Error("From undefined.");if(!e.to)throw new Error("To undefined.");return{id:a+o+h,early:!1,callId:a,localTag:o,remoteTag:h,localSequenceNumber:n,remoteSequenceNumber:void 0,localURI:e.from.uri,remoteURI:e.to.uri,remoteTarget:s,routeSet:i,secure:!1}}dispose(){super.dispose(),this.N&&(clearTimeout(this.N),this.N=void 0),this.refreshTimerClear(),this.logger.log(`SUBSCRIBE dialog ${this.id} destroyed`)}get autoRefresh(){return this._autoRefresh}set autoRefresh(e){this._autoRefresh=!0,this.refreshTimerSet()}get subscriptionEvent(){return this._subscriptionEvent}get subscriptionExpires(){const e=Math.floor(Date.now()/1e3)-this._subscriptionExpiresLastSet,t=this._subscriptionExpires-e;return Math.max(t,0)}set subscriptionExpires(e){if(e<0)throw new Error("Expires must be greater than or equal to zero.");if(this._subscriptionExpires=e,this._subscriptionExpiresLastSet=Math.floor(Date.now()/1e3),this.autoRefresh){const t=this.subscriptionRefresh;(void 0===t||t>=e)&&this.refreshTimerSet()}}get subscriptionExpiresInitial(){return this._subscriptionExpiresInitial}get subscriptionRefresh(){if(void 0===this._subscriptionRefresh||void 0===this._subscriptionRefreshLastSet)return;const e=Math.floor(Date.now()/1e3)-this._subscriptionRefreshLastSet,t=this._subscriptionRefresh-e;return Math.max(t,0)}get subscriptionState(){return this._subscriptionState}receiveRequest(e){if(this.logger.log(`SUBSCRIBE dialog ${this.id} received ${e.method} request`),this.sequenceGuard(e))switch(super.receiveRequest(e),e.method){case Le.NOTIFY:this.onNotify(e);break;default:this.logger.log(`SUBSCRIBE dialog ${this.id} received unimplemented ${e.method} request`),this.core.replyStateless(e,{statusCode:501})}else this.logger.log(`SUBSCRIBE dialog ${this.id} rejected out of order ${e.method} request.`)}refresh(){const e="Allow: "+Jt.toString(),t={};return t.extraHeaders=(t.extraHeaders||[]).slice(),t.extraHeaders.push(e),t.extraHeaders.push("Event: "+this.subscriptionEvent),t.extraHeaders.push("Expires: "+this.subscriptionExpiresInitial),t.extraHeaders.push("Contact: "+this.core.configuration.contact.toString()),this.subscribe(void 0,t)}subscribe(e,t={}){if(this.subscriptionState!==Pt.Pending&&this.subscriptionState!==Pt.Active)throw new Error(`Invalid state ${this.subscriptionState}. May only re-subscribe while in state "pending" or "active".`);this.logger.log(`SUBSCRIBE dialog ${this.id} sending SUBSCRIBE request`);const i=new Yt(this,e,t);return this.N=setTimeout(()=>this.timer_N(),Ct.TIMER_N),i}terminate(){this.stateTransition(Pt.Terminated),this.onTerminated()}unsubscribe(){const e="Allow: "+Jt.toString(),t={};return t.extraHeaders=(t.extraHeaders||[]).slice(),t.extraHeaders.push(e),t.extraHeaders.push("Event: "+this.subscriptionEvent),t.extraHeaders.push("Expires: 0"),t.extraHeaders.push("Contact: "+this.core.configuration.contact.toString()),this.subscribe(void 0,t)}onNotify(e){const t=e.parseHeader("Event").event;if(!t||t!==this.subscriptionEvent)return void this.core.replyStateless(e,{statusCode:489});this.N&&(clearTimeout(this.N),this.N=void 0);const i=e.parseHeader("Subscription-State");if(!i||!i.state)return void this.core.replyStateless(e,{statusCode:489});const r=i.state,s=i.expires?Math.max(i.expires,0):void 0;switch(r){case"pending":this.stateTransition(Pt.Pending,s);break;case"active":this.stateTransition(Pt.Active,s);break;case"terminated":this.stateTransition(Pt.Terminated,s);break;default:this.logger.warn("Unrecognized subscription state.")}const n=new Ut(this,e);this.delegate&&this.delegate.onNotify?this.delegate.onNotify(n):n.accept()}onRefresh(e){this.delegate&&this.delegate.onRefresh&&this.delegate.onRefresh(e)}onTerminated(){this.delegate&&this.delegate.onTerminated&&this.delegate.onTerminated()}refreshTimerClear(){this.refreshTimer&&(clearTimeout(this.refreshTimer),this.refreshTimer=void 0)}refreshTimerSet(){if(this.refreshTimerClear(),this.autoRefresh&&this.subscriptionExpires>0){const e=900*this.subscriptionExpires;this._subscriptionRefresh=Math.floor(e/1e3),this._subscriptionRefreshLastSet=Math.floor(Date.now()/1e3),this.refreshTimer=setTimeout(()=>{this.refreshTimer=void 0,this._subscriptionRefresh=void 0,this._subscriptionRefreshLastSet=void 0,this.onRefresh(this.refresh())},e)}}stateTransition(e,t){const i=()=>{this.logger.warn(`Invalid subscription state transition from ${this.subscriptionState} to ${e}`)};switch(e){case Pt.Initial:case Pt.NotifyWait:return void i();case Pt.Pending:if(this.subscriptionState!==Pt.NotifyWait&&this.subscriptionState!==Pt.Pending)return void i();break;case Pt.Active:case Pt.Terminated:if(this.subscriptionState!==Pt.NotifyWait&&this.subscriptionState!==Pt.Pending&&this.subscriptionState!==Pt.Active)return void i();break;default:return void i()}e===Pt.Pending&&t&&(this.subscriptionExpires=t),e===Pt.Active&&t&&(this.subscriptionExpires=t),e===Pt.Terminated&&this.dispose(),this._subscriptionState=e}timer_N(){this.subscriptionState!==Pt.Terminated&&(this.stateTransition(Pt.Terminated),this.onTerminated())}}var Xt;!function(e){e[e.error=0]="error",e[e.warn=1]="warn",e[e.log=2]="log",e[e.debug=3]="debug"}(Xt||(Xt={}));class Qt{constructor(e,t,i){this.logger=e,this.category=t,this.label=i}error(e){this.genericLog(Xt.error,e)}warn(e){this.genericLog(Xt.warn,e)}log(e){this.genericLog(Xt.log,e)}debug(e){this.genericLog(Xt.debug,e)}genericLog(e,t){this.logger.genericLog(e,this.category,this.label,t)}}class ei{constructor(){this.builtinEnabled=!0,this._level=Xt.log,this.loggers={},this.logger=this.getLogger("sip:loggerfactory")}get level(){return this._level}set level(e){e>=0&&e<=3?this._level=e:e>3?this._level=3:Xt.hasOwnProperty(e)?this._level=e:this.logger.error("invalid 'level' parameter value: "+JSON.stringify(e))}get connector(){return this._connector}set connector(e){e?"function"==typeof e?this._connector=e:this.logger.error("invalid 'connector' parameter value: "+JSON.stringify(e)):this._connector=void 0}getLogger(e,t){if(t&&3===this.level)return new Qt(this,e,t);if(this.loggers[e])return this.loggers[e];{const t=new Qt(this,e);return this.loggers[e]=t,t}}genericLog(e,t,i,r){this.level>=e&&this.builtinEnabled&&this.print(e,t,i,r),this.connector&&this.connector(Xt[e],t,i,r)}print(e,t,i,r){if("string"==typeof r){const e=[new Date,t];i&&e.push(i),r=e.concat(r).join(" | ")}switch(e){case Xt.error:console.error(r);break;case Xt.warn:console.warn(r);break;case Xt.log:console.log(r);break;case Xt.debug:console.debug(r)}}}class ti extends qt{constructor(e,t,i){super(Dt,e,t,i),this.confirmedDialogAcks=new Map,this.confirmedDialogs=new Map,this.earlyDialogs=new Map,this.delegate=i}dispose(){this.earlyDialogs.forEach(e=>e.dispose()),this.earlyDialogs.clear(),super.dispose()}onTransportError(e){if(this.transaction.state===bt.Calling)return super.onTransportError(e);this.logger.error(e.message),this.logger.error("User agent client request transport error while sending ACK.")}receiveResponse(e){if(!this.authenticationGuard(e))return;const t=e.statusCode?e.statusCode.toString():"";if(!t)throw new Error("Response status code undefined.");switch(!0){case/^100$/.test(t):return void(this.delegate&&this.delegate.onTrying&&this.delegate.onTrying({message:e}));case/^1[0-9]{2}$/.test(t):{if(!e.toTag)return void this.logger.warn("Non-100 1xx INVITE response received without a to tag, dropping.");const t=Tt.initialDialogStateForUserAgentClient(this.message,e);let i=this.earlyDialogs.get(t.id);if(!i){const e=this.transaction;if(!(e instanceof Dt))throw new Error("Transaction not instance of InviteClientTransaction.");i=new Kt(e,this.core,t),this.earlyDialogs.set(i.id,i)}if(!i.reliableSequenceGuard(e))return void this.logger.warn("1xx INVITE reliable response received out of order, dropping.");i.signalingState!==pt.Initial&&i.signalingState!==pt.HaveLocalOffer||i.signalingStateTransition(e);const r=i;this.delegate&&this.delegate.onProgress&&this.delegate.onProgress({message:e,session:r,prack:e=>{return r.prack(void 0,e)}})}return;case/^2[0-9]{2}$/.test(t):{const t=Tt.initialDialogStateForUserAgentClient(this.message,e);let i=this.confirmedDialogs.get(t.id);if(i){const e=this.confirmedDialogAcks.get(t.id);if(e){const t=this.transaction;if(!(t instanceof Dt))throw new Error("Client transaction not instance of InviteClientTransaction.");t.ackResponse(e.message)}return}if(i=this.earlyDialogs.get(t.id))i.confirm(),i.recomputeRouteSet(e),this.earlyDialogs.delete(i.id),this.confirmedDialogs.set(i.id,i);else{const e=this.transaction;if(!(e instanceof Dt))throw new Error("Transaction not instance of InviteClientTransaction.");i=new Kt(e,this.core,t),this.confirmedDialogs.set(i.id,i)}i.signalingState!==pt.Initial&&i.signalingState!==pt.HaveLocalOffer||i.signalingStateTransition(e);const r=i;if(this.delegate&&this.delegate.onAccept)this.delegate.onAccept({message:e,session:r,ack:e=>{const t=r.ack(e);return this.confirmedDialogAcks.set(r.id,t),t}});else{const e=r.ack();this.confirmedDialogAcks.set(r.id,e)}}return;case/^3[0-9]{2}$/.test(t):return this.earlyDialogs.forEach(e=>e.dispose()),this.earlyDialogs.clear(),void(this.delegate&&this.delegate.onRedirect&&this.delegate.onRedirect({message:e}));case/^[4-6][0-9]{2}$/.test(t):return this.earlyDialogs.forEach(e=>e.dispose()),this.earlyDialogs.clear(),void(this.delegate&&this.delegate.onReject&&this.delegate.onReject({message:e}));default:throw new Error(`Invalid status code ${t}`)}}}class ii extends Ft{constructor(e,t,i){super(Ot,e,t,i),this.core=e}dispose(){this.earlyDialog&&this.earlyDialog.dispose(),super.dispose()}accept(e={statusCode:200}){if(!this.acceptable)throw new vt(`${this.message.method} not acceptable in state ${this.transaction.state}.`);if(!this.confirmedDialog)if(this.earlyDialog)this.earlyDialog.confirm(),this.confirmedDialog=this.earlyDialog,this.earlyDialog=void 0;else{const e=this.transaction;if(!(e instanceof Ot))throw new Error("Transaction not instance of InviteClientTransaction.");const t=Tt.initialDialogStateForUserAgentServer(this.message,this.toTag);this.confirmedDialog=new Kt(e,this.core,t)}const t=this.message.getHeaders("record-route").map(e=>`Record-Route: ${e}`),i=`Contact: ${this.core.configuration.contact.toString()}`,r="Allow: "+Jt.toString();if(!e.body)if(this.confirmedDialog.signalingState===pt.Stable)e.body=this.confirmedDialog.answer;else if(this.confirmedDialog.signalingState===pt.Initial||this.confirmedDialog.signalingState===pt.HaveRemoteOffer)throw new Error("Response must have a body.");e.statusCode=e.statusCode||200,e.extraHeaders=e.extraHeaders||[],e.extraHeaders=e.extraHeaders.concat(t),e.extraHeaders.push(r),e.extraHeaders.push(i);const s=super.accept(e),n=this.confirmedDialog,a=Object.assign(Object.assign({},s),{session:n});return e.body&&this.confirmedDialog.signalingState!==pt.Stable&&this.confirmedDialog.signalingStateTransition(e.body),a}progress(e={statusCode:180}){if(!this.progressable)throw new vt(`${this.message.method} not progressable in state ${this.transaction.state}.`);if(!this.earlyDialog){const e=this.transaction;if(!(e instanceof Ot))throw new Error("Transaction not instance of InviteClientTransaction.");const t=Tt.initialDialogStateForUserAgentServer(this.message,this.toTag,!0);this.earlyDialog=new Kt(e,this.core,t)}const t=this.message.getHeaders("record-route").map(e=>`Record-Route: ${e}`),i=`Contact: ${this.core.configuration.contact}`;e.extraHeaders=e.extraHeaders||[],e.extraHeaders=e.extraHeaders.concat(t),e.extraHeaders.push(i);const r=super.progress(e),s=this.earlyDialog,n=Object.assign(Object.assign({},r),{session:s});return e.body&&this.earlyDialog.signalingState!==pt.Stable&&this.earlyDialog.signalingStateTransition(e.body),n}redirect(e,t={statusCode:302}){return super.redirect(e,t)}reject(e={statusCode:486}){return super.reject(e)}}class ri extends qt{constructor(e,t,i){super(At,e,t,i)}}class si extends Ft{constructor(e,t,i){super(xt,e,t,i),this.core=e}}class ni extends qt{constructor(e,t,i){super(At,e,t,i)}}class ai extends qt{constructor(e,t,i){super(At,e,t,i)}}class oi extends Ft{constructor(e,t,i){super(xt,e,t,i),this.core=e}}class hi extends qt{constructor(e,t,i){const r=t.getHeader("Event");if(!r)throw new Error("Event undefined");const s=t.getHeader("Expires");if(!s)throw new Error("Expires undefined");super(At,e,t,i),this.delegate=i,this.subscriberId=t.callId+t.fromTag+r,this.subscriptionExpiresRequested=this.subscriptionExpires=Number(s),this.subscriptionEvent=r,this.subscriptionState=Pt.NotifyWait,this.waitNotifyStart()}dispose(){super.dispose()}onNotify(e){const t=e.message.parseHeader("Event").event;if(!t||t!==this.subscriptionEvent)return this.logger.warn("Failed to parse event."),void e.reject({statusCode:489});const i=e.message.parseHeader("Subscription-State");if(!i||!i.state)return this.logger.warn("Failed to parse subscription state."),void e.reject({statusCode:489});const r=i.state;switch(r){case"pending":case"active":case"terminated":break;default:return this.logger.warn(`Invalid subscription state ${r}`),void e.reject({statusCode:489})}if("terminated"!==r){if(!e.message.parseHeader("contact"))return this.logger.warn("Failed to parse contact."),void e.reject({statusCode:489})}if(this.dialog)throw new Error("Dialog already created. This implementation only supports install of single subscriptions.");switch(this.waitNotifyStop(),this.subscriptionExpires=i.expires?Math.min(this.subscriptionExpires,Math.max(i.expires,0)):this.subscriptionExpires,r){case"pending":this.subscriptionState=Pt.Pending;break;case"active":this.subscriptionState=Pt.Active;break;case"terminated":this.subscriptionState=Pt.Terminated;break;default:throw new Error(`Unrecognized state ${r}.`)}if(this.subscriptionState!==Pt.Terminated){const t=Zt.initialDialogStateForSubscription(this.message,e.message);this.dialog=new Zt(this.subscriptionEvent,this.subscriptionExpires,this.subscriptionState,this.core,t)}if(this.delegate&&this.delegate.onNotify){const t=e,i=this.dialog;this.delegate.onNotify({request:t,subscription:i})}else e.accept()}waitNotifyStart(){this.N||(this.core.subscribers.set(this.subscriberId,this),this.N=setTimeout(()=>this.timer_N(),Ct.TIMER_N))}waitNotifyStop(){this.N&&(this.core.subscribers.delete(this.subscriberId),clearTimeout(this.N),this.N=void 0)}receiveResponse(e){if(this.authenticationGuard(e)){if(e.statusCode&&e.statusCode>=200&&e.statusCode<300){const t=e.getHeader("Expires");if(t){const e=Number(t);e>this.subscriptionExpiresRequested&&this.logger.warn("Expires header in a 200-class response to SUBSCRIBE with a higher value than the one in the request"),ethis.subscriptionExpires&&(this.dialog.subscriptionExpires=this.subscriptionExpires)}e.statusCode&&e.statusCode>=300&&e.statusCode<700&&this.waitNotifyStop(),super.receiveResponse(e)}}timer_N(){this.logger.warn("Timer N expired for SUBSCRIBE user agent client. Timed out waiting for NOTIFY."),this.waitNotifyStop(),this.delegate&&this.delegate.onNotifyTimeout&&this.delegate.onNotifyTimeout()}}class di extends Ft{constructor(e,t,i){super(xt,e,t,i),this.core=e}}const ci=["application/sdp","application/dtmf-relay"];class li{constructor(e,t={}){this.userAgentClients=new Map,this.userAgentServers=new Map,this.configuration=e,this.delegate=t,this.dialogs=new Map,this.subscribers=new Map,this.logger=e.loggerFactory.getLogger("sip.user-agent-core")}dispose(){this.reset()}reset(){this.dialogs.forEach(e=>e.dispose()),this.dialogs.clear(),this.subscribers.forEach(e=>e.dispose()),this.subscribers.clear(),this.userAgentClients.forEach(e=>e.dispose()),this.userAgentClients.clear(),this.userAgentServers.forEach(e=>e.dispose()),this.userAgentServers.clear()}get loggerFactory(){return this.configuration.loggerFactory}get transport(){const e=this.configuration.transportAccessor();if(!e)throw new Error("Transport undefined.");return e}invite(e,t){return new ti(this,e,t)}message(e,t){return new ri(this,e,t)}publish(e,t){return new ni(this,e,t)}register(e,t){return new ai(this,e,t)}subscribe(e,t){return new hi(this,e,t)}request(e,t){return new qt(At,this,e,t)}makeOutgoingRequestMessage(e,t,i,r,s,n,a){const o=this.configuration.sipjsId,h=this.configuration.displayName,d=this.configuration.viaForceRport,c=this.configuration.hackViaTcp,l=this.configuration.supportedOptionTags.slice();e===Le.REGISTER&&l.push("path","gruu"),e===Le.INVITE&&(this.configuration.contact.pubGruu||this.configuration.contact.tempGruu)&&l.push("gruu");const g={callIdPrefix:o,forceRport:d,fromDisplayName:h,hackViaTcp:c,optionTags:l,routeSet:this.configuration.routeSet,userAgentString:this.configuration.userAgentHeaderFieldValue,viaHost:this.configuration.viaHost},u=Object.assign(Object.assign({},g),s);return new at(e,t,i,r,u,n,a)}receiveIncomingRequestFromTransport(e){this.receiveRequestFromTransport(e)}receiveIncomingResponseFromTransport(e){this.receiveResponseFromTransport(e)}replyStateless(e,t){const i=this.configuration.userAgentHeaderFieldValue,r=this.configuration.supportedOptionTagsResponse;t=Object.assign(Object.assign({},t),{userAgent:i,supported:r});const s=It(e,t);return this.transport.send(s.message).catch(t=>{t instanceof Error&&this.logger.error(t.message),this.logger.error(`Transport error occurred sending stateless reply to ${e.method} request.`)}),s}receiveRequestFromTransport(e){const t=e.viaBranch,i=this.userAgentServers.get(t);e.method===Le.ACK&&i&&i.transaction.state===bt.Accepted&&i instanceof ii?this.logger.warn(`Discarding out of dialog ACK after 2xx response sent on transaction ${t}.`):e.method!==Le.CANCEL?i?i.transaction.receiveRequest(e):this.receiveRequest(e):i?(this.replyStateless(e,{statusCode:200}),i.transaction instanceof Ot&&i.transaction.state===bt.Proceeding&&i instanceof ii&&i.receiveCancel(e)):this.replyStateless(e,{statusCode:481})}receiveRequest(e){if(-1===Jt.indexOf(e.method)){const t="Allow: "+Jt.toString();return void this.replyStateless(e,{statusCode:405,extraHeaders:[t]})}if(!e.ruri)throw new Error("Request-URI undefined.");if("sip"!==e.ruri.scheme)return void this.replyStateless(e,{statusCode:416});const t=e.ruri,i=e=>!!e&&e.user===t.user;if(!i(this.configuration.aor)&&!(i(this.configuration.contact.uri)||i(this.configuration.contact.pubGruu)||i(this.configuration.contact.tempGruu)))return this.logger.warn("Request-URI does not point to us."),void(e.method!==Le.ACK&&this.replyStateless(e,{statusCode:404}));if(e.method!==Le.INVITE||e.hasHeader("Contact")){if(!e.toTag){const t=e.viaBranch;if(!this.userAgentServers.has(t)){if(Array.from(this.userAgentServers.values()).some(t=>t.transaction.request.fromTag===e.fromTag&&t.transaction.request.callId===e.callId&&t.transaction.request.cseq===e.cseq))return void this.replyStateless(e,{statusCode:482})}}e.toTag?this.receiveInsideDialogRequest(e):this.receiveOutsideDialogRequest(e)}else this.replyStateless(e,{statusCode:400,reasonPhrase:"Missing Contact Header"})}receiveInsideDialogRequest(e){if(e.method===Le.NOTIFY){const t=e.parseHeader("Event");if(!t||!t.event)return void this.replyStateless(e,{statusCode:489});const i=e.callId+e.toTag+t.event,r=this.subscribers.get(i);if(r){const t=new Ut(this,e);return void r.onNotify(t)}}const t=e.callId+e.toTag+e.fromTag,i=this.dialogs.get(t);if(i){if(e.method===Le.OPTIONS){const t="Allow: "+Jt.toString(),i="Accept: "+ci.toString();return void this.replyStateless(e,{statusCode:200,extraHeaders:[t,i]})}i.receiveRequest(e)}else e.method!==Le.ACK&&this.replyStateless(e,{statusCode:481})}receiveOutsideDialogRequest(e){switch(e.method){case Le.ACK:break;case Le.BYE:this.replyStateless(e,{statusCode:481});break;case Le.CANCEL:throw new Error(`Unexpected out of dialog request method ${e.method}.`);case Le.INFO:this.replyStateless(e,{statusCode:405});break;case Le.INVITE:{const t=new ii(this,e);this.delegate.onInvite?this.delegate.onInvite(t):t.reject()}break;case Le.MESSAGE:{const t=new si(this,e);this.delegate.onMessage?this.delegate.onMessage(t):t.accept()}break;case Le.NOTIFY:{const t=new Ut(this,e);this.delegate.onNotify?this.delegate.onNotify(t):t.reject({statusCode:405})}break;case Le.OPTIONS:{const t="Allow: "+Jt.toString(),i="Accept: "+ci.toString();this.replyStateless(e,{statusCode:200,extraHeaders:[t,i]})}break;case Le.REFER:{const t=new zt(this,e);this.delegate.onRefer?this.delegate.onRefer(t):t.reject({statusCode:405})}break;case Le.REGISTER:{const t=new oi(this,e);this.delegate.onRegister?this.delegate.onRegister(t):t.reject({statusCode:405})}break;case Le.SUBSCRIBE:{const t=new di(this,e);this.delegate.onSubscribe?this.delegate.onSubscribe(t):t.reject({statusCode:480})}break;default:throw new Error(`Unexpected out of dialog request method ${e.method}.`)}}receiveResponseFromTransport(e){if(e.getHeaders("via").length>1)return void this.logger.warn("More than one Via header field present in the response, dropping");const t=e.viaBranch+e.method,i=this.userAgentClients.get(t);i?i.transaction.receiveResponse(e):this.logger.warn(`Discarding unmatched ${e.statusCode} response to ${e.method} ${t}.`)}}class gi extends s{constructor(e,t){super(),this.logger=e}connect(e={}){return this.connectPromise(e).then(e=>{e.overrideEvent||this.emit("connected")})}send(e,t={}){return this.sendPromise(e).then(e=>{e.overrideEvent||this.emit("messageSent",e.msg)})}disconnect(e={}){return this.disconnectPromise(e).then(e=>{e.overrideEvent||this.emit("disconnected")})}afterConnected(e){this.isConnected()?e():this.once("connected",e)}waitForConnected(){return console.warn("DEPRECATION WARNING Transport.waitForConnected(): use afterConnected() instead"),new Promise(e=>{this.afterConnected(e)})}}class ui extends yt{constructor(e){super(e||"Unsupported content type.")}}class pi extends yt{constructor(e){super(e||"Request pending.")}}class mi extends yt{constructor(e){super(e||"Unspecified session description handler error.")}}class Si extends yt{constructor(){super("The session has terminated.")}}function fi(e,t){return e.reduce((e,t)=>e=e.then(t),Promise.resolve(t))}class Ii extends s{constructor(e,t){super(),this.options=t||{},this.logger=e,this.dtmfSender=void 0,this.shouldAcquireMedia=!0,this.CONTENT_TYPE="application/sdp",this.C={DIRECTION:{NULL:null,SENDRECV:"sendrecv",SENDONLY:"sendonly",RECVONLY:"recvonly",INACTIVE:"inactive"}},this.logger.log("SessionDescriptionHandlerOptions: "+JSON.stringify(this.options)),this.direction=this.C.DIRECTION.NULL,this.modifiers=this.options.modifiers||[],Array.isArray(this.modifiers)||(this.modifiers=[this.modifiers]),this.iceGatheringTimeout=!1,this.initPeerConnection(this.options.peerConnectionOptions),this.constraints=this.checkAndDefaultConstraints(this.options.constraints)}static defaultFactory(e,t){const i=e.userAgent.getLogger("sip.SessionDescriptionHandler",e.id);return new Ii(i,t)}close(){this.logger.log("closing PeerConnection"),this.peerConnection&&"closed"!==this.peerConnection.signalingState&&(this.peerConnection.getSenders?this.peerConnection.getSenders().forEach(e=>{e.track&&e.track.stop()}):(this.logger.warn("Using getLocalStreams which is deprecated"),this.peerConnection.getLocalStreams().forEach(e=>{e.getTracks().forEach(e=>{e.stop()})})),this.peerConnection.getReceivers?this.peerConnection.getReceivers().forEach(e=>{e.track&&e.track.stop()}):(this.logger.warn("Using getRemoteStreams which is deprecated"),this.peerConnection.getRemoteStreams().forEach(e=>{e.getTracks().forEach(e=>{e.stop()})})),this.resetIceGatheringComplete(),this.peerConnection.close())}getDescription(e={},t=[]){e.peerConnectionOptions&&this.initPeerConnection(e.peerConnectionOptions);let i=Object.assign({},this.constraints,e.constraints);return i=this.checkAndDefaultConstraints(i),JSON.stringify(i)!==JSON.stringify(this.constraints)&&(this.constraints=i,this.shouldAcquireMedia=!0),Array.isArray(t)||(t=[t]),t=t.concat(this.modifiers),Promise.resolve().then(()=>{if(this.shouldAcquireMedia)return this.acquire(this.constraints).then(()=>{this.shouldAcquireMedia=!1})}).then(()=>this.createOfferOrAnswer(e.RTCOfferOptions,t)).then(e=>{if(void 0===e.sdp)throw new mi("SDP undefined.");if(0==this.constraints.video){let t=e.sdp.indexOf("m=video");t>0&&(e.sdp=e.sdp.substring(0,t))}return this.emit("getDescription",e),{body:e.sdp,contentType:this.CONTENT_TYPE}})}hasDescription(e){return e===this.CONTENT_TYPE}holdModifier(e){return e.sdp?(/a=(sendrecv|sendonly|recvonly|inactive)/.test(e.sdp)?(e.sdp=e.sdp.replace(/a=sendrecv\r\n/g,"a=sendonly\r\n"),e.sdp=e.sdp.replace(/a=recvonly\r\n/g,"a=inactive\r\n")):e.sdp=e.sdp.replace(/(m=[^\r]*\r\n)/g,"$1a=sendonly\r\n"),Promise.resolve(e)):Promise.resolve(e)}setDescription(e,t={},i=[]){t.peerConnectionOptions&&this.initPeerConnection(t.peerConnectionOptions),Array.isArray(i)||(i=[i]),i=i.concat(this.modifiers);const r={type:this.hasOffer("local")?"answer":"offer",sdp:e};return Promise.resolve().then(()=>{if(this.shouldAcquireMedia&&this.options.alwaysAcquireMediaFirst)return this.acquire(this.constraints).then(()=>{this.shouldAcquireMedia=!1})}).then(()=>fi(i,r)).catch(e=>{if(e instanceof mi)throw e;let t="The modifiers did not resolve successfully.";e.name&&(t+=" "+e.name),e.message&&(t+=" "+e.message);const i=new mi(t);throw this.logger.error(t),this.emit("peerConnection-setRemoteDescriptionFailed",i),i}).then(e=>(this.emit("setDescription",e),this.peerConnection.setRemoteDescription(e))).catch(r=>{if(/^m=video.+$/gm.test(e)&&!t.disableAudioFallback)return t.disableAudioFallback=!0,this.setDescription(e,t,[Ge].concat(i));if(r instanceof mi)throw r;let s="The modifiers did not resolve successfully.";r.name&&(s+=" "+r.name),r.message&&(s+=" "+r.message);const n=new mi(s);throw this.logger.error(s),this.emit("peerConnection-setRemoteDescriptionFailed",n),n}).then(()=>{this.peerConnection.getReceivers?this.emit("setRemoteDescription",this.peerConnection.getReceivers()):this.emit("setRemoteDescription",this.peerConnection.getRemoteStreams()),this.emit("confirmed",this)})}sendDtmf(e,t={}){if(!this.dtmfSender&&this.hasBrowserGetSenderSupport()){const e=this.peerConnection.getSenders();e.length>0&&(this.dtmfSender=e[0].dtmf)}if(!this.dtmfSender&&this.hasBrowserTrackSupport()){const e=this.peerConnection.getLocalStreams();if(e.length>0){const t=e[0].getAudioTracks();t.length>0&&(this.dtmfSender=this.peerConnection.createDTMFSender(t[0]))}}if(!this.dtmfSender)return!1;try{this.dtmfSender.insertDTMF(e,t.duration,t.interToneGap)}catch(e){if("InvalidStateError"===e.type||"InvalidCharacterError"===e.type)return this.logger.error(e),!1;throw e}return this.logger.log("DTMF sent via RTP: "+e.toString()),!0}getDirection(){return this.direction}on(e,t){return super.on(e,t)}getMediaStream(e){return navigator.mediaDevices.getUserMedia(e)}createOfferOrAnswer(e={iceRestart:!1,offerToReceiveAudio:!0,offerToReceiveVideo:!1},t=[]){const i=this.hasOffer("remote")?"createAnswer":"createOffer",r=this.peerConnection;return this.logger.log(i),(this.hasOffer("remote")?r.createAnswer:r.createOffer).apply(r,e).catch(e=>{if(e instanceof mi)throw e;let t="peerConnection-"+i+" failed.";e.name&&(t+=" "+e.name),e.message&&(t+=" "+e.message);const r=new mi(t);throw this.logger.error(t),this.emit("peerConnection-"+i+"Failed",r),r}).then(e=>fi(t,this.createRTCSessionDescriptionInit(e))).then(e=>(this.resetIceGatheringComplete(),this.logger.log("Setting local sdp."),this.logger.log("sdp is "+e.sdp||"undefined"),r.setLocalDescription(e))).catch(e=>{if(e instanceof mi)throw e;let t="peerConnection-"+i+" failed.";e.name&&(t+=" "+e.name),e.message&&(t+=" "+e.message);const r=new mi(t);throw this.logger.error(t),this.emit("peerConnection-SetLocalDescriptionFailed",r),r}).then(()=>this.waitForIceGatheringComplete()).then(()=>{if(!this.peerConnection.localDescription)throw new mi("Missing local description.");const e=this.createRTCSessionDescriptionInit(this.peerConnection.localDescription);return fi(t,e)}).then(e=>(this.setDirection(e.sdp||""),e)).catch(e=>{if(e instanceof mi)throw e;let t="Error.";e.name&&(t+=" "+e.name),e.message&&(t+=" "+e.message);const i=new mi(t);throw this.logger.error(t),i})}createRTCSessionDescriptionInit(e){return{type:e.type,sdp:e.sdp}}addDefaultIceCheckingTimeout(e){return void 0===e.iceCheckingTimeout&&(e.iceCheckingTimeout=1e3),e}addDefaultIceServers(e){return e.iceServers||(e.iceServers=[{urls:"stun:stun.l.google.com:19302"}]),e}checkAndDefaultConstraints(e){const t={audio:!0,video:!this.options.alwaysAcquireMediaFirst};return e=e||t,0===Object.keys(e).length&&e.constructor===Object?t:e}hasBrowserTrackSupport(){return Boolean(this.peerConnection.addTrack)}hasBrowserGetSenderSupport(){return Boolean(this.peerConnection.getSenders)}initPeerConnection(e={}){(e=this.addDefaultIceCheckingTimeout(e)).rtcConfiguration=e.rtcConfiguration||{},e.rtcConfiguration=this.addDefaultIceServers(e.rtcConfiguration),this.logger.log("initPeerConnection"),this.peerConnection&&(this.logger.log("Already have a peer connection for this session. Tearing down."),this.resetIceGatheringComplete(),this.peerConnection.close()),this.peerConnection=new RTCPeerConnection(e.rtcConfiguration),this.logger.log("New peer connection created"),"ontrack"in this.peerConnection?this.peerConnection.addEventListener("track",e=>{this.logger.log("track added"),this.emit("addTrack",e)}):(this.logger.warn("Using onaddstream which is deprecated"),this.peerConnection.onaddstream=(e=>{this.logger.log("stream added"),this.emit("addStream",e)})),this.peerConnection.onicecandidate=(e=>{this.emit("iceCandidate",e),e.candidate?this.logger.log("ICE candidate received: "+(null===e.candidate.candidate?null:e.candidate.candidate.trim())):null===e.candidate&&(this.logger.log("ICE candidate gathering complete"),this.triggerIceGatheringComplete())}),this.peerConnection.onicegatheringstatechange=(()=>{switch(this.logger.log("RTCIceGatheringState changed: "+this.peerConnection.iceGatheringState),this.peerConnection.iceGatheringState){case"gathering":this.emit("iceGathering",this),!this.iceGatheringTimer&&e.iceCheckingTimeout&&(this.iceGatheringTimeout=!1,this.iceGatheringTimer=setTimeout(()=>{this.logger.log("RTCIceChecking Timeout Triggered after "+e.iceCheckingTimeout+" milliseconds"),this.iceGatheringTimeout=!0,this.triggerIceGatheringComplete()},e.iceCheckingTimeout));break;case"complete":this.triggerIceGatheringComplete()}}),this.peerConnection.oniceconnectionstatechange=(()=>{let e;switch(this.peerConnection.iceConnectionState){case"new":e="iceConnection";break;case"checking":e="iceConnectionChecking";break;case"connected":e="iceConnectionConnected";break;case"completed":e="iceConnectionCompleted";break;case"failed":e="iceConnectionFailed";break;case"disconnected":e="iceConnectionDisconnected";break;case"closed":e="iceConnectionClosed";break;default:return void this.logger.warn("Unknown iceConnection state: "+this.peerConnection.iceConnectionState)}this.logger.log("ICE Connection State changed to "+e),this.emit(e,this)})}acquire(e){return e=this.checkAndDefaultConstraints(e),new Promise((t,i)=>{this.logger.log("acquiring local media"),this.emit("userMediaRequest",e),e.audio||e.video?this.getMediaStream(e).then(e=>{this.emit("addTrack"),this.emit("userMedia",e),t(e)}).catch(e=>{this.emit("userMediaFailed",e),i(e)}):t([])}).catch(e=>{if(e instanceof mi)throw e;let t="Unable to acquire streams.";e.name&&(t+=" "+e.name),e.message&&(t+=" "+e.message);const i=new mi(t);throw this.logger.error(t),i}).then(e=>(this.logger.log("acquired local media streams"),this.peerConnection.removeTrack&&this.peerConnection.getSenders().forEach(e=>{this.peerConnection.removeTrack(e)}),e)).catch(e=>{if(e instanceof mi)throw e;let t="Error removing streams.";e.name&&(t+=" "+e.name),e.message&&(t+=" "+e.message);const i=new mi(t);throw this.logger.error(t),i}).then(e=>{return[].concat(e).forEach(e=>{this.peerConnection.addTrack?e.getTracks().forEach(t=>{this.peerConnection.addTrack(t,e)}):this.peerConnection.addStream(e)}),Promise.resolve()}).catch(e=>{if(e instanceof mi)throw e;let t="Error adding streams.";e.name&&(t+=" "+e.name),e.message&&(t+=" "+e.message);const i=new mi(t);throw this.logger.error(t),i})}hasOffer(e){const t="have-"+e+"-offer";return this.peerConnection.signalingState===t}isIceGatheringComplete(){return"complete"===this.peerConnection.iceGatheringState||this.iceGatheringTimeout}resetIceGatheringComplete(){this.iceGatheringTimeout=!1,this.logger.log("resetIceGatheringComplete"),this.iceGatheringTimer&&(clearTimeout(this.iceGatheringTimer),this.iceGatheringTimer=void 0),this.iceGatheringDeferred&&(this.iceGatheringDeferred.reject(),this.iceGatheringDeferred=void 0)}setDirection(e){const t=e.match(/a=(sendrecv|sendonly|recvonly|inactive)/);if(null===t)return this.direction=this.C.DIRECTION.NULL,void this.emit("directionChanged");const i=t[1];switch(i){case this.C.DIRECTION.SENDRECV:case this.C.DIRECTION.SENDONLY:case this.C.DIRECTION.RECVONLY:case this.C.DIRECTION.INACTIVE:this.direction=i;break;default:this.direction=this.C.DIRECTION.NULL}this.emit("directionChanged")}triggerIceGatheringComplete(){this.isIceGatheringComplete()&&(this.emit("iceGatheringComplete",this),this.iceGatheringTimer&&(clearTimeout(this.iceGatheringTimer),this.iceGatheringTimer=void 0),this.iceGatheringDeferred&&(this.iceGatheringDeferred.resolve(),this.iceGatheringDeferred=void 0))}waitForIceGatheringComplete(){return this.logger.log("waitForIceGatheringComplete"),this.isIceGatheringComplete()?(this.logger.log("ICE is already complete. Return resolved."),Promise.resolve()):(this.iceGatheringDeferred||(this.iceGatheringDeferred=function(){const e={};return e.promise=new Promise((t,i)=>{e.resolve=t,e.reject=i}),e}()),this.logger.log("ICE is not complete. Returning promise"),this.iceGatheringDeferred?this.iceGatheringDeferred.promise:Promise.resolve())}}function Ti(e,t="event"){return{on:i=>{e.on(t,i)},off:i=>{e.removeListener(t,i)},once:i=>{e.once(t,i)}}}class wi{constructor(e){this.incomingInfoRequest=e}get request(){return this.incomingInfoRequest.message}accept(e){return this.incomingInfoRequest.accept(e),Promise.resolve()}reject(e){return this.incomingInfoRequest.reject(e),Promise.resolve()}}class Ci{constructor(e){this.incomingNotifyRequest=e}get request(){return this.incomingNotifyRequest.message}accept(e){return this.incomingNotifyRequest.accept(e),Promise.resolve()}reject(e){return this.incomingNotifyRequest.reject(e),Promise.resolve()}}class yi{constructor(e,t){this.incomingReferRequest=e,this.session=t}get referTo(){const e=this.incomingReferRequest.message.parseHeader("refer-to");if(!(e instanceof We))throw new Error("Failed to parse Refer-To header.");return e}get referredBy(){return this.incomingReferRequest.message.getHeader("referred-by")}get replaces(){return this.referTo.uri.getHeader("replaces")}get request(){return this.incomingReferRequest.message}accept(e={statusCode:202}){return this.incomingReferRequest.accept(e),Promise.resolve()}reject(e){return this.incomingReferRequest.reject(e),Promise.resolve()}makeInviter(e){if(this.inviter)return this.inviter;const t=this.referTo.uri.clone();t.clearHeaders();const i=((e=e||{}).extraHeaders||[]).slice(),r=this.replaces;r&&i.push("Replaces: "+decodeURIComponent(r));const s=this.referredBy;return s&&i.push("Referred-By: "+s),e.extraHeaders=i,this.inviter=this.session.userAgent.makeInviter(t,e),this.inviter.referred=this.session,this.session.referral=this.inviter,this.inviter}}var vi,_i,Ei;!function(e){e.Initial="Initial",e.Establishing="Establishing",e.Established="Established",e.Terminating="Terminating",e.Terminated="Terminated"}(vi||(vi={})),function(e){e[e.STATUS_NULL=0]="STATUS_NULL",e[e.STATUS_INVITE_SENT=1]="STATUS_INVITE_SENT",e[e.STATUS_1XX_RECEIVED=2]="STATUS_1XX_RECEIVED",e[e.STATUS_INVITE_RECEIVED=3]="STATUS_INVITE_RECEIVED",e[e.STATUS_WAITING_FOR_ANSWER=4]="STATUS_WAITING_FOR_ANSWER",e[e.STATUS_ANSWERED=5]="STATUS_ANSWERED",e[e.STATUS_WAITING_FOR_PRACK=6]="STATUS_WAITING_FOR_PRACK",e[e.STATUS_WAITING_FOR_ACK=7]="STATUS_WAITING_FOR_ACK",e[e.STATUS_CANCELED=8]="STATUS_CANCELED",e[e.STATUS_TERMINATED=9]="STATUS_TERMINATED",e[e.STATUS_ANSWERED_WAITING_FOR_PRACK=10]="STATUS_ANSWERED_WAITING_FOR_PRACK",e[e.STATUS_EARLY_MEDIA=11]="STATUS_EARLY_MEDIA",e[e.STATUS_CONFIRMED=12]="STATUS_CONFIRMED"}(_i||(_i={}));class Ri{constructor(e,t={}){this.localHold=!1,this.isFailed=!1,this.rel100="none",this.status=_i.STATUS_NULL,this.expiresTimer=void 0,this.userNoAnswerTimer=void 0,this._state=vi.Initial,this._stateEventEmitter=new s,this.pendingReinvite=!1,this.userAgent=e,this.delegate=t.delegate,this.logger=e.getLogger("sip.session")}get sessionDescriptionHandler(){return this._sessionDescriptionHandler}get sessionDescriptionHandlerFactory(){return this.userAgent.configuration.sessionDescriptionHandlerFactory}get state(){return this._state}get stateChange(){return Ti(this._stateEventEmitter)}invite(e={}){if(this.logger.log("Session.invite"),this.state!==vi.Established)return Promise.reject(new Error(`Invalid session state ${this.state}`));if(this.pendingReinvite)return Promise.reject(new Error("Reinvite in progress. Please wait until complete, then try again."));if(!this._sessionDescriptionHandler)throw new Error("Session description handler undefined.");this.pendingReinvite=!0;const t={onAccept:t=>{const i=ht(t.message);if(!i)return this.logger.error("Received 2xx response to re-INVITE without a session description"),this.ackAndBye(t,400,"Missing session description"),this.stateTransition(vi.Terminated),this.isFailed=!0,void(this.pendingReinvite=!1);if(e.withoutSdp){const r={sessionDescriptionHandlerOptions:e.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:e.sessionDescriptionHandlerModifiers};this.setOfferAndGetAnswer(i,r).then(e=>{t.ack({body:e})}).catch(e=>{this.logger.error("Failed to handle offer in 2xx response to re-INVITE"),this.logger.error(e.message),this.state===vi.Terminated?t.ack():(this.ackAndBye(t,488,"Bad Media Description"),this.stateTransition(vi.Terminated),this.isFailed=!0)}).then(()=>{this.pendingReinvite=!1,e.requestDelegate&&e.requestDelegate.onAccept&&e.requestDelegate.onAccept(t)})}else{const r={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers};this.setAnswer(i,r).then(()=>{t.ack()}).catch(e=>{this.logger.error("Failed to handle answer in 2xx response to re-INVITE"),this.logger.error(e.message),this.state!==vi.Terminated?(this.ackAndBye(t,488,"Bad Media Description"),this.stateTransition(vi.Terminated),this.isFailed=!0):t.ack()}).then(()=>{this.pendingReinvite=!1,e.requestDelegate&&e.requestDelegate.onAccept&&e.requestDelegate.onAccept(t)})}},onProgress:e=>{},onRedirect:e=>{},onReject:t=>{this.logger.warn("Received a non-2xx response to re-INVITE"),this.pendingReinvite=!1,e.withoutSdp?e.requestDelegate&&e.requestDelegate.onReject&&e.requestDelegate.onReject(t):this.rollbackOffer().catch(e=>{if(this.logger.error("Failed to rollback offer on non-2xx response to re-INVITE"),this.logger.error(e.message),this.state!==vi.Terminated){if(!this.dialog)throw new Error("Dialog undefined.");const e=[];e.push("Reason: "+this.getReasonHeaderValue(500,"Internal Server Error")),this.dialog.bye(void 0,{extraHeaders:e}),this.stateTransition(vi.Terminated),this.isFailed=!0}}).then(()=>{e.requestDelegate&&e.requestDelegate.onReject&&e.requestDelegate.onReject(t)})},onTrying:e=>{}},i=e.requestOptions||{};if(i.extraHeaders=(i.extraHeaders||[]).slice(),i.extraHeaders.push("Allow: "+Jt.toString()),i.extraHeaders.push("Contact: "+this.contact),e.withoutSdp)return this.dialog?Promise.resolve(this.dialog.invite(t,i)):(this.pendingReinvite=!1,Promise.reject(new Error("Dialog undefined.")));const r={sessionDescriptionHandlerOptions:e.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:e.sessionDescriptionHandlerModifiers};return this.getOffer(r).then(e=>{if(!this.dialog)throw this.pendingReinvite=!1,new Error("Dialog undefined.");return i.body=e,this.dialog.invite(t,i)}).catch(e=>{throw this.logger.error(e.message),this.logger.error("Failed to send re-INVITE"),this.pendingReinvite=!1,e})}_bye(e,t){if(!this.dialog)return Promise.reject(new Error("Session dialog undefined."));const i=this.dialog;switch(i.sessionState){case ut.Initial:case ut.Early:throw new Error(`Invalid dialog state ${i.sessionState}`);case ut.AckWait:return this.stateTransition(vi.Terminating),new Promise((r,s)=>{i.delegate={onAck:()=>{const s=i.bye(e,t);this.stateTransition(vi.Terminated),r(s)},onAckTimeout:()=>{const s=i.bye(e,t);this.stateTransition(vi.Terminated),r(s)}}});case ut.Confirmed:{const r=i.bye(e,t);return this.stateTransition(vi.Terminated),Promise.resolve(r)}case ut.Terminated:throw new Error(`Invalid dialog state ${i.sessionState}`);default:throw new Error("Unrecognized state.")}}_close(){if(this.logger.log(`Session[${this.id}]._close`),this.status!==_i.STATUS_TERMINATED){if(this._sessionDescriptionHandler&&this._sessionDescriptionHandler.close(),this.expiresTimer&&clearTimeout(this.expiresTimer),this.userNoAnswerTimer&&clearTimeout(this.userNoAnswerTimer),this.status=_i.STATUS_TERMINATED,!this.id)throw new Error("Session id undefined.");delete this.userAgent.sessions[this.id]}}_info(e,t){return this.dialog?Promise.resolve(this.dialog.info(e,t)):Promise.reject(new Error("Session dialog undefined."))}refer(e,t,i){return this.dialog?(this.referrer=e,Promise.resolve(this.dialog.refer(t,i))):Promise.reject(new Error("Session dialog undefined."))}ackAndBye(e,t,i){e.ack();const r=[];t&&r.push("Reason: "+this.getReasonHeaderValue(t,i)),e.session.bye(void 0,{extraHeaders:r})}onAckRequest(e){if(this.logger.log("Session.onAckRequest"),this.state!==vi.Established&&this.state!==vi.Terminating)return void this.logger.error(`ACK received while in state ${this.state}, dropping request`);const t=this.dialog;if(!t)throw new Error("Dialog undefined.");switch(t.signalingState){case pt.Initial:{this.logger.error(`Invalid signaling state ${t.signalingState}.`),this.isFailed=!0;const e=["Reason: "+this.getReasonHeaderValue(488,"Bad Media Description")];return t.bye(void 0,{extraHeaders:e}),void this.stateTransition(vi.Terminated)}case pt.Stable:{const i=ht(e.message);if(!i)return void(this.status=_i.STATUS_CONFIRMED);if("render"===i.contentDisposition)return this.renderbody=i.content,this.rendertype=i.contentType,void(this.status=_i.STATUS_CONFIRMED);if("session"!==i.contentDisposition)return void(this.status=_i.STATUS_CONFIRMED);const r={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers};return void this.setAnswer(i,r).then(()=>{this.status=_i.STATUS_CONFIRMED}).catch(e=>{this.logger.error(e.message),this.isFailed=!0;const i=["Reason: "+this.getReasonHeaderValue(488,"Bad Media Description")];t.bye(void 0,{extraHeaders:i}),this.stateTransition(vi.Terminated)})}case pt.HaveLocalOffer:case pt.HaveRemoteOffer:{this.logger.error(`Invalid signaling state ${t.signalingState}.`),this.isFailed=!0;const e=["Reason: "+this.getReasonHeaderValue(488,"Bad Media Description")];return t.bye(void 0,{extraHeaders:e}),void this.stateTransition(vi.Terminated)}case pt.Closed:default:throw new Error(`Invalid signaling state ${t.signalingState}.`)}}onByeRequest(e){this.logger.log("Session.onByeRequest"),this.state===vi.Established?(e.accept(),this.stateTransition(vi.Terminated)):this.logger.error(`BYE received while in state ${this.state}, dropping request`)}onInfoRequest(e){if(this.logger.log("Session.onInfoRequest"),this.state===vi.Established)if(this.delegate&&this.delegate.onInfo){const t=new wi(e);this.delegate.onInfo(t)}else e.accept();else this.logger.error(`INFO received while in state ${this.state}, dropping request`)}onInviteRequest(e){if(this.logger.log("Session.onInviteRequest"),this.state!==vi.Established)return void this.logger.error(`INVITE received while in state ${this.state}, dropping request`);const t=["Contact: "+this.contact];if(e.message.hasHeader("P-Asserted-Identity")){const t=e.message.getHeader("P-Asserted-Identity");if(!t)throw new Error("Header undefined.");this.assertedIdentity=Ye.nameAddrHeaderParse(t)}const i={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers};this.generateResponseOfferAnswerInDialog(i).then(i=>{const r=e.accept({statusCode:200,extraHeaders:t,body:i});this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(e.message,r.message,200)}).catch(i=>{if(this.logger.error(i.message),this.logger.error("Failed to handle to re-INVITE request"),!this.dialog)throw new Error("Dialog undefined.");if(this.logger.error(this.dialog.signalingState),this.dialog.signalingState!==pt.Stable)this.rollbackOffer().then(()=>{const t=e.reject({statusCode:488});this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(e.message,t.message,488)}).catch(i=>{this.logger.error(i.message),this.logger.error("Failed to rollback offer on re-INVITE request");const r=e.reject({statusCode:488});if(this.state!==vi.Terminated){if(!this.dialog)throw new Error("Dialog undefined.");[].push("Reason: "+this.getReasonHeaderValue(500,"Internal Server Error")),this.dialog.bye(void 0,{extraHeaders:t}),this.stateTransition(vi.Terminated),this.isFailed=!0}this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(e.message,r.message,488)});else{const t=e.reject({statusCode:488});this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(e.message,t.message,488)}})}onNotifyRequest(e){if(this.logger.log("Session.onNotifyRequest"),this.state===vi.Established)if(this.referrer&&this.referrer.delegate&&this.referrer.delegate.onNotify){const t=new Ci(e);this.referrer.delegate.onNotify(t)}else if(this.delegate&&this.delegate.onNotify){const t=new Ci(e);this.delegate.onNotify(t)}else e.accept();else this.logger.error(`NOTIFY received while in state ${this.state}, dropping request`)}onPrackRequest(e){if(this.logger.log("Session.onPrackRequest"),this.state===vi.Established)throw new Error("Unimplemented.");this.logger.error(`PRACK received while in state ${this.state}, dropping request`)}onReferRequest(e){if(this.logger.log("Session.onReferRequest"),this.state===vi.Established){if(this.status===_i.STATUS_CONFIRMED){if(!e.message.hasHeader("refer-to"))return this.logger.warn("Invalid REFER packet. A refer-to header is required. Rejecting."),void e.reject();const t=new yi(e,this);this.delegate&&this.delegate.onRefer?this.delegate.onRefer(t):(this.logger.log("No delegate available to handle REFER, automatically accepting and following."),t.accept().then(()=>t.makeInviter(this.passedOptions).invite()).catch(e=>{this.logger.error(e.message)}))}}else this.logger.error(`REFER received while in state ${this.state}, dropping request`)}generateResponseOfferAnswer(e,t){if(this.dialog)return this.generateResponseOfferAnswerInDialog(t);const i=ht(e.message);return i&&"session"===i.contentDisposition?this.setOfferAndGetAnswer(i,t):this.getOffer(t)}generateResponseOfferAnswerInDialog(e){if(!this.dialog)throw new Error("Dialog undefined.");switch(this.dialog.signalingState){case pt.Initial:return this.getOffer(e);case pt.HaveLocalOffer:return Promise.resolve(void 0);case pt.HaveRemoteOffer:if(!this.dialog.offer)throw new Error(`Session offer undefined in signaling state ${this.dialog.signalingState}.`);return this.setOfferAndGetAnswer(this.dialog.offer,e);case pt.Stable:return this.state!==vi.Established?Promise.resolve(void 0):this.getOffer(e);case pt.Closed:default:throw new Error(`Invalid signaling state ${this.dialog.signalingState}.`)}}getOffer(e){const t=this.setupSessionDescriptionHandler(),i=e.sessionDescriptionHandlerOptions,r=e.sessionDescriptionHandlerModifiers;try{return t.getDescription(i,r).then(e=>ot(e)).catch(e=>{this.logger.error("Session.getOffer: SDH getDescription rejected...");const t=e instanceof Error?e:new Error(e);throw this.logger.error(t.message),t})}catch(e){this.logger.error("Session.getOffer: SDH getDescription threw...");const t=e instanceof Error?e:new Error(e);return this.logger.error(t.message),Promise.reject(t)}}rollbackOffer(){const e=this.setupSessionDescriptionHandler();if(!e.rollbackDescription)return Promise.resolve();try{return e.rollbackDescription().catch(e=>{this.logger.error("Session.rollbackOffer: SDH rollbackDescription rejected...");const t=e instanceof Error?e:new Error(e);throw this.logger.error(t.message),t})}catch(e){this.logger.error("Session.rollbackOffer: SDH rollbackDescription threw...");const t=e instanceof Error?e:new Error(e);return this.logger.error(t.message),Promise.reject(t)}}setAnswer(e,t){const i=this.setupSessionDescriptionHandler(),r=t.sessionDescriptionHandlerOptions,s=t.sessionDescriptionHandlerModifiers;try{if(!i.hasDescription(e.contentType))return Promise.reject(new ui)}catch(e){this.logger.error("Session.setAnswer: SDH hasDescription threw...");const t=e instanceof Error?e:new Error(e);return this.logger.error(t.message),Promise.reject(t)}try{return i.setDescription(e.content,r,s).catch(e=>{this.logger.error("Session.setAnswer: SDH setDescription rejected...");const t=e instanceof Error?e:new Error(e);throw this.logger.error(t.message),t})}catch(e){this.logger.error("Session.setAnswer: SDH setDescription threw...");const t=e instanceof Error?e:new Error(e);return this.logger.error(t.message),Promise.reject(t)}}setOfferAndGetAnswer(e,t){const i=this.setupSessionDescriptionHandler(),r=t.sessionDescriptionHandlerOptions,s=t.sessionDescriptionHandlerModifiers;try{if(!i.hasDescription(e.contentType))return Promise.reject(new ui)}catch(e){this.logger.error("Session.setOfferAndGetAnswer: SDH hasDescription threw...");const t=e instanceof Error?e:new Error(e);return this.logger.error(t.message),Promise.reject(t)}try{return i.setDescription(e.content,r,s).then(()=>i.getDescription(r,s)).then(e=>ot(e)).catch(e=>{this.logger.error("Session.setOfferAndGetAnswer: SDH setDescription or getDescription rejected...");const t=e instanceof Error?e:new Error(e);throw this.logger.error(t.message),t})}catch(e){this.logger.error("Session.setOfferAndGetAnswer: SDH setDescription or getDescription threw...");const t=e instanceof Error?e:new Error(e);return this.logger.error(t.message),Promise.reject(t)}}setSessionDescriptionHandler(e){if(this._sessionDescriptionHandler)throw new Error("Sessionn description handler defined.");this._sessionDescriptionHandler=e}setupSessionDescriptionHandler(){return this._sessionDescriptionHandler?this._sessionDescriptionHandler:(this._sessionDescriptionHandler=this.sessionDescriptionHandlerFactory(this,this.userAgent.configuration.sessionDescriptionHandlerFactoryOptions),this._sessionDescriptionHandler)}stateTransition(e){const t=()=>{throw new Error(`Invalid state transition from ${this._state} to ${e}`)};switch(this._state){case vi.Initial:e!==vi.Establishing&&e!==vi.Established&&e!==vi.Terminating&&e!==vi.Terminated&&t();break;case vi.Establishing:e!==vi.Established&&e!==vi.Terminating&&e!==vi.Terminated&&t();break;case vi.Established:e!==vi.Terminating&&e!==vi.Terminated&&t();break;case vi.Terminating:e!==vi.Terminated&&t();break;case vi.Terminated:t();break;default:throw new Error("Unrecognized state.")}e===vi.Established&&(this.startTime=new Date),e===vi.Terminated&&(this.endTime=new Date,this._close()),this._state=e,this.logger.log(`Session ${this.id} transitioned to state ${this._state}`),this._stateEventEmitter.emit("event",this._state)}getReasonHeaderValue(e,t){const i=e;let r=Xe(e);return!r&&t&&(r=t),"SIP;cause="+i+';text="'+r+'"'}}!function(e){e.Required="Required",e.Supported="Supported",e.Unsupported="Unsupported"}(Ei||(Ei={}));const bi={"100rel":!0,199:!0,answermode:!0,"early-session":!0,eventlist:!0,explicitsub:!0,"from-change":!0,"geolocation-http":!0,"geolocation-sip":!0,gin:!0,gruu:!0,histinfo:!0,ice:!0,join:!0,"multiple-refer":!0,norefersub:!0,nosub:!0,outbound:!0,path:!0,policy:!0,precondition:!0,pref:!0,privacy:!0,"recipient-list-invite":!0,"recipient-list-message":!0,"recipient-list-subscribe":!0,replaces:!0,"resource-priority":!0,"sdp-anat":!0,"sec-agree":!0,tdialog:!0,timer:!0,uui:!0};class Pi extends Ri{get isVideo(){switch(this.state){case vi.Initial:break;case vi.Established:return null!=this.localVideoTrack&&null!=this.remoteVideoTrack}if(this instanceof Di){return this.request.body.indexOf("m=video")>0}if(this instanceof Ai){return this.body.body.indexOf("m=video")>0}}setDelegate(e){this.delegatePhone=e,this.stateChange.on(e=>{switch(this.logger.log(`[${this.id}] session state changed to ${e}`),e){case vi.Initial:case vi.Establishing:break;case vi.Established:this.setupLocalMedia(),this.setupRemoteMedia(),this.delegate&&this.delegatePhone.onCallAnswered&&this.delegatePhone.onCallAnswered(this.id);break;case vi.Terminating:break;case vi.Terminated:this.logger.warn("call terminated: "+this.id),this.cleanupMedia(),this.delegatePhone&&this.delegatePhone.onCallHangup&&this.delegatePhone.onCallHangup(this.id,this.remoteIdentity.uri.user);break;default:throw new Error("Unknown session state.")}})}setupCall(e,t,i,r){this.localVideoControal=e,this.remoteVideoControal=t,this.remoteAudioControl=r,this.logger=i}setupLocalMedia(){if(this.localVideoControal&&this.remoteVideoControal){const e=this.localVideoTrack;if(e){const t=new MediaStream([e]);this.localVideoControal.srcObject=t,this.localVideoControal.volume=0,this.localVideoControal.play()}}}setupRemoteMedia(){if(this.remoteVideoControal){const e=this.remoteAudioTrack,t=this.remoteVideoTrack,i=new MediaStream;this.remoteVideoControal&&(e&&i.addTrack(e),t&&this.localVideoTrack&&i.addTrack(t),this.remoteVideoControal.srcObject=i,this.remoteVideoControal.play().catch(e=>{this.logger.error(`[${this.id}] error playing video`),this.logger.error(e.message)})),this.remoteAudioControl&&e&&(i.addTrack(e),this.remoteAudioControl.srcObject=i,this.remoteAudioControl.play().catch(e=>{this.logger.error(`[${this.id}] error playing audio`),this.logger.error(e.message)}))}}cleanupMedia(){this.localVideoControal&&(this.localVideoControal.srcObject=null,this.localVideoControal.pause()),this.remoteVideoControal&&(this.remoteVideoControal.srcObject=null,this.remoteVideoControal.pause())}getReceiverTrack(e){const t=this.sessionDescriptionHandler;if(!t)return void this.logger.warn(`[${this.id}] getReceiverTrack - session description handler undefined`);if(!(t instanceof Ii))throw new Error("Session's session description handler not instance of SessionDescriptionHandler.");const i=t.peerConnection.getReceivers().find(t=>t.track.kind===e);return i?i.track:void 0}getSenderTrack(e){const t=this.sessionDescriptionHandler;if(!t)return void this.logger.warn(`[${this.id}] getSenderTrack - session description handler undefined`);if(!(t instanceof Ii))throw new Error("Session's session description handler not instance of SessionDescriptionHandler.");const i=t.peerConnection.getSenders().find(t=>!(!t.track||t.track.kind!==e));return i&&i.track?i.track:void 0}get remoteAudioTrack(){return this.getReceiverTrack("audio")}get remoteVideoTrack(){return this.getReceiverTrack("video")}get localAudioTrack(){return this.getSenderTrack("audio")}get localVideoTrack(){return this.getSenderTrack("video")}changeVideoElement(e){e.srcObject=this.remoteVideoControal.srcObject,this.remoteVideoControal.srcObject=null,this.remoteVideoControal=e,this.remoteVideoControal.play()}}class Di extends Pi{constructor(e,t){if(super(e),this.incomingInviteRequest=t,this.body=void 0,this._canceled=!1,this.rseq=Math.floor(1e4*Math.random()),this.logger=e.getLogger("sip.invitation",this.id),this.request.body&&(this.body=this.request.body),this.request.hasHeader("Content-Type")&&(this.contentType=this.request.getHeader("Content-Type")),this.request.hasHeader("ifc")&&(this._ifcContent=this.request.getHeader("ifc")),this.localIdentity=this.request.to,this.remoteIdentity=this.request.from,this.request.hasHeader("P-Asserted-Identity")){const e=this.request.getHeader("P-Asserted-Identity");e&&(this.assertedIdentity=Ye.nameAddrHeaderParse(e))}this.contact=this.userAgent.contact.toString(),this.fromTag=this.request.fromTag,this.id=this.request.callId+this.fromTag;const i=this.request.parseHeader("Content-Disposition");i&&"render"===i.type&&(this.renderbody=this.request.body,this.rendertype=this.request.getHeader("Content-Type")),this.logger=e.getLogger("sip.invitation",this.id),this.status=_i.STATUS_INVITE_RECEIVED,this.userAgent.sessions[this.id]=this;const r=this.request,s=r.getHeader("require");s&&s.toLowerCase().indexOf("100rel")>=0&&(this.rel100="required");const n=r.getHeader("supported");if(n&&n.toLowerCase().indexOf("100rel")>=0&&(this.rel100="supported"),this.request.toTag=t.toTag,this.status=_i.STATUS_WAITING_FOR_ANSWER,this.userNoAnswerTimer=setTimeout(()=>{t.reject({statusCode:480}),this.stateTransition(vi.Terminated)},this.userAgent.configuration.noAnswerTimeout?1e3*this.userAgent.configuration.noAnswerTimeout:6e4),r.hasHeader("expires")){const e=1e3*Number(r.getHeader("expires")||0);this.expiresTimer=setTimeout(()=>{this.status===_i.STATUS_WAITING_FOR_ANSWER&&(t.reject({statusCode:487}),this.stateTransition(vi.Terminated))},e)}}get autoSendAnInitialProvisionalResponse(){return"required"!==this.rel100}get request(){return this.incomingInviteRequest.message}accept(e={}){if(this.logger.log("Invitation.accept"),this.state!==vi.Initial){const e=new Error(`Invalid session state ${this.state}`);return this.logger.error(e.message),Promise.reject(e)}return this.stateTransition(vi.Establishing),this._accept(e).then(({message:e,session:t})=>{t.delegate={onAck:e=>this.onAckRequest(e),onAckTimeout:()=>this.onAckTimeout(),onBye:e=>this.onByeRequest(e),onInfo:e=>this.onInfoRequest(e),onInvite:e=>this.onInviteRequest(e),onNotify:e=>this.onNotifyRequest(e),onPrack:e=>this.onPrackRequest(e),onRefer:e=>this.onReferRequest(e)},this.dialog=t,this.stateTransition(vi.Established),this.replacee&&this.replacee._bye()}).catch(e=>{if(this.onContextError(e),!this._canceled)throw e})}progress(e={}){if(this.logger.log("Invitation.progress"),this.state!==vi.Initial){const e=new Error(`Invalid session state ${this.state}`);return this.logger.error(e.message),Promise.reject(e)}const t=e.statusCode||180;if(t<100||t>199)throw new TypeError("Invalid statusCode: "+t);if(this.status===_i.STATUS_TERMINATED)return this.logger.warn("Unexpected call for progress while terminated, ignoring"),Promise.resolve();if(this.status===_i.STATUS_ANSWERED)return this.logger.warn("Unexpected call for progress while answered, ignoring"),Promise.resolve();if(this.status===_i.STATUS_ANSWERED_WAITING_FOR_PRACK)return this.logger.warn("Unexpected call for progress while answered (waiting for prack), ignoring"),Promise.resolve();if(this.status===_i.STATUS_WAITING_FOR_PRACK)return this.logger.warn("Unexpected call for progress while waiting for prack, ignoring"),Promise.resolve();if(100===e.statusCode){try{this.incomingInviteRequest.trying()}catch(e){if(this.onContextError(e),!this._canceled)return Promise.reject(e)}return Promise.resolve()}return"required"===this.rel100||"supported"===this.rel100&&e.rel100||"supported"===this.rel100&&this.userAgent.configuration.sipExtension100rel===Ei.Required?this._progressReliableWaitForPrack(e).then(e=>{}).catch(e=>{if(this.onContextError(e),!this._canceled)throw e}):this._progress(e).then(e=>{}).catch(e=>{if(this.onContextError(e),!this._canceled)throw e})}reject(e={}){if(this.logger.log("Invitation.reject"),this.state!==vi.Initial){const e=new Error(`Invalid session state ${this.state}`);return this.logger.error(e.message),Promise.reject(e)}if(this.status===_i.STATUS_TERMINATED)throw new Error(`Invalid status ${this.status}`);this.logger.log("rejecting RTCSession");const t=e.statusCode||480,i=e.reasonPhrase?e.reasonPhrase:Xe(t),r=e.extraHeaders||[];if(t<300||t>699)throw new TypeError("Invalid statusCode: "+t);const s=e.body?ot(e.body):void 0;t<400?this.incomingInviteRequest.redirect([],{statusCode:t,reasonPhrase:i,extraHeaders:r,body:s}):this.incomingInviteRequest.reject({statusCode:t,reasonPhrase:i,extraHeaders:r,body:s});return this.stateTransition(vi.Terminated),Promise.resolve()}_close(){this.prackNeverArrived(),super._close()}_onCancel(e){this.logger.log("Invitation._onCancel"),this.state===vi.Initial||this.state===vi.Establishing?(this._canceled=!0,this.incomingInviteRequest.reject({statusCode:487}),this.stateTransition(vi.Terminated)):this.logger.error(`CANCEL received while in state ${this.state}, dropping request`)}_accept(e={}){return this.onInfo=e.onInfo,this.status===_i.STATUS_WAITING_FOR_PRACK?(this.status=_i.STATUS_ANSWERED_WAITING_FOR_PRACK,this.waitForArrivalOfPrack().then(()=>{this.status=_i.STATUS_ANSWERED,clearTimeout(this.userNoAnswerTimer)}).then(()=>this.generateResponseOfferAnswer(this.incomingInviteRequest,e)).then(e=>this.incomingInviteRequest.accept({statusCode:200,body:e}))):this.status!==_i.STATUS_WAITING_FOR_ANSWER?Promise.reject(new Error(`Invalid status ${this.status}`)):(this.status=_i.STATUS_ANSWERED,this.status=_i.STATUS_ANSWERED,clearTimeout(this.userNoAnswerTimer),this.generateResponseOfferAnswer(this.incomingInviteRequest,e).then(e=>this.incomingInviteRequest.accept({statusCode:200,body:e})))}_progress(e={}){const t=e.statusCode||180,i=e.reasonPhrase,r=(e.extraHeaders||[]).slice(),s=e.body?ot(e.body):void 0;if(183===t&&!s)return this._progressWithSDP(e);try{const e=this.incomingInviteRequest.progress({statusCode:t,reasonPhrase:i,extraHeaders:r,body:s});return this.dialog=e.session,Promise.resolve(e)}catch(e){return Promise.reject(e)}}_progressWithSDP(e={}){const t=e.statusCode||183,i=e.reasonPhrase,r=(e.extraHeaders||[]).slice();return this.generateResponseOfferAnswer(this.incomingInviteRequest,e).then(e=>this.incomingInviteRequest.progress({statusCode:t,reasonPhrase:i,extraHeaders:r,body:e})).then(e=>(this.dialog=e.session,e))}_progressReliable(e={}){return e.extraHeaders=(e.extraHeaders||[]).slice(),e.extraHeaders.push("Require: 100rel"),e.extraHeaders.push("RSeq: "+Math.floor(1e4*Math.random())),this._progressWithSDP(e)}_progressReliableWaitForPrack(e={}){const t=e.statusCode||183,i=e.reasonPhrase,r=(e.extraHeaders||[]).slice();let s;return r.push("Require: 100rel"),r.push("RSeq: "+this.rseq++),this.status=_i.STATUS_WAITING_FOR_PRACK,new Promise((n,a)=>{let o=!0;return this.generateResponseOfferAnswer(this.incomingInviteRequest,e).then(e=>(s=e,this.incomingInviteRequest.progress({statusCode:t,reasonPhrase:i,extraHeaders:r,body:s}))).then(h=>{let d,c;this.dialog=h.session,h.session.delegate={onPrack:t=>{d=t,clearTimeout(l),clearTimeout(p),o&&(o=!1,this.handlePrackOfferAnswer(d,e).then(e=>{try{c=d.accept({statusCode:200,body:e}),this.status===_i.STATUS_WAITING_FOR_PRACK&&(this.status=_i.STATUS_WAITING_FOR_ANSWER),this.prackArrived(),n({prackRequest:d,prackResponse:c,progressResponse:h})}catch(e){a(e)}}))}};const l=setTimeout(()=>{if(o){o=!1,this.logger.warn("No PRACK received, rejecting INVITE."),clearTimeout(p);try{this.incomingInviteRequest.reject({statusCode:504}),this.stateTransition(vi.Terminated),a(new Si)}catch(e){a(e)}}},64*Ct.T1),g=()=>{try{this.incomingInviteRequest.progress({statusCode:t,reasonPhrase:i,extraHeaders:r,body:s})}catch(e){return o=!1,void a(e)}p=setTimeout(g,u*=2)};let u=Ct.T1,p=setTimeout(g,u)})})}handlePrackOfferAnswer(e,t){if(!this.dialog)throw new Error("Dialog undefined.");const i=ht(e.message);if(!i||"session"!==i.contentDisposition)return Promise.resolve(void 0);switch(this.dialog.signalingState){case pt.Initial:throw new Error(`Invalid signaling state ${this.dialog.signalingState}.`);case pt.Stable:return this.setAnswer(i,t).then(()=>void 0);case pt.HaveLocalOffer:throw new Error(`Invalid signaling state ${this.dialog.signalingState}.`);case pt.HaveRemoteOffer:return this.setOfferAndGetAnswer(i,t);case pt.Closed:default:throw new Error(`Invalid signaling state ${this.dialog.signalingState}.`)}}onAckTimeout(){if(this.logger.log("Invitation.onAckTimeout"),!this.dialog)throw new Error("Dialog undefined.");this.logger.log("No ACK received for an extended period of time, terminating session"),this.dialog.bye(),this.stateTransition(vi.Terminated)}onContextError(e){let t=480;e instanceof yt?e instanceof mi?this.logger.error(e.message):e instanceof Si?this.logger.warn("Incoming session terminated while waiting for PRACK."):e instanceof ui?t=415:e instanceof yt&&this.logger.error(e.message):e instanceof Error?this.logger.error(e.message):(this.logger.error("An error occurred in the session description handler."),this.logger.error(e));try{this.incomingInviteRequest.reject({statusCode:t}),this.stateTransition(vi.Terminated)}catch(e){return}}prackArrived(){this.waitingForPrackResolve&&this.waitingForPrackResolve(),this.waitingForPrackPromise=void 0,this.waitingForPrackResolve=void 0,this.waitingForPrackReject=void 0}prackNeverArrived(){this.waitingForPrackReject&&this.waitingForPrackReject(new Si),this.waitingForPrackPromise=void 0,this.waitingForPrackResolve=void 0,this.waitingForPrackReject=void 0}waitForArrivalOfPrack(){if(this.waitingForPrackPromise)throw new Error("Already waiting for PRACK");return this.waitingForPrackPromise=new Promise((e,t)=>{this.waitingForPrackResolve=e,this.waitingForPrackReject=t}),this.waitingForPrackPromise}}class Mi{constructor(e,t){this._session=e}get session(){return this._session}bye(e={}){if(this.session.state!==vi.Established&&this.session.state!==vi.Terminating){let e="Byer.bye() may only be called if established session.";return this.session.state===vi.Terminated?e+=" However this session is already terminated.":this.session instanceof Di?(e+=" However Invitation.accept() has not yet been called.",e+=" Perhaps you should have called Invitation.reject()?"):(e+=" However a dialog does not yet exist.",e+=" Perhaps you should have called Inviter.cancel()?"),this.session.logger.error(e),Promise.reject(new Error(`Invalid session state ${this.session.state}`))}return this.session._bye(e.requestDelegate,e.requestOptions)}}class Oi{constructor(e,t){this._session=e}get session(){return this._session}info(e={}){if(this.session.state!==vi.Established){const e="Infoer.info() may only be called if established session.";return this.session.logger.error(e),Promise.reject(new Error(`Invalid session state ${this.session.state}`))}return this.session._info(e.requestDelegate,e.requestOptions)}}class Ai extends Pi{constructor(e,t,i={}){if(super(e,i),this.body=void 0,this.earlyMediaSessionDescriptionHandlers=new Map,i.params=i.params||{},this.status!==_i.STATUS_NULL)throw new Error(`Invalid status ${this.status}`);this.logger=e.getLogger("sip.inviter"),i.body&&(this.body={body:i.body,contentType:i.contentType?i.contentType:"application/sdp"});const r=i.anonymous||!1;r&&e.configuration.uri&&(i.params.fromDisplayName="Anonymous",i.params.fromUri="sip:anonymous@anonymous.invalid");const s=Qe(),n=e.contact.toString({anonymous:r,outbound:r?!e.contact.tempGruu:!e.contact.pubGruu}),a=i.params||{};a.fromTag=s;let o=e.userAgentCore.configuration.aor;if(i.params.fromUri&&(o="string"==typeof i.params.fromUri?Ye.URIParse(i.params.fromUri):i.params.fromUri),!o)throw new TypeError("Invalid from URI: "+i.params.fromUri);let h=t;if(i.params.toUri&&(h="string"==typeof i.params.toUri?Ye.URIParse(i.params.toUri):i.params.toUri),!h)throw new TypeError("Invalid to URI: "+i.params.toUri);const d=(i.extraHeaders||[]).slice();let c;if(r&&e.configuration.uri&&(d.push("P-Preferred-Identity: "+e.configuration.uri.toString()),d.push("Privacy: id")),d.push("Contact: "+n),d.push("Allow: "+["ACK","CANCEL","INVITE","MESSAGE","BYE","OPTIONS","INFO","NOTIFY","REFER"].toString()),e.configuration.sipExtension100rel===Ei.Required&&d.push("Require: 100rel"),e.configuration.sipExtensionReplaces===Ei.Required&&d.push("Require: replaces"),this.body&&(c=ot(this.body)),this.request=e.userAgentCore.makeOutgoingRequestMessage(Le.INVITE,t,o,h,a,d,c),!this.request.from)throw new Error("From undefined.");if(!this.request.to)throw new Error("From undefined.");this.localIdentity=this.request.from,this.remoteIdentity=this.request.to,i.params=a,i.extraHeaders=d,this.contact=n,this.fromTag=s,this.id=this.request.callId+this.fromTag,this.onInfo=i.onInfo,this.passedOptions=i,this.renderbody=i.renderbody||void 0,this.rendertype=i.rendertype||"text/plain",this.sessionDescriptionHandlerModifiers=i.sessionDescriptionHandlerModifiers||[],this.sessionDescriptionHandlerOptions=i.sessionDescriptionHandlerOptions||{},this.inviteWithoutSdp=i.inviteWithoutSdp||!1,this.isCanceled=!1,this.earlyMedia=i.earlyMedia||!1,e.applicants[this.toString()]=this}cancel(e={}){if(this.logger.log("Inviter.cancel"),this.state!==vi.Initial&&this.state!==vi.Establishing){const e=new Error(`Invalid session state ${this.state}`);return this.logger.error(e.message),Promise.reject(e)}if(this.isCanceled)throw new Error("Already canceled.");if(this.isCanceled=!0,this.stateTransition(vi.Terminating),this.disposeEarlyMedia(),this.sessionDescriptionHandler&&this.sessionDescriptionHandler.close(),this.outgoingInviteRequest){let t;e.statusCode&&e.reasonPhrase&&(t=function(e,t){if(e&&e<200||e>699)throw new TypeError("Invalid statusCode: "+e);if(e)return"SIP;cause="+e+';text="'+(Xe(e)||t)+'"'}(e.statusCode,e.reasonPhrase)),this.outgoingInviteRequest.cancel(t,e)}else this.logger.warn("Canceled session before INVITE was sent"),this.stateTransition(vi.Terminated);return Promise.resolve()}invite(e={}){if(this.logger.log("Inviter.invite"),this.state!==vi.Initial)return super.invite(e);if(!this.id)throw new Error("Session id undefined.");if(this.userAgent.sessions[this.id]=this,e.withoutSdp||this.inviteWithoutSdp)return this.renderbody&&this.rendertype&&(this.request.body={contentType:this.rendertype,body:this.renderbody}),this.stateTransition(vi.Establishing),this.status=_i.STATUS_INVITE_SENT,Promise.resolve(this.sendInvite(e));const t={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers};return this.getOffer(t).then(t=>(this.stateTransition(vi.Establishing),this.status=_i.STATUS_INVITE_SENT,this.request.body={body:t.content,contentType:t.contentType},this.sendInvite(e))).catch(e=>{throw this.logger.log(e.message),this.stateTransition(vi.Terminated),e})}_close(){this.disposeEarlyMedia(),super._close()}sendInvite(e={}){return this.outgoingInviteRequest=this.userAgent.userAgentCore.invite(this.request,{onAccept:t=>this.dialog?(this.logger.log("Additional confirmed dialog, sending ACK and BYE"),void this.ackAndBye(t)):this.isCanceled?(this.logger.log("Canceled session accepted, sending ACK and BYE"),this.ackAndBye(t),void this.stateTransition(vi.Terminated)):(this.notifyReferer(t),void this.onAccept(t).then(()=>{this.disposeEarlyMedia()}).catch(e=>{this.disposeEarlyMedia()}).then(()=>{e.requestDelegate&&e.requestDelegate.onAccept&&e.requestDelegate.onAccept(t)})),onProgress:t=>{this.isCanceled||(this.notifyReferer(t),this.onProgress(t).catch(e=>{this.disposeEarlyMedia()}).then(()=>{e.requestDelegate&&e.requestDelegate.onProgress&&e.requestDelegate.onProgress(t)}))},onRedirect:t=>{this.notifyReferer(t),this.onRedirect(t),e.requestDelegate&&e.requestDelegate.onRedirect&&e.requestDelegate.onRedirect(t)},onReject:t=>{this.notifyReferer(t),this.onReject(t),e.requestDelegate&&e.requestDelegate.onReject&&e.requestDelegate.onReject(t)},onTrying:t=>{this.notifyReferer(t),this.onTrying(t),e.requestDelegate&&e.requestDelegate.onTrying&&e.requestDelegate.onTrying(t)}}),this.outgoingInviteRequest}disposeEarlyMedia(){this.earlyMediaSessionDescriptionHandlers.forEach(e=>{e.close()}),this.earlyMediaSessionDescriptionHandlers.clear()}notifyReferer(e){if(!this.referred)return;if(!(this.referred instanceof Ri))throw new Error("Referred session not instance of session");if(!this.referred.dialog)return;if(!e.message.statusCode)throw new Error("Status code undefined.");if(!e.message.reasonPhrase)throw new Error("Reason phrase undefined.");const t=`SIP/2.0 ${e.message.statusCode} ${e.message.reasonPhrase}`.trim();this.referred.dialog.notify(void 0,{extraHeaders:["Event: refer","Subscription-State: terminated"],body:{contentDisposition:"render",contentType:"message/sipfrag",content:t}}).delegate={onReject:()=>{this.referred=void 0}}}onAccept(e){if(this.logger.log("Inviter.onAccept"),this.state!==vi.Establishing)return this.logger.error(`Accept received while in state ${this.state}, dropping response`),Promise.reject(new Error(`Invalid session state ${this.state}`));const t=e.message,i=e.session;t.hasHeader("P-Asserted-Identity")&&(this.assertedIdentity=Ye.nameAddrHeaderParse(t.getHeader("P-Asserted-Identity"))),this.dialog=i,this.dialog.delegate={onAck:e=>this.onAckRequest(e),onBye:e=>this.onByeRequest(e),onInfo:e=>this.onInfoRequest(e),onInvite:e=>this.onInviteRequest(e),onNotify:e=>this.onNotifyRequest(e),onPrack:e=>this.onPrackRequest(e),onRefer:e=>this.onReferRequest(e)};const r=this.sessionDescriptionHandlerOptions,s=this.sessionDescriptionHandlerModifiers;switch(i.signalingState){case pt.Initial:case pt.HaveLocalOffer:return this.logger.error("Received 2xx response to INVITE without a session description"),this.ackAndBye(e,400,"Missing session description"),this.stateTransition(vi.Terminated),Promise.reject(new Error("Bad Media Description"));case pt.HaveRemoteOffer:{if(!this.dialog.offer)throw new Error(`Session offer undefined in signaling state ${this.dialog.signalingState}.`);const t={sessionDescriptionHandlerOptions:r,sessionDescriptionHandlerModifiers:s};return this.setOfferAndGetAnswer(this.dialog.offer,t).then(t=>{this.status=_i.STATUS_CONFIRMED;e.ack({body:t});this.stateTransition(vi.Established)}).catch(t=>{throw this.ackAndBye(e,488,"Invalid session description"),this.stateTransition(vi.Terminated),t})}case pt.Stable:{if(this.earlyMediaSessionDescriptionHandlers.size>0){const t=this.earlyMediaSessionDescriptionHandlers.get(i.id);if(!t)throw new Error("Session description handler undefined.");this.setSessionDescriptionHandler(t),this.earlyMediaSessionDescriptionHandlers.delete(i.id),this.status=_i.STATUS_CONFIRMED;e.ack();return this.stateTransition(vi.Established),Promise.resolve()}if(this.earlyMediaDialog){if(this.earlyMediaDialog!==i){if(this.earlyMedia){const e="You have set the 'earlyMedia' option to 'true' which requires that your INVITE requests do not fork and yet this INVITE request did in fact fork. Consequentially and not surprisingly the end point which accepted the INVITE (confirmed dialog) does not match the end point with which early media has been setup (early dialog) and thus this session is unable to proceed. In accordance with the SIP specifications, the SIP servers your end point is connected to determine if an INVITE forks and the forking behaviour of those servers cannot be controlled by this library. If you wish to use early media with this library you must configure those servers accordingly. Alternatively you may set the 'earlyMedia' to 'false' which will allow this library to function with any INVITE requests which do fork.";this.logger.error(e)}const t=new Error("Early media dialog does not equal confirmed dialog, terminating session");return this.logger.error(t.message),this.ackAndBye(e,488,"Not Acceptable Here"),this.stateTransition(vi.Terminated),Promise.reject(t)}this.status=_i.STATUS_CONFIRMED;e.ack();return this.stateTransition(vi.Established),Promise.resolve()}const t=i.answer;if(!t)throw new Error("Answer is undefined.");const n={sessionDescriptionHandlerOptions:r,sessionDescriptionHandlerModifiers:s};return this.setAnswer(t,n).then(()=>{let t;this.renderbody&&this.rendertype&&(t={body:{contentDisposition:"render",contentType:this.rendertype,content:this.renderbody}}),this.status=_i.STATUS_CONFIRMED;e.ack(t);this.stateTransition(vi.Established)}).catch(t=>{throw this.logger.error(t.message),this.ackAndBye(e,488,"Not Acceptable Here"),this.stateTransition(vi.Terminated),t})}case pt.Closed:return Promise.reject(new Error("Terminated."));default:throw new Error("Unknown session signaling state.")}}onProgress(e){if(this.logger.log("Inviter.onProgress"),this.state!==vi.Establishing)return this.logger.error(`Progress received while in state ${this.state}, dropping response`),Promise.reject(new Error(`Invalid session state ${this.state}`));if(!this.outgoingInviteRequest)throw new Error("Outgoing INVITE request undefined.");const t=e.message,i=e.session;this.status=_i.STATUS_1XX_RECEIVED,t.hasHeader("P-Asserted-Identity")&&(this.assertedIdentity=Ye.nameAddrHeaderParse(t.getHeader("P-Asserted-Identity")));const r=t.getHeader("require"),s=t.getHeader("rseq"),n=!!(r&&r.includes("100rel")&&s?Number(s):void 0),a=[];n&&a.push("RAck: "+t.getHeader("rseq")+" "+t.getHeader("cseq"));const o=this.sessionDescriptionHandlerOptions,h=this.sessionDescriptionHandlerModifiers;switch(i.signalingState){case pt.Initial:return n&&(this.logger.warn("First reliable provisional response received MUST contain an offer when INVITE does not contain an offer."),e.prack({extraHeaders:a})),Promise.resolve();case pt.HaveLocalOffer:return n&&e.prack({extraHeaders:a}),Promise.resolve();case pt.HaveRemoteOffer:if(!n)return this.logger.warn("Non-reliable provisional response MUST NOT contain an initial offer, discarding response."),Promise.resolve();const r=this.sessionDescriptionHandlerFactory(this,this.userAgent.configuration.sessionDescriptionHandlerFactoryOptions||{});return this.earlyMediaSessionDescriptionHandlers.set(i.id,r),r.setDescription(t.body,o,h).then(()=>r.getDescription(o,h)).then(t=>{const i={contentDisposition:"session",contentType:t.contentType,content:t.body};e.prack({extraHeaders:a,body:i})}).catch(e=>{if(this.status===_i.STATUS_TERMINATED)throw e;throw this.stateTransition(vi.Terminated),e});case pt.Stable:if(n&&e.prack({extraHeaders:a}),this.earlyMedia&&!this.earlyMediaDialog){this.earlyMediaDialog=i;const e=i.answer;if(!e)throw new Error("Answer is undefined.");const t={sessionDescriptionHandlerOptions:o,sessionDescriptionHandlerModifiers:h};return this.setAnswer(e,t).catch(e=>{if(this.status===_i.STATUS_TERMINATED)throw e;throw this.stateTransition(vi.Terminated),e})}return Promise.resolve();case pt.Closed:return Promise.reject(new Error("Terminated."));default:throw new Error("Unknown session signaling state.")}}onRedirect(e){this.logger.log("Inviter.onRedirect"),this.state===vi.Establishing||this.state===vi.Terminating?this.stateTransition(vi.Terminated):this.logger.error(`Redirect received while in state ${this.state}, dropping response`)}onReject(e){this.logger.log("Inviter.onReject"),this.state===vi.Establishing||this.state===vi.Terminating?this.stateTransition(vi.Terminated):this.logger.error(`Reject received while in state ${this.state}, dropping response`)}onTrying(e){this.logger.log("Inviter.onTrying"),this.state===vi.Establishing||this.logger.error(`Trying received while in state ${this.state}, dropping response`)}}class xi{constructor(e){this.incomingMessageRequest=e}get request(){return this.incomingMessageRequest.message}accept(e){return this.incomingMessageRequest.accept(e),Promise.resolve()}reject(e){return this.incomingMessageRequest.reject(e),Promise.resolve()}}class qi{constructor(e,t,i,r="text/plain",s={}){this._disposed=!1,this.logger=e.getLogger("sip.Messager"),s.params=s.params||{};let n=e.userAgentCore.configuration.aor;if(s.params.fromUri&&(n="string"==typeof s.params.fromUri?Ye.URIParse(s.params.fromUri):s.params.fromUri),!n)throw new TypeError("Invalid from URI: "+s.params.fromUri);let a=t;if(s.params.toUri&&(a="string"==typeof s.params.toUri?Ye.URIParse(s.params.toUri):s.params.toUri),!a)throw new TypeError("Invalid to URI: "+s.params.toUri);const o=s.params?Object.assign({},s.params):{},h=(s.extraHeaders||[]).slice(),d={contentDisposition:"render",contentType:r,content:i};this.request=e.userAgentCore.makeOutgoingRequestMessage(Le.MESSAGE,t,n,a,o,h,d),this.userAgent=e}message(e={}){return this.userAgent.userAgentCore.request(this.request,e.requestDelegate),Promise.resolve()}_dispose(){this._disposed||(this._disposed=!0)}}var Ni,Fi,Hi,ki,$i,Vi,Ui,Bi,Gi,Li,ji,Wi,zi,Ki,Ji,Yi,Zi,Xi,Qi,er,tr;!function(e){e.Initial="Initial",e.Registered="Registered",e.Unregistered="Unregistered",e.Terminated="Terminated"}(Ni||(Ni={}));class ir{constructor(e,t={}){this._contacts=[],this._state=Ni.Initial,this._stateEventEmitter=new s,this._waiting=!1,this._waitingEventEmitter=new s,this.userAgent=e;const i=e.configuration.uri.clone();if(i.user=void 0,this.options=Object.assign(Object.assign(Object.assign({},ir.defaultOptions),{registrar:i}),t),this.options.extraContactHeaderParams=(this.options.extraContactHeaderParams||[]).slice(),this.options.extraHeaders=(this.options.extraHeaders||[]).slice(),!this.options.registrar)throw new Error("Registrar undefined.");if(this.options.registrar=this.options.registrar.clone(),this.options.regId&&!this.options.instanceId?this.options.instanceId=ir.newUUID():!this.options.regId&&this.options.instanceId&&(this.options.regId=1),this.options.instanceId&&-1===Ye.parse(this.options.instanceId,"uuid"))throw new Error("Invalid instanceId.");if(this.options.regId&&this.options.regId<0)throw new Error("Invalid regId.");const r=this.options.registrar,n=this.options.params&&this.options.params.fromUri||e.userAgentCore.configuration.aor,a=this.options.params&&this.options.params.toUri||e.configuration.uri,o=this.options.params||{},h=(t.extraHeaders||[]).slice();if(this.request=e.userAgentCore.makeOutgoingRequestMessage(Le.REGISTER,r,n,a,o,h,void 0),this.expires=this.options.expires||ir.defaultOptions.expires,this.expires<0)throw new Error("Invalid expires.");this.logger=e.getLogger("sip.Registerer"),this.options.logConfiguration&&(this.logger.log("Configuration:"),Object.keys(this.options).forEach(e=>{const t=this.options[e];switch(e){case"registrar":this.logger.log("· "+e+": "+t);break;default:this.logger.log("· "+e+": "+JSON.stringify(t))}})),e.transport.on("disconnected",()=>this.onTransportDisconnected()),this.id=this.request.callId+this.request.from.parameters.tag,this.userAgent.registerers[this.id]=this}static newUUID(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=Math.floor(16*Math.random());return("x"===e?t:t%4+8).toString(16)})}get contacts(){return this._contacts.slice()}get state(){return this._state}get stateChange(){return Ti(this._stateEventEmitter)}async dispose(){return delete this.userAgent.registerers[this.id],new Promise((e,t)=>{const i=()=>{if(!this.waiting&&this._state===Ni.Registered)return this.stateChange.once(()=>{this.terminated(),e()}),void this.unregister();this.terminated(),e()};this.waiting?this.waitingChange.once(()=>i()):i()})}async register(e={}){if(this.waiting){const e=new pi("REGISTER request already in progress, waiting for final response");return Promise.reject(e)}e.requestOptions&&(this.options=Object.assign(Object.assign({},this.options),e.requestOptions));const t=(this.options.extraHeaders||[]).slice();t.push("Contact: "+this.generateContactHeader(this.expires)),t.push("Allow: "+["ACK","CANCEL","INVITE","MESSAGE","BYE","OPTIONS","INFO","NOTIFY","REFER"].toString()),this.request.cseq++,this.request.setHeader("cseq",this.request.cseq+" REGISTER"),this.request.extraHeaders=t,this.waitingToggle(!0);const i=this.userAgent.userAgentCore.register(this.request,{onAccept:t=>{let i;t.message.hasHeader("expires")&&(i=Number(t.message.getHeader("expires"))),this._contacts=t.message.getHeaders("contact");let r,s=this._contacts.length;if(!s)return this.logger.error("No Contact header in response to REGISTER, dropping response."),void this.unregistered();for(;s--;){if((r=t.message.parseHeader("contact",s)).uri.user===this.userAgent.contact.uri.user){i=r.getParam("expires");break}r=void 0}return void 0===r?(this.logger.error("No Contact header pointing to us, dropping response"),this.unregistered(),void this.waitingToggle(!1)):void 0===i?(this.logger.error("Contact pointing to us is missing expires parameter, dropping response"),this.unregistered(),void this.waitingToggle(!1)):(r.hasParam("temp-gruu")&&(this.userAgent.contact.tempGruu=Ye.URIParse(r.getParam("temp-gruu").replace(/"/g,""))),r.hasParam("pub-gruu")&&(this.userAgent.contact.pubGruu=Ye.URIParse(r.getParam("pub-gruu").replace(/"/g,""))),this.registered(i),e.requestDelegate&&e.requestDelegate.onAccept&&e.requestDelegate.onAccept(t),void this.waitingToggle(!1))},onProgress:t=>{e.requestDelegate&&e.requestDelegate.onProgress&&e.requestDelegate.onProgress(t)},onRedirect:t=>{this.logger.error("Redirect received. Not supported."),this.unregistered(),e.requestDelegate&&e.requestDelegate.onRedirect&&e.requestDelegate.onRedirect(t),this.waitingToggle(!1)},onReject:t=>{if(423===t.message.statusCode)return t.message.hasHeader("min-expires")?(this.expires=Number(t.message.getHeader("min-expires")),this.waitingToggle(!1),void this.register()):(this.logger.error("423 response received for REGISTER without Min-Expires, dropping response"),this.unregistered(),void this.waitingToggle(!1));if(403===t.message.statusCode){let e=t.message.getHeader("errcode");null!=e&&(e.startsWith("10003")?t.message.statusCode=404:e.startsWith("10001")?t.message.statusCode=405:e.startsWith("10002")&&(t.message.statusCode=406))}this.logger.warn(`Failed to register, status code ${t.message.statusCode}`),this.unregistered(),e.requestDelegate&&e.requestDelegate.onReject&&e.requestDelegate.onReject(t),this.waitingToggle(!1)},onTrying:t=>{e.requestDelegate&&e.requestDelegate.onTrying&&e.requestDelegate.onTrying(t)}});return Promise.resolve(i)}async unregister(e={}){if(this.waiting){const e=new pi("REGISTER request already in progress, waiting for final response");return Promise.reject(e)}this._state===Ni.Registered||e.all||this.logger.warn("Not currently registered, but sending an unregister anyway.");const t=(e.requestOptions&&e.requestOptions.extraHeaders||[]).slice();this.request.extraHeaders=t,e.all?(t.push("Contact: *"),t.push("Expires: 0")):t.push("Contact: "+this.generateContactHeader(0)),this.request.cseq++,this.request.setHeader("cseq",this.request.cseq+" REGISTER"),void 0!==this.registrationTimer&&(clearTimeout(this.registrationTimer),this.registrationTimer=void 0),this.waitingToggle(!0);const i=this.userAgent.userAgentCore.register(this.request,{onAccept:t=>{this._contacts=t.message.getHeaders("contact"),this.unregistered(),e.requestDelegate&&e.requestDelegate.onAccept&&e.requestDelegate.onAccept(t),this.waitingToggle(!1)},onProgress:t=>{e.requestDelegate&&e.requestDelegate.onProgress&&e.requestDelegate.onProgress(t)},onRedirect:t=>{this.logger.error("Unregister redirected. Not currently supported."),this.unregistered(),e.requestDelegate&&e.requestDelegate.onRedirect&&e.requestDelegate.onRedirect(t),this.waitingToggle(!1)},onReject:t=>{this.logger.error(`Unregister rejected with status code ${t.message.statusCode}`),this.unregistered(),e.requestDelegate&&e.requestDelegate.onReject&&e.requestDelegate.onReject(t),this.waitingToggle(!1)},onTrying:t=>{e.requestDelegate&&e.requestDelegate.onTrying&&e.requestDelegate.onTrying(t)}});return Promise.resolve(i)}clearTimers(){void 0!==this.registrationTimer&&(clearTimeout(this.registrationTimer),this.registrationTimer=void 0),void 0!==this.registrationExpiredTimer&&(clearTimeout(this.registrationExpiredTimer),this.registrationExpiredTimer=void 0)}generateContactHeader(e){let t=this.userAgent.contact.toString();return this.options.regId&&this.options.instanceId&&(t+=";reg-id="+this.options.regId,t+=';+sip.instance=""'),this.options.extraContactHeaderParams&&this.options.extraContactHeaderParams.forEach(e=>{t+=";"+e}),t+=";expires="+e}onTransportDisconnected(){this.unregistered()}registered(e){this.clearTimers(),this.registrationTimer=setTimeout(()=>{this.registrationTimer=void 0,this.register()},1e3*e-3e3),this.registrationExpiredTimer=setTimeout(()=>{this.logger.warn("Registration expired"),this.unregistered()},1e3*e),this._state!==Ni.Registered&&this.stateTransition(Ni.Registered)}unregistered(){this.clearTimers(),this._state!==Ni.Unregistered&&this.stateTransition(Ni.Unregistered)}terminated(){this.clearTimers(),this._state!==Ni.Terminated&&this.stateTransition(Ni.Terminated)}stateTransition(e){const t=()=>{throw new Error(`Invalid state transition from ${this._state} to ${e}`)};switch(this._state){case Ni.Initial:e!==Ni.Registered&&e!==Ni.Unregistered&&e!==Ni.Terminated&&t();break;case Ni.Registered:e!==Ni.Unregistered&&e!==Ni.Terminated&&t();break;case Ni.Unregistered:e!==Ni.Registered&&e!==Ni.Terminated&&t();break;case Ni.Terminated:t();break;default:throw new Error("Unrecognized state.")}this._state=e,this.logger.log(`Registration transitioned to state ${this._state}`),this._stateEventEmitter.emit("event",this._state)}get waiting(){return this._waiting}get waitingChange(){return Ti(this._waitingEventEmitter)}waitingToggle(e){if(this._waiting===e)throw new Error(`Invalid waiting transition from ${this._waiting} to ${e}`);this._waiting=e,this.logger.log(`Waiting toggled to ${this._waiting}`),this._waitingEventEmitter.emit("event",this._waiting)}}ir.defaultOptions={expires:600,extraContactHeaderParams:[],extraHeaders:[],logConfiguration:!0,instanceId:"",params:{},regId:0,registrar:new ze("sip","anonymous","anonymous.invalid")},function(e){e.Initial="Initial",e.NotifyWait="NotifyWait",e.Subscribed="Subscribed",e.Terminated="Terminated"}(Fi||(Fi={})),function(e){e[e.STATUS_CONNECTING=0]="STATUS_CONNECTING",e[e.STATUS_OPEN=1]="STATUS_OPEN",e[e.STATUS_CLOSING=2]="STATUS_CLOSING",e[e.STATUS_CLOSED=3]="STATUS_CLOSED"}(Hi||(Hi={}));class rr extends gi{constructor(e,t){super(e),this.servers=[],this.reconnectionAttempts=0,this.status=Hi.STATUS_CONNECTING,this.configuration=Object.assign(Object.assign({},rr.defaultOptions),t);let i=t.wsServers;"string"==typeof i&&(i=[i]);for(const e of i){const t=Ye.parse(e,"absoluteURI");if(-1===t)throw this.logger.error(`Invalid WebSocket Server URL "${e}"`),new Error("Invalid WebSocket Server URL");if(["wss","ws","udp"].indexOf(t.scheme)<0)throw this.logger.error(`Invalid scheme in WebSocket Server URL "${e}"`),new Error("Invalid scheme in WebSocket Server URL");const i=t.scheme.toUpperCase(),r="",s=e,n=0,a=!1;this.servers.push({scheme:i,sipUri:r,wsUri:s,weight:n,isError:a})}if(0===this.servers.length)throw new Error("No WebSocket server.");this.server=this.servers[0]}isConnected(){return this.status===Hi.STATUS_OPEN}sendPromise(e,t={}){if(void 0===this.ws)return this.onError("unable to send message - WebSocket undefined"),Promise.reject(new Error("WebSocket undefined."));if(!this.statusAssert(Hi.STATUS_OPEN,t.force))return this.onError("unable to send message - WebSocket not open"),Promise.reject(new Error("WebSocket not open."));!0===this.configuration.traceSip&&this.logger.log("sending WebSocket message:\n\n"+e+"\n");try{this.ws.send(e)}catch(e){return e instanceof e&&Promise.reject(e),Promise.reject(new Error("Failed to send message."))}return Promise.resolve({msg:e})}disconnectPromise(e={}){return this.disconnectionPromise?this.disconnectionPromise:(e.code=e.code||1e3,this.statusTransition(Hi.STATUS_CLOSING,e.force)?(this.emit("disconnecting"),this.disconnectionPromise=new Promise((t,i)=>{this.disconnectDeferredResolve=t,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=void 0),this.ws?(this.stopSendingKeepAlives(),this.logger.log("closing WebSocket "+this.server.wsUri),this.ws.close(e.code,e.reason)):i("Attempted to disconnect but the websocket doesn't exist")}),this.disconnectionPromise):this.status===Hi.STATUS_CLOSED?Promise.resolve({overrideEvent:!0}):this.connectionPromise?this.connectionPromise.then(()=>Promise.reject("The websocket did not disconnect")).catch(()=>Promise.resolve({overrideEvent:!0})):Promise.reject("The websocket did not disconnect"))}connectPromise(e={}){return this.status!==Hi.STATUS_CLOSING||e.force?this.connectionPromise?this.connectionPromise:(this.server=this.server||this.getNextWsServer(e.force),this.connectionPromise=new Promise((t,i)=>{if((this.status===Hi.STATUS_OPEN||this.status===Hi.STATUS_CLOSING)&&!e.force)return this.logger.warn("WebSocket "+this.server.wsUri+" is already connected"),void i("Failed status check - attempted to open a connection but already open/closing");this.connectDeferredResolve=t,this.connectDeferredReject=i,this.status=Hi.STATUS_CONNECTING,this.emit("connecting"),this.logger.log("connecting to WebSocket "+this.server.wsUri),this.disposeWs();try{this.ws=new WebSocket(this.server.wsUri,"sip")}catch(e){return this.ws=void 0,this.statusTransition(Hi.STATUS_CLOSED,!0),this.onError("error connecting to WebSocket "+this.server.wsUri+":"+e),i("Failed to create a websocket"),this.connectDeferredResolve=void 0,void(this.connectDeferredReject=void 0)}if(!this.ws)return i("Unexpected instance websocket not set"),this.connectDeferredResolve=void 0,void(this.connectDeferredReject=void 0);this.connectionTimeout=setTimeout(()=>{this.statusTransition(Hi.STATUS_CLOSED),this.logger.warn("took too long to connect - exceeded time set in configuration.connectionTimeout: "+this.configuration.connectionTimeout+"s"),this.emit("disconnected",{code:1e3}),this.connectionPromise=void 0,i("Connection timeout"),this.connectDeferredResolve=void 0,this.connectDeferredReject=void 0;const e=this.ws;this.disposeWs(),e&&e.close(1e3)},1e3*this.configuration.connectionTimeout),this.boundOnOpen=this.onOpen.bind(this),this.boundOnMessage=this.onMessage.bind(this),this.boundOnClose=this.onClose.bind(this),this.boundOnError=this.onWebsocketError.bind(this),this.ws.addEventListener("open",this.boundOnOpen),this.ws.addEventListener("message",this.boundOnMessage),this.ws.addEventListener("close",this.boundOnClose),this.ws.addEventListener("error",this.boundOnError)}),this.connectionPromise):Promise.reject("WebSocket "+this.server.wsUri+" is closing")}onMessage(e){const t=e.data;let i;if(/^(\r\n)+$/.test(t))return this.clearKeepAliveTimeout(),void(!0===this.configuration.traceSip&&this.logger.log("received WebSocket message with CRLF Keep Alive response"));if(t){if("string"!=typeof t){try{i=String.fromCharCode.apply(null,new Uint8Array(t))}catch(e){return void this.logger.warn("received WebSocket binary message failed to be converted into string, message discarded")}!0===this.configuration.traceSip&&this.logger.log("received WebSocket binary message:\n\n"+t+"\n")}else!0===this.configuration.traceSip&&this.logger.log("received WebSocket text message:\n\n"+t+"\n"),i=t;this.emit("message",i)}else this.logger.warn("received empty message, message discarded")}onOpen(){if(this.status===Hi.STATUS_CLOSED){const e=this.ws;return this.disposeWs(),void(e&&e.close(1e3))}this.statusTransition(Hi.STATUS_OPEN,!0),this.emit("connected"),this.connectionTimeout&&(clearTimeout(this.connectionTimeout),this.connectionTimeout=void 0),this.logger.log("WebSocket "+this.server.wsUri+" connected"),void 0!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=void 0),this.reconnectionAttempts=0,this.disconnectionPromise=void 0,this.disconnectDeferredResolve=void 0,this.startSendingKeepAlives(),this.connectDeferredResolve?(this.connectDeferredResolve({overrideEvent:!0}),this.connectDeferredResolve=void 0,this.connectDeferredReject=void 0):this.logger.warn("Unexpected websocket.onOpen with no connectDeferredResolve")}onClose(e){if(this.logger.log("WebSocket disconnected (code: "+e.code+(e.reason?"| reason: "+e.reason:"")+")"),this.status!==Hi.STATUS_CLOSING&&(this.logger.warn("WebSocket closed without SIP.js requesting it"),this.emit("transportError")),this.stopSendingKeepAlives(),this.connectionTimeout&&clearTimeout(this.connectionTimeout),this.connectDeferredReject&&this.connectDeferredReject("Websocket Closed"),this.connectionTimeout=void 0,this.connectionPromise=void 0,this.connectDeferredResolve=void 0,this.connectDeferredReject=void 0,this.disconnectDeferredResolve)return this.disconnectDeferredResolve({overrideEvent:!0}),this.statusTransition(Hi.STATUS_CLOSED),void(this.disconnectDeferredResolve=void 0);this.statusTransition(Hi.STATUS_CLOSED,!0),this.emit("disconnected",{code:e.code,reason:e.reason}),this.disposeWs(),this.reconnect()}disposeWs(){this.ws&&(this.ws.removeEventListener("open",this.boundOnOpen),this.ws.removeEventListener("message",this.boundOnMessage),this.ws.removeEventListener("close",this.boundOnClose),this.ws.removeEventListener("error",this.boundOnError),this.ws=void 0)}onError(e){this.logger.warn("Transport error: "+e),this.emit("transportError")}onWebsocketError(){this.onError("The Websocket had an error")}reconnect(){if(this.reconnectionAttempts>0&&this.logger.log("Reconnection attempt "+this.reconnectionAttempts+" failed"),this.noAvailableServers())return this.logger.warn("attempted to get next ws server but there are no available ws servers left"),this.logger.warn("no available ws servers left - going to closed state"),this.statusTransition(Hi.STATUS_CLOSED,!0),this.emit("closed"),void this.resetServerErrorStatus();this.isConnected()&&(this.logger.warn("attempted to reconnect while connected - forcing disconnect"),this.disconnect({force:!0})),this.reconnectionAttempts+=1,this.reconnectionAttempts>this.configuration.maxReconnectionAttempts?(this.logger.warn("maximum reconnection attempts for WebSocket "+this.server.wsUri),this.logger.log("transport "+this.server.wsUri+" failed | connection state set to 'error'"),this.server.isError=!0,this.emit("transportError"),this.noAvailableServers()||(this.server=this.getNextWsServer()),this.reconnectionAttempts=0,this.reconnect()):(this.logger.log("trying to reconnect to WebSocket "+this.server.wsUri+" (reconnection attempt "+this.reconnectionAttempts+")"),this.reconnectTimer=setTimeout(()=>{this.connect(),this.reconnectTimer=void 0},1===this.reconnectionAttempts?0:1e3*this.configuration.reconnectionTimeout))}resetServerErrorStatus(){for(const e of this.servers)e.isError=!1}getNextWsServer(e=!1){if(this.noAvailableServers())throw this.logger.warn("attempted to get next ws server but there are no available ws servers left"),new Error("Attempted to get next ws server, but there are no available ws servers left.");let t=[];for(const i of this.servers)i.isError&&!e||(0===t.length?t.push(i):i.weight>t[0].weight?t=[i]:i.weight===t[0].weight&&t.push(i));return t[Math.floor(Math.random()*t.length)]}noAvailableServers(){for(const e of this.servers)if(!e.isError)return!1;return!0}sendKeepAlive(){if(!this.keepAliveDebounceTimeout)return this.keepAliveDebounceTimeout=setTimeout(()=>{this.emit("keepAliveDebounceTimeout"),this.clearKeepAliveTimeout()},1e3*this.configuration.keepAliveDebounce),this.send("\r\n\r\n")}clearKeepAliveTimeout(){this.keepAliveDebounceTimeout&&clearTimeout(this.keepAliveDebounceTimeout),this.keepAliveDebounceTimeout=void 0}startSendingKeepAlives(){this.configuration.keepAliveInterval&&!this.keepAliveInterval&&(this.keepAliveInterval=setInterval(()=>{this.sendKeepAlive(),this.startSendingKeepAlives()},(e=>{const t=.8*e;return 1e3*(Math.random()*(e-t)+t)})(this.configuration.keepAliveInterval)))}stopSendingKeepAlives(){this.keepAliveInterval&&clearInterval(this.keepAliveInterval),this.keepAliveDebounceTimeout&&clearTimeout(this.keepAliveDebounceTimeout),this.keepAliveInterval=void 0,this.keepAliveDebounceTimeout=void 0}statusAssert(e,t){return e===this.status||(t?(this.logger.warn("Attempted to assert "+Object.keys(Hi)[this.status]+" as "+Object.keys(Hi)[e]+"- continuing with option: 'force'"),!0):(this.logger.warn("Tried to assert "+Object.keys(Hi)[e]+" but is currently "+Object.keys(Hi)[this.status]),!1))}statusTransition(e,t=!1){return this.logger.log("Attempting to transition status from "+Object.keys(Hi)[this.status]+" to "+Object.keys(Hi)[e]),e===Hi.STATUS_CONNECTING&&this.statusAssert(Hi.STATUS_CLOSED,t)||e===Hi.STATUS_OPEN&&this.statusAssert(Hi.STATUS_CONNECTING,t)||e===Hi.STATUS_CLOSING&&this.statusAssert(Hi.STATUS_OPEN,t)||e===Hi.STATUS_CLOSED?(this.status=e,!0):(this.logger.warn("Status transition failed - result: no-op - reason: either gave an nonexistent status or attempted illegal transition"),!1)}}rr.C=Hi,rr.defaultOptions={wsServers:[],connectionTimeout:5,maxReconnectionAttempts:3,reconnectionTimeout:4,keepAliveInterval:0,keepAliveDebounce:10,traceSip:!0},function(e){e.Initial="Initial",e.Starting="Starting",e.Started="Started",e.Stopping="Stopping",e.Stopped="Stopped"}(ki||(ki={})),function(e){e[e.STATUS_INIT=0]="STATUS_INIT",e[e.STATUS_STARTING=1]="STATUS_STARTING",e[e.STATUS_READY=2]="STATUS_READY",e[e.STATUS_USER_CLOSED=3]="STATUS_USER_CLOSED",e[e.STATUS_NOT_READY=4]="STATUS_NOT_READY"}($i||($i={}));class sr{constructor(e={}){if(this.data={},this.applicants={},this.publishers={},this.registerers={},this.sessions={},this.subscriptions={},this.loggerFactory=new ei,this._state=ki.Initial,this._stateEventEmitter=new s,this.status=$i.STATUS_INIT,this.unloadListener=(()=>{this.stop()}),this.delegate=e.delegate,this.options=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},sr.defaultOptions),{sipjsId:Ze(5)}),{uri:new ze("sip","anonymous."+Ze(6),"anonymous.invalid")}),{viaHost:Ze(12)+".invalid"}),sr.stripUndefinedProperties(e)),this.options.hackIpInContact)if("boolean"==typeof this.options.hackIpInContact&&this.options.hackIpInContact){const e=1,t=254,i=Math.floor(Math.random()*(t-e+1)+e);this.options.viaHost="192.0.2."+i}else this.options.hackIpInContact&&(this.options.viaHost=this.options.hackIpInContact.toString());switch(this.logger=this.loggerFactory.getLogger("sip.UserAgent"),this.loggerFactory.builtinEnabled=this.options.logBuiltinEnabled,this.loggerFactory.connector=this.options.logConnector,this.options.logLevel){case"error":this.loggerFactory.level=Xt.error;break;case"warn":this.loggerFactory.level=Xt.warn;break;case"log":this.loggerFactory.level=Xt.log;break;case"debug":this.loggerFactory.level=Xt.debug}this.options.logConfiguration&&(this.logger.log("Configuration:"),Object.keys(this.options).forEach(e=>{const t=this.options[e];switch(e){case"uri":case"sessionDescriptionHandlerFactory":this.logger.log("· "+e+": "+t);break;case"authorizationPassword":this.logger.log("· "+e+": NOT SHOWN");break;case"transportConstructor":this.logger.log("· "+e+": "+t.name);break;default:this.logger.log("· "+e+": "+JSON.stringify(t))}})),this.transport=new this.options.transportConstructor(this.getLogger("sip.Transport"),this.options.transportOptions),this.contact=this.initContact(),this.userAgentCore=this.initCore(),this.options.autoStart&&this.start()}static makeURI(e){return Ye.URIParse(e)}static stripUndefinedProperties(e){return Object.keys(e).reduce((t,i)=>(void 0!==e[i]&&(t[i]=e[i]),t),{})}get configuration(){return this.options}start(){if(this.logger.log("user requested startup..."),this.status===$i.STATUS_INIT)return this.status=$i.STATUS_STARTING,this.setTransportListeners(),this.transport.connect();if(this.status===$i.STATUS_USER_CLOSED||this.status===$i.STATUS_NOT_READY)return this.logger.log("resuming"),this.status=$i.STATUS_READY,this.transport.connect();if(this.status===$i.STATUS_STARTING?this.logger.log("UA is in STARTING status, not opening new connection"):this.status===$i.STATUS_READY?this.logger.log("UA is in READY status, not resuming"):this.logger.error("Connection is down. Auto-Recovery system is trying to connect"),this.options.autoStop){const e=!("undefined"==typeof chrome||!chrome.app||!chrome.app.runtime);"undefined"==typeof window||"function"!=typeof window.addEventListener||e||window.addEventListener("unload",this.unloadListener)}return Promise.resolve()}async stop(){this.logger.log(`Stopping user agent ${this.configuration.uri}...`),this.status===$i.STATUS_USER_CLOSED&&this.logger.warn("UA already closed");for(const e in this.registerers)this.registerers[e]&&await this.registerers[e].dispose();for(const e in this.sessions)if(this.sessions[e]){this.logger.log("closing session "+e);const t=this.sessions[e];switch(t.state){case vi.Initial:case vi.Establishing:t instanceof Di&&t.reject(),t instanceof Ai&&t.cancel();break;case vi.Established:t._bye();break;case vi.Terminating:case vi.Terminated:}}for(const e in this.subscriptions)this.subscriptions[e]&&(this.logger.log("unsubscribe "+e),this.subscriptions[e].unsubscribe());for(const e in this.publishers)this.publishers[e]&&(this.logger.log("unpublish "+e),this.publishers[e]._close());for(const e in this.applicants)this.applicants[e]&&this.applicants[e]._close();if(this.status=$i.STATUS_USER_CLOSED,this.transport.disconnect(),this.userAgentCore.reset(),this.options.autoStop){const e=!("undefined"==typeof chrome||!chrome.app||!chrome.app.runtime);"undefined"!=typeof window&&window.removeEventListener&&!e&&window.removeEventListener("unload",this.unloadListener)}return Promise.resolve()}findSession(e){return this.sessions[e.callId+e.fromTag]||this.sessions[e.callId+e.toTag]||void 0}getLogger(e,t){return this.loggerFactory.getLogger(e,t)}getLoggerFactory(){return this.loggerFactory}getSupportedResponseOptions(){let e=[];(this.contact.pubGruu||this.contact.tempGruu)&&e.push("gruu"),this.options.sipExtension100rel===Ei.Supported&&e.push("100rel"),this.options.sipExtensionReplaces===Ei.Supported&&e.push("replaces"),e.push("outbound"),e=e.concat(this.options.sipExtensionExtraSupported||[]);const t=this.options.hackAllowUnregisteredOptionTags||!1,i={};return e=e.filter(e=>{const r=bi[e],s=!i[e];return i[e]=!0,(r||t)&&s})}makeInviter(e,t){return new Ai(this,e,t)}onTransportError(){this.status!==$i.STATUS_USER_CLOSED&&(this.status=$i.STATUS_NOT_READY)}setTransportListeners(){this.transport.on("connected",()=>this.onTransportConnected()),this.transport.on("message",e=>this.onTransportReceiveMsg(e)),this.transport.on("transportError",()=>this.onTransportError())}onTransportConnected(){}onTransportReceiveMsg(e){const t=gt.parseMessage(e,this.getLogger("sip.parser"));if(!t)return void this.logger.warn("Failed to parse incoming message. Dropping.");if(this.status===$i.STATUS_USER_CLOSED&&t instanceof st)return void this.logger.warn(`Received ${t.method} request in state USER_CLOSED. Dropping.`);const i=()=>{const e=["from","to","call_id","cseq","via"];for(const i of e)if(!t.hasHeader(i))return this.logger.warn(`Missing mandatory header field : ${i}.`),!1;return!0};if(t instanceof st){if(!i())return void this.logger.warn("Request missing mandatory header field. Dropping.");if(!t.toTag&&t.callId.substr(0,5)===this.options.sipjsId)return void this.userAgentCore.replyStateless(t,{statusCode:482});const e=tt(t.body),r=t.getHeader("content-length");if(r&&e1)return void this.logger.warn("More than one Via header field present in the response. Dropping.");if(t.via.host!==this.options.viaHost||void 0!==t.via.port)return void this.logger.warn("Via sent-by in the response does not match UA Via host value. Dropping.");const e=tt(t.body),r=t.getHeader("content-length");if(r&&e{const i=e.anonymous||!1,r=e.outbound||!1;let s="<";return s+=i?this.contact.tempGruu||`sip:anonymous@anonymous.invalid;transport=${t}`:this.contact.pubGruu||this.contact.uri,r&&(s+=";ob"),s+=">"}}}initCore(){let e=[];e.push("outbound"),this.options.sipExtension100rel===Ei.Supported&&e.push("100rel"),this.options.sipExtensionReplaces===Ei.Supported&&e.push("replaces"),this.options.sipExtensionExtraSupported&&e.push(...this.options.sipExtensionExtraSupported),this.options.hackAllowUnregisteredOptionTags||(e=e.filter(e=>bi[e]));const t=(e=Array.from(new Set(e))).slice();(this.contact.pubGruu||this.contact.tempGruu)&&t.push("gruu");const i={aor:this.options.uri,contact:this.contact,displayName:this.options.displayName,loggerFactory:this.loggerFactory,hackViaTcp:this.options.hackViaTcp,routeSet:this.options.usePreloadedRoute&&this.transport.server&&this.transport.server.sipUri?[this.transport.server.sipUri]:[],supportedOptionTags:e,supportedOptionTagsResponse:t,sipjsId:this.options.sipjsId,userAgentHeaderFieldValue:this.options.userAgentString,viaForceRport:this.options.forceRport,viaHost:this.options.viaHost,authenticationFactory:()=>{const e=this.options.authorizationUsername?this.options.authorizationUsername:this.options.uri.user,t=this.options.authorizationPassword?this.options.authorizationPassword:void 0;return new ft(this.getLoggerFactory(),e,t)},transportAccessor:()=>this.transport};return new li(i,{onInvite:e=>{const t=new Di(this,e);if(e.delegate={onCancel:e=>{t._onCancel(e)},onTransportError:e=>{this.logger.error("A transport error has occured while handling an incoming INVITE request.")}},e.trying(),this.options.sipExtensionReplaces!==Ei.Unsupported){const i=e.message.parseHeader("replaces");if(i){const e=i.call_id;if("string"!=typeof e)throw new Error("Type of call id is not string");const r=i.replaces_to_tag;if("string"!=typeof r)throw new Error("Type of to tag is not string");const s=i.replaces_from_tag;if("string"!=typeof s)throw new Error("type of from tag is not string");const n=e+r+s,a=this.userAgentCore.dialogs.get(n);if(!a)return void t.reject({statusCode:481});if(!a.early&&!0===i.early_only)return void t.reject({statusCode:486});const o=this.sessions[e+s]||this.sessions[e+r]||void 0;if(!o)throw new Error("Session does not exist.");t.replacee=o}}if(this.delegate&&this.delegate.onInvite)if(t.autoSendAnInitialProvisionalResponse){const e=this.delegate.onInvite;t.progress().then(()=>e(t))}else this.delegate.onInvite(t);else t.reject({statusCode:486})},onMessage:e=>{if(this.delegate&&this.delegate.onMessage){const t=new xi(e);this.delegate.onMessage(t)}else e.accept()},onNotify:e=>{if(this.delegate&&this.delegate.onNotify){const t=new Ci(e);this.delegate.onNotify(t)}else this.options.allowLegacyNotifications?e.accept():e.reject({statusCode:481})},onRefer:e=>{this.logger.log("Received an out of dialog refer"),this.options.allowOutOfDialogRefers||e.reject({statusCode:405}),this.logger.log("Allow out of dialog refers is enabled on the UA")},onRegister:e=>{this.delegate&&this.delegate.onRegisterRequest&&this.delegate.onRegisterRequest(e)},onSubscribe:e=>{this.delegate&&this.delegate.onSubscribeRequest&&this.delegate.onSubscribeRequest(e)}})}}sr.defaultOptions={allowLegacyNotifications:!1,allowOutOfDialogRefers:!1,authorizationPassword:"",authorizationUsername:"",autoStart:!1,autoStop:!0,delegate:{},displayName:"",forceRport:!1,hackAllowUnregisteredOptionTags:!1,hackIpInContact:!1,hackViaTcp:!1,hackWssInTransport:!1,logBuiltinEnabled:!0,logConfiguration:!0,logConnector:()=>{},logLevel:"log",noAnswerTimeout:60,sessionDescriptionHandlerFactory:Ii.defaultFactory,sessionDescriptionHandlerFactoryOptions:{},sipExtension100rel:Ei.Unsupported,sipExtensionReplaces:Ei.Unsupported,sipExtensionExtraSupported:[],sipjsId:"",transportConstructor:rr,transportOptions:{},uri:new ze("sip","anonymous","anonymous.invalid"),usePreloadedRoute:!1,userAgentString:"xyplat",viaHost:""};class nr extends s{constructor(e,t={}){super(),this.registerer=void 0,this.delegate=t.delegate,this.options=Object.assign({},t);const i=Object.assign({},t.userAgentOptions);if(i.transportConstructor||(i.transportConstructor=rr),i.transportOptions||(i.transportOptions={wsServers:e}),!i.uri&&t.aor){const e=sr.makeURI(t.aor);if(!e)throw new Error(`Failed to create valid URI from ${t.aor}`);i.uri=e}this.userAgent=new sr(i),this.userAgent.delegate={onInvite:e=>{this.logger.log(`[${this.id}] received INVITE`),e.setDelegate(this.delegate);this.constraints;if(this.delegate&&this.delegate.onCallReceived){let i="",r="",s="",n="";if(null!=e._ifcContent){var t=e._ifcContent.split(".");i=t[0],r=t[1],s=t[2],t.length>=4&&(n=t[3])}this.delegate.onCallReceived(e.id,e.remoteIdentity.uri.user,i,r,s);let a=new ar;a.id=e.id,a.orgCaller=e.remoteIdentity.uri.user,a.cid=i,a.calltype=r,a.caller=s,"1"==n&&(a.isScheduleConference=!0),a.isVideo=e.isVideo,this.emit(Vi.IncomingCall.toString(),a)}else this.logger.warn(`[${this.id}] no handler available, rejecting INVITE...`),e.reject().then(()=>{this.logger.log(`[${this.id}] rejected INVITE`)}).catch(e=>{this.logger.error(`[${this.id}] failed to reject INVITE`),this.logger.error(e.toString())})},onMessage:e=>{console.log("message.request.body"),e.accept().then(()=>{console.log(e.request.body),this.delegate&&this.delegate.onMessageReceived&&this.delegate.onMessageReceived(e.request.body)})}},this.logger=this.userAgent.getLogger("sip.SimpleUser")}get id(){return this.options.userAgentOptions&&this.options.userAgentOptions.displayName||"Anonymous"}connect(){return this.logger.log(`[${this.id}] starting UserAgent...`),this.userAgent.start()}disconnect(){return this.logger.log(`[${this.id}] stopping UserAgent...`),this.userAgent.stop()}register(e,t){return this.logger.log(`[${this.id}] registering UserAgent...`),this.registerer||(this.registerer=new ir(this.userAgent,e),this.registerer.stateChange.on(e=>{switch(e){case Ni.Initial:break;case Ni.Registered:this.delegate&&this.delegate.onRegistered&&this.delegate.onRegistered();break;case Ni.Unregistered:this.delegate&&this.delegate.onUnregistered&&this.delegate.onUnregistered();break;case Ni.Terminated:this.registerer=void 0,alert("reg termianl");break;default:throw new Error("Unknown registerer state.")}})),this.registerer.register(t).then(()=>{})}unregister(e){return this.logger.log(`[${this.id}] unregistering UserAgent...`),this.registerer?this.registerer.unregister(e).then(()=>{}):Promise.resolve()}call1(e,t,i,r,s,n){this.logger.log(`[${this.id}] beginning Session...`);const a=sr.makeURI(e);if(!a)return Promise.reject(new Error(`Failed to create a valid URI from "${e}"`));s||(s={}),s.sessionDescriptionHandlerOptions||(s.sessionDescriptionHandlerOptions={}),s.sessionDescriptionHandlerOptions.constraints||(s.sessionDescriptionHandlerOptions.constraints=this.constraints);const o=new Ai(this.userAgent,a,s);return this.sendInvite1(o,t,i,r,s,n).then(()=>{})}hangup1(e){this.logger.log(`[${this.id}] ending Session...`);var t=this.userAgent.sessions[e];if(t instanceof Ai){if(t.state===vi.Initial||t.state===vi.Establishing)return t.cancel().then(()=>{this.logger.log(`[${this.id}] sent CANCEL`)})}else if(t instanceof Di&&(t.state===vi.Initial||t.state===vi.Establishing))return t.reject().then(()=>{this.logger.log(`[${this.id}] sent reject`)});return new Mi(t).bye().then(()=>{this.logger.log(`[${this.id}] sent BYE`)})}answerVideo(e,t){this.answer1(e,t,null,{sessionDescriptionHandlerOptions:{constraints:{audio:!0,video:!0}}})}answerAudio(e,t){this.answer1(e,t,null,{sessionDescriptionHandlerOptions:{constraints:{audio:!0,video:!1}}})}answer2(e,t,i,r="",s="",n=0,a=0,o=100){let h=null;const d={sessionDescriptionHandlerOptions:{constraints:{audio:""==r||{deviceId:{exact:r}},video:h=!!i&&(""==s||(0!=n&&0!=a?{deviceId:{exact:s},frameRate:o,width:{exact:n},height:{exact:a}}:{deviceId:{exact:s},frameRate:o}))}}};this.answer1(e,t,null,d)}answer1(e,t,i,r){this.logger.log(`[${this.id}] accepting Invitation...`),r||(r={}),r.sessionDescriptionHandlerOptions||(r.sessionDescriptionHandlerOptions={}),r.sessionDescriptionHandlerOptions.constraints||(r.sessionDescriptionHandlerOptions.constraints=this.constraints);let s=this.userAgent.sessions[e];return s.setupCall(null,t,this.logger,i),s.accept(r)}declineById(e){return this.logger.log(`[${this.id}] rejecting Invitation...`),this.userAgent.sessions[e].reject()}hold1(e){this.logger.log(`[${this.id}] holding session...`);var t=this.userAgent.sessions[e];if(!t)return Promise.reject(new Error("Session does not exist."));if(t.state!==vi.Established)return Promise.reject(new Error("Session is not established."));const i=t.sessionDescriptionHandler;if(!(i instanceof Ii))throw new Error("Session's session description handler not instance of SessionDescriptionHandler.");const r={sessionDescriptionHandlerModifiers:[i.holdModifier]};return this.mute(e),t.invite(r).then(()=>{})}unhold1(e){this.logger.log(`[${this.id}] unholding session...`);let t=this.userAgent.sessions[e];if(!t)return Promise.reject(new Error("Session does not exist."));if(t.state!==vi.Established)return Promise.reject(new Error("Session is not established."));if(!(t.sessionDescriptionHandler instanceof Ii))throw new Error("Session's session description handler not instance of SessionDescriptionHandler.");return this.unmute(e),t.invite({}).then(()=>{})}mute(e){return this.muteDetail(e,!0,!0)}muteAudio(e){return this.muteDetail(e,!0,!1)}muteVideo(e){return this.muteDetail(e,!1,!0)}muteDetail(e,t,i){this.logger.log(`[${this.id}] disabling media tracks...`);let r=this.userAgent.sessions[e];r?r.state===vi.Established?this.enableSenderTracksDetail(e,!1,t,i):this.logger.warn(`[${this.id}] an established session is required to disable media tracks`):this.logger.warn(`[${this.id}] an session is required to disable media tracks`)}unmuteDetail(e,t,i){this.logger.log(`[${this.id}] enabling media tracks...`);let r=this.userAgent.sessions[e];r?r.state===vi.Established?this.enableSenderTracksDetail(e,!0,t,i):this.logger.warn(`[${this.id}] an established session is required to enable media tracks`):this.logger.warn(`[${this.id}] an session is required to enable media tracks`)}unmute(e){return this.unmuteDetail(e,!0,!0)}unmuteAudio(e){return this.unmuteDetail(e,!0,!1)}unmuteVideo(e){return this.unmuteDetail(e,!1,!0)}sendDTMF(e,t){if(this.logger.log(`[${this.id}] sending DTMF...`),!t.match(/^[0-9A-D#*,]$/))return Promise.reject(new Error("Invalid DTMF tone."));let i=this.userAgent.sessions[e];if(!i)return void this.logger.warn(`[${this.id}] an session is required to senddtmf`);if(!i)return Promise.reject(new Error("Session does not exist."));this.logger.log("Sending DTMF tone: "+t);const r={body:{contentDisposition:"render",contentType:"application/dtmf-relay",content:"Signal="+t+"\r\nDuration=2000"}};return new Oi(i).info({requestOptions:r}).then(()=>{})}message(e,t){this.logger.log(`[${this.id}] sending message...`);const i=sr.makeURI(e);return i?new qi(this.userAgent,i,t).message():Promise.reject(new Error(`Failed to create a valid URI from "${e}"`))}get constraints(){let e={audio:!0,video:!1};if(this.options.media&&this.options.media.constraints&&!(e=Object.assign({},this.options.media.constraints)).audio&&!e.video)throw new Error("Invalid media constraints - audio and/or video must be true.");return e}enableSenderTracksDetail(e,t,i,r){let s=this.userAgent.sessions[e];if(!s)throw new Error("Session does not exist.");const n=s.sessionDescriptionHandler;if(!(n instanceof Ii))throw new Error("Session's session description handler not instance of SessionDescriptionHandler.");n.peerConnection.getSenders().forEach(e=>{e.track&&(r&&"video"==e.track.kind&&(e.track.enabled=t),i&&"audio"==e.track.kind&&(e.track.enabled=t))})}enableSenderTracks(e,t){return this.enableSenderTracksDetail(e,t,!0,!0)}initSession1(e,t,i,r,s){const n=this.userAgent.getLogger("sip.Call");e.setupCall(t,i,n,r),e.setDelegate(this.delegate),this.delegate&&this.delegate.onCallCreated&&this.delegate.onCallCreated(e.id,e.remoteVideoControal)}sendInvite1(e,t,i,r,s,n){return this.initSession1(e,t,i,r,s),e.invite(n).then(e=>{this.logger.log(`[${this.id}] sent INVITE`)})}cleanupMedia(){this.options.media&&(this.options.media.local&&this.options.media.local.video&&(this.options.media.local.video.srcObject=null,this.options.media.local.video.pause()),this.options.media.remote&&(this.options.media.remote.audio&&(this.options.media.remote.audio.srcObject=null,this.options.media.remote.audio.pause()),this.options.media.remote.video&&(this.options.media.remote.video.srcObject=null,this.options.media.remote.video.pause())))}previewCamera(e){return navigator.mediaDevices.getUserMedia({audio:!1,video:!0}).then(t=>(e.srcObject=t,e.play(),Promise.resolve())).catch(e=>Promise.reject(e))}changeVideoElement(e,t){if(this.logger.log(`[${this.id}] changeVideoElement...`),i){var i=this.userAgent.sessions[e];if(i instanceof Pi){i.changeVideoElement(t)}}}getIsVideoByCallId(e){var t=this.userAgent.sessions[e];if(!t)return!1;if(t instanceof Pi){return t.isVideo}return!1}}!function(e){e[e.IncomingCall=0]="IncomingCall"}(Vi||(Vi={}));class ar{constructor(){this.isScheduleConference=!1}}!function(e){e[e.Sip=0]="Sip",e[e.APPDevice=1]="APPDevice",e[e.Dispatcher=2]="Dispatcher"}(Ui||(Ui={})),function(e){e[e.None=0]="None",e[e.Init=1]="Init",e[e.Normal=2]="Normal",e[e.Callout=3]="Callout",e[e.Incoming=4]="Incoming",e[e.Ringing=5]="Ringing",e[e.Connect=6]="Connect",e[e.Release=7]="Release",e[e.Hold=8]="Hold",e[e.Unhold=9]="Unhold"}(Bi||(Bi={}));class or{constructor(e,t,i,r){this._stateEmiter=new s,this._iceClient=e,this.srcNumber=t,this.dstNumber=i,this._parentCid=r,this._iceClient.on(Ne.SessionSendToCreaterState.toString(),e=>{let t=JSON.parse(e)[0];if(t.cid!=this._sessionId)return;let i=this.convertIceState(t.state);this._state!=i&&(this._state=i,this._stateEmiter.emit("event",{sender:this,state:this._state}))})}set state(e){this._state!=e&&(this._state=e)}get state(){return this._state}convertIceState(e){let t=Bi.None;switch(e){case"1":t=Bi.Init;break;case"2":t=Bi.Normal;break;case"3":t=Bi.Callout;break;case"4":t=Bi.Incoming;break;case"5":t=Bi.Ringing;break;case"6":t=Bi.Connect;break;case"7":t=Bi.Hold;break;case"10":t=Bi.Release;break;case"14":t=Bi.Unhold}return t}start(){return this._iceClient.transferVideo(this._parentCid,this.srcNumber,[this.dstNumber]).then(e=>(this._sessionId=e.newcid,null!=e.newcid&&""!=e.newcid?Promise.resolve(this._sessionId):Promise.reject())).catch(e=>Promise.reject(e))}end(){return this._iceClient.endConference(this._sessionId)}get onStateChanged(){return Ti(this._stateEmiter)}}class hr{constructor(e,t,r,n){this._callStateEventEmitter=new s,this._forceInterposeEventEmitter=new s,this._callId="",this._sessionIdUndefine="",this._memberHasVideo=!1,this._transferVideos={},this._logger=He.getInstance(),this.callType=qe.Single,this._isVideo=!1,this._isSendVideo=!0,this.number=e,this._mediaControl=t,this._sessionId=this._sessionIdUndefine,this.state=i.None,this._sphone=n,this._iceClient=r,r.on(Ne.SessionMemberChange.toString(),e=>{let t=JSON.parse(e);t[0].cid==this._sessionId&&("0"==t[0].havevideo?this._memberHasVideo=!1:"1"==t[0].havevideo&&(this._memberHasVideo=!0))})}open(e,t){return this._iceClient.SipPhoneVideoBug(this.number,e,t)}close(){this.hangup()}PTZMoveX(e,t,i){this._iceClient.PTZMoveX(this.number,e,t,i)}PTZMoveY(e,t,i){this._iceClient.PTZMoveY(this.number,e,t,i)}PTZZoom(e,t,i){this._iceClient.PTZZoom(this.number,e,t,i)}PTZMoveLR(e,t,i){this._iceClient.PTZMoveLR(this.number,e,t,i)}PTZFocus(e,t,i){this._iceClient.PTZFocus(this.number,e,t,i)}negotiatedTransfer(e){let t=e;return this._iceClient.negotiatedTransfer(this._sessionId,t._sessionId,this.number,t.number)}get isVideo(){return this._isVideo?this._isVideo:this._sphone.getIsVideoByCallId(this._callId)}set isVideo(e){this._isVideo=e}get callStateChange(){return Ti(this._callStateEventEmitter)}get onBecomeConference(){return Ti(this._forceInterposeEventEmitter)}set callstate(e){let t=Ue.convertIceCallState1(e);this.callStateInternal=t}set callStateInternal(e){if(this.state!=e){this.state=e;let t={sender:this,state:this.state};this._callStateEventEmitter.emit("event",t)}}get transferVideos(){let e=new Array;for(const t in this._transferVideos)if(Object.prototype.hasOwnProperty.call(this._transferVideos,t)){const i=this._transferVideos[t];e.push(i)}return e}invite(e){return this._iceClient.makecall(this.number,e).then(e=>Promise.resolve()).catch(e=>Promise.reject(e))}inviteByLeftPhone(e){return this._iceClient.makecallByLeftPhone(this.number,e).then(e=>Promise.resolve()).catch(e=>Promise.reject(e))}answer(e,t){this._mediaControl=e,this.isVideo||(t=!1),this._isSendVideo||(t=!0),this._sphone.answer2(this._callId,this._mediaControl,t,ke.getInstance().audioInputDeviceConfig.id,ke.getInstance().videoInputDeviceConfig.id,ke.getInstance().videoInputDeviceConfig.width,ke.getInstance().videoInputDeviceConfig.height,ke.getInstance().videoInputDeviceConfig.frameRate)}hangup(){return this._iceClient.hangup(this._sessionId).then(e=>(this._logger.warn("call hangup success; "+JSON.stringify(e)),Promise.resolve())).catch(e=>(this._logger.warn("call hangup fail; "+JSON.stringify(e)),Promise.reject(e)))}hold(){return this._iceClient.hold(this._sessionId)}unhold(){return this._iceClient.unHold(this._sessionId)}mute(){return this._sphone.mute(this._callId),this._iceClient.muteLocalCamera(this._sessionId,ke.getInstance().number,!0),this._iceClient.muteLocalMic(this._sessionId,ke.getInstance().number,!0)}unmute(){return this._sphone.unmute(this._callId),this._iceClient.muteLocalCamera(this._sessionId,ke.getInstance().number,!1),this._iceClient.muteLocalMic(this._sessionId,ke.getInstance().number,!1)}muteAudio(){return this._sphone.muteAudio(this._callId),this._iceClient.muteLocalMic(this._sessionId,ke.getInstance().number,!0)}muteVideo(){return this._sphone.muteVideo(this._callId),this._iceClient.muteLocalCamera(this._sessionId,ke.getInstance().number,!0)}unmuteAudio(){return this._sphone.unmuteAudio(this._callId),this._iceClient.muteLocalMic(this._sessionId,ke.getInstance().number,!1)}unmuteVideo(){return this._sphone.unmuteVideo(this._callId),this._iceClient.muteLocalCamera(this._sessionId,ke.getInstance().number,!1)}switch(e){return this._iceClient.switch(this._sessionId,e,this.number)}SubsituteCall(e){return this._iceClient.SubsituteCall(this.number,e).then(e=>(console.warn("substitutecall "+JSON.stringify(e)),Promise.resolve())).catch(e=>Promise.reject(e))}addMember(e){return this._iceClient.conferenceAddMember(this._sessionId,e)}becomeConference(e){let t={sender:this,changeToConference:e};this._forceInterposeEventEmitter.emit("event",t)}startDecoderWall(e,t){return this._iceClient.startDecoderWall(e,t,this._sessionId,this.number)}stopDecoderWall(e,t){return this._iceClient.stopDecoderWall(e,t)}transferVideo(e,t){return this._iceClient.transferVideo(this._sessionId,e,t).then(e=>Promise.resolve(e.newcid)).catch(e=>Promise.reject(e))}changeVideoElement(e){this._sphone.changeVideoElement(this._callId,e)}sendDTMF(e){return this._sphone.sendDTMF(this._callId,e)}transferVideo1(e,t){const i=new or(this._iceClient,e,t,this._sessionId);return i.start().then(e=>(this._transferVideos[e]=i,i.onStateChanged.on(t=>{t.state==Bi.Release&&delete this._transferVideos[e]}),Promise.resolve(i))).catch(e=>Promise.reject(e))}requestSendVideo(){return!!this.isVideo&&(!!this._isSendVideo&&(this._isSendVideo=!1,this._iceClient.requestSendVideoByJson(this._sessionId)))}hangdleRequestVideo(e){return!!this.isVideo&&(!!this._isSendVideo&&(this._isSendVideo=!1,this._mediaControl=e,this._iceClient.requestSendVideoByJson(this._sessionId)))}}!function(e){e[e.CallState=0]="CallState"}(Gi||(Gi={}));class dr{constructor(){this._eventEmiiter=new s}static getInstance(){return null==dr.s_bsclient&&(dr.s_bsclient=new dr),dr.s_bsclient}newEvent(e){this._eventEmiiter.on(Li.newEvent.toString(),e)}dataChanged(e){this._eventEmiiter.on(Li.datachange.toString(),e)}heartBeat(e){this._eventEmiiter.on(Li.haartbeat.toString(),e)}materalChanged(e){this._eventEmiiter.on(Li.materialchange.toString(),e)}newTast(e){this._eventEmiiter.on(Li.newtask.toString(),e)}stateChanged(e){this._eventEmiiter.on(Li.statechange.toString(),e)}tastStateChanged(e){this._eventEmiiter.on(Li.taskstatechange.toString(),e)}wareHouseChanged(e){this._eventEmiiter.on(Li.warehousechange.toString(),e)}regist(e,t,i){return this._serverIP=e,this._serverPort=t,this._username=i,this.iceInit(),this.connect()}iceInit(){const e=t.Ice.createProperties();e.setProperty("Ice.ACM.Close","0");const i=new t.Ice.InitializationData;i.properties=e,this._iceCommunicator=t.Ice.initialize(i)}async connect(){let e=this._iceCommunicator.stringToProxy("EMSrv:wss -h "+this._serverIP+" -p "+this._serverPort);e.ice_timeout(1e4);e=(e=e.ice_invocationTimeout(3e3)).ice_twoway(),this._proxy=q.EMSrvPrx.uncheckedCast(e);const i=await this._iceCommunicator.createObjectAdapter(""),r=new t.Ice.Identity(this._username,"EMCli");this._myid=new q.EMIdentity(this._username),this._myReceiver=new cr,this._myReceiver.eventEmiter=this._eventEmiiter,i.add(this._myReceiver,r),(await this._proxy.ice_getConnection()).setAdapter(i);let s=new q.EMIdentity;return s.user=this._username,this._proxy.EMRegisterOP(s,"")}getEventsList(e){let t=new q.EMIdentity;return t.user=this._username,this._proxy.EMGetEventsOP(t,e)}getEventPara(){let e=new q.EMIdentity;return e.user=this._username,this._proxy.EMEventGetParam(e,"")}getEventDetail(e){let t=new q.EMIdentity;return t.user=this._username,this._proxy.EMGetEventDetialOP(t,e)}getTastList(e){let t=new q.EMIdentity;return t.user=this._username,this._proxy.EMGetTaskBySelfOP(t,e)}returnTast(e){let t=new q.EMIdentity;return t.user=this._username,this._proxy.EMEventReturnOP(t,e)}startProcessTast(e){let t=new q.EMIdentity;return t.user=this._username,this._proxy.EMEventStartProcessOP(t,e)}overProcessTast(e){let t=new q.EMIdentity;return t.user=this._username,this._proxy.EMEventProcessOverOP(t,e)}reportNewevent(e){let t=new q.EMIdentity;return t.user=this._username,this._proxy.EMEventReportOP(t,e)}eventDistribute(e){let t=new q.EMIdentity;return t.user=this._username,this._proxy.EMEventDistributeOP(t,e)}eventConfirm(e){let t=new q.EMIdentity;return t.user=this._username,this._proxy.EMEventConfirmOP(t,e)}eventView(e){let t=new q.EMIdentity;return t.user=this._username,this._proxy.EMEventViewOP(t,e)}}class cr extends q.EMCli{constructor(){super()}EMCBNotifyNewEvent(e,t){this.eventEmiter.emit(Li.newEvent.toString(),e)}EMCBNotifyEventStateChanged(e,t){this.eventEmiter.emit(Li.statechange.toString(),e)}EMCBNotifyNewTask(e,t){this.eventEmiter.emit(Li.newtask.toString(),e)}EMCBNotifyTaskStateChanged(e,t){this.eventEmiter.emit(Li.taskstatechange.toString(),e)}EMCBNotifyWarehouseChanged(e,t,i){this.eventEmiter.emit(Li.warehousechange.toString(),e,t)}EMCBNotifyMaterialChanged(e,t,i){this.eventEmiter.emit(Li.materialchange.toString(),e,t)}EMHeartbeatCB(e,t){this.eventEmiter.emit(Li.haartbeat.toString(),e)}EMDataChangedCB(e,t){this.eventEmiter.emit(Li.datachange.toString(),e)}}!function(e){e[e.newEvent=0]="newEvent",e[e.statechange=1]="statechange",e[e.newtask=2]="newtask",e[e.taskstatechange=3]="taskstatechange",e[e.warehousechange=4]="warehousechange",e[e.materialchange=5]="materialchange",e[e.haartbeat=6]="haartbeat",e[e.datachange=7]="datachange"}(Li||(Li={})),function(e){e[e.None=0]="None",e[e.Connecting=1]="Connecting",e[e.Connected=2]="Connected",e[e.Kickout=3]="Kickout",e[e.Terminaled=4]="Terminaled",e[e.Leave=5]="Leave"}(ji||(ji={})),function(e){e[e.Enter=0]="Enter",e[e.Leave=1]="Leave",e[e.Speak=2]="Speak",e[e.Unspeak=3]="Unspeak",e[e.listen=4]="listen",e[e.unlisten=5]="unlisten",e[e.Reject=6]="Reject",e[e.ringing=7]="ringing",e[e.connected=8]="connected",e[e.MuteLocalMic=9]="MuteLocalMic",e[e.UnmuteLocalMic=10]="UnmuteLocalMic",e[e.MuteLocalCamera=11]="MuteLocalCamera",e[e.UnmuteLocalCamera=12]="UnmuteLocalCamera"}(Wi||(Wi={}));class lr{constructor(e,t,r,n,a,o=!0){this._logger=He.getInstance(),this._members={},this._calls={},this.isReEnter=!1,this._startVideo=!0,this.isSchedule=!1,this._transferVideos={},this._isVideo=!1,this.state=ji.None,this._stateChangeEmiiter=new s,this._memberStateChangeEmiiter=new s,this._currentVideoChanged=new s,this._isSendVideo=!0,this._mediaControl=e,this.name=r,this._iceClient=n,this._sphone=a,this._initMembers=t,this._startVideo=o,this._iceClient.on(Ne.SessionMemberChange.toString(),e=>{if(this.state==ji.Terminaled||this.state==ji.Kickout||this.state==ji.Leave)return void this._logger.warn("not in conference");let t=JSON.parse(e);if(t[0].cid!=this._sessionId)return;let r,s,n,a=t[0].state,o=t[0].employeeid,h=t[0].name,d=this._members[o],c=Ue.convertIceCallState1(a);s="0"==t[0].notspeak,n="0"==t[0].nothear;let l=!1;l="0"!=t[0].muteLocalMic;let g=!1;g="0"!=t[0].muteLocalCamera;let u=i.None;null==d?(d={number:o,name:h,allowSpeak:s,allowListen:n,hasVideo:!0,callState:c,muteLocalCamera:!1,muteLocalMic:!1},this._members[o]=d,r={sender:this,state:Wi.Enter,member:o},this._memberStateChangeEmiiter.emit("event",r)):(u=d.callState,d.callState=c);let p=t[0].havevideo;switch(d.hasVideo="0"!=p,a){case"1":r={sender:this,state:Wi.ringing,member:o},this._memberStateChangeEmiiter.emit("event",r);break;case"6":if(u!=i.Connect)r={sender:this,state:Wi.connected,member:o},this._memberStateChangeEmiiter.emit("event",r);else{if(s!=d.allowSpeak){d.allowSpeak=s;let e=Wi.Speak;s||(e=Wi.Unspeak),r={sender:this,state:e,member:o},this._memberStateChangeEmiiter.emit("event",r)}if(n!=d.allowListen){d.allowListen=n;let e=Wi.listen;n||(e=Wi.unlisten),r={sender:this,state:e,member:o},this._memberStateChangeEmiiter.emit("event",r)}if(l!=d.muteLocalMic){d.muteLocalMic=l;let e=Wi.MuteLocalMic;l||(e=Wi.UnmuteLocalMic),r={sender:this,state:e,member:o},this._memberStateChangeEmiiter.emit("event",r)}if(g!=d.muteLocalCamera){d.muteLocalCamera=g;let e=Wi.MuteLocalCamera;g||(e=Wi.UnmuteLocalCamera),r={sender:this,state:e,member:o},this._memberStateChangeEmiiter.emit("event",r)}}1==t[0].ispush&&this.currentVideoMember!=o&&(this.currentVideoMember=o,this._currentVideoChanged.emit("event",{sender:this,member:o}));break;case"10":null!=d&&(delete this._members[o],r={sender:this,state:Wi.Leave,member:o},this._memberStateChangeEmiiter.emit("event",r))}});var h=this._handleIncomingCall.bind(this);this._sphone.on(Vi.IncomingCall.toString(),h),this.removeListeners=function(){this._sphone.removeListener(Vi.IncomingCall.toString(),h)}}get isVideo(){return this._isVideo?this._isVideo:this._sphone.getIsVideoByCallId(this._callId)}set isVideo(e){this._isVideo=e}get transferVideos(){let e=new Array;for(const t in this._transferVideos)if(Object.prototype.hasOwnProperty.call(this._transferVideos,t)){const i=this._transferVideos[t];e.push(i)}return e}_handleIncomingCall(e){if("*5*get"==e.orgCaller&&null!=this._tempOutgoingCall)return this._tempOutgoingCall._callId=e.id,this._calls[this._tempOutgoingCall.number]=this._tempOutgoingCall,void this.answerMemberCall(e.id)}get memberStateChange(){return Ti(this._memberStateChangeEmiiter)}get stateChange(){return Ti(this._stateChangeEmiiter)}get currentVideoChanged(){return Ti(this._currentVideoChanged)}get members(){return this._members}getMembers(){this._iceClient.getConfMembers(this._sessionId).then(e=>{this._logger.warn("getconfMembers: "+JSON.stringify(e)),e.forEach(e=>{let t=e.state.value,i={number:e.employeeid,name:e.name,allowSpeak:!0,allowListen:!0,hasVideo:!0,callState:t,muteLocalCamera:!1,muteLocalMic:!1};this._members[i.number]=i})})}start(e=ke.getInstance().number){return this._iceClient.createConference(this._initMembers,this._startVideo,e).then(e=>{this._logger.log("createConf sucess "+JSON.stringify(e)),this._sessionId=e.cid})}accept(e,t){this._mediaControl=e,this.isVideo||(t=!1),this._sphone.answer2(this._callId,this._mediaControl,t,ke.getInstance().audioInputDeviceConfig.id,ke.getInstance().videoInputDeviceConfig.id,ke.getInstance().videoInputDeviceConfig.width,ke.getInstance().videoInputDeviceConfig.height,ke.getInstance().videoInputDeviceConfig.frameRate)}reEnter(){return this.isReEnter=!0,this.add(ke.getInstance().number)}answerMemberCall(e){null!=this._tempOutgoingCall&&(this._tempOutgoingCall._callId=e,this._tempOutgoingCall.answer(this._tempOutgoingCall._mediaControl,!0))}add(e){return this._iceClient.conferenceAddMember(this._sessionId,e)}remove(e){return this._iceClient.conferenceDeleteMember(this._sessionId,e)}end(){return this.removeListeners&&this.removeListeners(),this._iceClient.endConference(this._sessionId)}exit(){return this.stateInternal=ji.Leave,this._iceClient.hangup(this._sessionId)}openMemberVideo(e,t){let i=this._calls[e];if(null!=i)return Promise.reject();i=new hr(e,t,this._iceClient,this._sphone),this._tempOutgoingCall=i,this._iceClient.conferenceGetVideo(this._sessionId,e)}closeMemberVideo(e){let t=this._calls[e];null!=t&&(delete this._calls[e],t.hangup())}setConferenceVideo(e){return this._iceClient.conferencePushMember(this._sessionId,e)}allowSpeak(e,t){return this._iceClient.allowSpeak(this._sessionId,e,t)}allowListen(e,t){return this._iceClient.allowListen(this._sessionId,e,t)}set stateice(e){let t=this.state;switch(e){case"1":case"2":break;case"3":t=ji.Connecting;break;case"4":case"5":break;case"6":t=ji.Connected;break;case"7":break;case"10":t=ji.Terminaled;break;case"14":break;case"15":this.state!=ji.Leave&&(t=ji.Kickout)}this.stateInternal=t}set stateInternal(e){if(this.state!=e){e==ji.Connected&&this.getMembers(),this.state=e;let t={sender:this,state:this.state};this._stateChangeEmiiter.emit("event",t)}}startDecoderWall(e,t,i){return this._iceClient.startDecoderWall(e,t,this._sessionId,i)}stopDecoderWall(e,t){return this._iceClient.stopDecoderWall(e,t)}transferVideo(e,t){return this._iceClient.transferVideo(this._sessionId,e,t)}transferVideo1(e,t){const i=new or(this._iceClient,e,t,this._sessionId);return i.start().then(e=>(this._transferVideos[e]=i,i.onStateChanged.on(t=>{t.state==Bi.Release&&delete this._transferVideos[e]}),Promise.resolve(i))).catch(e=>Promise.reject(e))}mute(){return this._sphone.mute(this._callId),this._iceClient.muteLocalCamera(this._sessionId,ke.getInstance().number,!0),this._iceClient.muteLocalMic(this._sessionId,ke.getInstance().number,!0)}unmute(){return this._sphone.unmute(this._callId),this._iceClient.muteLocalCamera(this._sessionId,ke.getInstance().number,!1),this._iceClient.muteLocalMic(this._sessionId,ke.getInstance().number,!1)}muteAudio(){return this._sphone.muteAudio(this._callId),this._iceClient.muteLocalMic(this._sessionId,ke.getInstance().number,!0)}muteVideo(){return this._sphone.muteVideo(this._callId),this._iceClient.muteLocalCamera(this._sessionId,ke.getInstance().number,!0)}unmuteAudio(){return this._sphone.unmuteAudio(this._callId),this._iceClient.muteLocalMic(this._sessionId,ke.getInstance().number,!1)}unmuteVideo(){return this._sphone.unmuteVideo(this._callId),this._iceClient.muteLocalCamera(this._sessionId,ke.getInstance().number,!1)}requestSendVideo(){return!!this._isSendVideo&&(this._isSendVideo=!1,this._iceClient.requestSendVideoByJson(this._sessionId))}hangdleRequestVideo(e){return!!this._isSendVideo&&(this._isSendVideo=!1,this._mediaControl=e,this._iceClient.requestSendVideoByJson(this._sessionId))}}!function(e){e[e.None=0]="None",e[e.Connecting=1]="Connecting",e[e.Connected=2]="Connected",e[e.Terminaled=3]="Terminaled"}(zi||(zi={})),function(e){e[e.Enter=0]="Enter",e[e.Leave=1]="Leave"}(Ki||(Ki={}));class gr{constructor(e,t,i,r,n){this._logger=He.getInstance(),this._stateChangeEmiiter=new s,this._memberStateChangeEmiiter=new s,this._speakerChangeEmiiter=new s,this._members={},this._mediaControl=e,this.name=i,this._iceClient=r,this._sphone=n,this._initMembers=t,this._iceClient.on(Ne.SessionMemberChange.toString(),e=>{this._logger.warn("sessionMemberChange: "+e);let t=JSON.parse(e);if(t[0].cid!=this._sessionId)return;let i,r=t[0].state,s=t[0].employeeid,n=t[0].name,a=this._members[s];switch(r){case"6":if(null==a){let e={number:s,name:n};this._members[s]=e,i={sender:this,state:Ki.Enter,member:s},this._memberStateChangeEmiiter.emit("event",i)}break;case"10":null!=a&&(delete this._members[s],i={sender:this,state:Ki.Leave,member:s},this._memberStateChangeEmiiter.emit("event",i))}}),this._iceClient.on(Ne.PttStateSpeaker.toString(),e=>{let t=e.substring(e.indexOf("call_id:")+"call_id:".length).trim();if(this._logger.warn("ptt speaker changed, cid: "+t+", _cid: "+this._sessionId+"."),t!=this._sessionId)return void this._logger.warn("ptt not equal");let i=e.substring(e.indexOf("speaker:")+"speaker:".length,e.indexOf("call_id:"));if(this._logger.warn(i),i!=this.speaker){this.speaker=i;let e={sender:this,speaker:i};this._speakerChangeEmiiter.emit("event",e)}})}start(e=ke.getInstance().number){return this._iceClient.startTempIntercom(this._initMembers,e).then(e=>{this._logger.log("createTempIntercom sucess "+JSON.stringify(e))})}applySpeak(e=ke.getInstance().number){return this._iceClient.applySpeak(this.groupNumber,e).then(e=>{this._logger.log("apply speak sucess "+JSON.stringify(e))})}applySpeakByLeftPhone(){return this.applySpeak(ke.getInstance().leftPhone)}applySpeakByRightPhone(){return this.applySpeak(ke.getInstance().rightPhone)}freeSpeak(){return this._iceClient.releaseSpeak(this.groupNumber).then(e=>{this._logger.log("free speak sucess "+JSON.stringify(e))})}accept(e){this._mediaControl=e,this._sphone.answer2(this._callId,this._mediaControl,!1,ke.getInstance().audioInputDeviceConfig.id,ke.getInstance().videoInputDeviceConfig.id)}end(){return this._iceClient.endConference(this._sessionId)}exit(){return this._iceClient.hangup(this._sessionId)}get stateChange(){return Ti(this._stateChangeEmiiter)}get memberStateChange(){return Ti(this._memberStateChangeEmiiter)}get speakerChanged(){return Ti(this._speakerChangeEmiiter)}set stateice(e){let t=this.state;switch(e){case"1":case"2":break;case"3":t=zi.Connecting;break;case"4":case"5":break;case"6":t=zi.Connected;break;case"7":break;case"10":t=zi.Terminaled}this.stateInternal=t}set stateInternal(e){if(this.state!=e){e==zi.Connected&&this.getMembers(),this.state=e;let t={sender:this,state:this.state};this._stateChangeEmiiter.emit("event",t)}}get members(){return this._members}getMembers(){this._iceClient.getConfMembers(this._sessionId).then(e=>{this._logger.warn("getMembers success: "+JSON.stringify(e)),e.forEach(e=>{let t={number:e.employeeid,name:e.name};this._members[t.number]=t})}).catch(e=>{this._logger.warn("getMembers fail :"+JSON.stringify(e))})}}!function(e){e[e.None=0]="None",e[e.Connecting=1]="Connecting",e[e.Connected=2]="Connected",e[e.Kickout=3]="Kickout",e[e.Terminaled=4]="Terminaled",e[e.Leave=5]="Leave"}(Ji||(Ji={})),function(e){e[e.Enter=0]="Enter",e[e.Leave=1]="Leave",e[e.Speak=2]="Speak",e[e.Unspeak=3]="Unspeak",e[e.listen=4]="listen",e[e.unlisten=5]="unlisten",e[e.Reject=6]="Reject",e[e.ringing=7]="ringing",e[e.connected=8]="connected"}(Yi||(Yi={}));class ur{constructor(e,t,r,n,a){this._logger=He.getInstance(),this._stateChangeEmiiter=new s,this._memberStateChangeEmiiter=new s,this._members={},this._mediaControl=e,this.name=r,this._iceClient=n,this._sphone=a,this._initMembers=t,this._iceClient.on(Ne.SessionMemberChange.toString(),e=>{if(this.state==Ji.Terminaled||this.state==Ji.Kickout||this.state==Ji.Leave)return void this._logger.warn("not in conference");let t=JSON.parse(e);if(t[0].cid!=this._sessionId)return;let r,s,n=t[0].state,a=t[0].employeeid,o=t[0].name,h=this._members[a],d=Ue.convertIceCallState1(n);t[0].notspeak;s="0"==t[0].nothear;let c=i.None;switch(null==h?(h={number:a,name:o,allowListen:s,callState:d},this._members[a]=h,r={sender:this,state:Yi.Enter,member:a},this._memberStateChangeEmiiter.emit("event",r)):(c=h.callState,h.callState=d),n){case"1":r={sender:this,state:Yi.ringing,member:a},this._memberStateChangeEmiiter.emit("event",r);break;case"6":if(c!=i.Connect)r={sender:this,state:Yi.connected,member:a},this._memberStateChangeEmiiter.emit("event",r);else if(s!=h.allowListen){h.allowListen=s;let e=Yi.listen;s||(e=Yi.unlisten),r={sender:this,state:e,member:a},this._memberStateChangeEmiiter.emit("event",r)}break;case"10":null!=h&&(delete this._members[a],r={sender:this,state:Yi.Leave,member:a},this._memberStateChangeEmiiter.emit("event",r))}})}get sessionId(){return this._sessionId}start(e=ke.getInstance().number){return this._iceClient.startBroadcast(this._initMembers,e).then(e=>{this._logger.warn("createBroadcast sucess "+JSON.stringify(e)),this._sessionId=e.cid})}accept(e){this._mediaControl=e,this._sphone.answer2(this._callId,this._mediaControl,!1,ke.getInstance().audioInputDeviceConfig.id,ke.getInstance().videoInputDeviceConfig.id,ke.getInstance().videoInputDeviceConfig.width,ke.getInstance().videoInputDeviceConfig.height,ke.getInstance().videoInputDeviceConfig.frameRate)}end(){return this._iceClient.endConference(this._sessionId)}exit(){return this._iceClient.hangup(this._sessionId)}get stateChange(){return Ti(this._stateChangeEmiiter)}get memberStateChange(){return Ti(this._memberStateChangeEmiiter)}set stateice(e){let t=this.state;switch(e){case"1":case"2":break;case"3":t=Ji.Connecting;break;case"4":case"5":break;case"6":t=Ji.Connected;break;case"7":break;case"10":t=Ji.Terminaled}this.stateInternal=t}set stateInternal(e){if(this.state!=e){e==Ji.Connected&&this.getMembers(),this.state=e;let t={sender:this,state:this.state};this._stateChangeEmiiter.emit("event",t)}}get members(){return this._members}getMembers(){this._iceClient.getConfMembers(this._sessionId).then(e=>{this._logger.warn("getMembers success: "+JSON.stringify(e)),e.forEach(e=>{let t=e.state.value,i={number:e.employeeid,name:e.name,callState:t,allowListen:!0};this._members[i.number]=i})}).catch(e=>{this._logger.warn("getMembers fail :"+JSON.stringify(e))})}add(e){return this._iceClient.conferenceAddMember(this._sessionId,e)}remove(e){return this._iceClient.conferenceDeleteMember(this._sessionId,e)}allowListen(e,t){return this._iceClient.allowListen(this._sessionId,e,t)}}(Zi=e.RegistState||(e.RegistState={}))[Zi.None=0]="None",Zi[Zi.Registed=1]="Registed",Zi[Zi.Unregisted=2]="Unregisted",Zi[Zi.ConnectError=3]="ConnectError",Zi[Zi.PasswordError=4]="PasswordError",Zi[Zi.UserNotExist=5]="UserNotExist",Zi[Zi.ServerError=6]="ServerError",Zi[Zi.OtherError=7]="OtherError",Zi[Zi.RepeatLogin=8]="RepeatLogin",Zi[Zi.TypeError=9]="TypeError",(Xi=e.ServiceConnectState||(e.ServiceConnectState={}))[Xi.DisConnect=0]="DisConnect",Xi[Xi.Connected=1]="Connected",(Qi=e.OnlineState||(e.OnlineState={}))[Qi.Online=0]="Online",Qi[Qi.Offline=1]="Offline";class pr{constructor(){this._sendvidoe=!0,this._eventDelegate={onRegistered:()=>{null!=this._userDelegate&&this._userDelegate.onRegistered(),this.registState=e.RegistState.Registed},onUnregistered:()=>{null!=this._userDelegate&&this._userDelegate.onUnregistered(),this.registState==e.RegistState.Registed&&(this.registState=e.RegistState.Unregisted)},onCallCreated:(e,t)=>{},onCallReceived:(e,t,i,r,s)=>{},onCallHangup:(e,t)=>{},onMessageReceived:e=>{}},this._domain="127.0.0.1:5060",this._userStateEventEmitter=new s,this._registStateEventEmitter=new s,this._userCallStateEventEmitter=new s,this._incomingCallEventEmitter=new s,this._receiveConferenceInviteEventEmitter=new s,this._receiveIntercomInviteEventEmitter=new s,this._receiveBroadcastInviteEventEmitter=new s,this._serverConnectStateEventEmitter=new s,this._gisInfoEventEmitter=new s,this._msgReceivedEventEmitter=new s,this._fileMsgReceivedEventEmitter=new s,this._eventEmitter=new s,this._handleAnswerIncomingCall=new s,this._handleAnswerIncomingConference=new s,this._logger=He.getInstance(),this._registState=e.RegistState.None,this.unAttended=!1,this.commonEventString="event",this._userRegist=!1,this.calls={},this.conferences={},this.intercoms={},this.broadcasts={},this.unInitOutgoingCalls={},this.unInitOutGoingSubstitue=null,this._tempOutgoingCall=null,this._tempOutgoningIntercom=null,this._tempOutgoningBroadcast=null,this._iceServer=Ue.getInstance(),this._iceServer.on(Ne.SessionStateChange.toString(),e=>{this._logger.log("***********"+Ne.SessionStateChange.toString()),this._eventEmitter.emit(er.SessionStateChange.toString(),e);let t=JSON.parse(e),r=t[0].cid,s=!1;"2"==t[0].isVideo&&(s=!0);let n=Ue.convertIceCallType(t[0].type);if(n==qe.Conference||n==qe.MCUMetting){let e=this.conferences[r];if(null!=e)e.stateice=t[0].state,e.isVideo=s,e.state==ji.Terminaled||e.state==ji.Kickout?(delete this.conferences[r],this._logger.warn("remove conf :"+e._sessionId)):e.state==ji.Connected&&(t[0].callingnum!=ke.getInstance().leftPhone&&t[0].callingnum!=ke.getInstance().rightPhone||e.requestSendVideo());else{this._logger.warn("conference session state change not found conference sessionid "+this.printConfs());let e=t[0].frontcid1;if(null!=e&&""!=e){let t=this.calls[e];if(null!=t){this._logger.warn("call change to conference by frontcid");let i=new lr(t._mediaControl,null,null,this._iceServer,this.alice);i._callId=t._callId,i._sessionId=r,this.conferences[r]=i,delete this.calls[e],t.becomeConference(i)}}if("6"==t[0].state&&(t[0].callingnum==ke.getInstance().leftPhone||t[0].callingnum==ke.getInstance().rightPhone)){let e=new lr(null,null,null,this._iceServer,this.alice),t=!1;n==qe.MCUMetting&&(t=!0),e.isMCU=t,e._sessionId=r,this.conferences[r]=e,this._logger.warn("add conf :"+e._sessionId),e.caller="",e.isSchedule=!1,e.isVideo=s,e.stateChange.on(e=>{if(e.state==ji.Terminaled){let t=e.sender;delete this.conferences[t._sessionId],this._logger.warn("remove conf :"+t._sessionId)}}),this._handleAnswerIncomingConference.emit(this.commonEventString,e)}}return}if(n==qe.Tempintercom||n==qe.Intercom){let e=this.intercoms[r];return void(null!=e&&(e.stateice=t[0].state,e.stateInternal==zi.Terminaled&&delete this.intercoms[r]))}if(n==qe.Broadcast){let e=this.broadcasts[r];return void(null!=e&&(e.stateice=t[0].state,e.stateInternal==Ji.Terminaled&&delete this.broadcasts[r]))}let a=t[0].othernum,o=this.calls[r];if(null==o){this._logger.warn("sessionStateChange session not found in calls");let e,i=t[0].frontcid1,s=t[0].frontcid2;null!=i&&""!=i&&(null==(o=this.calls[i])?null!=s&&""!=s&&null!=(o=this.calls[s])&&(e=s):e=i),null!=o&&(this._logger.warn("sessionStateChange update cid by frontcid"),o._sessionId=r,o.number=a,delete this.calls[e],this.calls[r]=o)}if(null==o){if(null==(o=this.unInitOutgoingCalls[a])){if(this._logger.warn("sessionStateChange not found in outgongcalls, should incoming call"),"6"==t[0].state&&(t[0].callingnum==ke.getInstance().leftPhone||t[0].callingnum==ke.getInstance().rightPhone)){let e=new hr(a,null,this._iceServer,this.alice);e._sessionId=r,e.isVideo=s,null!=this.calls[r]&&this._logger.error("handle answer incoming call error, maybe preincoming call not hangup"),this.calls[r]=e,this._handleAnswerIncomingCall.emit(this.commonEventString,e)}return}this._logger.warn(" init call by sessionStateChange "),o._sessionId=r,this.calls[r]=this.unInitOutgoingCalls[a],delete this.unInitOutgoingCalls[a]}o.isVideo=s,o.callstate=t[0].state,o.state==i.Release?delete this.calls[r]:o.state==i.Connect&&(t[0].callingnum!=ke.getInstance().leftPhone&&t[0].callingnum!=ke.getInstance().rightPhone||o.requestSendVideo())}),this._iceServer.on(Ne.regStateChange.toString(),(t,i)=>{let r=e.OnlineState.Offline;switch(i){case e.RegistState.Registed:r=e.OnlineState.Online}const s={number:t,state:r};this._userStateEventEmitter.emit("event",s)}),this._iceServer.on(Ne.CallStateChange.toString(),(e,t)=>{const i={userNumber:e,callState:t};this._userCallStateEventEmitter.emit("event",i)}),this._iceServer.on(Ne.ServerDisconnect.toString(),()=>{this._serverConnectStateEventEmitter.emit(this.commonEventString,e.ServiceConnectState.DisConnect)}),this._iceServer.on(Ne.ServerConnectd.toString(),()=>{this._serverConnectStateEventEmitter.emit(this.commonEventString,e.ServiceConnectState.Connected)}),this._iceServer.on(Ne.GisInfo.toString(),e=>{this._gisInfoEventEmitter.emit(this.commonEventString,e)}),this._iceServer.on(Ne.MsgReceived.toString(),e=>{this._msgReceivedEventEmitter.emit(this.commonEventString,e)}),this._iceServer.on(Ne.FileMsgReceived.toString(),e=>{this._fileMsgReceivedEventEmitter.emit(this.commonEventString,e)})}static getInstance(){return null==pr.s_instance&&(pr.s_instance=new pr),pr.s_instance}set enableLog(e){He.getInstance().enable=e}set registState(e){if(this._registState!=e){this._registState=e;let t={state:e};this._registStateEventEmitter.emit("event",t)}}get registState(){return this._registState}get isRegisted(){return this._registState==e.RegistState.Registed}get registStateChange(){return Ti(this._registStateEventEmitter)}get userOnlineStateChange(){return Ti(this._userStateEventEmitter)}get userCallStateChange(){return Ti(this._userCallStateEventEmitter)}get incomingCall(){return Ti(this._incomingCallEventEmitter)}get receiveConferenceInvite(){return Ti(this._receiveConferenceInviteEventEmitter)}get receiveIntercomInvite(){return Ti(this._receiveIntercomInviteEventEmitter)}get receiveBroadcastInvite(){return Ti(this._receiveBroadcastInviteEventEmitter)}get serverConnectStateChanged(){return Ti(this._serverConnectStateEventEmitter)}get gisInfoNotify(){return Ti(this._gisInfoEventEmitter)}get msgReceived(){return Ti(this._msgReceivedEventEmitter)}get fileMsgReceived(){return Ti(this._fileMsgReceivedEventEmitter)}get handleAnswerIncomingCall(){return Ti(this._handleAnswerIncomingCall)}get handleAnswerIncomingConference(){return Ti(this._handleAnswerIncomingConference)}printConfs(){let e=" ";for(const t in this.conferences)if(Object.prototype.hasOwnProperty.call(this.conferences,t)){const i=this.conferences[t];e+=",",e+=null!=i?i._sessionId:"null"}return e}setUserDelegate(e){this._userDelegate=e}regist(t){this._userRegist=!0,this._registState=e.RegistState.None,this._registOption=t,this._serverIP=t.ip,this._domain=this._serverIP,this._userNumber=t.userName,ke.getInstance().number=t.userName,this._password=t.password,this.webSocketServerAlice="wss://"+this._serverIP+":"+t.port,this._iceServer.regist(t.ip,t.businesPort,t.userName,this._businessHandler);let i=this.getUrlByNumber(t.userName);this.alice=this.buildUser1(this.webSocketServerAlice,i,t.userName,null,null,t.userType),this.alice.on(Vi.IncomingCall.toString(),e=>{if(this._logger.warn("sphone incomingCall: "+JSON.stringify(e)),"*5*get"==e.orgCaller)return;let t=Ue.convertIceCallType(e.calltype);if(t!=qe.Conference&&t!=qe.MCUMetting){if(t==qe.Tempintercom||t==qe.Intercom){this._logger.warn("incoming temp intercom");let t=this._tempOutgoningIntercom;return this._tempOutgoningIntercom=null,void(null!=t&&e.caller==this._userNumber?(t._callId=e.id,t._sessionId=e.cid,this.intercoms[e.cid]=t,this.alice.answerVideo(t._callId,t._mediaControl)):((t=new gr(null,null,null,this._iceServer,this.alice))._callId=e.id,t._sessionId=e.cid,t.groupNumber=e.orgCaller.replace(e.caller,"").replace("~",""),this._logger.warn("intercom groupnumber:"+t.groupNumber),this.intercoms[e.cid]=t,this._receiveIntercomInviteEventEmitter.emit("event",{intercom:t})))}if(t!=qe.Broadcast){if(null!=this._interposConference&&this._interposConference._interposeCalled==e.caller){this._logger.warn("auto answer interpose conf call");let t=this._interposConference;return t._callId=e.id,t._sessionId=e.cid,this.conferences[e.cid]=t,this._interposConference=null,void t.accept(t._mediaControl,t.isVideo)}null!=this._tempOutgoingCall&&(this._tempOutgoingCall.number,e.caller);var i=this.calls[e.cid];if(null==i){let t=e.orgCaller.replace("*5*","");this._logger.warn("incomingcall not found in calls otherNumber: "+t),null!=(i=this.unInitOutgoingCalls[t])?(i._sessionId=e.cid,this.calls[e.cid]=i,this._logger.warn("init session by incomingcall otherNumber: "+t),delete this.unInitOutgoingCalls[t]):null!=this._tempOutgoingCall&&e.caller==this._tempOutgoingCall.number&&(this._logger.warn("tmp incoming back call"),(i=this._tempOutgoingCall)._sessionId=e.cid,this.calls[e.cid]=i)}if(null!=i)i._callId=e.id,i.answer(i._mediaControl,i.isVideo);else{let i=new hr(e.caller,null,this._iceServer,this.alice);i._callId=e.id,i._sessionId=e.cid,i.callType=t,this.calls[e.cid]=i,this._incomingCallEventEmitter.emit("event",{call:i})}}else{this._logger.warn("incoming broadcast");let t=this.broadcasts[e.cid];null!=t&&e.caller==this._userNumber?(t._callId=e.id,t._sessionId=e.cid,t.caller=e.caller,this.broadcasts[e.cid]=t,this.alice.answerVideo(t._callId,t._mediaControl)):((t=new ur(null,null,null,this._iceServer,this.alice))._callId=e.id,t._sessionId=e.cid,t.caller=e.caller,this.broadcasts[e.cid]=t,this._receiveBroadcastInviteEventEmitter.emit("event",{broadcast:t}))}}else{let i=!1;t==qe.MCUMetting&&(i=!0);let r=this.conferences[e.cid],s=()=>{let t=this.conferences[e.cid];null==t||t.state==ji.Leave&&!t.isReEnter?(null==t&&((t=new lr(null,null,null,this._iceServer,this.alice)).isMCU=i,t._sessionId=e.cid,this.conferences[e.cid]=t),t._callId=e.id,t.caller=e.caller,t.isSchedule=e.isScheduleConference,t.stateChange.on(e=>{e.state==ji.Terminaled&&(delete this.conferences[t._sessionId],this._logger.warn("remove conf :"+t._sessionId))}),this._receiveConferenceInviteEventEmitter.emit("event",{conference:t})):(t.isMCU=i,t._callId=e.id,t.caller=e.caller,t.isSchedule=e.isScheduleConference,t.isReEnter&&(t.isReEnter=!1),t.accept(t._mediaControl,t.isVideo))};null==r?setTimeout(()=>{s()},500):s()}}),this.repeatRegist()}unRegist(){this._userRegist=!1,null!=this.alice&&this.alice.unregister(),this._iceServer.unRegist()}connect(){this._userRegist&&this.registState!=e.RegistState.Registed&&this.alice.connect().then(()=>{this.registInner()}).catch(t=>{this._logger.warn(`[${this.alice.id}] failed to connect`),this._logger.warn(t),this.registState=e.RegistState.ConnectError})}registInner(){pr.getInstance().alice.register(void 0,{requestDelegate:{onReject:t=>{pr.getInstance()._logger.warn(`[${pr.getInstance().alice.id}] REGISTER rejected`);let i="Registration of rejected.\n";i+=`Reason: ${t.message.reasonPhrase}\n`,i+=`Reason: ${t.message.statusCode}\n`;let r=e.RegistState.OtherError;switch(t.message.statusCode){case 403:r=e.RegistState.PasswordError;break;case 404:r=e.RegistState.UserNotExist;break;case 405:r=e.RegistState.RepeatLogin;break;case 406:r=e.RegistState.TypeError;break;case 502:case 504:r=e.RegistState.ConnectError;break;default:t.message.statusCode>=500&&t.message.statusCode<=599&&(r=e.RegistState.ServerError)}pr.getInstance().registState=r}}}).then(()=>{}).catch(e=>{pr.getInstance()._logger.warn(`[${pr.getInstance().alice.id}] failed to register`),pr.getInstance()._logger.warn(e)})}repeatRegist(){pr.getInstance().connect(),setTimeout(pr.getInstance().repeatRegist,1e4)}answerVideo(e,t){this._logger.log(`[${this.alice.id}] call received`),this.alice.answerVideo(e,t)}answerAudio(e,t){this._logger.log(`[${this.alice.id}] call received`),this.alice.answerAudio(e,t)}decline(e){this.alice.declineById(e)}buildUser1(e,t,i,r,s,n){this._logger.log(`Creating "${name}" <${t}>...`);let a="sip";n==Ui.APPDevice?a="xyphone":n==Ui.Dispatcher&&(a="xyplat");const o={aor:t,media:{constraints:{audio:!0,video:!0},local:{video:r},remote:{video:s,audio:s}},userAgentOptions:{displayName:i,authorizationPassword:this._password,sessionDescriptionHandlerFactoryOptions:{},hackWssInTransport:!0,userAgentString:a,logLevel:"warn"}},h=new nr(e,o);return h.delegate=this._eventDelegate,h}getGroups(){return this._iceServer.getRootGroups()}getGroupDetailById(e){return this._iceServer.getGroupWithUsersById(e)}get28281Groups(){return this._iceServer.get28281Groups()}getMonitors28281ByGroupId(e,t){return this._iceServer.getMonitors28281ByGroupId(e,t)}getLocalMonitors(){return this._iceServer.getLocalVideos()}makecallWithControl(e,t,i,r){const s=this.getUrlByNumber(e);this.alice.call1(s,t,i,r,{sessionDescriptionHandlerOptions:{constraints:{audio:!0,video:!1}}},{requestDelegate:{onReject:e=>{}}}).catch(e=>{this._logger.error(e),alert("Failed to begin session.\n"+e)})}makeCallVideo(e,t){this.makecallInner(!0,e,t,null)}makeCallAudio(e,t){this.makecallInner(!1,e,t,null)}getUrlByNumber(e){return"sip:"+e+"@"+this._domain}makecallInner(e,t,i,r){const s=this.getUrlByNumber(t),n={sessionDescriptionHandlerOptions:{constraints:{audio:!0,video:e}}};this.alice.call1(s,null,i,r,n,{requestDelegate:{onReject:e=>{}}}).catch(e=>{this._logger.error(e),alert("Failed to begin session.\n"+e)})}makecall(e,t){const i=this.getUrlByNumber(e);this.alice.call1(i,null,t,null,{sessionDescriptionHandlerOptions:{constraints:{audio:!0,video:!0}}},{requestDelegate:{onReject:e=>{}}}).catch(e=>{this._logger.error(e),alert("Failed to begin session.\n"+e)})}iceMakecall(e){this._iceServer.makecall(e.toString(),!0)}hangup(e){this.alice.hangup1(e)}createConference(e,t){this._conferenceVideoControl=t,this._iceServer.createConference(e,!0)}acceptConference(e){this.answerVideo(this._conferenceCallId,e)}rejectConference(){this.hangup(this._conferenceCallId)}async applySpeakClick(){this._iceServer.applySpeak("20001")}async releaseSpeakClick(){this._iceServer.releaseSpeak("20001")}endConference(){this._iceServer.endConference(this._conferenceSessionId)}async conferenceAddMember(e){this._iceServer.conferenceAddMember(this._conferenceSessionId,e)}conferenceDeleteMember(e){this._iceServer.conferenceDeleteMember(this._conferenceSessionId,e)}conferenceGetVideo(e,t){this._conferenceMemberVideo=t,this._iceServer.conferenceGetVideo(this._conferenceSessionId,e)}conferencePushMember(e){this._iceServer.conferencePushMember(this._conferenceSessionId,e)}sendMessage(e,t){var i=this.getUrlByNumber(e);this.alice.message(i,t)}sendGroupMessage(e,t){this._iceServer.SendMsg(t,e)}makeCall(e,t,i){if(null!=this.unInitOutgoingCalls[e])return Promise.reject("busy, wait moment");let r=new hr(e,t,this._iceServer,this.alice);return this.unInitOutgoingCalls[e]=r,r.invite(i).then(()=>Promise.resolve(r)).catch(t=>(delete this.unInitOutgoingCalls[e],Promise.reject(t)))}openMonitor(e,t){if(null!=this.unInitOutgoingCalls[e])return this._logger.error("there is same number call outgoing!"),Promise.reject("busy");let i=new hr(e,t,this._iceServer,this.alice);return this.unInitOutgoingCalls[e]=i,i.invite(!0).then(()=>Promise.resolve(i)).catch(t=>(delete this.unInitOutgoingCalls[e],Promise.reject(t)))}openMonitor3g(e,t,i,r){if(null!=this.unInitOutgoingCalls[e])return this._logger.error("there is same number call outgoing!"),Promise.reject("busy");let s=new hr(e,t,this._iceServer,this.alice);return this.unInitOutgoingCalls[e]=s,s.open(i,r).then(()=>Promise.resolve(s)).catch(t=>(delete this.unInitOutgoingCalls[e],Promise.reject(t)))}startUnattended(e){return this.unAttended=!0,this._iceServer.startAttended(e)}stopUnattended(){return this.unAttended=!1,this._iceServer.startAttended("")}getUnattendedState(){return this._iceServer.getUnattendedState()}bindPhoneHandle(e,t){return this._iceServer.bindPhoneHandle(e,t).then(i=>(this._logger.log("bind left right phone success: "+JSON.stringify(i)),ke.getInstance().leftPhone=e,ke.getInstance().rightPhone=t,Promise.resolve())).catch(e=>(this._logger.log("bind left right phone fail: "+JSON.stringify(e)),Promise.reject(e)))}makeCallByLeftPhone(e,t,i){let r=new hr(e,t,this._iceServer,this.alice);return r.inviteByLeftPhone(i).then(()=>(this.calls[r._sessionId]=r,Promise.resolve(r))).catch(e=>Promise.reject(e))}makeCallByRightPhone(e,t){this._iceServer.makecallByRightPhone(e,t)}SubsituteCall(e,t,i,r){return this._iceServer.SubsituteCall(e,"")}forceInterposeCall(e,t){return this._interposConference=new lr(t,null,null,this._iceServer,this.alice),this._interposConference._interposeCalled=e.called,this._iceServer.forceInterposeCall(e.id,e.caller).then(e=>Promise.resolve(this._interposConference))}forceRemoveOther(e,t,i=e.caller){return this._tempOutgoingCall=new hr(i,t,this._iceServer,this.alice),this._iceServer.forceRemoveOther(e.id,i).then(e=>Promise.resolve(this._tempOutgoingCall))}monitorCall(e,t){return this._interposConference=new lr(t,null,null,this._iceServer,this.alice),this._interposConference._interposeCalled=e.called,this._iceServer.MonitorCall(e.id,e.caller).then(e=>Promise.resolve(this._interposConference))}forceRemoveCall(e){return this._iceServer.forceRemoveCall(e.id,e.caller)}getBusinessClient(){return dr.getInstance()}getUserDetail(){return this._iceServer.getUserDetail()}getUserDetailByNumber(e){return this._iceServer.getUserDetailByNumber(e).then(t=>this._iceServer.GetUserSessions(e).then(e=>{let i=new Array,r=new Array;e.forEach(e=>{switch(e.type){case g.CallType.CallTypeSingle:case g.CallType.CallTypeSingle2:i.push({id:e.cid,called:e.othernum,caller:e.callingnum});break;case g.CallType.CallTypeTemporary:r.push({id:e.cid,name:e.othernum})}});const s={number:t.employeeId,name:t.name,longitude:t.longitude,latitude:t.latitude,calls:i,conferences:r};return Promise.resolve(s)}))}getUserDetailByNumber1(e){return this._iceServer.getUserDetailByNumber1(e)}getOrgId(){return this._iceServer.getUserDetail().then(e=>Promise.resolve(e.monFlag)).catch(e=>Promise.reject(e))}startConference(e,t,i,r=!0){return this.startConferenceByNumber(e,t,i,r,ke.getInstance().currentNumber)}startConferenceByNumber(e,t,i,r=!0,s=ke.getInstance().number){let n=new lr(t,e,i,this._iceServer,this.alice,r);return n.start(s).then(()=>(this.conferences[n._sessionId]=n,n.stateChange.on(e=>{e.state==ji.Terminaled&&delete this.conferences[n._sessionId]}),Promise.resolve(n)))}enterConference(e){return this._iceServer.conferenceAddMember(e,this._userNumber)}startTempIntercom(e,t,i,r=ke.getInstance().currentNumber){return this._tempOutgoningIntercom=new gr(t,e,i,this._iceServer,this.alice),this._tempOutgoningIntercom.start(r).then(()=>Promise.resolve(this._tempOutgoningIntercom)),Promise.resolve(this._tempOutgoningIntercom)}startIntercom(e,t,i=ke.getInstance().currentNumber){return this._tempOutgoningIntercom=new gr(t,null,"",this._iceServer,this.alice),this._tempOutgoningIntercom.groupNumber=e,this._tempOutgoningIntercom.applySpeak(i).then(()=>Promise.resolve(this._tempOutgoningIntercom)),Promise.resolve(this._tempOutgoningIntercom)}startBroadcast(e,t,i,r=ke.getInstance().currentNumber){return this._tempOutgoningBroadcast=new ur(t,e,i,this._iceServer,this.alice),this._tempOutgoningBroadcast.start(r).then(()=>{this._tempOutgoningBroadcast.stateChange.on(e=>{e.state==Ji.Terminaled&&delete this.broadcasts[e.sender.sessionId]}),this.broadcasts[this._tempOutgoningBroadcast._sessionId]=this._tempOutgoningBroadcast;let e=this._tempOutgoningBroadcast;return this._tempOutgoningBroadcast=null,Promise.resolve(e)}).catch(e=>Promise.reject(e))}getUserSessions(e){return this._iceServer.GetUserSessions(e)}getDecoderDevices(){return this._iceServer.getDecoderDevices()}getDecoderDeviceConfig(e){return this._iceServer.getDecoderDeviceConfig(e)}getDecoderDeviceChannelState(e,t){return this._iceServer.getDecoderChannelState(e,t)}setDecoderDeviceWindows(e,t){return this._iceServer.setDecoderWindows(e,t)}uploadGisInfo(e,t,i){return this._iceServer.uploadGISInfo(e,t,i)}setGisTrace(e){return this._iceServer.setGisTrace(e)}cancelGisTrace(e){return this._iceServer.cancelGisTrace(e)}getGisPosition(e){return this._iceServer.getGisPosition(e)}getGisHistory(e,t,i){return this._iceServer.getGisHistory(e,t,i)}getGisInfoByRectangle(e,t,i,r,s){return this._iceServer.getGisInfoByRectangle(e,t,i,r,s)}getGisInfoByEllipse(e,t,i,r,s){return this._iceServer.getGisInfoByEllipse(e,t,i,r,s)}getOfflineMsg(e){return this._iceServer.getOfflineMsg(e)}setFileReceived(e,t){return this._iceServer.SetFileRecieved(e,t)}setMessageRecevied(e,t){return this._iceServer.SetMessageRecevied(e,t)}setUploadFileResult(e,t){return this._iceServer.SetUploadFileResult(e,t)}applyUploadFile(e,t,i){return this._iceServer.ApplyUploadFile(e,t,i)}previewCamera(e){return this.alice.previewCamera(e)}getBindPhoneInfo(){}getPlanInfo(){return this._iceServer.getPlanInfo()}startPlan(e){return this._iceServer.startPlan(e)}set handleMode(e){ke.getInstance().handleMode=e}get handleMode(){return ke.getInstance().handleMode}createShecduleConference(e,t,i,r){return this._iceServer.createShecduleConf(e,i,r,t).then(t=>{this._logger.warn("create scheduel result: "+t);let s=JSON.parse(t);const n={name:s.meeting_name,sessionId:s.meeting_cid,isVideo:i,startTime:r,members:e};return Promise.resolve(n)}).catch(e=>Promise.reject(e))}modifyShecduleConference(e){return this._iceServer.fixScheduleConf(e.sessionId,e.members,e.isVideo,e.startTime,e.name)}getScheduleConferences(){return this._iceServer.getScheduleConf().then(e=>{let t=JSON.parse(e).meetings,i=new Array;return null!=t&&t.forEach(e=>{let t=!1;"2"==e.media_type&&(t=!0);let r=new Date(e.start_time),s=new Array;e.members.split(",").forEach(e=>{s.push(e)});const n={name:e.meeting_name,sessionId:e.cid,isVideo:t,startTime:r,members:s};i.push(n)}),Promise.resolve(i)}).catch(e=>Promise.reject(e))}deleteScheduleConferences(e){return this._iceServer.deleteScheduleConf(e.sessionId)}getSmsGis(e){return this._iceServer.getSmsGis(e)}getSmsGisRepeat(e,t){return this._iceServer.getSmsGisRepeat(e,t)}get audioInputDeviceConfig(){return ke.getInstance().audioInputDeviceConfig}set audioInputDeviceConfig(e){ke.getInstance().audioInputDeviceConfig=e}get videoInputDeviceConfig(){return ke.getInstance().videoInputDeviceConfig}set videoInputDeviceConfig(e){ke.getInstance().videoInputDeviceConfig=e}getServerVersion(){return this._iceServer.getVersion()}getCompanyName(){return this._iceServer.getCompanyName()}}return function(e){e[e.IncomingCall=0]="IncomingCall",e[e.SessionStateChange=1]="SessionStateChange",e[e.RegistState=2]="RegistState",e[e.UserOnlineState=3]="UserOnlineState",e[e.UserCallState=4]="UserCallState",e[e.GisInfo=5]="GisInfo"}(er||(er={})),(tr=e.HandleMode||(e.HandleMode={}))[tr.Normal=0]="Normal",tr[tr.Left=1]="Left",tr[tr.Right=2]="Right",e.DispatcherClient=pr,e}({},ice);