ysyt-agent-sdk 1.1.22 → 1.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import A from"crypto";import e from"buffer";class t extends Error{constructor(A){super(A),Object.setPrototypeOf(this,new.target.prototype)}}class s extends t{constructor(A){super(A||"Unsupported content type.")}}class i extends t{constructor(A){super(A||"Request pending.")}}class n extends t{constructor(A){super(A||"Unspecified session description handler error.")}}class o extends t{constructor(){super("The session has terminated.")}}class r extends t{constructor(A){super(A||"An error occurred during state transition.")}}class a{constructor(A){this.incomingAckRequest=A}get request(){return this.incomingAckRequest.message}}class V{constructor(A){this.incomingByeRequest=A}get request(){return this.incomingByeRequest.message}accept(A){return this.incomingByeRequest.accept(A),Promise.resolve()}reject(A){return this.incomingByeRequest.reject(A),Promise.resolve()}}class c{constructor(A){this.incomingCancelRequest=A}get request(){return this.incomingCancelRequest}}class h{constructor(){this.listeners=new Array}addListener(A,e){const t=e=>{this.removeListener(t),A(e)};!0===(null==e?void 0:e.once)?this.listeners.push(t):this.listeners.push(A)}emit(A){this.listeners.slice().forEach(e=>e(A))}removeAllListeners(){this.listeners=[]}removeListener(A){this.listeners=this.listeners.filter(e=>e!==A)}on(A){return this.addListener(A)}off(A){return this.removeListener(A)}once(A){return this.addListener(A,{once:!0})}}class l{constructor(A){this.incomingInfoRequest=A}get request(){return this.incomingInfoRequest.message}accept(A){return this.incomingInfoRequest.accept(A),Promise.resolve()}reject(A){return this.incomingInfoRequest.reject(A),Promise.resolve()}}class g{constructor(A){this.parameters={};for(const e in A)A.hasOwnProperty(e)&&this.setParam(e,A[e])}setParam(A,e){A&&(this.parameters[A.toLowerCase()]=null==e?null:e.toString())}getParam(A){if(A)return this.parameters[A.toLowerCase()]}hasParam(A){return!(!A||void 0===this.parameters[A.toLowerCase()])}deleteParam(A){if(A=A.toLowerCase(),this.hasParam(A)){const e=this.parameters[A];return delete this.parameters[A],e}}clearParams(){this.parameters={}}}class q extends g{constructor(A,e,t){super(t),this.uri=A,this._displayName=e}get friendlyName(){return this.displayName||this.uri.aor}get displayName(){return this._displayName}set displayName(A){this._displayName=A}clone(){return new q(this.uri.clone(),this._displayName,JSON.parse(JSON.stringify(this.parameters)))}toString(){let A=this.displayName||"0"===this.displayName?'"'+this.displayName+'" ':"";A+="<"+this.uri.toString()+">";for(const e in this.parameters)this.parameters.hasOwnProperty(e)&&(A+=";"+e,null!==this.parameters[e]&&(A+="="+this.parameters[e]));return A}}class d extends g{constructor(A="sip",e,t,s,i,n){if(super(i||{}),this.headers={},!t)throw new TypeError('missing or invalid "host" parameter');for(const A in n)n.hasOwnProperty(A)&&this.setHeader(A,n[A]);this.raw={scheme:A,user:e,host:t,port:s},this.normal={scheme:A.toLowerCase(),user:e,host:t.toLowerCase(),port:s}}get scheme(){return this.normal.scheme}set scheme(A){this.raw.scheme=A,this.normal.scheme=A.toLowerCase()}get user(){return this.normal.user}set user(A){this.normal.user=this.raw.user=A}get host(){return this.normal.host}set host(A){this.raw.host=A,this.normal.host=A.toLowerCase()}get aor(){return this.normal.user+"@"+this.normal.host}get port(){return this.normal.port}set port(A){this.normal.port=this.raw.port=A}setHeader(A,e){this.headers[this.headerize(A)]=e instanceof Array?e:[e]}getHeader(A){if(A)return this.headers[this.headerize(A)]}hasHeader(A){return!!A&&!!this.headers.hasOwnProperty(this.headerize(A))}deleteHeader(A){if(A=this.headerize(A),this.headers.hasOwnProperty(A)){const e=this.headers[A];return delete this.headers[A],e}}clearHeaders(){this.headers={}}clone(){return new d(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(A){let e=A.scheme+":";A.scheme.toLowerCase().match("^sips?$")||(e+="//"),A.user&&(e+=this.escapeUser(A.user)+"@"),e+=A.host,(A.port||0===A.port)&&(e+=":"+A.port);for(const A in this.parameters)this.parameters.hasOwnProperty(A)&&(e+=";"+A,null!==this.parameters[A]&&(e+="="+this.parameters[A]));const t=[];for(const A in this.headers)if(this.headers.hasOwnProperty(A))for(const e in this.headers[A])this.headers[A].hasOwnProperty(e)&&t.push(A+"="+this.headers[A][e]);return t.length>0&&(e+="?"+t.join("&")),e}escapeUser(A){let e;try{e=decodeURIComponent(A)}catch(A){throw A}return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%2B/gi,"+").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}headerize(A){const e={"Call-Id":"Call-ID",Cseq:"CSeq","Min-Se":"Min-SE",Rack:"RAck",Rseq:"RSeq","Www-Authenticate":"WWW-Authenticate"},t=A.toLowerCase().replace(/_/g,"-").split("-"),s=t.length;let i="";for(let A=0;A<s;A++)0!==A&&(i+="-"),i+=t[A].charAt(0).toUpperCase()+t[A].substring(1);return e[i]&&(i=e[i]),i}}function u(A,e){if(A.scheme!==e.scheme)return!1;if(A.user!==e.user||A.host!==e.host||A.port!==e.port)return!1;if(!function(A,e){const t=Object.keys(A.parameters),s=Object.keys(e.parameters),i=t.filter(A=>s.includes(A));return!!i.every(t=>A.parameters[t]===e.parameters[t])&&(!!["user","ttl","method","transport"].every(t=>A.hasParam(t)&&e.hasParam(t)||!A.hasParam(t)&&!e.hasParam(t))&&!!["maddr"].every(t=>A.hasParam(t)&&e.hasParam(t)||!A.hasParam(t)&&!e.hasParam(t)))}(A,e))return!1;const t=Object.keys(A.headers),s=Object.keys(e.headers);if(0!==t.length||0!==s.length){if(t.length!==s.length)return!1;const i=t.filter(A=>s.includes(A));if(i.length!==s.length)return!1;if(!i.every(t=>A.headers[t].length&&e.headers[t].length&&A.headers[t][0]===e.headers[t][0]))return!1}return!0}function p(A,e,t){return t=t||" ",A.length>e?A:(e-=A.length,A+(t+=t.repeat(e)).slice(0,e))}class m extends Error{constructor(A,e,t,s){super(),this.message=A,this.expected=e,this.found=t,this.location=s,this.name="SyntaxError","function"==typeof Object.setPrototypeOf?Object.setPrototypeOf(this,m.prototype):this.__proto__=m.prototype,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,m)}static buildMessage(A,e){function t(A){return A.charCodeAt(0).toString(16).toUpperCase()}function s(A){return A.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,A=>"\\x0"+t(A)).replace(/[\x10-\x1F\x7F-\x9F]/g,A=>"\\x"+t(A))}function i(A){return A.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,A=>"\\x0"+t(A)).replace(/[\x10-\x1F\x7F-\x9F]/g,A=>"\\x"+t(A))}function n(A){switch(A.type){case"literal":return'"'+s(A.text)+'"';case"class":const e=A.parts.map(A=>Array.isArray(A)?i(A[0])+"-"+i(A[1]):i(A));return"["+(A.inverted?"^":"")+e+"]";case"any":return"any character";case"end":return"end of input";case"other":return A.description}}return"Expected "+function(A){const e=A.map(n);let t,s;if(e.sort(),e.length>0){for(t=1,s=1;t<e.length;t++)e[t-1]!==e[t]&&(e[s]=e[t],s++);e.length=s}switch(e.length){case 1:return e[0];case 2:return e[0]+" or "+e[1];default:return e.slice(0,-1).join(", ")+", or "+e[e.length-1]}}(A)+" but "+(((o=e)?'"'+s(o)+'"':"end of input")+" found.");var o}format(A){let e="Error: "+this.message;if(this.location){let t,s=null;for(t=0;t<A.length;t++)if(A[t].source===this.location.source){s=A[t].text.split(/\r\n|\n|\r/g);break}let i=this.location.start,n=this.location.source+":"+i.line+":"+i.column;if(s){let A=this.location.end,t=p("",i.line.toString().length," "),o=s[i.line-1],r=i.line===A.line?A.column:o.length+1;e+="\n --\x3e "+n+"\n"+t+" |\n"+i.line+" | "+o+"\n"+t+" | "+p("",i.column-1," ")+p("",r-i.column,"^")}else e+="\n at "+n}return e}}const C=function(A,e){const t={},s=(e=void 0!==e?e:{}).grammarSource,i={Contact:119,Name_Addr_Header:156,Record_Route:176,Request_Response:81,SIP_URI:45,Subscription_State:186,Supported:191,Require:182,Via:194,absoluteURI:84,Call_ID:118,Content_Disposition:130,Content_Length:135,Content_Type:136,CSeq:146,displayName:122,Event:149,From:151,host:52,Max_Forwards:154,Min_SE:213,Proxy_Authenticate:157,quoted_string:40,Refer_To:178,Replaces:179,Session_Expires:210,stun_URI:217,To:192,turn_URI:223,uuid:226,WWW_Authenticate:209,challenge:158,sipfrag:230,Referred_By:231};let n=119;const o=["\r\n",E("\r\n",!1),/^[0-9]/,I([["0","9"]],!1,!1),/^[a-zA-Z]/,I([["a","z"],["A","Z"]],!1,!1),/^[0-9a-fA-F]/,I([["0","9"],["a","f"],["A","F"]],!1,!1),/^[\0-\xFF]/,I([["\0","ÿ"]],!1,!1),/^["]/,I(['"'],!1,!1)," ",E(" ",!1),"\t",E("\t",!1),/^[a-zA-Z0-9]/,I([["a","z"],["A","Z"],["0","9"]],!1,!1),";",E(";",!1),"/",E("/",!1),"?",E("?",!1),":",E(":",!1),"@",E("@",!1),"&",E("&",!1),"=",E("=",!1),"+",E("+",!1),"$",E("$",!1),",",E(",",!1),"-",E("-",!1),"_",E("_",!1),".",E(".",!1),"!",E("!",!1),"~",E("~",!1),"*",E("*",!1),"'",E("'",!1),"(",E("(",!1),")",E(")",!1),"%",E("%",!1),function(){return" "},function(){return":"},/^[!-~]/,I([["!","~"]],!1,!1),/^[\x80-\uFFFF]/,I([["",""]],!1,!1),/^[\x80-\xBF]/,I([["","¿"]],!1,!1),/^[a-f]/,I([["a","f"]],!1,!1),"`",E("`",!1),"<",E("<",!1),">",E(">",!1),"\\",E("\\",!1),"[",E("[",!1),"]",E("]",!1),"{",E("{",!1),"}",E("}",!1),function(){return"*"},function(){return"/"},function(){return"="},function(){return"("},function(){return")"},function(){return">"},function(){return"<"},function(){return","},function(){return";"},function(){return":"},function(){return'"'},/^[!-']/,I([["!","'"]],!1,!1),/^[*-[]/,I([["*","["]],!1,!1),/^[\]-~]/,I([["]","~"]],!1,!1),function(A){return A},/^[#-[]/,I([["#","["]],!1,!1),/^[\0-\t]/,I([["\0","\t"]],!1,!1),/^[\v-\f]/,I([["\v","\f"]],!1,!1),/^[\x0E-\x7F]/,I([["",""]],!1,!1),function(){(e=e||{data:{}}).data.uri=new d(e.data.scheme,e.data.user,e.data.host,e.data.port),delete e.data.scheme,delete e.data.user,delete e.data.host,delete e.data.host_type,delete e.data.port},function(){(e=e||{data:{}}).data.uri=new d(e.data.scheme,e.data.user,e.data.host,e.data.port,e.data.uri_params,e.data.uri_headers),delete e.data.scheme,delete e.data.user,delete e.data.host,delete e.data.host_type,delete e.data.port,delete e.data.uri_params,"SIP_URI"===e.startRule&&(e.data=e.data.uri)},"sips",E("sips",!0),"sip",E("sip",!0),function(A){(e=e||{data:{}}).data.scheme=A},function(){(e=e||{data:{}}).data.user=decodeURIComponent(p().slice(0,-1))},function(){(e=e||{data:{}}).data.password=p()},function(){return(e=e||{data:{}}).data.host=p(),e.data.host},function(){return(e=e||{data:{}}).data.host_type="domain",p()},/^[a-zA-Z0-9_\-]/,I([["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),/^[a-zA-Z0-9\-]/,I([["a","z"],["A","Z"],["0","9"],"-"],!1,!1),function(){return(e=e||{data:{}}).data.host_type="IPv6",p()},"::",E("::",!1),function(){return(e=e||{data:{}}).data.host_type="IPv6",p()},function(){return(e=e||{data:{}}).data.host_type="IPv4",p()},"25",E("25",!1),/^[0-5]/,I([["0","5"]],!1,!1),"2",E("2",!1),/^[0-4]/,I([["0","4"]],!1,!1),"1",E("1",!1),/^[1-9]/,I([["1","9"]],!1,!1),function(A){return e=e||{data:{}},A=parseInt(A.join("")),e.data.port=A,A},"transport=",E("transport=",!0),"udp",E("udp",!0),"tcp",E("tcp",!0),"sctp",E("sctp",!0),"tls",E("tls",!0),function(A){(e=e||{data:{}}).data.uri_params||(e.data.uri_params={}),e.data.uri_params.transport=A.toLowerCase()},"user=",E("user=",!0),"phone",E("phone",!0),"ip",E("ip",!0),function(A){(e=e||{data:{}}).data.uri_params||(e.data.uri_params={}),e.data.uri_params.user=A.toLowerCase()},"method=",E("method=",!0),function(A){(e=e||{data:{}}).data.uri_params||(e.data.uri_params={}),e.data.uri_params.method=A},"ttl=",E("ttl=",!0),function(A){(e=e||{data:{}}).data.params||(e.data.params={}),e.data.params.ttl=A},"maddr=",E("maddr=",!0),function(A){(e=e||{data:{}}).data.uri_params||(e.data.uri_params={}),e.data.uri_params.maddr=A},"lr",E("lr",!0),function(){(e=e||{data:{}}).data.uri_params||(e.data.uri_params={}),e.data.uri_params.lr=void 0},function(A,t){(e=e||{data:{}}).data.uri_params||(e.data.uri_params={}),t=null===t?void 0:t[1],e.data.uri_params[A.toLowerCase()]=t},function(A,t){A=A.join("").toLowerCase(),t=t.join(""),(e=e||{data:{}}).data.uri_headers||(e.data.uri_headers={}),e.data.uri_headers[A]?e.data.uri_headers[A].push(t):e.data.uri_headers[A]=[t]},function(){"Refer_To"===(e=e||{data:{}}).startRule&&(e.data.uri=new d(e.data.scheme,e.data.user,e.data.host,e.data.port,e.data.uri_params,e.data.uri_headers),delete e.data.scheme,delete e.data.user,delete e.data.host,delete e.data.host_type,delete e.data.port,delete e.data.uri_params)},"//",E("//",!1),function(){(e=e||{data:{}}).data.scheme=p()},E("SIP",!0),function(){(e=e||{data:{}}).data.sip_version=p()},"INVITE",E("INVITE",!1),"ACK",E("ACK",!1),"VXACH",E("VXACH",!1),"OPTIONS",E("OPTIONS",!1),"BYE",E("BYE",!1),"CANCEL",E("CANCEL",!1),"REGISTER",E("REGISTER",!1),"SUBSCRIBE",E("SUBSCRIBE",!1),"NOTIFY",E("NOTIFY",!1),"REFER",E("REFER",!1),"PUBLISH",E("PUBLISH",!1),function(){return(e=e||{data:{}}).data.method=p(),e.data.method},function(A){(e=e||{data:{}}).data.status_code=parseInt(A.join(""))},function(){(e=e||{data:{}}).data.reason_phrase=p()},function(){(e=e||{data:{}}).data=p()},function(){var A,t;for(t=(e=e||{data:{}}).data.multi_header.length,A=0;A<t;A++)if(null===e.data.multi_header[A].parsed){e.data=null;break}null!==e.data?e.data=e.data.multi_header:e.data=-1},function(){var A;(e=e||{data:{}}).data.multi_header||(e.data.multi_header=[]);try{A=new q(e.data.uri,e.data.displayName,e.data.params),delete e.data.uri,delete e.data.displayName,delete e.data.params}catch(e){A=null}e.data.multi_header.push({position:a,offset:C().start.offset,parsed:A})},function(A){'"'===(A=p().trim())[0]&&(A=A.substring(1,A.length-1)),(e=e||{data:{}}).data.displayName=A},"q",E("q",!0),function(A){(e=e||{data:{}}).data.params||(e.data.params={}),e.data.params.q=A},"expires",E("expires",!0),function(A){(e=e||{data:{}}).data.params||(e.data.params={}),e.data.params.expires=A},function(A){return parseInt(A.join(""))},"0",E("0",!1),function(){return parseFloat(p())},function(A,t){(e=e||{data:{}}).data.params||(e.data.params={}),t=null===t?void 0:t[1],e.data.params[A.toLowerCase()]=t},"render",E("render",!0),"session",E("session",!0),"icon",E("icon",!0),"alert",E("alert",!0),function(){"Content_Disposition"===(e=e||{data:{}}).startRule&&(e.data.type=p().toLowerCase())},"handling",E("handling",!0),"optional",E("optional",!0),"required",E("required",!0),function(A){(e=e||{data:{}}).data=parseInt(A.join(""))},function(){(e=e||{data:{}}).data=p()},"text",E("text",!0),"image",E("image",!0),"audio",E("audio",!0),"video",E("video",!0),"application",E("application",!0),"message",E("message",!0),"multipart",E("multipart",!0),"x-",E("x-",!0),function(A){(e=e||{data:{}}).data.value=parseInt(A.join(""))},function(A){(e=e||{data:{}}).data=A},function(A){(e=e||{data:{}}).data.event=A.toLowerCase()},function(){var A=(e=e||{data:{}}).data.tag;e.data=new q(e.data.uri,e.data.displayName,e.data.params),A&&e.data.setParam("tag",A)},"tag",E("tag",!0),function(A){(e=e||{data:{}}).data.tag=A},function(A){(e=e||{data:{}}).data=parseInt(A.join(""))},function(A){(e=e||{data:{}}).data=A},function(){(e=e||{data:{}}).data=new q(e.data.uri,e.data.displayName,e.data.params)},"digest",E("Digest",!0),"realm",E("realm",!0),function(A){(e=e||{data:{}}).data.realm=A},"domain",E("domain",!0),"nonce",E("nonce",!0),function(A){(e=e||{data:{}}).data.nonce=A},"opaque",E("opaque",!0),function(A){(e=e||{data:{}}).data.opaque=A},"stale",E("stale",!0),"true",E("true",!0),function(){(e=e||{data:{}}).data.stale=!0},"false",E("false",!0),function(){(e=e||{data:{}}).data.stale=!1},"algorithm",E("algorithm",!0),"md5",E("MD5",!0),"md5-sess",E("MD5-sess",!0),function(A){(e=e||{data:{}}).data.algorithm=A.toUpperCase()},"qop",E("qop",!0),"auth-int",E("auth-int",!0),"auth",E("auth",!0),function(A){(e=e||{data:{}}).data.qop||(e.data.qop=[]),e.data.qop.push(A.toLowerCase())},function(A){(e=e||{data:{}}).data.value=parseInt(A.join(""))},function(){var A,t;for(t=(e=e||{data:{}}).data.multi_header.length,A=0;A<t;A++)if(null===e.data.multi_header[A].parsed){e.data=null;break}null!==e.data?e.data=e.data.multi_header:e.data=-1},function(){var A;(e=e||{data:{}}).data.multi_header||(e.data.multi_header=[]);try{A=new q(e.data.uri,e.data.displayName,e.data.params),delete e.data.uri,delete e.data.displayName,delete e.data.params}catch(e){A=null}e.data.multi_header.push({position:a,offset:C().start.offset,parsed:A})},function(){(e=e||{data:{}}).data=new q(e.data.uri,e.data.displayName,e.data.params)},function(){(e=e||{data:{}}).data.replaces_from_tag&&e.data.replaces_to_tag||(e.data=-1)},function(){(e=e||{data:{}}).data={call_id:e.data}},"from-tag",E("from-tag",!0),function(A){(e=e||{data:{}}).data.replaces_from_tag=A},"to-tag",E("to-tag",!0),function(A){(e=e||{data:{}}).data.replaces_to_tag=A},"early-only",E("early-only",!0),function(){(e=e||{data:{}}).data.early_only=!0},function(A,e){return e},function(A,e){return function(A,e){return[A].concat(e)}(A,e)},function(A){"Require"===(e=e||{data:{}}).startRule&&(e.data=A||[])},function(A){(e=e||{data:{}}).data.value=parseInt(A.join(""))},"active",E("active",!0),"pending",E("pending",!0),"terminated",E("terminated",!0),function(){(e=e||{data:{}}).data.state=p()},"reason",E("reason",!0),function(A){e=e||{data:{}},void 0!==A&&(e.data.reason=A)},function(A){e=e||{data:{}},void 0!==A&&(e.data.expires=A)},"retry_after",E("retry_after",!0),function(A){e=e||{data:{}},void 0!==A&&(e.data.retry_after=A)},"deactivated",E("deactivated",!0),"probation",E("probation",!0),"rejected",E("rejected",!0),"timeout",E("timeout",!0),"giveup",E("giveup",!0),"noresource",E("noresource",!0),"invariant",E("invariant",!0),function(A){"Supported"===(e=e||{data:{}}).startRule&&(e.data=A||[])},function(){var A=(e=e||{data:{}}).data.tag;e.data=new q(e.data.uri,e.data.displayName,e.data.params),A&&e.data.setParam("tag",A)},"ttl",E("ttl",!0),function(A){(e=e||{data:{}}).data.ttl=A},"maddr",E("maddr",!0),function(A){(e=e||{data:{}}).data.maddr=A},"received",E("received",!0),function(A){(e=e||{data:{}}).data.received=A},"branch",E("branch",!0),function(A){(e=e||{data:{}}).data.branch=A},"rport",E("rport",!0),function(A){e=e||{data:{}},void 0!==A&&(e.data.rport=A.join(""))},function(A){(e=e||{data:{}}).data.protocol=A},E("UDP",!0),E("TCP",!0),E("TLS",!0),E("SCTP",!0),function(A){(e=e||{data:{}}).data.transport=A},function(){(e=e||{data:{}}).data.host=p()},function(A){(e=e||{data:{}}).data.port=parseInt(A.join(""))},function(A){return parseInt(A.join(""))},function(A){"Session_Expires"===(e=e||{data:{}}).startRule&&(e.data.deltaSeconds=A)},"refresher",E("refresher",!1),"uas",E("uas",!1),"uac",E("uac",!1),function(A){"Session_Expires"===(e=e||{data:{}}).startRule&&(e.data.refresher=A)},function(A){"Min_SE"===(e=e||{data:{}}).startRule&&(e.data=A)},"stuns",E("stuns",!0),"stun",E("stun",!0),function(A){(e=e||{data:{}}).data.scheme=A},function(A){(e=e||{data:{}}).data.host=A},"?transport=",E("?transport=",!1),"turns",E("turns",!0),"turn",E("turn",!0),function(A){(e=e||{data:{}}).data.transport=A},function(){(e=e||{data:{}}).data=p()},"Referred-By",E("Referred-By",!1),"b",E("b",!1),"cid",E("cid",!1)],r=[B('2 ""6 7!'),B('4"""5!7#'),B('4$""5!7%'),B('4&""5!7\''),B(";'.# &;("),B('4(""5!7)'),B('4*""5!7+'),B('2,""6,7-'),B('2.""6.7/'),B('40""5!71'),B('22""6273. &24""6475.} &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'),B(";).# &;,"),B('2F""6F7G.} &2H""6H7I.q &2J""6J7K.e &2L""6L7M.Y &2N""6N7O.M &2P""6P7Q.A &2R""6R7S.5 &2T""6T7U.) &2V""6V7W'),B('%%2X""6X7Y/5#;#/,$;#/#$+#)(#\'#("\'#&\'#/"!&,)'),B('%%$;$0#*;$&/,#; /#$+")("\'#&\'#." &"/=#$;$/�#*;$&&&#/\'$8":Z" )("\'#&\'#'),B(';.." &"'),B("%$;'.# &;(0)*;'.# &;(&/?#28\"\"6879/0$;//'$8#:[# )(#'#(\"'#&'#"),B('%%$;2/�#*;2&&&#/g#$%$;.0#*;.&/,#;2/#$+")("\'#&\'#0=*%$;.0#*;.&/,#;2/#$+")("\'#&\'#&/#$+")("\'#&\'#/"!&,)'),B('4\\""5!7].# &;3'),B('4^""5!7_'),B('4`""5!7a'),B(';!.) &4b""5!7c'),B('%$;). &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&&&#/"!&,)'),B('%$;). &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&&&#/"!&,)'),B('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.) &;\'.# &;('),B('%$;).ī &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&&&#/"!&,)'),B("%;//?#2P\"\"6P7Q/0$;//'$8#:t# )(#'#(\"'#&'#"),B("%;//?#24\"\"6475/0$;//'$8#:u# )(#'#(\"'#&'#"),B("%;//?#2>\"\"6>7?/0$;//'$8#:v# )(#'#(\"'#&'#"),B("%;//?#2T\"\"6T7U/0$;//'$8#:w# )(#'#(\"'#&'#"),B("%;//?#2V\"\"6V7W/0$;//'$8#:x# )(#'#(\"'#&'#"),B('%2h""6h7i/0#;//\'$8":y" )("\'#&\'#'),B('%;//6#2f""6f7g/\'$8":z" )("\'#&\'#'),B("%;//?#2D\"\"6D7E/0$;//'$8#:{# )(#'#(\"'#&'#"),B("%;//?#22\"\"6273/0$;//'$8#:|# )(#'#(\"'#&'#"),B("%;//?#28\"\"6879/0$;//'$8#:}# )(#'#(\"'#&'#"),B("%;//0#;&/'$8\":~\" )(\"'#&'#"),B("%;&/0#;//'$8\":~\" )(\"'#&'#"),B("%;=/T#$;G.) &;K.# &;F0/*;G.) &;K.# &;F&/,$;>/#$+#)(#'#(\"'#&'#"),B('4""5!7.A &4""5!7.5 &4""5!7.) &;3.# &;.'),B("%%;//Q#;&/H$$;J.# &;K0)*;J.# &;K&/,$;&/#$+$)($'#(#'#(\"'#&'#/\"!&,)"),B("%;//]#;&/T$%$;J.# &;K0)*;J.# &;K&/\"!&,)/1$;&/($8$:
$!!)($'#(#'#(\"'#&'#"),B(';..G &2L""6L7M.; &4""5!7./ &4""5!7.# &;3'),B('%2j""6j7k/J#4""5!7.5 &4""5!7.) &4""5!7/#$+")("\'#&\'#'),B("%;N/M#28\"\"6879/>$;O.\" &\"/0$;S/'$8$:$ )($'#(#'#(\"'#&'#"),B("%;N/d#28\"\"6879/U$;O.\" &\"/G$;S/>$;_/5$;l.\" &\"/'$8&:& )(&'#(%'#($'#(#'#(\"'#&'#"),B('%3""5$7.) &3""5#7/\' 8!:!! )'),B('%;P/]#%28""6879/,#;R/#$+")("\'#&\'#." &"/6$2:""6:7;/\'$8#:# )(#\'#("\'#&\'#'),B("$;+.) &;-.# &;Q/2#0/*;+.) &;-.# &;Q&&&#"),B('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'),B('%$;+._ &;-.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!:! )'),B('%;T/J#%28""6879/,#;^/#$+")("\'#&\'#." &"/#$+")("\'#&\'#'),B("%;U.) &;\\.# &;X/& 8!:! )"),B('%$%;V/2#2J""6J7K/#$+")("\'#&\'#0<*%;V/2#2J""6J7K/#$+")("\'#&\'#&/D#;W/;$2J""6J7K." &"/\'$8#:# )(#\'#("\'#&\'#'),B('$4""5!7/,#0)*4""5!7&&&#'),B('%4$""5!7%/?#$4""5!70)*4""5!7&/#$+")("\'#&\'#'),B('%2l""6l7m/?#;Y/6$2n""6n7o/\'$8#:# )(#\'#("\'#&\'#'),B('%%;Z/³#28""6879/¤$;Z/$28""6879/$;Z/$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+-)(-\'#(,\'#(+\'#(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.ސ &%2""67/¤#;Z/$28""6879/$;Z/$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+,)(,\'#(+\'#(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.۹ &%2""67/#;Z/$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+*)(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.ٺ &%2""67/t#;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+()((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.ؓ &%2""67/\\#;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+&)(&\'#(%\'#($\'#(#\'#("\'#&\'#.ׄ &%2""67/D#;Z/;$28""6879/,$;[/#$+$)($\'#(#\'#("\'#&\'#.֍ &%2""67/,#;[/#$+")("\'#&\'#.ծ &%2""67/,#;Z/#$+")("\'#&\'#.Տ &%;Z/#2""67/$;Z/$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$++)(+\'#(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.Ӈ &%;Z/ª#%28""6879/,#;Z/#$+")("\'#&\'#." &"/$2""67/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+*)(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.а &%;Z/¹#%28""6879/,#;Z/#$+")("\'#&\'#." &"/$%28""6879/,#;Z/#$+")("\'#&\'#." &"/k$2""67/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+))()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.Ί &%;Z/È#%28""6879/,#;Z/#$+")("\'#&\'#." &"/¡$%28""6879/,#;Z/#$+")("\'#&\'#." &"/z$%28""6879/,#;Z/#$+")("\'#&\'#." &"/S$2""67/D$;Z/;$28""6879/,$;[/#$+()((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.˕ &%;Z/×#%28""6879/,#;Z/#$+")("\'#&\'#." &"/°$%28""6879/,#;Z/#$+")("\'#&\'#." &"/$%28""6879/,#;Z/#$+")("\'#&\'#." &"/b$%28""6879/,#;Z/#$+")("\'#&\'#." &"/;$2""67/,$;[/#$+\')(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.ȑ &%;Z/þ#%28""6879/,#;Z/#$+")("\'#&\'#." &"/×$%28""6879/,#;Z/#$+")("\'#&\'#." &"/°$%28""6879/,#;Z/#$+")("\'#&\'#." &"/$%28""6879/,#;Z/#$+")("\'#&\'#." &"/b$%28""6879/,#;Z/#$+")("\'#&\'#." &"/;$2""67/,$;Z/#$+()((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.Ħ &%;Z/Ĝ#%28""6879/,#;Z/#$+")("\'#&\'#." &"/õ$%28""6879/,#;Z/#$+")("\'#&\'#." &"/Î$%28""6879/,#;Z/#$+")("\'#&\'#." &"/§$%28""6879/,#;Z/#$+")("\'#&\'#." &"/$%28""6879/,#;Z/#$+")("\'#&\'#." &"/Y$%28""6879/,#;Z/#$+")("\'#&\'#." &"/2$2""67/#$+()((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#/& 8!: ! )'),B('%;#/M#;#." &"/?$;#." &"/1$;#." &"/#$+$)($\'#(#\'#("\'#&\'#'),B("%;Z/;#28\"\"6879/,$;Z/#$+#)(#'#(\"'#&'#.# &;\\"),B("%;]/o#2J\"\"6J7K/`$;]/W$2J\"\"6J7K/H$;]/?$2J\"\"6J7K/0$;]/'$8':¡' )(''#(&'#(%'#($'#(#'#(\"'#&'#"),B('%2¢""6¢7£/2#4¤""5!7¥/#$+")("\'#&\'#. &%2¦""6¦7§/;#4¨""5!7©/,$;!/#$+#)(#\'#("\'#&\'#.j &%2ª""6ª7«/5#;!/,$;!/#$+#)(#\'#("\'#&\'#.B &%4¬""5!7/,#;!/#$+")("\'#&\'#.# &;!'),B('%%;!." &"/[#;!." &"/M$;!." &"/?$;!." &"/1$;!." &"/#$+%)(%\'#($\'#(#\'#("\'#&\'#/\' 8!:®!! )'),B('$%22""6273/,#;`/#$+")("\'#&\'#0<*%22""6273/,#;`/#$+")("\'#&\'#&'),B(";a.A &;b.; &;c.5 &;d./ &;e.) &;f.# &;g"),B('%3¯""5*7°/a#3±""5#7².G &3³""5#7´.; &3µ""5$7¶./ &3·""5#7¸.# &;6/($8":¹"! )("\'#&\'#'),B('%3º""5%7»/I#3¼""5%7½./ &3¾""5"7¿.# &;6/($8":À"! )("\'#&\'#'),B('%3Á""5\'7Â/1#;/($8":Ã"! )("\'#&\'#'),B('%3Ä""5$7Å/1#;ð/($8":Æ"! )("\'#&\'#'),B('%3Ç""5&7È/1#;T/($8":É"! )("\'#&\'#'),B('%3Ê""5"7Ë/N#%2>""6>7?/,#;6/#$+")("\'#&\'#." &"/\'$8":Ì" )("\'#&\'#'),B('%;h/P#%2>""6>7?/,#;i/#$+")("\'#&\'#." &"/)$8":Í""! )("\'#&\'#'),B('%$;j/�#*;j&&&#/"!&,)'),B('%$;j/�#*;j&&&#/"!&,)'),B(";k.) &;+.# &;-"),B('2l""6l7m.e &2n""6n7o.Y &24""6475.M &28""6879.A &2<""6<7=.5 &2@""6@7A.) &2B""6B7C'),B('%26""6677/n#;m/e$$%2<""6<7=/,#;m/#$+")("\'#&\'#0<*%2<""6<7=/,#;m/#$+")("\'#&\'#&/#$+#)(#\'#("\'#&\'#'),B('%;n/A#2>""6>7?/2$;o/)$8#:Î#"" )(#\'#("\'#&\'#'),B("$;p.) &;+.# &;-/2#0/*;p.) &;+.# &;-&&&#"),B("$;p.) &;+.# &;-0/*;p.) &;+.# &;-&"),B('2l""6l7m.e &2n""6n7o.Y &24""6475.M &26""6677.A &28""6879.5 &2@""6@7A.) &2B""6B7C'),B(";.# &;r"),B("%;/G#;'/>$;s/5$;'/,$;/#$+%)(%'#($'#(#'#(\"'#&'#"),B(";M.# &;t"),B("%;/E#28\"\"6879/6$;u.# &;x/'$8#:Ï# )(#'#(\"'#&'#"),B('%;v.# &;w/J#%26""6677/,#;/#$+")("\'#&\'#." &"/#$+")("\'#&\'#'),B('%2Ð""6Ð7Ñ/:#;/1$;w." &"/#$+#)(#\'#("\'#&\'#'),B('%24""6475/,#;{/#$+")("\'#&\'#'),B("%;z/3#$;y0#*;y&/#$+\")(\"'#&'#"),B(";*.) &;+.# &;-"),B(';+. &;-. &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'),B('%;|/e#$%24""6475/,#;|/#$+")("\'#&\'#0<*%24""6475/,#;|/#$+")("\'#&\'#&/#$+")("\'#&\'#'),B('%$;~0#*;~&/e#$%22""6273/,#;}/#$+")("\'#&\'#0<*%22""6273/,#;}/#$+")("\'#&\'#&/#$+")("\'#&\'#'),B("$;~0#*;~&"),B(';+.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'),B('%%;"/#$;".G &;!.A &2@""6@7A.5 &2F""6F7G.) &2J""6J7K0M*;".G &;!.A &2@""6@7A.5 &2F""6F7G.) &2J""6J7K&/#$+")("\'#&\'#/& 8!:Ò! )'),B(";.# &;"),B('%%;O/2#2:""6:7;/#$+")("\'#&\'#." &"/,#;S/#$+")("\'#&\'#." &"'),B('$;+. &;-.} &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&&&#'),B("$;y0#*;y&"),B('%3""5#7Ó/q#24""6475/b$$;!/�#*;!&&&#/L$2J""6J7K/=$$;!/�#*;!&&&#/\'$8%:Ô% )(%\'#($\'#(#\'#("\'#&\'#'),B('2Õ""6Õ7Ö'),B('2×""6×7Ø'),B('2Ù""6Ù7Ú'),B('2Û""6Û7Ü'),B('2Ý""6Ý7Þ'),B('2ß""6ß7à'),B('2á""6á7â'),B('2ã""6ã7ä'),B('2å""6å7æ'),B('2ç""6ç7è'),B('2é""6é7ê'),B("%;
.Y &;.S &;.M &;.G &;.A &;.; &;.5 &;./ &;.) &;.# &;6/& 8!:ë! )"),B("%;/G#;'/>$;/5$;'/,$;/#$+%)(%'#($'#(#'#(\"'#&'#"),B("%;/' 8!:ì!! )"),B("%;!/5#;!/,$;!/#$+#)(#'#(\"'#&'#"),B("%$;*.A &;+.; &;-.5 &;3./ &;4.) &;'.# &;(0G*;*.A &;+.; &;-.5 &;3./ &;4.) &;'.# &;(&/& 8!:í! )"),B("%;¶/Y#$%;A/,#;¶/#$+\")(\"'#&'#06*%;A/,#;¶/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B('%;9/N#%2:""6:7;/,#;9/#$+")("\'#&\'#." &"/\'$8":î" )("\'#&\'#'),B("%;:.c &%;/Y#$%;A/,#;/#$+\")(\"'#&'#06*%;A/,#;/#$+\")(\"'#&'#&/#$+\")(\"'#&'#/& 8!:ï! )"),B("%;L.# &;/]#$%;B/,#;/#$+\")(\"'#&'#06*%;B/,#;/#$+\")(\"'#&'#&/'$8\":ð\" )(\"'#&'#"),B("%;.\" &\"/>#;@/5$;M/,$;?/#$+$)($'#(#'#(\"'#&'#"),B("%%;6/Y#$%;./,#;6/#$+\")(\"'#&'#06*%;./,#;6/#$+\")(\"'#&'#&/#$+\")(\"'#&'#.# &;H/' 8!:ñ!! )"),B(";.) &;.# &; "),B("%3ò\"\"5!7ó/:#;</1$;/($8#:ô#! )(#'#(\"'#&'#"),B("%3õ\"\"5'7ö/:#;</1$;/($8#:÷#! )(#'#(\"'#&'#"),B("%$;!/�#*;!&&&#/' 8!:ø!! )"),B('%2ù""6ù7ú/o#%2J""6J7K/M#;!." &"/?$;!." &"/1$;!." &"/#$+$)($\'#(#\'#("\'#&\'#." &"/\'$8":û" )("\'#&\'#'),B('%;6/J#%;</,#;¡/#$+")("\'#&\'#." &"/)$8":ü""! )("\'#&\'#'),B(";6.) &;T.# &;H"),B("%;£/Y#$%;B/,#;¤/#$+\")(\"'#&'#06*%;B/,#;¤/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B('%3ý""5&7þ.G &3ÿ""5\'7Ā.; &3ā""5$7Ă./ &3ă""5%7Ą.# &;6/& 8!:ą! )'),B(";¥.# &; "),B('%3Ć""5(7ć/M#;</D$3Ĉ""5(7ĉ./ &3Ċ""5(7ċ.# &;6/#$+#)(#\'#("\'#&\'#'),B("%;6/Y#$%;A/,#;6/#$+\")(\"'#&'#06*%;A/,#;6/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B("%$;!/�#*;!&&&#/' 8!:Č!! )"),B("%;©/& 8!:č! )"),B("%;ª/k#;;/b$;¯/Y$$%;B/,#;°/#$+\")(\"'#&'#06*%;B/,#;°/#$+\")(\"'#&'#&/#$+$)($'#(#'#(\"'#&'#"),B(";«.# &;¬"),B('3Ď""5$7ď.S &3Đ""5%7đ.G &3Ē""5%7ē.; &3Ĕ""5%7ĕ./ &3Ė""5+7ė.# &;'),B('3Ę""5\'7ę./ &3Ě""5)7ě.# &;'),B(";6.# &;®"),B('%3Ĝ""5"7ĝ/,#;6/#$+")("\'#&\'#'),B(";.# &;6"),B("%;6/5#;</,$;±/#$+#)(#'#(\"'#&'#"),B(";6.# &;H"),B("%;³/5#;./,$;/#$+#)(#'#(\"'#&'#"),B("%$;!/�#*;!&&&#/' 8!:Ğ!! )"),B("%;/' 8!:ğ!! )"),B('%;¶/^#$%;B/,#; /#$+")("\'#&\'#06*%;B/,#; /#$+")("\'#&\'#&/($8":Ġ"!!)("\'#&\'#'),B('%%;7/e#$%2J""6J7K/,#;7/#$+")("\'#&\'#0<*%2J""6J7K/,#;7/#$+")("\'#&\'#&/#$+")("\'#&\'#/"!&,)'),B("%;L.# &;/]#$%;B/,#;¸/#$+\")(\"'#&'#06*%;B/,#;¸/#$+\")(\"'#&'#&/'$8\":ġ\" )(\"'#&'#"),B(";¹.# &; "),B("%3Ģ\"\"5#7ģ/:#;</1$;6/($8#:Ĥ#! )(#'#(\"'#&'#"),B("%$;!/�#*;!&&&#/' 8!:ĥ!! )"),B("%;/' 8!:Ħ!! )"),B("%$;0#*;&/x#;@/o$;M/f$;?/]$$%;B/,#; /#$+\")(\"'#&'#06*%;B/,#; /#$+\")(\"'#&'#&/'$8%:ħ% )(%'#($'#(#'#(\"'#&'#"),B(";¾"),B("%3Ĩ\"\"5&7ĩ/k#;./b$;Á/Y$$%;A/,#;Á/#$+\")(\"'#&'#06*%;A/,#;Á/#$+\")(\"'#&'#&/#$+$)($'#(#'#(\"'#&'#.# &;¿"),B("%;6/k#;./b$;À/Y$$%;A/,#;À/#$+\")(\"'#&'#06*%;A/,#;À/#$+\")(\"'#&'#&/#$+$)($'#(#'#(\"'#&'#"),B("%;6/;#;</2$;6.# &;H/#$+#)(#'#(\"'#&'#"),B(";Â.G &;Ä.A &;Æ.; &;È.5 &;É./ &;Ê.) &;Ë.# &;À"),B("%3Ī\"\"5%7ī/5#;</,$;Ã/#$+#)(#'#(\"'#&'#"),B("%;I/' 8!:Ĭ!! )"),B("%3ĭ\"\"5&7Į/#;</$;D/
$;Å/|$$%$;'/�#*;'&&&#/,#;Å/#$+\")(\"'#&'#0C*%$;'/�#*;'&&&#/,#;Å/#$+\")(\"'#&'#&/,$;E/#$+&)(&'#(%'#($'#(#'#(\"'#&'#"),B(";t.# &;w"),B("%3į\"\"5%7İ/5#;</,$;Ç/#$+#)(#'#(\"'#&'#"),B("%;I/' 8!:ı!! )"),B("%3IJ\"\"5&7ij/:#;</1$;I/($8#:Ĵ#! )(#'#(\"'#&'#"),B('%3ĵ""5%7Ķ/]#;</T$%3ķ""5$7ĸ/& 8!:Ĺ! ).4 &%3ĺ""5%7Ļ/& 8!:ļ! )/#$+#)(#\'#("\'#&\'#'),B('%3Ľ""5)7ľ/R#;</I$3Ŀ""5#7ŀ./ &3Ł""5(7ł.# &;6/($8#:Ń#! )(#\'#("\'#&\'#'),B('%3ń""5#7Ņ/#;</$;D/$%;Ì/e#$%2D""6D7E/,#;Ì/#$+")("\'#&\'#0<*%2D""6D7E/,#;Ì/#$+")("\'#&\'#&/#$+")("\'#&\'#/,$;E/#$+%)(%\'#($\'#(#\'#("\'#&\'#'),B('%3ņ""5(7Ň./ &3ň""5$7ʼn.# &;6/\' 8!:Ŋ!! )'),B("%;6/Y#$%;A/,#;6/#$+\")(\"'#&'#06*%;A/,#;6/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B("%;Ï/G#;./>$;Ï/5$;./,$;/#$+%)(%'#($'#(#'#(\"'#&'#"),B("%$;!/�#*;!&&&#/' 8!:ŋ!! )"),B("%;Ñ/]#$%;A/,#;Ñ/#$+\")(\"'#&'#06*%;A/,#;Ñ/#$+\")(\"'#&'#&/'$8\":Ō\" )(\"'#&'#"),B("%;/]#$%;B/,#; /#$+\")(\"'#&'#06*%;B/,#; /#$+\")(\"'#&'#&/'$8\":ō\" )(\"'#&'#"),B('%;L.O &;.I &%;@." &"/:#;t/1$;?." &"/#$+#)(#\'#("\'#&\'#/]#$%;B/,#; /#$+")("\'#&\'#06*%;B/,#; /#$+")("\'#&\'#&/\'$8":Ŏ" )("\'#&\'#'),B("%;Ô/]#$%;B/,#;Õ/#$+\")(\"'#&'#06*%;B/,#;Õ/#$+\")(\"'#&'#&/'$8\":ŏ\" )(\"'#&'#"),B("%;/& 8!:Ő! )"),B('%3ő""5(7Œ/:#;</1$;6/($8#:œ#! )(#\'#("\'#&\'#.g &%3Ŕ""5&7ŕ/:#;</1$;6/($8#:Ŗ#! )(#\'#("\'#&\'#.: &%3ŗ""5*7Ř/& 8!:ř! ).# &; '),B('%%;6/k#$%;A/2#;6/)$8":Ś""$ )("\'#&\'#0<*%;A/2#;6/)$8":Ś""$ )("\'#&\'#&/)$8":ś""! )("\'#&\'#." &"/\' 8!:Ŝ!! )'),B("%;Ø/Y#$%;A/,#;Ø/#$+\")(\"'#&'#06*%;A/,#;Ø/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B("%;/Y#$%;B/,#; /#$+\")(\"'#&'#06*%;B/,#; /#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B("%$;!/�#*;!&&&#/' 8!:ŝ!! )"),B("%;Û/Y#$%;B/,#;Ü/#$+\")(\"'#&'#06*%;B/,#;Ü/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B('%3Ş""5&7ş.; &3Š""5\'7š./ &3Ţ""5*7ţ.# &;6/& 8!:Ť! )'),B("%3ť\"\"5&7Ŧ/:#;</1$;Ý/($8#:ŧ#! )(#'#(\"'#&'#.} &%3õ\"\"5'7ö/:#;</1$;/($8#:Ũ#! )(#'#(\"'#&'#.P &%3ũ\"\"5+7Ū/:#;</1$;/($8#:ū#! )(#'#(\"'#&'#.# &; "),B('3Ŭ""5+7ŭ.k &3Ů""5)7ů._ &3Ű""5(7ű.S &3Ų""5\'7ų.G &3Ŵ""5&7ŵ.; &3Ŷ""5*7ŷ./ &3Ÿ""5)7Ź.# &;6'),B(';1." &"'),B('%%;6/k#$%;A/2#;6/)$8":Ś""$ )("\'#&\'#0<*%;A/2#;6/)$8":Ś""$ )("\'#&\'#&/)$8":ś""! )("\'#&\'#." &"/\' 8!:ź!! )'),B("%;L.# &;/]#$%;B/,#;á/#$+\")(\"'#&'#06*%;B/,#;á/#$+\")(\"'#&'#&/'$8\":Ż\" )(\"'#&'#"),B(";¹.# &; "),B("%;ã/Y#$%;A/,#;ã/#$+\")(\"'#&'#06*%;A/,#;ã/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B("%;ê/k#;./b$;í/Y$$%;B/,#;ä/#$+\")(\"'#&'#06*%;B/,#;ä/#$+\")(\"'#&'#&/#$+$)($'#(#'#(\"'#&'#"),B(";å.; &;æ.5 &;ç./ &;è.) &;é.# &; "),B("%3ż\"\"5#7Ž/:#;</1$;ð/($8#:ž#! )(#'#(\"'#&'#"),B("%3ſ\"\"5%7ƀ/:#;</1$;T/($8#:Ɓ#! )(#'#(\"'#&'#"),B("%3Ƃ\"\"5(7ƃ/F#;</=$;\\.) &;Y.# &;X/($8#:Ƅ#! )(#'#(\"'#&'#"),B("%3ƅ\"\"5&7Ɔ/:#;</1$;6/($8#:Ƈ#! )(#'#(\"'#&'#"),B("%3ƈ\"\"5%7Ɖ/A#;</8$$;!0#*;!&/($8#:Ɗ#! )(#'#(\"'#&'#"),B("%;ë/G#;;/>$;6/5$;;/,$;ì/#$+%)(%'#($'#(#'#(\"'#&'#"),B('%3""5#7Ó.# &;6/\' 8!:Ƌ!! )'),B('%3±""5#7ƌ.G &3³""5#7ƍ.; &3·""5#7Ǝ./ &3µ""5$7Ə.# &;6/\' 8!:Ɛ!! )'),B('%;î/D#%;C/,#;ï/#$+")("\'#&\'#." &"/#$+")("\'#&\'#'),B("%;U.) &;\\.# &;X/& 8!:Ƒ! )"),B('%%;!." &"/[#;!." &"/M$;!." &"/?$;!." &"/1$;!." &"/#$+%)(%\'#($\'#(#\'#("\'#&\'#/\' 8!:ƒ!! )'),B('%%;!/?#;!." &"/1$;!." &"/#$+#)(#\'#("\'#&\'#/\' 8!:Ɠ!! )'),B(";¾"),B('%;/^#$%;B/,#;ó/#$+")("\'#&\'#06*%;B/,#;ó/#$+")("\'#&\'#&/($8":Ɣ"!!)("\'#&\'#'),B(";ô.# &; "),B('%2ƕ""6ƕ7Ɩ/L#;</C$2Ɨ""6Ɨ7Ƙ.) &2ƙ""6ƙ7ƚ/($8#:ƛ#! )(#\'#("\'#&\'#'),B('%;/^#$%;B/,#; /#$+")("\'#&\'#06*%;B/,#; /#$+")("\'#&\'#&/($8":Ɯ"!!)("\'#&\'#'),B("%;6/5#;0/,$;÷/#$+#)(#'#(\"'#&'#"),B("$;2.) &;4.# &;.0/*;2.) &;4.# &;.&"),B("$;%0#*;%&"),B("%;ú/;#28\"\"6879/,$;û/#$+#)(#'#(\"'#&'#"),B('%3Ɲ""5%7ƞ.) &3Ɵ""5$7Ơ/\' 8!:ơ!! )'),B('%;ü/J#%28""6879/,#;^/#$+")("\'#&\'#." &"/#$+")("\'#&\'#'),B("%;\\.) &;X.# &;/' 8!:Ƣ!! )"),B(';".S &;!.M &2F""6F7G.A &2J""6J7K.5 &2H""6H7I.) &2N""6N7O'),B('2L""6L7M. &2B""6B7C. &2<""6<7=.} &2R""6R7S.q &2T""6T7U.e &2V""6V7W.Y &2P""6P7Q.M &2@""6@7A.A &2D""6D7E.5 &22""6273.) &2>""6>7?'),B('%;Ā/b#28""6879/S$;û/J$%2ƣ""6ƣ7Ƥ/,#;ì/#$+")("\'#&\'#." &"/#$+$)($\'#(#\'#("\'#&\'#'),B('%3ƥ""5%7Ʀ.) &3Ƨ""5$7ƨ/\' 8!:ơ!! )'),B('%3±""5#7².6 &3³""5#7´.* &$;+0#*;+&/\' 8!:Ʃ!! )'),B("%;Ą/#2F\"\"6F7G/x$;ă/o$2F\"\"6F7G/`$;ă/W$2F\"\"6F7G/H$;ă/?$2F\"\"6F7G/0$;ą/'$8):ƪ) )()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#"),B("%;#/>#;#/5$;#/,$;#/#$+$)($'#(#'#(\"'#&'#"),B("%;ă/,#;ă/#$+\")(\"'#&'#"),B("%;ă/5#;ă/,$;ă/#$+#)(#'#(\"'#&'#"),B("%;q/T#$;m0#*;m&/D$%; /,#;ø/#$+\")(\"'#&'#.\" &\"/#$+#)(#'#(\"'#&'#"),B('%2ƫ""6ƫ7Ƭ.) &2ƭ""6ƭ7Ʈ/w#;0/n$;Ĉ/e$$%;B/2#;ĉ.# &; /#$+")("\'#&\'#0<*%;B/2#;ĉ.# &; /#$+")("\'#&\'#&/#$+$)($\'#(#\'#("\'#&\'#'),B(";.# &;L"),B("%2Ư\"\"6Ư7ư/5#;</,$;Ċ/#$+#)(#'#(\"'#&'#"),B("%;D/S#;,/J$2:\"\"6:7;/;$;,.# &;T/,$;E/#$+%)(%'#($'#(#'#(\"'#&'#")];let a=0,V=0;const c=[{line:1,column:1}];let h,l=0,g=[],u=0;if(void 0!==e.startRule){if(!(e.startRule in i))throw new Error("Can't start parsing from rule \""+e.startRule+'".');n=i[e.startRule]}function p(){return A.substring(V,a)}function C(){return M(V,a)}function E(A,e){return{type:"literal",text:A,ignoreCase:e}}function I(A,e,t){return{type:"class",parts:A,inverted:e,ignoreCase:t}}function w(e){let t,s=c[e];if(s)return s;for(t=e-1;!c[t];)t--;for(s=c[t],s={line:s.line,column:s.column};t<e;)10===A.charCodeAt(t)?(s.line++,s.column=1):s.column++,t++;return c[e]=s,s}function M(A,e){const t=w(A),i=w(e);return{source:s,start:{offset:A,line:t.line,column:t.column},end:{offset:e,line:i.line,column:i.column}}}function f(A){a<l||(a>l&&(l=a,g=[]),g.push(A))}function B(A){return A.split("").map(A=>A.charCodeAt(0)-32)}if(e.data={},h=function e(s){const i=r[s];let n=0;const c=[];let h=i.length;const l=[],g=[];let q;for(;;){for(;n<h;)switch(i[n]){case 0:g.push(o[i[n+1]]),n+=2;break;case 1:g.push(void 0),n++;break;case 2:g.push(null),n++;break;case 3:g.push(t),n++;break;case 4:g.push([]),n++;break;case 5:g.push(a),n++;break;case 6:g.pop(),n++;break;case 7:a=g.pop(),n++;break;case 8:g.length-=i[n+1],n+=2;break;case 9:g.splice(-2,1),n++;break;case 10:g[g.length-2].push(g.pop()),n++;break;case 11:g.push(g.splice(g.length-i[n+1],i[n+1])),n+=2;break;case 12:g.push(A.substring(g.pop(),a)),n++;break;case 13:l.push(h),c.push(n+3+i[n+1]+i[n+2]),g[g.length-1]?(h=n+3+i[n+1],n+=3):(h=n+3+i[n+1]+i[n+2],n+=3+i[n+1]);break;case 14:l.push(h),c.push(n+3+i[n+1]+i[n+2]),g[g.length-1]===t?(h=n+3+i[n+1],n+=3):(h=n+3+i[n+1]+i[n+2],n+=3+i[n+1]);break;case 15:l.push(h),c.push(n+3+i[n+1]+i[n+2]),g[g.length-1]!==t?(h=n+3+i[n+1],n+=3):(h=n+3+i[n+1]+i[n+2],n+=3+i[n+1]);break;case 16:g[g.length-1]!==t?(l.push(h),c.push(n),h=n+2+i[n+1],n+=2):n+=2+i[n+1];break;case 17:l.push(h),c.push(n+3+i[n+1]+i[n+2]),A.length>a?(h=n+3+i[n+1],n+=3):(h=n+3+i[n+1]+i[n+2],n+=3+i[n+1]);break;case 18:l.push(h),c.push(n+4+i[n+2]+i[n+3]),A.substr(a,o[i[n+1]].length)===o[i[n+1]]?(h=n+4+i[n+2],n+=4):(h=n+4+i[n+2]+i[n+3],n+=4+i[n+2]);break;case 19:l.push(h),c.push(n+4+i[n+2]+i[n+3]),A.substr(a,o[i[n+1]].length).toLowerCase()===o[i[n+1]]?(h=n+4+i[n+2],n+=4):(h=n+4+i[n+2]+i[n+3],n+=4+i[n+2]);break;case 20:l.push(h),c.push(n+4+i[n+2]+i[n+3]),o[i[n+1]].test(A.charAt(a))?(h=n+4+i[n+2],n+=4):(h=n+4+i[n+2]+i[n+3],n+=4+i[n+2]);break;case 21:g.push(A.substr(a,i[n+1])),a+=i[n+1],n+=2;break;case 22:g.push(o[i[n+1]]),a+=o[i[n+1]].length,n+=2;break;case 23:g.push(t),0===u&&f(o[i[n+1]]),n+=2;break;case 24:V=g[g.length-1-i[n+1]],n+=2;break;case 25:V=a,n++;break;case 26:q=i.slice(n+4,n+4+i[n+3]).map(function(A){return g[g.length-1-A]}),g.splice(g.length-i[n+2],i[n+2],o[i[n+1]].apply(null,q)),n+=4+i[n+3];break;case 27:g.push(e(i[n+1])),n+=2;break;case 28:u++,n++;break;case 29:u--,n++;break;default:throw new Error("Invalid opcode: "+i[n]+".")}if(!(l.length>0))break;h=l.pop(),n=c.pop()}return g[0]}(n),h!==t&&a===A.length)return h;throw h!==t&&a<A.length&&f({type:"end"}),Q=g,S=l<A.length?A.charAt(l):null,T=l<A.length?M(l,l+1):M(l,l),new m(m.buildMessage(Q,S),Q,S,T);var Q,S,T};var E;!function(A){A.parse=function(A,e){const t={startRule:e};try{C(A,t)}catch(A){t.data=-1}return t.data},A.nameAddrHeaderParse=function(e){const t=A.parse(e,"Name_Addr_Header");return-1!==t?t:void 0},A.URIParse=function(e){const t=A.parse(e,"SIP_URI");return-1!==t?t:void 0}}(E=E||(E={}));const I={100:"Trying",180:"Ringing",181:"Call Is Being Forwarded",182:"Queued",183:"Session Progress",199:"Early Dialog Terminated",200:"OK",202:"Accepted",204:"No Notification",300:"Multiple Choices",301:"Moved Permanently",302:"Moved Temporarily",305:"Use Proxy",380:"Alternative Service",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",410:"Gone",412:"Conditional Request Failed",413:"Request Entity Too Large",414:"Request-URI Too Long",415:"Unsupported Media Type",416:"Unsupported URI Scheme",417:"Unknown Resource-Priority",420:"Bad Extension",421:"Extension Required",422:"Session Interval Too Small",423:"Interval Too Brief",428:"Use Identity Header",429:"Provide Referrer Identity",430:"Flow Failed",433:"Anonymity Disallowed",436:"Bad Identity-Info",437:"Unsupported Certificate",438:"Invalid Identity Header",439:"First Hop Lacks Outbound Support",440:"Max-Breadth Exceeded",469:"Bad Info Package",470:"Consent Needed",478:"Unresolvable Destination",480:"Temporarily Unavailable",481:"Call/Transaction Does Not Exist",482:"Loop Detected",483:"Too Many Hops",484:"Address Incomplete",485:"Ambiguous",486:"Busy Here",487:"Request Terminated",488:"Not Acceptable Here",489:"Bad Event",491:"Request Pending",493:"Undecipherable",494:"Security Agreement Required",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Server Time-out",505:"Version Not Supported",513:"Message Too Large",580:"Precondition Failure",600:"Busy Everywhere",603:"Decline",604:"Does Not Exist Anywhere",606:"Not Acceptable"};function w(A,e=32){let t="";for(let s=0;s<A;s++){t+=Math.floor(Math.random()*e).toString(e)}return t}function M(A){return I[A]||""}function f(){return w(10)}function B(A){const e={"Call-Id":"Call-ID",Cseq:"CSeq","Min-Se":"Min-SE",Rack:"RAck",Rseq:"RSeq","Www-Authenticate":"WWW-Authenticate"},t=A.toLowerCase().replace(/_/g,"-").split("-"),s=t.length;let i="";for(let A=0;A<s;A++)0!==A&&(i+="-"),i+=t[A].charAt(0).toUpperCase()+t[A].substring(1);return e[i]&&(i=e[i]),i}function Q(A){return encodeURIComponent(A).replace(/%[A-F\d]{2}/g,"U").length}class S{constructor(){this.headers={}}addHeader(A,e){const t={raw:e};A=B(A),this.headers[A]?this.headers[A].push(t):this.headers[A]=[t]}getHeader(A){const e=this.headers[B(A)];if(e)return e[0]?e[0].raw:void 0}getHeaders(A){const e=this.headers[B(A)],t=[];if(!e)return[];for(const A of e)t.push(A.raw);return t}hasHeader(A){return!!this.headers[B(A)]}parseHeader(A,e=0){if(A=B(A),!this.headers[A])return;if(e>=this.headers[A].length)return;const t=this.headers[A][e],s=t.raw;if(t.parsed)return t.parsed;const i=E.parse(s,A.replace(/-/g,"_"));return-1===i?void this.headers[A].splice(e,1):(t.parsed=i,i)}s(A,e=0){return this.parseHeader(A,e)}setHeader(A,e){this.headers[B(A)]=[{raw:e}]}toString(){return this.data}}class T extends S{constructor(){super()}}class y extends S{constructor(){super()}}class R{constructor(A,e,t,s,i,n,o){this.headers={},this.extraHeaders=[],this.options=R.getDefaultOptions(),i&&(this.options=Object.assign(Object.assign({},this.options),i),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()),o&&(this.body={body:o.content,contentType:o.contentType}),this.method=A,this.ruri=e.clone(),this.fromURI=t.clone(),this.fromTag=this.options.fromTag?this.options.fromTag:f(),this.from=R.makeNameAddrHeader(this.fromURI,this.options.fromDisplayName,this.fromTag),this.toURI=s.clone(),this.toTag=this.options.toTag,this.to=R.makeNameAddrHeader(this.toURI,this.options.toDisplayName,this.toTag),this.callId=this.options.callId?this.options.callId:this.options.callIdPrefix+w(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(A,e,t){const s={};return t&&(s.tag=t),new q(A,e,s)}getHeader(A){const e=this.headers[B(A)];if(e){if(e[0])return e[0]}else{const e=new RegExp("^\\s*"+A+"\\s*:","i");for(const A of this.extraHeaders)if(e.test(A))return A.substring(A.indexOf(":")+1).trim()}}getHeaders(A){const e=[],t=this.headers[B(A)];if(t)for(const A of t)e.push(A);else{const t=new RegExp("^\\s*"+A+"\\s*:","i");for(const A of this.extraHeaders)t.test(A)&&e.push(A.substring(A.indexOf(":")+1).trim())}return e}hasHeader(A){if(this.headers[B(A)])return!0;{const e=new RegExp("^\\s*"+A+"\\s*:","i");for(const A of this.extraHeaders)if(e.test(A))return!0}return!1}setHeader(A,e){this.headers[B(A)]=e instanceof Array?e:[e]}setViaHeader(A,e){this.options.hackViaTcp&&(e="TCP");let t="SIP/2.0/"+e;t+=" "+this.options.viaHost+";branch="+A,this.options.forceRport&&(t+=";rport"),this.setHeader("via",t),this.branch=A}toString(){let A="";A+=this.method+" "+this.ruri.toRaw()+" SIP/2.0\r\n";for(const e in this.headers)if(this.headers[e])for(const t of this.headers[e])A+=e+": "+t+"\r\n";for(const e of this.extraHeaders)A+=e.trim()+"\r\n";return A+="Supported: "+this.options.optionTags.join(", ")+"\r\n",A+="User-Agent: "+this.options.userAgentString+"\r\n",this.body?"string"==typeof this.body?(A+="Content-Length: "+Q(this.body)+"\r\n\r\n",A+=this.body):this.body.body&&this.body.contentType?(A+="Content-Type: "+this.body.contentType+"\r\n",A+="Content-Length: "+Q(this.body.body)+"\r\n\r\n",A+=this.body.body):A+="Content-Length: 0\r\n\r\n":A+="Content-Length: 0\r\n\r\n",A}}function D(A){return"application/sdp"===A?"session":"render"}function U(A){const e="string"==typeof A?A:A.body,t="string"==typeof A?"application/sdp":A.contentType;return{contentDisposition:D(t),contentType:t,content:e}}function k(A){return!(!A||"string"!=typeof A.content||"string"!=typeof A.contentType||void 0!==A.contentDisposition)||"string"==typeof A.contentDisposition}function G(A){let e,t,s;if(A instanceof T&&A.body){const i=A.parseHeader("Content-Disposition");e=i?i.type:void 0,t=A.parseHeader("Content-Type"),s=A.body}if(A instanceof y&&A.body){const i=A.parseHeader("Content-Disposition");e=i?i.type:void 0,t=A.parseHeader("Content-Type"),s=A.body}if(A instanceof R&&A.body)if(e=A.getHeader("Content-Disposition"),t=A.getHeader("Content-Type"),"string"==typeof A.body){if(!t)throw new Error("Header content type header does not equal body content type.");s=A.body}else{if(t&&t!==A.body.contentType)throw new Error("Header content type header does not equal body content type.");t=A.body.contentType,s=A.body.body}if(k(A)&&(e=A.contentDisposition,t=A.contentType,s=A.content),s){if(t&&!e&&(e=D(t)),!e)throw new Error("Content disposition undefined.");if(!t)throw new Error("Content type undefined.");return{contentDisposition:e,contentType:t,content:s}}}var F,Y;!function(A){A.Initial="Initial",A.Early="Early",A.AckWait="AckWait",A.Confirmed="Confirmed",A.Terminated="Terminated"}(F=F||(F={})),function(A){A.Initial="Initial",A.HaveLocalOffer="HaveLocalOffer",A.HaveRemoteOffer="HaveRemoteOffer",A.Stable="Stable",A.Closed="Closed"}(Y=Y||(Y={}));const Z=500,O=5e3,v={T1:Z,T2:4e3,T4:O,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 x extends t{constructor(A){super(A||"Transaction state error.")}}var N;!function(A){A.ACK="ACK",A.BYE="BYE",A.CANCEL="CANCEL",A.INFO="INFO",A.INVITE="INVITE",A.MESSAGE="MESSAGE",A.NOTIFY="NOTIFY",A.OPTIONS="OPTIONS",A.REGISTER="REGISTER",A.UPDATE="UPDATE",A.SUBSCRIBE="SUBSCRIBE",A.PUBLISH="PUBLISH",A.REFER="REFER",A.PRACK="PRACK"}(N=N||(N={}));const K=[N.ACK,N.BYE,N.CANCEL,N.INFO,N.INVITE,N.MESSAGE,N.NOTIFY,N.OPTIONS,N.PRACK,N.REFER,N.REGISTER,N.SUBSCRIBE];class b{constructor(A){this.incomingMessageRequest=A}get request(){return this.incomingMessageRequest.message}accept(A){return this.incomingMessageRequest.accept(A),Promise.resolve()}reject(A){return this.incomingMessageRequest.reject(A),Promise.resolve()}}let J=class{constructor(A){this.incomingNotifyRequest=A}get request(){return this.incomingNotifyRequest.message}accept(A){return this.incomingNotifyRequest.accept(A),Promise.resolve()}reject(A){return this.incomingNotifyRequest.reject(A),Promise.resolve()}};class L{constructor(A,e){this.incomingReferRequest=A,this.session=e}get referTo(){const A=this.incomingReferRequest.message.parseHeader("refer-to");if(!(A instanceof q))throw new Error("Failed to parse Refer-To header.");return A}get referredBy(){return this.incomingReferRequest.message.getHeader("referred-by")}get replaces(){const A=this.referTo.uri.getHeader("replaces");return A instanceof Array?A[0]:A}get request(){return this.incomingReferRequest.message}accept(A={statusCode:202}){return this.incomingReferRequest.accept(A),Promise.resolve()}reject(A){return this.incomingReferRequest.reject(A),Promise.resolve()}makeInviter(A){if(this.inviter)return this.inviter;const e=this.referTo.uri.clone();e.clearHeaders();const t=((A=A||{}).extraHeaders||[]).slice(),s=this.replaces;s&&t.push("Replaces: "+decodeURIComponent(s));const i=this.referredBy;return i&&t.push("Referred-By: "+i),A.extraHeaders=t,this.inviter=this.session.userAgent._makeInviter(e,A),this.inviter._referred=this.session,this.session._referral=this.inviter,this.inviter}}var H,j;!function(A){A.Initial="Initial",A.Establishing="Establishing",A.Established="Established",A.Terminating="Terminating",A.Terminated="Terminated"}(H=H||(H={}));class W{constructor(A,e={}){this.pendingReinvite=!1,this.pendingReinviteAck=!1,this._state=H.Initial,this.delegate=e.delegate,this._stateEventEmitter=new h,this._userAgent=A}dispose(){switch(this.logger.log(`Session ${this.id} in state ${this._state} is being disposed`),delete this.userAgent._sessions[this.id],this._sessionDescriptionHandler&&this._sessionDescriptionHandler.close(),this.state){case H.Initial:case H.Establishing:break;case H.Established:return new Promise(A=>{this._bye({onAccept:()=>A(),onRedirect:()=>A(),onReject:()=>A()})});case H.Terminating:case H.Terminated:break;default:throw new Error("Unknown state.")}return Promise.resolve()}get assertedIdentity(){return this._assertedIdentity}get dialog(){return this._dialog}get id(){return this._id}get replacee(){return this._replacee}get sessionDescriptionHandler(){return this._sessionDescriptionHandler}get sessionDescriptionHandlerFactory(){return this.userAgent.configuration.sessionDescriptionHandlerFactory}get sessionDescriptionHandlerModifiers(){return this._sessionDescriptionHandlerModifiers||[]}set sessionDescriptionHandlerModifiers(A){this._sessionDescriptionHandlerModifiers=A.slice()}get sessionDescriptionHandlerOptions(){return this._sessionDescriptionHandlerOptions||{}}set sessionDescriptionHandlerOptions(A){this._sessionDescriptionHandlerOptions=Object.assign({},A)}get sessionDescriptionHandlerModifiersReInvite(){return this._sessionDescriptionHandlerModifiersReInvite||[]}set sessionDescriptionHandlerModifiersReInvite(A){this._sessionDescriptionHandlerModifiersReInvite=A.slice()}get sessionDescriptionHandlerOptionsReInvite(){return this._sessionDescriptionHandlerOptionsReInvite||{}}set sessionDescriptionHandlerOptionsReInvite(A){this._sessionDescriptionHandlerOptionsReInvite=Object.assign({},A)}get state(){return this._state}get stateChange(){return this._stateEventEmitter}get userAgent(){return this._userAgent}bye(A={}){let e="Session.bye() may only be called if established session.";switch(this.state){case H.Initial:"function"==typeof this.cancel?(e+=" However Inviter.invite() has not yet been called.",e+=" Perhaps you should have called Inviter.cancel()?"):"function"==typeof this.reject&&(e+=" However Invitation.accept() has not yet been called.",e+=" Perhaps you should have called Invitation.reject()?");break;case H.Establishing:"function"==typeof this.cancel?(e+=" However a dialog does not yet exist.",e+=" Perhaps you should have called Inviter.cancel()?"):"function"==typeof this.reject&&(e+=" However Invitation.accept() has not yet been called (or not yet resolved).",e+=" Perhaps you should have called Invitation.reject()?");break;case H.Established:{const e=A.requestDelegate,t=this.copyRequestOptions(A.requestOptions);return this._bye(e,t)}case H.Terminating:e+=" However this session is already terminating.","function"==typeof this.cancel?e+=" Perhaps you have already called Inviter.cancel()?":"function"==typeof this.reject&&(e+=" Perhaps you have already called Session.bye()?");break;case H.Terminated:e+=" However this session is already terminated.";break;default:throw new Error("Unknown state")}return this.logger.error(e),Promise.reject(new Error(`Invalid session state ${this.state}`))}info(A={}){if(this.state!==H.Established){const A="Session.info() may only be called if established session.";return this.logger.error(A),Promise.reject(new Error(`Invalid session state ${this.state}`))}const e=A.requestDelegate,t=this.copyRequestOptions(A.requestOptions);return this._info(e,t)}invite(A={}){if(this.logger.log("Session.invite"),this.state!==H.Established)return Promise.reject(new Error(`Invalid session state ${this.state}`));if(this.pendingReinvite)return Promise.reject(new i("Reinvite in progress. Please wait until complete, then try again."));this.pendingReinvite=!0,A.sessionDescriptionHandlerModifiers&&(this.sessionDescriptionHandlerModifiersReInvite=A.sessionDescriptionHandlerModifiers),A.sessionDescriptionHandlerOptions&&(this.sessionDescriptionHandlerOptionsReInvite=A.sessionDescriptionHandlerOptions);const e={onAccept:e=>{const t=G(e.message);if(!t)return this.logger.error("Received 2xx response to re-INVITE without a session description"),this.ackAndBye(e,400,"Missing session description"),this.stateTransition(H.Terminated),void(this.pendingReinvite=!1);if(A.withoutSdp){const s={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptionsReInvite,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiersReInvite};this.setOfferAndGetAnswer(t,s).then(A=>{e.ack({body:A})}).catch(A=>{this.logger.error("Failed to handle offer in 2xx response to re-INVITE"),this.logger.error(A.message),this.state===H.Terminated?e.ack():(this.ackAndBye(e,488,"Bad Media Description"),this.stateTransition(H.Terminated))}).then(()=>{this.pendingReinvite=!1,A.requestDelegate&&A.requestDelegate.onAccept&&A.requestDelegate.onAccept(e)})}else{const s={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptionsReInvite,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiersReInvite};this.setAnswer(t,s).then(()=>{e.ack()}).catch(A=>{this.logger.error("Failed to handle answer in 2xx response to re-INVITE"),this.logger.error(A.message),this.state!==H.Terminated?(this.ackAndBye(e,488,"Bad Media Description"),this.stateTransition(H.Terminated)):e.ack()}).then(()=>{this.pendingReinvite=!1,A.requestDelegate&&A.requestDelegate.onAccept&&A.requestDelegate.onAccept(e)})}},onProgress:A=>{},onRedirect:A=>{},onReject:e=>{this.logger.warn("Received a non-2xx response to re-INVITE"),this.pendingReinvite=!1,A.withoutSdp?A.requestDelegate&&A.requestDelegate.onReject&&A.requestDelegate.onReject(e):this.rollbackOffer().catch(A=>{if(this.logger.error("Failed to rollback offer on non-2xx response to re-INVITE"),this.logger.error(A.message),this.state!==H.Terminated){if(!this.dialog)throw new Error("Dialog undefined.");const A=[];A.push("Reason: "+this.getReasonHeaderValue(500,"Internal Server Error")),this.dialog.bye(void 0,{extraHeaders:A}),this.stateTransition(H.Terminated)}}).then(()=>{A.requestDelegate&&A.requestDelegate.onReject&&A.requestDelegate.onReject(e)})},onTrying:A=>{}},t=A.requestOptions||{};if(t.extraHeaders=(t.extraHeaders||[]).slice(),t.extraHeaders.push("Allow: "+K.toString()),t.extraHeaders.push("Contact: "+this._contact),A.withoutSdp){if(!this.dialog)throw this.pendingReinvite=!1,new Error("Dialog undefined.");return Promise.resolve(this.dialog.invite(e,t))}const s={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptionsReInvite,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiersReInvite};return this.getOffer(s).then(A=>{if(!this.dialog)throw this.pendingReinvite=!1,new Error("Dialog undefined.");return t.body=A,this.dialog.invite(e,t)}).catch(A=>{throw this.logger.error(A.message),this.logger.error("Failed to send re-INVITE"),this.pendingReinvite=!1,A})}message(A={}){if(this.state!==H.Established){const A="Session.message() may only be called if established session.";return this.logger.error(A),Promise.reject(new Error(`Invalid session state ${this.state}`))}const e=A.requestDelegate,t=this.copyRequestOptions(A.requestOptions);return this._message(e,t)}refer(A,e={}){if(this.state!==H.Established){const A="Session.refer() may only be called if established session.";return this.logger.error(A),Promise.reject(new Error(`Invalid session state ${this.state}`))}if(A instanceof W&&!A.dialog){const A="Session.refer() may only be called with session which is established. You are perhaps attempting to attended transfer to a target for which there is not dialog yet established. Perhaps you are attempting a 'semi-attended' tansfer? Regardless, this is not supported. The recommended approached is to check to see if the target Session is in the Established state before calling refer(); if the state is not Established you may proceed by falling back using a URI as the target (blind transfer).";return this.logger.error(A),Promise.reject(new Error(`Invalid session state ${this.state}`))}const t=e.requestDelegate,s=this.copyRequestOptions(e.requestOptions);return s.extraHeaders=s.extraHeaders?s.extraHeaders.concat(this.referExtraHeaders(this.referToString(A))):this.referExtraHeaders(this.referToString(A)),this._refer(e.onNotify,t,s)}_bye(A,e){if(!this.dialog)return Promise.reject(new Error("Session dialog undefined."));const t=this.dialog;switch(t.sessionState){case F.Initial:case F.Early:throw new Error(`Invalid dialog state ${t.sessionState}`);case F.AckWait:return this.stateTransition(H.Terminating),new Promise(s=>{t.delegate={onAck:()=>{const i=t.bye(A,e);return this.stateTransition(H.Terminated),s(i),Promise.resolve()},onAckTimeout:()=>{const i=t.bye(A,e);this.stateTransition(H.Terminated),s(i)}}});case F.Confirmed:{const s=t.bye(A,e);return this.stateTransition(H.Terminated),Promise.resolve(s)}case F.Terminated:throw new Error(`Invalid dialog state ${t.sessionState}`);default:throw new Error("Unrecognized state.")}}_info(A,e){return this.dialog?Promise.resolve(this.dialog.info(A,e)):Promise.reject(new Error("Session dialog undefined."))}_message(A,e){return this.dialog?Promise.resolve(this.dialog.message(A,e)):Promise.reject(new Error("Session dialog undefined."))}_refer(A,e,t){return this.dialog?(this.onNotify=A,Promise.resolve(this.dialog.refer(e,t))):Promise.reject(new Error("Session dialog undefined."))}ackAndBye(A,e,t){A.ack();const s=[];e&&s.push("Reason: "+this.getReasonHeaderValue(e,t)),A.session.bye(void 0,{extraHeaders:s})}onAckRequest(A){if(this.logger.log("Session.onAckRequest"),this.state!==H.Established&&this.state!==H.Terminating)return this.logger.error(`ACK received while in state ${this.state}, dropping request`),Promise.resolve();const e=this.dialog;if(!e)throw new Error("Dialog undefined.");const t={sessionDescriptionHandlerOptions:this.pendingReinviteAck?this.sessionDescriptionHandlerOptionsReInvite:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.pendingReinviteAck?this._sessionDescriptionHandlerModifiersReInvite:this._sessionDescriptionHandlerModifiers};if(this.delegate&&this.delegate.onAck){const e=new a(A);this.delegate.onAck(e)}switch(this.pendingReinviteAck=!1,e.signalingState){case Y.Initial:{this.logger.error(`Invalid signaling state ${e.signalingState}.`);const A=["Reason: "+this.getReasonHeaderValue(488,"Bad Media Description")];return e.bye(void 0,{extraHeaders:A}),this.stateTransition(H.Terminated),Promise.resolve()}case Y.Stable:{const s=G(A.message);return s?"render"===s.contentDisposition?(this._renderbody=s.content,this._rendertype=s.contentType,Promise.resolve()):"session"!==s.contentDisposition?Promise.resolve():this.setAnswer(s,t).catch(A=>{this.logger.error(A.message);const t=["Reason: "+this.getReasonHeaderValue(488,"Bad Media Description")];e.bye(void 0,{extraHeaders:t}),this.stateTransition(H.Terminated)}):Promise.resolve()}case Y.HaveLocalOffer:{this.logger.error(`Invalid signaling state ${e.signalingState}.`);const A=["Reason: "+this.getReasonHeaderValue(488,"Bad Media Description")];return e.bye(void 0,{extraHeaders:A}),this.stateTransition(H.Terminated),Promise.resolve()}case Y.HaveRemoteOffer:{this.logger.error(`Invalid signaling state ${e.signalingState}.`);const A=["Reason: "+this.getReasonHeaderValue(488,"Bad Media Description")];return e.bye(void 0,{extraHeaders:A}),this.stateTransition(H.Terminated),Promise.resolve()}case Y.Closed:default:throw new Error(`Invalid signaling state ${e.signalingState}.`)}}onByeRequest(A){if(this.logger.log("Session.onByeRequest"),this.state===H.Established){if(this.delegate&&this.delegate.onBye){const e=new V(A);this.delegate.onBye(e)}else A.accept();this.stateTransition(H.Terminated)}else this.logger.error(`BYE received while in state ${this.state}, dropping request`)}onInfoRequest(A){if(this.logger.log("Session.onInfoRequest"),this.state===H.Established)if(this.delegate&&this.delegate.onInfo){const e=new l(A);this.delegate.onInfo(e)}else A.accept();else this.logger.error(`INFO received while in state ${this.state}, dropping request`)}onInviteRequest(A){if(this.logger.log("Session.onInviteRequest"),this.state!==H.Established)return void this.logger.error(`INVITE received while in state ${this.state}, dropping request`);this.pendingReinviteAck=!0;const e=["Contact: "+this._contact];if(A.message.hasHeader("P-Asserted-Identity")){const e=A.message.getHeader("P-Asserted-Identity");if(!e)throw new Error("Header undefined.");this._assertedIdentity=E.nameAddrHeaderParse(e)}const t={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptionsReInvite,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiersReInvite};this.generateResponseOfferAnswerInDialog(t).then(t=>{const s=A.accept({statusCode:200,extraHeaders:e,body:t});this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(A.message,s.message,200)}).catch(e=>{if(this.logger.error(e.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===Y.Stable){const e=A.reject({statusCode:488});return void(this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(A.message,e.message,488))}this.rollbackOffer().then(()=>{const e=A.reject({statusCode:488});this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(A.message,e.message,488)}).catch(e=>{this.logger.error(e.message),this.logger.error("Failed to rollback offer on re-INVITE request");const t=A.reject({statusCode:488});if(this.state!==H.Terminated){if(!this.dialog)throw new Error("Dialog undefined.");const A=[];A.push("Reason: "+this.getReasonHeaderValue(500,"Internal Server Error")),this.dialog.bye(void 0,{extraHeaders:A}),this.stateTransition(H.Terminated)}this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(A.message,t.message,488)})})}onMessageRequest(A){if(this.logger.log("Session.onMessageRequest"),this.state===H.Established)if(this.delegate&&this.delegate.onMessage){const e=new b(A);this.delegate.onMessage(e)}else A.accept();else this.logger.error(`MESSAGE received while in state ${this.state}, dropping request`)}onNotifyRequest(A){if(this.logger.log("Session.onNotifyRequest"),this.state===H.Established){if(this.onNotify){const e=new J(A);return void this.onNotify(e)}if(this.delegate&&this.delegate.onNotify){const e=new J(A);this.delegate.onNotify(e)}else A.accept()}else this.logger.error(`NOTIFY received while in state ${this.state}, dropping request`)}onPrackRequest(A){if(this.logger.log("Session.onPrackRequest"),this.state===H.Established)throw new Error("Unimplemented.");this.logger.error(`PRACK received while in state ${this.state}, dropping request`)}onReferRequest(A){if(this.logger.log("Session.onReferRequest"),this.state!==H.Established)return void this.logger.error(`REFER received while in state ${this.state}, dropping request`);if(!A.message.hasHeader("refer-to"))return this.logger.warn("Invalid REFER packet. A refer-to header is required. Rejecting."),void A.reject();const e=new L(A,this);this.delegate&&this.delegate.onRefer?this.delegate.onRefer(e):(this.logger.log("No delegate available to handle REFER, automatically accepting and following."),e.accept().then(()=>e.makeInviter(this._referralInviterOptions).invite()).catch(A=>{this.logger.error(A.message)}))}generateResponseOfferAnswer(A,e){if(this.dialog)return this.generateResponseOfferAnswerInDialog(e);const t=G(A.message);return t&&"session"===t.contentDisposition?this.setOfferAndGetAnswer(t,e):this.getOffer(e)}generateResponseOfferAnswerInDialog(A){if(!this.dialog)throw new Error("Dialog undefined.");switch(this.dialog.signalingState){case Y.Initial:return this.getOffer(A);case Y.HaveLocalOffer:return Promise.resolve(void 0);case Y.HaveRemoteOffer:if(!this.dialog.offer)throw new Error(`Session offer undefined in signaling state ${this.dialog.signalingState}.`);return this.setOfferAndGetAnswer(this.dialog.offer,A);case Y.Stable:return this.state!==H.Established?Promise.resolve(void 0):this.getOffer(A);case Y.Closed:default:throw new Error(`Invalid signaling state ${this.dialog.signalingState}.`)}}getOffer(A){const e=this.setupSessionDescriptionHandler(),t=A.sessionDescriptionHandlerOptions,s=A.sessionDescriptionHandlerModifiers;try{return e.getDescription(t,s).then(A=>U(A)).catch(A=>{this.logger.error("Session.getOffer: SDH getDescription rejected...");const e=A instanceof Error?A:new Error("Session.getOffer unknown error.");throw this.logger.error(e.message),e})}catch(A){this.logger.error("Session.getOffer: SDH getDescription threw...");const e=A instanceof Error?A:new Error(A);return this.logger.error(e.message),Promise.reject(e)}}rollbackOffer(){const A=this.setupSessionDescriptionHandler();if(void 0===A.rollbackDescription)return Promise.resolve();try{return A.rollbackDescription().catch(A=>{this.logger.error("Session.rollbackOffer: SDH rollbackDescription rejected...");const e=A instanceof Error?A:new Error("Session.rollbackOffer unknown error.");throw this.logger.error(e.message),e})}catch(A){this.logger.error("Session.rollbackOffer: SDH rollbackDescription threw...");const e=A instanceof Error?A:new Error(A);return this.logger.error(e.message),Promise.reject(e)}}setAnswer(A,e){const t=this.setupSessionDescriptionHandler(),i=e.sessionDescriptionHandlerOptions,n=e.sessionDescriptionHandlerModifiers;try{if(!t.hasDescription(A.contentType))return Promise.reject(new s)}catch(A){this.logger.error("Session.setAnswer: SDH hasDescription threw...");const e=A instanceof Error?A:new Error(A);return this.logger.error(e.message),Promise.reject(e)}try{return t.setDescription(A.content,i,n).catch(A=>{this.logger.error("Session.setAnswer: SDH setDescription rejected...");const e=A instanceof Error?A:new Error("Session.setAnswer unknown error.");throw this.logger.error(e.message),e})}catch(A){this.logger.error("Session.setAnswer: SDH setDescription threw...");const e=A instanceof Error?A:new Error(A);return this.logger.error(e.message),Promise.reject(e)}}setOfferAndGetAnswer(A,e){const t=this.setupSessionDescriptionHandler(),i=e.sessionDescriptionHandlerOptions,n=e.sessionDescriptionHandlerModifiers;try{if(!t.hasDescription(A.contentType))return Promise.reject(new s)}catch(A){this.logger.error("Session.setOfferAndGetAnswer: SDH hasDescription threw...");const e=A instanceof Error?A:new Error(A);return this.logger.error(e.message),Promise.reject(e)}try{return t.setDescription(A.content,i,n).then(()=>t.getDescription(i,n)).then(A=>U(A)).catch(A=>{this.logger.error("Session.setOfferAndGetAnswer: SDH setDescription or getDescription rejected...");const e=A instanceof Error?A:new Error("Session.setOfferAndGetAnswer unknown error.");throw this.logger.error(e.message),e})}catch(A){this.logger.error("Session.setOfferAndGetAnswer: SDH setDescription or getDescription threw...");const e=A instanceof Error?A:new Error(A);return this.logger.error(e.message),Promise.reject(e)}}setSessionDescriptionHandler(A){if(this._sessionDescriptionHandler)throw new Error("Session description handler defined.");this._sessionDescriptionHandler=A}setupSessionDescriptionHandler(){var A;return this._sessionDescriptionHandler||(this._sessionDescriptionHandler=this.sessionDescriptionHandlerFactory(this,this.userAgent.configuration.sessionDescriptionHandlerFactoryOptions),(null===(A=this.delegate)||void 0===A?void 0:A.onSessionDescriptionHandler)&&this.delegate.onSessionDescriptionHandler(this._sessionDescriptionHandler,!1)),this._sessionDescriptionHandler}stateTransition(A){const e=()=>{throw new Error(`Invalid state transition from ${this._state} to ${A}`)};switch(this._state){case H.Initial:A!==H.Establishing&&A!==H.Established&&A!==H.Terminating&&A!==H.Terminated&&e();break;case H.Establishing:A!==H.Established&&A!==H.Terminating&&A!==H.Terminated&&e();break;case H.Established:A!==H.Terminating&&A!==H.Terminated&&e();break;case H.Terminating:A!==H.Terminated&&e();break;case H.Terminated:e();break;default:throw new Error("Unrecognized state.")}this._state=A,this.logger.log(`Session ${this.id} transitioned to state ${this._state}`),this._stateEventEmitter.emit(this._state),A===H.Terminated&&this.dispose()}copyRequestOptions(A={}){return{extraHeaders:A.extraHeaders?A.extraHeaders.slice():void 0,body:A.body?{contentDisposition:A.body.contentDisposition||"render",contentType:A.body.contentType||"text/plain",content:A.body.content||""}:void 0}}getReasonHeaderValue(A,e){const t=A;let s=M(A);return!s&&e&&(s=e),"SIP;cause="+t+';text="'+s+'"'}referExtraHeaders(A){const e=[];return e.push("Referred-By: <"+this.userAgent.configuration.uri+">"),e.push("Contact: "+this._contact),e.push("Allow: "+["ACK","CANCEL","INVITE","MESSAGE","BYE","OPTIONS","INFO","NOTIFY","REFER"].toString()),e.push("Refer-To: "+A),e}referToString(A){let e;if(A instanceof d)e=A.toString();else{if(!A.dialog)throw new Error("Dialog undefined.");const t=A.remoteIdentity.friendlyName,s=A.dialog.remoteTarget.toString(),i=A.dialog.callId,n=A.dialog.remoteTag,o=A.dialog.localTag;e=`"${t}" <${s}?Replaces=${encodeURIComponent(`${i};to-tag=${n};from-tag=${o}`)}>`}return e}}!function(A){A.Required="Required",A.Supported="Supported",A.Unsupported="Unsupported"}(j=j||(j={}));const P={"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 z extends W{constructor(A,e){super(A),this.incomingInviteRequest=e,this.disposed=!1,this.expiresTimer=void 0,this.isCanceled=!1,this.rel100="none",this.rseq=Math.floor(1e4*Math.random()),this.userNoAnswerTimer=void 0,this.waitingForPrack=!1,this.logger=A.getLogger("sip.Invitation");const t=this.incomingInviteRequest.message,s=t.getHeader("require");s&&s.toLowerCase().includes("100rel")&&(this.rel100="required");const i=t.getHeader("supported");if(i&&i.toLowerCase().includes("100rel")&&(this.rel100="supported"),t.toTag=e.toTag,"string"!=typeof t.toTag)throw new TypeError("toTag should have been a string.");if(this.userNoAnswerTimer=setTimeout(()=>{e.reject({statusCode:480}),this.stateTransition(H.Terminated)},this.userAgent.configuration.noAnswerTimeout?1e3*this.userAgent.configuration.noAnswerTimeout:6e4),t.hasHeader("expires")){const A=1e3*Number(t.getHeader("expires")||0);this.expiresTimer=setTimeout(()=>{this.state===H.Initial&&(e.reject({statusCode:487}),this.stateTransition(H.Terminated))},A)}const n=this.request.getHeader("P-Asserted-Identity");n&&(this._assertedIdentity=E.nameAddrHeaderParse(n)),this._contact=this.userAgent.contact.toString();const o=t.parseHeader("Content-Disposition");o&&"render"===o.type&&(this._renderbody=t.body,this._rendertype=t.getHeader("Content-Type")),this._id=t.callId+t.fromTag,this.userAgent._sessions[this._id]=this}dispose(){if(this.disposed)return Promise.resolve();switch(this.disposed=!0,this.expiresTimer&&(clearTimeout(this.expiresTimer),this.expiresTimer=void 0),this.userNoAnswerTimer&&(clearTimeout(this.userNoAnswerTimer),this.userNoAnswerTimer=void 0),this.prackNeverArrived(),this.state){case H.Initial:case H.Establishing:return this.reject().then(()=>super.dispose());case H.Established:case H.Terminating:case H.Terminated:return super.dispose();default:throw new Error("Unknown state.")}}get autoSendAnInitialProvisionalResponse(){return"required"!==this.rel100&&this.userAgent.configuration.sendInitialProvisionalResponse}get body(){return this.incomingInviteRequest.message.body}get localIdentity(){return this.request.to}get remoteIdentity(){return this.request.from}get request(){return this.incomingInviteRequest.message}accept(A={}){if(this.logger.log("Invitation.accept"),this.state!==H.Initial){const A=new Error(`Invalid session state ${this.state}`);return this.logger.error(A.message),Promise.reject(A)}return A.sessionDescriptionHandlerModifiers&&(this.sessionDescriptionHandlerModifiers=A.sessionDescriptionHandlerModifiers),A.sessionDescriptionHandlerOptions&&(this.sessionDescriptionHandlerOptions=A.sessionDescriptionHandlerOptions),this.stateTransition(H.Establishing),this.sendAccept(A).then(({message:A,session:e})=>{e.delegate={onAck:A=>this.onAckRequest(A),onAckTimeout:()=>this.onAckTimeout(),onBye:A=>this.onByeRequest(A),onInfo:A=>this.onInfoRequest(A),onInvite:A=>this.onInviteRequest(A),onMessage:A=>this.onMessageRequest(A),onNotify:A=>this.onNotifyRequest(A),onPrack:A=>this.onPrackRequest(A),onRefer:A=>this.onReferRequest(A)},this._dialog=e,this.stateTransition(H.Established),this._replacee&&this._replacee._bye()}).catch(A=>this.handleResponseError(A))}progress(A={}){if(this.logger.log("Invitation.progress"),this.state!==H.Initial){const A=new Error(`Invalid session state ${this.state}`);return this.logger.error(A.message),Promise.reject(A)}const e=A.statusCode||180;if(e<100||e>199)throw new TypeError("Invalid statusCode: "+e);return A.sessionDescriptionHandlerModifiers&&(this.sessionDescriptionHandlerModifiers=A.sessionDescriptionHandlerModifiers),A.sessionDescriptionHandlerOptions&&(this.sessionDescriptionHandlerOptions=A.sessionDescriptionHandlerOptions),this.waitingForPrack?(this.logger.warn("Unexpected call for progress while waiting for prack, ignoring"),Promise.resolve()):100===A.statusCode?this.sendProgressTrying().then(()=>{}).catch(A=>this.handleResponseError(A)):"required"===this.rel100||"supported"===this.rel100&&A.rel100||"supported"===this.rel100&&this.userAgent.configuration.sipExtension100rel===j.Required?this.sendProgressReliableWaitForPrack(A).then(()=>{}).catch(A=>this.handleResponseError(A)):this.sendProgress(A).then(()=>{}).catch(A=>this.handleResponseError(A))}reject(A={}){if(this.logger.log("Invitation.reject"),this.state!==H.Initial&&this.state!==H.Establishing){const A=new Error(`Invalid session state ${this.state}`);return this.logger.error(A.message),Promise.reject(A)}const e=A.statusCode||480,t=A.reasonPhrase?A.reasonPhrase:M(e),s=A.extraHeaders||[];if(e<300||e>699)throw new TypeError("Invalid statusCode: "+e);const i=A.body?U(A.body):void 0;return e<400?this.incomingInviteRequest.redirect([],{statusCode:e,reasonPhrase:t,extraHeaders:s,body:i}):this.incomingInviteRequest.reject({statusCode:e,reasonPhrase:t,extraHeaders:s,body:i}),this.stateTransition(H.Terminated),Promise.resolve()}_onCancel(A){if(this.logger.log("Invitation._onCancel"),this.state===H.Initial||this.state===H.Establishing){if(this.delegate&&this.delegate.onCancel){const e=new c(A);this.delegate.onCancel(e)}this.isCanceled=!0,this.incomingInviteRequest.reject({statusCode:487}),this.stateTransition(H.Terminated)}else this.logger.error(`CANCEL received while in state ${this.state}, dropping request`)}handlePrackOfferAnswer(A){if(!this.dialog)throw new Error("Dialog undefined.");const e=G(A.message);if(!e||"session"!==e.contentDisposition)return Promise.resolve(void 0);const t={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers};switch(this.dialog.signalingState){case Y.Initial:throw new Error(`Invalid signaling state ${this.dialog.signalingState}.`);case Y.Stable:return this.setAnswer(e,t).then(()=>{});case Y.HaveLocalOffer:throw new Error(`Invalid signaling state ${this.dialog.signalingState}.`);case Y.HaveRemoteOffer:return this.setOfferAndGetAnswer(e,t);case Y.Closed:default:throw new Error(`Invalid signaling state ${this.dialog.signalingState}.`)}}handleResponseError(A){let e=480;if(A instanceof Error?this.logger.error(A.message):this.logger.error(A),A instanceof s?(this.logger.error("A session description handler occurred while sending response (content type unsupported"),e=415):A instanceof n?this.logger.error("A session description handler occurred while sending response"):A instanceof o?this.logger.error("Session ended before response could be formulated and sent (while waiting for PRACK)"):A instanceof x&&this.logger.error("Session changed state before response could be formulated and sent"),this.state===H.Initial||this.state===H.Establishing)try{this.incomingInviteRequest.reject({statusCode:e}),this.stateTransition(H.Terminated)}catch(A){throw this.logger.error("An error occurred attempting to reject the request while handling another error"),A}if(!this.isCanceled)throw A;this.logger.warn("An error occurred while attempting to formulate and send a response to an incoming INVITE. However a CANCEL was received and processed while doing so which can (and often does) result in errors occurring as the session terminates in the meantime. Said error is being ignored.")}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(H.Terminated)}sendAccept(A={}){const e={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers},t=A.extraHeaders||[];return this.waitingForPrack?this.waitForArrivalOfPrack().then(()=>clearTimeout(this.userNoAnswerTimer)).then(()=>this.generateResponseOfferAnswer(this.incomingInviteRequest,e)).then(A=>this.incomingInviteRequest.accept({statusCode:200,body:A,extraHeaders:t})):(clearTimeout(this.userNoAnswerTimer),this.generateResponseOfferAnswer(this.incomingInviteRequest,e).then(A=>this.incomingInviteRequest.accept({statusCode:200,body:A,extraHeaders:t})))}sendProgress(A={}){const e=A.statusCode||180,t=A.reasonPhrase,s=(A.extraHeaders||[]).slice(),i=A.body?U(A.body):void 0;if(183===e&&!i)return this.sendProgressWithSDP(A);try{const A=this.incomingInviteRequest.progress({statusCode:e,reasonPhrase:t,extraHeaders:s,body:i});return this._dialog=A.session,Promise.resolve(A)}catch(A){return Promise.reject(A)}}sendProgressWithSDP(A={}){const e={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers},t=A.statusCode||183,s=A.reasonPhrase,i=(A.extraHeaders||[]).slice();return this.generateResponseOfferAnswer(this.incomingInviteRequest,e).then(A=>this.incomingInviteRequest.progress({statusCode:t,reasonPhrase:s,extraHeaders:i,body:A})).then(A=>(this._dialog=A.session,A))}sendProgressReliable(A={}){return A.extraHeaders=(A.extraHeaders||[]).slice(),A.extraHeaders.push("Require: 100rel"),A.extraHeaders.push("RSeq: "+Math.floor(1e4*Math.random())),this.sendProgressWithSDP(A)}sendProgressReliableWaitForPrack(A={}){const e={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers},t=A.statusCode||183,s=A.reasonPhrase,i=(A.extraHeaders||[]).slice();let n;return i.push("Require: 100rel"),i.push("RSeq: "+this.rseq++),new Promise((A,r)=>{this.waitingForPrack=!0,this.generateResponseOfferAnswer(this.incomingInviteRequest,e).then(A=>(n=A,this.incomingInviteRequest.progress({statusCode:t,reasonPhrase:s,extraHeaders:i,body:n}))).then(e=>{let a,V;this._dialog=e.session,e.session.delegate={onPrack:t=>{a=t,clearTimeout(c),clearTimeout(g),this.waitingForPrack&&(this.waitingForPrack=!1,this.handlePrackOfferAnswer(a).then(t=>{try{V=a.accept({statusCode:200,body:t}),this.prackArrived(),A({prackRequest:a,prackResponse:V,progressResponse:e})}catch(A){r(A)}}).catch(A=>r(A)))}};const c=setTimeout(()=>{this.waitingForPrack&&(this.waitingForPrack=!1,this.logger.warn("No PRACK received, rejecting INVITE."),clearTimeout(g),this.reject({statusCode:504}).then(()=>r(new o)).catch(A=>r(A)))},64*v.T1),h=()=>{try{this.incomingInviteRequest.progress({statusCode:t,reasonPhrase:s,extraHeaders:i,body:n})}catch(A){return this.waitingForPrack=!1,void r(A)}g=setTimeout(h,l*=2)};let l=v.T1,g=setTimeout(h,l)}).catch(A=>{this.waitingForPrack=!1,r(A)})})}sendProgressTrying(){try{const A=this.incomingInviteRequest.trying();return Promise.resolve(A)}catch(A){return Promise.reject(A)}}waitForArrivalOfPrack(){if(this.waitingForPrackPromise)throw new Error("Already waiting for PRACK");return this.waitingForPrackPromise=new Promise((A,e)=>{this.waitingForPrackResolve=A,this.waitingForPrackReject=e}),this.waitingForPrackPromise}prackArrived(){this.waitingForPrackResolve&&this.waitingForPrackResolve(),this.waitingForPrackPromise=void 0,this.waitingForPrackResolve=void 0,this.waitingForPrackReject=void 0}prackNeverArrived(){this.waitingForPrackReject&&this.waitingForPrackReject(new o),this.waitingForPrackPromise=void 0,this.waitingForPrackResolve=void 0,this.waitingForPrackReject=void 0}}class X extends W{constructor(A,e,t={}){super(A,t),this.disposed=!1,this.earlyMedia=!1,this.earlyMediaSessionDescriptionHandlers=new Map,this.isCanceled=!1,this.inviteWithoutSdp=!1,this.logger=A.getLogger("sip.Inviter"),this.earlyMedia=void 0!==t.earlyMedia?t.earlyMedia:this.earlyMedia,this.fromTag=f(),this.inviteWithoutSdp=void 0!==t.inviteWithoutSdp?t.inviteWithoutSdp:this.inviteWithoutSdp;const s=Object.assign({},t);s.params=Object.assign({},t.params);const i=t.anonymous||!1,n=A.contact.toString({anonymous:i,outbound:i?!A.contact.tempGruu:!A.contact.pubGruu});i&&A.configuration.uri&&(s.params.fromDisplayName="Anonymous",s.params.fromUri="sip:anonymous@anonymous.invalid");let o=A.userAgentCore.configuration.aor;if(s.params.fromUri&&(o="string"==typeof s.params.fromUri?E.URIParse(s.params.fromUri):s.params.fromUri),!o)throw new TypeError("Invalid from URI: "+s.params.fromUri);let r=e;if(s.params.toUri&&(r="string"==typeof s.params.toUri?E.URIParse(s.params.toUri):s.params.toUri),!r)throw new TypeError("Invalid to URI: "+s.params.toUri);const a=Object.assign({},s.params);a.fromTag=this.fromTag;const V=(s.extraHeaders||[]).slice();i&&A.configuration.uri&&(V.push("P-Preferred-Identity: "+A.configuration.uri.toString()),V.push("Privacy: id")),V.push("Contact: "+n),V.push("Allow: "+["ACK","CANCEL","INVITE","MESSAGE","BYE","OPTIONS","INFO","NOTIFY","REFER"].toString()),A.configuration.sipExtension100rel===j.Required&&V.push("Require: 100rel"),A.configuration.sipExtensionReplaces===j.Required&&V.push("Require: replaces"),s.extraHeaders=V;this.outgoingRequestMessage=A.userAgentCore.makeOutgoingRequestMessage(N.INVITE,e,o,r,a,V,undefined),this._contact=n,this._referralInviterOptions=s,this._renderbody=t.renderbody,this._rendertype=t.rendertype,t.sessionDescriptionHandlerModifiers&&(this.sessionDescriptionHandlerModifiers=t.sessionDescriptionHandlerModifiers),t.sessionDescriptionHandlerOptions&&(this.sessionDescriptionHandlerOptions=t.sessionDescriptionHandlerOptions),t.sessionDescriptionHandlerModifiersReInvite&&(this.sessionDescriptionHandlerModifiersReInvite=t.sessionDescriptionHandlerModifiersReInvite),t.sessionDescriptionHandlerOptionsReInvite&&(this.sessionDescriptionHandlerOptionsReInvite=t.sessionDescriptionHandlerOptionsReInvite),this._id=this.outgoingRequestMessage.callId+this.fromTag,this.userAgent._sessions[this._id]=this}dispose(){if(this.disposed)return Promise.resolve();switch(this.disposed=!0,this.disposeEarlyMedia(),this.state){case H.Initial:case H.Establishing:return this.cancel().then(()=>super.dispose());case H.Established:case H.Terminating:case H.Terminated:return super.dispose();default:throw new Error("Unknown state.")}}get body(){return this.outgoingRequestMessage.body}get localIdentity(){return this.outgoingRequestMessage.from}get remoteIdentity(){return this.outgoingRequestMessage.to}get request(){return this.outgoingRequestMessage}cancel(A={}){if(this.logger.log("Inviter.cancel"),this.state!==H.Initial&&this.state!==H.Establishing){const A=new Error(`Invalid session state ${this.state}`);return this.logger.error(A.message),Promise.reject(A)}if(this.isCanceled=!0,this.stateTransition(H.Terminating),this.outgoingInviteRequest){let e;A.statusCode&&A.reasonPhrase&&(e=function(A,e){if(A&&A<200||A>699)throw new TypeError("Invalid statusCode: "+A);if(A)return"SIP;cause="+A+';text="'+(M(A)||e)+'"'}(A.statusCode,A.reasonPhrase)),this.outgoingInviteRequest.cancel(e,A)}else this.logger.warn("Canceled session before INVITE was sent"),this.stateTransition(H.Terminated);return Promise.resolve()}invite(A={}){if(this.logger.log("Inviter.invite"),this.state!==H.Initial)return super.invite(A);if(A.sessionDescriptionHandlerModifiers&&(this.sessionDescriptionHandlerModifiers=A.sessionDescriptionHandlerModifiers),A.sessionDescriptionHandlerOptions&&(this.sessionDescriptionHandlerOptions=A.sessionDescriptionHandlerOptions),A.withoutSdp||this.inviteWithoutSdp)return this._renderbody&&this._rendertype&&(this.outgoingRequestMessage.body={contentType:this._rendertype,body:this._renderbody}),this.stateTransition(H.Establishing),Promise.resolve(this.sendInvite(A));const e={sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers,sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions};return this.getOffer(e).then(e=>(this.outgoingRequestMessage.body={body:e.content,contentType:e.contentType},this.stateTransition(H.Establishing),this.sendInvite(A))).catch(A=>{throw this.logger.log(A.message),this.state!==H.Terminated&&this.stateTransition(H.Terminated),A})}sendInvite(A={}){return this.outgoingInviteRequest=this.userAgent.userAgentCore.invite(this.outgoingRequestMessage,{onAccept:e=>this.dialog?(this.logger.log("Additional confirmed dialog, sending ACK and BYE"),void this.ackAndBye(e)):this.isCanceled?(this.logger.log("Canceled session accepted, sending ACK and BYE"),this.ackAndBye(e),void this.stateTransition(H.Terminated)):(this.notifyReferer(e),void this.onAccept(e).then(()=>{this.disposeEarlyMedia()}).catch(()=>{this.disposeEarlyMedia()}).then(()=>{A.requestDelegate&&A.requestDelegate.onAccept&&A.requestDelegate.onAccept(e)})),onProgress:e=>{this.isCanceled||(this.notifyReferer(e),this.onProgress(e).catch(()=>{this.disposeEarlyMedia()}).then(()=>{A.requestDelegate&&A.requestDelegate.onProgress&&A.requestDelegate.onProgress(e)}))},onRedirect:e=>{this.notifyReferer(e),this.onRedirect(e),A.requestDelegate&&A.requestDelegate.onRedirect&&A.requestDelegate.onRedirect(e)},onReject:e=>{this.notifyReferer(e),this.onReject(e),A.requestDelegate&&A.requestDelegate.onReject&&A.requestDelegate.onReject(e)},onTrying:e=>{this.notifyReferer(e),this.onTrying(e),A.requestDelegate&&A.requestDelegate.onTrying&&A.requestDelegate.onTrying(e)}}),this.outgoingInviteRequest}disposeEarlyMedia(){this.earlyMediaSessionDescriptionHandlers.forEach(A=>{A.close()}),this.earlyMediaSessionDescriptionHandlers.clear()}notifyReferer(A){if(!this._referred)return;if(!(this._referred instanceof W))throw new Error("Referred session not instance of session");if(!this._referred.dialog)return;if(!A.message.statusCode)throw new Error("Status code undefined.");if(!A.message.reasonPhrase)throw new Error("Reason phrase undefined.");const e=`SIP/2.0 ${A.message.statusCode} ${A.message.reasonPhrase}`.trim();this._referred.dialog.notify(void 0,{extraHeaders:["Event: refer","Subscription-State: terminated"],body:{contentDisposition:"render",contentType:"message/sipfrag",content:e}}).delegate={onReject:()=>{this._referred=void 0}}}onAccept(A){if(this.logger.log("Inviter.onAccept"),this.state!==H.Establishing)return this.logger.error(`Accept received while in state ${this.state}, dropping response`),Promise.reject(new Error(`Invalid session state ${this.state}`));const e=A.message,t=A.session;switch(e.hasHeader("P-Asserted-Identity")&&(this._assertedIdentity=E.nameAddrHeaderParse(e.getHeader("P-Asserted-Identity"))),t.delegate={onAck:A=>this.onAckRequest(A),onBye:A=>this.onByeRequest(A),onInfo:A=>this.onInfoRequest(A),onInvite:A=>this.onInviteRequest(A),onMessage:A=>this.onMessageRequest(A),onNotify:A=>this.onNotifyRequest(A),onPrack:A=>this.onPrackRequest(A),onRefer:A=>this.onReferRequest(A)},this._dialog=t,t.signalingState){case Y.Initial:case Y.HaveLocalOffer:return this.logger.error("Received 2xx response to INVITE without a session description"),this.ackAndBye(A,400,"Missing session description"),this.stateTransition(H.Terminated),Promise.reject(new Error("Bad Media Description"));case Y.HaveRemoteOffer:{if(!this._dialog.offer)throw new Error(`Session offer undefined in signaling state ${this._dialog.signalingState}.`);const e={sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers,sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions};return this.setOfferAndGetAnswer(this._dialog.offer,e).then(e=>{A.ack({body:e}),this.stateTransition(H.Established)}).catch(e=>{throw this.ackAndBye(A,488,"Invalid session description"),this.stateTransition(H.Terminated),e})}case Y.Stable:{if(this.earlyMediaSessionDescriptionHandlers.size>0){const e=this.earlyMediaSessionDescriptionHandlers.get(t.id);if(!e)throw new Error("Session description handler undefined.");return this.setSessionDescriptionHandler(e),this.earlyMediaSessionDescriptionHandlers.delete(t.id),A.ack(),this.stateTransition(H.Established),Promise.resolve()}if(this.earlyMediaDialog){if(this.earlyMediaDialog!==t){if(this.earlyMedia){const A="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 behavior 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(A)}const e=new Error("Early media dialog does not equal confirmed dialog, terminating session");return this.logger.error(e.message),this.ackAndBye(A,488,"Not Acceptable Here"),this.stateTransition(H.Terminated),Promise.reject(e)}return A.ack(),this.stateTransition(H.Established),Promise.resolve()}const e=t.answer;if(!e)throw new Error("Answer is undefined.");const s={sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers,sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions};return this.setAnswer(e,s).then(()=>{let e;this._renderbody&&this._rendertype&&(e={body:{contentDisposition:"render",contentType:this._rendertype,content:this._renderbody}}),A.ack(e),this.stateTransition(H.Established)}).catch(e=>{throw this.logger.error(e.message),this.ackAndBye(A,488,"Not Acceptable Here"),this.stateTransition(H.Terminated),e})}case Y.Closed:return Promise.reject(new Error("Terminated."));default:throw new Error("Unknown session signaling state.")}}onProgress(A){var e;if(this.logger.log("Inviter.onProgress"),this.state!==H.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=A.message,s=A.session;t.hasHeader("P-Asserted-Identity")&&(this._assertedIdentity=E.nameAddrHeaderParse(t.getHeader("P-Asserted-Identity")));const i=t.getHeader("require"),n=t.getHeader("rseq"),o=!!(i&&i.includes("100rel")&&n?Number(n):void 0),r=[];switch(o&&r.push("RAck: "+t.getHeader("rseq")+" "+t.getHeader("cseq")),s.signalingState){case Y.Initial:return o&&(this.logger.warn("First reliable provisional response received MUST contain an offer when INVITE does not contain an offer."),A.prack({extraHeaders:r})),Promise.resolve();case Y.HaveLocalOffer:return o&&A.prack({extraHeaders:r}),Promise.resolve();case Y.HaveRemoteOffer:if(!o)return this.logger.warn("Non-reliable provisional response MUST NOT contain an initial offer, discarding response."),Promise.resolve();{const i=this.sessionDescriptionHandlerFactory(this,this.userAgent.configuration.sessionDescriptionHandlerFactoryOptions||{});return(null===(e=this.delegate)||void 0===e?void 0:e.onSessionDescriptionHandler)&&this.delegate.onSessionDescriptionHandler(i,!0),this.earlyMediaSessionDescriptionHandlers.set(s.id,i),i.setDescription(t.body,this.sessionDescriptionHandlerOptions,this.sessionDescriptionHandlerModifiers).then(()=>i.getDescription(this.sessionDescriptionHandlerOptions,this.sessionDescriptionHandlerModifiers)).then(e=>{const t={contentDisposition:"session",contentType:e.contentType,content:e.body};A.prack({extraHeaders:r,body:t})}).catch(A=>{throw this.stateTransition(H.Terminated),A})}case Y.Stable:if(o&&A.prack({extraHeaders:r}),this.earlyMedia&&!this.earlyMediaDialog){this.earlyMediaDialog=s;const A=s.answer;if(!A)throw new Error("Answer is undefined.");const e={sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers,sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions};return this.setAnswer(A,e).catch(A=>{throw this.stateTransition(H.Terminated),A})}return Promise.resolve();case Y.Closed:return Promise.reject(new Error("Terminated."));default:throw new Error("Unknown session signaling state.")}}onRedirect(A){this.logger.log("Inviter.onRedirect"),this.state===H.Establishing||this.state===H.Terminating?this.stateTransition(H.Terminated):this.logger.error(`Redirect received while in state ${this.state}, dropping response`)}onReject(A){this.logger.log("Inviter.onReject"),this.state===H.Establishing||this.state===H.Terminating?this.stateTransition(H.Terminated):this.logger.error(`Reject received while in state ${this.state}, dropping response`)}onTrying(A){this.logger.log("Inviter.onTrying"),this.state===H.Establishing||this.logger.error(`Trying received while in state ${this.state}, dropping response`)}}var _,$,AA,eA,tA,sA,iA;!function(A){A.Initial="Initial",A.Registered="Registered",A.Unregistered="Unregistered",A.Terminated="Terminated"}(_=_||(_={}));class nA{constructor(A,e={}){this.disposed=!1,this._contacts=[],this._retryAfter=void 0,this._state=_.Initial,this._waiting=!1,this._stateEventEmitter=new h,this._waitingEventEmitter=new h,this.userAgent=A;const t=A.configuration.uri.clone();if(t.user=void 0,this.options=Object.assign(Object.assign(Object.assign({},nA.defaultOptions()),{registrar:t}),nA.stripUndefinedProperties(e)),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=this.userAgent.instanceId:!this.options.regId&&this.options.instanceId&&(this.options.regId=1),this.options.instanceId&&-1===E.parse(this.options.instanceId,"uuid"))throw new Error("Invalid instanceId.");if(this.options.regId&&this.options.regId<0)throw new Error("Invalid regId.");const s=this.options.registrar,i=this.options.params&&this.options.params.fromUri||A.userAgentCore.configuration.aor,n=this.options.params&&this.options.params.toUri||A.configuration.uri,o=this.options.params||{},r=(e.extraHeaders||[]).slice();if(this.request=A.userAgentCore.makeOutgoingRequestMessage(N.REGISTER,s,i,n,o,r,void 0),this.expires=this.options.expires||nA.defaultExpires,this.expires<0)throw new Error("Invalid expires.");if(this.refreshFrequency=this.options.refreshFrequency||nA.defaultRefreshFrequency,this.refreshFrequency<50||this.refreshFrequency>99)throw new Error("Invalid refresh frequency. The value represents a percentage of the expiration time and should be between 50 and 99.");this.logger=A.getLogger("sip.Registerer"),this.options.logConfiguration&&(this.logger.log("Configuration:"),Object.keys(this.options).forEach(A=>{const e=this.options[A];if("registrar"===A)this.logger.log("· "+A+": "+e);else this.logger.log("· "+A+": "+JSON.stringify(e))})),this.id=this.request.callId+this.request.from.parameters.tag,this.userAgent._registerers[this.id]=this}static defaultOptions(){return{expires:nA.defaultExpires,extraContactHeaderParams:[],extraHeaders:[],logConfiguration:!0,instanceId:"",params:{},regId:0,registrar:new d("sip","anonymous","anonymous.invalid"),refreshFrequency:nA.defaultRefreshFrequency}}static stripUndefinedProperties(A){return Object.keys(A).reduce((e,t)=>(void 0!==A[t]&&(e[t]=A[t]),e),{})}get contacts(){return this._contacts.slice()}get retryAfter(){return this._retryAfter}get state(){return this._state}get stateChange(){return this._stateEventEmitter}dispose(){return this.disposed?Promise.resolve():(this.disposed=!0,this.logger.log(`Registerer ${this.id} in state ${this.state} is being disposed`),delete this.userAgent._registerers[this.id],new Promise(A=>{const e=()=>{if(!this.waiting&&this._state===_.Registered)return this.stateChange.addListener(()=>{this.terminated(),A()},{once:!0}),void this.unregister();this.terminated(),A()};this.waiting?this.waitingChange.addListener(()=>{e()},{once:!0}):e()}))}register(A={}){if(this.state===_.Terminated)throw this.stateError(),new Error("Registerer terminated. Unable to register.");if(this.disposed)throw this.stateError(),new Error("Registerer disposed. Unable to register.");if(this.waiting){this.waitingWarning();const A=new i("REGISTER request already in progress, waiting for final response");return Promise.reject(A)}A.requestOptions&&(this.options=Object.assign(Object.assign({},this.options),A.requestOptions));const e=(this.options.extraHeaders||[]).slice();e.push("Contact: "+this.generateContactHeader(this.expires)),e.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=e,this.waitingToggle(!0);const t=this.userAgent.userAgentCore.register(this.request,{onAccept:e=>{let t;e.message.hasHeader("expires")&&(t=Number(e.message.getHeader("expires"))),this._contacts=e.message.getHeaders("contact");let s,i=this._contacts.length;if(!i)return this.logger.error("No Contact header in response to REGISTER, dropping response."),void this.unregistered();for(;i--;){if(s=e.message.parseHeader("contact",i),!s)throw new Error("Contact undefined");if(this.userAgent.contact.pubGruu&&u(s.uri,this.userAgent.contact.pubGruu)){t=Number(s.getParam("expires"));break}if(""===this.userAgent.configuration.contactName){if(s.uri.user===this.userAgent.contact.uri.user){t=Number(s.getParam("expires"));break}}else if(u(s.uri,this.userAgent.contact.uri)){t=Number(s.getParam("expires"));break}s=void 0}if(void 0===s)return this.logger.error("No Contact header pointing to us, dropping response"),this.unregistered(),void this.waitingToggle(!1);if(void 0===t)return this.logger.error("Contact pointing to us is missing expires parameter, dropping response"),this.unregistered(),void this.waitingToggle(!1);if(s.hasParam("temp-gruu")){const A=s.getParam("temp-gruu");A&&(this.userAgent.contact.tempGruu=E.URIParse(A.replace(/"/g,"")))}if(s.hasParam("pub-gruu")){const A=s.getParam("pub-gruu");A&&(this.userAgent.contact.pubGruu=E.URIParse(A.replace(/"/g,"")))}this.registered(t),A.requestDelegate&&A.requestDelegate.onAccept&&A.requestDelegate.onAccept(e),this.waitingToggle(!1)},onProgress:e=>{A.requestDelegate&&A.requestDelegate.onProgress&&A.requestDelegate.onProgress(e)},onRedirect:e=>{this.logger.error("Redirect received. Not supported."),this.unregistered(),A.requestDelegate&&A.requestDelegate.onRedirect&&A.requestDelegate.onRedirect(e),this.waitingToggle(!1)},onReject:e=>{if(423===e.message.statusCode)return e.message.hasHeader("min-expires")?(this.expires=Number(e.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));this.logger.warn(`Failed to register, status code ${e.message.statusCode}`);let t=NaN;if(500===e.message.statusCode||503===e.message.statusCode){const A=e.message.getHeader("retry-after");A&&(t=Number.parseInt(A,void 0))}this._retryAfter=isNaN(t)?void 0:t,this.unregistered(),A.requestDelegate&&A.requestDelegate.onReject&&A.requestDelegate.onReject(e),this._retryAfter=void 0,this.waitingToggle(!1)},onTrying:e=>{A.requestDelegate&&A.requestDelegate.onTrying&&A.requestDelegate.onTrying(e)}});return Promise.resolve(t)}unregister(A={}){if(this.state===_.Terminated)throw this.stateError(),new Error("Registerer terminated. Unable to register.");if(this.disposed&&this.state!==_.Registered)throw this.stateError(),new Error("Registerer disposed. Unable to register.");if(this.waiting){this.waitingWarning();const A=new i("REGISTER request already in progress, waiting for final response");return Promise.reject(A)}this._state===_.Registered||A.all||this.logger.warn("Not currently registered, but sending an unregister anyway.");const e=(A.requestOptions&&A.requestOptions.extraHeaders||[]).slice();this.request.extraHeaders=e,A.all?(e.push("Contact: *"),e.push("Expires: 0")):e.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 t=this.userAgent.userAgentCore.register(this.request,{onAccept:e=>{this._contacts=e.message.getHeaders("contact"),this.unregistered(),A.requestDelegate&&A.requestDelegate.onAccept&&A.requestDelegate.onAccept(e),this.waitingToggle(!1)},onProgress:e=>{A.requestDelegate&&A.requestDelegate.onProgress&&A.requestDelegate.onProgress(e)},onRedirect:e=>{this.logger.error("Unregister redirected. Not currently supported."),this.unregistered(),A.requestDelegate&&A.requestDelegate.onRedirect&&A.requestDelegate.onRedirect(e),this.waitingToggle(!1)},onReject:e=>{this.logger.error(`Unregister rejected with status code ${e.message.statusCode}`),this.unregistered(),A.requestDelegate&&A.requestDelegate.onReject&&A.requestDelegate.onReject(e),this.waitingToggle(!1)},onTrying:e=>{A.requestDelegate&&A.requestDelegate.onTrying&&A.requestDelegate.onTrying(e)}});return Promise.resolve(t)}clearTimers(){void 0!==this.registrationTimer&&(clearTimeout(this.registrationTimer),this.registrationTimer=void 0),void 0!==this.registrationExpiredTimer&&(clearTimeout(this.registrationExpiredTimer),this.registrationExpiredTimer=void 0)}generateContactHeader(A){let e=this.userAgent.contact.toString({register:!0});return this.options.regId&&this.options.instanceId&&(e+=";reg-id="+this.options.regId,e+=';+sip.instance="<urn:uuid:'+this.options.instanceId+'>"'),this.options.extraContactHeaderParams&&this.options.extraContactHeaderParams.forEach(A=>{e+=";"+A}),e+=";expires="+A,e}registered(A){this.clearTimers(),this.registrationTimer=setTimeout(()=>{this.registrationTimer=void 0,this.register()},this.refreshFrequency/100*A*1e3),this.registrationExpiredTimer=setTimeout(()=>{this.logger.warn("Registration expired"),this.unregistered()},1e3*A),this._state!==_.Registered&&this.stateTransition(_.Registered)}unregistered(){this.clearTimers(),this._state!==_.Unregistered&&this.stateTransition(_.Unregistered)}terminated(){this.clearTimers(),this._state!==_.Terminated&&this.stateTransition(_.Terminated)}stateTransition(A){const e=()=>{throw new Error(`Invalid state transition from ${this._state} to ${A}`)};switch(this._state){case _.Initial:A!==_.Registered&&A!==_.Unregistered&&A!==_.Terminated&&e();break;case _.Registered:A!==_.Unregistered&&A!==_.Terminated&&e();break;case _.Unregistered:A!==_.Registered&&A!==_.Terminated&&e();break;case _.Terminated:e();break;default:throw new Error("Unrecognized state.")}this._state=A,this.logger.log(`Registration transitioned to state ${this._state}`),this._stateEventEmitter.emit(this._state),A===_.Terminated&&this.dispose()}get waiting(){return this._waiting}get waitingChange(){return this._waitingEventEmitter}waitingToggle(A){if(this._waiting===A)throw new Error(`Invalid waiting transition from ${this._waiting} to ${A}`);this._waiting=A,this.logger.log(`Waiting toggled to ${this._waiting}`),this._waitingEventEmitter.emit(this._waiting)}waitingWarning(){let A="An attempt was made to send a REGISTER request while a prior one was still in progress.";A+=" RFC 3261 requires UAs MUST NOT send a new registration until they have received a final response",A+=" from the registrar for the previous one or the previous REGISTER request has timed out.",A+=" Note that if the transport disconnects, you still must wait for the prior request to time out before",A+=" sending a new REGISTER request or alternatively dispose of the current Registerer and create a new Registerer.",this.logger.warn("An attempt was made to send a REGISTER request while a prior one was still in progress. RFC 3261 requires UAs MUST NOT send a new registration until they have received a final response from the registrar for the previous one or the previous REGISTER request has timed out. Note that if the transport disconnects, you still must wait for the prior request to time out before sending a new REGISTER request or alternatively dispose of the current Registerer and create a new Registerer.")}stateError(){let A=`An attempt was made to send a REGISTER request when the Registerer ${this.state===_.Terminated?"is in 'Terminated' state":"has been disposed"}.`;A+=" The Registerer transitions to 'Terminated' when Registerer.dispose() is called.",A+=" Perhaps you called UserAgent.stop() which dipsoses of all Registerers?",this.logger.error(A)}}nA.defaultExpires=600,nA.defaultRefreshFrequency=99,function(A){A.Initial="Initial",A.NotifyWait="NotifyWait",A.Pending="Pending",A.Active="Active",A.Terminated="Terminated"}($=$||($={})),function(A){A.Connecting="Connecting",A.Connected="Connected",A.Disconnecting="Disconnecting",A.Disconnected="Disconnected"}(AA=AA||(AA={})),function(A){A.Started="Started",A.Stopped="Stopped"}(eA=eA||(eA={}));class oA{constructor(){this._dataLength=0,this._bufferLength=0,this._state=new Int32Array(4),this._buffer=new ArrayBuffer(68),this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this._buffer,0,17),this.start()}static hashStr(A,e=!1){return this.onePassHasher.start().appendStr(A).end(e)}static hashAsciiStr(A,e=!1){return this.onePassHasher.start().appendAsciiStr(A).end(e)}static _hex(A){const e=oA.hexChars,t=oA.hexOut;let s,i,n,o;for(o=0;o<4;o+=1)for(i=8*o,s=A[o],n=0;n<8;n+=2)t[i+1+n]=e.charAt(15&s),s>>>=4,t[i+0+n]=e.charAt(15&s),s>>>=4;return t.join("")}static _md5cycle(A,e){let t=A[0],s=A[1],i=A[2],n=A[3];t+=(s&i|~s&n)+e[0]-680876936|0,t=(t<<7|t>>>25)+s|0,n+=(t&s|~t&i)+e[1]-389564586|0,n=(n<<12|n>>>20)+t|0,i+=(n&t|~n&s)+e[2]+606105819|0,i=(i<<17|i>>>15)+n|0,s+=(i&n|~i&t)+e[3]-1044525330|0,s=(s<<22|s>>>10)+i|0,t+=(s&i|~s&n)+e[4]-176418897|0,t=(t<<7|t>>>25)+s|0,n+=(t&s|~t&i)+e[5]+1200080426|0,n=(n<<12|n>>>20)+t|0,i+=(n&t|~n&s)+e[6]-1473231341|0,i=(i<<17|i>>>15)+n|0,s+=(i&n|~i&t)+e[7]-45705983|0,s=(s<<22|s>>>10)+i|0,t+=(s&i|~s&n)+e[8]+1770035416|0,t=(t<<7|t>>>25)+s|0,n+=(t&s|~t&i)+e[9]-1958414417|0,n=(n<<12|n>>>20)+t|0,i+=(n&t|~n&s)+e[10]-42063|0,i=(i<<17|i>>>15)+n|0,s+=(i&n|~i&t)+e[11]-1990404162|0,s=(s<<22|s>>>10)+i|0,t+=(s&i|~s&n)+e[12]+1804603682|0,t=(t<<7|t>>>25)+s|0,n+=(t&s|~t&i)+e[13]-40341101|0,n=(n<<12|n>>>20)+t|0,i+=(n&t|~n&s)+e[14]-1502002290|0,i=(i<<17|i>>>15)+n|0,s+=(i&n|~i&t)+e[15]+1236535329|0,s=(s<<22|s>>>10)+i|0,t+=(s&n|i&~n)+e[1]-165796510|0,t=(t<<5|t>>>27)+s|0,n+=(t&i|s&~i)+e[6]-1069501632|0,n=(n<<9|n>>>23)+t|0,i+=(n&s|t&~s)+e[11]+643717713|0,i=(i<<14|i>>>18)+n|0,s+=(i&t|n&~t)+e[0]-373897302|0,s=(s<<20|s>>>12)+i|0,t+=(s&n|i&~n)+e[5]-701558691|0,t=(t<<5|t>>>27)+s|0,n+=(t&i|s&~i)+e[10]+38016083|0,n=(n<<9|n>>>23)+t|0,i+=(n&s|t&~s)+e[15]-660478335|0,i=(i<<14|i>>>18)+n|0,s+=(i&t|n&~t)+e[4]-405537848|0,s=(s<<20|s>>>12)+i|0,t+=(s&n|i&~n)+e[9]+568446438|0,t=(t<<5|t>>>27)+s|0,n+=(t&i|s&~i)+e[14]-1019803690|0,n=(n<<9|n>>>23)+t|0,i+=(n&s|t&~s)+e[3]-187363961|0,i=(i<<14|i>>>18)+n|0,s+=(i&t|n&~t)+e[8]+1163531501|0,s=(s<<20|s>>>12)+i|0,t+=(s&n|i&~n)+e[13]-1444681467|0,t=(t<<5|t>>>27)+s|0,n+=(t&i|s&~i)+e[2]-51403784|0,n=(n<<9|n>>>23)+t|0,i+=(n&s|t&~s)+e[7]+1735328473|0,i=(i<<14|i>>>18)+n|0,s+=(i&t|n&~t)+e[12]-1926607734|0,s=(s<<20|s>>>12)+i|0,t+=(s^i^n)+e[5]-378558|0,t=(t<<4|t>>>28)+s|0,n+=(t^s^i)+e[8]-2022574463|0,n=(n<<11|n>>>21)+t|0,i+=(n^t^s)+e[11]+1839030562|0,i=(i<<16|i>>>16)+n|0,s+=(i^n^t)+e[14]-35309556|0,s=(s<<23|s>>>9)+i|0,t+=(s^i^n)+e[1]-1530992060|0,t=(t<<4|t>>>28)+s|0,n+=(t^s^i)+e[4]+1272893353|0,n=(n<<11|n>>>21)+t|0,i+=(n^t^s)+e[7]-155497632|0,i=(i<<16|i>>>16)+n|0,s+=(i^n^t)+e[10]-1094730640|0,s=(s<<23|s>>>9)+i|0,t+=(s^i^n)+e[13]+681279174|0,t=(t<<4|t>>>28)+s|0,n+=(t^s^i)+e[0]-358537222|0,n=(n<<11|n>>>21)+t|0,i+=(n^t^s)+e[3]-722521979|0,i=(i<<16|i>>>16)+n|0,s+=(i^n^t)+e[6]+76029189|0,s=(s<<23|s>>>9)+i|0,t+=(s^i^n)+e[9]-640364487|0,t=(t<<4|t>>>28)+s|0,n+=(t^s^i)+e[12]-421815835|0,n=(n<<11|n>>>21)+t|0,i+=(n^t^s)+e[15]+530742520|0,i=(i<<16|i>>>16)+n|0,s+=(i^n^t)+e[2]-995338651|0,s=(s<<23|s>>>9)+i|0,t+=(i^(s|~n))+e[0]-198630844|0,t=(t<<6|t>>>26)+s|0,n+=(s^(t|~i))+e[7]+1126891415|0,n=(n<<10|n>>>22)+t|0,i+=(t^(n|~s))+e[14]-1416354905|0,i=(i<<15|i>>>17)+n|0,s+=(n^(i|~t))+e[5]-57434055|0,s=(s<<21|s>>>11)+i|0,t+=(i^(s|~n))+e[12]+1700485571|0,t=(t<<6|t>>>26)+s|0,n+=(s^(t|~i))+e[3]-1894986606|0,n=(n<<10|n>>>22)+t|0,i+=(t^(n|~s))+e[10]-1051523|0,i=(i<<15|i>>>17)+n|0,s+=(n^(i|~t))+e[1]-2054922799|0,s=(s<<21|s>>>11)+i|0,t+=(i^(s|~n))+e[8]+1873313359|0,t=(t<<6|t>>>26)+s|0,n+=(s^(t|~i))+e[15]-30611744|0,n=(n<<10|n>>>22)+t|0,i+=(t^(n|~s))+e[6]-1560198380|0,i=(i<<15|i>>>17)+n|0,s+=(n^(i|~t))+e[13]+1309151649|0,s=(s<<21|s>>>11)+i|0,t+=(i^(s|~n))+e[4]-145523070|0,t=(t<<6|t>>>26)+s|0,n+=(s^(t|~i))+e[11]-1120210379|0,n=(n<<10|n>>>22)+t|0,i+=(t^(n|~s))+e[2]+718787259|0,i=(i<<15|i>>>17)+n|0,s+=(n^(i|~t))+e[9]-343485551|0,s=(s<<21|s>>>11)+i|0,A[0]=t+A[0]|0,A[1]=s+A[1]|0,A[2]=i+A[2]|0,A[3]=n+A[3]|0}start(){return this._dataLength=0,this._bufferLength=0,this._state.set(oA.stateIdentity),this}appendStr(A){const e=this._buffer8,t=this._buffer32;let s,i,n=this._bufferLength;for(i=0;i<A.length;i+=1){if(s=A.charCodeAt(i),s<128)e[n++]=s;else if(s<2048)e[n++]=(s>>>6)+192,e[n++]=63&s|128;else if(s<55296||s>56319)e[n++]=(s>>>12)+224,e[n++]=s>>>6&63|128,e[n++]=63&s|128;else{if(s=1024*(s-55296)+(A.charCodeAt(++i)-56320)+65536,s>1114111)throw new Error("Unicode standard supports code points up to U+10FFFF");e[n++]=(s>>>18)+240,e[n++]=s>>>12&63|128,e[n++]=s>>>6&63|128,e[n++]=63&s|128}n>=64&&(this._dataLength+=64,oA._md5cycle(this._state,t),n-=64,t[0]=t[16])}return this._bufferLength=n,this}appendAsciiStr(A){const e=this._buffer8,t=this._buffer32;let s,i=this._bufferLength,n=0;for(;;){for(s=Math.min(A.length-n,64-i);s--;)e[i++]=A.charCodeAt(n++);if(i<64)break;this._dataLength+=64,oA._md5cycle(this._state,t),i=0}return this._bufferLength=i,this}appendByteArray(A){const e=this._buffer8,t=this._buffer32;let s,i=this._bufferLength,n=0;for(;;){for(s=Math.min(A.length-n,64-i);s--;)e[i++]=A[n++];if(i<64)break;this._dataLength+=64,oA._md5cycle(this._state,t),i=0}return this._bufferLength=i,this}getState(){const A=this,e=A._state;return{buffer:String.fromCharCode.apply(null,A._buffer8),buflen:A._bufferLength,length:A._dataLength,state:[e[0],e[1],e[2],e[3]]}}setState(A){const e=A.buffer,t=A.state,s=this._state;let i;for(this._dataLength=A.length,this._bufferLength=A.buflen,s[0]=t[0],s[1]=t[1],s[2]=t[2],s[3]=t[3],i=0;i<e.length;i+=1)this._buffer8[i]=e.charCodeAt(i)}end(A=!1){const e=this._bufferLength,t=this._buffer8,s=this._buffer32,i=1+(e>>2);let n;if(this._dataLength+=e,t[e]=128,t[e+1]=t[e+2]=t[e+3]=0,s.set(oA.buffer32Identity.subarray(i),i),e>55&&(oA._md5cycle(this._state,s),s.set(oA.buffer32Identity)),n=8*this._dataLength,n<=4294967295)s[14]=n;else{const A=n.toString(16).match(/(.*?)(.{0,8})$/);if(null===A)return;const e=parseInt(A[2],16),t=parseInt(A[1],16)||0;s[14]=e,s[15]=t}return oA._md5cycle(this._state,s),A?this._state:oA._hex(this._state)}}function rA(A){return oA.hashStr(A)}oA.stateIdentity=new Int32Array([1732584193,-271733879,-1732584194,271733878]),oA.buffer32Identity=new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),oA.hexChars="0123456789abcdef",oA.hexOut=[],oA.onePassHasher=new oA,"5d41402abc4b2a76b9719d911017c592"!==oA.hashStr("hello")&&console.error("Md5 self test failed.");class aA{constructor(A,e,t,s){this.logger=A.getLogger("sipjs.digestauthentication"),this.username=t,this.password=s,this.ha1=e,this.nc=0,this.ncHex="00000000"}authenticate(A,e,t){if(this.algorithm=e.algorithm,this.realm=e.realm,this.nonce=e.nonce,this.opaque=e.opaque,this.stale=e.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(e.qop)if(e.qop.indexOf("auth")>-1)this.qop="auth";else{if(!(e.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=A.method,this.uri=A.ruri,this.cnonce=w(12),this.nc+=1,this.updateNcHex(),4294967296===this.nc&&(this.nc=1,this.ncHex="00000001"),this.calculateResponse(t),!0}toString(){const A=[];if(!this.response)throw new Error("response field does not exist, cannot generate Authorization header");return A.push("algorithm="+this.algorithm),A.push('username="'+this.username+'"'),A.push('realm="'+this.realm+'"'),A.push('nonce="'+this.nonce+'"'),A.push('uri="'+this.uri+'"'),A.push('response="'+this.response+'"'),this.opaque&&A.push('opaque="'+this.opaque+'"'),this.qop&&(A.push("qop="+this.qop),A.push('cnonce="'+this.cnonce+'"'),A.push("nc="+this.ncHex)),"Digest "+A.join(", ")}updateNcHex(){const A=Number(this.nc).toString(16);this.ncHex="00000000".substr(0,8-A.length)+A}calculateResponse(A){let e,t;e=this.ha1,""!==e&&void 0!==e||(e=rA(this.username+":"+this.realm+":"+this.password)),"auth"===this.qop?(t=rA(this.method+":"+this.uri),this.response=rA(e+":"+this.nonce+":"+this.ncHex+":"+this.cnonce+":auth:"+t)):"auth-int"===this.qop?(t=rA(this.method+":"+this.uri+":"+rA(A||"")),this.response=rA(e+":"+this.nonce+":"+this.ncHex+":"+this.cnonce+":auth-int:"+t)):void 0===this.qop&&(t=rA(this.method+":"+this.uri),this.response=rA(e+":"+this.nonce+":"+t))}}!function(A){A[A.error=0]="error",A[A.warn=1]="warn",A[A.log=2]="log",A[A.debug=3]="debug"}(tA=tA||(tA={}));class VA{constructor(A,e,t){this.logger=A,this.category=e,this.label=t}error(A){this.genericLog(tA.error,A)}warn(A){this.genericLog(tA.warn,A)}log(A){this.genericLog(tA.log,A)}debug(A){this.genericLog(tA.debug,A)}genericLog(A,e){this.logger.genericLog(A,this.category,this.label,e)}get level(){return this.logger.level}set level(A){this.logger.level=A}}class cA{constructor(){this.builtinEnabled=!0,this._level=tA.log,this.loggers={},this.logger=this.getLogger("sip:loggerfactory")}get level(){return this._level}set level(A){A>=0&&A<=3?this._level=A:A>3?this._level=3:tA.hasOwnProperty(A)?this._level=A:this.logger.error("invalid 'level' parameter value: "+JSON.stringify(A))}get connector(){return this._connector}set connector(A){A?"function"==typeof A?this._connector=A:this.logger.error("invalid 'connector' parameter value: "+JSON.stringify(A)):this._connector=void 0}getLogger(A,e){if(e&&3===this.level)return new VA(this,A,e);if(this.loggers[A])return this.loggers[A];{const e=new VA(this,A);return this.loggers[A]=e,e}}genericLog(A,e,t,s){this.level>=A&&this.builtinEnabled&&this.print(A,e,t,s),this.connector&&this.connector(tA[A],e,t,s)}print(A,e,t,s){if("string"==typeof s){const A=[new Date,e];t&&A.push(t),s=A.concat(s).join(" | ")}switch(A){case tA.error:console.error(s);break;case tA.warn:console.warn(s);case tA.log:case tA.debug:}}}function hA(A,e){const t="\r\n";if(e.statusCode<100||e.statusCode>699)throw new TypeError("Invalid statusCode: "+e.statusCode);const s=e.reasonPhrase?e.reasonPhrase:M(e.statusCode);let i="SIP/2.0 "+e.statusCode+" "+s+t;e.statusCode>=100&&e.statusCode,e.statusCode;const n="From: "+A.getHeader("From")+t,o="Call-ID: "+A.callId+t,r="CSeq: "+A.cseq+" "+A.method+t,a=A.getHeaders("via").reduce((A,e)=>A+"Via: "+e+t,"");let V="To: "+A.getHeader("to");if(e.statusCode>100&&!A.parseHeader("to").hasParam("tag")){let A=e.toTag;A||(A=f()),V+=";tag="+A}V+=t;let c="";e.supported&&(c="Supported: "+e.supported.join(", ")+t);let h="";e.userAgent&&(h="User-Agent: "+e.userAgent+t);let l="";return e.extraHeaders&&(l=e.extraHeaders.reduce((A,e)=>A+e.trim()+t,"")),i+=a,i+=n,i+=V,i+=r,i+=o,i+=c,i+=h,i+=l,e.body?(i+="Content-Type: "+e.body.contentType+t,i+="Content-Length: "+Q(e.body.content)+t+t,i+=e.body.content):i+="Content-Length: 0\r\n\r\n",{message:i}}!function(A){function e(A,e){let t=e,s=0,i=0;if(A.substring(t,t+2).match(/(^\r\n)/))return-2;for(;0===s;){if(i=A.indexOf("\r\n",t),-1===i)return i;!A.substring(i+2,i+4).match(/(^\r\n)/)&&A.charAt(i+2).match(/(^\s+)/)?t=i+2:s=i}return s}function t(A,e,t,s){const i=e.indexOf(":",t),n=e.substring(t,i).trim(),o=e.substring(i+1,s).trim();let r;switch(n.toLowerCase()){case"via":case"v":A.addHeader("via",o),1===A.getHeaders("via").length?(r=A.parseHeader("Via"),r&&(A.via=r,A.viaBranch=r.branch)):r=0;break;case"from":case"f":A.setHeader("from",o),r=A.parseHeader("from"),r&&(A.from=r,A.fromTag=r.getParam("tag"));break;case"to":case"t":A.setHeader("to",o),r=A.parseHeader("to"),r&&(A.to=r,A.toTag=r.getParam("tag"));break;case"record-route":if(r=E.parse(o,"Record_Route"),-1===r){r=void 0;break}if(!(r instanceof Array)){r=void 0;break}r.forEach(e=>{A.addHeader("record-route",o.substring(e.position,e.offset)),A.headers["Record-Route"][A.getHeaders("record-route").length-1].parsed=e.parsed});break;case"call-id":case"i":A.setHeader("call-id",o),r=A.parseHeader("call-id"),r&&(A.callId=o);break;case"contact":case"m":if(r=E.parse(o,"Contact"),-1===r){r=void 0;break}if(!(r instanceof Array)){r=void 0;break}r.forEach(e=>{A.addHeader("contact",o.substring(e.position,e.offset)),A.headers.Contact[A.getHeaders("contact").length-1].parsed=e.parsed});break;case"content-length":case"l":A.setHeader("content-length",o),r=A.parseHeader("content-length");break;case"content-type":case"c":A.setHeader("content-type",o),r=A.parseHeader("content-type");break;case"cseq":A.setHeader("cseq",o),r=A.parseHeader("cseq"),r&&(A.cseq=r.value),A instanceof y&&(A.method=r.method);break;case"max-forwards":A.setHeader("max-forwards",o),r=A.parseHeader("max-forwards");break;case"www-authenticate":A.setHeader("www-authenticate",o),r=A.parseHeader("www-authenticate");break;case"proxy-authenticate":A.setHeader("proxy-authenticate",o),r=A.parseHeader("proxy-authenticate");break;case"refer-to":case"r":A.setHeader("refer-to",o),r=A.parseHeader("refer-to"),r&&(A.referTo=r);break;default:A.addHeader(n.toLowerCase(),o),r=0}return void 0!==r||{error:"error parsing header '"+n+"'"}}A.getHeader=e,A.parseHeader=t,A.parseMessage=function(A,s){let i=0,n=A.indexOf("\r\n");if(-1===n)return void s.warn("no CRLF found, not a SIP message, discarded");const o=A.substring(0,n),r=E.parse(o,"Request_Response");let a,V;if(-1!==r){for(r.status_code?(a=new y,a.statusCode=r.status_code,a.reasonPhrase=r.reason_phrase):(a=new T,a.method=r.method,a.ruri=r.uri),a.data=A,i=n+2;;){if(n=e(A,i),-2===n){V=i+2;break}if(-1===n)return void s.error("malformed message");const o=t(a,A,i,n);if(o&&!0!==o)return void s.error(o.error);i=n+2}return a.hasHeader("content-length")?a.body=A.substr(V,Number(a.getHeader("content-length"))):a.body=A.substring(V),a}s.warn('error parsing first line of SIP message: "'+o+'"')}}(sA=sA||(sA={}));class lA extends t{constructor(A){super(A||"Unspecified transport error.")}}class gA{constructor(A,e,t,s,i){this._transport=A,this._user=e,this._id=t,this._state=s,this.listeners=new Array,this.logger=e.loggerFactory.getLogger(i,t),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}addStateChangeListener(A,e){const t=()=>{this.removeStateChangeListener(t),A()};!0===(null==e?void 0:e.once)?this.listeners.push(t):this.listeners.push(A)}notifyStateChangeListeners(){this.listeners.slice().forEach(A=>A())}removeStateChangeListener(A){this.listeners=this.listeners.filter(e=>e!==A)}logTransportError(A,e){this.logger.error(A.message),this.logger.error(`Transport error occurred in ${this.typeToString()} with id ${this.id}.`),this.logger.error(e)}send(A){return this.transport.send(A).catch(A=>{if(A instanceof lA)throw this.onTransportError(A),A;let e;throw e=A&&"string"==typeof A.message?new lA(A.message):new lA,this.onTransportError(e),e})}setState(A){this.logger.debug(`State change to "${A}" on ${this.typeToString()} with id ${this.id}.`),this._state=A,this._user.onStateChange&&this._user.onStateChange(A),this.notifyStateChangeListeners()}typeToString(){return"UnknownType"}}class qA extends gA{constructor(A,e,t,s,i){super(e,t,A.viaBranch,s,i),this._request=A,this.user=t}get request(){return this._request}}!function(A){A.Accepted="Accepted",A.Calling="Calling",A.Completed="Completed",A.Confirmed="Confirmed",A.Proceeding="Proceeding",A.Terminated="Terminated",A.Trying="Trying"}(iA=iA||(iA={}));class dA extends qA{constructor(A,e,t){super(A,e,t,iA.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(A){switch(this.state){case iA.Proceeding:if(A.method===N.INVITE)return void(this.lastProvisionalResponse&&this.send(this.lastProvisionalResponse).catch(A=>{this.logTransportError(A,"Failed to send retransmission of provisional response.")}));break;case iA.Accepted:if(A.method===N.INVITE)return;break;case iA.Completed:if(A.method===N.INVITE){if(!this.lastFinalResponse)throw new Error("Last final response undefined.");return void this.send(this.lastFinalResponse).catch(A=>{this.logTransportError(A,"Failed to send retransmission of final response.")})}if(A.method===N.ACK)return void this.stateTransition(iA.Confirmed);break;case iA.Confirmed:case iA.Terminated:if(A.method===N.INVITE||A.method===N.ACK)return;break;default:throw new Error(`Invalid state ${this.state}`)}const e=`INVITE server transaction received unexpected ${A.method} request while in state ${this.state}.`;this.logger.warn(e)}receiveResponse(A,e){if(A<100||A>699)throw new Error(`Invalid status code ${A}`);switch(this.state){case iA.Proceeding:if(A>=100&&A<=199)return this.lastProvisionalResponse=e,A>100&&this.startProgressExtensionTimer(),void this.send(e).catch(A=>{this.logTransportError(A,"Failed to send 1xx response.")});if(A>=200&&A<=299)return this.lastFinalResponse=e,this.stateTransition(iA.Accepted),void this.send(e).catch(A=>{this.logTransportError(A,"Failed to send 2xx response.")});if(A>=300&&A<=699)return this.lastFinalResponse=e,this.stateTransition(iA.Completed),void this.send(e).catch(A=>{this.logTransportError(A,"Failed to send non-2xx final response.")});break;case iA.Accepted:if(A>=200&&A<=299)return void this.send(e).catch(A=>{this.logTransportError(A,"Failed to send 2xx response.")});break;case iA.Completed:case iA.Confirmed:case iA.Terminated:break;default:throw new Error(`Invalid state ${this.state}`)}const t=`INVITE server transaction received unexpected ${A} response from TU while in state ${this.state}.`;throw this.logger.error(t),new Error(t)}retransmitAcceptedResponse(){this.state===iA.Accepted&&this.lastFinalResponse&&this.send(this.lastFinalResponse).catch(A=>{this.logTransportError(A,"Failed to send 2xx response.")})}onTransportError(A){this.user.onTransportError&&this.user.onTransportError(A)}typeToString(){return"INVITE server transaction"}stateTransition(A){const e=()=>{throw new Error(`Invalid state transition from ${this.state} to ${A}`)};switch(A){case iA.Proceeding:e();break;case iA.Accepted:case iA.Completed:this.state!==iA.Proceeding&&e();break;case iA.Confirmed:this.state!==iA.Completed&&e();break;case iA.Terminated:this.state!==iA.Accepted&&this.state!==iA.Completed&&this.state!==iA.Confirmed&&e();break;default:e()}this.stopProgressExtensionTimer(),A===iA.Accepted&&(this.L=setTimeout(()=>this.timerL(),v.TIMER_L)),A===iA.Completed&&(this.H=setTimeout(()=>this.timerH(),v.TIMER_H)),A===iA.Confirmed&&(this.I=setTimeout(()=>this.timerI(),v.TIMER_I)),A===iA.Terminated&&this.dispose(),this.setState(A)}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(A=>{this.logTransportError(A,"Failed to send retransmission of provisional response.")})},v.PROVISIONAL_RESPONSE_INTERVAL))}stopProgressExtensionTimer(){void 0!==this.progressExtensionTimer&&(clearInterval(this.progressExtensionTimer),this.progressExtensionTimer=void 0)}timerG(){}timerH(){this.logger.debug(`Timer H expired for INVITE server transaction ${this.id}.`),this.state===iA.Completed&&(this.logger.warn("ACK to negative final response was never received, terminating transaction."),this.stateTransition(iA.Terminated))}timerI(){this.logger.debug(`Timer I expired for INVITE server transaction ${this.id}.`),this.stateTransition(iA.Terminated)}timerL(){this.logger.debug(`Timer L expired for INVITE server transaction ${this.id}.`),this.state===iA.Accepted&&this.stateTransition(iA.Terminated)}}class uA extends gA{constructor(A,e,t,s,i){super(e,t,uA.makeId(A),s,i),this._request=A,this.user=t,A.setViaHeader(this.id,e.protocol)}static makeId(A){if("CANCEL"===A.method){if(!A.branch)throw new Error("Outgoing CANCEL request without a branch.");return A.branch}return"z9hG4bK"+Math.floor(1e7*Math.random())}get request(){return this._request}onRequestTimeout(){this.user.onRequestTimeout&&this.user.onRequestTimeout()}}class pA extends uA{constructor(A,e,t){super(A,e,t,iA.Trying,"sip.transaction.nict"),this.F=setTimeout(()=>this.timerF(),v.TIMER_F),this.send(A.toString()).catch(A=>{this.logTransportError(A,"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(A){const e=A.statusCode;if(!e||e<100||e>699)throw new Error(`Invalid status code ${e}`);switch(this.state){case iA.Trying:if(e>=100&&e<=199)return this.stateTransition(iA.Proceeding),void(this.user.receiveResponse&&this.user.receiveResponse(A));if(e>=200&&e<=699)return this.stateTransition(iA.Completed),408===e?void this.onRequestTimeout():void(this.user.receiveResponse&&this.user.receiveResponse(A));break;case iA.Proceeding:if(e>=100&&e<=199&&this.user.receiveResponse)return this.user.receiveResponse(A);if(e>=200&&e<=699)return this.stateTransition(iA.Completed),408===e?void this.onRequestTimeout():void(this.user.receiveResponse&&this.user.receiveResponse(A));break;case iA.Completed:case iA.Terminated:return;default:throw new Error(`Invalid state ${this.state}`)}const t=`Non-INVITE client transaction received unexpected ${e} response while in state ${this.state}.`;this.logger.warn(t)}onTransportError(A){this.user.onTransportError&&this.user.onTransportError(A),this.stateTransition(iA.Terminated,!0)}typeToString(){return"non-INVITE client transaction"}stateTransition(A,e=!1){const t=()=>{throw new Error(`Invalid state transition from ${this.state} to ${A}`)};switch(A){case iA.Trying:t();break;case iA.Proceeding:this.state!==iA.Trying&&t();break;case iA.Completed:this.state!==iA.Trying&&this.state!==iA.Proceeding&&t();break;case iA.Terminated:this.state!==iA.Trying&&this.state!==iA.Proceeding&&this.state!==iA.Completed&&(e||t());break;default:t()}A===iA.Completed&&(this.F&&(clearTimeout(this.F),this.F=void 0),this.K=setTimeout(()=>this.timerK(),v.TIMER_K)),A===iA.Terminated&&this.dispose(),this.setState(A)}timerF(){this.logger.debug(`Timer F expired for non-INVITE client transaction ${this.id}.`),this.state!==iA.Trying&&this.state!==iA.Proceeding||(this.onRequestTimeout(),this.stateTransition(iA.Terminated))}timerK(){this.state===iA.Completed&&this.stateTransition(iA.Terminated)}}class mA{constructor(A,e){this.core=A,this.dialogState=e,this.core.dialogs.set(this.id,this)}static initialDialogStateForUserAgentClient(A,e){const t=e.getHeaders("record-route").reverse(),s=e.parseHeader("contact");if(!s)throw new Error("Contact undefined.");if(!(s instanceof q))throw new Error("Contact not instance of NameAddrHeader.");const i=s.uri,n=A.cseq,o=A.callId,r=A.fromTag,a=e.toTag;if(!o)throw new Error("Call id undefined.");if(!r)throw new Error("From tag undefined.");if(!a)throw new Error("To tag undefined.");if(!A.from)throw new Error("From undefined.");if(!A.to)throw new Error("To undefined.");const V=A.from.uri,c=A.to.uri;if(!e.statusCode)throw new Error("Incoming response status code undefined.");return{id:o+r+a,early:e.statusCode<200,callId:o,localTag:r,remoteTag:a,localSequenceNumber:n,remoteSequenceNumber:undefined,localURI:V,remoteURI:c,remoteTarget:i,routeSet:t,secure:!1}}static initialDialogStateForUserAgentServer(A,e,t=!1){const s=A.getHeaders("record-route"),i=A.parseHeader("contact");if(!i)throw new Error("Contact undefined.");if(!(i instanceof q))throw new Error("Contact not instance of NameAddrHeader.");const n=i.uri,o=A.cseq,r=A.callId,a=e,V=A.fromTag,c=A.from.uri;return{id:r+a+V,early:t,callId:r,localTag:a,remoteTag:V,localSequenceNumber:undefined,remoteSequenceNumber:o,localURI:A.to.uri,remoteURI:c,remoteTarget:n,routeSet:s,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(A){if(A.method!==N.ACK){if(this.remoteSequenceNumber){if(A.cseq<=this.remoteSequenceNumber)throw new Error("Out of sequence in dialog request. Did you forget to call sequenceGuard()?");this.dialogState.remoteSequenceNumber=A.cseq}this.remoteSequenceNumber||(this.dialogState.remoteSequenceNumber=A.cseq)}}recomputeRouteSet(A){this.dialogState.routeSet=A.getHeaders("record-route").reverse()}createOutgoingRequestMessage(A,e){const t=this.remoteURI,s=this.remoteTag,i=this.localURI,n=this.localTag,o=this.callId;let r;r=e&&e.cseq?e.cseq:this.dialogState.localSequenceNumber?this.dialogState.localSequenceNumber+=1:this.dialogState.localSequenceNumber=1;const a=this.remoteTarget,V=this.routeSet,c=e&&e.extraHeaders,h=e&&e.body;return this.userAgentCore.makeOutgoingRequestMessage(A,a,i,t,{callId:o,cseq:r,fromTag:n,toTag:s,routeSet:V},c,h)}incrementLocalSequenceNumber(){if(!this.dialogState.localSequenceNumber)throw new Error("Local sequence number undefined.");this.dialogState.localSequenceNumber+=1}sequenceGuard(A){return A.method===N.ACK||(!(this.remoteSequenceNumber&&A.cseq<=this.remoteSequenceNumber)||(this.core.replyStateless(A,{statusCode:500}),!1))}}class CA extends uA{constructor(A,e,t){super(A,e,t,iA.Calling,"sip.transaction.ict"),this.ackRetransmissionCache=new Map,this.B=setTimeout(()=>this.timerB(),v.TIMER_B),this.send(A.toString()).catch(A=>{this.logTransportError(A,"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(A){const e=A.toTag;if(!e)throw new Error("To tag undefined.");const t="z9hG4bK"+Math.floor(1e7*Math.random());A.setViaHeader(t,this.transport.protocol),this.ackRetransmissionCache.set(e,A),this.send(A.toString()).catch(A=>{this.logTransportError(A,"Failed to send ACK to 2xx response.")})}receiveResponse(A){const e=A.statusCode;if(!e||e<100||e>699)throw new Error(`Invalid status code ${e}`);switch(this.state){case iA.Calling:if(e>=100&&e<=199)return this.stateTransition(iA.Proceeding),void(this.user.receiveResponse&&this.user.receiveResponse(A));if(e>=200&&e<=299)return this.ackRetransmissionCache.set(A.toTag,void 0),this.stateTransition(iA.Accepted),void(this.user.receiveResponse&&this.user.receiveResponse(A));if(e>=300&&e<=699)return this.stateTransition(iA.Completed),this.ack(A),void(this.user.receiveResponse&&this.user.receiveResponse(A));break;case iA.Proceeding:if(e>=100&&e<=199)return void(this.user.receiveResponse&&this.user.receiveResponse(A));if(e>=200&&e<=299)return this.ackRetransmissionCache.set(A.toTag,void 0),this.stateTransition(iA.Accepted),void(this.user.receiveResponse&&this.user.receiveResponse(A));if(e>=300&&e<=699)return this.stateTransition(iA.Completed),this.ack(A),void(this.user.receiveResponse&&this.user.receiveResponse(A));break;case iA.Accepted:if(e>=200&&e<=299){if(!this.ackRetransmissionCache.has(A.toTag))return this.ackRetransmissionCache.set(A.toTag,void 0),void(this.user.receiveResponse&&this.user.receiveResponse(A));const e=this.ackRetransmissionCache.get(A.toTag);return e?void this.send(e.toString()).catch(A=>{this.logTransportError(A,"Failed to send retransmission of ACK to 2xx response.")}):void 0}break;case iA.Completed:if(e>=300&&e<=699)return void this.ack(A);break;case iA.Terminated:break;default:throw new Error(`Invalid state ${this.state}`)}const t=`Received unexpected ${e} response while in state ${this.state}.`;this.logger.warn(t)}onTransportError(A){this.user.onTransportError&&this.user.onTransportError(A),this.stateTransition(iA.Terminated,!0)}typeToString(){return"INVITE client transaction"}ack(A){const e=this.request.ruri,t=this.request.callId,s=this.request.cseq,i=this.request.getHeader("from"),n=A.getHeader("to"),o=this.request.getHeader("via"),r=this.request.getHeader("route");if(!i)throw new Error("From undefined.");if(!n)throw new Error("To undefined.");if(!o)throw new Error("Via undefined.");let a=`ACK ${e} SIP/2.0\r\n`;r&&(a+=`Route: ${r}\r\n`),a+=`Via: ${o}\r\n`,a+=`To: ${n}\r\n`,a+=`From: ${i}\r\n`,a+=`Call-ID: ${t}\r\n`,a+=`CSeq: ${s} ACK\r\n`,a+="Max-Forwards: 70\r\n",a+="Content-Length: 0\r\n\r\n",this.send(a).catch(A=>{this.logTransportError(A,"Failed to send ACK to non-2xx response.")})}stateTransition(A,e=!1){const t=()=>{throw new Error(`Invalid state transition from ${this.state} to ${A}`)};switch(A){case iA.Calling:t();break;case iA.Proceeding:this.state!==iA.Calling&&t();break;case iA.Accepted:case iA.Completed:this.state!==iA.Calling&&this.state!==iA.Proceeding&&t();break;case iA.Terminated:this.state!==iA.Calling&&this.state!==iA.Accepted&&this.state!==iA.Completed&&(e||t());break;default:t()}this.B&&(clearTimeout(this.B),this.B=void 0),iA.Proceeding,A===iA.Completed&&(this.D=setTimeout(()=>this.timerD(),v.TIMER_D)),A===iA.Accepted&&(this.M=setTimeout(()=>this.timerM(),v.TIMER_M)),A===iA.Terminated&&this.dispose(),this.setState(A)}timerA(){}timerB(){this.logger.debug(`Timer B expired for INVITE client transaction ${this.id}.`),this.state===iA.Calling&&(this.onRequestTimeout(),this.stateTransition(iA.Terminated))}timerD(){this.logger.debug(`Timer D expired for INVITE client transaction ${this.id}.`),this.state===iA.Completed&&this.stateTransition(iA.Terminated)}timerM(){this.logger.debug(`Timer M expired for INVITE client transaction ${this.id}.`),this.state===iA.Accepted&&this.stateTransition(iA.Terminated)}}class EA{constructor(A,e,t,s){this.transactionConstructor=A,this.core=e,this.message=t,this.delegate=s,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(A,e={}){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 t=this.core.makeOutgoingRequestMessage(N.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},e.extraHeaders);return t.branch=this.message.branch,this.message.headers.Route&&(t.headers.Route=this.message.headers.Route),A&&t.setHeader("Reason",A),this.transaction.state===iA.Proceeding?new EA(pA,this.core,t):this.transaction.addStateChangeListener(()=>{this.transaction&&this.transaction.state===iA.Proceeding&&new EA(pA,this.core,t)},{once:!0}),t}authenticationGuard(A,e){const t=A.statusCode;if(!t)throw new Error("Response status code undefined.");if(401!==t&&407!==t)return!0;let s,i;if(401===t?(s=A.parseHeader("www-authenticate"),i="authorization"):(s=A.parseHeader("proxy-authenticate"),i="proxy-authorization"),!s)return this.logger.warn(t+" with wrong or missing challenge, cannot authenticate"),!0;if(this.challenged&&(this.stale||!0!==s.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,s))return!0;this.challenged=!0,s.stale&&(this.stale=!0);let n=this.message.cseq+=1;return e&&e.localSequenceNumber&&(e.incrementLocalSequenceNumber(),n=this.message.cseq=e.localSequenceNumber),this.message.setHeader("cseq",n+" "+this.message.method),this.message.setHeader(i,this.credentials.toString()),this.init(),!1}onRequestTimeout(){this.logger.warn("User agent client request timed out. Generating internal 408 Request Timeout.");const A=new y;A.statusCode=408,A.reasonPhrase="Request Timeout",this.receiveResponse(A)}onTransportError(A){this.logger.error(A.message),this.logger.error("User agent client request transport error. Generating internal 503 Service Unavailable.");const e=new y;e.statusCode=503,e.reasonPhrase="Service Unavailable",this.receiveResponse(e)}receiveResponse(A){if(!this.authenticationGuard(A))return;const e=A.statusCode?A.statusCode.toString():"";if(!e)throw new Error("Response status code undefined.");switch(!0){case/^100$/.test(e):this.delegate&&this.delegate.onTrying&&this.delegate.onTrying({message:A});break;case/^1[0-9]{2}$/.test(e):this.delegate&&this.delegate.onProgress&&this.delegate.onProgress({message:A});break;case/^2[0-9]{2}$/.test(e):this.delegate&&this.delegate.onAccept&&this.delegate.onAccept({message:A});break;case/^3[0-9]{2}$/.test(e):this.delegate&&this.delegate.onRedirect&&this.delegate.onRedirect({message:A});break;case/^[4-6][0-9]{2}$/.test(e):this.delegate&&this.delegate.onReject&&this.delegate.onReject({message:A});break;default:throw new Error(`Invalid status code ${e}`)}}init(){const A={loggerFactory:this.loggerFactory,onRequestTimeout:()=>this.onRequestTimeout(),onStateChange:A=>{A===iA.Terminated&&(this.core.userAgentClients.delete(t),e===this._transaction&&this.dispose())},onTransportError:A=>this.onTransportError(A),receiveResponse:A=>this.receiveResponse(A)},e=new this.transactionConstructor(this.message,this.core.transport,A);this._transaction=e;const t=e.id+e.request.method;this.core.userAgentClients.set(t,this)}}class IA extends EA{constructor(A,e,t){const s=A.createOutgoingRequestMessage(N.BYE,t);super(pA,A.userAgentCore,s,e),A.dispose()}}class wA extends qA{constructor(A,e,t){super(A,e,t,iA.Trying,"sip.transaction.nist")}dispose(){this.J&&(clearTimeout(this.J),this.J=void 0),super.dispose()}get kind(){return"nist"}receiveRequest(A){switch(this.state){case iA.Trying:break;case iA.Proceeding:if(!this.lastResponse)throw new Error("Last response undefined.");this.send(this.lastResponse).catch(A=>{this.logTransportError(A,"Failed to send retransmission of provisional response.")});break;case iA.Completed:if(!this.lastResponse)throw new Error("Last response undefined.");this.send(this.lastResponse).catch(A=>{this.logTransportError(A,"Failed to send retransmission of final response.")});break;case iA.Terminated:break;default:throw new Error(`Invalid state ${this.state}`)}}receiveResponse(A,e){if(A<100||A>699)throw new Error(`Invalid status code ${A}`);if(A>100&&A<=199)throw new Error("Provisional response other than 100 not allowed.");switch(this.state){case iA.Trying:if(this.lastResponse=e,A>=100&&A<200)return this.stateTransition(iA.Proceeding),void this.send(e).catch(A=>{this.logTransportError(A,"Failed to send provisional response.")});if(A>=200&&A<=699)return this.stateTransition(iA.Completed),void this.send(e).catch(A=>{this.logTransportError(A,"Failed to send final response.")});break;case iA.Proceeding:if(this.lastResponse=e,A>=200&&A<=699)return this.stateTransition(iA.Completed),void this.send(e).catch(A=>{this.logTransportError(A,"Failed to send final response.")});break;case iA.Completed:return;case iA.Terminated:break;default:throw new Error(`Invalid state ${this.state}`)}const t=`Non-INVITE server transaction received unexpected ${A} response from TU while in state ${this.state}.`;throw this.logger.error(t),new Error(t)}onTransportError(A){this.user.onTransportError&&this.user.onTransportError(A),this.stateTransition(iA.Terminated,!0)}typeToString(){return"non-INVITE server transaction"}stateTransition(A,e=!1){const t=()=>{throw new Error(`Invalid state transition from ${this.state} to ${A}`)};switch(A){case iA.Trying:t();break;case iA.Proceeding:this.state!==iA.Trying&&t();break;case iA.Completed:this.state!==iA.Trying&&this.state!==iA.Proceeding&&t();break;case iA.Terminated:this.state!==iA.Proceeding&&this.state!==iA.Completed&&(e||t());break;default:t()}A===iA.Completed&&(this.J=setTimeout(()=>this.timerJ(),v.TIMER_J)),A===iA.Terminated&&this.dispose(),this.setState(A)}timerJ(){this.logger.debug(`Timer J expired for NON-INVITE server transaction ${this.id}.`),this.state===iA.Completed&&this.stateTransition(iA.Terminated)}}class MA{constructor(A,e,t,s){this.transactionConstructor=A,this.core=e,this.message=t,this.delegate=s,this.logger=this.loggerFactory.getLogger("sip.user-agent-server"),this.toTag=t.toTag?t.toTag:f(),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(A={statusCode:200}){if(!this.acceptable)throw new x(`${this.message.method} not acceptable in state ${this.transaction.state}.`);const e=A.statusCode;if(e<200||e>299)throw new TypeError(`Invalid statusCode: ${e}`);return this.reply(A)}progress(A={statusCode:180}){if(!this.progressable)throw new x(`${this.message.method} not progressable in state ${this.transaction.state}.`);const e=A.statusCode;if(e<101||e>199)throw new TypeError(`Invalid statusCode: ${e}`);return this.reply(A)}redirect(A,e={statusCode:302}){if(!this.redirectable)throw new x(`${this.message.method} not redirectable in state ${this.transaction.state}.`);const t=e.statusCode;if(t<300||t>399)throw new TypeError(`Invalid statusCode: ${t}`);const s=new Array;A.forEach(A=>s.push(`Contact: ${A.toString()}`)),e.extraHeaders=(e.extraHeaders||[]).concat(s);return this.reply(e)}reject(A={statusCode:480}){if(!this.rejectable)throw new x(`${this.message.method} not rejectable in state ${this.transaction.state}.`);const e=A.statusCode;if(e<400||e>699)throw new TypeError(`Invalid statusCode: ${e}`);return this.reply(A)}trying(A){if(!this.tryingable)throw new x(`${this.message.method} not tryingable in state ${this.transaction.state}.`);return this.reply({statusCode:100})}receiveCancel(A){this.delegate&&this.delegate.onCancel&&this.delegate.onCancel(A)}get acceptable(){if(this.transaction instanceof dA)return this.transaction.state===iA.Proceeding||this.transaction.state===iA.Accepted;if(this.transaction instanceof wA)return this.transaction.state===iA.Trying||this.transaction.state===iA.Proceeding;throw new Error("Unknown transaction type.")}get progressable(){if(this.transaction instanceof dA)return this.transaction.state===iA.Proceeding;if(this.transaction instanceof wA)return!1;throw new Error("Unknown transaction type.")}get redirectable(){if(this.transaction instanceof dA)return this.transaction.state===iA.Proceeding;if(this.transaction instanceof wA)return this.transaction.state===iA.Trying||this.transaction.state===iA.Proceeding;throw new Error("Unknown transaction type.")}get rejectable(){if(this.transaction instanceof dA)return this.transaction.state===iA.Proceeding;if(this.transaction instanceof wA)return this.transaction.state===iA.Trying||this.transaction.state===iA.Proceeding;throw new Error("Unknown transaction type.")}get tryingable(){if(this.transaction instanceof dA)return this.transaction.state===iA.Proceeding;if(this.transaction instanceof wA)return this.transaction.state===iA.Trying;throw new Error("Unknown transaction type.")}reply(A){A.toTag||100===A.statusCode||(A.toTag=this.toTag),A.userAgent=A.userAgent||this.core.configuration.userAgentHeaderFieldValue,A.supported=A.supported||this.core.configuration.supportedOptionTagsResponse;const e=hA(this.message,A);return this.transaction.receiveResponse(A.statusCode,e.message),e}init(){const A={loggerFactory:this.loggerFactory,onStateChange:A=>{A===iA.Terminated&&(this.core.userAgentServers.delete(t),this.dispose())},onTransportError:A=>{this.logger.error(A.message),this.delegate&&this.delegate.onTransportError?this.delegate.onTransportError(A):this.logger.error("User agent server response transport error.")}},e=new this.transactionConstructor(this.message,this.core.transport,A);this._transaction=e;const t=e.id;this.core.userAgentServers.set(e.id,this)}}class fA extends MA{constructor(A,e,t){super(wA,A.userAgentCore,e,t)}}class BA extends EA{constructor(A,e,t){const s=A.createOutgoingRequestMessage(N.INFO,t);super(pA,A.userAgentCore,s,e)}}class QA extends MA{constructor(A,e,t){super(wA,A.userAgentCore,e,t)}}class SA extends EA{constructor(A,e,t){super(pA,A,e,t)}}class TA extends MA{constructor(A,e,t){super(wA,A,e,t)}}class yA extends EA{constructor(A,e,t){const s=A.createOutgoingRequestMessage(N.NOTIFY,t);super(pA,A.userAgentCore,s,e)}}class RA extends MA{constructor(A,e,t){const s=void 0!==A.userAgentCore?A.userAgentCore:A;super(wA,s,e,t)}}class DA extends EA{constructor(A,e,t){const s=A.createOutgoingRequestMessage(N.PRACK,t);super(pA,A.userAgentCore,s,e),A.signalingStateTransition(s)}}class UA extends MA{constructor(A,e,t){super(wA,A.userAgentCore,e,t),A.signalingStateTransition(e),this.dialog=A}accept(A={statusCode:200}){return A.body&&this.dialog.signalingStateTransition(A.body),super.accept(A)}}class kA extends EA{constructor(A,e,t){const s=A.createOutgoingRequestMessage(N.INVITE,t);super(CA,A.userAgentCore,s,e),this.delegate=e,A.signalingStateTransition(s),A.reinviteUserAgentClient=this,this.dialog=A}receiveResponse(A){if(!this.authenticationGuard(A,this.dialog))return;const e=A.statusCode?A.statusCode.toString():"";if(!e)throw new Error("Response status code undefined.");switch(!0){case/^100$/.test(e):this.delegate&&this.delegate.onTrying&&this.delegate.onTrying({message:A});break;case/^1[0-9]{2}$/.test(e):this.delegate&&this.delegate.onProgress&&this.delegate.onProgress({message:A,session:this.dialog,prack:A=>{throw new Error("Unimplemented.")}});break;case/^2[0-9]{2}$/.test(e):this.dialog.signalingStateTransition(A),this.delegate&&this.delegate.onAccept&&this.delegate.onAccept({message:A,session:this.dialog,ack:A=>this.dialog.ack(A)});break;case/^3[0-9]{2}$/.test(e):this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentClient=void 0,this.delegate&&this.delegate.onRedirect&&this.delegate.onRedirect({message:A});break;case/^[4-6][0-9]{2}$/.test(e):this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentClient=void 0,this.delegate&&this.delegate.onReject&&this.delegate.onReject({message:A});break;default:throw new Error(`Invalid status code ${e}`)}}}class GA extends MA{constructor(A,e,t){super(dA,A.userAgentCore,e,t),A.reinviteUserAgentServer=this,this.dialog=A}accept(A={statusCode:200}){A.extraHeaders=A.extraHeaders||[],A.extraHeaders=A.extraHeaders.concat(this.dialog.routeSet.map(A=>`Record-Route: ${A}`));const e=super.accept(A),t=this.dialog,s=Object.assign(Object.assign({},e),{session:t});return A.body&&this.dialog.signalingStateTransition(A.body),this.dialog.reConfirm(),s}progress(A={statusCode:180}){const e=super.progress(A),t=this.dialog,s=Object.assign(Object.assign({},e),{session:t});return A.body&&this.dialog.signalingStateTransition(A.body),s}redirect(A,e={statusCode:302}){throw this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentServer=void 0,new Error("Unimplemented.")}reject(A={statusCode:488}){return this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentServer=void 0,super.reject(A)}}class FA extends EA{constructor(A,e,t){const s=A.createOutgoingRequestMessage(N.REFER,t);super(pA,A.userAgentCore,s,e)}}class YA extends MA{constructor(A,e,t){const s=void 0!==A.userAgentCore?A.userAgentCore:A;super(wA,s,e,t)}}class ZA extends mA{constructor(A,e,t,s){super(e,t),this.initialTransaction=A,this._signalingState=Y.Initial,this.ackWait=!1,this.ackProcessing=!1,this.delegate=s,A instanceof dA&&(this.ackWait=!0),this.early||this.start2xxRetransmissionTimer(),this.signalingStateTransition(A.request),this.logger=e.loggerFactory.getLogger("sip.invite-dialog"),this.logger.log(`INVITE dialog ${this.id} constructed`)}dispose(){super.dispose(),this._signalingState=Y.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?F.Early:this.ackWait?F.AckWait:this._signalingState===Y.Closed?F.Terminated:F.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(A={}){let e;if(this.logger.log(`INVITE dialog ${this.id} sending ACK request`),this.reinviteUserAgentClient){if(!(this.reinviteUserAgentClient.transaction instanceof CA))throw new Error("Transaction not instance of InviteClientTransaction.");e=this.reinviteUserAgentClient.transaction,this.reinviteUserAgentClient=void 0}else{if(!(this.initialTransaction instanceof CA))throw new Error("Initial transaction not instance of InviteClientTransaction.");e=this.initialTransaction}const t=this.createOutgoingRequestMessage(N.ACK,{cseq:e.request.cseq,extraHeaders:A.extraHeaders,body:A.body});return e.ackResponse(t),this.signalingStateTransition(t),{message:t}}bye(A,e){if(this.logger.log(`INVITE dialog ${this.id} sending BYE request`),this.initialTransaction instanceof dA){if(this.early)throw new Error("UAS MUST NOT send a BYE on early dialogs.");if(this.ackWait&&this.initialTransaction.state!==iA.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 IA(this,A,e)}info(A,e){if(this.logger.log(`INVITE dialog ${this.id} sending INFO request`),this.early)throw new Error("Dialog not confirmed.");return new BA(this,A,e)}invite(A,e){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 kA(this,A,e)}message(A,e){if(this.logger.log(`INVITE dialog ${this.id} sending MESSAGE request`),this.early)throw new Error("Dialog not confirmed.");const t=this.createOutgoingRequestMessage(N.MESSAGE,e);return new SA(this.core,t,A)}notify(A,e){if(this.logger.log(`INVITE dialog ${this.id} sending NOTIFY request`),this.early)throw new Error("Dialog not confirmed.");return new yA(this,A,e)}prack(A,e){return this.logger.log(`INVITE dialog ${this.id} sending PRACK request`),new DA(this,A,e)}refer(A,e){if(this.logger.log(`INVITE dialog ${this.id} sending REFER request`),this.early)throw new Error("Dialog not confirmed.");return new FA(this,A,e)}receiveRequest(A){if(this.logger.log(`INVITE dialog ${this.id} received ${A.method} request`),A.method!==N.ACK)if(this.sequenceGuard(A)){if(super.receiveRequest(A),A.method===N.INVITE){const e=()=>{const A=this.ackWait?"waiting for initial ACK":"processing initial ACK";this.logger.warn(`INVITE dialog ${this.id} received re-INVITE while ${A}`);let e="RFC 5407 suggests the following to avoid this race condition... ";e+=" Note: Implementation issues are outside the scope of this document,",e+=" but the following tip is provided for avoiding race conditions of",e+=" this type. The caller can delay sending re-INVITE F6 for some period",e+=" of time (2 seconds, perhaps), after which the caller can reasonably",e+=" assume that its ACK has been received. Implementors can decouple the",e+=" actions of the user (e.g., pressing the hold button) from the actions",e+=" of the protocol (the sending of re-INVITE F6), so that the UA can",e+=" behave like this. In this case, it is the implementor's choice as to",e+=" how long to wait. In most cases, such an implementation may be",e+=" useful to prevent the type of race condition shown in this section.",e+=" This document expresses no preference about whether or not they",e+=" should wait for an ACK to be delivered. After considering the impact",e+=" on user experience, implementors should decide whether or not to wait",e+=" for a while, because the user experience depends on the",e+=" implementation and has no direct bearing on protocol behavior.",this.logger.warn("RFC 5407 suggests the following to avoid this race condition... Note: Implementation issues are outside the scope of this document, but the following tip is provided for avoiding race conditions of this type. The caller can delay sending re-INVITE F6 for some period of time (2 seconds, perhaps), after which the caller can reasonably assume that its ACK has been received. Implementors can decouple the actions of the user (e.g., pressing the hold button) from the actions of the protocol (the sending of re-INVITE F6), so that the UA can behave like this. In this case, it is the implementor's choice as to how long to wait. In most cases, such an implementation may be useful to prevent the type of race condition shown in this section. This document expresses no preference about whether or not they should wait for an ACK to be delivered. After considering the impact on user experience, implementors should decide whether or not to wait for a while, because the user experience depends on the implementation and has no direct bearing on protocol behavior.")},t=[`Retry-After: ${Math.floor(10*Math.random())+1}`];if(this.ackProcessing)return this.core.replyStateless(A,{statusCode:500,extraHeaders:t}),void e();if(this.ackWait&&this.signalingState!==Y.Stable)return this.core.replyStateless(A,{statusCode:500,extraHeaders:t}),void e();if(this.reinviteUserAgentServer)return void this.core.replyStateless(A,{statusCode:500,extraHeaders:t});if(this.reinviteUserAgentClient)return void this.core.replyStateless(A,{statusCode:491})}if(A.method===N.INVITE){const e=A.parseHeader("contact");if(!e)throw new Error("Contact undefined.");if(!(e instanceof q))throw new Error("Contact not instance of NameAddrHeader.");this.dialogState.remoteTarget=e.uri}switch(A.method){case N.BYE:{const e=new fA(this,A);this.delegate&&this.delegate.onBye?this.delegate.onBye(e):e.accept(),this.dispose()}break;case N.INFO:{const e=new QA(this,A);this.delegate&&this.delegate.onInfo?this.delegate.onInfo(e):e.reject({statusCode:469,extraHeaders:["Recv-Info:"]})}break;case N.INVITE:{const e=new GA(this,A);this.signalingStateTransition(A),this.delegate&&this.delegate.onInvite?this.delegate.onInvite(e):e.reject({statusCode:488})}break;case N.MESSAGE:{const e=new TA(this.core,A);this.delegate&&this.delegate.onMessage?this.delegate.onMessage(e):e.accept()}break;case N.NOTIFY:{const e=new RA(this,A);this.delegate&&this.delegate.onNotify?this.delegate.onNotify(e):e.accept()}break;case N.PRACK:{const e=new UA(this,A);this.delegate&&this.delegate.onPrack?this.delegate.onPrack(e):e.accept()}break;case N.REFER:{const e=new YA(this,A);this.delegate&&this.delegate.onRefer?this.delegate.onRefer(e):e.reject()}break;default:this.logger.log(`INVITE dialog ${this.id} received unimplemented ${A.method} request`),this.core.replyStateless(A,{statusCode:501})}}else this.logger.log(`INVITE dialog ${this.id} rejected out of order ${A.method} request.`);else{if(this.ackWait){if(this.initialTransaction instanceof CA)return void this.logger.warn(`INVITE dialog ${this.id} received unexpected ${A.method} request, dropping.`);if(this.initialTransaction.request.cseq!==A.cseq)return void this.logger.warn(`INVITE dialog ${this.id} received unexpected ${A.method} request, dropping.`);this.ackWait=!1}else{if(!this.reinviteUserAgentServer)return void this.logger.warn(`INVITE dialog ${this.id} received unexpected ${A.method} request, dropping.`);if(this.reinviteUserAgentServer.transaction.request.cseq!==A.cseq)return void this.logger.warn(`INVITE dialog ${this.id} received unexpected ${A.method} request, dropping.`);this.reinviteUserAgentServer=void 0}if(this.signalingStateTransition(A),this.delegate&&this.delegate.onAck){const e=this.delegate.onAck({message:A});e instanceof Promise&&(this.ackProcessing=!0,e.then(()=>this.ackProcessing=!1).catch(()=>this.ackProcessing=!1))}}}reliableSequenceGuard(A){const e=A.statusCode;if(!e)throw new Error("Status code undefined");if(e>100&&e<200){const e=A.getHeader("require"),t=A.getHeader("rseq"),s=e&&e.includes("100rel")&&t?Number(t):void 0;if(s){if(this.rseq&&this.rseq+1!==s)return!1;this.rseq=this.rseq?this.rseq+1:s}}return!0}signalingStateRollback(){this._signalingState!==Y.HaveLocalOffer&&this.signalingState!==Y.HaveRemoteOffer||this._rollbackOffer&&this._rollbackAnswer&&(this._signalingState=Y.Stable,this._offer=this._rollbackOffer,this._answer=this._rollbackAnswer)}signalingStateTransition(A){const e=G(A);if(e&&"session"===e.contentDisposition){if(this._signalingState===Y.Stable&&(this._rollbackOffer=this._offer,this._rollbackAnswer=this._answer),A instanceof T)switch(this._signalingState){case Y.Initial:case Y.Stable:this._signalingState=Y.HaveRemoteOffer,this._offer=e,this._answer=void 0;break;case Y.HaveLocalOffer:this._signalingState=Y.Stable,this._answer=e;break;case Y.HaveRemoteOffer:case Y.Closed:break;default:throw new Error("Unexpected signaling state.")}if(A instanceof y)switch(this._signalingState){case Y.Initial:case Y.Stable:this._signalingState=Y.HaveRemoteOffer,this._offer=e,this._answer=void 0;break;case Y.HaveLocalOffer:this._signalingState=Y.Stable,this._answer=e;break;case Y.HaveRemoteOffer:case Y.Closed:break;default:throw new Error("Unexpected signaling state.")}if(A instanceof R)switch(this._signalingState){case Y.Initial:case Y.Stable:this._signalingState=Y.HaveLocalOffer,this._offer=e,this._answer=void 0;break;case Y.HaveLocalOffer:break;case Y.HaveRemoteOffer:this._signalingState=Y.Stable,this._answer=e;break;case Y.Closed:break;default:throw new Error("Unexpected signaling state.")}if(k(A))switch(this._signalingState){case Y.Initial:case Y.Stable:this._signalingState=Y.HaveLocalOffer,this._offer=e,this._answer=void 0;break;case Y.HaveLocalOffer:break;case Y.HaveRemoteOffer:this._signalingState=Y.Stable,this._answer=e;break;case Y.Closed:break;default:throw new Error("Unexpected signaling state.")}}}start2xxRetransmissionTimer(){if(this.initialTransaction instanceof dA){const A=this.initialTransaction;let e=v.T1;const t=()=>{this.ackWait?(this.logger.log("No ACK for 2xx response received, attempting retransmission"),A.retransmitAcceptedResponse(),e=Math.min(2*e,v.T2),this.invite2xxTimer=setTimeout(t,e)):this.invite2xxTimer=void 0};this.invite2xxTimer=setTimeout(t,e);const s=()=>{A.state===iA.Terminated&&(A.removeStateChangeListener(s),this.invite2xxTimer&&(clearTimeout(this.invite2xxTimer),this.invite2xxTimer=void 0),this.ackWait&&(this.delegate&&this.delegate.onAckTimeout?this.delegate.onAckTimeout():this.bye()))};A.addStateChangeListener(s)}}startReInvite2xxRetransmissionTimer(){if(this.reinviteUserAgentServer&&this.reinviteUserAgentServer.transaction instanceof dA){const A=this.reinviteUserAgentServer.transaction;let e=v.T1;const t=()=>{this.reinviteUserAgentServer?(this.logger.log("No ACK for 2xx response received, attempting retransmission"),A.retransmitAcceptedResponse(),e=Math.min(2*e,v.T2),this.invite2xxTimer=setTimeout(t,e)):this.invite2xxTimer=void 0};this.invite2xxTimer=setTimeout(t,e);const s=()=>{A.state===iA.Terminated&&(A.removeStateChangeListener(s),this.invite2xxTimer&&(clearTimeout(this.invite2xxTimer),this.invite2xxTimer=void 0),this.reinviteUserAgentServer)};A.addStateChangeListener(s)}}}class OA extends EA{constructor(A,e,t){super(CA,A,e,t),this.confirmedDialogAcks=new Map,this.confirmedDialogs=new Map,this.earlyDialogs=new Map,this.delegate=t}dispose(){this.earlyDialogs.forEach(A=>A.dispose()),this.earlyDialogs.clear(),super.dispose()}onTransportError(A){if(this.transaction.state===iA.Calling)return super.onTransportError(A);this.logger.error(A.message),this.logger.error("User agent client request transport error while sending ACK.")}receiveResponse(A){if(!this.authenticationGuard(A))return;const e=A.statusCode?A.statusCode.toString():"";if(!e)throw new Error("Response status code undefined.");switch(!0){case/^100$/.test(e):return void(this.delegate&&this.delegate.onTrying&&this.delegate.onTrying({message:A}));case/^1[0-9]{2}$/.test(e):{if(!A.toTag)return void this.logger.warn("Non-100 1xx INVITE response received without a to tag, dropping.");if(!A.parseHeader("contact"))return void this.logger.error("Non-100 1xx INVITE response received without a Contact header field, dropping.");const e=mA.initialDialogStateForUserAgentClient(this.message,A);let t=this.earlyDialogs.get(e.id);if(!t){const A=this.transaction;if(!(A instanceof CA))throw new Error("Transaction not instance of InviteClientTransaction.");t=new ZA(A,this.core,e),this.earlyDialogs.set(t.id,t)}if(!t.reliableSequenceGuard(A))return void this.logger.warn("1xx INVITE reliable response received out of order or is a retransmission, dropping.");t.signalingState!==Y.Initial&&t.signalingState!==Y.HaveLocalOffer||t.signalingStateTransition(A);const s=t;this.delegate&&this.delegate.onProgress&&this.delegate.onProgress({message:A,session:s,prack:A=>s.prack(void 0,A)})}return;case/^2[0-9]{2}$/.test(e):{if(!A.toTag)return void this.logger.error("2xx INVITE response received without a to tag, dropping.");if(!A.parseHeader("contact"))return void this.logger.error("2xx INVITE response received without a Contact header field, dropping.");const e=mA.initialDialogStateForUserAgentClient(this.message,A);let t=this.confirmedDialogs.get(e.id);if(t){const A=this.confirmedDialogAcks.get(e.id);if(A){const e=this.transaction;if(!(e instanceof CA))throw new Error("Client transaction not instance of InviteClientTransaction.");e.ackResponse(A.message)}return}if(t=this.earlyDialogs.get(e.id),t)t.confirm(),t.recomputeRouteSet(A),this.earlyDialogs.delete(t.id),this.confirmedDialogs.set(t.id,t);else{const A=this.transaction;if(!(A instanceof CA))throw new Error("Transaction not instance of InviteClientTransaction.");t=new ZA(A,this.core,e),this.confirmedDialogs.set(t.id,t)}t.signalingState!==Y.Initial&&t.signalingState!==Y.HaveLocalOffer||t.signalingStateTransition(A);const s=t;if(this.delegate&&this.delegate.onAccept)this.delegate.onAccept({message:A,session:s,ack:A=>{const e=s.ack(A);return this.confirmedDialogAcks.set(s.id,e),e}});else{const A=s.ack();this.confirmedDialogAcks.set(s.id,A)}}return;case/^3[0-9]{2}$/.test(e):return this.earlyDialogs.forEach(A=>A.dispose()),this.earlyDialogs.clear(),void(this.delegate&&this.delegate.onRedirect&&this.delegate.onRedirect({message:A}));case/^[4-6][0-9]{2}$/.test(e):return this.earlyDialogs.forEach(A=>A.dispose()),this.earlyDialogs.clear(),void(this.delegate&&this.delegate.onReject&&this.delegate.onReject({message:A}));default:throw new Error(`Invalid status code ${e}`)}}}class vA extends MA{constructor(A,e,t){super(dA,A,e,t),this.core=A}dispose(){this.earlyDialog&&this.earlyDialog.dispose(),super.dispose()}accept(A={statusCode:200}){if(!this.acceptable)throw new x(`${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 A=this.transaction;if(!(A instanceof dA))throw new Error("Transaction not instance of InviteClientTransaction.");const e=mA.initialDialogStateForUserAgentServer(this.message,this.toTag);this.confirmedDialog=new ZA(A,this.core,e)}const e=this.message.getHeaders("record-route").map(A=>`Record-Route: ${A}`),t=`Contact: ${this.core.configuration.contact.toString()}`,s="Allow: "+K.toString();if(!A.body)if(this.confirmedDialog.signalingState===Y.Stable)A.body=this.confirmedDialog.answer;else if(this.confirmedDialog.signalingState===Y.Initial||this.confirmedDialog.signalingState===Y.HaveRemoteOffer)throw new Error("Response must have a body.");A.statusCode=A.statusCode||200,A.extraHeaders=A.extraHeaders||[],A.extraHeaders=A.extraHeaders.concat(e),A.extraHeaders.push(s),A.extraHeaders.push(t);const i=super.accept(A),n=this.confirmedDialog,o=Object.assign(Object.assign({},i),{session:n});return A.body&&this.confirmedDialog.signalingState!==Y.Stable&&this.confirmedDialog.signalingStateTransition(A.body),o}progress(A={statusCode:180}){if(!this.progressable)throw new x(`${this.message.method} not progressable in state ${this.transaction.state}.`);if(!this.earlyDialog){const A=this.transaction;if(!(A instanceof dA))throw new Error("Transaction not instance of InviteClientTransaction.");const e=mA.initialDialogStateForUserAgentServer(this.message,this.toTag,!0);this.earlyDialog=new ZA(A,this.core,e)}const e=this.message.getHeaders("record-route").map(A=>`Record-Route: ${A}`),t=`Contact: ${this.core.configuration.contact}`;A.extraHeaders=A.extraHeaders||[],A.extraHeaders=A.extraHeaders.concat(e),A.extraHeaders.push(t);const s=super.progress(A),i=this.earlyDialog,n=Object.assign(Object.assign({},s),{session:i});return A.body&&this.earlyDialog.signalingState!==Y.Stable&&this.earlyDialog.signalingStateTransition(A.body),n}redirect(A,e={statusCode:302}){return super.redirect(A,e)}reject(A={statusCode:486}){return super.reject(A)}}class xA extends EA{constructor(A,e,t){super(pA,A,e,t)}}class NA extends EA{constructor(A,e,t){super(pA,A,e,t)}}class KA extends MA{constructor(A,e,t){super(wA,A,e,t),this.core=A}}class bA extends EA{constructor(A,e,t){const s=A.createOutgoingRequestMessage(N.SUBSCRIBE,t);super(pA,A.userAgentCore,s,e),this.dialog=A}waitNotifyStop(){}receiveResponse(A){if(A.statusCode&&A.statusCode>=200&&A.statusCode<300){const e=A.getHeader("Expires");if(e){const A=Number(e);this.dialog.subscriptionExpires>A&&(this.dialog.subscriptionExpires=A)}else this.logger.warn("Expires header missing in a 200-class response to SUBSCRIBE")}if(A.statusCode&&A.statusCode>=400&&A.statusCode<700){[404,405,410,416,480,481,482,483,484,485,489,501,604].includes(A.statusCode)&&this.dialog.terminate()}super.receiveResponse(A)}}class JA extends mA{constructor(A,e,t,s,i,n){super(s,i),this.delegate=n,this._autoRefresh=!1,this._subscriptionEvent=A,this._subscriptionExpires=e,this._subscriptionExpiresInitial=e,this._subscriptionExpiresLastSet=Math.floor(Date.now()/1e3),this._subscriptionRefresh=void 0,this._subscriptionRefreshLastSet=void 0,this._subscriptionState=t,this.logger=s.loggerFactory.getLogger("sip.subscribe-dialog"),this.logger.log(`SUBSCRIBE dialog ${this.id} constructed`)}static initialDialogStateForSubscription(A,e){const t=e.getHeaders("record-route"),s=e.parseHeader("contact");if(!s)throw new Error("Contact undefined.");if(!(s instanceof q))throw new Error("Contact not instance of NameAddrHeader.");const i=s.uri,n=A.cseq,o=A.callId,r=A.fromTag,a=e.fromTag;if(!o)throw new Error("Call id undefined.");if(!r)throw new Error("From tag undefined.");if(!a)throw new Error("To tag undefined.");if(!A.from)throw new Error("From undefined.");if(!A.to)throw new Error("To undefined.");return{id:o+r+a,early:!1,callId:o,localTag:r,remoteTag:a,localSequenceNumber:n,remoteSequenceNumber:undefined,localURI:A.from.uri,remoteURI:A.to.uri,remoteTarget:i,routeSet:t,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(A){this._autoRefresh=!0,this.refreshTimerSet()}get subscriptionEvent(){return this._subscriptionEvent}get subscriptionExpires(){const A=Math.floor(Date.now()/1e3)-this._subscriptionExpiresLastSet,e=this._subscriptionExpires-A;return Math.max(e,0)}set subscriptionExpires(A){if(A<0)throw new Error("Expires must be greater than or equal to zero.");if(this._subscriptionExpires=A,this._subscriptionExpiresLastSet=Math.floor(Date.now()/1e3),this.autoRefresh){const e=this.subscriptionRefresh;(void 0===e||e>=A)&&this.refreshTimerSet()}}get subscriptionExpiresInitial(){return this._subscriptionExpiresInitial}get subscriptionRefresh(){if(void 0===this._subscriptionRefresh||void 0===this._subscriptionRefreshLastSet)return;const A=Math.floor(Date.now()/1e3)-this._subscriptionRefreshLastSet,e=this._subscriptionRefresh-A;return Math.max(e,0)}get subscriptionState(){return this._subscriptionState}receiveRequest(A){if(this.logger.log(`SUBSCRIBE dialog ${this.id} received ${A.method} request`),this.sequenceGuard(A))if(super.receiveRequest(A),A.method===N.NOTIFY)this.onNotify(A);else this.logger.log(`SUBSCRIBE dialog ${this.id} received unimplemented ${A.method} request`),this.core.replyStateless(A,{statusCode:501});else this.logger.log(`SUBSCRIBE dialog ${this.id} rejected out of order ${A.method} request.`)}refresh(){const A="Allow: "+K.toString(),e={};return e.extraHeaders=(e.extraHeaders||[]).slice(),e.extraHeaders.push(A),e.extraHeaders.push("Event: "+this.subscriptionEvent),e.extraHeaders.push("Expires: "+this.subscriptionExpiresInitial),e.extraHeaders.push("Contact: "+this.core.configuration.contact.toString()),this.subscribe(void 0,e)}subscribe(A,e={}){var t;if(this.subscriptionState!==$.Pending&&this.subscriptionState!==$.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 s=new bA(this,A,e);return this.N&&(clearTimeout(this.N),this.N=void 0),(null===(t=e.extraHeaders)||void 0===t?void 0:t.includes("Expires: 0"))||(this.N=setTimeout(()=>this.timerN(),v.TIMER_N)),s}terminate(){this.stateTransition($.Terminated),this.onTerminated()}unsubscribe(){const A="Allow: "+K.toString(),e={};return e.extraHeaders=(e.extraHeaders||[]).slice(),e.extraHeaders.push(A),e.extraHeaders.push("Event: "+this.subscriptionEvent),e.extraHeaders.push("Expires: 0"),e.extraHeaders.push("Contact: "+this.core.configuration.contact.toString()),this.subscribe(void 0,e)}onNotify(A){const e=A.parseHeader("Event").event;if(!e||e!==this.subscriptionEvent)return void this.core.replyStateless(A,{statusCode:489});this.N&&(clearTimeout(this.N),this.N=void 0);const t=A.parseHeader("Subscription-State");if(!t||!t.state)return void this.core.replyStateless(A,{statusCode:489});const s=t.state,i=t.expires?Math.max(t.expires,0):void 0;switch(s){case"pending":this.stateTransition($.Pending,i);break;case"active":this.stateTransition($.Active,i);break;case"terminated":this.stateTransition($.Terminated,i);break;default:this.logger.warn("Unrecognized subscription state.")}const n=new RA(this,A);this.delegate&&this.delegate.onNotify?this.delegate.onNotify(n):n.accept()}onRefresh(A){this.delegate&&this.delegate.onRefresh&&this.delegate.onRefresh(A)}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 A=900*this.subscriptionExpires;this._subscriptionRefresh=Math.floor(A/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())},A)}}stateTransition(A,e){const t=()=>{this.logger.warn(`Invalid subscription state transition from ${this.subscriptionState} to ${A}`)};switch(A){case $.Initial:case $.NotifyWait:return void t();case $.Pending:if(this.subscriptionState!==$.NotifyWait&&this.subscriptionState!==$.Pending)return void t();break;case $.Active:case $.Terminated:if(this.subscriptionState!==$.NotifyWait&&this.subscriptionState!==$.Pending&&this.subscriptionState!==$.Active)return void t();break;default:return void t()}A===$.Pending&&e&&(this.subscriptionExpires=e),A===$.Active&&e&&(this.subscriptionExpires=e),A===$.Terminated&&this.dispose(),this._subscriptionState=A}timerN(){this.logger.warn("Timer N expired for SUBSCRIBE dialog. Timed out waiting for NOTIFY."),this.subscriptionState!==$.Terminated&&(this.stateTransition($.Terminated),this.onTerminated())}}class LA extends EA{constructor(A,e,t){const s=e.getHeader("Event");if(!s)throw new Error("Event undefined");const i=e.getHeader("Expires");if(!i)throw new Error("Expires undefined");super(pA,A,e,t),this.delegate=t,this.subscriberId=e.callId+e.fromTag+s,this.subscriptionExpiresRequested=this.subscriptionExpires=Number(i),this.subscriptionEvent=s,this.subscriptionState=$.NotifyWait,this.waitNotifyStart()}dispose(){super.dispose()}onNotify(A){const e=A.message.parseHeader("Event").event;if(!e||e!==this.subscriptionEvent)return this.logger.warn("Failed to parse event."),void A.reject({statusCode:489});const t=A.message.parseHeader("Subscription-State");if(!t||!t.state)return this.logger.warn("Failed to parse subscription state."),void A.reject({statusCode:489});const s=t.state;switch(s){case"pending":case"active":case"terminated":break;default:return this.logger.warn(`Invalid subscription state ${s}`),void A.reject({statusCode:489})}if("terminated"!==s){if(!A.message.parseHeader("contact"))return this.logger.warn("Failed to parse contact."),void A.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=t.expires?Math.min(this.subscriptionExpires,Math.max(t.expires,0)):this.subscriptionExpires,s){case"pending":this.subscriptionState=$.Pending;break;case"active":this.subscriptionState=$.Active;break;case"terminated":this.subscriptionState=$.Terminated;break;default:throw new Error(`Unrecognized state ${s}.`)}if(this.subscriptionState!==$.Terminated){const e=JA.initialDialogStateForSubscription(this.message,A.message);this.dialog=new JA(this.subscriptionEvent,this.subscriptionExpires,this.subscriptionState,this.core,e)}if(this.delegate&&this.delegate.onNotify){const e=A,t=this.dialog;this.delegate.onNotify({request:e,subscription:t})}else A.accept()}waitNotifyStart(){this.N||(this.core.subscribers.set(this.subscriberId,this),this.N=setTimeout(()=>this.timerN(),v.TIMER_N))}waitNotifyStop(){this.N&&(this.core.subscribers.delete(this.subscriberId),clearTimeout(this.N),this.N=void 0)}receiveResponse(A){if(this.authenticationGuard(A)){if(A.statusCode&&A.statusCode>=200&&A.statusCode<300){const e=A.getHeader("Expires");if(e){const A=Number(e);A>this.subscriptionExpiresRequested&&this.logger.warn("Expires header in a 200-class response to SUBSCRIBE with a higher value than the one in the request"),A<this.subscriptionExpires&&(this.subscriptionExpires=A)}else this.logger.warn("Expires header missing in a 200-class response to SUBSCRIBE");this.dialog&&this.dialog.subscriptionExpires>this.subscriptionExpires&&(this.dialog.subscriptionExpires=this.subscriptionExpires)}A.statusCode&&A.statusCode>=300&&A.statusCode<700&&this.waitNotifyStop(),super.receiveResponse(A)}}timerN(){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 HA extends MA{constructor(A,e,t){super(wA,A,e,t),this.core=A}}const jA=["application/sdp","application/dtmf-relay"];class WA{constructor(A,e={}){this.userAgentClients=new Map,this.userAgentServers=new Map,this.configuration=A,this.delegate=e,this.dialogs=new Map,this.subscribers=new Map,this.logger=A.loggerFactory.getLogger("sip.user-agent-core")}dispose(){this.reset()}reset(){this.dialogs.forEach(A=>A.dispose()),this.dialogs.clear(),this.subscribers.forEach(A=>A.dispose()),this.subscribers.clear(),this.userAgentClients.forEach(A=>A.dispose()),this.userAgentClients.clear(),this.userAgentServers.forEach(A=>A.dispose()),this.userAgentServers.clear()}get loggerFactory(){return this.configuration.loggerFactory}get transport(){const A=this.configuration.transportAccessor();if(!A)throw new Error("Transport undefined.");return A}invite(A,e){return new OA(this,A,e)}message(A,e){return new SA(this,A,e)}publish(A,e){return new xA(this,A,e)}register(A,e){return new NA(this,A,e)}subscribe(A,e){return new LA(this,A,e)}request(A,e){return new EA(pA,this,A,e)}makeOutgoingRequestMessage(A,e,t,s,i,n,o){const r=this.configuration.sipjsId,a=this.configuration.displayName,V=this.configuration.viaForceRport,c=this.configuration.hackViaTcp,h=this.configuration.supportedOptionTags.slice();A===N.REGISTER&&h.push("path","gruu"),A===N.INVITE&&(this.configuration.contact.pubGruu||this.configuration.contact.tempGruu)&&h.push("gruu");const l={callIdPrefix:r,forceRport:V,fromDisplayName:a,hackViaTcp:c,optionTags:h,routeSet:this.configuration.routeSet,userAgentString:this.configuration.userAgentHeaderFieldValue,viaHost:this.configuration.viaHost},g=Object.assign(Object.assign({},l),i);return new R(A,e,t,s,g,n,o)}receiveIncomingRequestFromTransport(A){this.receiveRequestFromTransport(A)}receiveIncomingResponseFromTransport(A){this.receiveResponseFromTransport(A)}replyStateless(A,e){const t=this.configuration.userAgentHeaderFieldValue,s=this.configuration.supportedOptionTagsResponse;e=Object.assign(Object.assign({},e),{userAgent:t,supported:s});const i=hA(A,e);return this.transport.send(i.message).catch(e=>{e instanceof Error&&this.logger.error(e.message),this.logger.error(`Transport error occurred sending stateless reply to ${A.method} request.`)}),i}receiveRequestFromTransport(A){const e=A.viaBranch,t=this.userAgentServers.get(e);A.method===N.ACK&&t&&t.transaction.state===iA.Accepted&&t instanceof vA?this.logger.warn(`Discarding out of dialog ACK after 2xx response sent on transaction ${e}.`):A.method!==N.CANCEL?t?t.transaction.receiveRequest(A):this.receiveRequest(A):t?(this.replyStateless(A,{statusCode:200}),t.transaction instanceof dA&&t.transaction.state===iA.Proceeding&&t instanceof vA&&t.receiveCancel(A)):this.replyStateless(A,{statusCode:481})}receiveRequest(A){if(!K.includes(A.method)){const e="Allow: "+K.toString();return void this.replyStateless(A,{statusCode:405,extraHeaders:[e]})}if(!A.ruri)throw new Error("Request-URI undefined.");if("sip"!==A.ruri.scheme)return void this.replyStateless(A,{statusCode:416});const e=A.ruri,t=A=>!!A&&A.user===e.user;if(!t(this.configuration.aor)&&!(t(this.configuration.contact.uri)||t(this.configuration.contact.pubGruu)||t(this.configuration.contact.tempGruu)))return this.logger.warn("Request-URI does not point to us."),void(A.method!==N.ACK&&this.replyStateless(A,{statusCode:404}));if(A.method!==N.INVITE||A.hasHeader("Contact")){if(!A.toTag){const e=A.viaBranch;if(!this.userAgentServers.has(e)){if(Array.from(this.userAgentServers.values()).some(e=>e.transaction.request.fromTag===A.fromTag&&e.transaction.request.callId===A.callId&&e.transaction.request.cseq===A.cseq))return void this.replyStateless(A,{statusCode:482})}}A.toTag?this.receiveInsideDialogRequest(A):this.receiveOutsideDialogRequest(A)}else this.replyStateless(A,{statusCode:400,reasonPhrase:"Missing Contact Header"})}receiveInsideDialogRequest(A){if(A.method===N.NOTIFY){const e=A.parseHeader("Event");if(!e||!e.event)return void this.replyStateless(A,{statusCode:489});const t=A.callId+A.toTag+e.event,s=this.subscribers.get(t);if(s){const e=new RA(this,A);return void s.onNotify(e)}}const e=A.callId+A.toTag+A.fromTag,t=this.dialogs.get(e);if(t){if(A.method===N.OPTIONS){const e="Allow: "+K.toString(),t="Accept: "+jA.toString();return void this.replyStateless(A,{statusCode:200,extraHeaders:[e,t]})}t.receiveRequest(A)}else A.method!==N.ACK&&this.replyStateless(A,{statusCode:481})}receiveOutsideDialogRequest(A){switch(A.method){case N.ACK:break;case N.BYE:this.replyStateless(A,{statusCode:481});break;case N.CANCEL:throw new Error(`Unexpected out of dialog request method ${A.method}.`);case N.INFO:this.replyStateless(A,{statusCode:405});break;case N.INVITE:{const e=new vA(this,A);this.delegate.onInvite?this.delegate.onInvite(e):e.reject()}break;case N.MESSAGE:{const e=new TA(this,A);this.delegate.onMessage?this.delegate.onMessage(e):e.accept()}break;case N.NOTIFY:{const e=new RA(this,A);this.delegate.onNotify?this.delegate.onNotify(e):e.reject({statusCode:405})}break;case N.OPTIONS:{const e="Allow: "+K.toString(),t="Accept: "+jA.toString();this.replyStateless(A,{statusCode:200,extraHeaders:[e,t]})}break;case N.REFER:{const e=new YA(this,A);this.delegate.onRefer?this.delegate.onRefer(e):e.reject({statusCode:405})}break;case N.REGISTER:{const e=new KA(this,A);this.delegate.onRegister?this.delegate.onRegister(e):e.reject({statusCode:405})}break;case N.SUBSCRIBE:{const e=new HA(this,A);this.delegate.onSubscribe?this.delegate.onSubscribe(e):e.reject({statusCode:480})}break;default:throw new Error(`Unexpected out of dialog request method ${A.method}.`)}}receiveResponseFromTransport(A){if(A.getHeaders("via").length>1)return void this.logger.warn("More than one Via header field present in the response, dropping");const e=A.viaBranch+A.method,t=this.userAgentClients.get(e);t?t.transaction.receiveResponse(A):this.logger.warn(`Discarding unmatched ${A.statusCode} response to ${A.method} ${e}.`)}}class PA{constructor(A,e,t){A.debug("SessionDescriptionHandler.constructor"),this.logger=A,this.mediaStreamFactory=e,this.sessionDescriptionHandlerConfiguration=t,this._localMediaStream=new MediaStream,this._remoteMediaStream=new MediaStream,this._peerConnection=new RTCPeerConnection(null==t?void 0:t.peerConnectionConfiguration),this.initPeerConnectionEventHandlers()}get localMediaStream(){return this._localMediaStream}get remoteMediaStream(){return this._remoteMediaStream}get dataChannel(){return this._dataChannel}get peerConnection(){return this._peerConnection}get peerConnectionDelegate(){return this._peerConnectionDelegate}set peerConnectionDelegate(A){this._peerConnectionDelegate=A}static dispatchAddTrackEvent(A,e){A.dispatchEvent(new MediaStreamTrackEvent("addtrack",{track:e}))}static dispatchRemoveTrackEvent(A,e){A.dispatchEvent(new MediaStreamTrackEvent("removetrack",{track:e}))}close(){this.logger.debug("SessionDescriptionHandler.close"),void 0!==this._peerConnection&&(this._peerConnection.getReceivers().forEach(A=>{A.track&&A.track.stop()}),this._peerConnection.getSenders().forEach(A=>{A.track&&A.track.stop()}),this._dataChannel&&this._dataChannel.close(),this._peerConnection.close(),this._peerConnection=void 0)}enableReceiverTracks(A){const e=this.peerConnection;if(!e)throw new Error("Peer connection closed.");e.getReceivers().forEach(e=>{e.track&&(e.track.enabled=A)})}enableSenderTracks(A){const e=this.peerConnection;if(!e)throw new Error("Peer connection closed.");e.getSenders().forEach(e=>{e.track&&(e.track.enabled=A)})}getDescription(A,e){var t,s;if(this.logger.debug("SessionDescriptionHandler.getDescription"),void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));this.onDataChannel=null==A?void 0:A.onDataChannel;const i=null===(t=null==A?void 0:A.offerOptions)||void 0===t?void 0:t.iceRestart,n=void 0===(null==A?void 0:A.iceGatheringTimeout)?null===(s=this.sessionDescriptionHandlerConfiguration)||void 0===s?void 0:s.iceGatheringTimeout:null==A?void 0:A.iceGatheringTimeout;return this.getLocalMediaStream(A).then(()=>this.updateDirection(A)).then(()=>this.createDataChannel(A)).then(()=>this.createLocalOfferOrAnswer(A)).then(A=>this.applyModifiers(A,e)).then(A=>this.setLocalSessionDescription(A)).then(()=>this.waitForIceGatheringComplete(i,n)).then(()=>this.getLocalSessionDescription()).then(A=>({body:A.sdp,contentType:"application/sdp"})).catch(A=>{throw this.logger.error("SessionDescriptionHandler.getDescription failed - "+A),A})}hasDescription(A){return this.logger.debug("SessionDescriptionHandler.hasDescription"),"application/sdp"===A}iceGatheringComplete(){this.logger.debug("SessionDescriptionHandler.iceGatheringComplete"),void 0!==this.iceGatheringCompleteTimeoutId&&(this.logger.debug("SessionDescriptionHandler.iceGatheringComplete - clearing timeout"),clearTimeout(this.iceGatheringCompleteTimeoutId),this.iceGatheringCompleteTimeoutId=void 0),void 0!==this.iceGatheringCompletePromise&&(this.logger.debug("SessionDescriptionHandler.iceGatheringComplete - resolving promise"),this.iceGatheringCompleteResolve&&this.iceGatheringCompleteResolve(),this.iceGatheringCompletePromise=void 0,this.iceGatheringCompleteResolve=void 0,this.iceGatheringCompleteReject=void 0)}sendDtmf(A,e){if(this.logger.debug("SessionDescriptionHandler.sendDtmf"),void 0===this._peerConnection)return this.logger.error("SessionDescriptionHandler.sendDtmf failed - peer connection closed"),!1;const t=this._peerConnection.getSenders();if(0===t.length)return this.logger.error("SessionDescriptionHandler.sendDtmf failed - no senders"),!1;const s=t[0].dtmf;if(!s)return this.logger.error("SessionDescriptionHandler.sendDtmf failed - no DTMF sender"),!1;const i=null==e?void 0:e.duration,n=null==e?void 0:e.interToneGap;try{s.insertDTMF(A,i,n)}catch(A){return this.logger.error(A.toString()),!1}return this.logger.log("SessionDescriptionHandler.sendDtmf sent via RTP: "+A.toString()),!0}setDescription(A,e,t){if(this.logger.debug("SessionDescriptionHandler.setDescription"),void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));this.onDataChannel=null==e?void 0:e.onDataChannel;const s="have-local-offer"===this._peerConnection.signalingState?"answer":"offer";return this.getLocalMediaStream(e).then(()=>this.applyModifiers({sdp:A,type:s},t)).then(A=>this.setRemoteSessionDescription(A)).catch(A=>{throw this.logger.error("SessionDescriptionHandler.setDescription failed - "+A),A})}applyModifiers(A,e){return this.logger.debug("SessionDescriptionHandler.applyModifiers"),e&&0!==e.length?e.reduce((A,e)=>A.then(e),Promise.resolve(A)).then(A=>{if(this.logger.debug("SessionDescriptionHandler.applyModifiers - modified sdp"),!A.sdp||!A.type)throw new Error("Invalid SDP.");return{sdp:A.sdp,type:A.type}}):Promise.resolve(A)}createDataChannel(A){if(void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));if(!0!==(null==A?void 0:A.dataChannel))return Promise.resolve();if(this._dataChannel)return Promise.resolve();switch(this._peerConnection.signalingState){case"stable":this.logger.debug("SessionDescriptionHandler.createDataChannel - creating data channel");try{return this._dataChannel=this._peerConnection.createDataChannel((null==A?void 0:A.dataChannelLabel)||"",null==A?void 0:A.dataChannelOptions),this.onDataChannel&&this.onDataChannel(this._dataChannel),Promise.resolve()}catch(A){return Promise.reject(A)}case"have-remote-offer":return Promise.resolve();default:return Promise.reject(new Error("Invalid signaling state "+this._peerConnection.signalingState))}}createLocalOfferOrAnswer(A){if(void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));switch(this._peerConnection.signalingState){case"stable":return this.logger.debug("SessionDescriptionHandler.createLocalOfferOrAnswer - creating SDP offer"),this._peerConnection.createOffer(null==A?void 0:A.offerOptions);case"have-remote-offer":return this.logger.debug("SessionDescriptionHandler.createLocalOfferOrAnswer - creating SDP answer"),this._peerConnection.createAnswer(null==A?void 0:A.answerOptions);default:return Promise.reject(new Error("Invalid signaling state "+this._peerConnection.signalingState))}}getLocalMediaStream(A){if(this.logger.debug("SessionDescriptionHandler.getLocalMediaStream"),void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));let e=Object.assign({},null==A?void 0:A.constraints);if(this.localMediaStreamConstraints){if(e.audio=e.audio||this.localMediaStreamConstraints.audio,e.video=e.video||this.localMediaStreamConstraints.video,JSON.stringify(this.localMediaStreamConstraints.audio)===JSON.stringify(e.audio)&&JSON.stringify(this.localMediaStreamConstraints.video)===JSON.stringify(e.video))return Promise.resolve()}else void 0===e.audio&&void 0===e.video&&(e={audio:!0});return this.localMediaStreamConstraints=e,this.mediaStreamFactory(e,this,A).then(A=>this.setLocalMediaStream(A))}setLocalMediaStream(A){if(this.logger.debug("SessionDescriptionHandler.setLocalMediaStream"),!this._peerConnection)throw new Error("Peer connection undefined.");const e=this._peerConnection,t=this._localMediaStream,s=[],i=A=>{const i=A.kind;if("audio"!==i&&"video"!==i)throw new Error(`Unknown new track kind ${i}.`);const n=e.getSenders().find(A=>A.track&&A.track.kind===i);n?s.push(new Promise(A=>{this.logger.debug(`SessionDescriptionHandler.setLocalMediaStream - replacing sender ${i} track`),A()}).then(()=>n.replaceTrack(A).then(()=>{const e=t.getTracks().find(A=>A.kind===i);e&&(e.stop(),t.removeTrack(e),PA.dispatchRemoveTrackEvent(t,e)),t.addTrack(A),PA.dispatchAddTrackEvent(t,A)}).catch(A=>{throw this.logger.error(`SessionDescriptionHandler.setLocalMediaStream - failed to replace sender ${i} track`),A}))):s.push(new Promise(A=>{this.logger.debug(`SessionDescriptionHandler.setLocalMediaStream - adding sender ${i} track`),A()}).then(()=>{try{e.addTrack(A,t)}catch(A){throw this.logger.error(`SessionDescriptionHandler.setLocalMediaStream - failed to add sender ${i} track`),A}t.addTrack(A),PA.dispatchAddTrackEvent(t,A)}))},n=A.getAudioTracks();n.length&&i(n[0]);const o=A.getVideoTracks();return o.length&&i(o[0]),s.reduce((A,e)=>A.then(()=>e),Promise.resolve())}getLocalSessionDescription(){if(this.logger.debug("SessionDescriptionHandler.getLocalSessionDescription"),void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));const A=this._peerConnection.localDescription;return A?Promise.resolve(A):Promise.reject(new Error("Failed to get local session description"))}setLocalSessionDescription(A){return this.logger.debug("SessionDescriptionHandler.setLocalSessionDescription"),void 0===this._peerConnection?Promise.reject(new Error("Peer connection closed.")):this._peerConnection.setLocalDescription(A)}setRemoteSessionDescription(A){if(this.logger.debug("SessionDescriptionHandler.setRemoteSessionDescription"),void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));const e=A.sdp;let t;switch(this._peerConnection.signalingState){case"stable":t="offer";break;case"have-local-offer":t="answer";break;default:return Promise.reject(new Error("Invalid signaling state "+this._peerConnection.signalingState))}return e?this._peerConnection.setRemoteDescription({sdp:e,type:t}):(this.logger.error("SessionDescriptionHandler.setRemoteSessionDescription failed - cannot set null sdp"),Promise.reject(new Error("SDP is undefined")))}setRemoteTrack(A){this.logger.debug("SessionDescriptionHandler.setRemoteTrack");const e=this._remoteMediaStream;e.getTrackById(A.id)?this.logger.debug(`SessionDescriptionHandler.setRemoteTrack - have remote ${A.kind} track`):"audio"===A.kind?(this.logger.debug(`SessionDescriptionHandler.setRemoteTrack - adding remote ${A.kind} track`),e.getAudioTracks().forEach(A=>{A.stop(),e.removeTrack(A),PA.dispatchRemoveTrackEvent(e,A)}),e.addTrack(A),PA.dispatchAddTrackEvent(e,A)):"video"===A.kind&&(this.logger.debug(`SessionDescriptionHandler.setRemoteTrack - adding remote ${A.kind} track`),e.getVideoTracks().forEach(A=>{A.stop(),e.removeTrack(A),PA.dispatchRemoveTrackEvent(e,A)}),e.addTrack(A),PA.dispatchAddTrackEvent(e,A))}updateDirection(A){if(void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));switch(this._peerConnection.signalingState){case"stable":this.logger.debug("SessionDescriptionHandler.updateDirection - setting offer direction");{const e=e=>{switch(e){case"inactive":case"recvonly":return(null==A?void 0:A.hold)?"inactive":"recvonly";case"sendonly":case"sendrecv":return(null==A?void 0:A.hold)?"sendonly":"sendrecv";case"stopped":return"stopped";default:throw new Error("Should never happen")}};this._peerConnection.getTransceivers().forEach(A=>{if(A.direction){const t=e(A.direction);A.direction!==t&&(A.direction=t)}})}break;case"have-remote-offer":this.logger.debug("SessionDescriptionHandler.updateDirection - setting answer direction");{const e=(()=>{const A=this._peerConnection.remoteDescription;if(!A)throw new Error("Failed to read remote offer");const e=/a=sendrecv\r\n|a=sendonly\r\n|a=recvonly\r\n|a=inactive\r\n/.exec(A.sdp);if(e)switch(e[0]){case"a=inactive\r\n":return"inactive";case"a=recvonly\r\n":return"recvonly";case"a=sendonly\r\n":return"sendonly";case"a=sendrecv\r\n":return"sendrecv";default:throw new Error("Should never happen")}return"sendrecv"})(),t=(()=>{switch(e){case"inactive":return"inactive";case"recvonly":return"sendonly";case"sendonly":return(null==A?void 0:A.hold)?"inactive":"recvonly";case"sendrecv":return(null==A?void 0:A.hold)?"sendonly":"sendrecv";default:throw new Error("Should never happen")}})();this._peerConnection.getTransceivers().forEach(A=>{A.direction&&"stopped"!==A.direction&&A.direction!==t&&(A.direction=t)})}break;default:return Promise.reject(new Error("Invalid signaling state "+this._peerConnection.signalingState))}return Promise.resolve()}waitForIceGatheringComplete(A=!1,e=0){return this.logger.debug("SessionDescriptionHandler.waitForIceGatheringToComplete"),void 0===this._peerConnection?Promise.reject("Peer connection closed."):A||"complete"!==this._peerConnection.iceGatheringState?(void 0!==this.iceGatheringCompletePromise&&(this.logger.debug("SessionDescriptionHandler.waitForIceGatheringToComplete - rejecting prior waiting promise"),this.iceGatheringCompleteReject&&this.iceGatheringCompleteReject(new Error("Promise superseded.")),this.iceGatheringCompletePromise=void 0,this.iceGatheringCompleteResolve=void 0,this.iceGatheringCompleteReject=void 0),this.iceGatheringCompletePromise=new Promise((A,t)=>{this.iceGatheringCompleteResolve=A,this.iceGatheringCompleteReject=t,e>0&&(this.logger.debug("SessionDescriptionHandler.waitForIceGatheringToComplete - timeout in "+e),this.iceGatheringCompleteTimeoutId=setTimeout(()=>{this.logger.debug("SessionDescriptionHandler.waitForIceGatheringToComplete - timeout"),this.iceGatheringComplete()},e))}),this.iceGatheringCompletePromise):(this.logger.debug("SessionDescriptionHandler.waitForIceGatheringToComplete - already complete"),Promise.resolve())}initPeerConnectionEventHandlers(){if(this.logger.debug("SessionDescriptionHandler.initPeerConnectionEventHandlers"),!this._peerConnection)throw new Error("Peer connection undefined.");const A=this._peerConnection;A.onconnectionstatechange=e=>{var t;const s=A.connectionState;this.logger.debug(`SessionDescriptionHandler.onconnectionstatechange ${s}`),(null===(t=this._peerConnectionDelegate)||void 0===t?void 0:t.onconnectionstatechange)&&this._peerConnectionDelegate.onconnectionstatechange(e)},A.ondatachannel=A=>{var e;this.logger.debug("SessionDescriptionHandler.ondatachannel"),this._dataChannel=A.channel,this.onDataChannel&&this.onDataChannel(this._dataChannel),(null===(e=this._peerConnectionDelegate)||void 0===e?void 0:e.ondatachannel)&&this._peerConnectionDelegate.ondatachannel(A)},A.onicecandidate=A=>{var e;this.logger.debug("SessionDescriptionHandler.onicecandidate"),(null===(e=this._peerConnectionDelegate)||void 0===e?void 0:e.onicecandidate)&&this._peerConnectionDelegate.onicecandidate(A)},A.onicecandidateerror=A=>{var e;this.logger.debug("SessionDescriptionHandler.onicecandidateerror"),(null===(e=this._peerConnectionDelegate)||void 0===e?void 0:e.onicecandidateerror)&&this._peerConnectionDelegate.onicecandidateerror(A)},A.oniceconnectionstatechange=e=>{var t;const s=A.iceConnectionState;this.logger.debug(`SessionDescriptionHandler.oniceconnectionstatechange ${s}`),(null===(t=this._peerConnectionDelegate)||void 0===t?void 0:t.oniceconnectionstatechange)&&this._peerConnectionDelegate.oniceconnectionstatechange(e)},A.onicegatheringstatechange=e=>{var t;const s=A.iceGatheringState;this.logger.debug(`SessionDescriptionHandler.onicegatheringstatechange ${s}`),"complete"===s&&this.iceGatheringComplete(),(null===(t=this._peerConnectionDelegate)||void 0===t?void 0:t.onicegatheringstatechange)&&this._peerConnectionDelegate.onicegatheringstatechange(e)},A.onnegotiationneeded=A=>{var e;this.logger.debug("SessionDescriptionHandler.onnegotiationneeded"),(null===(e=this._peerConnectionDelegate)||void 0===e?void 0:e.onnegotiationneeded)&&this._peerConnectionDelegate.onnegotiationneeded(A)},A.onsignalingstatechange=e=>{var t;const s=A.signalingState;this.logger.debug(`SessionDescriptionHandler.onsignalingstatechange ${s}`),(null===(t=this._peerConnectionDelegate)||void 0===t?void 0:t.onsignalingstatechange)&&this._peerConnectionDelegate.onsignalingstatechange(e)},A.ontrack=A=>{var e;const t=A.track.kind,s=A.track.enabled?"enabled":"disabled";this.logger.debug(`SessionDescriptionHandler.ontrack ${t} ${s}`),this.setRemoteTrack(A.track),(null===(e=this._peerConnectionDelegate)||void 0===e?void 0:e.ontrack)&&this._peerConnectionDelegate.ontrack(A)}}}function zA(A){return(e,t)=>{void 0===A&&(A=A=>A.audio||A.video?void 0===navigator.mediaDevices?Promise.reject(new Error("Media devices not available in insecure contexts.")):navigator.mediaDevices.getUserMedia.call(navigator.mediaDevices,A):Promise.resolve(new MediaStream));const s={iceGatheringTimeout:void 0!==(null==t?void 0:t.iceGatheringTimeout)?null==t?void 0:t.iceGatheringTimeout:5e3,peerConnectionConfiguration:Object.assign(Object.assign({},{bundlePolicy:"balanced",certificates:void 0,iceCandidatePoolSize:0,iceServers:[{urls:"stun:stun.l.google.com:19302"}],iceTransportPolicy:"all",rtcpMuxPolicy:"require"}),null==t?void 0:t.peerConnectionConfiguration)},i=e.userAgent.getLogger("sip.SessionDescriptionHandler");return new PA(i,A,s)}}class XA{constructor(A,e){if(this._state=AA.Disconnected,this.transitioningState=!1,this._stateEventEmitter=new h,this.logger=A,e){const A=e,t=null==A?void 0:A.wsServers,s=null==A?void 0:A.maxReconnectionAttempts;if(void 0!==t){const A='The transport option "wsServers" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.';this.logger.warn(A)}if(void 0!==s){const A='The transport option "maxReconnectionAttempts" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.';this.logger.warn(A)}t&&!e.server&&("string"==typeof t&&(e.server=t),t instanceof Array&&(e.server=t[0]))}this.configuration=Object.assign(Object.assign({},XA.defaultOptions),e);const t=this.configuration.server,s=E.parse(t,"absoluteURI");if(-1===s)throw this.logger.error(`Invalid WebSocket Server URL "${t}"`),new Error("Invalid WebSocket Server URL");if(!["wss","ws","udp"].includes(s.scheme))throw this.logger.error(`Invalid scheme in WebSocket Server URL "${t}"`),new Error("Invalid scheme in WebSocket Server URL");this._protocol=s.scheme.toUpperCase()}dispose(){return this.disconnect()}get protocol(){return this._protocol}get server(){return this.configuration.server}get state(){return this._state}get stateChange(){return this._stateEventEmitter}get ws(){return this._ws}connect(){return this._connect()}disconnect(){return this._disconnect()}isConnected(){return this.state===AA.Connected}send(A){return this._send(A)}_connect(){switch(this.logger.log(`Connecting ${this.server}`),this.state){case AA.Connecting:if(this.transitioningState)return Promise.reject(this.transitionLoopDetectedError(AA.Connecting));if(!this.connectPromise)throw new Error("Connect promise must be defined.");return this.connectPromise;case AA.Connected:if(this.transitioningState)return Promise.reject(this.transitionLoopDetectedError(AA.Connecting));if(this.connectPromise)throw new Error("Connect promise must not be defined.");return Promise.resolve();case AA.Disconnecting:if(this.connectPromise)throw new Error("Connect promise must not be defined.");try{this.transitionState(AA.Connecting)}catch(A){if(A instanceof r)return Promise.reject(A);throw A}break;case AA.Disconnected:if(this.connectPromise)throw new Error("Connect promise must not be defined.");try{this.transitionState(AA.Connecting)}catch(A){if(A instanceof r)return Promise.reject(A);throw A}break;default:throw new Error("Unknown state")}let A;try{A=new WebSocket(this.server,"sip"),A.binaryType="arraybuffer",A.addEventListener("close",e=>this.onWebSocketClose(e,A)),A.addEventListener("error",e=>this.onWebSocketError(e,A)),A.addEventListener("open",e=>this.onWebSocketOpen(e,A)),A.addEventListener("message",e=>this.onWebSocketMessage(e,A)),this._ws=A}catch(A){return this._ws=void 0,this.logger.error("WebSocket construction failed."),this.logger.error(A.toString()),new Promise((e,t)=>{this.connectResolve=e,this.connectReject=t,this.transitionState(AA.Disconnected,A)})}return this.connectPromise=new Promise((e,t)=>{this.connectResolve=e,this.connectReject=t,this.connectTimeout=setTimeout(()=>{this.logger.warn("Connect timed out. Exceeded time set in configuration.connectionTimeout: "+this.configuration.connectionTimeout+"s."),A.close(1e3)},1e3*this.configuration.connectionTimeout)}),this.connectPromise}_disconnect(){switch(this.logger.log(`Disconnecting ${this.server}`),this.state){case AA.Connecting:if(this.disconnectPromise)throw new Error("Disconnect promise must not be defined.");try{this.transitionState(AA.Disconnecting)}catch(A){if(A instanceof r)return Promise.reject(A);throw A}break;case AA.Connected:if(this.disconnectPromise)throw new Error("Disconnect promise must not be defined.");try{this.transitionState(AA.Disconnecting)}catch(A){if(A instanceof r)return Promise.reject(A);throw A}break;case AA.Disconnecting:if(this.transitioningState)return Promise.reject(this.transitionLoopDetectedError(AA.Disconnecting));if(!this.disconnectPromise)throw new Error("Disconnect promise must be defined.");return this.disconnectPromise;case AA.Disconnected:if(this.transitioningState)return Promise.reject(this.transitionLoopDetectedError(AA.Disconnecting));if(this.disconnectPromise)throw new Error("Disconnect promise must not be defined.");return Promise.resolve();default:throw new Error("Unknown state")}if(!this._ws)throw new Error("WebSocket must be defined.");const A=this._ws;return this.disconnectPromise=new Promise((e,t)=>{this.disconnectResolve=e,this.disconnectReject=t;try{A.close(1e3)}catch(A){throw this.logger.error("WebSocket close failed."),this.logger.error(A.toString()),A}}),this.disconnectPromise}_send(A){if(!0===this.configuration.traceSip&&this.logger.log("Sending WebSocket message:\n\n"+A+"\n"),this._state!==AA.Connected)return Promise.reject(new Error("Not connected."));if(!this._ws)throw new Error("WebSocket undefined.");try{this._ws.send(A)}catch(A){return A instanceof Error?Promise.reject(A):Promise.reject(new Error("WebSocket send failed."))}return Promise.resolve()}onWebSocketClose(A,e){if(e!==this._ws)return;const t=`WebSocket closed ${this.server} (code: ${A.code})`,s=this.disconnectPromise?void 0:new Error(t);s&&this.logger.warn("WebSocket closed unexpectedly"),this.logger.log(t),this._ws=void 0,this.transitionState(AA.Disconnected,s)}onWebSocketError(A,e){e===this._ws&&this.logger.error("WebSocket error occurred.")}onWebSocketMessage(A,e){if(e!==this._ws)return;const t=A.data;let s;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{s=(new TextDecoder).decode(new Uint8Array(t))}catch(A){return this.logger.error(A.toString()),void this.logger.error("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"+s+"\n")}else s=t,!0===this.configuration.traceSip&&this.logger.log("Received WebSocket text message:\n\n"+s+"\n");if(this.state===AA.Connected){if(this.onMessage)try{this.onMessage(s)}catch(A){throw this.logger.error(A.toString()),this.logger.error("Exception thrown by onMessage callback"),A}}else this.logger.warn("Received message while not connected, discarding...")}else this.logger.warn("Received empty message, discarding...")}onWebSocketOpen(A,e){e===this._ws&&this._state===AA.Connecting&&(this.logger.log(`WebSocket opened ${this.server}`),this.transitionState(AA.Connected))}transitionLoopDetectedError(A){let e="A state transition loop has been detected.";return e+=` An attempt to transition from ${this._state} to ${A} before the prior transition completed.`,e+=" Perhaps you are synchronously calling connect() or disconnect() from a callback or state change handler?",this.logger.error(e),new r("Loop detected.")}transitionState(A,e){const t=()=>{throw new Error(`Invalid state transition from ${this._state} to ${A}`)};if(this.transitioningState)throw this.transitionLoopDetectedError(A);switch(this.transitioningState=!0,this._state){case AA.Connecting:A!==AA.Connected&&A!==AA.Disconnecting&&A!==AA.Disconnected&&t();break;case AA.Connected:A!==AA.Disconnecting&&A!==AA.Disconnected&&t();break;case AA.Disconnecting:A!==AA.Connecting&&A!==AA.Disconnected&&t();break;case AA.Disconnected:A!==AA.Connecting&&t();break;default:throw new Error("Unknown state.")}const s=this._state;this._state=A;const i=this.connectResolve,n=this.connectReject;s===AA.Connecting&&(this.connectPromise=void 0,this.connectResolve=void 0,this.connectReject=void 0);const o=this.disconnectResolve,r=this.disconnectReject;if(s===AA.Disconnecting&&(this.disconnectPromise=void 0,this.disconnectResolve=void 0,this.disconnectReject=void 0),this.connectTimeout&&(clearTimeout(this.connectTimeout),this.connectTimeout=void 0),this.logger.log(`Transitioned from ${s} to ${this._state}`),this._stateEventEmitter.emit(this._state),A===AA.Connected&&(this.startSendingKeepAlives(),this.onConnect))try{this.onConnect()}catch(A){throw this.logger.error(A.toString()),this.logger.error("Exception thrown by onConnect callback"),A}if(s===AA.Connected&&(this.stopSendingKeepAlives(),this.onDisconnect))try{e?this.onDisconnect(e):this.onDisconnect()}catch(A){throw this.logger.error(A.toString()),this.logger.error("Exception thrown by onDisconnect callback"),A}if(s===AA.Connecting){if(!i)throw new Error("Connect resolve undefined.");if(!n)throw new Error("Connect reject undefined.");A===AA.Connected?i():n(e||new Error("Connect aborted."))}if(s===AA.Disconnecting){if(!o)throw new Error("Disconnect resolve undefined.");if(!r)throw new Error("Disconnect reject undefined.");A===AA.Disconnected?o():r(e||new Error("Disconnect aborted."))}this.transitioningState=!1}clearKeepAliveTimeout(){this.keepAliveDebounceTimeout&&clearTimeout(this.keepAliveDebounceTimeout),this.keepAliveDebounceTimeout=void 0}sendKeepAlive(){return this.keepAliveDebounceTimeout?Promise.resolve():(this.keepAliveDebounceTimeout=setTimeout(()=>{this.clearKeepAliveTimeout()},1e3*this.configuration.keepAliveDebounce),this.send("\r\n\r\n"))}startSendingKeepAlives(){this.configuration.keepAliveInterval&&!this.keepAliveInterval&&(this.keepAliveInterval=setInterval(()=>{this.sendKeepAlive(),this.startSendingKeepAlives()},(A=>{const e=.8*A;return 1e3*(Math.random()*(A-e)+e)})(this.configuration.keepAliveInterval)))}stopSendingKeepAlives(){this.keepAliveInterval&&clearInterval(this.keepAliveInterval),this.keepAliveDebounceTimeout&&clearTimeout(this.keepAliveDebounceTimeout),this.keepAliveInterval=void 0,this.keepAliveDebounceTimeout=void 0}}XA.defaultOptions={server:"",connectionTimeout:5,keepAliveInterval:0,keepAliveDebounce:10,traceSip:!0};class _A{constructor(A={}){if(this._publishers={},this._registerers={},this._sessions={},this._subscriptions={},this._state=eA.Stopped,this._stateEventEmitter=new h,this.delegate=A.delegate,this.options=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},_A.defaultOptions()),{sipjsId:w(5)}),{uri:new d("sip","anonymous."+w(6),"anonymous.invalid")}),{viaHost:w(12)+".invalid"}),_A.stripUndefinedProperties(A)),this.options.hackIpInContact)if("boolean"==typeof this.options.hackIpInContact&&this.options.hackIpInContact){const A=1,e=254,t=Math.floor(Math.random()*(e-A+1)+A);this.options.viaHost="192.0.2."+t}else this.options.hackIpInContact&&(this.options.viaHost=this.options.hackIpInContact);switch(this.loggerFactory=new cA,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=tA.error;break;case"warn":this.loggerFactory.level=tA.warn;break;case"log":this.loggerFactory.level=tA.log;break;case"debug":this.loggerFactory.level=tA.debug}if(this.options.logConfiguration&&(this.logger.log("Configuration:"),Object.keys(this.options).forEach(A=>{const e=this.options[A];switch(A){case"uri":case"sessionDescriptionHandlerFactory":this.logger.log("· "+A+": "+e);break;case"authorizationPassword":this.logger.log("· "+A+": NOT SHOWN");break;case"transportConstructor":this.logger.log("· "+A+": "+e.name);break;default:this.logger.log("· "+A+": "+JSON.stringify(e))}})),this.options.transportOptions){const e=this.options.transportOptions,t=e.maxReconnectionAttempts,s=e.reconnectionTimeout;if(void 0!==t){const A='The transport option "maxReconnectionAttempts" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.';this.logger.warn(A)}if(void 0!==s){const A='The transport option "reconnectionTimeout" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.';this.logger.warn(A)}void 0===A.reconnectionDelay&&void 0!==s&&(this.options.reconnectionDelay=s),void 0===A.reconnectionAttempts&&void 0!==t&&(this.options.reconnectionAttempts=t)}if(void 0!==A.reconnectionDelay){const A='The user agent option "reconnectionDelay" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.';this.logger.warn(A)}if(void 0!==A.reconnectionAttempts){const A='The user agent option "reconnectionAttempts" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.';this.logger.warn(A)}if(this._transport=new this.options.transportConstructor(this.getLogger("sip.Transport"),this.options.transportOptions),this.initTransportCallbacks(),this._contact=this.initContact(),this._instanceId=this.options.instanceId?this.options.instanceId:_A.newUUID(),-1===E.parse(this._instanceId,"uuid"))throw new Error("Invalid instanceId.");this._userAgentCore=this.initCore()}static makeURI(A){return E.URIParse(A)}static defaultOptions(){return{allowLegacyNotifications:!1,authorizationHa1:"",authorizationPassword:"",authorizationUsername:"",delegate:{},contactName:"",contactParams:{transport:"ws"},displayName:"",forceRport:!1,gracefulShutdown:!0,hackAllowUnregisteredOptionTags:!1,hackIpInContact:!1,hackViaTcp:!1,instanceId:"",instanceIdAlwaysAdded:!1,logBuiltinEnabled:!0,logConfiguration:!0,logConnector:()=>{},logLevel:"log",noAnswerTimeout:60,preloadedRouteSet:[],reconnectionAttempts:0,reconnectionDelay:4,sendInitialProvisionalResponse:!0,sessionDescriptionHandlerFactory:zA(),sessionDescriptionHandlerFactoryOptions:{},sipExtension100rel:j.Unsupported,sipExtensionReplaces:j.Unsupported,sipExtensionExtraSupported:[],sipjsId:"",transportConstructor:XA,transportOptions:{},uri:new d("sip","anonymous","anonymous.invalid"),userAgentString:"SIP.js/0.21.1",viaHost:""}}static newUUID(){const A="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,A=>{const e=Math.floor(16*Math.random());return("x"===A?e:e%4+8).toString(16)});return A}static stripUndefinedProperties(A){return Object.keys(A).reduce((e,t)=>(void 0!==A[t]&&(e[t]=A[t]),e),{})}get configuration(){return this.options}get contact(){return this._contact}get instanceId(){return this._instanceId}get state(){return this._state}get stateChange(){return this._stateEventEmitter}get transport(){return this._transport}get userAgentCore(){return this._userAgentCore}getLogger(A,e){return this.loggerFactory.getLogger(A,e)}getLoggerFactory(){return this.loggerFactory}isConnected(){return this.transport.isConnected()}reconnect(){return this.state===eA.Stopped?Promise.reject(new Error("User agent stopped.")):Promise.resolve().then(()=>this.transport.connect())}start(){return this.state===eA.Started?(this.logger.warn("User agent already started"),Promise.resolve()):(this.logger.log(`Starting ${this.configuration.uri}`),this.transitionState(eA.Started),this.transport.connect())}async stop(){if(this.state===eA.Stopped)return this.logger.warn("User agent already stopped"),Promise.resolve();if(this.logger.log(`Stopping ${this.configuration.uri}`),!this.options.gracefulShutdown)return this.logger.log("Dispose of transport"),this.transport.dispose().catch(A=>{throw this.logger.error(A.message),A}),this.logger.log("Dispose of core"),this.userAgentCore.dispose(),this._publishers={},this._registerers={},this._sessions={},this._subscriptions={},this.transitionState(eA.Stopped),Promise.resolve();const A=Object.assign({},this._publishers),e=Object.assign({},this._registerers),t=Object.assign({},this._sessions),s=Object.assign({},this._subscriptions),i=this.transport,n=this.userAgentCore;this.logger.log("Dispose of registerers");for(const A in e)e[A]&&await e[A].dispose().catch(e=>{throw this.logger.error(e.message),delete this._registerers[A],e});this.logger.log("Dispose of sessions");for(const A in t)t[A]&&await t[A].dispose().catch(e=>{throw this.logger.error(e.message),delete this._sessions[A],e});this.logger.log("Dispose of subscriptions");for(const A in s)s[A]&&await s[A].dispose().catch(e=>{throw this.logger.error(e.message),delete this._subscriptions[A],e});this.logger.log("Dispose of publishers");for(const e in A)A[e]&&await A[e].dispose().catch(A=>{throw this.logger.error(A.message),delete this._publishers[e],A});this.logger.log("Dispose of transport"),await i.dispose().catch(A=>{throw this.logger.error(A.message),A}),this.logger.log("Dispose of core"),n.dispose(),this.transitionState(eA.Stopped)}_makeInviter(A,e){return new X(this,A,e)}attemptReconnection(A=1){const e=this.options.reconnectionAttempts,t=this.options.reconnectionDelay;A>e?this.logger.log("Maximum reconnection attempts reached"):(this.logger.log(`Reconnection attempt ${A} of ${e} - trying`),setTimeout(()=>{this.reconnect().then(()=>{this.logger.log(`Reconnection attempt ${A} of ${e} - succeeded`)}).catch(t=>{this.logger.error(t.message),this.logger.log(`Reconnection attempt ${A} of ${e} - failed`),this.attemptReconnection(++A)})},1===A?0:1e3*t))}initContact(){const A=""!==this.options.contactName?this.options.contactName:w(8),e=this.options.contactParams;return{pubGruu:void 0,tempGruu:void 0,uri:new d("sip",A,this.options.viaHost,void 0,e),toString:(A={})=>{const t=A.anonymous||!1,s=A.outbound||!1,i=A.register||!1;let n="<";return n+=t?this.contact.tempGruu||`sip:anonymous@anonymous.invalid;transport=${e.transport?e.transport:"ws"}`:i?this.contact.uri:this.contact.pubGruu||this.contact.uri,s&&(n+=";ob"),n+=">",this.options.instanceIdAlwaysAdded&&(n+=';+sip.instance="<urn:uuid:'+this._instanceId+'>"'),n}}}initCore(){let A=[];A.push("outbound"),this.options.sipExtension100rel===j.Supported&&A.push("100rel"),this.options.sipExtensionReplaces===j.Supported&&A.push("replaces"),this.options.sipExtensionExtraSupported&&A.push(...this.options.sipExtensionExtraSupported),this.options.hackAllowUnregisteredOptionTags||(A=A.filter(A=>P[A])),A=Array.from(new Set(A));const e=A.slice();(this.contact.pubGruu||this.contact.tempGruu)&&e.push("gruu");const t={aor:this.options.uri,contact:this.contact,displayName:this.options.displayName,loggerFactory:this.loggerFactory,hackViaTcp:this.options.hackViaTcp,routeSet:this.options.preloadedRouteSet,supportedOptionTags:A,supportedOptionTagsResponse:e,sipjsId:this.options.sipjsId,userAgentHeaderFieldValue:this.options.userAgentString,viaForceRport:this.options.forceRport,viaHost:this.options.viaHost,authenticationFactory:()=>{const A=this.options.authorizationUsername?this.options.authorizationUsername:this.options.uri.user,e=this.options.authorizationPassword?this.options.authorizationPassword:void 0,t=this.options.authorizationHa1?this.options.authorizationHa1:void 0;return new aA(this.getLoggerFactory(),t,A,e)},transportAccessor:()=>this.transport},s={onInvite:A=>{var e;const t=new z(this,A);if(A.delegate={onCancel:A=>{t._onCancel(A)},onTransportError:A=>{this.logger.error("A transport error has occurred while handling an incoming INVITE request.")}},A.trying(),this.options.sipExtensionReplaces!==j.Unsupported){const e=A.message.parseHeader("replaces");if(e){const A=e.call_id;if("string"!=typeof A)throw new Error("Type of call id is not string");const s=e.replaces_to_tag;if("string"!=typeof s)throw new Error("Type of to tag is not string");const i=e.replaces_from_tag;if("string"!=typeof i)throw new Error("type of from tag is not string");const n=A+s+i,o=this.userAgentCore.dialogs.get(n);if(!o)return void t.reject({statusCode:481});if(!o.early&&!0===e.early_only)return void t.reject({statusCode:486});const r=this._sessions[A+i]||this._sessions[A+s]||void 0;if(!r)throw new Error("Session does not exist.");t._replacee=r}}if(null===(e=this.delegate)||void 0===e?void 0:e.onInvite)return t.autoSendAnInitialProvisionalResponse?void t.progress().then(()=>{var A;if(void 0===(null===(A=this.delegate)||void 0===A?void 0:A.onInvite))throw new Error("onInvite undefined.");this.delegate.onInvite(t)}):void this.delegate.onInvite(t);t.reject({statusCode:486})},onMessage:A=>{if(this.delegate&&this.delegate.onMessage){const e=new b(A);this.delegate.onMessage(e)}else A.accept()},onNotify:A=>{if(this.delegate&&this.delegate.onNotify){const e=new J(A);this.delegate.onNotify(e)}else this.options.allowLegacyNotifications?A.accept():A.reject({statusCode:481})},onRefer:A=>{this.logger.warn("Received an out of dialog REFER request"),this.delegate&&this.delegate.onReferRequest?this.delegate.onReferRequest(A):A.reject({statusCode:405})},onRegister:A=>{this.logger.warn("Received an out of dialog REGISTER request"),this.delegate&&this.delegate.onRegisterRequest?this.delegate.onRegisterRequest(A):A.reject({statusCode:405})},onSubscribe:A=>{this.logger.warn("Received an out of dialog SUBSCRIBE request"),this.delegate&&this.delegate.onSubscribeRequest?this.delegate.onSubscribeRequest(A):A.reject({statusCode:405})}};return new WA(t,s)}initTransportCallbacks(){this.transport.onConnect=()=>this.onTransportConnect(),this.transport.onDisconnect=A=>this.onTransportDisconnect(A),this.transport.onMessage=A=>this.onTransportMessage(A)}onTransportConnect(){this.state!==eA.Stopped&&this.delegate&&this.delegate.onConnect&&this.delegate.onConnect()}onTransportDisconnect(A){this.state!==eA.Stopped&&(this.delegate&&this.delegate.onDisconnect&&this.delegate.onDisconnect(A),A&&this.options.reconnectionAttempts>0&&this.attemptReconnection())}onTransportMessage(A){const e=sA.parseMessage(A,this.getLogger("sip.Parser"));if(!e)return void this.logger.warn("Failed to parse incoming message. Dropping.");if(this.state===eA.Stopped&&e instanceof T)return void this.logger.warn(`Received ${e.method} request while stopped. Dropping.`);const t=()=>{const A=["from","to","call_id","cseq","via"];for(const t of A)if(!e.hasHeader(t))return this.logger.warn(`Missing mandatory header field : ${t}.`),!1;return!0};if(e instanceof T){if(!t())return void this.logger.warn("Request missing mandatory header field. Dropping.");if(!e.toTag&&e.callId.substr(0,5)===this.options.sipjsId)return void this.userAgentCore.replyStateless(e,{statusCode:482});const A=Q(e.body),s=e.getHeader("content-length");if(s&&A<Number(s))return void this.userAgentCore.replyStateless(e,{statusCode:400})}if(e instanceof y){if(!t())return void this.logger.warn("Response missing mandatory header field. Dropping.");if(e.getHeaders("via").length>1)return void this.logger.warn("More than one Via header field present in the response. Dropping.");if(e.via.host!==this.options.viaHost||void 0!==e.via.port)return void this.logger.warn("Via sent-by in the response does not match UA Via host value. Dropping.");const A=Q(e.body),s=e.getHeader("content-length");if(s&&A<Number(s))return void this.logger.warn("Message body length is lower than the value in Content-Length header field. Dropping.")}if(e instanceof T)this.userAgentCore.receiveIncomingRequestFromTransport(e);else{if(!(e instanceof y))throw new Error("Invalid message type.");this.userAgentCore.receiveIncomingResponseFromTransport(e)}}transitionState(A,e){const t=()=>{throw new Error(`Invalid state transition from ${this._state} to ${A}`)};switch(this._state){case eA.Started:A!==eA.Stopped&&t();break;case eA.Stopped:A!==eA.Started&&t();break;default:throw new Error("Unknown state.")}this.logger.log(`Transitioned from ${this._state} to ${A}`),this._state=A,this._stateEventEmitter.emit(this._state)}}class $A{constructor(A){this.listeners=[],this.keyListeners={},this.data={...A},this.proxy=new Proxy(this.data,{set:(A,e,t)=>(A[e]!==t&&(A[e]=t,this.notify(),this.notifyKey(e,t)),!0)})}getState(){return this.proxy}setState(A,e=!1){let t=!1;for(const s in A)if(Object.prototype.hasOwnProperty.call(A,s)){const i=this.data[s],n=A[s];(e||i!==n)&&(this.data[s]=n,t=!0,this.notifyKey(s,n))}(t||e)&&this.notify()}subscribe(A){return this.listeners.push(A),()=>{this.listeners=this.listeners.filter(e=>e!==A)}}subscribeKey(A,e){return this.keyListeners[A]||(this.keyListeners[A]=[]),this.keyListeners[A].push(e),()=>{this.keyListeners[A]=this.keyListeners[A].filter(A=>A!==e)}}notify(){const A=this.getState();for(const e of this.listeners)e(A)}notifyKey(A,e){const t=this.keyListeners[A];t&&t.forEach(A=>A(e))}}var Ae,ee,te,se,ie,ne,oe;!function(A){A[A.IDLE=1]="IDLE",A[A.BUSY=2]="BUSY",A[A.RINGING=3]="RINGING",A[A.OFFLINE=0]="OFFLINE",A[A.UNREGISTERED=4]="UNREGISTERED"}(Ae||(Ae={})),function(A){A.OUTGOING="outgoing",A.INCOMING="incoming",A.CONSULT="consult",A.MEETING="meeting",A.TRANSFER="transfer",A.PREDICT_OUT_CALL="predict_out_call"}(ee||(ee={})),function(A){A[A.OUT_CALL=100]="OUT_CALL",A[A.AGENT_STATE=101]="AGENT_STATE",A[A.OUT_CALL_INCOMING_CALL=102]="OUT_CALL_INCOMING_CALL",A[A.OUT_CALL_RINGING=103]="OUT_CALL_RINGING",A[A.OUT_CALL_ANSWER=104]="OUT_CALL_ANSWER",A[A.CALL_HOLD=105]="CALL_HOLD",A[A.CALL_UNHOLD=106]="CALL_UNHOLD",A[A.OUT_CALL_END=107]="OUT_CALL_END",A[A.CONSULT_REQUEST=108]="CONSULT_REQUEST",A[A.CONSULT_RINGING=109]="CONSULT_RINGING",A[A.CONSULT_ANSWER=110]="CONSULT_ANSWER",A[A.CONSULT_FAIL=111]="CONSULT_FAIL",A[A.MUTE=112]="MUTE",A[A.UNMUTE=113]="UNMUTE",A[A.CONSULT_CALL_IN=114]="CONSULT_CALL_IN",A[A.CONSULT_CALL_IN_SUCCESS=115]="CONSULT_CALL_IN_SUCCESS",A[A.CONSULT_RETURN_CALL=125]="CONSULT_RETURN_CALL",A[A.CONSULT_RETURN_CALL_SUCCESS=126]="CONSULT_RETURN_CALL_SUCCESS",A[A.CONSULT_TRANSFER=116]="CONSULT_TRANSFER",A[A.CONSULT_TRANSFER_FAILED=118]="CONSULT_TRANSFER_FAILED",A[A.CONSULT_TRANSFER_OFF_HOOK=117]="CONSULT_TRANSFER_OFF_HOOK",A[A.INCOMING_CALL=119]="INCOMING_CALL",A[A.INCOMING_CALL_OFF_HOOK=120]="INCOMING_CALL_OFF_HOOK",A[A.INCOMING_CALL_END=121]="INCOMING_CALL_END",A[A.SATISFACTION_EVALUATION=122]="SATISFACTION_EVALUATION",A[A.CONSULT_THREE_WAY=123]="CONSULT_THREE_WAY",A[A.CONSULT_THREE_WAY_RESULT=124]="CONSULT_THREE_WAY_RESULT",A[A.TRANSFER=127]="TRANSFER",A[A.TRANSFER_FAILED=128]="TRANSFER_FAILED",A[A.TRANSFER_INCOMING_CALL=129]="TRANSFER_INCOMING_CALL",A[A.TRANSFER_OFF_HOOK=130]="TRANSFER_OFF_HOOK",A[A.AGENT_HANGUP=131]="AGENT_HANGUP",A[A.KICK_OFFLINE=132]="KICK_OFFLINE",A[A.CONTINUOUS_NOT_ANSWER=133]="CONTINUOUS_NOT_ANSWER",A[A.PREVIEW_OUT_CALL=134]="PREVIEW_OUT_CALL",A[A.SIGN_OUT=135]="SIGN_OUT",A[A.SIGN_IN_SWITCH_DEVICE=136]="SIGN_IN_SWITCH_DEVICE",A[A.LISTEN_CALL_FAILED=137]="LISTEN_CALL_FAILED",A[A.LISTEN_INCOMING_CALL=138]="LISTEN_INCOMING_CALL",A[A.LISTEN_INCOMING_CALL_OFF_HOOK=139]="LISTEN_INCOMING_CALL_OFF_HOOK",A[A.EAR_SPEECH=140]="EAR_SPEECH",A[A.STOP_EAR_SPEECH=141]="STOP_EAR_SPEECH",A[A.CALL_FORCE_INSERT=142]="CALL_FORCE_INSERT"}(te||(te={})),function(A){A.WEB_RTC_CONNECTING="connecting",A.WEB_RTC_CONNECTED="connected",A.WEB_RTC_DISCONNECTING="disconnecting",A.WEB_RTC_DISCONNECTED="disconnected",A.WEB_RTC_REGISTERED="registered",A.WEB_RTC_UNREGISTERED="unregistered",A.WEB_RTC_TERMINATED="terminated",A.WEB_RTC_REGISTER_FAILED="register_failed",A.WEB_RTC_ANSWER_FAILED="answer_failed",A.WEB_RTC_SEND_DTMF="send_dtmf"}(se||(se={})),function(A){A.CUSTOMER_INFO="customer_info",A.CALL_PROGRESS="call_progress",A.OUT_INCOMING_CALL="out_call_incoming_call",A.PREVIEW_OUT_INCOMING_CALL="preview_out_incoming_call",A.OUT_SUCCESS="out_call_success",A.OUT_FAILED="out_call_failed",A.OUT_RINGING="out_call_ringing",A.OUT_OFF_ANSWER="out_call_answer",A.HOLD_SUCCESS="hold_success",A.HOLD_FAILED="hold_failed",A.UNHOLD_SUCCESS="unhold_success",A.UNHOLD_FAILED="unhold_failed",A.OUT_HANGUP="out_call_hangup",A.CONSULT_RINGING="consult_ringing",A.CONSULT_OFF_HOOK="consult_off_hook",A.CONSULT_FAILED="consult_failed",A.CONSULT_INCOMING="consult_incoming",A.CONSULT_CALL_IN_SUCCESS="consult_call_in_success",A.CONSULT_RETURN_CALL_SUCCESS="consult_return_call_success",A.OTHER_SIDE_CONSULT_HANGUP="other_side_consult_hangup",A.OUR_SIDE_CONSULT_HANGUP="our_side_consult_hangup",A.AGENT_STATE="agent_state",A.MUTE_SUCCESS="mute_success",A.MUTE_FAILED="mute_failed",A.UNMUTE_SUCCESS="unmute_success",A.UNMUTE_FAILED="unmute_failed",A.CONSULT_TRANSFER_SUCCESS="consult_transfer_success",A.CONSULT_TRANSFER_FAILED="consult_transfer_failed",A.CONSULT_TRANSFER_OFF_HOOK="consult_transfer_off_hook",A.INCOMING_CALL="incoming_call",A.PREDICT_INCOMING_CALL="predict_incoming_call",A.INCOMING_CALL_OFF_HOOK="incoming_call_off_hook",A.INCOMING_CALL_END="incoming_call_end",A.SATISFACTION_EVALUATION_SUCCESS="satisfaction_evaluation_success",A.SATISFACTION_EVALUATION_FAILED="satisfaction_evaluation_failed",A.CONSULT_THREE_WAY_SUCCESS="consult_three_way_success",A.CONSULT_THREE_WAY_FAILED="consult_three_way_failed",A.THREE_WAY_OUR_SIDE_HANGUP="three_way_our_side_hangup",A.TRANSFER_FAILED="transfer_failed",A.TRANSFER_PROGRESS="transfer_progress",A.TRANSFER_INCOMING_CALL="transfer_incoming_call",A.TRANSFER_OFF_HOOK="transfer_off_hook",A.TRANSFER_END="transfer_end",A.REJECT="reject",A.LISTEN_CALL_FAILED="listen_call_failed",A.LISTEN_INCOMING_CALL="listen_incoming_call",A.LISTEN_INCOMING_CALL_OFF_HOOK="listen_incoming_call_off_hook",A.LISTEN_HANGUP="listen_hangup",A.EAR_SPEECH_SUCCESS="ear_speech_success",A.EAR_SPEECH_BE_SUCCESS="ear_speech_be_success",A.EAR_SPEECH_FAILED="ear_speech_failed",A.STOP_EAR_SPEECH_SUCCESS="stop_ear_speech_success",A.STOP_EAR_SPEECH_FAILED="stop_ear_speech_failed",A.CALL_FORCE_INSERT_SUCCESS="call_force_insert_success",A.CALL_FORCE_INSERT_SUCCESS_LISTENER="call_force_insert_success_listener",A.CALL_FORCE_INSERT_FAILED="call_force_insert_failed"}(ie||(ie={})),function(A){A.EVENT_ALL="event_all",A.NOTIFICATION_CLICK="notification_click",A.UPDATE_ANSWER_DEVICE="update_answer_device",A.PHONE_BAR_OPERATION="phone_bar_operation",A.AGENT_INIT_STATUS="agent_init_status",A.WEBSITE_DELAY="website_delay",A.SELECT_EXTERNAL_NUMBER="select_external_number",A.FAIL_NOTIFICATION="fail_notification",A.KICK_OFF="kick_off",A.DESTROY="destroy",A.NETWORK_OFFLINE="network_offline",A.NETWORK_ONLINE="network_online",A.SIGN_OUT="sign_out",A.SIGN_IN_SWITCH_DEVICE="sign_in_switch_device"}(ne||(ne={})),function(A){A.RINGING="客户振铃",A.AGENT_RINGING="振铃中",A.CALLING="通话中",A.CONSULTING="正在咨询",A.CONSULT_CALL_IN="咨询来电",A.INCOMING_CALL="客户来电",A.MEETING="会议中",A.TRANSFERRING="转接中",A.TRANSFER_INCOMING_CALL="转接来电",A.HOLDING="保持中",A.MUTING="静音中",A.LISTENING="监听来电"}(oe||(oe={}));const re=function(A){return{all:A=A||new Map,on:function(e,t){var s=A.get(e);s?s.push(t):A.set(e,[t])},off:function(e,t){var s=A.get(e);s&&(t?s.splice(s.indexOf(t)>>>0,1):A.set(e,[]))},emit:function(e,t){var s=A.get(e);s&&s.slice().map(function(A){A(t)}),(s=A.get("*"))&&s.slice().map(function(A){A(e,t)})}}}(),ae={on:(A,e)=>(re.on(A,e),ae),off(A,e){re.off(A,e)},emit(A,e){re.emit(A,e),re.emit(ne.EVENT_ALL,{event:A,data:e})},clearAllListeners(){re.all.clear()}},Ve={agentInfo:{},isRtcReconnecting:!1,sessionId:"",enableBrowserAlert:!1,autoStateTimer:null,autoAnswerTimer:null,logBuiltinEnabled:!1,browserAlertTime:3e3,latency:0,monitoredAgentNo:"",earSpeakAgent:""},ce={isCalling:!1,direction:null,outCallIsAnswer:!1,incomingIsAnswer:!1,transferIsAnswer:!1,isMeeting:!1,isHold:!1,displayText:"",isMuted:!1,consultIsAnswer:!1,actionConfigs:[],answerDevice:1,selectOutNumber:"",customerObject:void 0,isNextState:!0};const he=new class extends $A{updateIsCalling(A){this.setState({isCalling:A})}updateDirection(A){this.setState({direction:A})}updateOutCallIsAnswer(A){this.setState({outCallIsAnswer:A})}updateIsHold(A){if(Ve.stateObject?.state===Ae.UNREGISTERED)return;const e=this.get("actionConfigs");if(A){const A=[...e.filter(A=>"hold"!==A)];A.push("unhold"),this.updateActionConfigs(A)}else{const A=[...e.filter(A=>"unhold"!==A)];A.push("hold"),this.updateActionConfigs(A)}this.getState().isHold=A}updateDisplayText(A){this.setState({displayText:A}),ae.emit(ie.CALL_PROGRESS,A)}updateActionConfigs(A){const{show_satisfaction:e}=Ve.agentInfo||{},t=this.get("answerDevice"),s=A.filter(A=>(0!==e||"satisfaction"!==A)&&(2!==t||"answer"!==A));this.setState({actionConfigs:s}),ae.emit(ne.PHONE_BAR_OPERATION,s)}updateConsultIsAnswer(A){this.setState({consultIsAnswer:A})}updateIsMuted(A){if(Ve.stateObject?.state===Ae.UNREGISTERED)return;const e=this.get("actionConfigs");if(A){const A=[...e.filter(A=>"mute"!==A)];A.push("unmute"),this.updateActionConfigs(A)}else{const A=[...e.filter(A=>"unmute"!==A)];A.push("mute"),this.updateActionConfigs(A)}this.setState({isMuted:A})}updateIncomingIsAnswer(A){this.setState({incomingIsAnswer:A})}updateAnswerDevice(A){this.setState({answerDevice:A}),ae.emit(ne.UPDATE_ANSWER_DEVICE,A)}updateIsMeeting(A){this.setState({isMeeting:A})}updateTransferIsAnswer(A){this.setState({transferIsAnswer:A})}updateSelectOutNumber(A){ae.emit(ne.SELECT_EXTERNAL_NUMBER,A),this.setState({selectOutNumber:A})}updateCustomerInfo(A){const e=this.get("displayText");if(A&&e){const{contact_count:e,customer_name:t,phone:s,city:i,province:n,is_vip:o,in_contact_count:r,trace_id:a,contact_count_month:V,in_contact_count_month:c}=A;ae.emit(ie.CUSTOMER_INFO,{customer_name:t||"未知客户",phone:s,city:i||"未知",province:n||"未知",contact_count:e||0,in_contact_count:r||0,is_vip:o,trace_id:a,contact_count_month:V||0,in_contact_count_month:c||0})}else ae.emit(ie.CUSTOMER_INFO,void 0);this.setState({customerObject:A})}updateIsNextState(A){this.setState({isNextState:A}),A?ae.emit(ne.NETWORK_ONLINE):(Ve.stateObject={state:Ae.OFFLINE,state_name:"离线"},this.updateActionConfigs([]),ae.emit(ie.AGENT_STATE,Ve.stateObject),ae.emit(ne.NETWORK_OFFLINE))}reset(){this.updateIsCalling(ce.isCalling),this.updateDirection(ce.direction),this.updateOutCallIsAnswer(ce.outCallIsAnswer),this.updateIsHold(ce.isHold),this.updateDisplayText(ce.displayText),this.updateActionConfigs(ce.actionConfigs),this.updateConsultIsAnswer(ce.consultIsAnswer),this.updateIsMuted(ce.isMuted),this.updateIncomingIsAnswer(ce.incomingIsAnswer),this.updateIsMeeting(ce.isMeeting),this.updateTransferIsAnswer(ce.transferIsAnswer),this.updateCustomerInfo(void 0)}getCallInfo(){return this.getState()}get(A){return this.getState()[A]}}(ce);const le=new class extends $A{updateRttObject(A){this.setState({rttObject:A}),ae.emit(ne.WEBSITE_DELAY,A)}}({rttObject:{rtt:null,jitter:null,packetsLost:null,packetsReceived:null,packetsSent:null,sendBitrate:null,recvBitrate:null,codec:null}});class ge{constructor(A,e){this.config=A,this.eventCallback=e,this.userAgent=null,this.registerer=null,this.activeSession=null,this.callTimeoutTimer=null,this.incomingInvitation=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimer=null,this.isOffline=!1,this.isManuallyStopped=!1,this.registerIntervalTimer=null,this.registerInterval=6e4,this.handleNetworkInfoChange=A=>{if(A.rttObject?.rtt){0===(A.rttObject?.rtt||0)?this.isOffline||(this.isOffline=!0,this.handleOffline()):this.isOffline&&(this.isOffline=!1,this.handleOnline())}},this.handleOffline=()=>{console.warn("[SIPClient] 网络断开,准备销毁 SIP 客户端",(new Date).toLocaleString()),this.destroy()},this.handleOnline=()=>{console.warn("[SIPClient] 网络恢复,准备重新启动 SIP 客户端",(new Date).toLocaleString()),this.reconnect()},le.subscribe(this.handleNetworkInfoChange)}async start(){const A=_A.makeURI(`sip:${this.config.user}@${this.config.server}`);if(!A)throw new Error("无效的SIP配置");const e={uri:A,authorizationUsername:this.config.user,authorizationPassword:this.config.password,transportOptions:{server:this.config.webSocket,connectionTimeout:30,keepAliveInterval:20},contactName:this.config.user,contactParams:{transport:"wss"},userAgentString:"SwiftSIP/1.1.19",sessionDescriptionHandlerFactoryOptions:{alwaysAcquireMediaFirst:!0,peerConnectionConfiguration:{iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun.qq.com:3478"}]},iceGatheringTimeout:800},logBuiltinEnabled:Ve.logBuiltinEnabled};this.userAgent=new _A(e),this.setupEventListeners(),await this.userAgent.start(),await this.register()}setupEventListeners(){this.userAgent&&(this.userAgent.transport.stateChange.addListener(A=>{let e;switch(A){case AA.Connecting:e=se.WEB_RTC_CONNECTING;break;case AA.Connected:e=se.WEB_RTC_CONNECTED,this.reconnectAttempts=0,Ve.isRtcReconnecting=!1,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null);break;case AA.Disconnecting:e=se.WEB_RTC_DISCONNECTING;break;case AA.Disconnected:{if(this.isManuallyStopped)return void console.warn("[SIP] 手动断开,不触发重连");e=se.WEB_RTC_DISCONNECTED;const A=he.get("answerDevice");if(!Ve.isRtcReconnecting&&this.reconnectAttempts<this.maxReconnectAttempts&&1===A){this.reconnectAttempts++;const A=1e3*this.reconnectAttempts;console.warn(`SIP WebSocket 断开,第 ${this.reconnectAttempts} 次尝试重连,${A}ms 后重试...`),this.reconnectTimer=setTimeout(()=>{this.reconnect()},A)}else this.reconnectAttempts>=this.maxReconnectAttempts&&console.error("SIP 重连失败:已达到最大重试次数");break}default:e="unknown"}this.eventCallback?.({type:e})}),this.userAgent.delegate={onInvite:A=>{this.handleIncomingCall(A)}})}async refreshRegister(){if(this.registerer)try{await this.registerer.register(),(new Date).toLocaleTimeString()}catch(A){console.error("[SIPClient] REGISTER刷新失败",A)}}async register(){if(this.userAgent){this.registerer=new nA(this.userAgent),this.registerer?.stateChange.addListener(A=>{let e;switch(A){case _.Initial:e="initial";break;case _.Registered:e=se.WEB_RTC_REGISTERED;break;case _.Unregistered:e=se.WEB_RTC_UNREGISTERED;break;case _.Terminated:e=se.WEB_RTC_TERMINATED;break;default:e="unknown"}this.eventCallback?.({type:e})});try{await this.registerer.register(),this.registerIntervalTimer||(this.registerIntervalTimer=setInterval(()=>{this.refreshRegister()},this.registerInterval))}catch(A){this.eventCallback?.({type:se.WEB_RTC_REGISTER_FAILED,data:A})}}}attachRemoteAudio(A){const e=A.sessionDescriptionHandler;if(e){const A=e.peerConnection;if(!A)return;const t=new MediaStream;A.getReceivers().forEach(A=>{A.track&&"audio"===A.track.kind&&t.addTrack(A.track)});let s=document.getElementById("sip-remote-audio");s||(s=document.createElement("audio"),s.id="sip-remote-audio",s.autoplay=!0,s.style.display="none",document.body.appendChild(s)),s.srcObject=t,s.play().catch(A=>{console.error("音频播放失败,需要用户交互触发",A)})}}handleSessionState(A,e,t){A.stateChange.addListener(e=>{switch(e){case H.Established:clearTimeout(this.callTimeoutTimer),this.activeSession=A,this.attachRemoteAudio(A);break;case H.Terminating:break;case H.Terminated:this.activeSession=null,clearTimeout(this.callTimeoutTimer);case H.Establishing:}})}handleIncomingCall(A){this.incomingInvitation=A,this.handleSessionState(A,!1);he.get("direction")===ee.OUTGOING&&this.answerCall()}async answerCall(){if(!this.incomingInvitation)throw new Error("无来电可接听");Ve.autoAnswerTimer&&(clearTimeout(Ve.autoAnswerTimer),Ve.autoAnswerTimer=null);try{await this.incomingInvitation.accept(),this.activeSession=this.incomingInvitation,this.incomingInvitation=null}catch(A){this.eventCallback?.({type:se.WEB_RTC_ANSWER_FAILED,data:{detail:A}})}}async rejectInCall(){if(this.incomingInvitation)try{await this.incomingInvitation.reject(),this.incomingInvitation=null,he.updateDirection(null),he.updateIsCalling(!1),clearTimeout(this.callTimeoutTimer)}catch(A){this.eventCallback?.({type:"error",data:{message:"拒接失败",detail:A}})}}sendDTMF(A){if(!this.activeSession)throw new Error("当前没有活跃的通话");const e=this.activeSession.sessionDescriptionHandler;e&&"function"==typeof e.sendDtmf?(e.sendDtmf(A),this.eventCallback?.({type:se.WEB_RTC_SEND_DTMF,data:{tone:A}})):console.warn("DTMF发送不支持或未初始化")}async hangup(){if(this.activeSession,this.activeSession){clearTimeout(this.callTimeoutTimer);const A=this.activeSession;if(!A)return;const e=A.state;try{e===H.Established?await A.bye():e===H.Establishing&&(A instanceof X?await A.cancel():A instanceof z&&await A.reject()),clearTimeout(this.callTimeoutTimer)}catch(A){console.error("挂断失败",A)}finally{this.activeSession=null}}}async rejectOutCall(){this.activeSession instanceof z&&(await this.activeSession.reject(),this.activeSession=null)}async destroy(){if(this.isManuallyStopped=!0,clearTimeout(this.callTimeoutTimer),clearInterval(this.registerIntervalTimer),this.activeSession&&await this.hangup(),this.registerIntervalTimer&&(clearInterval(this.registerIntervalTimer),this.registerIntervalTimer=null),this.registerer){try{await this.registerer.unregister()}catch(A){console.warn("注销失败",A)}this.registerer=null}this.userAgent&&(await this.userAgent.stop(),this.userAgent=null)}async reconnect(){if(!Ve.isRtcReconnecting){Ve.isRtcReconnecting=!0;try{await this.destroy(),await this.start(),this.isOffline=!1}catch(A){console.error("重连失败",A)}finally{Ve.isRtcReconnecting=!1}}}async getNetworkStats(){if(this.activeSession){const A=this.activeSession.sessionDescriptionHandler?.peerConnection;if(!A)return null;const e=await A.getStats(),t={};return e.forEach(A=>{"candidate-pair"===A.type&&"succeeded"===A.state&&null!=A.currentRoundTripTime&&(t.rtt=+(1e3*A.currentRoundTripTime).toFixed(2)),"inbound-rtp"===A.type&&"audio"===A.kind&&(t.jitter=+(1e3*A.jitter).toFixed(2),t.packetsLost=A.packetsLost,t.packetsReceived=A.packetsReceived,A.bytesReceived&&A.timestamp&&(t.recvBitrate=+(A.bytesReceived/1024).toFixed(2))),"outbound-rtp"===A.type&&"audio"===A.kind&&(t.packetsSent=A.packetsSent,A.bytesSent&&A.timestamp&&(t.sendBitrate=+(A.bytesSent/1024).toFixed(2))),"codec"===A.type&&A.mimeType&&(t.codec=A.mimeType)}),{...t,rtt:t?.rtt||40}}return{rtt:Ve.latency||1}}}
|
|
1
|
+
import A from"crypto";import e from"buffer";class t extends Error{constructor(A){super(A),Object.setPrototypeOf(this,new.target.prototype)}}class s extends t{constructor(A){super(A||"Unsupported content type.")}}class i extends t{constructor(A){super(A||"Request pending.")}}class o extends t{constructor(A){super(A||"Unspecified session description handler error.")}}class n extends t{constructor(){super("The session has terminated.")}}class r extends t{constructor(A){super(A||"An error occurred during state transition.")}}class a{constructor(A){this.incomingAckRequest=A}get request(){return this.incomingAckRequest.message}}class V{constructor(A){this.incomingByeRequest=A}get request(){return this.incomingByeRequest.message}accept(A){return this.incomingByeRequest.accept(A),Promise.resolve()}reject(A){return this.incomingByeRequest.reject(A),Promise.resolve()}}class c{constructor(A){this.incomingCancelRequest=A}get request(){return this.incomingCancelRequest}}class h{constructor(){this.listeners=new Array}addListener(A,e){const t=e=>{this.removeListener(t),A(e)};!0===(null==e?void 0:e.once)?this.listeners.push(t):this.listeners.push(A)}emit(A){this.listeners.slice().forEach(e=>e(A))}removeAllListeners(){this.listeners=[]}removeListener(A){this.listeners=this.listeners.filter(e=>e!==A)}on(A){return this.addListener(A)}off(A){return this.removeListener(A)}once(A){return this.addListener(A,{once:!0})}}class l{constructor(A){this.incomingInfoRequest=A}get request(){return this.incomingInfoRequest.message}accept(A){return this.incomingInfoRequest.accept(A),Promise.resolve()}reject(A){return this.incomingInfoRequest.reject(A),Promise.resolve()}}class g{constructor(A){this.parameters={};for(const e in A)A.hasOwnProperty(e)&&this.setParam(e,A[e])}setParam(A,e){A&&(this.parameters[A.toLowerCase()]=null==e?null:e.toString())}getParam(A){if(A)return this.parameters[A.toLowerCase()]}hasParam(A){return!(!A||void 0===this.parameters[A.toLowerCase()])}deleteParam(A){if(A=A.toLowerCase(),this.hasParam(A)){const e=this.parameters[A];return delete this.parameters[A],e}}clearParams(){this.parameters={}}}class q extends g{constructor(A,e,t){super(t),this.uri=A,this._displayName=e}get friendlyName(){return this.displayName||this.uri.aor}get displayName(){return this._displayName}set displayName(A){this._displayName=A}clone(){return new q(this.uri.clone(),this._displayName,JSON.parse(JSON.stringify(this.parameters)))}toString(){let A=this.displayName||"0"===this.displayName?'"'+this.displayName+'" ':"";A+="<"+this.uri.toString()+">";for(const e in this.parameters)this.parameters.hasOwnProperty(e)&&(A+=";"+e,null!==this.parameters[e]&&(A+="="+this.parameters[e]));return A}}class d extends g{constructor(A="sip",e,t,s,i,o){if(super(i||{}),this.headers={},!t)throw new TypeError('missing or invalid "host" parameter');for(const A in o)o.hasOwnProperty(A)&&this.setHeader(A,o[A]);this.raw={scheme:A,user:e,host:t,port:s},this.normal={scheme:A.toLowerCase(),user:e,host:t.toLowerCase(),port:s}}get scheme(){return this.normal.scheme}set scheme(A){this.raw.scheme=A,this.normal.scheme=A.toLowerCase()}get user(){return this.normal.user}set user(A){this.normal.user=this.raw.user=A}get host(){return this.normal.host}set host(A){this.raw.host=A,this.normal.host=A.toLowerCase()}get aor(){return this.normal.user+"@"+this.normal.host}get port(){return this.normal.port}set port(A){this.normal.port=this.raw.port=A}setHeader(A,e){this.headers[this.headerize(A)]=e instanceof Array?e:[e]}getHeader(A){if(A)return this.headers[this.headerize(A)]}hasHeader(A){return!!A&&!!this.headers.hasOwnProperty(this.headerize(A))}deleteHeader(A){if(A=this.headerize(A),this.headers.hasOwnProperty(A)){const e=this.headers[A];return delete this.headers[A],e}}clearHeaders(){this.headers={}}clone(){return new d(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(A){let e=A.scheme+":";A.scheme.toLowerCase().match("^sips?$")||(e+="//"),A.user&&(e+=this.escapeUser(A.user)+"@"),e+=A.host,(A.port||0===A.port)&&(e+=":"+A.port);for(const A in this.parameters)this.parameters.hasOwnProperty(A)&&(e+=";"+A,null!==this.parameters[A]&&(e+="="+this.parameters[A]));const t=[];for(const A in this.headers)if(this.headers.hasOwnProperty(A))for(const e in this.headers[A])this.headers[A].hasOwnProperty(e)&&t.push(A+"="+this.headers[A][e]);return t.length>0&&(e+="?"+t.join("&")),e}escapeUser(A){let e;try{e=decodeURIComponent(A)}catch(A){throw A}return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%2B/gi,"+").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}headerize(A){const e={"Call-Id":"Call-ID",Cseq:"CSeq","Min-Se":"Min-SE",Rack:"RAck",Rseq:"RSeq","Www-Authenticate":"WWW-Authenticate"},t=A.toLowerCase().replace(/_/g,"-").split("-"),s=t.length;let i="";for(let A=0;A<s;A++)0!==A&&(i+="-"),i+=t[A].charAt(0).toUpperCase()+t[A].substring(1);return e[i]&&(i=e[i]),i}}function u(A,e){if(A.scheme!==e.scheme)return!1;if(A.user!==e.user||A.host!==e.host||A.port!==e.port)return!1;if(!function(A,e){const t=Object.keys(A.parameters),s=Object.keys(e.parameters),i=t.filter(A=>s.includes(A));return!!i.every(t=>A.parameters[t]===e.parameters[t])&&(!!["user","ttl","method","transport"].every(t=>A.hasParam(t)&&e.hasParam(t)||!A.hasParam(t)&&!e.hasParam(t))&&!!["maddr"].every(t=>A.hasParam(t)&&e.hasParam(t)||!A.hasParam(t)&&!e.hasParam(t)))}(A,e))return!1;const t=Object.keys(A.headers),s=Object.keys(e.headers);if(0!==t.length||0!==s.length){if(t.length!==s.length)return!1;const i=t.filter(A=>s.includes(A));if(i.length!==s.length)return!1;if(!i.every(t=>A.headers[t].length&&e.headers[t].length&&A.headers[t][0]===e.headers[t][0]))return!1}return!0}function p(A,e,t){return t=t||" ",A.length>e?A:(e-=A.length,A+(t+=t.repeat(e)).slice(0,e))}class m extends Error{constructor(A,e,t,s){super(),this.message=A,this.expected=e,this.found=t,this.location=s,this.name="SyntaxError","function"==typeof Object.setPrototypeOf?Object.setPrototypeOf(this,m.prototype):this.__proto__=m.prototype,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,m)}static buildMessage(A,e){function t(A){return A.charCodeAt(0).toString(16).toUpperCase()}function s(A){return A.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,A=>"\\x0"+t(A)).replace(/[\x10-\x1F\x7F-\x9F]/g,A=>"\\x"+t(A))}function i(A){return A.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,A=>"\\x0"+t(A)).replace(/[\x10-\x1F\x7F-\x9F]/g,A=>"\\x"+t(A))}function o(A){switch(A.type){case"literal":return'"'+s(A.text)+'"';case"class":const e=A.parts.map(A=>Array.isArray(A)?i(A[0])+"-"+i(A[1]):i(A));return"["+(A.inverted?"^":"")+e+"]";case"any":return"any character";case"end":return"end of input";case"other":return A.description}}return"Expected "+function(A){const e=A.map(o);let t,s;if(e.sort(),e.length>0){for(t=1,s=1;t<e.length;t++)e[t-1]!==e[t]&&(e[s]=e[t],s++);e.length=s}switch(e.length){case 1:return e[0];case 2:return e[0]+" or "+e[1];default:return e.slice(0,-1).join(", ")+", or "+e[e.length-1]}}(A)+" but "+(((n=e)?'"'+s(n)+'"':"end of input")+" found.");var n}format(A){let e="Error: "+this.message;if(this.location){let t,s=null;for(t=0;t<A.length;t++)if(A[t].source===this.location.source){s=A[t].text.split(/\r\n|\n|\r/g);break}let i=this.location.start,o=this.location.source+":"+i.line+":"+i.column;if(s){let A=this.location.end,t=p("",i.line.toString().length," "),n=s[i.line-1],r=i.line===A.line?A.column:n.length+1;e+="\n --\x3e "+o+"\n"+t+" |\n"+i.line+" | "+n+"\n"+t+" | "+p("",i.column-1," ")+p("",r-i.column,"^")}else e+="\n at "+o}return e}}const C=function(A,e){const t={},s=(e=void 0!==e?e:{}).grammarSource,i={Contact:119,Name_Addr_Header:156,Record_Route:176,Request_Response:81,SIP_URI:45,Subscription_State:186,Supported:191,Require:182,Via:194,absoluteURI:84,Call_ID:118,Content_Disposition:130,Content_Length:135,Content_Type:136,CSeq:146,displayName:122,Event:149,From:151,host:52,Max_Forwards:154,Min_SE:213,Proxy_Authenticate:157,quoted_string:40,Refer_To:178,Replaces:179,Session_Expires:210,stun_URI:217,To:192,turn_URI:223,uuid:226,WWW_Authenticate:209,challenge:158,sipfrag:230,Referred_By:231};let o=119;const n=["\r\n",E("\r\n",!1),/^[0-9]/,I([["0","9"]],!1,!1),/^[a-zA-Z]/,I([["a","z"],["A","Z"]],!1,!1),/^[0-9a-fA-F]/,I([["0","9"],["a","f"],["A","F"]],!1,!1),/^[\0-\xFF]/,I([["\0","ÿ"]],!1,!1),/^["]/,I(['"'],!1,!1)," ",E(" ",!1),"\t",E("\t",!1),/^[a-zA-Z0-9]/,I([["a","z"],["A","Z"],["0","9"]],!1,!1),";",E(";",!1),"/",E("/",!1),"?",E("?",!1),":",E(":",!1),"@",E("@",!1),"&",E("&",!1),"=",E("=",!1),"+",E("+",!1),"$",E("$",!1),",",E(",",!1),"-",E("-",!1),"_",E("_",!1),".",E(".",!1),"!",E("!",!1),"~",E("~",!1),"*",E("*",!1),"'",E("'",!1),"(",E("(",!1),")",E(")",!1),"%",E("%",!1),function(){return" "},function(){return":"},/^[!-~]/,I([["!","~"]],!1,!1),/^[\x80-\uFFFF]/,I([["",""]],!1,!1),/^[\x80-\xBF]/,I([["","¿"]],!1,!1),/^[a-f]/,I([["a","f"]],!1,!1),"`",E("`",!1),"<",E("<",!1),">",E(">",!1),"\\",E("\\",!1),"[",E("[",!1),"]",E("]",!1),"{",E("{",!1),"}",E("}",!1),function(){return"*"},function(){return"/"},function(){return"="},function(){return"("},function(){return")"},function(){return">"},function(){return"<"},function(){return","},function(){return";"},function(){return":"},function(){return'"'},/^[!-']/,I([["!","'"]],!1,!1),/^[*-[]/,I([["*","["]],!1,!1),/^[\]-~]/,I([["]","~"]],!1,!1),function(A){return A},/^[#-[]/,I([["#","["]],!1,!1),/^[\0-\t]/,I([["\0","\t"]],!1,!1),/^[\v-\f]/,I([["\v","\f"]],!1,!1),/^[\x0E-\x7F]/,I([["",""]],!1,!1),function(){(e=e||{data:{}}).data.uri=new d(e.data.scheme,e.data.user,e.data.host,e.data.port),delete e.data.scheme,delete e.data.user,delete e.data.host,delete e.data.host_type,delete e.data.port},function(){(e=e||{data:{}}).data.uri=new d(e.data.scheme,e.data.user,e.data.host,e.data.port,e.data.uri_params,e.data.uri_headers),delete e.data.scheme,delete e.data.user,delete e.data.host,delete e.data.host_type,delete e.data.port,delete e.data.uri_params,"SIP_URI"===e.startRule&&(e.data=e.data.uri)},"sips",E("sips",!0),"sip",E("sip",!0),function(A){(e=e||{data:{}}).data.scheme=A},function(){(e=e||{data:{}}).data.user=decodeURIComponent(p().slice(0,-1))},function(){(e=e||{data:{}}).data.password=p()},function(){return(e=e||{data:{}}).data.host=p(),e.data.host},function(){return(e=e||{data:{}}).data.host_type="domain",p()},/^[a-zA-Z0-9_\-]/,I([["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),/^[a-zA-Z0-9\-]/,I([["a","z"],["A","Z"],["0","9"],"-"],!1,!1),function(){return(e=e||{data:{}}).data.host_type="IPv6",p()},"::",E("::",!1),function(){return(e=e||{data:{}}).data.host_type="IPv6",p()},function(){return(e=e||{data:{}}).data.host_type="IPv4",p()},"25",E("25",!1),/^[0-5]/,I([["0","5"]],!1,!1),"2",E("2",!1),/^[0-4]/,I([["0","4"]],!1,!1),"1",E("1",!1),/^[1-9]/,I([["1","9"]],!1,!1),function(A){return e=e||{data:{}},A=parseInt(A.join("")),e.data.port=A,A},"transport=",E("transport=",!0),"udp",E("udp",!0),"tcp",E("tcp",!0),"sctp",E("sctp",!0),"tls",E("tls",!0),function(A){(e=e||{data:{}}).data.uri_params||(e.data.uri_params={}),e.data.uri_params.transport=A.toLowerCase()},"user=",E("user=",!0),"phone",E("phone",!0),"ip",E("ip",!0),function(A){(e=e||{data:{}}).data.uri_params||(e.data.uri_params={}),e.data.uri_params.user=A.toLowerCase()},"method=",E("method=",!0),function(A){(e=e||{data:{}}).data.uri_params||(e.data.uri_params={}),e.data.uri_params.method=A},"ttl=",E("ttl=",!0),function(A){(e=e||{data:{}}).data.params||(e.data.params={}),e.data.params.ttl=A},"maddr=",E("maddr=",!0),function(A){(e=e||{data:{}}).data.uri_params||(e.data.uri_params={}),e.data.uri_params.maddr=A},"lr",E("lr",!0),function(){(e=e||{data:{}}).data.uri_params||(e.data.uri_params={}),e.data.uri_params.lr=void 0},function(A,t){(e=e||{data:{}}).data.uri_params||(e.data.uri_params={}),t=null===t?void 0:t[1],e.data.uri_params[A.toLowerCase()]=t},function(A,t){A=A.join("").toLowerCase(),t=t.join(""),(e=e||{data:{}}).data.uri_headers||(e.data.uri_headers={}),e.data.uri_headers[A]?e.data.uri_headers[A].push(t):e.data.uri_headers[A]=[t]},function(){"Refer_To"===(e=e||{data:{}}).startRule&&(e.data.uri=new d(e.data.scheme,e.data.user,e.data.host,e.data.port,e.data.uri_params,e.data.uri_headers),delete e.data.scheme,delete e.data.user,delete e.data.host,delete e.data.host_type,delete e.data.port,delete e.data.uri_params)},"//",E("//",!1),function(){(e=e||{data:{}}).data.scheme=p()},E("SIP",!0),function(){(e=e||{data:{}}).data.sip_version=p()},"INVITE",E("INVITE",!1),"ACK",E("ACK",!1),"VXACH",E("VXACH",!1),"OPTIONS",E("OPTIONS",!1),"BYE",E("BYE",!1),"CANCEL",E("CANCEL",!1),"REGISTER",E("REGISTER",!1),"SUBSCRIBE",E("SUBSCRIBE",!1),"NOTIFY",E("NOTIFY",!1),"REFER",E("REFER",!1),"PUBLISH",E("PUBLISH",!1),function(){return(e=e||{data:{}}).data.method=p(),e.data.method},function(A){(e=e||{data:{}}).data.status_code=parseInt(A.join(""))},function(){(e=e||{data:{}}).data.reason_phrase=p()},function(){(e=e||{data:{}}).data=p()},function(){var A,t;for(t=(e=e||{data:{}}).data.multi_header.length,A=0;A<t;A++)if(null===e.data.multi_header[A].parsed){e.data=null;break}null!==e.data?e.data=e.data.multi_header:e.data=-1},function(){var A;(e=e||{data:{}}).data.multi_header||(e.data.multi_header=[]);try{A=new q(e.data.uri,e.data.displayName,e.data.params),delete e.data.uri,delete e.data.displayName,delete e.data.params}catch(e){A=null}e.data.multi_header.push({position:a,offset:C().start.offset,parsed:A})},function(A){'"'===(A=p().trim())[0]&&(A=A.substring(1,A.length-1)),(e=e||{data:{}}).data.displayName=A},"q",E("q",!0),function(A){(e=e||{data:{}}).data.params||(e.data.params={}),e.data.params.q=A},"expires",E("expires",!0),function(A){(e=e||{data:{}}).data.params||(e.data.params={}),e.data.params.expires=A},function(A){return parseInt(A.join(""))},"0",E("0",!1),function(){return parseFloat(p())},function(A,t){(e=e||{data:{}}).data.params||(e.data.params={}),t=null===t?void 0:t[1],e.data.params[A.toLowerCase()]=t},"render",E("render",!0),"session",E("session",!0),"icon",E("icon",!0),"alert",E("alert",!0),function(){"Content_Disposition"===(e=e||{data:{}}).startRule&&(e.data.type=p().toLowerCase())},"handling",E("handling",!0),"optional",E("optional",!0),"required",E("required",!0),function(A){(e=e||{data:{}}).data=parseInt(A.join(""))},function(){(e=e||{data:{}}).data=p()},"text",E("text",!0),"image",E("image",!0),"audio",E("audio",!0),"video",E("video",!0),"application",E("application",!0),"message",E("message",!0),"multipart",E("multipart",!0),"x-",E("x-",!0),function(A){(e=e||{data:{}}).data.value=parseInt(A.join(""))},function(A){(e=e||{data:{}}).data=A},function(A){(e=e||{data:{}}).data.event=A.toLowerCase()},function(){var A=(e=e||{data:{}}).data.tag;e.data=new q(e.data.uri,e.data.displayName,e.data.params),A&&e.data.setParam("tag",A)},"tag",E("tag",!0),function(A){(e=e||{data:{}}).data.tag=A},function(A){(e=e||{data:{}}).data=parseInt(A.join(""))},function(A){(e=e||{data:{}}).data=A},function(){(e=e||{data:{}}).data=new q(e.data.uri,e.data.displayName,e.data.params)},"digest",E("Digest",!0),"realm",E("realm",!0),function(A){(e=e||{data:{}}).data.realm=A},"domain",E("domain",!0),"nonce",E("nonce",!0),function(A){(e=e||{data:{}}).data.nonce=A},"opaque",E("opaque",!0),function(A){(e=e||{data:{}}).data.opaque=A},"stale",E("stale",!0),"true",E("true",!0),function(){(e=e||{data:{}}).data.stale=!0},"false",E("false",!0),function(){(e=e||{data:{}}).data.stale=!1},"algorithm",E("algorithm",!0),"md5",E("MD5",!0),"md5-sess",E("MD5-sess",!0),function(A){(e=e||{data:{}}).data.algorithm=A.toUpperCase()},"qop",E("qop",!0),"auth-int",E("auth-int",!0),"auth",E("auth",!0),function(A){(e=e||{data:{}}).data.qop||(e.data.qop=[]),e.data.qop.push(A.toLowerCase())},function(A){(e=e||{data:{}}).data.value=parseInt(A.join(""))},function(){var A,t;for(t=(e=e||{data:{}}).data.multi_header.length,A=0;A<t;A++)if(null===e.data.multi_header[A].parsed){e.data=null;break}null!==e.data?e.data=e.data.multi_header:e.data=-1},function(){var A;(e=e||{data:{}}).data.multi_header||(e.data.multi_header=[]);try{A=new q(e.data.uri,e.data.displayName,e.data.params),delete e.data.uri,delete e.data.displayName,delete e.data.params}catch(e){A=null}e.data.multi_header.push({position:a,offset:C().start.offset,parsed:A})},function(){(e=e||{data:{}}).data=new q(e.data.uri,e.data.displayName,e.data.params)},function(){(e=e||{data:{}}).data.replaces_from_tag&&e.data.replaces_to_tag||(e.data=-1)},function(){(e=e||{data:{}}).data={call_id:e.data}},"from-tag",E("from-tag",!0),function(A){(e=e||{data:{}}).data.replaces_from_tag=A},"to-tag",E("to-tag",!0),function(A){(e=e||{data:{}}).data.replaces_to_tag=A},"early-only",E("early-only",!0),function(){(e=e||{data:{}}).data.early_only=!0},function(A,e){return e},function(A,e){return function(A,e){return[A].concat(e)}(A,e)},function(A){"Require"===(e=e||{data:{}}).startRule&&(e.data=A||[])},function(A){(e=e||{data:{}}).data.value=parseInt(A.join(""))},"active",E("active",!0),"pending",E("pending",!0),"terminated",E("terminated",!0),function(){(e=e||{data:{}}).data.state=p()},"reason",E("reason",!0),function(A){e=e||{data:{}},void 0!==A&&(e.data.reason=A)},function(A){e=e||{data:{}},void 0!==A&&(e.data.expires=A)},"retry_after",E("retry_after",!0),function(A){e=e||{data:{}},void 0!==A&&(e.data.retry_after=A)},"deactivated",E("deactivated",!0),"probation",E("probation",!0),"rejected",E("rejected",!0),"timeout",E("timeout",!0),"giveup",E("giveup",!0),"noresource",E("noresource",!0),"invariant",E("invariant",!0),function(A){"Supported"===(e=e||{data:{}}).startRule&&(e.data=A||[])},function(){var A=(e=e||{data:{}}).data.tag;e.data=new q(e.data.uri,e.data.displayName,e.data.params),A&&e.data.setParam("tag",A)},"ttl",E("ttl",!0),function(A){(e=e||{data:{}}).data.ttl=A},"maddr",E("maddr",!0),function(A){(e=e||{data:{}}).data.maddr=A},"received",E("received",!0),function(A){(e=e||{data:{}}).data.received=A},"branch",E("branch",!0),function(A){(e=e||{data:{}}).data.branch=A},"rport",E("rport",!0),function(A){e=e||{data:{}},void 0!==A&&(e.data.rport=A.join(""))},function(A){(e=e||{data:{}}).data.protocol=A},E("UDP",!0),E("TCP",!0),E("TLS",!0),E("SCTP",!0),function(A){(e=e||{data:{}}).data.transport=A},function(){(e=e||{data:{}}).data.host=p()},function(A){(e=e||{data:{}}).data.port=parseInt(A.join(""))},function(A){return parseInt(A.join(""))},function(A){"Session_Expires"===(e=e||{data:{}}).startRule&&(e.data.deltaSeconds=A)},"refresher",E("refresher",!1),"uas",E("uas",!1),"uac",E("uac",!1),function(A){"Session_Expires"===(e=e||{data:{}}).startRule&&(e.data.refresher=A)},function(A){"Min_SE"===(e=e||{data:{}}).startRule&&(e.data=A)},"stuns",E("stuns",!0),"stun",E("stun",!0),function(A){(e=e||{data:{}}).data.scheme=A},function(A){(e=e||{data:{}}).data.host=A},"?transport=",E("?transport=",!1),"turns",E("turns",!0),"turn",E("turn",!0),function(A){(e=e||{data:{}}).data.transport=A},function(){(e=e||{data:{}}).data=p()},"Referred-By",E("Referred-By",!1),"b",E("b",!1),"cid",E("cid",!1)],r=[B('2 ""6 7!'),B('4"""5!7#'),B('4$""5!7%'),B('4&""5!7\''),B(";'.# &;("),B('4(""5!7)'),B('4*""5!7+'),B('2,""6,7-'),B('2.""6.7/'),B('40""5!71'),B('22""6273. &24""6475.} &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'),B(";).# &;,"),B('2F""6F7G.} &2H""6H7I.q &2J""6J7K.e &2L""6L7M.Y &2N""6N7O.M &2P""6P7Q.A &2R""6R7S.5 &2T""6T7U.) &2V""6V7W'),B('%%2X""6X7Y/5#;#/,$;#/#$+#)(#\'#("\'#&\'#/"!&,)'),B('%%$;$0#*;$&/,#; /#$+")("\'#&\'#." &"/=#$;$/�#*;$&&&#/\'$8":Z" )("\'#&\'#'),B(';.." &"'),B("%$;'.# &;(0)*;'.# &;(&/?#28\"\"6879/0$;//'$8#:[# )(#'#(\"'#&'#"),B('%%$;2/�#*;2&&&#/g#$%$;.0#*;.&/,#;2/#$+")("\'#&\'#0=*%$;.0#*;.&/,#;2/#$+")("\'#&\'#&/#$+")("\'#&\'#/"!&,)'),B('4\\""5!7].# &;3'),B('4^""5!7_'),B('4`""5!7a'),B(';!.) &4b""5!7c'),B('%$;). &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&&&#/"!&,)'),B('%$;). &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&&&#/"!&,)'),B('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.) &;\'.# &;('),B('%$;).ī &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&&&#/"!&,)'),B("%;//?#2P\"\"6P7Q/0$;//'$8#:t# )(#'#(\"'#&'#"),B("%;//?#24\"\"6475/0$;//'$8#:u# )(#'#(\"'#&'#"),B("%;//?#2>\"\"6>7?/0$;//'$8#:v# )(#'#(\"'#&'#"),B("%;//?#2T\"\"6T7U/0$;//'$8#:w# )(#'#(\"'#&'#"),B("%;//?#2V\"\"6V7W/0$;//'$8#:x# )(#'#(\"'#&'#"),B('%2h""6h7i/0#;//\'$8":y" )("\'#&\'#'),B('%;//6#2f""6f7g/\'$8":z" )("\'#&\'#'),B("%;//?#2D\"\"6D7E/0$;//'$8#:{# )(#'#(\"'#&'#"),B("%;//?#22\"\"6273/0$;//'$8#:|# )(#'#(\"'#&'#"),B("%;//?#28\"\"6879/0$;//'$8#:}# )(#'#(\"'#&'#"),B("%;//0#;&/'$8\":~\" )(\"'#&'#"),B("%;&/0#;//'$8\":~\" )(\"'#&'#"),B("%;=/T#$;G.) &;K.# &;F0/*;G.) &;K.# &;F&/,$;>/#$+#)(#'#(\"'#&'#"),B('4""5!7.A &4""5!7.5 &4""5!7.) &;3.# &;.'),B("%%;//Q#;&/H$$;J.# &;K0)*;J.# &;K&/,$;&/#$+$)($'#(#'#(\"'#&'#/\"!&,)"),B("%;//]#;&/T$%$;J.# &;K0)*;J.# &;K&/\"!&,)/1$;&/($8$:
$!!)($'#(#'#(\"'#&'#"),B(';..G &2L""6L7M.; &4""5!7./ &4""5!7.# &;3'),B('%2j""6j7k/J#4""5!7.5 &4""5!7.) &4""5!7/#$+")("\'#&\'#'),B("%;N/M#28\"\"6879/>$;O.\" &\"/0$;S/'$8$:$ )($'#(#'#(\"'#&'#"),B("%;N/d#28\"\"6879/U$;O.\" &\"/G$;S/>$;_/5$;l.\" &\"/'$8&:& )(&'#(%'#($'#(#'#(\"'#&'#"),B('%3""5$7.) &3""5#7/\' 8!:!! )'),B('%;P/]#%28""6879/,#;R/#$+")("\'#&\'#." &"/6$2:""6:7;/\'$8#:# )(#\'#("\'#&\'#'),B("$;+.) &;-.# &;Q/2#0/*;+.) &;-.# &;Q&&&#"),B('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'),B('%$;+._ &;-.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!:! )'),B('%;T/J#%28""6879/,#;^/#$+")("\'#&\'#." &"/#$+")("\'#&\'#'),B("%;U.) &;\\.# &;X/& 8!:! )"),B('%$%;V/2#2J""6J7K/#$+")("\'#&\'#0<*%;V/2#2J""6J7K/#$+")("\'#&\'#&/D#;W/;$2J""6J7K." &"/\'$8#:# )(#\'#("\'#&\'#'),B('$4""5!7/,#0)*4""5!7&&&#'),B('%4$""5!7%/?#$4""5!70)*4""5!7&/#$+")("\'#&\'#'),B('%2l""6l7m/?#;Y/6$2n""6n7o/\'$8#:# )(#\'#("\'#&\'#'),B('%%;Z/³#28""6879/¤$;Z/$28""6879/$;Z/$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+-)(-\'#(,\'#(+\'#(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.ސ &%2""67/¤#;Z/$28""6879/$;Z/$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+,)(,\'#(+\'#(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.۹ &%2""67/#;Z/$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+*)(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.ٺ &%2""67/t#;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+()((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.ؓ &%2""67/\\#;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+&)(&\'#(%\'#($\'#(#\'#("\'#&\'#.ׄ &%2""67/D#;Z/;$28""6879/,$;[/#$+$)($\'#(#\'#("\'#&\'#.֍ &%2""67/,#;[/#$+")("\'#&\'#.ծ &%2""67/,#;Z/#$+")("\'#&\'#.Տ &%;Z/#2""67/$;Z/$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$++)(+\'#(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.Ӈ &%;Z/ª#%28""6879/,#;Z/#$+")("\'#&\'#." &"/$2""67/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+*)(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.а &%;Z/¹#%28""6879/,#;Z/#$+")("\'#&\'#." &"/$%28""6879/,#;Z/#$+")("\'#&\'#." &"/k$2""67/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+))()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.Ί &%;Z/È#%28""6879/,#;Z/#$+")("\'#&\'#." &"/¡$%28""6879/,#;Z/#$+")("\'#&\'#." &"/z$%28""6879/,#;Z/#$+")("\'#&\'#." &"/S$2""67/D$;Z/;$28""6879/,$;[/#$+()((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.˕ &%;Z/×#%28""6879/,#;Z/#$+")("\'#&\'#." &"/°$%28""6879/,#;Z/#$+")("\'#&\'#." &"/$%28""6879/,#;Z/#$+")("\'#&\'#." &"/b$%28""6879/,#;Z/#$+")("\'#&\'#." &"/;$2""67/,$;[/#$+\')(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.ȑ &%;Z/þ#%28""6879/,#;Z/#$+")("\'#&\'#." &"/×$%28""6879/,#;Z/#$+")("\'#&\'#." &"/°$%28""6879/,#;Z/#$+")("\'#&\'#." &"/$%28""6879/,#;Z/#$+")("\'#&\'#." &"/b$%28""6879/,#;Z/#$+")("\'#&\'#." &"/;$2""67/,$;Z/#$+()((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#.Ħ &%;Z/Ĝ#%28""6879/,#;Z/#$+")("\'#&\'#." &"/õ$%28""6879/,#;Z/#$+")("\'#&\'#." &"/Î$%28""6879/,#;Z/#$+")("\'#&\'#." &"/§$%28""6879/,#;Z/#$+")("\'#&\'#." &"/$%28""6879/,#;Z/#$+")("\'#&\'#." &"/Y$%28""6879/,#;Z/#$+")("\'#&\'#." &"/2$2""67/#$+()((\'#(\'\'#(&\'#(%\'#($\'#(#\'#("\'#&\'#/& 8!: ! )'),B('%;#/M#;#." &"/?$;#." &"/1$;#." &"/#$+$)($\'#(#\'#("\'#&\'#'),B("%;Z/;#28\"\"6879/,$;Z/#$+#)(#'#(\"'#&'#.# &;\\"),B("%;]/o#2J\"\"6J7K/`$;]/W$2J\"\"6J7K/H$;]/?$2J\"\"6J7K/0$;]/'$8':¡' )(''#(&'#(%'#($'#(#'#(\"'#&'#"),B('%2¢""6¢7£/2#4¤""5!7¥/#$+")("\'#&\'#. &%2¦""6¦7§/;#4¨""5!7©/,$;!/#$+#)(#\'#("\'#&\'#.j &%2ª""6ª7«/5#;!/,$;!/#$+#)(#\'#("\'#&\'#.B &%4¬""5!7/,#;!/#$+")("\'#&\'#.# &;!'),B('%%;!." &"/[#;!." &"/M$;!." &"/?$;!." &"/1$;!." &"/#$+%)(%\'#($\'#(#\'#("\'#&\'#/\' 8!:®!! )'),B('$%22""6273/,#;`/#$+")("\'#&\'#0<*%22""6273/,#;`/#$+")("\'#&\'#&'),B(";a.A &;b.; &;c.5 &;d./ &;e.) &;f.# &;g"),B('%3¯""5*7°/a#3±""5#7².G &3³""5#7´.; &3µ""5$7¶./ &3·""5#7¸.# &;6/($8":¹"! )("\'#&\'#'),B('%3º""5%7»/I#3¼""5%7½./ &3¾""5"7¿.# &;6/($8":À"! )("\'#&\'#'),B('%3Á""5\'7Â/1#;/($8":Ã"! )("\'#&\'#'),B('%3Ä""5$7Å/1#;ð/($8":Æ"! )("\'#&\'#'),B('%3Ç""5&7È/1#;T/($8":É"! )("\'#&\'#'),B('%3Ê""5"7Ë/N#%2>""6>7?/,#;6/#$+")("\'#&\'#." &"/\'$8":Ì" )("\'#&\'#'),B('%;h/P#%2>""6>7?/,#;i/#$+")("\'#&\'#." &"/)$8":Í""! )("\'#&\'#'),B('%$;j/�#*;j&&&#/"!&,)'),B('%$;j/�#*;j&&&#/"!&,)'),B(";k.) &;+.# &;-"),B('2l""6l7m.e &2n""6n7o.Y &24""6475.M &28""6879.A &2<""6<7=.5 &2@""6@7A.) &2B""6B7C'),B('%26""6677/n#;m/e$$%2<""6<7=/,#;m/#$+")("\'#&\'#0<*%2<""6<7=/,#;m/#$+")("\'#&\'#&/#$+#)(#\'#("\'#&\'#'),B('%;n/A#2>""6>7?/2$;o/)$8#:Î#"" )(#\'#("\'#&\'#'),B("$;p.) &;+.# &;-/2#0/*;p.) &;+.# &;-&&&#"),B("$;p.) &;+.# &;-0/*;p.) &;+.# &;-&"),B('2l""6l7m.e &2n""6n7o.Y &24""6475.M &26""6677.A &28""6879.5 &2@""6@7A.) &2B""6B7C'),B(";.# &;r"),B("%;/G#;'/>$;s/5$;'/,$;/#$+%)(%'#($'#(#'#(\"'#&'#"),B(";M.# &;t"),B("%;/E#28\"\"6879/6$;u.# &;x/'$8#:Ï# )(#'#(\"'#&'#"),B('%;v.# &;w/J#%26""6677/,#;/#$+")("\'#&\'#." &"/#$+")("\'#&\'#'),B('%2Ð""6Ð7Ñ/:#;/1$;w." &"/#$+#)(#\'#("\'#&\'#'),B('%24""6475/,#;{/#$+")("\'#&\'#'),B("%;z/3#$;y0#*;y&/#$+\")(\"'#&'#"),B(";*.) &;+.# &;-"),B(';+. &;-. &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'),B('%;|/e#$%24""6475/,#;|/#$+")("\'#&\'#0<*%24""6475/,#;|/#$+")("\'#&\'#&/#$+")("\'#&\'#'),B('%$;~0#*;~&/e#$%22""6273/,#;}/#$+")("\'#&\'#0<*%22""6273/,#;}/#$+")("\'#&\'#&/#$+")("\'#&\'#'),B("$;~0#*;~&"),B(';+.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'),B('%%;"/#$;".G &;!.A &2@""6@7A.5 &2F""6F7G.) &2J""6J7K0M*;".G &;!.A &2@""6@7A.5 &2F""6F7G.) &2J""6J7K&/#$+")("\'#&\'#/& 8!:Ò! )'),B(";.# &;"),B('%%;O/2#2:""6:7;/#$+")("\'#&\'#." &"/,#;S/#$+")("\'#&\'#." &"'),B('$;+. &;-.} &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&&&#'),B("$;y0#*;y&"),B('%3""5#7Ó/q#24""6475/b$$;!/�#*;!&&&#/L$2J""6J7K/=$$;!/�#*;!&&&#/\'$8%:Ô% )(%\'#($\'#(#\'#("\'#&\'#'),B('2Õ""6Õ7Ö'),B('2×""6×7Ø'),B('2Ù""6Ù7Ú'),B('2Û""6Û7Ü'),B('2Ý""6Ý7Þ'),B('2ß""6ß7à'),B('2á""6á7â'),B('2ã""6ã7ä'),B('2å""6å7æ'),B('2ç""6ç7è'),B('2é""6é7ê'),B("%;
.Y &;.S &;.M &;.G &;.A &;.; &;.5 &;./ &;.) &;.# &;6/& 8!:ë! )"),B("%;/G#;'/>$;/5$;'/,$;/#$+%)(%'#($'#(#'#(\"'#&'#"),B("%;/' 8!:ì!! )"),B("%;!/5#;!/,$;!/#$+#)(#'#(\"'#&'#"),B("%$;*.A &;+.; &;-.5 &;3./ &;4.) &;'.# &;(0G*;*.A &;+.; &;-.5 &;3./ &;4.) &;'.# &;(&/& 8!:í! )"),B("%;¶/Y#$%;A/,#;¶/#$+\")(\"'#&'#06*%;A/,#;¶/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B('%;9/N#%2:""6:7;/,#;9/#$+")("\'#&\'#." &"/\'$8":î" )("\'#&\'#'),B("%;:.c &%;/Y#$%;A/,#;/#$+\")(\"'#&'#06*%;A/,#;/#$+\")(\"'#&'#&/#$+\")(\"'#&'#/& 8!:ï! )"),B("%;L.# &;/]#$%;B/,#;/#$+\")(\"'#&'#06*%;B/,#;/#$+\")(\"'#&'#&/'$8\":ð\" )(\"'#&'#"),B("%;.\" &\"/>#;@/5$;M/,$;?/#$+$)($'#(#'#(\"'#&'#"),B("%%;6/Y#$%;./,#;6/#$+\")(\"'#&'#06*%;./,#;6/#$+\")(\"'#&'#&/#$+\")(\"'#&'#.# &;H/' 8!:ñ!! )"),B(";.) &;.# &; "),B("%3ò\"\"5!7ó/:#;</1$;/($8#:ô#! )(#'#(\"'#&'#"),B("%3õ\"\"5'7ö/:#;</1$;/($8#:÷#! )(#'#(\"'#&'#"),B("%$;!/�#*;!&&&#/' 8!:ø!! )"),B('%2ù""6ù7ú/o#%2J""6J7K/M#;!." &"/?$;!." &"/1$;!." &"/#$+$)($\'#(#\'#("\'#&\'#." &"/\'$8":û" )("\'#&\'#'),B('%;6/J#%;</,#;¡/#$+")("\'#&\'#." &"/)$8":ü""! )("\'#&\'#'),B(";6.) &;T.# &;H"),B("%;£/Y#$%;B/,#;¤/#$+\")(\"'#&'#06*%;B/,#;¤/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B('%3ý""5&7þ.G &3ÿ""5\'7Ā.; &3ā""5$7Ă./ &3ă""5%7Ą.# &;6/& 8!:ą! )'),B(";¥.# &; "),B('%3Ć""5(7ć/M#;</D$3Ĉ""5(7ĉ./ &3Ċ""5(7ċ.# &;6/#$+#)(#\'#("\'#&\'#'),B("%;6/Y#$%;A/,#;6/#$+\")(\"'#&'#06*%;A/,#;6/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B("%$;!/�#*;!&&&#/' 8!:Č!! )"),B("%;©/& 8!:č! )"),B("%;ª/k#;;/b$;¯/Y$$%;B/,#;°/#$+\")(\"'#&'#06*%;B/,#;°/#$+\")(\"'#&'#&/#$+$)($'#(#'#(\"'#&'#"),B(";«.# &;¬"),B('3Ď""5$7ď.S &3Đ""5%7đ.G &3Ē""5%7ē.; &3Ĕ""5%7ĕ./ &3Ė""5+7ė.# &;'),B('3Ę""5\'7ę./ &3Ě""5)7ě.# &;'),B(";6.# &;®"),B('%3Ĝ""5"7ĝ/,#;6/#$+")("\'#&\'#'),B(";.# &;6"),B("%;6/5#;</,$;±/#$+#)(#'#(\"'#&'#"),B(";6.# &;H"),B("%;³/5#;./,$;/#$+#)(#'#(\"'#&'#"),B("%$;!/�#*;!&&&#/' 8!:Ğ!! )"),B("%;/' 8!:ğ!! )"),B('%;¶/^#$%;B/,#; /#$+")("\'#&\'#06*%;B/,#; /#$+")("\'#&\'#&/($8":Ġ"!!)("\'#&\'#'),B('%%;7/e#$%2J""6J7K/,#;7/#$+")("\'#&\'#0<*%2J""6J7K/,#;7/#$+")("\'#&\'#&/#$+")("\'#&\'#/"!&,)'),B("%;L.# &;/]#$%;B/,#;¸/#$+\")(\"'#&'#06*%;B/,#;¸/#$+\")(\"'#&'#&/'$8\":ġ\" )(\"'#&'#"),B(";¹.# &; "),B("%3Ģ\"\"5#7ģ/:#;</1$;6/($8#:Ĥ#! )(#'#(\"'#&'#"),B("%$;!/�#*;!&&&#/' 8!:ĥ!! )"),B("%;/' 8!:Ħ!! )"),B("%$;0#*;&/x#;@/o$;M/f$;?/]$$%;B/,#; /#$+\")(\"'#&'#06*%;B/,#; /#$+\")(\"'#&'#&/'$8%:ħ% )(%'#($'#(#'#(\"'#&'#"),B(";¾"),B("%3Ĩ\"\"5&7ĩ/k#;./b$;Á/Y$$%;A/,#;Á/#$+\")(\"'#&'#06*%;A/,#;Á/#$+\")(\"'#&'#&/#$+$)($'#(#'#(\"'#&'#.# &;¿"),B("%;6/k#;./b$;À/Y$$%;A/,#;À/#$+\")(\"'#&'#06*%;A/,#;À/#$+\")(\"'#&'#&/#$+$)($'#(#'#(\"'#&'#"),B("%;6/;#;</2$;6.# &;H/#$+#)(#'#(\"'#&'#"),B(";Â.G &;Ä.A &;Æ.; &;È.5 &;É./ &;Ê.) &;Ë.# &;À"),B("%3Ī\"\"5%7ī/5#;</,$;Ã/#$+#)(#'#(\"'#&'#"),B("%;I/' 8!:Ĭ!! )"),B("%3ĭ\"\"5&7Į/#;</$;D/
$;Å/|$$%$;'/�#*;'&&&#/,#;Å/#$+\")(\"'#&'#0C*%$;'/�#*;'&&&#/,#;Å/#$+\")(\"'#&'#&/,$;E/#$+&)(&'#(%'#($'#(#'#(\"'#&'#"),B(";t.# &;w"),B("%3į\"\"5%7İ/5#;</,$;Ç/#$+#)(#'#(\"'#&'#"),B("%;I/' 8!:ı!! )"),B("%3IJ\"\"5&7ij/:#;</1$;I/($8#:Ĵ#! )(#'#(\"'#&'#"),B('%3ĵ""5%7Ķ/]#;</T$%3ķ""5$7ĸ/& 8!:Ĺ! ).4 &%3ĺ""5%7Ļ/& 8!:ļ! )/#$+#)(#\'#("\'#&\'#'),B('%3Ľ""5)7ľ/R#;</I$3Ŀ""5#7ŀ./ &3Ł""5(7ł.# &;6/($8#:Ń#! )(#\'#("\'#&\'#'),B('%3ń""5#7Ņ/#;</$;D/$%;Ì/e#$%2D""6D7E/,#;Ì/#$+")("\'#&\'#0<*%2D""6D7E/,#;Ì/#$+")("\'#&\'#&/#$+")("\'#&\'#/,$;E/#$+%)(%\'#($\'#(#\'#("\'#&\'#'),B('%3ņ""5(7Ň./ &3ň""5$7ʼn.# &;6/\' 8!:Ŋ!! )'),B("%;6/Y#$%;A/,#;6/#$+\")(\"'#&'#06*%;A/,#;6/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B("%;Ï/G#;./>$;Ï/5$;./,$;/#$+%)(%'#($'#(#'#(\"'#&'#"),B("%$;!/�#*;!&&&#/' 8!:ŋ!! )"),B("%;Ñ/]#$%;A/,#;Ñ/#$+\")(\"'#&'#06*%;A/,#;Ñ/#$+\")(\"'#&'#&/'$8\":Ō\" )(\"'#&'#"),B("%;/]#$%;B/,#; /#$+\")(\"'#&'#06*%;B/,#; /#$+\")(\"'#&'#&/'$8\":ō\" )(\"'#&'#"),B('%;L.O &;.I &%;@." &"/:#;t/1$;?." &"/#$+#)(#\'#("\'#&\'#/]#$%;B/,#; /#$+")("\'#&\'#06*%;B/,#; /#$+")("\'#&\'#&/\'$8":Ŏ" )("\'#&\'#'),B("%;Ô/]#$%;B/,#;Õ/#$+\")(\"'#&'#06*%;B/,#;Õ/#$+\")(\"'#&'#&/'$8\":ŏ\" )(\"'#&'#"),B("%;/& 8!:Ő! )"),B('%3ő""5(7Œ/:#;</1$;6/($8#:œ#! )(#\'#("\'#&\'#.g &%3Ŕ""5&7ŕ/:#;</1$;6/($8#:Ŗ#! )(#\'#("\'#&\'#.: &%3ŗ""5*7Ř/& 8!:ř! ).# &; '),B('%%;6/k#$%;A/2#;6/)$8":Ś""$ )("\'#&\'#0<*%;A/2#;6/)$8":Ś""$ )("\'#&\'#&/)$8":ś""! )("\'#&\'#." &"/\' 8!:Ŝ!! )'),B("%;Ø/Y#$%;A/,#;Ø/#$+\")(\"'#&'#06*%;A/,#;Ø/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B("%;/Y#$%;B/,#; /#$+\")(\"'#&'#06*%;B/,#; /#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B("%$;!/�#*;!&&&#/' 8!:ŝ!! )"),B("%;Û/Y#$%;B/,#;Ü/#$+\")(\"'#&'#06*%;B/,#;Ü/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B('%3Ş""5&7ş.; &3Š""5\'7š./ &3Ţ""5*7ţ.# &;6/& 8!:Ť! )'),B("%3ť\"\"5&7Ŧ/:#;</1$;Ý/($8#:ŧ#! )(#'#(\"'#&'#.} &%3õ\"\"5'7ö/:#;</1$;/($8#:Ũ#! )(#'#(\"'#&'#.P &%3ũ\"\"5+7Ū/:#;</1$;/($8#:ū#! )(#'#(\"'#&'#.# &; "),B('3Ŭ""5+7ŭ.k &3Ů""5)7ů._ &3Ű""5(7ű.S &3Ų""5\'7ų.G &3Ŵ""5&7ŵ.; &3Ŷ""5*7ŷ./ &3Ÿ""5)7Ź.# &;6'),B(';1." &"'),B('%%;6/k#$%;A/2#;6/)$8":Ś""$ )("\'#&\'#0<*%;A/2#;6/)$8":Ś""$ )("\'#&\'#&/)$8":ś""! )("\'#&\'#." &"/\' 8!:ź!! )'),B("%;L.# &;/]#$%;B/,#;á/#$+\")(\"'#&'#06*%;B/,#;á/#$+\")(\"'#&'#&/'$8\":Ż\" )(\"'#&'#"),B(";¹.# &; "),B("%;ã/Y#$%;A/,#;ã/#$+\")(\"'#&'#06*%;A/,#;ã/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),B("%;ê/k#;./b$;í/Y$$%;B/,#;ä/#$+\")(\"'#&'#06*%;B/,#;ä/#$+\")(\"'#&'#&/#$+$)($'#(#'#(\"'#&'#"),B(";å.; &;æ.5 &;ç./ &;è.) &;é.# &; "),B("%3ż\"\"5#7Ž/:#;</1$;ð/($8#:ž#! )(#'#(\"'#&'#"),B("%3ſ\"\"5%7ƀ/:#;</1$;T/($8#:Ɓ#! )(#'#(\"'#&'#"),B("%3Ƃ\"\"5(7ƃ/F#;</=$;\\.) &;Y.# &;X/($8#:Ƅ#! )(#'#(\"'#&'#"),B("%3ƅ\"\"5&7Ɔ/:#;</1$;6/($8#:Ƈ#! )(#'#(\"'#&'#"),B("%3ƈ\"\"5%7Ɖ/A#;</8$$;!0#*;!&/($8#:Ɗ#! )(#'#(\"'#&'#"),B("%;ë/G#;;/>$;6/5$;;/,$;ì/#$+%)(%'#($'#(#'#(\"'#&'#"),B('%3""5#7Ó.# &;6/\' 8!:Ƌ!! )'),B('%3±""5#7ƌ.G &3³""5#7ƍ.; &3·""5#7Ǝ./ &3µ""5$7Ə.# &;6/\' 8!:Ɛ!! )'),B('%;î/D#%;C/,#;ï/#$+")("\'#&\'#." &"/#$+")("\'#&\'#'),B("%;U.) &;\\.# &;X/& 8!:Ƒ! )"),B('%%;!." &"/[#;!." &"/M$;!." &"/?$;!." &"/1$;!." &"/#$+%)(%\'#($\'#(#\'#("\'#&\'#/\' 8!:ƒ!! )'),B('%%;!/?#;!." &"/1$;!." &"/#$+#)(#\'#("\'#&\'#/\' 8!:Ɠ!! )'),B(";¾"),B('%;/^#$%;B/,#;ó/#$+")("\'#&\'#06*%;B/,#;ó/#$+")("\'#&\'#&/($8":Ɣ"!!)("\'#&\'#'),B(";ô.# &; "),B('%2ƕ""6ƕ7Ɩ/L#;</C$2Ɨ""6Ɨ7Ƙ.) &2ƙ""6ƙ7ƚ/($8#:ƛ#! )(#\'#("\'#&\'#'),B('%;/^#$%;B/,#; /#$+")("\'#&\'#06*%;B/,#; /#$+")("\'#&\'#&/($8":Ɯ"!!)("\'#&\'#'),B("%;6/5#;0/,$;÷/#$+#)(#'#(\"'#&'#"),B("$;2.) &;4.# &;.0/*;2.) &;4.# &;.&"),B("$;%0#*;%&"),B("%;ú/;#28\"\"6879/,$;û/#$+#)(#'#(\"'#&'#"),B('%3Ɲ""5%7ƞ.) &3Ɵ""5$7Ơ/\' 8!:ơ!! )'),B('%;ü/J#%28""6879/,#;^/#$+")("\'#&\'#." &"/#$+")("\'#&\'#'),B("%;\\.) &;X.# &;/' 8!:Ƣ!! )"),B(';".S &;!.M &2F""6F7G.A &2J""6J7K.5 &2H""6H7I.) &2N""6N7O'),B('2L""6L7M. &2B""6B7C. &2<""6<7=.} &2R""6R7S.q &2T""6T7U.e &2V""6V7W.Y &2P""6P7Q.M &2@""6@7A.A &2D""6D7E.5 &22""6273.) &2>""6>7?'),B('%;Ā/b#28""6879/S$;û/J$%2ƣ""6ƣ7Ƥ/,#;ì/#$+")("\'#&\'#." &"/#$+$)($\'#(#\'#("\'#&\'#'),B('%3ƥ""5%7Ʀ.) &3Ƨ""5$7ƨ/\' 8!:ơ!! )'),B('%3±""5#7².6 &3³""5#7´.* &$;+0#*;+&/\' 8!:Ʃ!! )'),B("%;Ą/#2F\"\"6F7G/x$;ă/o$2F\"\"6F7G/`$;ă/W$2F\"\"6F7G/H$;ă/?$2F\"\"6F7G/0$;ą/'$8):ƪ) )()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#"),B("%;#/>#;#/5$;#/,$;#/#$+$)($'#(#'#(\"'#&'#"),B("%;ă/,#;ă/#$+\")(\"'#&'#"),B("%;ă/5#;ă/,$;ă/#$+#)(#'#(\"'#&'#"),B("%;q/T#$;m0#*;m&/D$%; /,#;ø/#$+\")(\"'#&'#.\" &\"/#$+#)(#'#(\"'#&'#"),B('%2ƫ""6ƫ7Ƭ.) &2ƭ""6ƭ7Ʈ/w#;0/n$;Ĉ/e$$%;B/2#;ĉ.# &; /#$+")("\'#&\'#0<*%;B/2#;ĉ.# &; /#$+")("\'#&\'#&/#$+$)($\'#(#\'#("\'#&\'#'),B(";.# &;L"),B("%2Ư\"\"6Ư7ư/5#;</,$;Ċ/#$+#)(#'#(\"'#&'#"),B("%;D/S#;,/J$2:\"\"6:7;/;$;,.# &;T/,$;E/#$+%)(%'#($'#(#'#(\"'#&'#")];let a=0,V=0;const c=[{line:1,column:1}];let h,l=0,g=[],u=0;if(void 0!==e.startRule){if(!(e.startRule in i))throw new Error("Can't start parsing from rule \""+e.startRule+'".');o=i[e.startRule]}function p(){return A.substring(V,a)}function C(){return M(V,a)}function E(A,e){return{type:"literal",text:A,ignoreCase:e}}function I(A,e,t){return{type:"class",parts:A,inverted:e,ignoreCase:t}}function w(e){let t,s=c[e];if(s)return s;for(t=e-1;!c[t];)t--;for(s=c[t],s={line:s.line,column:s.column};t<e;)10===A.charCodeAt(t)?(s.line++,s.column=1):s.column++,t++;return c[e]=s,s}function M(A,e){const t=w(A),i=w(e);return{source:s,start:{offset:A,line:t.line,column:t.column},end:{offset:e,line:i.line,column:i.column}}}function f(A){a<l||(a>l&&(l=a,g=[]),g.push(A))}function B(A){return A.split("").map(A=>A.charCodeAt(0)-32)}if(e.data={},h=function e(s){const i=r[s];let o=0;const c=[];let h=i.length;const l=[],g=[];let q;for(;;){for(;o<h;)switch(i[o]){case 0:g.push(n[i[o+1]]),o+=2;break;case 1:g.push(void 0),o++;break;case 2:g.push(null),o++;break;case 3:g.push(t),o++;break;case 4:g.push([]),o++;break;case 5:g.push(a),o++;break;case 6:g.pop(),o++;break;case 7:a=g.pop(),o++;break;case 8:g.length-=i[o+1],o+=2;break;case 9:g.splice(-2,1),o++;break;case 10:g[g.length-2].push(g.pop()),o++;break;case 11:g.push(g.splice(g.length-i[o+1],i[o+1])),o+=2;break;case 12:g.push(A.substring(g.pop(),a)),o++;break;case 13:l.push(h),c.push(o+3+i[o+1]+i[o+2]),g[g.length-1]?(h=o+3+i[o+1],o+=3):(h=o+3+i[o+1]+i[o+2],o+=3+i[o+1]);break;case 14:l.push(h),c.push(o+3+i[o+1]+i[o+2]),g[g.length-1]===t?(h=o+3+i[o+1],o+=3):(h=o+3+i[o+1]+i[o+2],o+=3+i[o+1]);break;case 15:l.push(h),c.push(o+3+i[o+1]+i[o+2]),g[g.length-1]!==t?(h=o+3+i[o+1],o+=3):(h=o+3+i[o+1]+i[o+2],o+=3+i[o+1]);break;case 16:g[g.length-1]!==t?(l.push(h),c.push(o),h=o+2+i[o+1],o+=2):o+=2+i[o+1];break;case 17:l.push(h),c.push(o+3+i[o+1]+i[o+2]),A.length>a?(h=o+3+i[o+1],o+=3):(h=o+3+i[o+1]+i[o+2],o+=3+i[o+1]);break;case 18:l.push(h),c.push(o+4+i[o+2]+i[o+3]),A.substr(a,n[i[o+1]].length)===n[i[o+1]]?(h=o+4+i[o+2],o+=4):(h=o+4+i[o+2]+i[o+3],o+=4+i[o+2]);break;case 19:l.push(h),c.push(o+4+i[o+2]+i[o+3]),A.substr(a,n[i[o+1]].length).toLowerCase()===n[i[o+1]]?(h=o+4+i[o+2],o+=4):(h=o+4+i[o+2]+i[o+3],o+=4+i[o+2]);break;case 20:l.push(h),c.push(o+4+i[o+2]+i[o+3]),n[i[o+1]].test(A.charAt(a))?(h=o+4+i[o+2],o+=4):(h=o+4+i[o+2]+i[o+3],o+=4+i[o+2]);break;case 21:g.push(A.substr(a,i[o+1])),a+=i[o+1],o+=2;break;case 22:g.push(n[i[o+1]]),a+=n[i[o+1]].length,o+=2;break;case 23:g.push(t),0===u&&f(n[i[o+1]]),o+=2;break;case 24:V=g[g.length-1-i[o+1]],o+=2;break;case 25:V=a,o++;break;case 26:q=i.slice(o+4,o+4+i[o+3]).map(function(A){return g[g.length-1-A]}),g.splice(g.length-i[o+2],i[o+2],n[i[o+1]].apply(null,q)),o+=4+i[o+3];break;case 27:g.push(e(i[o+1])),o+=2;break;case 28:u++,o++;break;case 29:u--,o++;break;default:throw new Error("Invalid opcode: "+i[o]+".")}if(!(l.length>0))break;h=l.pop(),o=c.pop()}return g[0]}(o),h!==t&&a===A.length)return h;throw h!==t&&a<A.length&&f({type:"end"}),Q=g,S=l<A.length?A.charAt(l):null,T=l<A.length?M(l,l+1):M(l,l),new m(m.buildMessage(Q,S),Q,S,T);var Q,S,T};var E;!function(A){A.parse=function(A,e){const t={startRule:e};try{C(A,t)}catch(A){t.data=-1}return t.data},A.nameAddrHeaderParse=function(e){const t=A.parse(e,"Name_Addr_Header");return-1!==t?t:void 0},A.URIParse=function(e){const t=A.parse(e,"SIP_URI");return-1!==t?t:void 0}}(E=E||(E={}));const I={100:"Trying",180:"Ringing",181:"Call Is Being Forwarded",182:"Queued",183:"Session Progress",199:"Early Dialog Terminated",200:"OK",202:"Accepted",204:"No Notification",300:"Multiple Choices",301:"Moved Permanently",302:"Moved Temporarily",305:"Use Proxy",380:"Alternative Service",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",410:"Gone",412:"Conditional Request Failed",413:"Request Entity Too Large",414:"Request-URI Too Long",415:"Unsupported Media Type",416:"Unsupported URI Scheme",417:"Unknown Resource-Priority",420:"Bad Extension",421:"Extension Required",422:"Session Interval Too Small",423:"Interval Too Brief",428:"Use Identity Header",429:"Provide Referrer Identity",430:"Flow Failed",433:"Anonymity Disallowed",436:"Bad Identity-Info",437:"Unsupported Certificate",438:"Invalid Identity Header",439:"First Hop Lacks Outbound Support",440:"Max-Breadth Exceeded",469:"Bad Info Package",470:"Consent Needed",478:"Unresolvable Destination",480:"Temporarily Unavailable",481:"Call/Transaction Does Not Exist",482:"Loop Detected",483:"Too Many Hops",484:"Address Incomplete",485:"Ambiguous",486:"Busy Here",487:"Request Terminated",488:"Not Acceptable Here",489:"Bad Event",491:"Request Pending",493:"Undecipherable",494:"Security Agreement Required",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Server Time-out",505:"Version Not Supported",513:"Message Too Large",580:"Precondition Failure",600:"Busy Everywhere",603:"Decline",604:"Does Not Exist Anywhere",606:"Not Acceptable"};function w(A,e=32){let t="";for(let s=0;s<A;s++){t+=Math.floor(Math.random()*e).toString(e)}return t}function M(A){return I[A]||""}function f(){return w(10)}function B(A){const e={"Call-Id":"Call-ID",Cseq:"CSeq","Min-Se":"Min-SE",Rack:"RAck",Rseq:"RSeq","Www-Authenticate":"WWW-Authenticate"},t=A.toLowerCase().replace(/_/g,"-").split("-"),s=t.length;let i="";for(let A=0;A<s;A++)0!==A&&(i+="-"),i+=t[A].charAt(0).toUpperCase()+t[A].substring(1);return e[i]&&(i=e[i]),i}function Q(A){return encodeURIComponent(A).replace(/%[A-F\d]{2}/g,"U").length}class S{constructor(){this.headers={}}addHeader(A,e){const t={raw:e};A=B(A),this.headers[A]?this.headers[A].push(t):this.headers[A]=[t]}getHeader(A){const e=this.headers[B(A)];if(e)return e[0]?e[0].raw:void 0}getHeaders(A){const e=this.headers[B(A)],t=[];if(!e)return[];for(const A of e)t.push(A.raw);return t}hasHeader(A){return!!this.headers[B(A)]}parseHeader(A,e=0){if(A=B(A),!this.headers[A])return;if(e>=this.headers[A].length)return;const t=this.headers[A][e],s=t.raw;if(t.parsed)return t.parsed;const i=E.parse(s,A.replace(/-/g,"_"));return-1===i?void this.headers[A].splice(e,1):(t.parsed=i,i)}s(A,e=0){return this.parseHeader(A,e)}setHeader(A,e){this.headers[B(A)]=[{raw:e}]}toString(){return this.data}}class T extends S{constructor(){super()}}class y extends S{constructor(){super()}}class R{constructor(A,e,t,s,i,o,n){this.headers={},this.extraHeaders=[],this.options=R.getDefaultOptions(),i&&(this.options=Object.assign(Object.assign({},this.options),i),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())),o&&o.length&&(this.extraHeaders=o.slice()),n&&(this.body={body:n.content,contentType:n.contentType}),this.method=A,this.ruri=e.clone(),this.fromURI=t.clone(),this.fromTag=this.options.fromTag?this.options.fromTag:f(),this.from=R.makeNameAddrHeader(this.fromURI,this.options.fromDisplayName,this.fromTag),this.toURI=s.clone(),this.toTag=this.options.toTag,this.to=R.makeNameAddrHeader(this.toURI,this.options.toDisplayName,this.toTag),this.callId=this.options.callId?this.options.callId:this.options.callIdPrefix+w(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(A,e,t){const s={};return t&&(s.tag=t),new q(A,e,s)}getHeader(A){const e=this.headers[B(A)];if(e){if(e[0])return e[0]}else{const e=new RegExp("^\\s*"+A+"\\s*:","i");for(const A of this.extraHeaders)if(e.test(A))return A.substring(A.indexOf(":")+1).trim()}}getHeaders(A){const e=[],t=this.headers[B(A)];if(t)for(const A of t)e.push(A);else{const t=new RegExp("^\\s*"+A+"\\s*:","i");for(const A of this.extraHeaders)t.test(A)&&e.push(A.substring(A.indexOf(":")+1).trim())}return e}hasHeader(A){if(this.headers[B(A)])return!0;{const e=new RegExp("^\\s*"+A+"\\s*:","i");for(const A of this.extraHeaders)if(e.test(A))return!0}return!1}setHeader(A,e){this.headers[B(A)]=e instanceof Array?e:[e]}setViaHeader(A,e){this.options.hackViaTcp&&(e="TCP");let t="SIP/2.0/"+e;t+=" "+this.options.viaHost+";branch="+A,this.options.forceRport&&(t+=";rport"),this.setHeader("via",t),this.branch=A}toString(){let A="";A+=this.method+" "+this.ruri.toRaw()+" SIP/2.0\r\n";for(const e in this.headers)if(this.headers[e])for(const t of this.headers[e])A+=e+": "+t+"\r\n";for(const e of this.extraHeaders)A+=e.trim()+"\r\n";return A+="Supported: "+this.options.optionTags.join(", ")+"\r\n",A+="User-Agent: "+this.options.userAgentString+"\r\n",this.body?"string"==typeof this.body?(A+="Content-Length: "+Q(this.body)+"\r\n\r\n",A+=this.body):this.body.body&&this.body.contentType?(A+="Content-Type: "+this.body.contentType+"\r\n",A+="Content-Length: "+Q(this.body.body)+"\r\n\r\n",A+=this.body.body):A+="Content-Length: 0\r\n\r\n":A+="Content-Length: 0\r\n\r\n",A}}function D(A){return"application/sdp"===A?"session":"render"}function U(A){const e="string"==typeof A?A:A.body,t="string"==typeof A?"application/sdp":A.contentType;return{contentDisposition:D(t),contentType:t,content:e}}function k(A){return!(!A||"string"!=typeof A.content||"string"!=typeof A.contentType||void 0!==A.contentDisposition)||"string"==typeof A.contentDisposition}function G(A){let e,t,s;if(A instanceof T&&A.body){const i=A.parseHeader("Content-Disposition");e=i?i.type:void 0,t=A.parseHeader("Content-Type"),s=A.body}if(A instanceof y&&A.body){const i=A.parseHeader("Content-Disposition");e=i?i.type:void 0,t=A.parseHeader("Content-Type"),s=A.body}if(A instanceof R&&A.body)if(e=A.getHeader("Content-Disposition"),t=A.getHeader("Content-Type"),"string"==typeof A.body){if(!t)throw new Error("Header content type header does not equal body content type.");s=A.body}else{if(t&&t!==A.body.contentType)throw new Error("Header content type header does not equal body content type.");t=A.body.contentType,s=A.body.body}if(k(A)&&(e=A.contentDisposition,t=A.contentType,s=A.content),s){if(t&&!e&&(e=D(t)),!e)throw new Error("Content disposition undefined.");if(!t)throw new Error("Content type undefined.");return{contentDisposition:e,contentType:t,content:s}}}var F,Y;!function(A){A.Initial="Initial",A.Early="Early",A.AckWait="AckWait",A.Confirmed="Confirmed",A.Terminated="Terminated"}(F=F||(F={})),function(A){A.Initial="Initial",A.HaveLocalOffer="HaveLocalOffer",A.HaveRemoteOffer="HaveRemoteOffer",A.Stable="Stable",A.Closed="Closed"}(Y=Y||(Y={}));const Z=500,O=5e3,v={T1:Z,T2:4e3,T4:O,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 x extends t{constructor(A){super(A||"Transaction state error.")}}var N;!function(A){A.ACK="ACK",A.BYE="BYE",A.CANCEL="CANCEL",A.INFO="INFO",A.INVITE="INVITE",A.MESSAGE="MESSAGE",A.NOTIFY="NOTIFY",A.OPTIONS="OPTIONS",A.REGISTER="REGISTER",A.UPDATE="UPDATE",A.SUBSCRIBE="SUBSCRIBE",A.PUBLISH="PUBLISH",A.REFER="REFER",A.PRACK="PRACK"}(N=N||(N={}));const K=[N.ACK,N.BYE,N.CANCEL,N.INFO,N.INVITE,N.MESSAGE,N.NOTIFY,N.OPTIONS,N.PRACK,N.REFER,N.REGISTER,N.SUBSCRIBE];class b{constructor(A){this.incomingMessageRequest=A}get request(){return this.incomingMessageRequest.message}accept(A){return this.incomingMessageRequest.accept(A),Promise.resolve()}reject(A){return this.incomingMessageRequest.reject(A),Promise.resolve()}}let J=class{constructor(A){this.incomingNotifyRequest=A}get request(){return this.incomingNotifyRequest.message}accept(A){return this.incomingNotifyRequest.accept(A),Promise.resolve()}reject(A){return this.incomingNotifyRequest.reject(A),Promise.resolve()}};class L{constructor(A,e){this.incomingReferRequest=A,this.session=e}get referTo(){const A=this.incomingReferRequest.message.parseHeader("refer-to");if(!(A instanceof q))throw new Error("Failed to parse Refer-To header.");return A}get referredBy(){return this.incomingReferRequest.message.getHeader("referred-by")}get replaces(){const A=this.referTo.uri.getHeader("replaces");return A instanceof Array?A[0]:A}get request(){return this.incomingReferRequest.message}accept(A={statusCode:202}){return this.incomingReferRequest.accept(A),Promise.resolve()}reject(A){return this.incomingReferRequest.reject(A),Promise.resolve()}makeInviter(A){if(this.inviter)return this.inviter;const e=this.referTo.uri.clone();e.clearHeaders();const t=((A=A||{}).extraHeaders||[]).slice(),s=this.replaces;s&&t.push("Replaces: "+decodeURIComponent(s));const i=this.referredBy;return i&&t.push("Referred-By: "+i),A.extraHeaders=t,this.inviter=this.session.userAgent._makeInviter(e,A),this.inviter._referred=this.session,this.session._referral=this.inviter,this.inviter}}var H,j;!function(A){A.Initial="Initial",A.Establishing="Establishing",A.Established="Established",A.Terminating="Terminating",A.Terminated="Terminated"}(H=H||(H={}));class W{constructor(A,e={}){this.pendingReinvite=!1,this.pendingReinviteAck=!1,this._state=H.Initial,this.delegate=e.delegate,this._stateEventEmitter=new h,this._userAgent=A}dispose(){switch(this.logger.log(`Session ${this.id} in state ${this._state} is being disposed`),delete this.userAgent._sessions[this.id],this._sessionDescriptionHandler&&this._sessionDescriptionHandler.close(),this.state){case H.Initial:case H.Establishing:break;case H.Established:return new Promise(A=>{this._bye({onAccept:()=>A(),onRedirect:()=>A(),onReject:()=>A()})});case H.Terminating:case H.Terminated:break;default:throw new Error("Unknown state.")}return Promise.resolve()}get assertedIdentity(){return this._assertedIdentity}get dialog(){return this._dialog}get id(){return this._id}get replacee(){return this._replacee}get sessionDescriptionHandler(){return this._sessionDescriptionHandler}get sessionDescriptionHandlerFactory(){return this.userAgent.configuration.sessionDescriptionHandlerFactory}get sessionDescriptionHandlerModifiers(){return this._sessionDescriptionHandlerModifiers||[]}set sessionDescriptionHandlerModifiers(A){this._sessionDescriptionHandlerModifiers=A.slice()}get sessionDescriptionHandlerOptions(){return this._sessionDescriptionHandlerOptions||{}}set sessionDescriptionHandlerOptions(A){this._sessionDescriptionHandlerOptions=Object.assign({},A)}get sessionDescriptionHandlerModifiersReInvite(){return this._sessionDescriptionHandlerModifiersReInvite||[]}set sessionDescriptionHandlerModifiersReInvite(A){this._sessionDescriptionHandlerModifiersReInvite=A.slice()}get sessionDescriptionHandlerOptionsReInvite(){return this._sessionDescriptionHandlerOptionsReInvite||{}}set sessionDescriptionHandlerOptionsReInvite(A){this._sessionDescriptionHandlerOptionsReInvite=Object.assign({},A)}get state(){return this._state}get stateChange(){return this._stateEventEmitter}get userAgent(){return this._userAgent}bye(A={}){let e="Session.bye() may only be called if established session.";switch(this.state){case H.Initial:"function"==typeof this.cancel?(e+=" However Inviter.invite() has not yet been called.",e+=" Perhaps you should have called Inviter.cancel()?"):"function"==typeof this.reject&&(e+=" However Invitation.accept() has not yet been called.",e+=" Perhaps you should have called Invitation.reject()?");break;case H.Establishing:"function"==typeof this.cancel?(e+=" However a dialog does not yet exist.",e+=" Perhaps you should have called Inviter.cancel()?"):"function"==typeof this.reject&&(e+=" However Invitation.accept() has not yet been called (or not yet resolved).",e+=" Perhaps you should have called Invitation.reject()?");break;case H.Established:{const e=A.requestDelegate,t=this.copyRequestOptions(A.requestOptions);return this._bye(e,t)}case H.Terminating:e+=" However this session is already terminating.","function"==typeof this.cancel?e+=" Perhaps you have already called Inviter.cancel()?":"function"==typeof this.reject&&(e+=" Perhaps you have already called Session.bye()?");break;case H.Terminated:e+=" However this session is already terminated.";break;default:throw new Error("Unknown state")}return this.logger.error(e),Promise.reject(new Error(`Invalid session state ${this.state}`))}info(A={}){if(this.state!==H.Established){const A="Session.info() may only be called if established session.";return this.logger.error(A),Promise.reject(new Error(`Invalid session state ${this.state}`))}const e=A.requestDelegate,t=this.copyRequestOptions(A.requestOptions);return this._info(e,t)}invite(A={}){if(this.logger.log("Session.invite"),this.state!==H.Established)return Promise.reject(new Error(`Invalid session state ${this.state}`));if(this.pendingReinvite)return Promise.reject(new i("Reinvite in progress. Please wait until complete, then try again."));this.pendingReinvite=!0,A.sessionDescriptionHandlerModifiers&&(this.sessionDescriptionHandlerModifiersReInvite=A.sessionDescriptionHandlerModifiers),A.sessionDescriptionHandlerOptions&&(this.sessionDescriptionHandlerOptionsReInvite=A.sessionDescriptionHandlerOptions);const e={onAccept:e=>{const t=G(e.message);if(!t)return this.logger.error("Received 2xx response to re-INVITE without a session description"),this.ackAndBye(e,400,"Missing session description"),this.stateTransition(H.Terminated),void(this.pendingReinvite=!1);if(A.withoutSdp){const s={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptionsReInvite,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiersReInvite};this.setOfferAndGetAnswer(t,s).then(A=>{e.ack({body:A})}).catch(A=>{this.logger.error("Failed to handle offer in 2xx response to re-INVITE"),this.logger.error(A.message),this.state===H.Terminated?e.ack():(this.ackAndBye(e,488,"Bad Media Description"),this.stateTransition(H.Terminated))}).then(()=>{this.pendingReinvite=!1,A.requestDelegate&&A.requestDelegate.onAccept&&A.requestDelegate.onAccept(e)})}else{const s={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptionsReInvite,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiersReInvite};this.setAnswer(t,s).then(()=>{e.ack()}).catch(A=>{this.logger.error("Failed to handle answer in 2xx response to re-INVITE"),this.logger.error(A.message),this.state!==H.Terminated?(this.ackAndBye(e,488,"Bad Media Description"),this.stateTransition(H.Terminated)):e.ack()}).then(()=>{this.pendingReinvite=!1,A.requestDelegate&&A.requestDelegate.onAccept&&A.requestDelegate.onAccept(e)})}},onProgress:A=>{},onRedirect:A=>{},onReject:e=>{this.logger.warn("Received a non-2xx response to re-INVITE"),this.pendingReinvite=!1,A.withoutSdp?A.requestDelegate&&A.requestDelegate.onReject&&A.requestDelegate.onReject(e):this.rollbackOffer().catch(A=>{if(this.logger.error("Failed to rollback offer on non-2xx response to re-INVITE"),this.logger.error(A.message),this.state!==H.Terminated){if(!this.dialog)throw new Error("Dialog undefined.");const A=[];A.push("Reason: "+this.getReasonHeaderValue(500,"Internal Server Error")),this.dialog.bye(void 0,{extraHeaders:A}),this.stateTransition(H.Terminated)}}).then(()=>{A.requestDelegate&&A.requestDelegate.onReject&&A.requestDelegate.onReject(e)})},onTrying:A=>{}},t=A.requestOptions||{};if(t.extraHeaders=(t.extraHeaders||[]).slice(),t.extraHeaders.push("Allow: "+K.toString()),t.extraHeaders.push("Contact: "+this._contact),A.withoutSdp){if(!this.dialog)throw this.pendingReinvite=!1,new Error("Dialog undefined.");return Promise.resolve(this.dialog.invite(e,t))}const s={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptionsReInvite,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiersReInvite};return this.getOffer(s).then(A=>{if(!this.dialog)throw this.pendingReinvite=!1,new Error("Dialog undefined.");return t.body=A,this.dialog.invite(e,t)}).catch(A=>{throw this.logger.error(A.message),this.logger.error("Failed to send re-INVITE"),this.pendingReinvite=!1,A})}message(A={}){if(this.state!==H.Established){const A="Session.message() may only be called if established session.";return this.logger.error(A),Promise.reject(new Error(`Invalid session state ${this.state}`))}const e=A.requestDelegate,t=this.copyRequestOptions(A.requestOptions);return this._message(e,t)}refer(A,e={}){if(this.state!==H.Established){const A="Session.refer() may only be called if established session.";return this.logger.error(A),Promise.reject(new Error(`Invalid session state ${this.state}`))}if(A instanceof W&&!A.dialog){const A="Session.refer() may only be called with session which is established. You are perhaps attempting to attended transfer to a target for which there is not dialog yet established. Perhaps you are attempting a 'semi-attended' tansfer? Regardless, this is not supported. The recommended approached is to check to see if the target Session is in the Established state before calling refer(); if the state is not Established you may proceed by falling back using a URI as the target (blind transfer).";return this.logger.error(A),Promise.reject(new Error(`Invalid session state ${this.state}`))}const t=e.requestDelegate,s=this.copyRequestOptions(e.requestOptions);return s.extraHeaders=s.extraHeaders?s.extraHeaders.concat(this.referExtraHeaders(this.referToString(A))):this.referExtraHeaders(this.referToString(A)),this._refer(e.onNotify,t,s)}_bye(A,e){if(!this.dialog)return Promise.reject(new Error("Session dialog undefined."));const t=this.dialog;switch(t.sessionState){case F.Initial:case F.Early:throw new Error(`Invalid dialog state ${t.sessionState}`);case F.AckWait:return this.stateTransition(H.Terminating),new Promise(s=>{t.delegate={onAck:()=>{const i=t.bye(A,e);return this.stateTransition(H.Terminated),s(i),Promise.resolve()},onAckTimeout:()=>{const i=t.bye(A,e);this.stateTransition(H.Terminated),s(i)}}});case F.Confirmed:{const s=t.bye(A,e);return this.stateTransition(H.Terminated),Promise.resolve(s)}case F.Terminated:throw new Error(`Invalid dialog state ${t.sessionState}`);default:throw new Error("Unrecognized state.")}}_info(A,e){return this.dialog?Promise.resolve(this.dialog.info(A,e)):Promise.reject(new Error("Session dialog undefined."))}_message(A,e){return this.dialog?Promise.resolve(this.dialog.message(A,e)):Promise.reject(new Error("Session dialog undefined."))}_refer(A,e,t){return this.dialog?(this.onNotify=A,Promise.resolve(this.dialog.refer(e,t))):Promise.reject(new Error("Session dialog undefined."))}ackAndBye(A,e,t){A.ack();const s=[];e&&s.push("Reason: "+this.getReasonHeaderValue(e,t)),A.session.bye(void 0,{extraHeaders:s})}onAckRequest(A){if(this.logger.log("Session.onAckRequest"),this.state!==H.Established&&this.state!==H.Terminating)return this.logger.error(`ACK received while in state ${this.state}, dropping request`),Promise.resolve();const e=this.dialog;if(!e)throw new Error("Dialog undefined.");const t={sessionDescriptionHandlerOptions:this.pendingReinviteAck?this.sessionDescriptionHandlerOptionsReInvite:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.pendingReinviteAck?this._sessionDescriptionHandlerModifiersReInvite:this._sessionDescriptionHandlerModifiers};if(this.delegate&&this.delegate.onAck){const e=new a(A);this.delegate.onAck(e)}switch(this.pendingReinviteAck=!1,e.signalingState){case Y.Initial:{this.logger.error(`Invalid signaling state ${e.signalingState}.`);const A=["Reason: "+this.getReasonHeaderValue(488,"Bad Media Description")];return e.bye(void 0,{extraHeaders:A}),this.stateTransition(H.Terminated),Promise.resolve()}case Y.Stable:{const s=G(A.message);return s?"render"===s.contentDisposition?(this._renderbody=s.content,this._rendertype=s.contentType,Promise.resolve()):"session"!==s.contentDisposition?Promise.resolve():this.setAnswer(s,t).catch(A=>{this.logger.error(A.message);const t=["Reason: "+this.getReasonHeaderValue(488,"Bad Media Description")];e.bye(void 0,{extraHeaders:t}),this.stateTransition(H.Terminated)}):Promise.resolve()}case Y.HaveLocalOffer:{this.logger.error(`Invalid signaling state ${e.signalingState}.`);const A=["Reason: "+this.getReasonHeaderValue(488,"Bad Media Description")];return e.bye(void 0,{extraHeaders:A}),this.stateTransition(H.Terminated),Promise.resolve()}case Y.HaveRemoteOffer:{this.logger.error(`Invalid signaling state ${e.signalingState}.`);const A=["Reason: "+this.getReasonHeaderValue(488,"Bad Media Description")];return e.bye(void 0,{extraHeaders:A}),this.stateTransition(H.Terminated),Promise.resolve()}case Y.Closed:default:throw new Error(`Invalid signaling state ${e.signalingState}.`)}}onByeRequest(A){if(this.logger.log("Session.onByeRequest"),this.state===H.Established){if(this.delegate&&this.delegate.onBye){const e=new V(A);this.delegate.onBye(e)}else A.accept();this.stateTransition(H.Terminated)}else this.logger.error(`BYE received while in state ${this.state}, dropping request`)}onInfoRequest(A){if(this.logger.log("Session.onInfoRequest"),this.state===H.Established)if(this.delegate&&this.delegate.onInfo){const e=new l(A);this.delegate.onInfo(e)}else A.accept();else this.logger.error(`INFO received while in state ${this.state}, dropping request`)}onInviteRequest(A){if(this.logger.log("Session.onInviteRequest"),this.state!==H.Established)return void this.logger.error(`INVITE received while in state ${this.state}, dropping request`);this.pendingReinviteAck=!0;const e=["Contact: "+this._contact];if(A.message.hasHeader("P-Asserted-Identity")){const e=A.message.getHeader("P-Asserted-Identity");if(!e)throw new Error("Header undefined.");this._assertedIdentity=E.nameAddrHeaderParse(e)}const t={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptionsReInvite,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiersReInvite};this.generateResponseOfferAnswerInDialog(t).then(t=>{const s=A.accept({statusCode:200,extraHeaders:e,body:t});this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(A.message,s.message,200)}).catch(e=>{if(this.logger.error(e.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===Y.Stable){const e=A.reject({statusCode:488});return void(this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(A.message,e.message,488))}this.rollbackOffer().then(()=>{const e=A.reject({statusCode:488});this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(A.message,e.message,488)}).catch(e=>{this.logger.error(e.message),this.logger.error("Failed to rollback offer on re-INVITE request");const t=A.reject({statusCode:488});if(this.state!==H.Terminated){if(!this.dialog)throw new Error("Dialog undefined.");const A=[];A.push("Reason: "+this.getReasonHeaderValue(500,"Internal Server Error")),this.dialog.bye(void 0,{extraHeaders:A}),this.stateTransition(H.Terminated)}this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(A.message,t.message,488)})})}onMessageRequest(A){if(this.logger.log("Session.onMessageRequest"),this.state===H.Established)if(this.delegate&&this.delegate.onMessage){const e=new b(A);this.delegate.onMessage(e)}else A.accept();else this.logger.error(`MESSAGE received while in state ${this.state}, dropping request`)}onNotifyRequest(A){if(this.logger.log("Session.onNotifyRequest"),this.state===H.Established){if(this.onNotify){const e=new J(A);return void this.onNotify(e)}if(this.delegate&&this.delegate.onNotify){const e=new J(A);this.delegate.onNotify(e)}else A.accept()}else this.logger.error(`NOTIFY received while in state ${this.state}, dropping request`)}onPrackRequest(A){if(this.logger.log("Session.onPrackRequest"),this.state===H.Established)throw new Error("Unimplemented.");this.logger.error(`PRACK received while in state ${this.state}, dropping request`)}onReferRequest(A){if(this.logger.log("Session.onReferRequest"),this.state!==H.Established)return void this.logger.error(`REFER received while in state ${this.state}, dropping request`);if(!A.message.hasHeader("refer-to"))return this.logger.warn("Invalid REFER packet. A refer-to header is required. Rejecting."),void A.reject();const e=new L(A,this);this.delegate&&this.delegate.onRefer?this.delegate.onRefer(e):(this.logger.log("No delegate available to handle REFER, automatically accepting and following."),e.accept().then(()=>e.makeInviter(this._referralInviterOptions).invite()).catch(A=>{this.logger.error(A.message)}))}generateResponseOfferAnswer(A,e){if(this.dialog)return this.generateResponseOfferAnswerInDialog(e);const t=G(A.message);return t&&"session"===t.contentDisposition?this.setOfferAndGetAnswer(t,e):this.getOffer(e)}generateResponseOfferAnswerInDialog(A){if(!this.dialog)throw new Error("Dialog undefined.");switch(this.dialog.signalingState){case Y.Initial:return this.getOffer(A);case Y.HaveLocalOffer:return Promise.resolve(void 0);case Y.HaveRemoteOffer:if(!this.dialog.offer)throw new Error(`Session offer undefined in signaling state ${this.dialog.signalingState}.`);return this.setOfferAndGetAnswer(this.dialog.offer,A);case Y.Stable:return this.state!==H.Established?Promise.resolve(void 0):this.getOffer(A);case Y.Closed:default:throw new Error(`Invalid signaling state ${this.dialog.signalingState}.`)}}getOffer(A){const e=this.setupSessionDescriptionHandler(),t=A.sessionDescriptionHandlerOptions,s=A.sessionDescriptionHandlerModifiers;try{return e.getDescription(t,s).then(A=>U(A)).catch(A=>{this.logger.error("Session.getOffer: SDH getDescription rejected...");const e=A instanceof Error?A:new Error("Session.getOffer unknown error.");throw this.logger.error(e.message),e})}catch(A){this.logger.error("Session.getOffer: SDH getDescription threw...");const e=A instanceof Error?A:new Error(A);return this.logger.error(e.message),Promise.reject(e)}}rollbackOffer(){const A=this.setupSessionDescriptionHandler();if(void 0===A.rollbackDescription)return Promise.resolve();try{return A.rollbackDescription().catch(A=>{this.logger.error("Session.rollbackOffer: SDH rollbackDescription rejected...");const e=A instanceof Error?A:new Error("Session.rollbackOffer unknown error.");throw this.logger.error(e.message),e})}catch(A){this.logger.error("Session.rollbackOffer: SDH rollbackDescription threw...");const e=A instanceof Error?A:new Error(A);return this.logger.error(e.message),Promise.reject(e)}}setAnswer(A,e){const t=this.setupSessionDescriptionHandler(),i=e.sessionDescriptionHandlerOptions,o=e.sessionDescriptionHandlerModifiers;try{if(!t.hasDescription(A.contentType))return Promise.reject(new s)}catch(A){this.logger.error("Session.setAnswer: SDH hasDescription threw...");const e=A instanceof Error?A:new Error(A);return this.logger.error(e.message),Promise.reject(e)}try{return t.setDescription(A.content,i,o).catch(A=>{this.logger.error("Session.setAnswer: SDH setDescription rejected...");const e=A instanceof Error?A:new Error("Session.setAnswer unknown error.");throw this.logger.error(e.message),e})}catch(A){this.logger.error("Session.setAnswer: SDH setDescription threw...");const e=A instanceof Error?A:new Error(A);return this.logger.error(e.message),Promise.reject(e)}}setOfferAndGetAnswer(A,e){const t=this.setupSessionDescriptionHandler(),i=e.sessionDescriptionHandlerOptions,o=e.sessionDescriptionHandlerModifiers;try{if(!t.hasDescription(A.contentType))return Promise.reject(new s)}catch(A){this.logger.error("Session.setOfferAndGetAnswer: SDH hasDescription threw...");const e=A instanceof Error?A:new Error(A);return this.logger.error(e.message),Promise.reject(e)}try{return t.setDescription(A.content,i,o).then(()=>t.getDescription(i,o)).then(A=>U(A)).catch(A=>{this.logger.error("Session.setOfferAndGetAnswer: SDH setDescription or getDescription rejected...");const e=A instanceof Error?A:new Error("Session.setOfferAndGetAnswer unknown error.");throw this.logger.error(e.message),e})}catch(A){this.logger.error("Session.setOfferAndGetAnswer: SDH setDescription or getDescription threw...");const e=A instanceof Error?A:new Error(A);return this.logger.error(e.message),Promise.reject(e)}}setSessionDescriptionHandler(A){if(this._sessionDescriptionHandler)throw new Error("Session description handler defined.");this._sessionDescriptionHandler=A}setupSessionDescriptionHandler(){var A;return this._sessionDescriptionHandler||(this._sessionDescriptionHandler=this.sessionDescriptionHandlerFactory(this,this.userAgent.configuration.sessionDescriptionHandlerFactoryOptions),(null===(A=this.delegate)||void 0===A?void 0:A.onSessionDescriptionHandler)&&this.delegate.onSessionDescriptionHandler(this._sessionDescriptionHandler,!1)),this._sessionDescriptionHandler}stateTransition(A){const e=()=>{throw new Error(`Invalid state transition from ${this._state} to ${A}`)};switch(this._state){case H.Initial:A!==H.Establishing&&A!==H.Established&&A!==H.Terminating&&A!==H.Terminated&&e();break;case H.Establishing:A!==H.Established&&A!==H.Terminating&&A!==H.Terminated&&e();break;case H.Established:A!==H.Terminating&&A!==H.Terminated&&e();break;case H.Terminating:A!==H.Terminated&&e();break;case H.Terminated:e();break;default:throw new Error("Unrecognized state.")}this._state=A,this.logger.log(`Session ${this.id} transitioned to state ${this._state}`),this._stateEventEmitter.emit(this._state),A===H.Terminated&&this.dispose()}copyRequestOptions(A={}){return{extraHeaders:A.extraHeaders?A.extraHeaders.slice():void 0,body:A.body?{contentDisposition:A.body.contentDisposition||"render",contentType:A.body.contentType||"text/plain",content:A.body.content||""}:void 0}}getReasonHeaderValue(A,e){const t=A;let s=M(A);return!s&&e&&(s=e),"SIP;cause="+t+';text="'+s+'"'}referExtraHeaders(A){const e=[];return e.push("Referred-By: <"+this.userAgent.configuration.uri+">"),e.push("Contact: "+this._contact),e.push("Allow: "+["ACK","CANCEL","INVITE","MESSAGE","BYE","OPTIONS","INFO","NOTIFY","REFER"].toString()),e.push("Refer-To: "+A),e}referToString(A){let e;if(A instanceof d)e=A.toString();else{if(!A.dialog)throw new Error("Dialog undefined.");const t=A.remoteIdentity.friendlyName,s=A.dialog.remoteTarget.toString(),i=A.dialog.callId,o=A.dialog.remoteTag,n=A.dialog.localTag;e=`"${t}" <${s}?Replaces=${encodeURIComponent(`${i};to-tag=${o};from-tag=${n}`)}>`}return e}}!function(A){A.Required="Required",A.Supported="Supported",A.Unsupported="Unsupported"}(j=j||(j={}));const P={"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 z extends W{constructor(A,e){super(A),this.incomingInviteRequest=e,this.disposed=!1,this.expiresTimer=void 0,this.isCanceled=!1,this.rel100="none",this.rseq=Math.floor(1e4*Math.random()),this.userNoAnswerTimer=void 0,this.waitingForPrack=!1,this.logger=A.getLogger("sip.Invitation");const t=this.incomingInviteRequest.message,s=t.getHeader("require");s&&s.toLowerCase().includes("100rel")&&(this.rel100="required");const i=t.getHeader("supported");if(i&&i.toLowerCase().includes("100rel")&&(this.rel100="supported"),t.toTag=e.toTag,"string"!=typeof t.toTag)throw new TypeError("toTag should have been a string.");if(this.userNoAnswerTimer=setTimeout(()=>{e.reject({statusCode:480}),this.stateTransition(H.Terminated)},this.userAgent.configuration.noAnswerTimeout?1e3*this.userAgent.configuration.noAnswerTimeout:6e4),t.hasHeader("expires")){const A=1e3*Number(t.getHeader("expires")||0);this.expiresTimer=setTimeout(()=>{this.state===H.Initial&&(e.reject({statusCode:487}),this.stateTransition(H.Terminated))},A)}const o=this.request.getHeader("P-Asserted-Identity");o&&(this._assertedIdentity=E.nameAddrHeaderParse(o)),this._contact=this.userAgent.contact.toString();const n=t.parseHeader("Content-Disposition");n&&"render"===n.type&&(this._renderbody=t.body,this._rendertype=t.getHeader("Content-Type")),this._id=t.callId+t.fromTag,this.userAgent._sessions[this._id]=this}dispose(){if(this.disposed)return Promise.resolve();switch(this.disposed=!0,this.expiresTimer&&(clearTimeout(this.expiresTimer),this.expiresTimer=void 0),this.userNoAnswerTimer&&(clearTimeout(this.userNoAnswerTimer),this.userNoAnswerTimer=void 0),this.prackNeverArrived(),this.state){case H.Initial:case H.Establishing:return this.reject().then(()=>super.dispose());case H.Established:case H.Terminating:case H.Terminated:return super.dispose();default:throw new Error("Unknown state.")}}get autoSendAnInitialProvisionalResponse(){return"required"!==this.rel100&&this.userAgent.configuration.sendInitialProvisionalResponse}get body(){return this.incomingInviteRequest.message.body}get localIdentity(){return this.request.to}get remoteIdentity(){return this.request.from}get request(){return this.incomingInviteRequest.message}accept(A={}){if(this.logger.log("Invitation.accept"),this.state!==H.Initial){const A=new Error(`Invalid session state ${this.state}`);return this.logger.error(A.message),Promise.reject(A)}return A.sessionDescriptionHandlerModifiers&&(this.sessionDescriptionHandlerModifiers=A.sessionDescriptionHandlerModifiers),A.sessionDescriptionHandlerOptions&&(this.sessionDescriptionHandlerOptions=A.sessionDescriptionHandlerOptions),this.stateTransition(H.Establishing),this.sendAccept(A).then(({message:A,session:e})=>{e.delegate={onAck:A=>this.onAckRequest(A),onAckTimeout:()=>this.onAckTimeout(),onBye:A=>this.onByeRequest(A),onInfo:A=>this.onInfoRequest(A),onInvite:A=>this.onInviteRequest(A),onMessage:A=>this.onMessageRequest(A),onNotify:A=>this.onNotifyRequest(A),onPrack:A=>this.onPrackRequest(A),onRefer:A=>this.onReferRequest(A)},this._dialog=e,this.stateTransition(H.Established),this._replacee&&this._replacee._bye()}).catch(A=>this.handleResponseError(A))}progress(A={}){if(this.logger.log("Invitation.progress"),this.state!==H.Initial){const A=new Error(`Invalid session state ${this.state}`);return this.logger.error(A.message),Promise.reject(A)}const e=A.statusCode||180;if(e<100||e>199)throw new TypeError("Invalid statusCode: "+e);return A.sessionDescriptionHandlerModifiers&&(this.sessionDescriptionHandlerModifiers=A.sessionDescriptionHandlerModifiers),A.sessionDescriptionHandlerOptions&&(this.sessionDescriptionHandlerOptions=A.sessionDescriptionHandlerOptions),this.waitingForPrack?(this.logger.warn("Unexpected call for progress while waiting for prack, ignoring"),Promise.resolve()):100===A.statusCode?this.sendProgressTrying().then(()=>{}).catch(A=>this.handleResponseError(A)):"required"===this.rel100||"supported"===this.rel100&&A.rel100||"supported"===this.rel100&&this.userAgent.configuration.sipExtension100rel===j.Required?this.sendProgressReliableWaitForPrack(A).then(()=>{}).catch(A=>this.handleResponseError(A)):this.sendProgress(A).then(()=>{}).catch(A=>this.handleResponseError(A))}reject(A={}){if(this.logger.log("Invitation.reject"),this.state!==H.Initial&&this.state!==H.Establishing){const A=new Error(`Invalid session state ${this.state}`);return this.logger.error(A.message),Promise.reject(A)}const e=A.statusCode||480,t=A.reasonPhrase?A.reasonPhrase:M(e),s=A.extraHeaders||[];if(e<300||e>699)throw new TypeError("Invalid statusCode: "+e);const i=A.body?U(A.body):void 0;return e<400?this.incomingInviteRequest.redirect([],{statusCode:e,reasonPhrase:t,extraHeaders:s,body:i}):this.incomingInviteRequest.reject({statusCode:e,reasonPhrase:t,extraHeaders:s,body:i}),this.stateTransition(H.Terminated),Promise.resolve()}_onCancel(A){if(this.logger.log("Invitation._onCancel"),this.state===H.Initial||this.state===H.Establishing){if(this.delegate&&this.delegate.onCancel){const e=new c(A);this.delegate.onCancel(e)}this.isCanceled=!0,this.incomingInviteRequest.reject({statusCode:487}),this.stateTransition(H.Terminated)}else this.logger.error(`CANCEL received while in state ${this.state}, dropping request`)}handlePrackOfferAnswer(A){if(!this.dialog)throw new Error("Dialog undefined.");const e=G(A.message);if(!e||"session"!==e.contentDisposition)return Promise.resolve(void 0);const t={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers};switch(this.dialog.signalingState){case Y.Initial:throw new Error(`Invalid signaling state ${this.dialog.signalingState}.`);case Y.Stable:return this.setAnswer(e,t).then(()=>{});case Y.HaveLocalOffer:throw new Error(`Invalid signaling state ${this.dialog.signalingState}.`);case Y.HaveRemoteOffer:return this.setOfferAndGetAnswer(e,t);case Y.Closed:default:throw new Error(`Invalid signaling state ${this.dialog.signalingState}.`)}}handleResponseError(A){let e=480;if(A instanceof Error?this.logger.error(A.message):this.logger.error(A),A instanceof s?(this.logger.error("A session description handler occurred while sending response (content type unsupported"),e=415):A instanceof o?this.logger.error("A session description handler occurred while sending response"):A instanceof n?this.logger.error("Session ended before response could be formulated and sent (while waiting for PRACK)"):A instanceof x&&this.logger.error("Session changed state before response could be formulated and sent"),this.state===H.Initial||this.state===H.Establishing)try{this.incomingInviteRequest.reject({statusCode:e}),this.stateTransition(H.Terminated)}catch(A){throw this.logger.error("An error occurred attempting to reject the request while handling another error"),A}if(!this.isCanceled)throw A;this.logger.warn("An error occurred while attempting to formulate and send a response to an incoming INVITE. However a CANCEL was received and processed while doing so which can (and often does) result in errors occurring as the session terminates in the meantime. Said error is being ignored.")}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(H.Terminated)}sendAccept(A={}){const e={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers},t=A.extraHeaders||[];return this.waitingForPrack?this.waitForArrivalOfPrack().then(()=>clearTimeout(this.userNoAnswerTimer)).then(()=>this.generateResponseOfferAnswer(this.incomingInviteRequest,e)).then(A=>this.incomingInviteRequest.accept({statusCode:200,body:A,extraHeaders:t})):(clearTimeout(this.userNoAnswerTimer),this.generateResponseOfferAnswer(this.incomingInviteRequest,e).then(A=>this.incomingInviteRequest.accept({statusCode:200,body:A,extraHeaders:t})))}sendProgress(A={}){const e=A.statusCode||180,t=A.reasonPhrase,s=(A.extraHeaders||[]).slice(),i=A.body?U(A.body):void 0;if(183===e&&!i)return this.sendProgressWithSDP(A);try{const A=this.incomingInviteRequest.progress({statusCode:e,reasonPhrase:t,extraHeaders:s,body:i});return this._dialog=A.session,Promise.resolve(A)}catch(A){return Promise.reject(A)}}sendProgressWithSDP(A={}){const e={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers},t=A.statusCode||183,s=A.reasonPhrase,i=(A.extraHeaders||[]).slice();return this.generateResponseOfferAnswer(this.incomingInviteRequest,e).then(A=>this.incomingInviteRequest.progress({statusCode:t,reasonPhrase:s,extraHeaders:i,body:A})).then(A=>(this._dialog=A.session,A))}sendProgressReliable(A={}){return A.extraHeaders=(A.extraHeaders||[]).slice(),A.extraHeaders.push("Require: 100rel"),A.extraHeaders.push("RSeq: "+Math.floor(1e4*Math.random())),this.sendProgressWithSDP(A)}sendProgressReliableWaitForPrack(A={}){const e={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers},t=A.statusCode||183,s=A.reasonPhrase,i=(A.extraHeaders||[]).slice();let o;return i.push("Require: 100rel"),i.push("RSeq: "+this.rseq++),new Promise((A,r)=>{this.waitingForPrack=!0,this.generateResponseOfferAnswer(this.incomingInviteRequest,e).then(A=>(o=A,this.incomingInviteRequest.progress({statusCode:t,reasonPhrase:s,extraHeaders:i,body:o}))).then(e=>{let a,V;this._dialog=e.session,e.session.delegate={onPrack:t=>{a=t,clearTimeout(c),clearTimeout(g),this.waitingForPrack&&(this.waitingForPrack=!1,this.handlePrackOfferAnswer(a).then(t=>{try{V=a.accept({statusCode:200,body:t}),this.prackArrived(),A({prackRequest:a,prackResponse:V,progressResponse:e})}catch(A){r(A)}}).catch(A=>r(A)))}};const c=setTimeout(()=>{this.waitingForPrack&&(this.waitingForPrack=!1,this.logger.warn("No PRACK received, rejecting INVITE."),clearTimeout(g),this.reject({statusCode:504}).then(()=>r(new n)).catch(A=>r(A)))},64*v.T1),h=()=>{try{this.incomingInviteRequest.progress({statusCode:t,reasonPhrase:s,extraHeaders:i,body:o})}catch(A){return this.waitingForPrack=!1,void r(A)}g=setTimeout(h,l*=2)};let l=v.T1,g=setTimeout(h,l)}).catch(A=>{this.waitingForPrack=!1,r(A)})})}sendProgressTrying(){try{const A=this.incomingInviteRequest.trying();return Promise.resolve(A)}catch(A){return Promise.reject(A)}}waitForArrivalOfPrack(){if(this.waitingForPrackPromise)throw new Error("Already waiting for PRACK");return this.waitingForPrackPromise=new Promise((A,e)=>{this.waitingForPrackResolve=A,this.waitingForPrackReject=e}),this.waitingForPrackPromise}prackArrived(){this.waitingForPrackResolve&&this.waitingForPrackResolve(),this.waitingForPrackPromise=void 0,this.waitingForPrackResolve=void 0,this.waitingForPrackReject=void 0}prackNeverArrived(){this.waitingForPrackReject&&this.waitingForPrackReject(new n),this.waitingForPrackPromise=void 0,this.waitingForPrackResolve=void 0,this.waitingForPrackReject=void 0}}class X extends W{constructor(A,e,t={}){super(A,t),this.disposed=!1,this.earlyMedia=!1,this.earlyMediaSessionDescriptionHandlers=new Map,this.isCanceled=!1,this.inviteWithoutSdp=!1,this.logger=A.getLogger("sip.Inviter"),this.earlyMedia=void 0!==t.earlyMedia?t.earlyMedia:this.earlyMedia,this.fromTag=f(),this.inviteWithoutSdp=void 0!==t.inviteWithoutSdp?t.inviteWithoutSdp:this.inviteWithoutSdp;const s=Object.assign({},t);s.params=Object.assign({},t.params);const i=t.anonymous||!1,o=A.contact.toString({anonymous:i,outbound:i?!A.contact.tempGruu:!A.contact.pubGruu});i&&A.configuration.uri&&(s.params.fromDisplayName="Anonymous",s.params.fromUri="sip:anonymous@anonymous.invalid");let n=A.userAgentCore.configuration.aor;if(s.params.fromUri&&(n="string"==typeof s.params.fromUri?E.URIParse(s.params.fromUri):s.params.fromUri),!n)throw new TypeError("Invalid from URI: "+s.params.fromUri);let r=e;if(s.params.toUri&&(r="string"==typeof s.params.toUri?E.URIParse(s.params.toUri):s.params.toUri),!r)throw new TypeError("Invalid to URI: "+s.params.toUri);const a=Object.assign({},s.params);a.fromTag=this.fromTag;const V=(s.extraHeaders||[]).slice();i&&A.configuration.uri&&(V.push("P-Preferred-Identity: "+A.configuration.uri.toString()),V.push("Privacy: id")),V.push("Contact: "+o),V.push("Allow: "+["ACK","CANCEL","INVITE","MESSAGE","BYE","OPTIONS","INFO","NOTIFY","REFER"].toString()),A.configuration.sipExtension100rel===j.Required&&V.push("Require: 100rel"),A.configuration.sipExtensionReplaces===j.Required&&V.push("Require: replaces"),s.extraHeaders=V;this.outgoingRequestMessage=A.userAgentCore.makeOutgoingRequestMessage(N.INVITE,e,n,r,a,V,undefined),this._contact=o,this._referralInviterOptions=s,this._renderbody=t.renderbody,this._rendertype=t.rendertype,t.sessionDescriptionHandlerModifiers&&(this.sessionDescriptionHandlerModifiers=t.sessionDescriptionHandlerModifiers),t.sessionDescriptionHandlerOptions&&(this.sessionDescriptionHandlerOptions=t.sessionDescriptionHandlerOptions),t.sessionDescriptionHandlerModifiersReInvite&&(this.sessionDescriptionHandlerModifiersReInvite=t.sessionDescriptionHandlerModifiersReInvite),t.sessionDescriptionHandlerOptionsReInvite&&(this.sessionDescriptionHandlerOptionsReInvite=t.sessionDescriptionHandlerOptionsReInvite),this._id=this.outgoingRequestMessage.callId+this.fromTag,this.userAgent._sessions[this._id]=this}dispose(){if(this.disposed)return Promise.resolve();switch(this.disposed=!0,this.disposeEarlyMedia(),this.state){case H.Initial:case H.Establishing:return this.cancel().then(()=>super.dispose());case H.Established:case H.Terminating:case H.Terminated:return super.dispose();default:throw new Error("Unknown state.")}}get body(){return this.outgoingRequestMessage.body}get localIdentity(){return this.outgoingRequestMessage.from}get remoteIdentity(){return this.outgoingRequestMessage.to}get request(){return this.outgoingRequestMessage}cancel(A={}){if(this.logger.log("Inviter.cancel"),this.state!==H.Initial&&this.state!==H.Establishing){const A=new Error(`Invalid session state ${this.state}`);return this.logger.error(A.message),Promise.reject(A)}if(this.isCanceled=!0,this.stateTransition(H.Terminating),this.outgoingInviteRequest){let e;A.statusCode&&A.reasonPhrase&&(e=function(A,e){if(A&&A<200||A>699)throw new TypeError("Invalid statusCode: "+A);if(A)return"SIP;cause="+A+';text="'+(M(A)||e)+'"'}(A.statusCode,A.reasonPhrase)),this.outgoingInviteRequest.cancel(e,A)}else this.logger.warn("Canceled session before INVITE was sent"),this.stateTransition(H.Terminated);return Promise.resolve()}invite(A={}){if(this.logger.log("Inviter.invite"),this.state!==H.Initial)return super.invite(A);if(A.sessionDescriptionHandlerModifiers&&(this.sessionDescriptionHandlerModifiers=A.sessionDescriptionHandlerModifiers),A.sessionDescriptionHandlerOptions&&(this.sessionDescriptionHandlerOptions=A.sessionDescriptionHandlerOptions),A.withoutSdp||this.inviteWithoutSdp)return this._renderbody&&this._rendertype&&(this.outgoingRequestMessage.body={contentType:this._rendertype,body:this._renderbody}),this.stateTransition(H.Establishing),Promise.resolve(this.sendInvite(A));const e={sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers,sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions};return this.getOffer(e).then(e=>(this.outgoingRequestMessage.body={body:e.content,contentType:e.contentType},this.stateTransition(H.Establishing),this.sendInvite(A))).catch(A=>{throw this.logger.log(A.message),this.state!==H.Terminated&&this.stateTransition(H.Terminated),A})}sendInvite(A={}){return this.outgoingInviteRequest=this.userAgent.userAgentCore.invite(this.outgoingRequestMessage,{onAccept:e=>this.dialog?(this.logger.log("Additional confirmed dialog, sending ACK and BYE"),void this.ackAndBye(e)):this.isCanceled?(this.logger.log("Canceled session accepted, sending ACK and BYE"),this.ackAndBye(e),void this.stateTransition(H.Terminated)):(this.notifyReferer(e),void this.onAccept(e).then(()=>{this.disposeEarlyMedia()}).catch(()=>{this.disposeEarlyMedia()}).then(()=>{A.requestDelegate&&A.requestDelegate.onAccept&&A.requestDelegate.onAccept(e)})),onProgress:e=>{this.isCanceled||(this.notifyReferer(e),this.onProgress(e).catch(()=>{this.disposeEarlyMedia()}).then(()=>{A.requestDelegate&&A.requestDelegate.onProgress&&A.requestDelegate.onProgress(e)}))},onRedirect:e=>{this.notifyReferer(e),this.onRedirect(e),A.requestDelegate&&A.requestDelegate.onRedirect&&A.requestDelegate.onRedirect(e)},onReject:e=>{this.notifyReferer(e),this.onReject(e),A.requestDelegate&&A.requestDelegate.onReject&&A.requestDelegate.onReject(e)},onTrying:e=>{this.notifyReferer(e),this.onTrying(e),A.requestDelegate&&A.requestDelegate.onTrying&&A.requestDelegate.onTrying(e)}}),this.outgoingInviteRequest}disposeEarlyMedia(){this.earlyMediaSessionDescriptionHandlers.forEach(A=>{A.close()}),this.earlyMediaSessionDescriptionHandlers.clear()}notifyReferer(A){if(!this._referred)return;if(!(this._referred instanceof W))throw new Error("Referred session not instance of session");if(!this._referred.dialog)return;if(!A.message.statusCode)throw new Error("Status code undefined.");if(!A.message.reasonPhrase)throw new Error("Reason phrase undefined.");const e=`SIP/2.0 ${A.message.statusCode} ${A.message.reasonPhrase}`.trim();this._referred.dialog.notify(void 0,{extraHeaders:["Event: refer","Subscription-State: terminated"],body:{contentDisposition:"render",contentType:"message/sipfrag",content:e}}).delegate={onReject:()=>{this._referred=void 0}}}onAccept(A){if(this.logger.log("Inviter.onAccept"),this.state!==H.Establishing)return this.logger.error(`Accept received while in state ${this.state}, dropping response`),Promise.reject(new Error(`Invalid session state ${this.state}`));const e=A.message,t=A.session;switch(e.hasHeader("P-Asserted-Identity")&&(this._assertedIdentity=E.nameAddrHeaderParse(e.getHeader("P-Asserted-Identity"))),t.delegate={onAck:A=>this.onAckRequest(A),onBye:A=>this.onByeRequest(A),onInfo:A=>this.onInfoRequest(A),onInvite:A=>this.onInviteRequest(A),onMessage:A=>this.onMessageRequest(A),onNotify:A=>this.onNotifyRequest(A),onPrack:A=>this.onPrackRequest(A),onRefer:A=>this.onReferRequest(A)},this._dialog=t,t.signalingState){case Y.Initial:case Y.HaveLocalOffer:return this.logger.error("Received 2xx response to INVITE without a session description"),this.ackAndBye(A,400,"Missing session description"),this.stateTransition(H.Terminated),Promise.reject(new Error("Bad Media Description"));case Y.HaveRemoteOffer:{if(!this._dialog.offer)throw new Error(`Session offer undefined in signaling state ${this._dialog.signalingState}.`);const e={sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers,sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions};return this.setOfferAndGetAnswer(this._dialog.offer,e).then(e=>{A.ack({body:e}),this.stateTransition(H.Established)}).catch(e=>{throw this.ackAndBye(A,488,"Invalid session description"),this.stateTransition(H.Terminated),e})}case Y.Stable:{if(this.earlyMediaSessionDescriptionHandlers.size>0){const e=this.earlyMediaSessionDescriptionHandlers.get(t.id);if(!e)throw new Error("Session description handler undefined.");return this.setSessionDescriptionHandler(e),this.earlyMediaSessionDescriptionHandlers.delete(t.id),A.ack(),this.stateTransition(H.Established),Promise.resolve()}if(this.earlyMediaDialog){if(this.earlyMediaDialog!==t){if(this.earlyMedia){const A="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 behavior 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(A)}const e=new Error("Early media dialog does not equal confirmed dialog, terminating session");return this.logger.error(e.message),this.ackAndBye(A,488,"Not Acceptable Here"),this.stateTransition(H.Terminated),Promise.reject(e)}return A.ack(),this.stateTransition(H.Established),Promise.resolve()}const e=t.answer;if(!e)throw new Error("Answer is undefined.");const s={sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers,sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions};return this.setAnswer(e,s).then(()=>{let e;this._renderbody&&this._rendertype&&(e={body:{contentDisposition:"render",contentType:this._rendertype,content:this._renderbody}}),A.ack(e),this.stateTransition(H.Established)}).catch(e=>{throw this.logger.error(e.message),this.ackAndBye(A,488,"Not Acceptable Here"),this.stateTransition(H.Terminated),e})}case Y.Closed:return Promise.reject(new Error("Terminated."));default:throw new Error("Unknown session signaling state.")}}onProgress(A){var e;if(this.logger.log("Inviter.onProgress"),this.state!==H.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=A.message,s=A.session;t.hasHeader("P-Asserted-Identity")&&(this._assertedIdentity=E.nameAddrHeaderParse(t.getHeader("P-Asserted-Identity")));const i=t.getHeader("require"),o=t.getHeader("rseq"),n=!!(i&&i.includes("100rel")&&o?Number(o):void 0),r=[];switch(n&&r.push("RAck: "+t.getHeader("rseq")+" "+t.getHeader("cseq")),s.signalingState){case Y.Initial:return n&&(this.logger.warn("First reliable provisional response received MUST contain an offer when INVITE does not contain an offer."),A.prack({extraHeaders:r})),Promise.resolve();case Y.HaveLocalOffer:return n&&A.prack({extraHeaders:r}),Promise.resolve();case Y.HaveRemoteOffer:if(!n)return this.logger.warn("Non-reliable provisional response MUST NOT contain an initial offer, discarding response."),Promise.resolve();{const i=this.sessionDescriptionHandlerFactory(this,this.userAgent.configuration.sessionDescriptionHandlerFactoryOptions||{});return(null===(e=this.delegate)||void 0===e?void 0:e.onSessionDescriptionHandler)&&this.delegate.onSessionDescriptionHandler(i,!0),this.earlyMediaSessionDescriptionHandlers.set(s.id,i),i.setDescription(t.body,this.sessionDescriptionHandlerOptions,this.sessionDescriptionHandlerModifiers).then(()=>i.getDescription(this.sessionDescriptionHandlerOptions,this.sessionDescriptionHandlerModifiers)).then(e=>{const t={contentDisposition:"session",contentType:e.contentType,content:e.body};A.prack({extraHeaders:r,body:t})}).catch(A=>{throw this.stateTransition(H.Terminated),A})}case Y.Stable:if(n&&A.prack({extraHeaders:r}),this.earlyMedia&&!this.earlyMediaDialog){this.earlyMediaDialog=s;const A=s.answer;if(!A)throw new Error("Answer is undefined.");const e={sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers,sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions};return this.setAnswer(A,e).catch(A=>{throw this.stateTransition(H.Terminated),A})}return Promise.resolve();case Y.Closed:return Promise.reject(new Error("Terminated."));default:throw new Error("Unknown session signaling state.")}}onRedirect(A){this.logger.log("Inviter.onRedirect"),this.state===H.Establishing||this.state===H.Terminating?this.stateTransition(H.Terminated):this.logger.error(`Redirect received while in state ${this.state}, dropping response`)}onReject(A){this.logger.log("Inviter.onReject"),this.state===H.Establishing||this.state===H.Terminating?this.stateTransition(H.Terminated):this.logger.error(`Reject received while in state ${this.state}, dropping response`)}onTrying(A){this.logger.log("Inviter.onTrying"),this.state===H.Establishing||this.logger.error(`Trying received while in state ${this.state}, dropping response`)}}var _,$,AA,eA,tA,sA,iA;!function(A){A.Initial="Initial",A.Registered="Registered",A.Unregistered="Unregistered",A.Terminated="Terminated"}(_=_||(_={}));class oA{constructor(A,e={}){this.disposed=!1,this._contacts=[],this._retryAfter=void 0,this._state=_.Initial,this._waiting=!1,this._stateEventEmitter=new h,this._waitingEventEmitter=new h,this.userAgent=A;const t=A.configuration.uri.clone();if(t.user=void 0,this.options=Object.assign(Object.assign(Object.assign({},oA.defaultOptions()),{registrar:t}),oA.stripUndefinedProperties(e)),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=this.userAgent.instanceId:!this.options.regId&&this.options.instanceId&&(this.options.regId=1),this.options.instanceId&&-1===E.parse(this.options.instanceId,"uuid"))throw new Error("Invalid instanceId.");if(this.options.regId&&this.options.regId<0)throw new Error("Invalid regId.");const s=this.options.registrar,i=this.options.params&&this.options.params.fromUri||A.userAgentCore.configuration.aor,o=this.options.params&&this.options.params.toUri||A.configuration.uri,n=this.options.params||{},r=(e.extraHeaders||[]).slice();if(this.request=A.userAgentCore.makeOutgoingRequestMessage(N.REGISTER,s,i,o,n,r,void 0),this.expires=this.options.expires||oA.defaultExpires,this.expires<0)throw new Error("Invalid expires.");if(this.refreshFrequency=this.options.refreshFrequency||oA.defaultRefreshFrequency,this.refreshFrequency<50||this.refreshFrequency>99)throw new Error("Invalid refresh frequency. The value represents a percentage of the expiration time and should be between 50 and 99.");this.logger=A.getLogger("sip.Registerer"),this.options.logConfiguration&&(this.logger.log("Configuration:"),Object.keys(this.options).forEach(A=>{const e=this.options[A];if("registrar"===A)this.logger.log("· "+A+": "+e);else this.logger.log("· "+A+": "+JSON.stringify(e))})),this.id=this.request.callId+this.request.from.parameters.tag,this.userAgent._registerers[this.id]=this}static defaultOptions(){return{expires:oA.defaultExpires,extraContactHeaderParams:[],extraHeaders:[],logConfiguration:!0,instanceId:"",params:{},regId:0,registrar:new d("sip","anonymous","anonymous.invalid"),refreshFrequency:oA.defaultRefreshFrequency}}static stripUndefinedProperties(A){return Object.keys(A).reduce((e,t)=>(void 0!==A[t]&&(e[t]=A[t]),e),{})}get contacts(){return this._contacts.slice()}get retryAfter(){return this._retryAfter}get state(){return this._state}get stateChange(){return this._stateEventEmitter}dispose(){return this.disposed?Promise.resolve():(this.disposed=!0,this.logger.log(`Registerer ${this.id} in state ${this.state} is being disposed`),delete this.userAgent._registerers[this.id],new Promise(A=>{const e=()=>{if(!this.waiting&&this._state===_.Registered)return this.stateChange.addListener(()=>{this.terminated(),A()},{once:!0}),void this.unregister();this.terminated(),A()};this.waiting?this.waitingChange.addListener(()=>{e()},{once:!0}):e()}))}register(A={}){if(this.state===_.Terminated)throw this.stateError(),new Error("Registerer terminated. Unable to register.");if(this.disposed)throw this.stateError(),new Error("Registerer disposed. Unable to register.");if(this.waiting){this.waitingWarning();const A=new i("REGISTER request already in progress, waiting for final response");return Promise.reject(A)}A.requestOptions&&(this.options=Object.assign(Object.assign({},this.options),A.requestOptions));const e=(this.options.extraHeaders||[]).slice();e.push("Contact: "+this.generateContactHeader(this.expires)),e.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=e,this.waitingToggle(!0);const t=this.userAgent.userAgentCore.register(this.request,{onAccept:e=>{let t;e.message.hasHeader("expires")&&(t=Number(e.message.getHeader("expires"))),this._contacts=e.message.getHeaders("contact");let s,i=this._contacts.length;if(!i)return this.logger.error("No Contact header in response to REGISTER, dropping response."),void this.unregistered();for(;i--;){if(s=e.message.parseHeader("contact",i),!s)throw new Error("Contact undefined");if(this.userAgent.contact.pubGruu&&u(s.uri,this.userAgent.contact.pubGruu)){t=Number(s.getParam("expires"));break}if(""===this.userAgent.configuration.contactName){if(s.uri.user===this.userAgent.contact.uri.user){t=Number(s.getParam("expires"));break}}else if(u(s.uri,this.userAgent.contact.uri)){t=Number(s.getParam("expires"));break}s=void 0}if(void 0===s)return this.logger.error("No Contact header pointing to us, dropping response"),this.unregistered(),void this.waitingToggle(!1);if(void 0===t)return this.logger.error("Contact pointing to us is missing expires parameter, dropping response"),this.unregistered(),void this.waitingToggle(!1);if(s.hasParam("temp-gruu")){const A=s.getParam("temp-gruu");A&&(this.userAgent.contact.tempGruu=E.URIParse(A.replace(/"/g,"")))}if(s.hasParam("pub-gruu")){const A=s.getParam("pub-gruu");A&&(this.userAgent.contact.pubGruu=E.URIParse(A.replace(/"/g,"")))}this.registered(t),A.requestDelegate&&A.requestDelegate.onAccept&&A.requestDelegate.onAccept(e),this.waitingToggle(!1)},onProgress:e=>{A.requestDelegate&&A.requestDelegate.onProgress&&A.requestDelegate.onProgress(e)},onRedirect:e=>{this.logger.error("Redirect received. Not supported."),this.unregistered(),A.requestDelegate&&A.requestDelegate.onRedirect&&A.requestDelegate.onRedirect(e),this.waitingToggle(!1)},onReject:e=>{if(423===e.message.statusCode)return e.message.hasHeader("min-expires")?(this.expires=Number(e.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));this.logger.warn(`Failed to register, status code ${e.message.statusCode}`);let t=NaN;if(500===e.message.statusCode||503===e.message.statusCode){const A=e.message.getHeader("retry-after");A&&(t=Number.parseInt(A,void 0))}this._retryAfter=isNaN(t)?void 0:t,this.unregistered(),A.requestDelegate&&A.requestDelegate.onReject&&A.requestDelegate.onReject(e),this._retryAfter=void 0,this.waitingToggle(!1)},onTrying:e=>{A.requestDelegate&&A.requestDelegate.onTrying&&A.requestDelegate.onTrying(e)}});return Promise.resolve(t)}unregister(A={}){if(this.state===_.Terminated)throw this.stateError(),new Error("Registerer terminated. Unable to register.");if(this.disposed&&this.state!==_.Registered)throw this.stateError(),new Error("Registerer disposed. Unable to register.");if(this.waiting){this.waitingWarning();const A=new i("REGISTER request already in progress, waiting for final response");return Promise.reject(A)}this._state===_.Registered||A.all||this.logger.warn("Not currently registered, but sending an unregister anyway.");const e=(A.requestOptions&&A.requestOptions.extraHeaders||[]).slice();this.request.extraHeaders=e,A.all?(e.push("Contact: *"),e.push("Expires: 0")):e.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 t=this.userAgent.userAgentCore.register(this.request,{onAccept:e=>{this._contacts=e.message.getHeaders("contact"),this.unregistered(),A.requestDelegate&&A.requestDelegate.onAccept&&A.requestDelegate.onAccept(e),this.waitingToggle(!1)},onProgress:e=>{A.requestDelegate&&A.requestDelegate.onProgress&&A.requestDelegate.onProgress(e)},onRedirect:e=>{this.logger.error("Unregister redirected. Not currently supported."),this.unregistered(),A.requestDelegate&&A.requestDelegate.onRedirect&&A.requestDelegate.onRedirect(e),this.waitingToggle(!1)},onReject:e=>{this.logger.error(`Unregister rejected with status code ${e.message.statusCode}`),this.unregistered(),A.requestDelegate&&A.requestDelegate.onReject&&A.requestDelegate.onReject(e),this.waitingToggle(!1)},onTrying:e=>{A.requestDelegate&&A.requestDelegate.onTrying&&A.requestDelegate.onTrying(e)}});return Promise.resolve(t)}clearTimers(){void 0!==this.registrationTimer&&(clearTimeout(this.registrationTimer),this.registrationTimer=void 0),void 0!==this.registrationExpiredTimer&&(clearTimeout(this.registrationExpiredTimer),this.registrationExpiredTimer=void 0)}generateContactHeader(A){let e=this.userAgent.contact.toString({register:!0});return this.options.regId&&this.options.instanceId&&(e+=";reg-id="+this.options.regId,e+=';+sip.instance="<urn:uuid:'+this.options.instanceId+'>"'),this.options.extraContactHeaderParams&&this.options.extraContactHeaderParams.forEach(A=>{e+=";"+A}),e+=";expires="+A,e}registered(A){this.clearTimers(),this.registrationTimer=setTimeout(()=>{this.registrationTimer=void 0,this.register()},this.refreshFrequency/100*A*1e3),this.registrationExpiredTimer=setTimeout(()=>{this.logger.warn("Registration expired"),this.unregistered()},1e3*A),this._state!==_.Registered&&this.stateTransition(_.Registered)}unregistered(){this.clearTimers(),this._state!==_.Unregistered&&this.stateTransition(_.Unregistered)}terminated(){this.clearTimers(),this._state!==_.Terminated&&this.stateTransition(_.Terminated)}stateTransition(A){const e=()=>{throw new Error(`Invalid state transition from ${this._state} to ${A}`)};switch(this._state){case _.Initial:A!==_.Registered&&A!==_.Unregistered&&A!==_.Terminated&&e();break;case _.Registered:A!==_.Unregistered&&A!==_.Terminated&&e();break;case _.Unregistered:A!==_.Registered&&A!==_.Terminated&&e();break;case _.Terminated:e();break;default:throw new Error("Unrecognized state.")}this._state=A,this.logger.log(`Registration transitioned to state ${this._state}`),this._stateEventEmitter.emit(this._state),A===_.Terminated&&this.dispose()}get waiting(){return this._waiting}get waitingChange(){return this._waitingEventEmitter}waitingToggle(A){if(this._waiting===A)throw new Error(`Invalid waiting transition from ${this._waiting} to ${A}`);this._waiting=A,this.logger.log(`Waiting toggled to ${this._waiting}`),this._waitingEventEmitter.emit(this._waiting)}waitingWarning(){let A="An attempt was made to send a REGISTER request while a prior one was still in progress.";A+=" RFC 3261 requires UAs MUST NOT send a new registration until they have received a final response",A+=" from the registrar for the previous one or the previous REGISTER request has timed out.",A+=" Note that if the transport disconnects, you still must wait for the prior request to time out before",A+=" sending a new REGISTER request or alternatively dispose of the current Registerer and create a new Registerer.",this.logger.warn("An attempt was made to send a REGISTER request while a prior one was still in progress. RFC 3261 requires UAs MUST NOT send a new registration until they have received a final response from the registrar for the previous one or the previous REGISTER request has timed out. Note that if the transport disconnects, you still must wait for the prior request to time out before sending a new REGISTER request or alternatively dispose of the current Registerer and create a new Registerer.")}stateError(){let A=`An attempt was made to send a REGISTER request when the Registerer ${this.state===_.Terminated?"is in 'Terminated' state":"has been disposed"}.`;A+=" The Registerer transitions to 'Terminated' when Registerer.dispose() is called.",A+=" Perhaps you called UserAgent.stop() which dipsoses of all Registerers?",this.logger.error(A)}}oA.defaultExpires=600,oA.defaultRefreshFrequency=99,function(A){A.Initial="Initial",A.NotifyWait="NotifyWait",A.Pending="Pending",A.Active="Active",A.Terminated="Terminated"}($=$||($={})),function(A){A.Connecting="Connecting",A.Connected="Connected",A.Disconnecting="Disconnecting",A.Disconnected="Disconnected"}(AA=AA||(AA={})),function(A){A.Started="Started",A.Stopped="Stopped"}(eA=eA||(eA={}));class nA{constructor(){this._dataLength=0,this._bufferLength=0,this._state=new Int32Array(4),this._buffer=new ArrayBuffer(68),this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this._buffer,0,17),this.start()}static hashStr(A,e=!1){return this.onePassHasher.start().appendStr(A).end(e)}static hashAsciiStr(A,e=!1){return this.onePassHasher.start().appendAsciiStr(A).end(e)}static _hex(A){const e=nA.hexChars,t=nA.hexOut;let s,i,o,n;for(n=0;n<4;n+=1)for(i=8*n,s=A[n],o=0;o<8;o+=2)t[i+1+o]=e.charAt(15&s),s>>>=4,t[i+0+o]=e.charAt(15&s),s>>>=4;return t.join("")}static _md5cycle(A,e){let t=A[0],s=A[1],i=A[2],o=A[3];t+=(s&i|~s&o)+e[0]-680876936|0,t=(t<<7|t>>>25)+s|0,o+=(t&s|~t&i)+e[1]-389564586|0,o=(o<<12|o>>>20)+t|0,i+=(o&t|~o&s)+e[2]+606105819|0,i=(i<<17|i>>>15)+o|0,s+=(i&o|~i&t)+e[3]-1044525330|0,s=(s<<22|s>>>10)+i|0,t+=(s&i|~s&o)+e[4]-176418897|0,t=(t<<7|t>>>25)+s|0,o+=(t&s|~t&i)+e[5]+1200080426|0,o=(o<<12|o>>>20)+t|0,i+=(o&t|~o&s)+e[6]-1473231341|0,i=(i<<17|i>>>15)+o|0,s+=(i&o|~i&t)+e[7]-45705983|0,s=(s<<22|s>>>10)+i|0,t+=(s&i|~s&o)+e[8]+1770035416|0,t=(t<<7|t>>>25)+s|0,o+=(t&s|~t&i)+e[9]-1958414417|0,o=(o<<12|o>>>20)+t|0,i+=(o&t|~o&s)+e[10]-42063|0,i=(i<<17|i>>>15)+o|0,s+=(i&o|~i&t)+e[11]-1990404162|0,s=(s<<22|s>>>10)+i|0,t+=(s&i|~s&o)+e[12]+1804603682|0,t=(t<<7|t>>>25)+s|0,o+=(t&s|~t&i)+e[13]-40341101|0,o=(o<<12|o>>>20)+t|0,i+=(o&t|~o&s)+e[14]-1502002290|0,i=(i<<17|i>>>15)+o|0,s+=(i&o|~i&t)+e[15]+1236535329|0,s=(s<<22|s>>>10)+i|0,t+=(s&o|i&~o)+e[1]-165796510|0,t=(t<<5|t>>>27)+s|0,o+=(t&i|s&~i)+e[6]-1069501632|0,o=(o<<9|o>>>23)+t|0,i+=(o&s|t&~s)+e[11]+643717713|0,i=(i<<14|i>>>18)+o|0,s+=(i&t|o&~t)+e[0]-373897302|0,s=(s<<20|s>>>12)+i|0,t+=(s&o|i&~o)+e[5]-701558691|0,t=(t<<5|t>>>27)+s|0,o+=(t&i|s&~i)+e[10]+38016083|0,o=(o<<9|o>>>23)+t|0,i+=(o&s|t&~s)+e[15]-660478335|0,i=(i<<14|i>>>18)+o|0,s+=(i&t|o&~t)+e[4]-405537848|0,s=(s<<20|s>>>12)+i|0,t+=(s&o|i&~o)+e[9]+568446438|0,t=(t<<5|t>>>27)+s|0,o+=(t&i|s&~i)+e[14]-1019803690|0,o=(o<<9|o>>>23)+t|0,i+=(o&s|t&~s)+e[3]-187363961|0,i=(i<<14|i>>>18)+o|0,s+=(i&t|o&~t)+e[8]+1163531501|0,s=(s<<20|s>>>12)+i|0,t+=(s&o|i&~o)+e[13]-1444681467|0,t=(t<<5|t>>>27)+s|0,o+=(t&i|s&~i)+e[2]-51403784|0,o=(o<<9|o>>>23)+t|0,i+=(o&s|t&~s)+e[7]+1735328473|0,i=(i<<14|i>>>18)+o|0,s+=(i&t|o&~t)+e[12]-1926607734|0,s=(s<<20|s>>>12)+i|0,t+=(s^i^o)+e[5]-378558|0,t=(t<<4|t>>>28)+s|0,o+=(t^s^i)+e[8]-2022574463|0,o=(o<<11|o>>>21)+t|0,i+=(o^t^s)+e[11]+1839030562|0,i=(i<<16|i>>>16)+o|0,s+=(i^o^t)+e[14]-35309556|0,s=(s<<23|s>>>9)+i|0,t+=(s^i^o)+e[1]-1530992060|0,t=(t<<4|t>>>28)+s|0,o+=(t^s^i)+e[4]+1272893353|0,o=(o<<11|o>>>21)+t|0,i+=(o^t^s)+e[7]-155497632|0,i=(i<<16|i>>>16)+o|0,s+=(i^o^t)+e[10]-1094730640|0,s=(s<<23|s>>>9)+i|0,t+=(s^i^o)+e[13]+681279174|0,t=(t<<4|t>>>28)+s|0,o+=(t^s^i)+e[0]-358537222|0,o=(o<<11|o>>>21)+t|0,i+=(o^t^s)+e[3]-722521979|0,i=(i<<16|i>>>16)+o|0,s+=(i^o^t)+e[6]+76029189|0,s=(s<<23|s>>>9)+i|0,t+=(s^i^o)+e[9]-640364487|0,t=(t<<4|t>>>28)+s|0,o+=(t^s^i)+e[12]-421815835|0,o=(o<<11|o>>>21)+t|0,i+=(o^t^s)+e[15]+530742520|0,i=(i<<16|i>>>16)+o|0,s+=(i^o^t)+e[2]-995338651|0,s=(s<<23|s>>>9)+i|0,t+=(i^(s|~o))+e[0]-198630844|0,t=(t<<6|t>>>26)+s|0,o+=(s^(t|~i))+e[7]+1126891415|0,o=(o<<10|o>>>22)+t|0,i+=(t^(o|~s))+e[14]-1416354905|0,i=(i<<15|i>>>17)+o|0,s+=(o^(i|~t))+e[5]-57434055|0,s=(s<<21|s>>>11)+i|0,t+=(i^(s|~o))+e[12]+1700485571|0,t=(t<<6|t>>>26)+s|0,o+=(s^(t|~i))+e[3]-1894986606|0,o=(o<<10|o>>>22)+t|0,i+=(t^(o|~s))+e[10]-1051523|0,i=(i<<15|i>>>17)+o|0,s+=(o^(i|~t))+e[1]-2054922799|0,s=(s<<21|s>>>11)+i|0,t+=(i^(s|~o))+e[8]+1873313359|0,t=(t<<6|t>>>26)+s|0,o+=(s^(t|~i))+e[15]-30611744|0,o=(o<<10|o>>>22)+t|0,i+=(t^(o|~s))+e[6]-1560198380|0,i=(i<<15|i>>>17)+o|0,s+=(o^(i|~t))+e[13]+1309151649|0,s=(s<<21|s>>>11)+i|0,t+=(i^(s|~o))+e[4]-145523070|0,t=(t<<6|t>>>26)+s|0,o+=(s^(t|~i))+e[11]-1120210379|0,o=(o<<10|o>>>22)+t|0,i+=(t^(o|~s))+e[2]+718787259|0,i=(i<<15|i>>>17)+o|0,s+=(o^(i|~t))+e[9]-343485551|0,s=(s<<21|s>>>11)+i|0,A[0]=t+A[0]|0,A[1]=s+A[1]|0,A[2]=i+A[2]|0,A[3]=o+A[3]|0}start(){return this._dataLength=0,this._bufferLength=0,this._state.set(nA.stateIdentity),this}appendStr(A){const e=this._buffer8,t=this._buffer32;let s,i,o=this._bufferLength;for(i=0;i<A.length;i+=1){if(s=A.charCodeAt(i),s<128)e[o++]=s;else if(s<2048)e[o++]=(s>>>6)+192,e[o++]=63&s|128;else if(s<55296||s>56319)e[o++]=(s>>>12)+224,e[o++]=s>>>6&63|128,e[o++]=63&s|128;else{if(s=1024*(s-55296)+(A.charCodeAt(++i)-56320)+65536,s>1114111)throw new Error("Unicode standard supports code points up to U+10FFFF");e[o++]=(s>>>18)+240,e[o++]=s>>>12&63|128,e[o++]=s>>>6&63|128,e[o++]=63&s|128}o>=64&&(this._dataLength+=64,nA._md5cycle(this._state,t),o-=64,t[0]=t[16])}return this._bufferLength=o,this}appendAsciiStr(A){const e=this._buffer8,t=this._buffer32;let s,i=this._bufferLength,o=0;for(;;){for(s=Math.min(A.length-o,64-i);s--;)e[i++]=A.charCodeAt(o++);if(i<64)break;this._dataLength+=64,nA._md5cycle(this._state,t),i=0}return this._bufferLength=i,this}appendByteArray(A){const e=this._buffer8,t=this._buffer32;let s,i=this._bufferLength,o=0;for(;;){for(s=Math.min(A.length-o,64-i);s--;)e[i++]=A[o++];if(i<64)break;this._dataLength+=64,nA._md5cycle(this._state,t),i=0}return this._bufferLength=i,this}getState(){const A=this,e=A._state;return{buffer:String.fromCharCode.apply(null,A._buffer8),buflen:A._bufferLength,length:A._dataLength,state:[e[0],e[1],e[2],e[3]]}}setState(A){const e=A.buffer,t=A.state,s=this._state;let i;for(this._dataLength=A.length,this._bufferLength=A.buflen,s[0]=t[0],s[1]=t[1],s[2]=t[2],s[3]=t[3],i=0;i<e.length;i+=1)this._buffer8[i]=e.charCodeAt(i)}end(A=!1){const e=this._bufferLength,t=this._buffer8,s=this._buffer32,i=1+(e>>2);let o;if(this._dataLength+=e,t[e]=128,t[e+1]=t[e+2]=t[e+3]=0,s.set(nA.buffer32Identity.subarray(i),i),e>55&&(nA._md5cycle(this._state,s),s.set(nA.buffer32Identity)),o=8*this._dataLength,o<=4294967295)s[14]=o;else{const A=o.toString(16).match(/(.*?)(.{0,8})$/);if(null===A)return;const e=parseInt(A[2],16),t=parseInt(A[1],16)||0;s[14]=e,s[15]=t}return nA._md5cycle(this._state,s),A?this._state:nA._hex(this._state)}}function rA(A){return nA.hashStr(A)}nA.stateIdentity=new Int32Array([1732584193,-271733879,-1732584194,271733878]),nA.buffer32Identity=new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),nA.hexChars="0123456789abcdef",nA.hexOut=[],nA.onePassHasher=new nA,"5d41402abc4b2a76b9719d911017c592"!==nA.hashStr("hello")&&console.error("Md5 self test failed.");class aA{constructor(A,e,t,s){this.logger=A.getLogger("sipjs.digestauthentication"),this.username=t,this.password=s,this.ha1=e,this.nc=0,this.ncHex="00000000"}authenticate(A,e,t){if(this.algorithm=e.algorithm,this.realm=e.realm,this.nonce=e.nonce,this.opaque=e.opaque,this.stale=e.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(e.qop)if(e.qop.indexOf("auth")>-1)this.qop="auth";else{if(!(e.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=A.method,this.uri=A.ruri,this.cnonce=w(12),this.nc+=1,this.updateNcHex(),4294967296===this.nc&&(this.nc=1,this.ncHex="00000001"),this.calculateResponse(t),!0}toString(){const A=[];if(!this.response)throw new Error("response field does not exist, cannot generate Authorization header");return A.push("algorithm="+this.algorithm),A.push('username="'+this.username+'"'),A.push('realm="'+this.realm+'"'),A.push('nonce="'+this.nonce+'"'),A.push('uri="'+this.uri+'"'),A.push('response="'+this.response+'"'),this.opaque&&A.push('opaque="'+this.opaque+'"'),this.qop&&(A.push("qop="+this.qop),A.push('cnonce="'+this.cnonce+'"'),A.push("nc="+this.ncHex)),"Digest "+A.join(", ")}updateNcHex(){const A=Number(this.nc).toString(16);this.ncHex="00000000".substr(0,8-A.length)+A}calculateResponse(A){let e,t;e=this.ha1,""!==e&&void 0!==e||(e=rA(this.username+":"+this.realm+":"+this.password)),"auth"===this.qop?(t=rA(this.method+":"+this.uri),this.response=rA(e+":"+this.nonce+":"+this.ncHex+":"+this.cnonce+":auth:"+t)):"auth-int"===this.qop?(t=rA(this.method+":"+this.uri+":"+rA(A||"")),this.response=rA(e+":"+this.nonce+":"+this.ncHex+":"+this.cnonce+":auth-int:"+t)):void 0===this.qop&&(t=rA(this.method+":"+this.uri),this.response=rA(e+":"+this.nonce+":"+t))}}!function(A){A[A.error=0]="error",A[A.warn=1]="warn",A[A.log=2]="log",A[A.debug=3]="debug"}(tA=tA||(tA={}));class VA{constructor(A,e,t){this.logger=A,this.category=e,this.label=t}error(A){this.genericLog(tA.error,A)}warn(A){this.genericLog(tA.warn,A)}log(A){this.genericLog(tA.log,A)}debug(A){this.genericLog(tA.debug,A)}genericLog(A,e){this.logger.genericLog(A,this.category,this.label,e)}get level(){return this.logger.level}set level(A){this.logger.level=A}}class cA{constructor(){this.builtinEnabled=!0,this._level=tA.log,this.loggers={},this.logger=this.getLogger("sip:loggerfactory")}get level(){return this._level}set level(A){A>=0&&A<=3?this._level=A:A>3?this._level=3:tA.hasOwnProperty(A)?this._level=A:this.logger.error("invalid 'level' parameter value: "+JSON.stringify(A))}get connector(){return this._connector}set connector(A){A?"function"==typeof A?this._connector=A:this.logger.error("invalid 'connector' parameter value: "+JSON.stringify(A)):this._connector=void 0}getLogger(A,e){if(e&&3===this.level)return new VA(this,A,e);if(this.loggers[A])return this.loggers[A];{const e=new VA(this,A);return this.loggers[A]=e,e}}genericLog(A,e,t,s){this.level>=A&&this.builtinEnabled&&this.print(A,e,t,s),this.connector&&this.connector(tA[A],e,t,s)}print(A,e,t,s){if("string"==typeof s){const A=[new Date,e];t&&A.push(t),s=A.concat(s).join(" | ")}switch(A){case tA.error:console.error(s);break;case tA.warn:console.warn(s);case tA.log:case tA.debug:}}}function hA(A,e){const t="\r\n";if(e.statusCode<100||e.statusCode>699)throw new TypeError("Invalid statusCode: "+e.statusCode);const s=e.reasonPhrase?e.reasonPhrase:M(e.statusCode);let i="SIP/2.0 "+e.statusCode+" "+s+t;e.statusCode>=100&&e.statusCode,e.statusCode;const o="From: "+A.getHeader("From")+t,n="Call-ID: "+A.callId+t,r="CSeq: "+A.cseq+" "+A.method+t,a=A.getHeaders("via").reduce((A,e)=>A+"Via: "+e+t,"");let V="To: "+A.getHeader("to");if(e.statusCode>100&&!A.parseHeader("to").hasParam("tag")){let A=e.toTag;A||(A=f()),V+=";tag="+A}V+=t;let c="";e.supported&&(c="Supported: "+e.supported.join(", ")+t);let h="";e.userAgent&&(h="User-Agent: "+e.userAgent+t);let l="";return e.extraHeaders&&(l=e.extraHeaders.reduce((A,e)=>A+e.trim()+t,"")),i+=a,i+=o,i+=V,i+=r,i+=n,i+=c,i+=h,i+=l,e.body?(i+="Content-Type: "+e.body.contentType+t,i+="Content-Length: "+Q(e.body.content)+t+t,i+=e.body.content):i+="Content-Length: 0\r\n\r\n",{message:i}}!function(A){function e(A,e){let t=e,s=0,i=0;if(A.substring(t,t+2).match(/(^\r\n)/))return-2;for(;0===s;){if(i=A.indexOf("\r\n",t),-1===i)return i;!A.substring(i+2,i+4).match(/(^\r\n)/)&&A.charAt(i+2).match(/(^\s+)/)?t=i+2:s=i}return s}function t(A,e,t,s){const i=e.indexOf(":",t),o=e.substring(t,i).trim(),n=e.substring(i+1,s).trim();let r;switch(o.toLowerCase()){case"via":case"v":A.addHeader("via",n),1===A.getHeaders("via").length?(r=A.parseHeader("Via"),r&&(A.via=r,A.viaBranch=r.branch)):r=0;break;case"from":case"f":A.setHeader("from",n),r=A.parseHeader("from"),r&&(A.from=r,A.fromTag=r.getParam("tag"));break;case"to":case"t":A.setHeader("to",n),r=A.parseHeader("to"),r&&(A.to=r,A.toTag=r.getParam("tag"));break;case"record-route":if(r=E.parse(n,"Record_Route"),-1===r){r=void 0;break}if(!(r instanceof Array)){r=void 0;break}r.forEach(e=>{A.addHeader("record-route",n.substring(e.position,e.offset)),A.headers["Record-Route"][A.getHeaders("record-route").length-1].parsed=e.parsed});break;case"call-id":case"i":A.setHeader("call-id",n),r=A.parseHeader("call-id"),r&&(A.callId=n);break;case"contact":case"m":if(r=E.parse(n,"Contact"),-1===r){r=void 0;break}if(!(r instanceof Array)){r=void 0;break}r.forEach(e=>{A.addHeader("contact",n.substring(e.position,e.offset)),A.headers.Contact[A.getHeaders("contact").length-1].parsed=e.parsed});break;case"content-length":case"l":A.setHeader("content-length",n),r=A.parseHeader("content-length");break;case"content-type":case"c":A.setHeader("content-type",n),r=A.parseHeader("content-type");break;case"cseq":A.setHeader("cseq",n),r=A.parseHeader("cseq"),r&&(A.cseq=r.value),A instanceof y&&(A.method=r.method);break;case"max-forwards":A.setHeader("max-forwards",n),r=A.parseHeader("max-forwards");break;case"www-authenticate":A.setHeader("www-authenticate",n),r=A.parseHeader("www-authenticate");break;case"proxy-authenticate":A.setHeader("proxy-authenticate",n),r=A.parseHeader("proxy-authenticate");break;case"refer-to":case"r":A.setHeader("refer-to",n),r=A.parseHeader("refer-to"),r&&(A.referTo=r);break;default:A.addHeader(o.toLowerCase(),n),r=0}return void 0!==r||{error:"error parsing header '"+o+"'"}}A.getHeader=e,A.parseHeader=t,A.parseMessage=function(A,s){let i=0,o=A.indexOf("\r\n");if(-1===o)return void s.warn("no CRLF found, not a SIP message, discarded");const n=A.substring(0,o),r=E.parse(n,"Request_Response");let a,V;if(-1!==r){for(r.status_code?(a=new y,a.statusCode=r.status_code,a.reasonPhrase=r.reason_phrase):(a=new T,a.method=r.method,a.ruri=r.uri),a.data=A,i=o+2;;){if(o=e(A,i),-2===o){V=i+2;break}if(-1===o)return void s.error("malformed message");const n=t(a,A,i,o);if(n&&!0!==n)return void s.error(n.error);i=o+2}return a.hasHeader("content-length")?a.body=A.substr(V,Number(a.getHeader("content-length"))):a.body=A.substring(V),a}s.warn('error parsing first line of SIP message: "'+n+'"')}}(sA=sA||(sA={}));class lA extends t{constructor(A){super(A||"Unspecified transport error.")}}class gA{constructor(A,e,t,s,i){this._transport=A,this._user=e,this._id=t,this._state=s,this.listeners=new Array,this.logger=e.loggerFactory.getLogger(i,t),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}addStateChangeListener(A,e){const t=()=>{this.removeStateChangeListener(t),A()};!0===(null==e?void 0:e.once)?this.listeners.push(t):this.listeners.push(A)}notifyStateChangeListeners(){this.listeners.slice().forEach(A=>A())}removeStateChangeListener(A){this.listeners=this.listeners.filter(e=>e!==A)}logTransportError(A,e){this.logger.error(A.message),this.logger.error(`Transport error occurred in ${this.typeToString()} with id ${this.id}.`),this.logger.error(e)}send(A){return this.transport.send(A).catch(A=>{if(A instanceof lA)throw this.onTransportError(A),A;let e;throw e=A&&"string"==typeof A.message?new lA(A.message):new lA,this.onTransportError(e),e})}setState(A){this.logger.debug(`State change to "${A}" on ${this.typeToString()} with id ${this.id}.`),this._state=A,this._user.onStateChange&&this._user.onStateChange(A),this.notifyStateChangeListeners()}typeToString(){return"UnknownType"}}class qA extends gA{constructor(A,e,t,s,i){super(e,t,A.viaBranch,s,i),this._request=A,this.user=t}get request(){return this._request}}!function(A){A.Accepted="Accepted",A.Calling="Calling",A.Completed="Completed",A.Confirmed="Confirmed",A.Proceeding="Proceeding",A.Terminated="Terminated",A.Trying="Trying"}(iA=iA||(iA={}));class dA extends qA{constructor(A,e,t){super(A,e,t,iA.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(A){switch(this.state){case iA.Proceeding:if(A.method===N.INVITE)return void(this.lastProvisionalResponse&&this.send(this.lastProvisionalResponse).catch(A=>{this.logTransportError(A,"Failed to send retransmission of provisional response.")}));break;case iA.Accepted:if(A.method===N.INVITE)return;break;case iA.Completed:if(A.method===N.INVITE){if(!this.lastFinalResponse)throw new Error("Last final response undefined.");return void this.send(this.lastFinalResponse).catch(A=>{this.logTransportError(A,"Failed to send retransmission of final response.")})}if(A.method===N.ACK)return void this.stateTransition(iA.Confirmed);break;case iA.Confirmed:case iA.Terminated:if(A.method===N.INVITE||A.method===N.ACK)return;break;default:throw new Error(`Invalid state ${this.state}`)}const e=`INVITE server transaction received unexpected ${A.method} request while in state ${this.state}.`;this.logger.warn(e)}receiveResponse(A,e){if(A<100||A>699)throw new Error(`Invalid status code ${A}`);switch(this.state){case iA.Proceeding:if(A>=100&&A<=199)return this.lastProvisionalResponse=e,A>100&&this.startProgressExtensionTimer(),void this.send(e).catch(A=>{this.logTransportError(A,"Failed to send 1xx response.")});if(A>=200&&A<=299)return this.lastFinalResponse=e,this.stateTransition(iA.Accepted),void this.send(e).catch(A=>{this.logTransportError(A,"Failed to send 2xx response.")});if(A>=300&&A<=699)return this.lastFinalResponse=e,this.stateTransition(iA.Completed),void this.send(e).catch(A=>{this.logTransportError(A,"Failed to send non-2xx final response.")});break;case iA.Accepted:if(A>=200&&A<=299)return void this.send(e).catch(A=>{this.logTransportError(A,"Failed to send 2xx response.")});break;case iA.Completed:case iA.Confirmed:case iA.Terminated:break;default:throw new Error(`Invalid state ${this.state}`)}const t=`INVITE server transaction received unexpected ${A} response from TU while in state ${this.state}.`;throw this.logger.error(t),new Error(t)}retransmitAcceptedResponse(){this.state===iA.Accepted&&this.lastFinalResponse&&this.send(this.lastFinalResponse).catch(A=>{this.logTransportError(A,"Failed to send 2xx response.")})}onTransportError(A){this.user.onTransportError&&this.user.onTransportError(A)}typeToString(){return"INVITE server transaction"}stateTransition(A){const e=()=>{throw new Error(`Invalid state transition from ${this.state} to ${A}`)};switch(A){case iA.Proceeding:e();break;case iA.Accepted:case iA.Completed:this.state!==iA.Proceeding&&e();break;case iA.Confirmed:this.state!==iA.Completed&&e();break;case iA.Terminated:this.state!==iA.Accepted&&this.state!==iA.Completed&&this.state!==iA.Confirmed&&e();break;default:e()}this.stopProgressExtensionTimer(),A===iA.Accepted&&(this.L=setTimeout(()=>this.timerL(),v.TIMER_L)),A===iA.Completed&&(this.H=setTimeout(()=>this.timerH(),v.TIMER_H)),A===iA.Confirmed&&(this.I=setTimeout(()=>this.timerI(),v.TIMER_I)),A===iA.Terminated&&this.dispose(),this.setState(A)}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(A=>{this.logTransportError(A,"Failed to send retransmission of provisional response.")})},v.PROVISIONAL_RESPONSE_INTERVAL))}stopProgressExtensionTimer(){void 0!==this.progressExtensionTimer&&(clearInterval(this.progressExtensionTimer),this.progressExtensionTimer=void 0)}timerG(){}timerH(){this.logger.debug(`Timer H expired for INVITE server transaction ${this.id}.`),this.state===iA.Completed&&(this.logger.warn("ACK to negative final response was never received, terminating transaction."),this.stateTransition(iA.Terminated))}timerI(){this.logger.debug(`Timer I expired for INVITE server transaction ${this.id}.`),this.stateTransition(iA.Terminated)}timerL(){this.logger.debug(`Timer L expired for INVITE server transaction ${this.id}.`),this.state===iA.Accepted&&this.stateTransition(iA.Terminated)}}class uA extends gA{constructor(A,e,t,s,i){super(e,t,uA.makeId(A),s,i),this._request=A,this.user=t,A.setViaHeader(this.id,e.protocol)}static makeId(A){if("CANCEL"===A.method){if(!A.branch)throw new Error("Outgoing CANCEL request without a branch.");return A.branch}return"z9hG4bK"+Math.floor(1e7*Math.random())}get request(){return this._request}onRequestTimeout(){this.user.onRequestTimeout&&this.user.onRequestTimeout()}}class pA extends uA{constructor(A,e,t){super(A,e,t,iA.Trying,"sip.transaction.nict"),this.F=setTimeout(()=>this.timerF(),v.TIMER_F),this.send(A.toString()).catch(A=>{this.logTransportError(A,"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(A){const e=A.statusCode;if(!e||e<100||e>699)throw new Error(`Invalid status code ${e}`);switch(this.state){case iA.Trying:if(e>=100&&e<=199)return this.stateTransition(iA.Proceeding),void(this.user.receiveResponse&&this.user.receiveResponse(A));if(e>=200&&e<=699)return this.stateTransition(iA.Completed),408===e?void this.onRequestTimeout():void(this.user.receiveResponse&&this.user.receiveResponse(A));break;case iA.Proceeding:if(e>=100&&e<=199&&this.user.receiveResponse)return this.user.receiveResponse(A);if(e>=200&&e<=699)return this.stateTransition(iA.Completed),408===e?void this.onRequestTimeout():void(this.user.receiveResponse&&this.user.receiveResponse(A));break;case iA.Completed:case iA.Terminated:return;default:throw new Error(`Invalid state ${this.state}`)}const t=`Non-INVITE client transaction received unexpected ${e} response while in state ${this.state}.`;this.logger.warn(t)}onTransportError(A){this.user.onTransportError&&this.user.onTransportError(A),this.stateTransition(iA.Terminated,!0)}typeToString(){return"non-INVITE client transaction"}stateTransition(A,e=!1){const t=()=>{throw new Error(`Invalid state transition from ${this.state} to ${A}`)};switch(A){case iA.Trying:t();break;case iA.Proceeding:this.state!==iA.Trying&&t();break;case iA.Completed:this.state!==iA.Trying&&this.state!==iA.Proceeding&&t();break;case iA.Terminated:this.state!==iA.Trying&&this.state!==iA.Proceeding&&this.state!==iA.Completed&&(e||t());break;default:t()}A===iA.Completed&&(this.F&&(clearTimeout(this.F),this.F=void 0),this.K=setTimeout(()=>this.timerK(),v.TIMER_K)),A===iA.Terminated&&this.dispose(),this.setState(A)}timerF(){this.logger.debug(`Timer F expired for non-INVITE client transaction ${this.id}.`),this.state!==iA.Trying&&this.state!==iA.Proceeding||(this.onRequestTimeout(),this.stateTransition(iA.Terminated))}timerK(){this.state===iA.Completed&&this.stateTransition(iA.Terminated)}}class mA{constructor(A,e){this.core=A,this.dialogState=e,this.core.dialogs.set(this.id,this)}static initialDialogStateForUserAgentClient(A,e){const t=e.getHeaders("record-route").reverse(),s=e.parseHeader("contact");if(!s)throw new Error("Contact undefined.");if(!(s instanceof q))throw new Error("Contact not instance of NameAddrHeader.");const i=s.uri,o=A.cseq,n=A.callId,r=A.fromTag,a=e.toTag;if(!n)throw new Error("Call id undefined.");if(!r)throw new Error("From tag undefined.");if(!a)throw new Error("To tag undefined.");if(!A.from)throw new Error("From undefined.");if(!A.to)throw new Error("To undefined.");const V=A.from.uri,c=A.to.uri;if(!e.statusCode)throw new Error("Incoming response status code undefined.");return{id:n+r+a,early:e.statusCode<200,callId:n,localTag:r,remoteTag:a,localSequenceNumber:o,remoteSequenceNumber:undefined,localURI:V,remoteURI:c,remoteTarget:i,routeSet:t,secure:!1}}static initialDialogStateForUserAgentServer(A,e,t=!1){const s=A.getHeaders("record-route"),i=A.parseHeader("contact");if(!i)throw new Error("Contact undefined.");if(!(i instanceof q))throw new Error("Contact not instance of NameAddrHeader.");const o=i.uri,n=A.cseq,r=A.callId,a=e,V=A.fromTag,c=A.from.uri;return{id:r+a+V,early:t,callId:r,localTag:a,remoteTag:V,localSequenceNumber:undefined,remoteSequenceNumber:n,localURI:A.to.uri,remoteURI:c,remoteTarget:o,routeSet:s,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(A){if(A.method!==N.ACK){if(this.remoteSequenceNumber){if(A.cseq<=this.remoteSequenceNumber)throw new Error("Out of sequence in dialog request. Did you forget to call sequenceGuard()?");this.dialogState.remoteSequenceNumber=A.cseq}this.remoteSequenceNumber||(this.dialogState.remoteSequenceNumber=A.cseq)}}recomputeRouteSet(A){this.dialogState.routeSet=A.getHeaders("record-route").reverse()}createOutgoingRequestMessage(A,e){const t=this.remoteURI,s=this.remoteTag,i=this.localURI,o=this.localTag,n=this.callId;let r;r=e&&e.cseq?e.cseq:this.dialogState.localSequenceNumber?this.dialogState.localSequenceNumber+=1:this.dialogState.localSequenceNumber=1;const a=this.remoteTarget,V=this.routeSet,c=e&&e.extraHeaders,h=e&&e.body;return this.userAgentCore.makeOutgoingRequestMessage(A,a,i,t,{callId:n,cseq:r,fromTag:o,toTag:s,routeSet:V},c,h)}incrementLocalSequenceNumber(){if(!this.dialogState.localSequenceNumber)throw new Error("Local sequence number undefined.");this.dialogState.localSequenceNumber+=1}sequenceGuard(A){return A.method===N.ACK||(!(this.remoteSequenceNumber&&A.cseq<=this.remoteSequenceNumber)||(this.core.replyStateless(A,{statusCode:500}),!1))}}class CA extends uA{constructor(A,e,t){super(A,e,t,iA.Calling,"sip.transaction.ict"),this.ackRetransmissionCache=new Map,this.B=setTimeout(()=>this.timerB(),v.TIMER_B),this.send(A.toString()).catch(A=>{this.logTransportError(A,"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(A){const e=A.toTag;if(!e)throw new Error("To tag undefined.");const t="z9hG4bK"+Math.floor(1e7*Math.random());A.setViaHeader(t,this.transport.protocol),this.ackRetransmissionCache.set(e,A),this.send(A.toString()).catch(A=>{this.logTransportError(A,"Failed to send ACK to 2xx response.")})}receiveResponse(A){const e=A.statusCode;if(!e||e<100||e>699)throw new Error(`Invalid status code ${e}`);switch(this.state){case iA.Calling:if(e>=100&&e<=199)return this.stateTransition(iA.Proceeding),void(this.user.receiveResponse&&this.user.receiveResponse(A));if(e>=200&&e<=299)return this.ackRetransmissionCache.set(A.toTag,void 0),this.stateTransition(iA.Accepted),void(this.user.receiveResponse&&this.user.receiveResponse(A));if(e>=300&&e<=699)return this.stateTransition(iA.Completed),this.ack(A),void(this.user.receiveResponse&&this.user.receiveResponse(A));break;case iA.Proceeding:if(e>=100&&e<=199)return void(this.user.receiveResponse&&this.user.receiveResponse(A));if(e>=200&&e<=299)return this.ackRetransmissionCache.set(A.toTag,void 0),this.stateTransition(iA.Accepted),void(this.user.receiveResponse&&this.user.receiveResponse(A));if(e>=300&&e<=699)return this.stateTransition(iA.Completed),this.ack(A),void(this.user.receiveResponse&&this.user.receiveResponse(A));break;case iA.Accepted:if(e>=200&&e<=299){if(!this.ackRetransmissionCache.has(A.toTag))return this.ackRetransmissionCache.set(A.toTag,void 0),void(this.user.receiveResponse&&this.user.receiveResponse(A));const e=this.ackRetransmissionCache.get(A.toTag);return e?void this.send(e.toString()).catch(A=>{this.logTransportError(A,"Failed to send retransmission of ACK to 2xx response.")}):void 0}break;case iA.Completed:if(e>=300&&e<=699)return void this.ack(A);break;case iA.Terminated:break;default:throw new Error(`Invalid state ${this.state}`)}const t=`Received unexpected ${e} response while in state ${this.state}.`;this.logger.warn(t)}onTransportError(A){this.user.onTransportError&&this.user.onTransportError(A),this.stateTransition(iA.Terminated,!0)}typeToString(){return"INVITE client transaction"}ack(A){const e=this.request.ruri,t=this.request.callId,s=this.request.cseq,i=this.request.getHeader("from"),o=A.getHeader("to"),n=this.request.getHeader("via"),r=this.request.getHeader("route");if(!i)throw new Error("From undefined.");if(!o)throw new Error("To undefined.");if(!n)throw new Error("Via undefined.");let a=`ACK ${e} SIP/2.0\r\n`;r&&(a+=`Route: ${r}\r\n`),a+=`Via: ${n}\r\n`,a+=`To: ${o}\r\n`,a+=`From: ${i}\r\n`,a+=`Call-ID: ${t}\r\n`,a+=`CSeq: ${s} ACK\r\n`,a+="Max-Forwards: 70\r\n",a+="Content-Length: 0\r\n\r\n",this.send(a).catch(A=>{this.logTransportError(A,"Failed to send ACK to non-2xx response.")})}stateTransition(A,e=!1){const t=()=>{throw new Error(`Invalid state transition from ${this.state} to ${A}`)};switch(A){case iA.Calling:t();break;case iA.Proceeding:this.state!==iA.Calling&&t();break;case iA.Accepted:case iA.Completed:this.state!==iA.Calling&&this.state!==iA.Proceeding&&t();break;case iA.Terminated:this.state!==iA.Calling&&this.state!==iA.Accepted&&this.state!==iA.Completed&&(e||t());break;default:t()}this.B&&(clearTimeout(this.B),this.B=void 0),iA.Proceeding,A===iA.Completed&&(this.D=setTimeout(()=>this.timerD(),v.TIMER_D)),A===iA.Accepted&&(this.M=setTimeout(()=>this.timerM(),v.TIMER_M)),A===iA.Terminated&&this.dispose(),this.setState(A)}timerA(){}timerB(){this.logger.debug(`Timer B expired for INVITE client transaction ${this.id}.`),this.state===iA.Calling&&(this.onRequestTimeout(),this.stateTransition(iA.Terminated))}timerD(){this.logger.debug(`Timer D expired for INVITE client transaction ${this.id}.`),this.state===iA.Completed&&this.stateTransition(iA.Terminated)}timerM(){this.logger.debug(`Timer M expired for INVITE client transaction ${this.id}.`),this.state===iA.Accepted&&this.stateTransition(iA.Terminated)}}class EA{constructor(A,e,t,s){this.transactionConstructor=A,this.core=e,this.message=t,this.delegate=s,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(A,e={}){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 t=this.core.makeOutgoingRequestMessage(N.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},e.extraHeaders);return t.branch=this.message.branch,this.message.headers.Route&&(t.headers.Route=this.message.headers.Route),A&&t.setHeader("Reason",A),this.transaction.state===iA.Proceeding?new EA(pA,this.core,t):this.transaction.addStateChangeListener(()=>{this.transaction&&this.transaction.state===iA.Proceeding&&new EA(pA,this.core,t)},{once:!0}),t}authenticationGuard(A,e){const t=A.statusCode;if(!t)throw new Error("Response status code undefined.");if(401!==t&&407!==t)return!0;let s,i;if(401===t?(s=A.parseHeader("www-authenticate"),i="authorization"):(s=A.parseHeader("proxy-authenticate"),i="proxy-authorization"),!s)return this.logger.warn(t+" with wrong or missing challenge, cannot authenticate"),!0;if(this.challenged&&(this.stale||!0!==s.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,s))return!0;this.challenged=!0,s.stale&&(this.stale=!0);let o=this.message.cseq+=1;return e&&e.localSequenceNumber&&(e.incrementLocalSequenceNumber(),o=this.message.cseq=e.localSequenceNumber),this.message.setHeader("cseq",o+" "+this.message.method),this.message.setHeader(i,this.credentials.toString()),this.init(),!1}onRequestTimeout(){this.logger.warn("User agent client request timed out. Generating internal 408 Request Timeout.");const A=new y;A.statusCode=408,A.reasonPhrase="Request Timeout",this.receiveResponse(A)}onTransportError(A){this.logger.error(A.message),this.logger.error("User agent client request transport error. Generating internal 503 Service Unavailable.");const e=new y;e.statusCode=503,e.reasonPhrase="Service Unavailable",this.receiveResponse(e)}receiveResponse(A){if(!this.authenticationGuard(A))return;const e=A.statusCode?A.statusCode.toString():"";if(!e)throw new Error("Response status code undefined.");switch(!0){case/^100$/.test(e):this.delegate&&this.delegate.onTrying&&this.delegate.onTrying({message:A});break;case/^1[0-9]{2}$/.test(e):this.delegate&&this.delegate.onProgress&&this.delegate.onProgress({message:A});break;case/^2[0-9]{2}$/.test(e):this.delegate&&this.delegate.onAccept&&this.delegate.onAccept({message:A});break;case/^3[0-9]{2}$/.test(e):this.delegate&&this.delegate.onRedirect&&this.delegate.onRedirect({message:A});break;case/^[4-6][0-9]{2}$/.test(e):this.delegate&&this.delegate.onReject&&this.delegate.onReject({message:A});break;default:throw new Error(`Invalid status code ${e}`)}}init(){const A={loggerFactory:this.loggerFactory,onRequestTimeout:()=>this.onRequestTimeout(),onStateChange:A=>{A===iA.Terminated&&(this.core.userAgentClients.delete(t),e===this._transaction&&this.dispose())},onTransportError:A=>this.onTransportError(A),receiveResponse:A=>this.receiveResponse(A)},e=new this.transactionConstructor(this.message,this.core.transport,A);this._transaction=e;const t=e.id+e.request.method;this.core.userAgentClients.set(t,this)}}class IA extends EA{constructor(A,e,t){const s=A.createOutgoingRequestMessage(N.BYE,t);super(pA,A.userAgentCore,s,e),A.dispose()}}class wA extends qA{constructor(A,e,t){super(A,e,t,iA.Trying,"sip.transaction.nist")}dispose(){this.J&&(clearTimeout(this.J),this.J=void 0),super.dispose()}get kind(){return"nist"}receiveRequest(A){switch(this.state){case iA.Trying:break;case iA.Proceeding:if(!this.lastResponse)throw new Error("Last response undefined.");this.send(this.lastResponse).catch(A=>{this.logTransportError(A,"Failed to send retransmission of provisional response.")});break;case iA.Completed:if(!this.lastResponse)throw new Error("Last response undefined.");this.send(this.lastResponse).catch(A=>{this.logTransportError(A,"Failed to send retransmission of final response.")});break;case iA.Terminated:break;default:throw new Error(`Invalid state ${this.state}`)}}receiveResponse(A,e){if(A<100||A>699)throw new Error(`Invalid status code ${A}`);if(A>100&&A<=199)throw new Error("Provisional response other than 100 not allowed.");switch(this.state){case iA.Trying:if(this.lastResponse=e,A>=100&&A<200)return this.stateTransition(iA.Proceeding),void this.send(e).catch(A=>{this.logTransportError(A,"Failed to send provisional response.")});if(A>=200&&A<=699)return this.stateTransition(iA.Completed),void this.send(e).catch(A=>{this.logTransportError(A,"Failed to send final response.")});break;case iA.Proceeding:if(this.lastResponse=e,A>=200&&A<=699)return this.stateTransition(iA.Completed),void this.send(e).catch(A=>{this.logTransportError(A,"Failed to send final response.")});break;case iA.Completed:return;case iA.Terminated:break;default:throw new Error(`Invalid state ${this.state}`)}const t=`Non-INVITE server transaction received unexpected ${A} response from TU while in state ${this.state}.`;throw this.logger.error(t),new Error(t)}onTransportError(A){this.user.onTransportError&&this.user.onTransportError(A),this.stateTransition(iA.Terminated,!0)}typeToString(){return"non-INVITE server transaction"}stateTransition(A,e=!1){const t=()=>{throw new Error(`Invalid state transition from ${this.state} to ${A}`)};switch(A){case iA.Trying:t();break;case iA.Proceeding:this.state!==iA.Trying&&t();break;case iA.Completed:this.state!==iA.Trying&&this.state!==iA.Proceeding&&t();break;case iA.Terminated:this.state!==iA.Proceeding&&this.state!==iA.Completed&&(e||t());break;default:t()}A===iA.Completed&&(this.J=setTimeout(()=>this.timerJ(),v.TIMER_J)),A===iA.Terminated&&this.dispose(),this.setState(A)}timerJ(){this.logger.debug(`Timer J expired for NON-INVITE server transaction ${this.id}.`),this.state===iA.Completed&&this.stateTransition(iA.Terminated)}}class MA{constructor(A,e,t,s){this.transactionConstructor=A,this.core=e,this.message=t,this.delegate=s,this.logger=this.loggerFactory.getLogger("sip.user-agent-server"),this.toTag=t.toTag?t.toTag:f(),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(A={statusCode:200}){if(!this.acceptable)throw new x(`${this.message.method} not acceptable in state ${this.transaction.state}.`);const e=A.statusCode;if(e<200||e>299)throw new TypeError(`Invalid statusCode: ${e}`);return this.reply(A)}progress(A={statusCode:180}){if(!this.progressable)throw new x(`${this.message.method} not progressable in state ${this.transaction.state}.`);const e=A.statusCode;if(e<101||e>199)throw new TypeError(`Invalid statusCode: ${e}`);return this.reply(A)}redirect(A,e={statusCode:302}){if(!this.redirectable)throw new x(`${this.message.method} not redirectable in state ${this.transaction.state}.`);const t=e.statusCode;if(t<300||t>399)throw new TypeError(`Invalid statusCode: ${t}`);const s=new Array;A.forEach(A=>s.push(`Contact: ${A.toString()}`)),e.extraHeaders=(e.extraHeaders||[]).concat(s);return this.reply(e)}reject(A={statusCode:480}){if(!this.rejectable)throw new x(`${this.message.method} not rejectable in state ${this.transaction.state}.`);const e=A.statusCode;if(e<400||e>699)throw new TypeError(`Invalid statusCode: ${e}`);return this.reply(A)}trying(A){if(!this.tryingable)throw new x(`${this.message.method} not tryingable in state ${this.transaction.state}.`);return this.reply({statusCode:100})}receiveCancel(A){this.delegate&&this.delegate.onCancel&&this.delegate.onCancel(A)}get acceptable(){if(this.transaction instanceof dA)return this.transaction.state===iA.Proceeding||this.transaction.state===iA.Accepted;if(this.transaction instanceof wA)return this.transaction.state===iA.Trying||this.transaction.state===iA.Proceeding;throw new Error("Unknown transaction type.")}get progressable(){if(this.transaction instanceof dA)return this.transaction.state===iA.Proceeding;if(this.transaction instanceof wA)return!1;throw new Error("Unknown transaction type.")}get redirectable(){if(this.transaction instanceof dA)return this.transaction.state===iA.Proceeding;if(this.transaction instanceof wA)return this.transaction.state===iA.Trying||this.transaction.state===iA.Proceeding;throw new Error("Unknown transaction type.")}get rejectable(){if(this.transaction instanceof dA)return this.transaction.state===iA.Proceeding;if(this.transaction instanceof wA)return this.transaction.state===iA.Trying||this.transaction.state===iA.Proceeding;throw new Error("Unknown transaction type.")}get tryingable(){if(this.transaction instanceof dA)return this.transaction.state===iA.Proceeding;if(this.transaction instanceof wA)return this.transaction.state===iA.Trying;throw new Error("Unknown transaction type.")}reply(A){A.toTag||100===A.statusCode||(A.toTag=this.toTag),A.userAgent=A.userAgent||this.core.configuration.userAgentHeaderFieldValue,A.supported=A.supported||this.core.configuration.supportedOptionTagsResponse;const e=hA(this.message,A);return this.transaction.receiveResponse(A.statusCode,e.message),e}init(){const A={loggerFactory:this.loggerFactory,onStateChange:A=>{A===iA.Terminated&&(this.core.userAgentServers.delete(t),this.dispose())},onTransportError:A=>{this.logger.error(A.message),this.delegate&&this.delegate.onTransportError?this.delegate.onTransportError(A):this.logger.error("User agent server response transport error.")}},e=new this.transactionConstructor(this.message,this.core.transport,A);this._transaction=e;const t=e.id;this.core.userAgentServers.set(e.id,this)}}class fA extends MA{constructor(A,e,t){super(wA,A.userAgentCore,e,t)}}class BA extends EA{constructor(A,e,t){const s=A.createOutgoingRequestMessage(N.INFO,t);super(pA,A.userAgentCore,s,e)}}class QA extends MA{constructor(A,e,t){super(wA,A.userAgentCore,e,t)}}class SA extends EA{constructor(A,e,t){super(pA,A,e,t)}}class TA extends MA{constructor(A,e,t){super(wA,A,e,t)}}class yA extends EA{constructor(A,e,t){const s=A.createOutgoingRequestMessage(N.NOTIFY,t);super(pA,A.userAgentCore,s,e)}}class RA extends MA{constructor(A,e,t){const s=void 0!==A.userAgentCore?A.userAgentCore:A;super(wA,s,e,t)}}class DA extends EA{constructor(A,e,t){const s=A.createOutgoingRequestMessage(N.PRACK,t);super(pA,A.userAgentCore,s,e),A.signalingStateTransition(s)}}class UA extends MA{constructor(A,e,t){super(wA,A.userAgentCore,e,t),A.signalingStateTransition(e),this.dialog=A}accept(A={statusCode:200}){return A.body&&this.dialog.signalingStateTransition(A.body),super.accept(A)}}class kA extends EA{constructor(A,e,t){const s=A.createOutgoingRequestMessage(N.INVITE,t);super(CA,A.userAgentCore,s,e),this.delegate=e,A.signalingStateTransition(s),A.reinviteUserAgentClient=this,this.dialog=A}receiveResponse(A){if(!this.authenticationGuard(A,this.dialog))return;const e=A.statusCode?A.statusCode.toString():"";if(!e)throw new Error("Response status code undefined.");switch(!0){case/^100$/.test(e):this.delegate&&this.delegate.onTrying&&this.delegate.onTrying({message:A});break;case/^1[0-9]{2}$/.test(e):this.delegate&&this.delegate.onProgress&&this.delegate.onProgress({message:A,session:this.dialog,prack:A=>{throw new Error("Unimplemented.")}});break;case/^2[0-9]{2}$/.test(e):this.dialog.signalingStateTransition(A),this.delegate&&this.delegate.onAccept&&this.delegate.onAccept({message:A,session:this.dialog,ack:A=>this.dialog.ack(A)});break;case/^3[0-9]{2}$/.test(e):this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentClient=void 0,this.delegate&&this.delegate.onRedirect&&this.delegate.onRedirect({message:A});break;case/^[4-6][0-9]{2}$/.test(e):this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentClient=void 0,this.delegate&&this.delegate.onReject&&this.delegate.onReject({message:A});break;default:throw new Error(`Invalid status code ${e}`)}}}class GA extends MA{constructor(A,e,t){super(dA,A.userAgentCore,e,t),A.reinviteUserAgentServer=this,this.dialog=A}accept(A={statusCode:200}){A.extraHeaders=A.extraHeaders||[],A.extraHeaders=A.extraHeaders.concat(this.dialog.routeSet.map(A=>`Record-Route: ${A}`));const e=super.accept(A),t=this.dialog,s=Object.assign(Object.assign({},e),{session:t});return A.body&&this.dialog.signalingStateTransition(A.body),this.dialog.reConfirm(),s}progress(A={statusCode:180}){const e=super.progress(A),t=this.dialog,s=Object.assign(Object.assign({},e),{session:t});return A.body&&this.dialog.signalingStateTransition(A.body),s}redirect(A,e={statusCode:302}){throw this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentServer=void 0,new Error("Unimplemented.")}reject(A={statusCode:488}){return this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentServer=void 0,super.reject(A)}}class FA extends EA{constructor(A,e,t){const s=A.createOutgoingRequestMessage(N.REFER,t);super(pA,A.userAgentCore,s,e)}}class YA extends MA{constructor(A,e,t){const s=void 0!==A.userAgentCore?A.userAgentCore:A;super(wA,s,e,t)}}class ZA extends mA{constructor(A,e,t,s){super(e,t),this.initialTransaction=A,this._signalingState=Y.Initial,this.ackWait=!1,this.ackProcessing=!1,this.delegate=s,A instanceof dA&&(this.ackWait=!0),this.early||this.start2xxRetransmissionTimer(),this.signalingStateTransition(A.request),this.logger=e.loggerFactory.getLogger("sip.invite-dialog"),this.logger.log(`INVITE dialog ${this.id} constructed`)}dispose(){super.dispose(),this._signalingState=Y.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?F.Early:this.ackWait?F.AckWait:this._signalingState===Y.Closed?F.Terminated:F.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(A={}){let e;if(this.logger.log(`INVITE dialog ${this.id} sending ACK request`),this.reinviteUserAgentClient){if(!(this.reinviteUserAgentClient.transaction instanceof CA))throw new Error("Transaction not instance of InviteClientTransaction.");e=this.reinviteUserAgentClient.transaction,this.reinviteUserAgentClient=void 0}else{if(!(this.initialTransaction instanceof CA))throw new Error("Initial transaction not instance of InviteClientTransaction.");e=this.initialTransaction}const t=this.createOutgoingRequestMessage(N.ACK,{cseq:e.request.cseq,extraHeaders:A.extraHeaders,body:A.body});return e.ackResponse(t),this.signalingStateTransition(t),{message:t}}bye(A,e){if(this.logger.log(`INVITE dialog ${this.id} sending BYE request`),this.initialTransaction instanceof dA){if(this.early)throw new Error("UAS MUST NOT send a BYE on early dialogs.");if(this.ackWait&&this.initialTransaction.state!==iA.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 IA(this,A,e)}info(A,e){if(this.logger.log(`INVITE dialog ${this.id} sending INFO request`),this.early)throw new Error("Dialog not confirmed.");return new BA(this,A,e)}invite(A,e){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 kA(this,A,e)}message(A,e){if(this.logger.log(`INVITE dialog ${this.id} sending MESSAGE request`),this.early)throw new Error("Dialog not confirmed.");const t=this.createOutgoingRequestMessage(N.MESSAGE,e);return new SA(this.core,t,A)}notify(A,e){if(this.logger.log(`INVITE dialog ${this.id} sending NOTIFY request`),this.early)throw new Error("Dialog not confirmed.");return new yA(this,A,e)}prack(A,e){return this.logger.log(`INVITE dialog ${this.id} sending PRACK request`),new DA(this,A,e)}refer(A,e){if(this.logger.log(`INVITE dialog ${this.id} sending REFER request`),this.early)throw new Error("Dialog not confirmed.");return new FA(this,A,e)}receiveRequest(A){if(this.logger.log(`INVITE dialog ${this.id} received ${A.method} request`),A.method!==N.ACK)if(this.sequenceGuard(A)){if(super.receiveRequest(A),A.method===N.INVITE){const e=()=>{const A=this.ackWait?"waiting for initial ACK":"processing initial ACK";this.logger.warn(`INVITE dialog ${this.id} received re-INVITE while ${A}`);let e="RFC 5407 suggests the following to avoid this race condition... ";e+=" Note: Implementation issues are outside the scope of this document,",e+=" but the following tip is provided for avoiding race conditions of",e+=" this type. The caller can delay sending re-INVITE F6 for some period",e+=" of time (2 seconds, perhaps), after which the caller can reasonably",e+=" assume that its ACK has been received. Implementors can decouple the",e+=" actions of the user (e.g., pressing the hold button) from the actions",e+=" of the protocol (the sending of re-INVITE F6), so that the UA can",e+=" behave like this. In this case, it is the implementor's choice as to",e+=" how long to wait. In most cases, such an implementation may be",e+=" useful to prevent the type of race condition shown in this section.",e+=" This document expresses no preference about whether or not they",e+=" should wait for an ACK to be delivered. After considering the impact",e+=" on user experience, implementors should decide whether or not to wait",e+=" for a while, because the user experience depends on the",e+=" implementation and has no direct bearing on protocol behavior.",this.logger.warn("RFC 5407 suggests the following to avoid this race condition... Note: Implementation issues are outside the scope of this document, but the following tip is provided for avoiding race conditions of this type. The caller can delay sending re-INVITE F6 for some period of time (2 seconds, perhaps), after which the caller can reasonably assume that its ACK has been received. Implementors can decouple the actions of the user (e.g., pressing the hold button) from the actions of the protocol (the sending of re-INVITE F6), so that the UA can behave like this. In this case, it is the implementor's choice as to how long to wait. In most cases, such an implementation may be useful to prevent the type of race condition shown in this section. This document expresses no preference about whether or not they should wait for an ACK to be delivered. After considering the impact on user experience, implementors should decide whether or not to wait for a while, because the user experience depends on the implementation and has no direct bearing on protocol behavior.")},t=[`Retry-After: ${Math.floor(10*Math.random())+1}`];if(this.ackProcessing)return this.core.replyStateless(A,{statusCode:500,extraHeaders:t}),void e();if(this.ackWait&&this.signalingState!==Y.Stable)return this.core.replyStateless(A,{statusCode:500,extraHeaders:t}),void e();if(this.reinviteUserAgentServer)return void this.core.replyStateless(A,{statusCode:500,extraHeaders:t});if(this.reinviteUserAgentClient)return void this.core.replyStateless(A,{statusCode:491})}if(A.method===N.INVITE){const e=A.parseHeader("contact");if(!e)throw new Error("Contact undefined.");if(!(e instanceof q))throw new Error("Contact not instance of NameAddrHeader.");this.dialogState.remoteTarget=e.uri}switch(A.method){case N.BYE:{const e=new fA(this,A);this.delegate&&this.delegate.onBye?this.delegate.onBye(e):e.accept(),this.dispose()}break;case N.INFO:{const e=new QA(this,A);this.delegate&&this.delegate.onInfo?this.delegate.onInfo(e):e.reject({statusCode:469,extraHeaders:["Recv-Info:"]})}break;case N.INVITE:{const e=new GA(this,A);this.signalingStateTransition(A),this.delegate&&this.delegate.onInvite?this.delegate.onInvite(e):e.reject({statusCode:488})}break;case N.MESSAGE:{const e=new TA(this.core,A);this.delegate&&this.delegate.onMessage?this.delegate.onMessage(e):e.accept()}break;case N.NOTIFY:{const e=new RA(this,A);this.delegate&&this.delegate.onNotify?this.delegate.onNotify(e):e.accept()}break;case N.PRACK:{const e=new UA(this,A);this.delegate&&this.delegate.onPrack?this.delegate.onPrack(e):e.accept()}break;case N.REFER:{const e=new YA(this,A);this.delegate&&this.delegate.onRefer?this.delegate.onRefer(e):e.reject()}break;default:this.logger.log(`INVITE dialog ${this.id} received unimplemented ${A.method} request`),this.core.replyStateless(A,{statusCode:501})}}else this.logger.log(`INVITE dialog ${this.id} rejected out of order ${A.method} request.`);else{if(this.ackWait){if(this.initialTransaction instanceof CA)return void this.logger.warn(`INVITE dialog ${this.id} received unexpected ${A.method} request, dropping.`);if(this.initialTransaction.request.cseq!==A.cseq)return void this.logger.warn(`INVITE dialog ${this.id} received unexpected ${A.method} request, dropping.`);this.ackWait=!1}else{if(!this.reinviteUserAgentServer)return void this.logger.warn(`INVITE dialog ${this.id} received unexpected ${A.method} request, dropping.`);if(this.reinviteUserAgentServer.transaction.request.cseq!==A.cseq)return void this.logger.warn(`INVITE dialog ${this.id} received unexpected ${A.method} request, dropping.`);this.reinviteUserAgentServer=void 0}if(this.signalingStateTransition(A),this.delegate&&this.delegate.onAck){const e=this.delegate.onAck({message:A});e instanceof Promise&&(this.ackProcessing=!0,e.then(()=>this.ackProcessing=!1).catch(()=>this.ackProcessing=!1))}}}reliableSequenceGuard(A){const e=A.statusCode;if(!e)throw new Error("Status code undefined");if(e>100&&e<200){const e=A.getHeader("require"),t=A.getHeader("rseq"),s=e&&e.includes("100rel")&&t?Number(t):void 0;if(s){if(this.rseq&&this.rseq+1!==s)return!1;this.rseq=this.rseq?this.rseq+1:s}}return!0}signalingStateRollback(){this._signalingState!==Y.HaveLocalOffer&&this.signalingState!==Y.HaveRemoteOffer||this._rollbackOffer&&this._rollbackAnswer&&(this._signalingState=Y.Stable,this._offer=this._rollbackOffer,this._answer=this._rollbackAnswer)}signalingStateTransition(A){const e=G(A);if(e&&"session"===e.contentDisposition){if(this._signalingState===Y.Stable&&(this._rollbackOffer=this._offer,this._rollbackAnswer=this._answer),A instanceof T)switch(this._signalingState){case Y.Initial:case Y.Stable:this._signalingState=Y.HaveRemoteOffer,this._offer=e,this._answer=void 0;break;case Y.HaveLocalOffer:this._signalingState=Y.Stable,this._answer=e;break;case Y.HaveRemoteOffer:case Y.Closed:break;default:throw new Error("Unexpected signaling state.")}if(A instanceof y)switch(this._signalingState){case Y.Initial:case Y.Stable:this._signalingState=Y.HaveRemoteOffer,this._offer=e,this._answer=void 0;break;case Y.HaveLocalOffer:this._signalingState=Y.Stable,this._answer=e;break;case Y.HaveRemoteOffer:case Y.Closed:break;default:throw new Error("Unexpected signaling state.")}if(A instanceof R)switch(this._signalingState){case Y.Initial:case Y.Stable:this._signalingState=Y.HaveLocalOffer,this._offer=e,this._answer=void 0;break;case Y.HaveLocalOffer:break;case Y.HaveRemoteOffer:this._signalingState=Y.Stable,this._answer=e;break;case Y.Closed:break;default:throw new Error("Unexpected signaling state.")}if(k(A))switch(this._signalingState){case Y.Initial:case Y.Stable:this._signalingState=Y.HaveLocalOffer,this._offer=e,this._answer=void 0;break;case Y.HaveLocalOffer:break;case Y.HaveRemoteOffer:this._signalingState=Y.Stable,this._answer=e;break;case Y.Closed:break;default:throw new Error("Unexpected signaling state.")}}}start2xxRetransmissionTimer(){if(this.initialTransaction instanceof dA){const A=this.initialTransaction;let e=v.T1;const t=()=>{this.ackWait?(this.logger.log("No ACK for 2xx response received, attempting retransmission"),A.retransmitAcceptedResponse(),e=Math.min(2*e,v.T2),this.invite2xxTimer=setTimeout(t,e)):this.invite2xxTimer=void 0};this.invite2xxTimer=setTimeout(t,e);const s=()=>{A.state===iA.Terminated&&(A.removeStateChangeListener(s),this.invite2xxTimer&&(clearTimeout(this.invite2xxTimer),this.invite2xxTimer=void 0),this.ackWait&&(this.delegate&&this.delegate.onAckTimeout?this.delegate.onAckTimeout():this.bye()))};A.addStateChangeListener(s)}}startReInvite2xxRetransmissionTimer(){if(this.reinviteUserAgentServer&&this.reinviteUserAgentServer.transaction instanceof dA){const A=this.reinviteUserAgentServer.transaction;let e=v.T1;const t=()=>{this.reinviteUserAgentServer?(this.logger.log("No ACK for 2xx response received, attempting retransmission"),A.retransmitAcceptedResponse(),e=Math.min(2*e,v.T2),this.invite2xxTimer=setTimeout(t,e)):this.invite2xxTimer=void 0};this.invite2xxTimer=setTimeout(t,e);const s=()=>{A.state===iA.Terminated&&(A.removeStateChangeListener(s),this.invite2xxTimer&&(clearTimeout(this.invite2xxTimer),this.invite2xxTimer=void 0),this.reinviteUserAgentServer)};A.addStateChangeListener(s)}}}class OA extends EA{constructor(A,e,t){super(CA,A,e,t),this.confirmedDialogAcks=new Map,this.confirmedDialogs=new Map,this.earlyDialogs=new Map,this.delegate=t}dispose(){this.earlyDialogs.forEach(A=>A.dispose()),this.earlyDialogs.clear(),super.dispose()}onTransportError(A){if(this.transaction.state===iA.Calling)return super.onTransportError(A);this.logger.error(A.message),this.logger.error("User agent client request transport error while sending ACK.")}receiveResponse(A){if(!this.authenticationGuard(A))return;const e=A.statusCode?A.statusCode.toString():"";if(!e)throw new Error("Response status code undefined.");switch(!0){case/^100$/.test(e):return void(this.delegate&&this.delegate.onTrying&&this.delegate.onTrying({message:A}));case/^1[0-9]{2}$/.test(e):{if(!A.toTag)return void this.logger.warn("Non-100 1xx INVITE response received without a to tag, dropping.");if(!A.parseHeader("contact"))return void this.logger.error("Non-100 1xx INVITE response received without a Contact header field, dropping.");const e=mA.initialDialogStateForUserAgentClient(this.message,A);let t=this.earlyDialogs.get(e.id);if(!t){const A=this.transaction;if(!(A instanceof CA))throw new Error("Transaction not instance of InviteClientTransaction.");t=new ZA(A,this.core,e),this.earlyDialogs.set(t.id,t)}if(!t.reliableSequenceGuard(A))return void this.logger.warn("1xx INVITE reliable response received out of order or is a retransmission, dropping.");t.signalingState!==Y.Initial&&t.signalingState!==Y.HaveLocalOffer||t.signalingStateTransition(A);const s=t;this.delegate&&this.delegate.onProgress&&this.delegate.onProgress({message:A,session:s,prack:A=>s.prack(void 0,A)})}return;case/^2[0-9]{2}$/.test(e):{if(!A.toTag)return void this.logger.error("2xx INVITE response received without a to tag, dropping.");if(!A.parseHeader("contact"))return void this.logger.error("2xx INVITE response received without a Contact header field, dropping.");const e=mA.initialDialogStateForUserAgentClient(this.message,A);let t=this.confirmedDialogs.get(e.id);if(t){const A=this.confirmedDialogAcks.get(e.id);if(A){const e=this.transaction;if(!(e instanceof CA))throw new Error("Client transaction not instance of InviteClientTransaction.");e.ackResponse(A.message)}return}if(t=this.earlyDialogs.get(e.id),t)t.confirm(),t.recomputeRouteSet(A),this.earlyDialogs.delete(t.id),this.confirmedDialogs.set(t.id,t);else{const A=this.transaction;if(!(A instanceof CA))throw new Error("Transaction not instance of InviteClientTransaction.");t=new ZA(A,this.core,e),this.confirmedDialogs.set(t.id,t)}t.signalingState!==Y.Initial&&t.signalingState!==Y.HaveLocalOffer||t.signalingStateTransition(A);const s=t;if(this.delegate&&this.delegate.onAccept)this.delegate.onAccept({message:A,session:s,ack:A=>{const e=s.ack(A);return this.confirmedDialogAcks.set(s.id,e),e}});else{const A=s.ack();this.confirmedDialogAcks.set(s.id,A)}}return;case/^3[0-9]{2}$/.test(e):return this.earlyDialogs.forEach(A=>A.dispose()),this.earlyDialogs.clear(),void(this.delegate&&this.delegate.onRedirect&&this.delegate.onRedirect({message:A}));case/^[4-6][0-9]{2}$/.test(e):return this.earlyDialogs.forEach(A=>A.dispose()),this.earlyDialogs.clear(),void(this.delegate&&this.delegate.onReject&&this.delegate.onReject({message:A}));default:throw new Error(`Invalid status code ${e}`)}}}class vA extends MA{constructor(A,e,t){super(dA,A,e,t),this.core=A}dispose(){this.earlyDialog&&this.earlyDialog.dispose(),super.dispose()}accept(A={statusCode:200}){if(!this.acceptable)throw new x(`${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 A=this.transaction;if(!(A instanceof dA))throw new Error("Transaction not instance of InviteClientTransaction.");const e=mA.initialDialogStateForUserAgentServer(this.message,this.toTag);this.confirmedDialog=new ZA(A,this.core,e)}const e=this.message.getHeaders("record-route").map(A=>`Record-Route: ${A}`),t=`Contact: ${this.core.configuration.contact.toString()}`,s="Allow: "+K.toString();if(!A.body)if(this.confirmedDialog.signalingState===Y.Stable)A.body=this.confirmedDialog.answer;else if(this.confirmedDialog.signalingState===Y.Initial||this.confirmedDialog.signalingState===Y.HaveRemoteOffer)throw new Error("Response must have a body.");A.statusCode=A.statusCode||200,A.extraHeaders=A.extraHeaders||[],A.extraHeaders=A.extraHeaders.concat(e),A.extraHeaders.push(s),A.extraHeaders.push(t);const i=super.accept(A),o=this.confirmedDialog,n=Object.assign(Object.assign({},i),{session:o});return A.body&&this.confirmedDialog.signalingState!==Y.Stable&&this.confirmedDialog.signalingStateTransition(A.body),n}progress(A={statusCode:180}){if(!this.progressable)throw new x(`${this.message.method} not progressable in state ${this.transaction.state}.`);if(!this.earlyDialog){const A=this.transaction;if(!(A instanceof dA))throw new Error("Transaction not instance of InviteClientTransaction.");const e=mA.initialDialogStateForUserAgentServer(this.message,this.toTag,!0);this.earlyDialog=new ZA(A,this.core,e)}const e=this.message.getHeaders("record-route").map(A=>`Record-Route: ${A}`),t=`Contact: ${this.core.configuration.contact}`;A.extraHeaders=A.extraHeaders||[],A.extraHeaders=A.extraHeaders.concat(e),A.extraHeaders.push(t);const s=super.progress(A),i=this.earlyDialog,o=Object.assign(Object.assign({},s),{session:i});return A.body&&this.earlyDialog.signalingState!==Y.Stable&&this.earlyDialog.signalingStateTransition(A.body),o}redirect(A,e={statusCode:302}){return super.redirect(A,e)}reject(A={statusCode:486}){return super.reject(A)}}class xA extends EA{constructor(A,e,t){super(pA,A,e,t)}}class NA extends EA{constructor(A,e,t){super(pA,A,e,t)}}class KA extends MA{constructor(A,e,t){super(wA,A,e,t),this.core=A}}class bA extends EA{constructor(A,e,t){const s=A.createOutgoingRequestMessage(N.SUBSCRIBE,t);super(pA,A.userAgentCore,s,e),this.dialog=A}waitNotifyStop(){}receiveResponse(A){if(A.statusCode&&A.statusCode>=200&&A.statusCode<300){const e=A.getHeader("Expires");if(e){const A=Number(e);this.dialog.subscriptionExpires>A&&(this.dialog.subscriptionExpires=A)}else this.logger.warn("Expires header missing in a 200-class response to SUBSCRIBE")}if(A.statusCode&&A.statusCode>=400&&A.statusCode<700){[404,405,410,416,480,481,482,483,484,485,489,501,604].includes(A.statusCode)&&this.dialog.terminate()}super.receiveResponse(A)}}class JA extends mA{constructor(A,e,t,s,i,o){super(s,i),this.delegate=o,this._autoRefresh=!1,this._subscriptionEvent=A,this._subscriptionExpires=e,this._subscriptionExpiresInitial=e,this._subscriptionExpiresLastSet=Math.floor(Date.now()/1e3),this._subscriptionRefresh=void 0,this._subscriptionRefreshLastSet=void 0,this._subscriptionState=t,this.logger=s.loggerFactory.getLogger("sip.subscribe-dialog"),this.logger.log(`SUBSCRIBE dialog ${this.id} constructed`)}static initialDialogStateForSubscription(A,e){const t=e.getHeaders("record-route"),s=e.parseHeader("contact");if(!s)throw new Error("Contact undefined.");if(!(s instanceof q))throw new Error("Contact not instance of NameAddrHeader.");const i=s.uri,o=A.cseq,n=A.callId,r=A.fromTag,a=e.fromTag;if(!n)throw new Error("Call id undefined.");if(!r)throw new Error("From tag undefined.");if(!a)throw new Error("To tag undefined.");if(!A.from)throw new Error("From undefined.");if(!A.to)throw new Error("To undefined.");return{id:n+r+a,early:!1,callId:n,localTag:r,remoteTag:a,localSequenceNumber:o,remoteSequenceNumber:undefined,localURI:A.from.uri,remoteURI:A.to.uri,remoteTarget:i,routeSet:t,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(A){this._autoRefresh=!0,this.refreshTimerSet()}get subscriptionEvent(){return this._subscriptionEvent}get subscriptionExpires(){const A=Math.floor(Date.now()/1e3)-this._subscriptionExpiresLastSet,e=this._subscriptionExpires-A;return Math.max(e,0)}set subscriptionExpires(A){if(A<0)throw new Error("Expires must be greater than or equal to zero.");if(this._subscriptionExpires=A,this._subscriptionExpiresLastSet=Math.floor(Date.now()/1e3),this.autoRefresh){const e=this.subscriptionRefresh;(void 0===e||e>=A)&&this.refreshTimerSet()}}get subscriptionExpiresInitial(){return this._subscriptionExpiresInitial}get subscriptionRefresh(){if(void 0===this._subscriptionRefresh||void 0===this._subscriptionRefreshLastSet)return;const A=Math.floor(Date.now()/1e3)-this._subscriptionRefreshLastSet,e=this._subscriptionRefresh-A;return Math.max(e,0)}get subscriptionState(){return this._subscriptionState}receiveRequest(A){if(this.logger.log(`SUBSCRIBE dialog ${this.id} received ${A.method} request`),this.sequenceGuard(A))if(super.receiveRequest(A),A.method===N.NOTIFY)this.onNotify(A);else this.logger.log(`SUBSCRIBE dialog ${this.id} received unimplemented ${A.method} request`),this.core.replyStateless(A,{statusCode:501});else this.logger.log(`SUBSCRIBE dialog ${this.id} rejected out of order ${A.method} request.`)}refresh(){const A="Allow: "+K.toString(),e={};return e.extraHeaders=(e.extraHeaders||[]).slice(),e.extraHeaders.push(A),e.extraHeaders.push("Event: "+this.subscriptionEvent),e.extraHeaders.push("Expires: "+this.subscriptionExpiresInitial),e.extraHeaders.push("Contact: "+this.core.configuration.contact.toString()),this.subscribe(void 0,e)}subscribe(A,e={}){var t;if(this.subscriptionState!==$.Pending&&this.subscriptionState!==$.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 s=new bA(this,A,e);return this.N&&(clearTimeout(this.N),this.N=void 0),(null===(t=e.extraHeaders)||void 0===t?void 0:t.includes("Expires: 0"))||(this.N=setTimeout(()=>this.timerN(),v.TIMER_N)),s}terminate(){this.stateTransition($.Terminated),this.onTerminated()}unsubscribe(){const A="Allow: "+K.toString(),e={};return e.extraHeaders=(e.extraHeaders||[]).slice(),e.extraHeaders.push(A),e.extraHeaders.push("Event: "+this.subscriptionEvent),e.extraHeaders.push("Expires: 0"),e.extraHeaders.push("Contact: "+this.core.configuration.contact.toString()),this.subscribe(void 0,e)}onNotify(A){const e=A.parseHeader("Event").event;if(!e||e!==this.subscriptionEvent)return void this.core.replyStateless(A,{statusCode:489});this.N&&(clearTimeout(this.N),this.N=void 0);const t=A.parseHeader("Subscription-State");if(!t||!t.state)return void this.core.replyStateless(A,{statusCode:489});const s=t.state,i=t.expires?Math.max(t.expires,0):void 0;switch(s){case"pending":this.stateTransition($.Pending,i);break;case"active":this.stateTransition($.Active,i);break;case"terminated":this.stateTransition($.Terminated,i);break;default:this.logger.warn("Unrecognized subscription state.")}const o=new RA(this,A);this.delegate&&this.delegate.onNotify?this.delegate.onNotify(o):o.accept()}onRefresh(A){this.delegate&&this.delegate.onRefresh&&this.delegate.onRefresh(A)}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 A=900*this.subscriptionExpires;this._subscriptionRefresh=Math.floor(A/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())},A)}}stateTransition(A,e){const t=()=>{this.logger.warn(`Invalid subscription state transition from ${this.subscriptionState} to ${A}`)};switch(A){case $.Initial:case $.NotifyWait:return void t();case $.Pending:if(this.subscriptionState!==$.NotifyWait&&this.subscriptionState!==$.Pending)return void t();break;case $.Active:case $.Terminated:if(this.subscriptionState!==$.NotifyWait&&this.subscriptionState!==$.Pending&&this.subscriptionState!==$.Active)return void t();break;default:return void t()}A===$.Pending&&e&&(this.subscriptionExpires=e),A===$.Active&&e&&(this.subscriptionExpires=e),A===$.Terminated&&this.dispose(),this._subscriptionState=A}timerN(){this.logger.warn("Timer N expired for SUBSCRIBE dialog. Timed out waiting for NOTIFY."),this.subscriptionState!==$.Terminated&&(this.stateTransition($.Terminated),this.onTerminated())}}class LA extends EA{constructor(A,e,t){const s=e.getHeader("Event");if(!s)throw new Error("Event undefined");const i=e.getHeader("Expires");if(!i)throw new Error("Expires undefined");super(pA,A,e,t),this.delegate=t,this.subscriberId=e.callId+e.fromTag+s,this.subscriptionExpiresRequested=this.subscriptionExpires=Number(i),this.subscriptionEvent=s,this.subscriptionState=$.NotifyWait,this.waitNotifyStart()}dispose(){super.dispose()}onNotify(A){const e=A.message.parseHeader("Event").event;if(!e||e!==this.subscriptionEvent)return this.logger.warn("Failed to parse event."),void A.reject({statusCode:489});const t=A.message.parseHeader("Subscription-State");if(!t||!t.state)return this.logger.warn("Failed to parse subscription state."),void A.reject({statusCode:489});const s=t.state;switch(s){case"pending":case"active":case"terminated":break;default:return this.logger.warn(`Invalid subscription state ${s}`),void A.reject({statusCode:489})}if("terminated"!==s){if(!A.message.parseHeader("contact"))return this.logger.warn("Failed to parse contact."),void A.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=t.expires?Math.min(this.subscriptionExpires,Math.max(t.expires,0)):this.subscriptionExpires,s){case"pending":this.subscriptionState=$.Pending;break;case"active":this.subscriptionState=$.Active;break;case"terminated":this.subscriptionState=$.Terminated;break;default:throw new Error(`Unrecognized state ${s}.`)}if(this.subscriptionState!==$.Terminated){const e=JA.initialDialogStateForSubscription(this.message,A.message);this.dialog=new JA(this.subscriptionEvent,this.subscriptionExpires,this.subscriptionState,this.core,e)}if(this.delegate&&this.delegate.onNotify){const e=A,t=this.dialog;this.delegate.onNotify({request:e,subscription:t})}else A.accept()}waitNotifyStart(){this.N||(this.core.subscribers.set(this.subscriberId,this),this.N=setTimeout(()=>this.timerN(),v.TIMER_N))}waitNotifyStop(){this.N&&(this.core.subscribers.delete(this.subscriberId),clearTimeout(this.N),this.N=void 0)}receiveResponse(A){if(this.authenticationGuard(A)){if(A.statusCode&&A.statusCode>=200&&A.statusCode<300){const e=A.getHeader("Expires");if(e){const A=Number(e);A>this.subscriptionExpiresRequested&&this.logger.warn("Expires header in a 200-class response to SUBSCRIBE with a higher value than the one in the request"),A<this.subscriptionExpires&&(this.subscriptionExpires=A)}else this.logger.warn("Expires header missing in a 200-class response to SUBSCRIBE");this.dialog&&this.dialog.subscriptionExpires>this.subscriptionExpires&&(this.dialog.subscriptionExpires=this.subscriptionExpires)}A.statusCode&&A.statusCode>=300&&A.statusCode<700&&this.waitNotifyStop(),super.receiveResponse(A)}}timerN(){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 HA extends MA{constructor(A,e,t){super(wA,A,e,t),this.core=A}}const jA=["application/sdp","application/dtmf-relay"];class WA{constructor(A,e={}){this.userAgentClients=new Map,this.userAgentServers=new Map,this.configuration=A,this.delegate=e,this.dialogs=new Map,this.subscribers=new Map,this.logger=A.loggerFactory.getLogger("sip.user-agent-core")}dispose(){this.reset()}reset(){this.dialogs.forEach(A=>A.dispose()),this.dialogs.clear(),this.subscribers.forEach(A=>A.dispose()),this.subscribers.clear(),this.userAgentClients.forEach(A=>A.dispose()),this.userAgentClients.clear(),this.userAgentServers.forEach(A=>A.dispose()),this.userAgentServers.clear()}get loggerFactory(){return this.configuration.loggerFactory}get transport(){const A=this.configuration.transportAccessor();if(!A)throw new Error("Transport undefined.");return A}invite(A,e){return new OA(this,A,e)}message(A,e){return new SA(this,A,e)}publish(A,e){return new xA(this,A,e)}register(A,e){return new NA(this,A,e)}subscribe(A,e){return new LA(this,A,e)}request(A,e){return new EA(pA,this,A,e)}makeOutgoingRequestMessage(A,e,t,s,i,o,n){const r=this.configuration.sipjsId,a=this.configuration.displayName,V=this.configuration.viaForceRport,c=this.configuration.hackViaTcp,h=this.configuration.supportedOptionTags.slice();A===N.REGISTER&&h.push("path","gruu"),A===N.INVITE&&(this.configuration.contact.pubGruu||this.configuration.contact.tempGruu)&&h.push("gruu");const l={callIdPrefix:r,forceRport:V,fromDisplayName:a,hackViaTcp:c,optionTags:h,routeSet:this.configuration.routeSet,userAgentString:this.configuration.userAgentHeaderFieldValue,viaHost:this.configuration.viaHost},g=Object.assign(Object.assign({},l),i);return new R(A,e,t,s,g,o,n)}receiveIncomingRequestFromTransport(A){this.receiveRequestFromTransport(A)}receiveIncomingResponseFromTransport(A){this.receiveResponseFromTransport(A)}replyStateless(A,e){const t=this.configuration.userAgentHeaderFieldValue,s=this.configuration.supportedOptionTagsResponse;e=Object.assign(Object.assign({},e),{userAgent:t,supported:s});const i=hA(A,e);return this.transport.send(i.message).catch(e=>{e instanceof Error&&this.logger.error(e.message),this.logger.error(`Transport error occurred sending stateless reply to ${A.method} request.`)}),i}receiveRequestFromTransport(A){const e=A.viaBranch,t=this.userAgentServers.get(e);A.method===N.ACK&&t&&t.transaction.state===iA.Accepted&&t instanceof vA?this.logger.warn(`Discarding out of dialog ACK after 2xx response sent on transaction ${e}.`):A.method!==N.CANCEL?t?t.transaction.receiveRequest(A):this.receiveRequest(A):t?(this.replyStateless(A,{statusCode:200}),t.transaction instanceof dA&&t.transaction.state===iA.Proceeding&&t instanceof vA&&t.receiveCancel(A)):this.replyStateless(A,{statusCode:481})}receiveRequest(A){if(!K.includes(A.method)){const e="Allow: "+K.toString();return void this.replyStateless(A,{statusCode:405,extraHeaders:[e]})}if(!A.ruri)throw new Error("Request-URI undefined.");if("sip"!==A.ruri.scheme)return void this.replyStateless(A,{statusCode:416});const e=A.ruri,t=A=>!!A&&A.user===e.user;if(!t(this.configuration.aor)&&!(t(this.configuration.contact.uri)||t(this.configuration.contact.pubGruu)||t(this.configuration.contact.tempGruu)))return this.logger.warn("Request-URI does not point to us."),void(A.method!==N.ACK&&this.replyStateless(A,{statusCode:404}));if(A.method!==N.INVITE||A.hasHeader("Contact")){if(!A.toTag){const e=A.viaBranch;if(!this.userAgentServers.has(e)){if(Array.from(this.userAgentServers.values()).some(e=>e.transaction.request.fromTag===A.fromTag&&e.transaction.request.callId===A.callId&&e.transaction.request.cseq===A.cseq))return void this.replyStateless(A,{statusCode:482})}}A.toTag?this.receiveInsideDialogRequest(A):this.receiveOutsideDialogRequest(A)}else this.replyStateless(A,{statusCode:400,reasonPhrase:"Missing Contact Header"})}receiveInsideDialogRequest(A){if(A.method===N.NOTIFY){const e=A.parseHeader("Event");if(!e||!e.event)return void this.replyStateless(A,{statusCode:489});const t=A.callId+A.toTag+e.event,s=this.subscribers.get(t);if(s){const e=new RA(this,A);return void s.onNotify(e)}}const e=A.callId+A.toTag+A.fromTag,t=this.dialogs.get(e);if(t){if(A.method===N.OPTIONS){const e="Allow: "+K.toString(),t="Accept: "+jA.toString();return void this.replyStateless(A,{statusCode:200,extraHeaders:[e,t]})}t.receiveRequest(A)}else A.method!==N.ACK&&this.replyStateless(A,{statusCode:481})}receiveOutsideDialogRequest(A){switch(A.method){case N.ACK:break;case N.BYE:this.replyStateless(A,{statusCode:481});break;case N.CANCEL:throw new Error(`Unexpected out of dialog request method ${A.method}.`);case N.INFO:this.replyStateless(A,{statusCode:405});break;case N.INVITE:{const e=new vA(this,A);this.delegate.onInvite?this.delegate.onInvite(e):e.reject()}break;case N.MESSAGE:{const e=new TA(this,A);this.delegate.onMessage?this.delegate.onMessage(e):e.accept()}break;case N.NOTIFY:{const e=new RA(this,A);this.delegate.onNotify?this.delegate.onNotify(e):e.reject({statusCode:405})}break;case N.OPTIONS:{const e="Allow: "+K.toString(),t="Accept: "+jA.toString();this.replyStateless(A,{statusCode:200,extraHeaders:[e,t]})}break;case N.REFER:{const e=new YA(this,A);this.delegate.onRefer?this.delegate.onRefer(e):e.reject({statusCode:405})}break;case N.REGISTER:{const e=new KA(this,A);this.delegate.onRegister?this.delegate.onRegister(e):e.reject({statusCode:405})}break;case N.SUBSCRIBE:{const e=new HA(this,A);this.delegate.onSubscribe?this.delegate.onSubscribe(e):e.reject({statusCode:480})}break;default:throw new Error(`Unexpected out of dialog request method ${A.method}.`)}}receiveResponseFromTransport(A){if(A.getHeaders("via").length>1)return void this.logger.warn("More than one Via header field present in the response, dropping");const e=A.viaBranch+A.method,t=this.userAgentClients.get(e);t?t.transaction.receiveResponse(A):this.logger.warn(`Discarding unmatched ${A.statusCode} response to ${A.method} ${e}.`)}}class PA{constructor(A,e,t){A.debug("SessionDescriptionHandler.constructor"),this.logger=A,this.mediaStreamFactory=e,this.sessionDescriptionHandlerConfiguration=t,this._localMediaStream=new MediaStream,this._remoteMediaStream=new MediaStream,this._peerConnection=new RTCPeerConnection(null==t?void 0:t.peerConnectionConfiguration),this.initPeerConnectionEventHandlers()}get localMediaStream(){return this._localMediaStream}get remoteMediaStream(){return this._remoteMediaStream}get dataChannel(){return this._dataChannel}get peerConnection(){return this._peerConnection}get peerConnectionDelegate(){return this._peerConnectionDelegate}set peerConnectionDelegate(A){this._peerConnectionDelegate=A}static dispatchAddTrackEvent(A,e){A.dispatchEvent(new MediaStreamTrackEvent("addtrack",{track:e}))}static dispatchRemoveTrackEvent(A,e){A.dispatchEvent(new MediaStreamTrackEvent("removetrack",{track:e}))}close(){this.logger.debug("SessionDescriptionHandler.close"),void 0!==this._peerConnection&&(this._peerConnection.getReceivers().forEach(A=>{A.track&&A.track.stop()}),this._peerConnection.getSenders().forEach(A=>{A.track&&A.track.stop()}),this._dataChannel&&this._dataChannel.close(),this._peerConnection.close(),this._peerConnection=void 0)}enableReceiverTracks(A){const e=this.peerConnection;if(!e)throw new Error("Peer connection closed.");e.getReceivers().forEach(e=>{e.track&&(e.track.enabled=A)})}enableSenderTracks(A){const e=this.peerConnection;if(!e)throw new Error("Peer connection closed.");e.getSenders().forEach(e=>{e.track&&(e.track.enabled=A)})}getDescription(A,e){var t,s;if(this.logger.debug("SessionDescriptionHandler.getDescription"),void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));this.onDataChannel=null==A?void 0:A.onDataChannel;const i=null===(t=null==A?void 0:A.offerOptions)||void 0===t?void 0:t.iceRestart,o=void 0===(null==A?void 0:A.iceGatheringTimeout)?null===(s=this.sessionDescriptionHandlerConfiguration)||void 0===s?void 0:s.iceGatheringTimeout:null==A?void 0:A.iceGatheringTimeout;return this.getLocalMediaStream(A).then(()=>this.updateDirection(A)).then(()=>this.createDataChannel(A)).then(()=>this.createLocalOfferOrAnswer(A)).then(A=>this.applyModifiers(A,e)).then(A=>this.setLocalSessionDescription(A)).then(()=>this.waitForIceGatheringComplete(i,o)).then(()=>this.getLocalSessionDescription()).then(A=>({body:A.sdp,contentType:"application/sdp"})).catch(A=>{throw this.logger.error("SessionDescriptionHandler.getDescription failed - "+A),A})}hasDescription(A){return this.logger.debug("SessionDescriptionHandler.hasDescription"),"application/sdp"===A}iceGatheringComplete(){this.logger.debug("SessionDescriptionHandler.iceGatheringComplete"),void 0!==this.iceGatheringCompleteTimeoutId&&(this.logger.debug("SessionDescriptionHandler.iceGatheringComplete - clearing timeout"),clearTimeout(this.iceGatheringCompleteTimeoutId),this.iceGatheringCompleteTimeoutId=void 0),void 0!==this.iceGatheringCompletePromise&&(this.logger.debug("SessionDescriptionHandler.iceGatheringComplete - resolving promise"),this.iceGatheringCompleteResolve&&this.iceGatheringCompleteResolve(),this.iceGatheringCompletePromise=void 0,this.iceGatheringCompleteResolve=void 0,this.iceGatheringCompleteReject=void 0)}sendDtmf(A,e){if(this.logger.debug("SessionDescriptionHandler.sendDtmf"),void 0===this._peerConnection)return this.logger.error("SessionDescriptionHandler.sendDtmf failed - peer connection closed"),!1;const t=this._peerConnection.getSenders();if(0===t.length)return this.logger.error("SessionDescriptionHandler.sendDtmf failed - no senders"),!1;const s=t[0].dtmf;if(!s)return this.logger.error("SessionDescriptionHandler.sendDtmf failed - no DTMF sender"),!1;const i=null==e?void 0:e.duration,o=null==e?void 0:e.interToneGap;try{s.insertDTMF(A,i,o)}catch(A){return this.logger.error(A.toString()),!1}return this.logger.log("SessionDescriptionHandler.sendDtmf sent via RTP: "+A.toString()),!0}setDescription(A,e,t){if(this.logger.debug("SessionDescriptionHandler.setDescription"),void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));this.onDataChannel=null==e?void 0:e.onDataChannel;const s="have-local-offer"===this._peerConnection.signalingState?"answer":"offer";return this.getLocalMediaStream(e).then(()=>this.applyModifiers({sdp:A,type:s},t)).then(A=>this.setRemoteSessionDescription(A)).catch(A=>{throw this.logger.error("SessionDescriptionHandler.setDescription failed - "+A),A})}applyModifiers(A,e){return this.logger.debug("SessionDescriptionHandler.applyModifiers"),e&&0!==e.length?e.reduce((A,e)=>A.then(e),Promise.resolve(A)).then(A=>{if(this.logger.debug("SessionDescriptionHandler.applyModifiers - modified sdp"),!A.sdp||!A.type)throw new Error("Invalid SDP.");return{sdp:A.sdp,type:A.type}}):Promise.resolve(A)}createDataChannel(A){if(void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));if(!0!==(null==A?void 0:A.dataChannel))return Promise.resolve();if(this._dataChannel)return Promise.resolve();switch(this._peerConnection.signalingState){case"stable":this.logger.debug("SessionDescriptionHandler.createDataChannel - creating data channel");try{return this._dataChannel=this._peerConnection.createDataChannel((null==A?void 0:A.dataChannelLabel)||"",null==A?void 0:A.dataChannelOptions),this.onDataChannel&&this.onDataChannel(this._dataChannel),Promise.resolve()}catch(A){return Promise.reject(A)}case"have-remote-offer":return Promise.resolve();default:return Promise.reject(new Error("Invalid signaling state "+this._peerConnection.signalingState))}}createLocalOfferOrAnswer(A){if(void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));switch(this._peerConnection.signalingState){case"stable":return this.logger.debug("SessionDescriptionHandler.createLocalOfferOrAnswer - creating SDP offer"),this._peerConnection.createOffer(null==A?void 0:A.offerOptions);case"have-remote-offer":return this.logger.debug("SessionDescriptionHandler.createLocalOfferOrAnswer - creating SDP answer"),this._peerConnection.createAnswer(null==A?void 0:A.answerOptions);default:return Promise.reject(new Error("Invalid signaling state "+this._peerConnection.signalingState))}}getLocalMediaStream(A){if(this.logger.debug("SessionDescriptionHandler.getLocalMediaStream"),void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));let e=Object.assign({},null==A?void 0:A.constraints);if(this.localMediaStreamConstraints){if(e.audio=e.audio||this.localMediaStreamConstraints.audio,e.video=e.video||this.localMediaStreamConstraints.video,JSON.stringify(this.localMediaStreamConstraints.audio)===JSON.stringify(e.audio)&&JSON.stringify(this.localMediaStreamConstraints.video)===JSON.stringify(e.video))return Promise.resolve()}else void 0===e.audio&&void 0===e.video&&(e={audio:!0});return this.localMediaStreamConstraints=e,this.mediaStreamFactory(e,this,A).then(A=>this.setLocalMediaStream(A))}setLocalMediaStream(A){if(this.logger.debug("SessionDescriptionHandler.setLocalMediaStream"),!this._peerConnection)throw new Error("Peer connection undefined.");const e=this._peerConnection,t=this._localMediaStream,s=[],i=A=>{const i=A.kind;if("audio"!==i&&"video"!==i)throw new Error(`Unknown new track kind ${i}.`);const o=e.getSenders().find(A=>A.track&&A.track.kind===i);o?s.push(new Promise(A=>{this.logger.debug(`SessionDescriptionHandler.setLocalMediaStream - replacing sender ${i} track`),A()}).then(()=>o.replaceTrack(A).then(()=>{const e=t.getTracks().find(A=>A.kind===i);e&&(e.stop(),t.removeTrack(e),PA.dispatchRemoveTrackEvent(t,e)),t.addTrack(A),PA.dispatchAddTrackEvent(t,A)}).catch(A=>{throw this.logger.error(`SessionDescriptionHandler.setLocalMediaStream - failed to replace sender ${i} track`),A}))):s.push(new Promise(A=>{this.logger.debug(`SessionDescriptionHandler.setLocalMediaStream - adding sender ${i} track`),A()}).then(()=>{try{e.addTrack(A,t)}catch(A){throw this.logger.error(`SessionDescriptionHandler.setLocalMediaStream - failed to add sender ${i} track`),A}t.addTrack(A),PA.dispatchAddTrackEvent(t,A)}))},o=A.getAudioTracks();o.length&&i(o[0]);const n=A.getVideoTracks();return n.length&&i(n[0]),s.reduce((A,e)=>A.then(()=>e),Promise.resolve())}getLocalSessionDescription(){if(this.logger.debug("SessionDescriptionHandler.getLocalSessionDescription"),void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));const A=this._peerConnection.localDescription;return A?Promise.resolve(A):Promise.reject(new Error("Failed to get local session description"))}setLocalSessionDescription(A){return this.logger.debug("SessionDescriptionHandler.setLocalSessionDescription"),void 0===this._peerConnection?Promise.reject(new Error("Peer connection closed.")):this._peerConnection.setLocalDescription(A)}setRemoteSessionDescription(A){if(this.logger.debug("SessionDescriptionHandler.setRemoteSessionDescription"),void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));const e=A.sdp;let t;switch(this._peerConnection.signalingState){case"stable":t="offer";break;case"have-local-offer":t="answer";break;default:return Promise.reject(new Error("Invalid signaling state "+this._peerConnection.signalingState))}return e?this._peerConnection.setRemoteDescription({sdp:e,type:t}):(this.logger.error("SessionDescriptionHandler.setRemoteSessionDescription failed - cannot set null sdp"),Promise.reject(new Error("SDP is undefined")))}setRemoteTrack(A){this.logger.debug("SessionDescriptionHandler.setRemoteTrack");const e=this._remoteMediaStream;e.getTrackById(A.id)?this.logger.debug(`SessionDescriptionHandler.setRemoteTrack - have remote ${A.kind} track`):"audio"===A.kind?(this.logger.debug(`SessionDescriptionHandler.setRemoteTrack - adding remote ${A.kind} track`),e.getAudioTracks().forEach(A=>{A.stop(),e.removeTrack(A),PA.dispatchRemoveTrackEvent(e,A)}),e.addTrack(A),PA.dispatchAddTrackEvent(e,A)):"video"===A.kind&&(this.logger.debug(`SessionDescriptionHandler.setRemoteTrack - adding remote ${A.kind} track`),e.getVideoTracks().forEach(A=>{A.stop(),e.removeTrack(A),PA.dispatchRemoveTrackEvent(e,A)}),e.addTrack(A),PA.dispatchAddTrackEvent(e,A))}updateDirection(A){if(void 0===this._peerConnection)return Promise.reject(new Error("Peer connection closed."));switch(this._peerConnection.signalingState){case"stable":this.logger.debug("SessionDescriptionHandler.updateDirection - setting offer direction");{const e=e=>{switch(e){case"inactive":case"recvonly":return(null==A?void 0:A.hold)?"inactive":"recvonly";case"sendonly":case"sendrecv":return(null==A?void 0:A.hold)?"sendonly":"sendrecv";case"stopped":return"stopped";default:throw new Error("Should never happen")}};this._peerConnection.getTransceivers().forEach(A=>{if(A.direction){const t=e(A.direction);A.direction!==t&&(A.direction=t)}})}break;case"have-remote-offer":this.logger.debug("SessionDescriptionHandler.updateDirection - setting answer direction");{const e=(()=>{const A=this._peerConnection.remoteDescription;if(!A)throw new Error("Failed to read remote offer");const e=/a=sendrecv\r\n|a=sendonly\r\n|a=recvonly\r\n|a=inactive\r\n/.exec(A.sdp);if(e)switch(e[0]){case"a=inactive\r\n":return"inactive";case"a=recvonly\r\n":return"recvonly";case"a=sendonly\r\n":return"sendonly";case"a=sendrecv\r\n":return"sendrecv";default:throw new Error("Should never happen")}return"sendrecv"})(),t=(()=>{switch(e){case"inactive":return"inactive";case"recvonly":return"sendonly";case"sendonly":return(null==A?void 0:A.hold)?"inactive":"recvonly";case"sendrecv":return(null==A?void 0:A.hold)?"sendonly":"sendrecv";default:throw new Error("Should never happen")}})();this._peerConnection.getTransceivers().forEach(A=>{A.direction&&"stopped"!==A.direction&&A.direction!==t&&(A.direction=t)})}break;default:return Promise.reject(new Error("Invalid signaling state "+this._peerConnection.signalingState))}return Promise.resolve()}waitForIceGatheringComplete(A=!1,e=0){return this.logger.debug("SessionDescriptionHandler.waitForIceGatheringToComplete"),void 0===this._peerConnection?Promise.reject("Peer connection closed."):A||"complete"!==this._peerConnection.iceGatheringState?(void 0!==this.iceGatheringCompletePromise&&(this.logger.debug("SessionDescriptionHandler.waitForIceGatheringToComplete - rejecting prior waiting promise"),this.iceGatheringCompleteReject&&this.iceGatheringCompleteReject(new Error("Promise superseded.")),this.iceGatheringCompletePromise=void 0,this.iceGatheringCompleteResolve=void 0,this.iceGatheringCompleteReject=void 0),this.iceGatheringCompletePromise=new Promise((A,t)=>{this.iceGatheringCompleteResolve=A,this.iceGatheringCompleteReject=t,e>0&&(this.logger.debug("SessionDescriptionHandler.waitForIceGatheringToComplete - timeout in "+e),this.iceGatheringCompleteTimeoutId=setTimeout(()=>{this.logger.debug("SessionDescriptionHandler.waitForIceGatheringToComplete - timeout"),this.iceGatheringComplete()},e))}),this.iceGatheringCompletePromise):(this.logger.debug("SessionDescriptionHandler.waitForIceGatheringToComplete - already complete"),Promise.resolve())}initPeerConnectionEventHandlers(){if(this.logger.debug("SessionDescriptionHandler.initPeerConnectionEventHandlers"),!this._peerConnection)throw new Error("Peer connection undefined.");const A=this._peerConnection;A.onconnectionstatechange=e=>{var t;const s=A.connectionState;this.logger.debug(`SessionDescriptionHandler.onconnectionstatechange ${s}`),(null===(t=this._peerConnectionDelegate)||void 0===t?void 0:t.onconnectionstatechange)&&this._peerConnectionDelegate.onconnectionstatechange(e)},A.ondatachannel=A=>{var e;this.logger.debug("SessionDescriptionHandler.ondatachannel"),this._dataChannel=A.channel,this.onDataChannel&&this.onDataChannel(this._dataChannel),(null===(e=this._peerConnectionDelegate)||void 0===e?void 0:e.ondatachannel)&&this._peerConnectionDelegate.ondatachannel(A)},A.onicecandidate=A=>{var e;this.logger.debug("SessionDescriptionHandler.onicecandidate"),(null===(e=this._peerConnectionDelegate)||void 0===e?void 0:e.onicecandidate)&&this._peerConnectionDelegate.onicecandidate(A)},A.onicecandidateerror=A=>{var e;this.logger.debug("SessionDescriptionHandler.onicecandidateerror"),(null===(e=this._peerConnectionDelegate)||void 0===e?void 0:e.onicecandidateerror)&&this._peerConnectionDelegate.onicecandidateerror(A)},A.oniceconnectionstatechange=e=>{var t;const s=A.iceConnectionState;this.logger.debug(`SessionDescriptionHandler.oniceconnectionstatechange ${s}`),(null===(t=this._peerConnectionDelegate)||void 0===t?void 0:t.oniceconnectionstatechange)&&this._peerConnectionDelegate.oniceconnectionstatechange(e)},A.onicegatheringstatechange=e=>{var t;const s=A.iceGatheringState;this.logger.debug(`SessionDescriptionHandler.onicegatheringstatechange ${s}`),"complete"===s&&this.iceGatheringComplete(),(null===(t=this._peerConnectionDelegate)||void 0===t?void 0:t.onicegatheringstatechange)&&this._peerConnectionDelegate.onicegatheringstatechange(e)},A.onnegotiationneeded=A=>{var e;this.logger.debug("SessionDescriptionHandler.onnegotiationneeded"),(null===(e=this._peerConnectionDelegate)||void 0===e?void 0:e.onnegotiationneeded)&&this._peerConnectionDelegate.onnegotiationneeded(A)},A.onsignalingstatechange=e=>{var t;const s=A.signalingState;this.logger.debug(`SessionDescriptionHandler.onsignalingstatechange ${s}`),(null===(t=this._peerConnectionDelegate)||void 0===t?void 0:t.onsignalingstatechange)&&this._peerConnectionDelegate.onsignalingstatechange(e)},A.ontrack=A=>{var e;const t=A.track.kind,s=A.track.enabled?"enabled":"disabled";this.logger.debug(`SessionDescriptionHandler.ontrack ${t} ${s}`),this.setRemoteTrack(A.track),(null===(e=this._peerConnectionDelegate)||void 0===e?void 0:e.ontrack)&&this._peerConnectionDelegate.ontrack(A)}}}function zA(A){return(e,t)=>{void 0===A&&(A=A=>A.audio||A.video?void 0===navigator.mediaDevices?Promise.reject(new Error("Media devices not available in insecure contexts.")):navigator.mediaDevices.getUserMedia.call(navigator.mediaDevices,A):Promise.resolve(new MediaStream));const s={iceGatheringTimeout:void 0!==(null==t?void 0:t.iceGatheringTimeout)?null==t?void 0:t.iceGatheringTimeout:5e3,peerConnectionConfiguration:Object.assign(Object.assign({},{bundlePolicy:"balanced",certificates:void 0,iceCandidatePoolSize:0,iceServers:[{urls:"stun:stun.l.google.com:19302"}],iceTransportPolicy:"all",rtcpMuxPolicy:"require"}),null==t?void 0:t.peerConnectionConfiguration)},i=e.userAgent.getLogger("sip.SessionDescriptionHandler");return new PA(i,A,s)}}class XA{constructor(A,e){if(this._state=AA.Disconnected,this.transitioningState=!1,this._stateEventEmitter=new h,this.logger=A,e){const A=e,t=null==A?void 0:A.wsServers,s=null==A?void 0:A.maxReconnectionAttempts;if(void 0!==t){const A='The transport option "wsServers" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.';this.logger.warn(A)}if(void 0!==s){const A='The transport option "maxReconnectionAttempts" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.';this.logger.warn(A)}t&&!e.server&&("string"==typeof t&&(e.server=t),t instanceof Array&&(e.server=t[0]))}this.configuration=Object.assign(Object.assign({},XA.defaultOptions),e);const t=this.configuration.server,s=E.parse(t,"absoluteURI");if(-1===s)throw this.logger.error(`Invalid WebSocket Server URL "${t}"`),new Error("Invalid WebSocket Server URL");if(!["wss","ws","udp"].includes(s.scheme))throw this.logger.error(`Invalid scheme in WebSocket Server URL "${t}"`),new Error("Invalid scheme in WebSocket Server URL");this._protocol=s.scheme.toUpperCase()}dispose(){return this.disconnect()}get protocol(){return this._protocol}get server(){return this.configuration.server}get state(){return this._state}get stateChange(){return this._stateEventEmitter}get ws(){return this._ws}connect(){return this._connect()}disconnect(){return this._disconnect()}isConnected(){return this.state===AA.Connected}send(A){return this._send(A)}_connect(){switch(this.logger.log(`Connecting ${this.server}`),this.state){case AA.Connecting:if(this.transitioningState)return Promise.reject(this.transitionLoopDetectedError(AA.Connecting));if(!this.connectPromise)throw new Error("Connect promise must be defined.");return this.connectPromise;case AA.Connected:if(this.transitioningState)return Promise.reject(this.transitionLoopDetectedError(AA.Connecting));if(this.connectPromise)throw new Error("Connect promise must not be defined.");return Promise.resolve();case AA.Disconnecting:if(this.connectPromise)throw new Error("Connect promise must not be defined.");try{this.transitionState(AA.Connecting)}catch(A){if(A instanceof r)return Promise.reject(A);throw A}break;case AA.Disconnected:if(this.connectPromise)throw new Error("Connect promise must not be defined.");try{this.transitionState(AA.Connecting)}catch(A){if(A instanceof r)return Promise.reject(A);throw A}break;default:throw new Error("Unknown state")}let A;try{A=new WebSocket(this.server,"sip"),A.binaryType="arraybuffer",A.addEventListener("close",e=>this.onWebSocketClose(e,A)),A.addEventListener("error",e=>this.onWebSocketError(e,A)),A.addEventListener("open",e=>this.onWebSocketOpen(e,A)),A.addEventListener("message",e=>this.onWebSocketMessage(e,A)),this._ws=A}catch(A){return this._ws=void 0,this.logger.error("WebSocket construction failed."),this.logger.error(A.toString()),new Promise((e,t)=>{this.connectResolve=e,this.connectReject=t,this.transitionState(AA.Disconnected,A)})}return this.connectPromise=new Promise((e,t)=>{this.connectResolve=e,this.connectReject=t,this.connectTimeout=setTimeout(()=>{this.logger.warn("Connect timed out. Exceeded time set in configuration.connectionTimeout: "+this.configuration.connectionTimeout+"s."),A.close(1e3)},1e3*this.configuration.connectionTimeout)}),this.connectPromise}_disconnect(){switch(this.logger.log(`Disconnecting ${this.server}`),this.state){case AA.Connecting:if(this.disconnectPromise)throw new Error("Disconnect promise must not be defined.");try{this.transitionState(AA.Disconnecting)}catch(A){if(A instanceof r)return Promise.reject(A);throw A}break;case AA.Connected:if(this.disconnectPromise)throw new Error("Disconnect promise must not be defined.");try{this.transitionState(AA.Disconnecting)}catch(A){if(A instanceof r)return Promise.reject(A);throw A}break;case AA.Disconnecting:if(this.transitioningState)return Promise.reject(this.transitionLoopDetectedError(AA.Disconnecting));if(!this.disconnectPromise)throw new Error("Disconnect promise must be defined.");return this.disconnectPromise;case AA.Disconnected:if(this.transitioningState)return Promise.reject(this.transitionLoopDetectedError(AA.Disconnecting));if(this.disconnectPromise)throw new Error("Disconnect promise must not be defined.");return Promise.resolve();default:throw new Error("Unknown state")}if(!this._ws)throw new Error("WebSocket must be defined.");const A=this._ws;return this.disconnectPromise=new Promise((e,t)=>{this.disconnectResolve=e,this.disconnectReject=t;try{A.close(1e3)}catch(A){throw this.logger.error("WebSocket close failed."),this.logger.error(A.toString()),A}}),this.disconnectPromise}_send(A){if(!0===this.configuration.traceSip&&this.logger.log("Sending WebSocket message:\n\n"+A+"\n"),this._state!==AA.Connected)return Promise.reject(new Error("Not connected."));if(!this._ws)throw new Error("WebSocket undefined.");try{this._ws.send(A)}catch(A){return A instanceof Error?Promise.reject(A):Promise.reject(new Error("WebSocket send failed."))}return Promise.resolve()}onWebSocketClose(A,e){if(e!==this._ws)return;const t=`WebSocket closed ${this.server} (code: ${A.code})`,s=this.disconnectPromise?void 0:new Error(t);s&&this.logger.warn("WebSocket closed unexpectedly"),this.logger.log(t),this._ws=void 0,this.transitionState(AA.Disconnected,s)}onWebSocketError(A,e){e===this._ws&&this.logger.error("WebSocket error occurred.")}onWebSocketMessage(A,e){if(e!==this._ws)return;const t=A.data;let s;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{s=(new TextDecoder).decode(new Uint8Array(t))}catch(A){return this.logger.error(A.toString()),void this.logger.error("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"+s+"\n")}else s=t,!0===this.configuration.traceSip&&this.logger.log("Received WebSocket text message:\n\n"+s+"\n");if(this.state===AA.Connected){if(this.onMessage)try{this.onMessage(s)}catch(A){throw this.logger.error(A.toString()),this.logger.error("Exception thrown by onMessage callback"),A}}else this.logger.warn("Received message while not connected, discarding...")}else this.logger.warn("Received empty message, discarding...")}onWebSocketOpen(A,e){e===this._ws&&this._state===AA.Connecting&&(this.logger.log(`WebSocket opened ${this.server}`),this.transitionState(AA.Connected))}transitionLoopDetectedError(A){let e="A state transition loop has been detected.";return e+=` An attempt to transition from ${this._state} to ${A} before the prior transition completed.`,e+=" Perhaps you are synchronously calling connect() or disconnect() from a callback or state change handler?",this.logger.error(e),new r("Loop detected.")}transitionState(A,e){const t=()=>{throw new Error(`Invalid state transition from ${this._state} to ${A}`)};if(this.transitioningState)throw this.transitionLoopDetectedError(A);switch(this.transitioningState=!0,this._state){case AA.Connecting:A!==AA.Connected&&A!==AA.Disconnecting&&A!==AA.Disconnected&&t();break;case AA.Connected:A!==AA.Disconnecting&&A!==AA.Disconnected&&t();break;case AA.Disconnecting:A!==AA.Connecting&&A!==AA.Disconnected&&t();break;case AA.Disconnected:A!==AA.Connecting&&t();break;default:throw new Error("Unknown state.")}const s=this._state;this._state=A;const i=this.connectResolve,o=this.connectReject;s===AA.Connecting&&(this.connectPromise=void 0,this.connectResolve=void 0,this.connectReject=void 0);const n=this.disconnectResolve,r=this.disconnectReject;if(s===AA.Disconnecting&&(this.disconnectPromise=void 0,this.disconnectResolve=void 0,this.disconnectReject=void 0),this.connectTimeout&&(clearTimeout(this.connectTimeout),this.connectTimeout=void 0),this.logger.log(`Transitioned from ${s} to ${this._state}`),this._stateEventEmitter.emit(this._state),A===AA.Connected&&(this.startSendingKeepAlives(),this.onConnect))try{this.onConnect()}catch(A){throw this.logger.error(A.toString()),this.logger.error("Exception thrown by onConnect callback"),A}if(s===AA.Connected&&(this.stopSendingKeepAlives(),this.onDisconnect))try{e?this.onDisconnect(e):this.onDisconnect()}catch(A){throw this.logger.error(A.toString()),this.logger.error("Exception thrown by onDisconnect callback"),A}if(s===AA.Connecting){if(!i)throw new Error("Connect resolve undefined.");if(!o)throw new Error("Connect reject undefined.");A===AA.Connected?i():o(e||new Error("Connect aborted."))}if(s===AA.Disconnecting){if(!n)throw new Error("Disconnect resolve undefined.");if(!r)throw new Error("Disconnect reject undefined.");A===AA.Disconnected?n():r(e||new Error("Disconnect aborted."))}this.transitioningState=!1}clearKeepAliveTimeout(){this.keepAliveDebounceTimeout&&clearTimeout(this.keepAliveDebounceTimeout),this.keepAliveDebounceTimeout=void 0}sendKeepAlive(){return this.keepAliveDebounceTimeout?Promise.resolve():(this.keepAliveDebounceTimeout=setTimeout(()=>{this.clearKeepAliveTimeout()},1e3*this.configuration.keepAliveDebounce),this.send("\r\n\r\n"))}startSendingKeepAlives(){this.configuration.keepAliveInterval&&!this.keepAliveInterval&&(this.keepAliveInterval=setInterval(()=>{this.sendKeepAlive(),this.startSendingKeepAlives()},(A=>{const e=.8*A;return 1e3*(Math.random()*(A-e)+e)})(this.configuration.keepAliveInterval)))}stopSendingKeepAlives(){this.keepAliveInterval&&clearInterval(this.keepAliveInterval),this.keepAliveDebounceTimeout&&clearTimeout(this.keepAliveDebounceTimeout),this.keepAliveInterval=void 0,this.keepAliveDebounceTimeout=void 0}}XA.defaultOptions={server:"",connectionTimeout:5,keepAliveInterval:0,keepAliveDebounce:10,traceSip:!0};class _A{constructor(A={}){if(this._publishers={},this._registerers={},this._sessions={},this._subscriptions={},this._state=eA.Stopped,this._stateEventEmitter=new h,this.delegate=A.delegate,this.options=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},_A.defaultOptions()),{sipjsId:w(5)}),{uri:new d("sip","anonymous."+w(6),"anonymous.invalid")}),{viaHost:w(12)+".invalid"}),_A.stripUndefinedProperties(A)),this.options.hackIpInContact)if("boolean"==typeof this.options.hackIpInContact&&this.options.hackIpInContact){const A=1,e=254,t=Math.floor(Math.random()*(e-A+1)+A);this.options.viaHost="192.0.2."+t}else this.options.hackIpInContact&&(this.options.viaHost=this.options.hackIpInContact);switch(this.loggerFactory=new cA,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=tA.error;break;case"warn":this.loggerFactory.level=tA.warn;break;case"log":this.loggerFactory.level=tA.log;break;case"debug":this.loggerFactory.level=tA.debug}if(this.options.logConfiguration&&(this.logger.log("Configuration:"),Object.keys(this.options).forEach(A=>{const e=this.options[A];switch(A){case"uri":case"sessionDescriptionHandlerFactory":this.logger.log("· "+A+": "+e);break;case"authorizationPassword":this.logger.log("· "+A+": NOT SHOWN");break;case"transportConstructor":this.logger.log("· "+A+": "+e.name);break;default:this.logger.log("· "+A+": "+JSON.stringify(e))}})),this.options.transportOptions){const e=this.options.transportOptions,t=e.maxReconnectionAttempts,s=e.reconnectionTimeout;if(void 0!==t){const A='The transport option "maxReconnectionAttempts" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.';this.logger.warn(A)}if(void 0!==s){const A='The transport option "reconnectionTimeout" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.';this.logger.warn(A)}void 0===A.reconnectionDelay&&void 0!==s&&(this.options.reconnectionDelay=s),void 0===A.reconnectionAttempts&&void 0!==t&&(this.options.reconnectionAttempts=t)}if(void 0!==A.reconnectionDelay){const A='The user agent option "reconnectionDelay" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.';this.logger.warn(A)}if(void 0!==A.reconnectionAttempts){const A='The user agent option "reconnectionAttempts" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.';this.logger.warn(A)}if(this._transport=new this.options.transportConstructor(this.getLogger("sip.Transport"),this.options.transportOptions),this.initTransportCallbacks(),this._contact=this.initContact(),this._instanceId=this.options.instanceId?this.options.instanceId:_A.newUUID(),-1===E.parse(this._instanceId,"uuid"))throw new Error("Invalid instanceId.");this._userAgentCore=this.initCore()}static makeURI(A){return E.URIParse(A)}static defaultOptions(){return{allowLegacyNotifications:!1,authorizationHa1:"",authorizationPassword:"",authorizationUsername:"",delegate:{},contactName:"",contactParams:{transport:"ws"},displayName:"",forceRport:!1,gracefulShutdown:!0,hackAllowUnregisteredOptionTags:!1,hackIpInContact:!1,hackViaTcp:!1,instanceId:"",instanceIdAlwaysAdded:!1,logBuiltinEnabled:!0,logConfiguration:!0,logConnector:()=>{},logLevel:"log",noAnswerTimeout:60,preloadedRouteSet:[],reconnectionAttempts:0,reconnectionDelay:4,sendInitialProvisionalResponse:!0,sessionDescriptionHandlerFactory:zA(),sessionDescriptionHandlerFactoryOptions:{},sipExtension100rel:j.Unsupported,sipExtensionReplaces:j.Unsupported,sipExtensionExtraSupported:[],sipjsId:"",transportConstructor:XA,transportOptions:{},uri:new d("sip","anonymous","anonymous.invalid"),userAgentString:"SIP.js/0.21.1",viaHost:""}}static newUUID(){const A="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,A=>{const e=Math.floor(16*Math.random());return("x"===A?e:e%4+8).toString(16)});return A}static stripUndefinedProperties(A){return Object.keys(A).reduce((e,t)=>(void 0!==A[t]&&(e[t]=A[t]),e),{})}get configuration(){return this.options}get contact(){return this._contact}get instanceId(){return this._instanceId}get state(){return this._state}get stateChange(){return this._stateEventEmitter}get transport(){return this._transport}get userAgentCore(){return this._userAgentCore}getLogger(A,e){return this.loggerFactory.getLogger(A,e)}getLoggerFactory(){return this.loggerFactory}isConnected(){return this.transport.isConnected()}reconnect(){return this.state===eA.Stopped?Promise.reject(new Error("User agent stopped.")):Promise.resolve().then(()=>this.transport.connect())}start(){return this.state===eA.Started?(this.logger.warn("User agent already started"),Promise.resolve()):(this.logger.log(`Starting ${this.configuration.uri}`),this.transitionState(eA.Started),this.transport.connect())}async stop(){if(this.state===eA.Stopped)return this.logger.warn("User agent already stopped"),Promise.resolve();if(this.logger.log(`Stopping ${this.configuration.uri}`),!this.options.gracefulShutdown)return this.logger.log("Dispose of transport"),this.transport.dispose().catch(A=>{throw this.logger.error(A.message),A}),this.logger.log("Dispose of core"),this.userAgentCore.dispose(),this._publishers={},this._registerers={},this._sessions={},this._subscriptions={},this.transitionState(eA.Stopped),Promise.resolve();const A=Object.assign({},this._publishers),e=Object.assign({},this._registerers),t=Object.assign({},this._sessions),s=Object.assign({},this._subscriptions),i=this.transport,o=this.userAgentCore;this.logger.log("Dispose of registerers");for(const A in e)e[A]&&await e[A].dispose().catch(e=>{throw this.logger.error(e.message),delete this._registerers[A],e});this.logger.log("Dispose of sessions");for(const A in t)t[A]&&await t[A].dispose().catch(e=>{throw this.logger.error(e.message),delete this._sessions[A],e});this.logger.log("Dispose of subscriptions");for(const A in s)s[A]&&await s[A].dispose().catch(e=>{throw this.logger.error(e.message),delete this._subscriptions[A],e});this.logger.log("Dispose of publishers");for(const e in A)A[e]&&await A[e].dispose().catch(A=>{throw this.logger.error(A.message),delete this._publishers[e],A});this.logger.log("Dispose of transport"),await i.dispose().catch(A=>{throw this.logger.error(A.message),A}),this.logger.log("Dispose of core"),o.dispose(),this.transitionState(eA.Stopped)}_makeInviter(A,e){return new X(this,A,e)}attemptReconnection(A=1){const e=this.options.reconnectionAttempts,t=this.options.reconnectionDelay;A>e?this.logger.log("Maximum reconnection attempts reached"):(this.logger.log(`Reconnection attempt ${A} of ${e} - trying`),setTimeout(()=>{this.reconnect().then(()=>{this.logger.log(`Reconnection attempt ${A} of ${e} - succeeded`)}).catch(t=>{this.logger.error(t.message),this.logger.log(`Reconnection attempt ${A} of ${e} - failed`),this.attemptReconnection(++A)})},1===A?0:1e3*t))}initContact(){const A=""!==this.options.contactName?this.options.contactName:w(8),e=this.options.contactParams;return{pubGruu:void 0,tempGruu:void 0,uri:new d("sip",A,this.options.viaHost,void 0,e),toString:(A={})=>{const t=A.anonymous||!1,s=A.outbound||!1,i=A.register||!1;let o="<";return o+=t?this.contact.tempGruu||`sip:anonymous@anonymous.invalid;transport=${e.transport?e.transport:"ws"}`:i?this.contact.uri:this.contact.pubGruu||this.contact.uri,s&&(o+=";ob"),o+=">",this.options.instanceIdAlwaysAdded&&(o+=';+sip.instance="<urn:uuid:'+this._instanceId+'>"'),o}}}initCore(){let A=[];A.push("outbound"),this.options.sipExtension100rel===j.Supported&&A.push("100rel"),this.options.sipExtensionReplaces===j.Supported&&A.push("replaces"),this.options.sipExtensionExtraSupported&&A.push(...this.options.sipExtensionExtraSupported),this.options.hackAllowUnregisteredOptionTags||(A=A.filter(A=>P[A])),A=Array.from(new Set(A));const e=A.slice();(this.contact.pubGruu||this.contact.tempGruu)&&e.push("gruu");const t={aor:this.options.uri,contact:this.contact,displayName:this.options.displayName,loggerFactory:this.loggerFactory,hackViaTcp:this.options.hackViaTcp,routeSet:this.options.preloadedRouteSet,supportedOptionTags:A,supportedOptionTagsResponse:e,sipjsId:this.options.sipjsId,userAgentHeaderFieldValue:this.options.userAgentString,viaForceRport:this.options.forceRport,viaHost:this.options.viaHost,authenticationFactory:()=>{const A=this.options.authorizationUsername?this.options.authorizationUsername:this.options.uri.user,e=this.options.authorizationPassword?this.options.authorizationPassword:void 0,t=this.options.authorizationHa1?this.options.authorizationHa1:void 0;return new aA(this.getLoggerFactory(),t,A,e)},transportAccessor:()=>this.transport},s={onInvite:A=>{var e;const t=new z(this,A);if(A.delegate={onCancel:A=>{t._onCancel(A)},onTransportError:A=>{this.logger.error("A transport error has occurred while handling an incoming INVITE request.")}},A.trying(),this.options.sipExtensionReplaces!==j.Unsupported){const e=A.message.parseHeader("replaces");if(e){const A=e.call_id;if("string"!=typeof A)throw new Error("Type of call id is not string");const s=e.replaces_to_tag;if("string"!=typeof s)throw new Error("Type of to tag is not string");const i=e.replaces_from_tag;if("string"!=typeof i)throw new Error("type of from tag is not string");const o=A+s+i,n=this.userAgentCore.dialogs.get(o);if(!n)return void t.reject({statusCode:481});if(!n.early&&!0===e.early_only)return void t.reject({statusCode:486});const r=this._sessions[A+i]||this._sessions[A+s]||void 0;if(!r)throw new Error("Session does not exist.");t._replacee=r}}if(null===(e=this.delegate)||void 0===e?void 0:e.onInvite)return t.autoSendAnInitialProvisionalResponse?void t.progress().then(()=>{var A;if(void 0===(null===(A=this.delegate)||void 0===A?void 0:A.onInvite))throw new Error("onInvite undefined.");this.delegate.onInvite(t)}):void this.delegate.onInvite(t);t.reject({statusCode:486})},onMessage:A=>{if(this.delegate&&this.delegate.onMessage){const e=new b(A);this.delegate.onMessage(e)}else A.accept()},onNotify:A=>{if(this.delegate&&this.delegate.onNotify){const e=new J(A);this.delegate.onNotify(e)}else this.options.allowLegacyNotifications?A.accept():A.reject({statusCode:481})},onRefer:A=>{this.logger.warn("Received an out of dialog REFER request"),this.delegate&&this.delegate.onReferRequest?this.delegate.onReferRequest(A):A.reject({statusCode:405})},onRegister:A=>{this.logger.warn("Received an out of dialog REGISTER request"),this.delegate&&this.delegate.onRegisterRequest?this.delegate.onRegisterRequest(A):A.reject({statusCode:405})},onSubscribe:A=>{this.logger.warn("Received an out of dialog SUBSCRIBE request"),this.delegate&&this.delegate.onSubscribeRequest?this.delegate.onSubscribeRequest(A):A.reject({statusCode:405})}};return new WA(t,s)}initTransportCallbacks(){this.transport.onConnect=()=>this.onTransportConnect(),this.transport.onDisconnect=A=>this.onTransportDisconnect(A),this.transport.onMessage=A=>this.onTransportMessage(A)}onTransportConnect(){this.state!==eA.Stopped&&this.delegate&&this.delegate.onConnect&&this.delegate.onConnect()}onTransportDisconnect(A){this.state!==eA.Stopped&&(this.delegate&&this.delegate.onDisconnect&&this.delegate.onDisconnect(A),A&&this.options.reconnectionAttempts>0&&this.attemptReconnection())}onTransportMessage(A){const e=sA.parseMessage(A,this.getLogger("sip.Parser"));if(!e)return void this.logger.warn("Failed to parse incoming message. Dropping.");if(this.state===eA.Stopped&&e instanceof T)return void this.logger.warn(`Received ${e.method} request while stopped. Dropping.`);const t=()=>{const A=["from","to","call_id","cseq","via"];for(const t of A)if(!e.hasHeader(t))return this.logger.warn(`Missing mandatory header field : ${t}.`),!1;return!0};if(e instanceof T){if(!t())return void this.logger.warn("Request missing mandatory header field. Dropping.");if(!e.toTag&&e.callId.substr(0,5)===this.options.sipjsId)return void this.userAgentCore.replyStateless(e,{statusCode:482});const A=Q(e.body),s=e.getHeader("content-length");if(s&&A<Number(s))return void this.userAgentCore.replyStateless(e,{statusCode:400})}if(e instanceof y){if(!t())return void this.logger.warn("Response missing mandatory header field. Dropping.");if(e.getHeaders("via").length>1)return void this.logger.warn("More than one Via header field present in the response. Dropping.");if(e.via.host!==this.options.viaHost||void 0!==e.via.port)return void this.logger.warn("Via sent-by in the response does not match UA Via host value. Dropping.");const A=Q(e.body),s=e.getHeader("content-length");if(s&&A<Number(s))return void this.logger.warn("Message body length is lower than the value in Content-Length header field. Dropping.")}if(e instanceof T)this.userAgentCore.receiveIncomingRequestFromTransport(e);else{if(!(e instanceof y))throw new Error("Invalid message type.");this.userAgentCore.receiveIncomingResponseFromTransport(e)}}transitionState(A,e){const t=()=>{throw new Error(`Invalid state transition from ${this._state} to ${A}`)};switch(this._state){case eA.Started:A!==eA.Stopped&&t();break;case eA.Stopped:A!==eA.Started&&t();break;default:throw new Error("Unknown state.")}this.logger.log(`Transitioned from ${this._state} to ${A}`),this._state=A,this._stateEventEmitter.emit(this._state)}}class $A{constructor(A){this.listeners=[],this.keyListeners={},this.data={...A},this.proxy=new Proxy(this.data,{set:(A,e,t)=>(A[e]!==t&&(A[e]=t,this.notify(),this.notifyKey(e,t)),!0)})}getState(){return this.proxy}setState(A,e=!1){let t=!1;for(const s in A)if(Object.prototype.hasOwnProperty.call(A,s)){const i=this.data[s],o=A[s];(e||i!==o)&&(this.data[s]=o,t=!0,this.notifyKey(s,o))}(t||e)&&this.notify()}subscribe(A){return this.listeners.push(A),()=>{this.listeners=this.listeners.filter(e=>e!==A)}}subscribeKey(A,e){return this.keyListeners[A]||(this.keyListeners[A]=[]),this.keyListeners[A].push(e),()=>{this.keyListeners[A]=this.keyListeners[A].filter(A=>A!==e)}}notify(){const A=this.getState();for(const e of this.listeners)e(A)}notifyKey(A,e){const t=this.keyListeners[A];t&&t.forEach(A=>A(e))}}var Ae,ee,te,se,ie,oe,ne;!function(A){A[A.IDLE=1]="IDLE",A[A.BUSY=2]="BUSY",A[A.RINGING=3]="RINGING",A[A.OFFLINE=0]="OFFLINE",A[A.UNREGISTERED=4]="UNREGISTERED"}(Ae||(Ae={})),function(A){A.OUTGOING="outgoing",A.INCOMING="incoming",A.CONSULT="consult",A.MEETING="meeting",A.TRANSFER="transfer",A.PREDICT_OUT_CALL="predict_out_call"}(ee||(ee={})),function(A){A[A.OUT_CALL=100]="OUT_CALL",A[A.AGENT_STATE=101]="AGENT_STATE",A[A.OUT_CALL_INCOMING_CALL=102]="OUT_CALL_INCOMING_CALL",A[A.OUT_CALL_RINGING=103]="OUT_CALL_RINGING",A[A.OUT_CALL_ANSWER=104]="OUT_CALL_ANSWER",A[A.CALL_HOLD=105]="CALL_HOLD",A[A.CALL_UNHOLD=106]="CALL_UNHOLD",A[A.OUT_CALL_END=107]="OUT_CALL_END",A[A.CONSULT_REQUEST=108]="CONSULT_REQUEST",A[A.CONSULT_RINGING=109]="CONSULT_RINGING",A[A.CONSULT_ANSWER=110]="CONSULT_ANSWER",A[A.CONSULT_FAIL=111]="CONSULT_FAIL",A[A.MUTE=112]="MUTE",A[A.UNMUTE=113]="UNMUTE",A[A.CONSULT_CALL_IN=114]="CONSULT_CALL_IN",A[A.CONSULT_CALL_IN_SUCCESS=115]="CONSULT_CALL_IN_SUCCESS",A[A.CONSULT_RETURN_CALL=125]="CONSULT_RETURN_CALL",A[A.CONSULT_RETURN_CALL_SUCCESS=126]="CONSULT_RETURN_CALL_SUCCESS",A[A.CONSULT_TRANSFER=116]="CONSULT_TRANSFER",A[A.CONSULT_TRANSFER_FAILED=118]="CONSULT_TRANSFER_FAILED",A[A.CONSULT_TRANSFER_OFF_HOOK=117]="CONSULT_TRANSFER_OFF_HOOK",A[A.INCOMING_CALL=119]="INCOMING_CALL",A[A.INCOMING_CALL_OFF_HOOK=120]="INCOMING_CALL_OFF_HOOK",A[A.INCOMING_CALL_END=121]="INCOMING_CALL_END",A[A.SATISFACTION_EVALUATION=122]="SATISFACTION_EVALUATION",A[A.CONSULT_THREE_WAY=123]="CONSULT_THREE_WAY",A[A.CONSULT_THREE_WAY_RESULT=124]="CONSULT_THREE_WAY_RESULT",A[A.TRANSFER=127]="TRANSFER",A[A.TRANSFER_FAILED=128]="TRANSFER_FAILED",A[A.TRANSFER_INCOMING_CALL=129]="TRANSFER_INCOMING_CALL",A[A.TRANSFER_OFF_HOOK=130]="TRANSFER_OFF_HOOK",A[A.AGENT_HANGUP=131]="AGENT_HANGUP",A[A.KICK_OFFLINE=132]="KICK_OFFLINE",A[A.CONTINUOUS_NOT_ANSWER=133]="CONTINUOUS_NOT_ANSWER",A[A.PREVIEW_OUT_CALL=134]="PREVIEW_OUT_CALL",A[A.SIGN_OUT=135]="SIGN_OUT",A[A.SIGN_IN_SWITCH_DEVICE=136]="SIGN_IN_SWITCH_DEVICE",A[A.LISTEN_CALL_FAILED=137]="LISTEN_CALL_FAILED",A[A.LISTEN_INCOMING_CALL=138]="LISTEN_INCOMING_CALL",A[A.LISTEN_INCOMING_CALL_OFF_HOOK=139]="LISTEN_INCOMING_CALL_OFF_HOOK",A[A.EAR_SPEECH=140]="EAR_SPEECH",A[A.STOP_EAR_SPEECH=141]="STOP_EAR_SPEECH",A[A.CALL_FORCE_INSERT=142]="CALL_FORCE_INSERT"}(te||(te={})),function(A){A.WEB_RTC_CONNECTING="connecting",A.WEB_RTC_CONNECTED="connected",A.WEB_RTC_DISCONNECTING="disconnecting",A.WEB_RTC_DISCONNECTED="disconnected",A.WEB_RTC_REGISTERED="registered",A.WEB_RTC_UNREGISTERED="unregistered",A.WEB_RTC_TERMINATED="terminated",A.WEB_RTC_REGISTER_FAILED="register_failed",A.WEB_RTC_ANSWER_FAILED="answer_failed",A.WEB_RTC_SEND_DTMF="send_dtmf"}(se||(se={})),function(A){A.CUSTOMER_INFO="customer_info",A.CALL_PROGRESS="call_progress",A.OUT_INCOMING_CALL="out_call_incoming_call",A.PREVIEW_OUT_INCOMING_CALL="preview_out_incoming_call",A.OUT_SUCCESS="out_call_success",A.OUT_FAILED="out_call_failed",A.OUT_RINGING="out_call_ringing",A.OUT_OFF_ANSWER="out_call_answer",A.HOLD_SUCCESS="hold_success",A.HOLD_FAILED="hold_failed",A.UNHOLD_SUCCESS="unhold_success",A.UNHOLD_FAILED="unhold_failed",A.OUT_HANGUP="out_call_hangup",A.CONSULT_RINGING="consult_ringing",A.CONSULT_OFF_HOOK="consult_off_hook",A.CONSULT_FAILED="consult_failed",A.CONSULT_INCOMING="consult_incoming",A.CONSULT_CALL_IN_SUCCESS="consult_call_in_success",A.CONSULT_RETURN_CALL_SUCCESS="consult_return_call_success",A.OTHER_SIDE_CONSULT_HANGUP="other_side_consult_hangup",A.OUR_SIDE_CONSULT_HANGUP="our_side_consult_hangup",A.AGENT_STATE="agent_state",A.MUTE_SUCCESS="mute_success",A.MUTE_FAILED="mute_failed",A.UNMUTE_SUCCESS="unmute_success",A.UNMUTE_FAILED="unmute_failed",A.CONSULT_TRANSFER_SUCCESS="consult_transfer_success",A.CONSULT_TRANSFER_FAILED="consult_transfer_failed",A.CONSULT_TRANSFER_OFF_HOOK="consult_transfer_off_hook",A.INCOMING_CALL="incoming_call",A.PREDICT_INCOMING_CALL="predict_incoming_call",A.INCOMING_CALL_OFF_HOOK="incoming_call_off_hook",A.INCOMING_CALL_END="incoming_call_end",A.SATISFACTION_EVALUATION_SUCCESS="satisfaction_evaluation_success",A.SATISFACTION_EVALUATION_FAILED="satisfaction_evaluation_failed",A.CONSULT_THREE_WAY_SUCCESS="consult_three_way_success",A.CONSULT_THREE_WAY_FAILED="consult_three_way_failed",A.THREE_WAY_OUR_SIDE_HANGUP="three_way_our_side_hangup",A.TRANSFER_FAILED="transfer_failed",A.TRANSFER_PROGRESS="transfer_progress",A.TRANSFER_INCOMING_CALL="transfer_incoming_call",A.TRANSFER_OFF_HOOK="transfer_off_hook",A.TRANSFER_END="transfer_end",A.REJECT="reject",A.LISTEN_CALL_FAILED="listen_call_failed",A.LISTEN_INCOMING_CALL="listen_incoming_call",A.LISTEN_INCOMING_CALL_OFF_HOOK="listen_incoming_call_off_hook",A.LISTEN_HANGUP="listen_hangup",A.EAR_SPEECH_SUCCESS="ear_speech_success",A.EAR_SPEECH_BE_SUCCESS="ear_speech_be_success",A.EAR_SPEECH_FAILED="ear_speech_failed",A.STOP_EAR_SPEECH_SUCCESS="stop_ear_speech_success",A.STOP_EAR_SPEECH_FAILED="stop_ear_speech_failed",A.CALL_FORCE_INSERT_SUCCESS="call_force_insert_success",A.CALL_FORCE_INSERT_SUCCESS_LISTENER="call_force_insert_success_listener",A.CALL_FORCE_INSERT_FAILED="call_force_insert_failed"}(ie||(ie={})),function(A){A.EVENT_ALL="event_all",A.NOTIFICATION_CLICK="notification_click",A.UPDATE_ANSWER_DEVICE="update_answer_device",A.PHONE_BAR_OPERATION="phone_bar_operation",A.AGENT_INIT_STATUS="agent_init_status",A.WEBSITE_DELAY="website_delay",A.SELECT_EXTERNAL_NUMBER="select_external_number",A.FAIL_NOTIFICATION="fail_notification",A.KICK_OFF="kick_off",A.DESTROY="destroy",A.NETWORK_OFFLINE="network_offline",A.NETWORK_ONLINE="network_online",A.SIGN_OUT="sign_out",A.SIGN_IN_SWITCH_DEVICE="sign_in_switch_device"}(oe||(oe={})),function(A){A.RINGING="客户振铃",A.AGENT_RINGING="振铃中",A.CALLING="通话中",A.CONSULTING="正在咨询",A.CONSULT_CALL_IN="咨询来电",A.INCOMING_CALL="客户来电",A.MEETING="会议中",A.TRANSFERRING="转接中",A.TRANSFER_INCOMING_CALL="转接来电",A.HOLDING="保持中",A.MUTING="静音中",A.LISTENING="监听来电"}(ne||(ne={}));const re=function(A){return{all:A=A||new Map,on:function(e,t){var s=A.get(e);s?s.push(t):A.set(e,[t])},off:function(e,t){var s=A.get(e);s&&(t?s.splice(s.indexOf(t)>>>0,1):A.set(e,[]))},emit:function(e,t){var s=A.get(e);s&&s.slice().map(function(A){A(t)}),(s=A.get("*"))&&s.slice().map(function(A){A(e,t)})}}}(),ae={on:(A,e)=>(re.on(A,e),ae),off(A,e){re.off(A,e)},emit(A,e){re.emit(A,e),re.emit(oe.EVENT_ALL,{event:A,data:e})},clearAllListeners(){re.all.clear()}},Ve={agentInfo:{},isRtcReconnecting:!1,sessionId:"",enableBrowserAlert:!1,autoStateTimer:null,autoAnswerTimer:null,logBuiltinEnabled:!1,browserAlertTime:3e3,latency:0,monitoredAgentNo:"",earSpeakAgent:""},ce={isCalling:!1,direction:null,outCallIsAnswer:!1,incomingIsAnswer:!1,transferIsAnswer:!1,isMeeting:!1,isHold:!1,displayText:"",isMuted:!1,consultIsAnswer:!1,actionConfigs:[],answerDevice:1,selectOutNumber:"",customerObject:void 0,isNextState:!0};const he=new class extends $A{updateIsCalling(A){this.setState({isCalling:A})}updateDirection(A){this.setState({direction:A})}updateOutCallIsAnswer(A){this.setState({outCallIsAnswer:A})}updateIsHold(A){if(Ve.stateObject?.state===Ae.UNREGISTERED)return;const e=this.get("actionConfigs");if(A){const A=[...e.filter(A=>"hold"!==A)];A.push("unhold"),this.updateActionConfigs(A)}else{const A=[...e.filter(A=>"unhold"!==A)];A.push("hold"),this.updateActionConfigs(A)}this.getState().isHold=A}updateDisplayText(A){this.setState({displayText:A}),ae.emit(ie.CALL_PROGRESS,A)}updateActionConfigs(A){const{show_satisfaction:e}=Ve.agentInfo||{},t=this.get("answerDevice"),s=A.filter(A=>(0!==e||"satisfaction"!==A)&&(2!==t||"answer"!==A));this.setState({actionConfigs:s}),ae.emit(oe.PHONE_BAR_OPERATION,s)}updateConsultIsAnswer(A){this.setState({consultIsAnswer:A})}updateIsMuted(A){if(Ve.stateObject?.state===Ae.UNREGISTERED)return;const e=this.get("actionConfigs");if(A){const A=[...e.filter(A=>"mute"!==A)];A.push("unmute"),this.updateActionConfigs(A)}else{const A=[...e.filter(A=>"unmute"!==A)];A.push("mute"),this.updateActionConfigs(A)}this.setState({isMuted:A})}updateIncomingIsAnswer(A){this.setState({incomingIsAnswer:A})}updateAnswerDevice(A){this.setState({answerDevice:A}),ae.emit(oe.UPDATE_ANSWER_DEVICE,A)}updateIsMeeting(A){this.setState({isMeeting:A})}updateTransferIsAnswer(A){this.setState({transferIsAnswer:A})}updateSelectOutNumber(A){ae.emit(oe.SELECT_EXTERNAL_NUMBER,A),this.setState({selectOutNumber:A})}updateCustomerInfo(A){const e=this.get("displayText");if(A&&e){const{contact_count:e,customer_name:t,phone:s,city:i,province:o,is_vip:n,in_contact_count:r,trace_id:a,contact_count_month:V,in_contact_count_month:c}=A;ae.emit(ie.CUSTOMER_INFO,{customer_name:t||"未知客户",phone:s,city:i||"未知",province:o||"未知",contact_count:e||0,in_contact_count:r||0,is_vip:n,trace_id:a,contact_count_month:V||0,in_contact_count_month:c||0})}else ae.emit(ie.CUSTOMER_INFO,void 0);this.setState({customerObject:A})}updateIsNextState(A){this.setState({isNextState:A}),A?ae.emit(oe.NETWORK_ONLINE):(Ve.stateObject={state:Ae.OFFLINE,state_name:"离线"},this.updateActionConfigs([]),ae.emit(ie.AGENT_STATE,Ve.stateObject),ae.emit(oe.NETWORK_OFFLINE))}reset(){this.updateIsCalling(ce.isCalling),this.updateDirection(ce.direction),this.updateOutCallIsAnswer(ce.outCallIsAnswer),this.updateIsHold(ce.isHold),this.updateDisplayText(ce.displayText),this.updateActionConfigs(ce.actionConfigs),this.updateConsultIsAnswer(ce.consultIsAnswer),this.updateIsMuted(ce.isMuted),this.updateIncomingIsAnswer(ce.incomingIsAnswer),this.updateIsMeeting(ce.isMeeting),this.updateTransferIsAnswer(ce.transferIsAnswer),this.updateCustomerInfo(void 0)}getCallInfo(){return this.getState()}get(A){return this.getState()[A]}}(ce);const le=new class extends $A{updateRttObject(A){this.setState({rttObject:A}),ae.emit(oe.WEBSITE_DELAY,A)}}({rttObject:{rtt:null,jitter:null,packetsLost:null,packetsReceived:null,packetsSent:null,sendBitrate:null,recvBitrate:null,codec:null}});class ge{constructor(A,e){this.config=A,this.eventCallback=e,this.userAgent=null,this.registerer=null,this.activeSession=null,this.callTimeoutTimer=null,this.incomingInvitation=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimer=null,this.isOffline=!1,this.isManuallyStopped=!1,this.registerIntervalTimer=null,this.registerInterval=6e4,this.handleNetworkInfoChange=A=>{if(A.rttObject?.rtt){0===(A.rttObject?.rtt||0)?this.isOffline||(this.isOffline=!0,this.handleOffline()):this.isOffline&&(this.isOffline=!1,this.handleOnline())}},this.handleOffline=()=>{console.warn("[SIPClient] 网络断开,准备销毁 SIP 客户端",(new Date).toLocaleString()),this.destroy()},this.handleOnline=()=>{console.warn("[SIPClient] 网络恢复,准备重新启动 SIP 客户端",(new Date).toLocaleString()),this.reconnect()},le.subscribe(this.handleNetworkInfoChange)}async start(){const A=_A.makeURI(`sip:${this.config.user}@${this.config.server}`);if(!A)throw new Error("无效的SIP配置");const e={uri:A,authorizationUsername:this.config.user,authorizationPassword:this.config.password,transportOptions:{server:this.config.webSocket,connectionTimeout:30,keepAliveInterval:20},contactName:this.config.user,contactParams:{transport:"wss"},userAgentString:"SwiftSIP/1.1.19",sessionDescriptionHandlerFactoryOptions:{alwaysAcquireMediaFirst:!0,peerConnectionConfiguration:{iceServers:[{urls:"stun:stun.l.google.com:19302"}]},iceGatheringTimeout:800},logBuiltinEnabled:Ve.logBuiltinEnabled};this.userAgent=new _A(e),this.setupEventListeners(),await this.userAgent.start(),await this.register()}setupEventListeners(){this.userAgent&&(this.userAgent.transport.stateChange.addListener(A=>{let e;switch(A){case AA.Connecting:e=se.WEB_RTC_CONNECTING;break;case AA.Connected:e=se.WEB_RTC_CONNECTED,this.reconnectAttempts=0,Ve.isRtcReconnecting=!1,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null);break;case AA.Disconnecting:e=se.WEB_RTC_DISCONNECTING;break;case AA.Disconnected:{if(this.isManuallyStopped)return void console.warn("[SIP] 手动断开,不触发重连");e=se.WEB_RTC_DISCONNECTED;const A=he.get("answerDevice");if(!Ve.isRtcReconnecting&&this.reconnectAttempts<this.maxReconnectAttempts&&1===A){this.reconnectAttempts++;const A=1e3*this.reconnectAttempts;console.warn(`SIP WebSocket 断开,第 ${this.reconnectAttempts} 次尝试重连,${A}ms 后重试...`),this.reconnectTimer=setTimeout(()=>{this.reconnect()},A)}else this.reconnectAttempts>=this.maxReconnectAttempts&&console.error("SIP 重连失败:已达到最大重试次数");break}default:e="unknown"}this.eventCallback?.({type:e})}),this.userAgent.delegate={onInvite:A=>{this.handleIncomingCall(A)}})}async refreshRegister(){if(this.registerer)try{await this.registerer.register(),(new Date).toLocaleTimeString()}catch(A){console.error("[SIPClient] REGISTER刷新失败",A)}}async register(){if(this.userAgent){this.registerer=new oA(this.userAgent),this.registerer?.stateChange.addListener(A=>{let e;switch(A){case _.Initial:e="initial";break;case _.Registered:e=se.WEB_RTC_REGISTERED;break;case _.Unregistered:e=se.WEB_RTC_UNREGISTERED;break;case _.Terminated:e=se.WEB_RTC_TERMINATED;break;default:e="unknown"}this.eventCallback?.({type:e})});try{await this.registerer.register(),this.registerIntervalTimer||(this.registerIntervalTimer=setInterval(()=>{this.refreshRegister()},this.registerInterval))}catch(A){this.eventCallback?.({type:se.WEB_RTC_REGISTER_FAILED,data:A})}}}attachRemoteAudio(A){const e=A.sessionDescriptionHandler;if(e){const A=e.peerConnection;if(!A)return;const t=new MediaStream;A.getReceivers().forEach(A=>{A.track&&"audio"===A.track.kind&&t.addTrack(A.track)});let s=document.getElementById("sip-remote-audio");s||(s=document.createElement("audio"),s.id="sip-remote-audio",s.autoplay=!0,s.style.display="none",document.body.appendChild(s)),s.srcObject=t,s.play().catch(A=>{console.error("音频播放失败,需要用户交互触发",A)})}}handleSessionState(A,e,t){A.stateChange.addListener(e=>{switch(e){case H.Established:clearTimeout(this.callTimeoutTimer),this.activeSession=A,this.attachRemoteAudio(A);break;case H.Terminating:break;case H.Terminated:this.activeSession=null,clearTimeout(this.callTimeoutTimer);case H.Establishing:}})}handleIncomingCall(A){this.incomingInvitation=A,this.handleSessionState(A,!1);he.get("direction")===ee.OUTGOING&&this.answerCall()}async answerCall(){if(!this.incomingInvitation)throw new Error("无来电可接听");Ve.autoAnswerTimer&&(clearTimeout(Ve.autoAnswerTimer),Ve.autoAnswerTimer=null);try{await this.incomingInvitation.accept(),this.activeSession=this.incomingInvitation,this.incomingInvitation=null}catch(A){this.eventCallback?.({type:se.WEB_RTC_ANSWER_FAILED,data:{detail:A}})}}async rejectInCall(){if(this.incomingInvitation)try{await this.incomingInvitation.reject(),this.incomingInvitation=null,he.updateDirection(null),he.updateIsCalling(!1),clearTimeout(this.callTimeoutTimer)}catch(A){this.eventCallback?.({type:"error",data:{message:"拒接失败",detail:A}})}}sendDTMF(A){if(!this.activeSession)throw new Error("当前没有活跃的通话");const e=this.activeSession.sessionDescriptionHandler;e&&"function"==typeof e.sendDtmf?(e.sendDtmf(A),this.eventCallback?.({type:se.WEB_RTC_SEND_DTMF,data:{tone:A}})):console.warn("DTMF发送不支持或未初始化")}async hangup(){if(this.activeSession,this.activeSession){clearTimeout(this.callTimeoutTimer);const A=this.activeSession;if(!A)return;const e=A.state;try{e===H.Established?await A.bye():e===H.Establishing&&(A instanceof X?await A.cancel():A instanceof z&&await A.reject()),clearTimeout(this.callTimeoutTimer)}catch(A){console.error("挂断失败",A)}finally{this.activeSession=null}}}async rejectOutCall(){this.activeSession instanceof z&&(await this.activeSession.reject(),this.activeSession=null)}async destroy(){if(this.isManuallyStopped=!0,clearTimeout(this.callTimeoutTimer),clearInterval(this.registerIntervalTimer),this.activeSession&&await this.hangup(),this.registerIntervalTimer&&(clearInterval(this.registerIntervalTimer),this.registerIntervalTimer=null),this.registerer){try{await this.registerer.unregister()}catch(A){console.warn("注销失败",A)}this.registerer=null}this.userAgent&&(await this.userAgent.stop(),this.userAgent=null)}async reconnect(){if(!Ve.isRtcReconnecting){Ve.isRtcReconnecting=!0;try{await this.destroy(),await this.start(),this.isOffline=!1}catch(A){console.error("重连失败",A)}finally{Ve.isRtcReconnecting=!1}}}async getNetworkStats(){if(this.activeSession){const A=this.activeSession.sessionDescriptionHandler?.peerConnection;if(!A)return null;const e=await A.getStats(),t={};return e.forEach(A=>{"candidate-pair"===A.type&&"succeeded"===A.state&&null!=A.currentRoundTripTime&&(t.rtt=+(1e3*A.currentRoundTripTime).toFixed(2)),"inbound-rtp"===A.type&&"audio"===A.kind&&(t.jitter=+(1e3*A.jitter).toFixed(2),t.packetsLost=A.packetsLost,t.packetsReceived=A.packetsReceived,A.bytesReceived&&A.timestamp&&(t.recvBitrate=+(A.bytesReceived/1024).toFixed(2))),"outbound-rtp"===A.type&&"audio"===A.kind&&(t.packetsSent=A.packetsSent,A.bytesSent&&A.timestamp&&(t.sendBitrate=+(A.bytesSent/1024).toFixed(2))),"codec"===A.type&&A.mimeType&&(t.codec=A.mimeType)}),{...t,rtt:t?.rtt||40}}return{rtt:Ve.latency||1}}}
|
|
2
2
|
/**
|
|
3
3
|
* @license
|
|
4
4
|
* Copyright 2019 Google LLC
|
|
@@ -8,24 +8,24 @@ import A from"crypto";import e from"buffer";class t extends Error{constructor(A)
|
|
|
8
8
|
* @license
|
|
9
9
|
* Copyright 2017 Google LLC
|
|
10
10
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
11
|
-
*/Symbol.metadata??=Symbol("metadata"),Se.litPropertyMetadata??=new WeakMap;let Fe=class extends HTMLElement{static addInitializer(A){this._$Ei(),(this.l??=[]).push(A)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(A,e=Ge){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(A)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(A,e),!e.noAccessor){const t=Symbol(),s=this.getPropertyDescriptor(A,t,e);void 0!==s&&we(this.prototype,A,s)}}static getPropertyDescriptor(A,e,t){const{get:s,set:i}=Me(this.prototype,A)??{get(){return this[e]},set(A){this[e]=A}};return{get:s,set(e){const
|
|
11
|
+
*/Symbol.metadata??=Symbol("metadata"),Se.litPropertyMetadata??=new WeakMap;let Fe=class extends HTMLElement{static addInitializer(A){this._$Ei(),(this.l??=[]).push(A)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(A,e=Ge){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(A)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(A,e),!e.noAccessor){const t=Symbol(),s=this.getPropertyDescriptor(A,t,e);void 0!==s&&we(this.prototype,A,s)}}static getPropertyDescriptor(A,e,t){const{get:s,set:i}=Me(this.prototype,A)??{get(){return this[e]},set(A){this[e]=A}};return{get:s,set(e){const o=s?.call(this);i?.call(this,e),this.requestUpdate(A,o,t)},configurable:!0,enumerable:!0}}static getPropertyOptions(A){return this.elementProperties.get(A)??Ge}static _$Ei(){if(this.hasOwnProperty(De("elementProperties")))return;const A=Qe(this);A.finalize(),void 0!==A.l&&(this.l=[...A.l]),this.elementProperties=new Map(A.elementProperties)}static finalize(){if(this.hasOwnProperty(De("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(De("properties"))){const A=this.properties,e=[...fe(A),...Be(A)];for(const t of e)this.createProperty(t,A[t])}const A=this[Symbol.metadata];if(null!==A){const e=litPropertyMetadata.get(A);if(void 0!==e)for(const[A,t]of e)this.elementProperties.set(A,t)}this._$Eh=new Map;for(const[A,e]of this.elementProperties){const t=this._$Eu(A,e);void 0!==t&&this._$Eh.set(t,A)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(A){const e=[];if(Array.isArray(A)){const t=new Set(A.flat(1/0).reverse());for(const A of t)e.unshift(Ee(A))}else void 0!==A&&e.push(Ee(A));return e}static _$Eu(A,e){const t=e.attribute;return!1===t?void 0:"string"==typeof t?t:"string"==typeof A?A.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(A=>this.enableUpdating=A),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(A=>A(this))}addController(A){(this._$EO??=new Set).add(A),void 0!==this.renderRoot&&this.isConnected&&A.hostConnected?.()}removeController(A){this._$EO?.delete(A)}_$E_(){const A=new Map,e=this.constructor.elementProperties;for(const t of e.keys())this.hasOwnProperty(t)&&(A.set(t,this[t]),delete this[t]);A.size>0&&(this._$Ep=A)}createRenderRoot(){const A=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((A,e)=>{if(de)A.adoptedStyleSheets=e.map(A=>A instanceof CSSStyleSheet?A:A.styleSheet);else for(const t of e){const e=document.createElement("style"),s=qe.litNonce;void 0!==s&&e.setAttribute("nonce",s),e.textContent=t.cssText,A.appendChild(e)}})(A,this.constructor.elementStyles),A}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(A=>A.hostConnected?.())}enableUpdating(A){}disconnectedCallback(){this._$EO?.forEach(A=>A.hostDisconnected?.())}attributeChangedCallback(A,e,t){this._$AK(A,t)}_$ET(A,e){const t=this.constructor.elementProperties.get(A),s=this.constructor._$Eu(A,t);if(void 0!==s&&!0===t.reflect){const i=(void 0!==t.converter?.toAttribute?t.converter:Ue).toAttribute(e,t.type);this._$Em=A,null==i?this.removeAttribute(s):this.setAttribute(s,i),this._$Em=null}}_$AK(A,e){const t=this.constructor,s=t._$Eh.get(A);if(void 0!==s&&this._$Em!==s){const A=t.getPropertyOptions(s),i="function"==typeof A.converter?{fromAttribute:A.converter}:void 0!==A.converter?.fromAttribute?A.converter:Ue;this._$Em=s;const o=i.fromAttribute(e,A.type);this[s]=o??this._$Ej?.get(s)??o,this._$Em=null}}requestUpdate(A,e,t){if(void 0!==A){const s=this.constructor,i=this[A];if(t??=s.getPropertyOptions(A),!((t.hasChanged??ke)(i,e)||t.useDefault&&t.reflect&&i===this._$Ej?.get(A)&&!this.hasAttribute(s._$Eu(A,t))))return;this.C(A,e,t)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(A,e,{useDefault:t,reflect:s,wrapped:i},o){t&&!(this._$Ej??=new Map).has(A)&&(this._$Ej.set(A,o??e??this[A]),!0!==i||void 0!==o)||(this._$AL.has(A)||(this.hasUpdated||t||(e=void 0),this._$AL.set(A,e)),!0===s&&this._$Em!==A&&(this._$Eq??=new Set).add(A))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(A){Promise.reject(A)}const A=this.scheduleUpdate();return null!=A&&await A,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[A,e]of this._$Ep)this[A]=e;this._$Ep=void 0}const A=this.constructor.elementProperties;if(A.size>0)for(const[e,t]of A){const{wrapped:A}=t,s=this[e];!0!==A||this._$AL.has(e)||void 0===s||this.C(e,void 0,t,s)}}let A=!1;const e=this._$AL;try{A=this.shouldUpdate(e),A?(this.willUpdate(e),this._$EO?.forEach(A=>A.hostUpdate?.()),this.update(e)):this._$EM()}catch(e){throw A=!1,this._$EM(),e}A&&this._$AE(e)}willUpdate(A){}_$AE(A){this._$EO?.forEach(A=>A.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(A)),this.updated(A)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(A){return!0}update(A){this._$Eq&&=this._$Eq.forEach(A=>this._$ET(A,this[A])),this._$EM()}updated(A){}firstUpdated(A){}};Fe.elementStyles=[],Fe.shadowRootOptions={mode:"open"},Fe[De("elementProperties")]=new Map,Fe[De("finalized")]=new Map,Re?.({ReactiveElement:Fe}),(Se.reactiveElementVersions??=[]).push("2.1.1");
|
|
12
12
|
/**
|
|
13
13
|
* @license
|
|
14
14
|
* Copyright 2017 Google LLC
|
|
15
15
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
16
16
|
*/
|
|
17
|
-
const Ye=globalThis,Ze=Ye.trustedTypes,Oe=Ze?Ze.createPolicy("lit-html",{createHTML:A=>A}):void 0,ve="$lit$",xe=`lit$${Math.random().toFixed(9).slice(2)}$`,Ne="?"+xe,Ke=`<${Ne}>`,be=document,Je=()=>be.createComment(""),Le=A=>null===A||"object"!=typeof A&&"function"!=typeof A,He=Array.isArray,je="[ \t\n\f\r]",We=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Pe=/-->/g,ze=/>/g,Xe=RegExp(`>|${je}(?:([^\\s"'>=/]+)(${je}*=${je}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),_e=/'/g,$e=/"/g,At=/^(?:script|style|textarea|title)$/i,et=(A=>(e,...t)=>({_$litType$:A,strings:e,values:t}))(1),tt=Symbol.for("lit-noChange"),st=Symbol.for("lit-nothing"),it=new WeakMap,
|
|
17
|
+
const Ye=globalThis,Ze=Ye.trustedTypes,Oe=Ze?Ze.createPolicy("lit-html",{createHTML:A=>A}):void 0,ve="$lit$",xe=`lit$${Math.random().toFixed(9).slice(2)}$`,Ne="?"+xe,Ke=`<${Ne}>`,be=document,Je=()=>be.createComment(""),Le=A=>null===A||"object"!=typeof A&&"function"!=typeof A,He=Array.isArray,je="[ \t\n\f\r]",We=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Pe=/-->/g,ze=/>/g,Xe=RegExp(`>|${je}(?:([^\\s"'>=/]+)(${je}*=${je}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),_e=/'/g,$e=/"/g,At=/^(?:script|style|textarea|title)$/i,et=(A=>(e,...t)=>({_$litType$:A,strings:e,values:t}))(1),tt=Symbol.for("lit-noChange"),st=Symbol.for("lit-nothing"),it=new WeakMap,ot=be.createTreeWalker(be,129);function nt(A,e){if(!He(A)||!A.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==Oe?Oe.createHTML(e):e}const rt=(A,e)=>{const t=A.length-1,s=[];let i,o=2===e?"<svg>":3===e?"<math>":"",n=We;for(let e=0;e<t;e++){const t=A[e];let r,a,V=-1,c=0;for(;c<t.length&&(n.lastIndex=c,a=n.exec(t),null!==a);)c=n.lastIndex,n===We?"!--"===a[1]?n=Pe:void 0!==a[1]?n=ze:void 0!==a[2]?(At.test(a[2])&&(i=RegExp("</"+a[2],"g")),n=Xe):void 0!==a[3]&&(n=Xe):n===Xe?">"===a[0]?(n=i??We,V=-1):void 0===a[1]?V=-2:(V=n.lastIndex-a[2].length,r=a[1],n=void 0===a[3]?Xe:'"'===a[3]?$e:_e):n===$e||n===_e?n=Xe:n===Pe||n===ze?n=We:(n=Xe,i=void 0);const h=n===Xe&&A[e+1].startsWith("/>")?" ":"";o+=n===We?t+Ke:V>=0?(s.push(r),t.slice(0,V)+ve+t.slice(V)+xe+h):t+xe+(-2===V?e:h)}return[nt(A,o+(A[t]||"<?>")+(2===e?"</svg>":3===e?"</math>":"")),s]};class at{constructor({strings:A,_$litType$:e},t){let s;this.parts=[];let i=0,o=0;const n=A.length-1,r=this.parts,[a,V]=rt(A,e);if(this.el=at.createElement(a,t),ot.currentNode=this.el.content,2===e||3===e){const A=this.el.content.firstChild;A.replaceWith(...A.childNodes)}for(;null!==(s=ot.nextNode())&&r.length<n;){if(1===s.nodeType){if(s.hasAttributes())for(const A of s.getAttributeNames())if(A.endsWith(ve)){const e=V[o++],t=s.getAttribute(A).split(xe),n=/([.?@])?(.*)/.exec(e);r.push({type:1,index:i,name:n[2],strings:t,ctor:"."===n[1]?gt:"?"===n[1]?qt:"@"===n[1]?dt:lt}),s.removeAttribute(A)}else A.startsWith(xe)&&(r.push({type:6,index:i}),s.removeAttribute(A));if(At.test(s.tagName)){const A=s.textContent.split(xe),e=A.length-1;if(e>0){s.textContent=Ze?Ze.emptyScript:"";for(let t=0;t<e;t++)s.append(A[t],Je()),ot.nextNode(),r.push({type:2,index:++i});s.append(A[e],Je())}}}else if(8===s.nodeType)if(s.data===Ne)r.push({type:2,index:i});else{let A=-1;for(;-1!==(A=s.data.indexOf(xe,A+1));)r.push({type:7,index:i}),A+=xe.length-1}i++}}static createElement(A,e){const t=be.createElement("template");return t.innerHTML=A,t}}function Vt(A,e,t=A,s){if(e===tt)return e;let i=void 0!==s?t._$Co?.[s]:t._$Cl;const o=Le(e)?void 0:e._$litDirective$;return i?.constructor!==o&&(i?._$AO?.(!1),void 0===o?i=void 0:(i=new o(A),i._$AT(A,t,s)),void 0!==s?(t._$Co??=[])[s]=i:t._$Cl=i),void 0!==i&&(e=Vt(A,i._$AS(A,e.values),i,s)),e}class ct{constructor(A,e){this._$AV=[],this._$AN=void 0,this._$AD=A,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(A){const{el:{content:e},parts:t}=this._$AD,s=(A?.creationScope??be).importNode(e,!0);ot.currentNode=s;let i=ot.nextNode(),o=0,n=0,r=t[0];for(;void 0!==r;){if(o===r.index){let e;2===r.type?e=new ht(i,i.nextSibling,this,A):1===r.type?e=new r.ctor(i,r.name,r.strings,this,A):6===r.type&&(e=new ut(i,this,A)),this._$AV.push(e),r=t[++n]}o!==r?.index&&(i=ot.nextNode(),o++)}return ot.currentNode=be,s}p(A){let e=0;for(const t of this._$AV)void 0!==t&&(void 0!==t.strings?(t._$AI(A,t,e),e+=t.strings.length-2):t._$AI(A[e])),e++}}class ht{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(A,e,t,s){this.type=2,this._$AH=st,this._$AN=void 0,this._$AA=A,this._$AB=e,this._$AM=t,this.options=s,this._$Cv=s?.isConnected??!0}get parentNode(){let A=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===A?.nodeType&&(A=e.parentNode),A}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(A,e=this){A=Vt(this,A,e),Le(A)?A===st||null==A||""===A?(this._$AH!==st&&this._$AR(),this._$AH=st):A!==this._$AH&&A!==tt&&this._(A):void 0!==A._$litType$?this.$(A):void 0!==A.nodeType?this.T(A):(A=>He(A)||"function"==typeof A?.[Symbol.iterator])(A)?this.k(A):this._(A)}O(A){return this._$AA.parentNode.insertBefore(A,this._$AB)}T(A){this._$AH!==A&&(this._$AR(),this._$AH=this.O(A))}_(A){this._$AH!==st&&Le(this._$AH)?this._$AA.nextSibling.data=A:this.T(be.createTextNode(A)),this._$AH=A}$(A){const{values:e,_$litType$:t}=A,s="number"==typeof t?this._$AC(A):(void 0===t.el&&(t.el=at.createElement(nt(t.h,t.h[0]),this.options)),t);if(this._$AH?._$AD===s)this._$AH.p(e);else{const A=new ct(s,this),t=A.u(this.options);A.p(e),this.T(t),this._$AH=A}}_$AC(A){let e=it.get(A.strings);return void 0===e&&it.set(A.strings,e=new at(A)),e}k(A){He(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let t,s=0;for(const i of A)s===e.length?e.push(t=new ht(this.O(Je()),this.O(Je()),this,this.options)):t=e[s],t._$AI(i),s++;s<e.length&&(this._$AR(t&&t._$AB.nextSibling,s),e.length=s)}_$AR(A=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);A!==this._$AB;){const e=A.nextSibling;A.remove(),A=e}}setConnected(A){void 0===this._$AM&&(this._$Cv=A,this._$AP?.(A))}}class lt{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(A,e,t,s,i){this.type=1,this._$AH=st,this._$AN=void 0,this.element=A,this.name=e,this._$AM=s,this.options=i,t.length>2||""!==t[0]||""!==t[1]?(this._$AH=Array(t.length-1).fill(new String),this.strings=t):this._$AH=st}_$AI(A,e=this,t,s){const i=this.strings;let o=!1;if(void 0===i)A=Vt(this,A,e,0),o=!Le(A)||A!==this._$AH&&A!==tt,o&&(this._$AH=A);else{const s=A;let n,r;for(A=i[0],n=0;n<i.length-1;n++)r=Vt(this,s[t+n],e,n),r===tt&&(r=this._$AH[n]),o||=!Le(r)||r!==this._$AH[n],r===st?A=st:A!==st&&(A+=(r??"")+i[n+1]),this._$AH[n]=r}o&&!s&&this.j(A)}j(A){A===st?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,A??"")}}class gt extends lt{constructor(){super(...arguments),this.type=3}j(A){this.element[this.name]=A===st?void 0:A}}class qt extends lt{constructor(){super(...arguments),this.type=4}j(A){this.element.toggleAttribute(this.name,!!A&&A!==st)}}class dt extends lt{constructor(A,e,t,s,i){super(A,e,t,s,i),this.type=5}_$AI(A,e=this){if((A=Vt(this,A,e,0)??st)===tt)return;const t=this._$AH,s=A===st&&t!==st||A.capture!==t.capture||A.once!==t.once||A.passive!==t.passive,i=A!==st&&(t===st||s);s&&this.element.removeEventListener(this.name,this,t),i&&this.element.addEventListener(this.name,this,A),this._$AH=A}handleEvent(A){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,A):this._$AH.handleEvent(A)}}class ut{constructor(A,e,t){this.element=A,this.type=6,this._$AN=void 0,this._$AM=e,this.options=t}get _$AU(){return this._$AM._$AU}_$AI(A){Vt(this,A)}}const pt=Ye.litHtmlPolyfillSupport;pt?.(at,ht),(Ye.litHtmlVersions??=[]).push("3.3.1");const mt=(A,e,t)=>{const s=t?.renderBefore??e;let i=s._$litPart$;if(void 0===i){const A=t?.renderBefore??null;s._$litPart$=i=new ht(e.insertBefore(Je(),A),A,void 0,t??{})}return i._$AI(A),i
|
|
18
18
|
/**
|
|
19
19
|
* @license
|
|
20
20
|
* Copyright 2017 Google LLC
|
|
21
21
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
22
|
-
*/},Ct=globalThis;class Et extends Fe{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const A=super.createRenderRoot();return this.renderOptions.renderBefore??=A.firstChild,A}update(A){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(A),this._$Do=mt(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return tt}}Et._$litElement$=!0,Et.finalized=!0,Ct.litElementHydrateSupport?.({LitElement:Et});const It=Ct.litElementPolyfillSupport;It?.({LitElement:Et}),(Ct.litElementVersions??=[]).push("4.2.1");const wt={statusColor:{[Ae.IDLE]:"#1D92E9",[Ae.BUSY]:"#F5212D",[Ae.OFFLINE]:"#8c8c8c",[Ae.RINGING]:"#e9b91d"}},Mt=[],ft=["call_number"],Bt=["call_number"],Qt=["hangup"],St=["hold","hangup","mute","transfer","consult","satisfaction","dtmf"],Tt=["consult_transfer","conference","consult_retrieve"],yt=["hangup"],Rt=["hangup"],Dt=["answer","reject"],Ut=["hangup","consult","transfer","hold","mute","satisfaction","dtmf"],kt=["hangup","whisper","force_insert","force_disconnect"],Gt=["hangup"],Ft=["hangup","cancel_whisper","force_insert"],Yt=["hangup"],Zt=["hangup"];function Ot(A,e,t,s){var i,
|
|
22
|
+
*/},Ct=globalThis;class Et extends Fe{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const A=super.createRenderRoot();return this.renderOptions.renderBefore??=A.firstChild,A}update(A){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(A),this._$Do=mt(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return tt}}Et._$litElement$=!0,Et.finalized=!0,Ct.litElementHydrateSupport?.({LitElement:Et});const It=Ct.litElementPolyfillSupport;It?.({LitElement:Et}),(Ct.litElementVersions??=[]).push("4.2.1");const wt={statusColor:{[Ae.IDLE]:"#1D92E9",[Ae.BUSY]:"#F5212D",[Ae.OFFLINE]:"#8c8c8c",[Ae.RINGING]:"#e9b91d"}},Mt=[],ft=["call_number"],Bt=["call_number"],Qt=["hangup"],St=["hold","hangup","mute","transfer","consult","satisfaction","dtmf"],Tt=["consult_transfer","conference","consult_retrieve"],yt=["hangup"],Rt=["hangup"],Dt=["answer","reject"],Ut=["hangup","consult","transfer","hold","mute","satisfaction","dtmf"],kt=["hangup","whisper","force_insert","force_disconnect"],Gt=["hangup"],Ft=["hangup","cancel_whisper","force_insert"],Yt=["hangup"],Zt=["hangup"];function Ot(A,e,t,s){var i,o=arguments.length,n=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,t):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(A,e,t,s);else for(var r=A.length-1;r>=0;r--)(i=A[r])&&(n=(o<3?i(n):o>3?i(e,t,n):i(e,t))||n);return o>3&&n&&Object.defineProperty(e,t,n),n}"function"==typeof SuppressedError&&SuppressedError;
|
|
23
23
|
/**
|
|
24
24
|
* @license
|
|
25
25
|
* Copyright 2017 Google LLC
|
|
26
26
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
27
27
|
*/
|
|
28
|
-
const vt=A=>(e,t)=>{void 0!==t?t.addInitializer(()=>{customElements.define(A,e)}):customElements.define(A,e)},xt={attribute:!0,type:String,converter:Ue,reflect:!1,hasChanged:ke},Nt=(A=xt,e,t)=>{const{kind:s,metadata:i}=t;let
|
|
28
|
+
const vt=A=>(e,t)=>{void 0!==t?t.addInitializer(()=>{customElements.define(A,e)}):customElements.define(A,e)},xt={attribute:!0,type:String,converter:Ue,reflect:!1,hasChanged:ke},Nt=(A=xt,e,t)=>{const{kind:s,metadata:i}=t;let o=globalThis.litPropertyMetadata.get(i);if(void 0===o&&globalThis.litPropertyMetadata.set(i,o=new Map),"setter"===s&&((A=Object.create(A)).wrapped=!0),o.set(t.name,A),"accessor"===s){const{name:s}=t;return{set(t){const i=e.get.call(this);e.set.call(this,t),this.requestUpdate(s,i,A)},init(e){return void 0!==e&&this.C(s,void 0,A,e),e}}}if("setter"===s){const{name:s}=t;return function(t){const i=this[s];e.call(this,t),this.requestUpdate(s,i,A)}}throw Error("Unsupported decorator location: "+s)};
|
|
29
29
|
/**
|
|
30
30
|
* @license
|
|
31
31
|
* Copyright 2017 Google LLC
|
|
@@ -100,7 +100,7 @@ const vt=A=>(e,t)=>{void 0!==t?t.addInitializer(()=>{customElements.define(A,e)}
|
|
|
100
100
|
<div class="tooltip ${this.placement} ${this.visible?"visible":""}" style="background: ${this.color}">
|
|
101
101
|
${this.content}
|
|
102
102
|
</div>
|
|
103
|
-
`}};Ot([Kt({type:String})],Ht.prototype,"content",void 0),Ot([Kt({type:String})],Ht.prototype,"placement",void 0),Ot([Kt({type:Number})],Ht.prototype,"delay",void 0),Ot([Kt({type:String})],Ht.prototype,"color",void 0),Ot([Kt({type:Boolean})],Ht.prototype,"visible",void 0),Ot([function(A,e){return(t,s,i)=>{const
|
|
103
|
+
`}};Ot([Kt({type:String})],Ht.prototype,"content",void 0),Ot([Kt({type:String})],Ht.prototype,"placement",void 0),Ot([Kt({type:Number})],Ht.prototype,"delay",void 0),Ot([Kt({type:String})],Ht.prototype,"color",void 0),Ot([Kt({type:Boolean})],Ht.prototype,"visible",void 0),Ot([function(A,e){return(t,s,i)=>{const o=e=>e.renderRoot?.querySelector(A)??null;if(e){const{get:A,set:e}="object"==typeof s?t:i??(()=>{const A=Symbol();return{get(){return this[A]},set(e){this[A]=e}}})();return Jt(t,s,{get(){let t=A.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&e.call(this,t)),t}})}return Jt(t,s,{get(){return o(this)}})}}("slot")],Ht.prototype,"slotElement",void 0),Ht=Ot([vt("my-tooltip")],Ht);let jt=class extends Et{constructor(){super(...arguments),this.placement="bottom",this.triggerType="click",this.visible=!1,this.hideTimer=null,this.onTogglePopover=A=>{A.stopPropagation(),this.visible=!this.visible,this.visible&&this.updatePosition()},this.showPopover=()=>{this.clearHideTimer(),this.visible=!0,this.updatePosition()},this.hidePopoverDelayed=()=>{this.clearHideTimer(),this.hideTimer=setTimeout(()=>{this.visible=!1},200)},this.clearHideTimer=()=>{this.hideTimer&&(clearTimeout(this.hideTimer),this.hideTimer=null)},this.onOutsideClick=A=>{this.contains(A.target)||(this.visible=!1)}}static{this.styles=Ce`
|
|
104
104
|
:host {
|
|
105
105
|
display: inline-block;
|
|
106
106
|
position: relative;
|
|
@@ -513,8 +513,8 @@ const vt=A=>(e,t)=>{void 0!==t?t.addInitializer(()=>{customElements.define(A,e)}
|
|
|
513
513
|
<div class="popup ${this.open?"":"hidden"}">
|
|
514
514
|
<slot name="content"></slot>
|
|
515
515
|
</div>
|
|
516
|
-
`}};Ot([bt()],_t.prototype,"open",void 0),_t=Ot([vt("my-icon-popup")],_t);class $t extends Error{response;request;options;constructor(A,e,t){const s=`${A.status||0===A.status?A.status:""} ${A.statusText||""}`.trim();super(`Request failed with ${s?`status code ${s}`:"an unknown error"}: ${e.method} ${e.url}`),this.name="HTTPError",this.response=A,this.request=e,this.options=t}}class As extends Error{request;constructor(A){super(`Request timed out: ${A.method} ${A.url}`),this.name="TimeoutError",this.request=A}}const es=(()=>{let A=!1,e=!1;const t="function"==typeof globalThis.ReadableStream,s="function"==typeof globalThis.Request;if(t&&s)try{e=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return A=!0,"half"}}).headers.has("Content-Type")}catch(A){if(A instanceof Error&&"unsupported BodyInit type"===A.message)return!1;throw A}return A&&!e})(),ts="function"==typeof globalThis.AbortController,ss="function"==typeof globalThis.AbortSignal&&"function"==typeof globalThis.AbortSignal.any,is="function"==typeof globalThis.ReadableStream,ns="function"==typeof globalThis.FormData,os=["get","post","put","patch","head","delete"],rs={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},as=2147483647,Vs=(new TextEncoder).encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length,cs=Symbol("stop"),hs={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,onUploadProgress:!0,fetch:!0},ls={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,dispatcher:!0,duplex:!0,priority:!0},gs=(A,e)=>{const t=(A=>{if(!A)return 0;if(A instanceof FormData){let e=0;for(const[t,s]of A)e+=Vs,e+=(new TextEncoder).encode(`Content-Disposition: form-data; name="${t}"`).length,e+="string"==typeof s?(new TextEncoder).encode(s).length:s.size;return e}if(A instanceof Blob)return A.size;if(A instanceof ArrayBuffer)return A.byteLength;if("string"==typeof A)return(new TextEncoder).encode(A).length;if(A instanceof URLSearchParams)return(new TextEncoder).encode(A.toString()).length;if("byteLength"in A)return A.byteLength;if("object"==typeof A&&null!==A)try{const e=JSON.stringify(A);return(new TextEncoder).encode(e).length}catch{return 0}return 0})(A.body);let s=0;return new Request(A,{duplex:"half",body:new ReadableStream({async start(i){const n=A.body instanceof ReadableStream?A.body.getReader():new Response("").body.getReader();await async function A(){const{done:o,value:r}=await n.read();if(o)return e&&e({percent:1,transferredBytes:s,totalBytes:Math.max(t,s)},new Uint8Array),void i.close();s+=r.byteLength;let a=0===t?0:s/t;(t<s||1===a)&&(a=.99),e&&e({percent:Number(a.toFixed(2)),transferredBytes:s,totalBytes:t},r),i.enqueue(r),await A()}()}})})},qs=A=>null!==A&&"object"==typeof A,ds=(...A)=>{for(const e of A)if((!qs(e)||Array.isArray(e))&&void 0!==e)throw new TypeError("The `options` argument must be an object");return Cs({},...A)},us=(A={},e={})=>{const t=new globalThis.Headers(A),s=e instanceof globalThis.Headers,i=new globalThis.Headers(e);for(const[A,e]of i.entries())s&&"undefined"===e||void 0===e?t.delete(A):t.set(A,e);return t};function ps(A,e,t){return Object.hasOwn(e,t)&&void 0===e[t]?[]:Cs(A[t]??[],e[t]??[])}const ms=(A={},e={})=>({beforeRequest:ps(A,e,"beforeRequest"),beforeRetry:ps(A,e,"beforeRetry"),afterResponse:ps(A,e,"afterResponse"),beforeError:ps(A,e,"beforeError")}),Cs=(...A)=>{let e={},t={},s={};for(const i of A)if(Array.isArray(i))Array.isArray(e)||(e=[]),e=[...e,...i];else if(qs(i)){for(let[A,t]of Object.entries(i))qs(t)&&A in e&&(t=Cs(e[A],t)),e={...e,[A]:t};qs(i.hooks)&&(s=ms(s,i.hooks),e.hooks=s),qs(i.headers)&&(t=us(t,i.headers),e.headers=t)}return e},Es=A=>os.includes(A)?A.toUpperCase():A,Is={limit:2,methods:["get","put","head","delete","options","trace"],statusCodes:[408,413,429,500,502,503,504],afterStatusCodes:[413,429,503],maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:A=>.3*2**(A-1)*1e3},ws=(A={})=>{if("number"==typeof A)return{...Is,limit:A};if(A.methods&&!Array.isArray(A.methods))throw new Error("retry.methods must be an array");if(A.statusCodes&&!Array.isArray(A.statusCodes))throw new Error("retry.statusCodes must be an array");return{...Is,...A}};class Ms{static create(A,e){const t=new Ms(A,e),s=async()=>{if("number"==typeof t._options.timeout&&t._options.timeout>as)throw new RangeError("The `timeout` option cannot be greater than 2147483647");await Promise.resolve();let A=await t._fetch();for(const e of t._options.hooks.afterResponse){const s=await e(t.request,t._options,t._decorateResponse(A.clone()));s instanceof globalThis.Response&&(A=s)}if(t._decorateResponse(A),!A.ok&&t._options.throwHttpErrors){let e=new $t(A,t.request,t._options);for(const A of t._options.hooks.beforeError)e=await A(e);throw e}if(t._options.onDownloadProgress){if("function"!=typeof t._options.onDownloadProgress)throw new TypeError("The `onDownloadProgress` option must be a function");if(!is)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return((A,e)=>{const t=Number(A.headers.get("content-length"))||0;let s=0;return 204===A.status?(e&&e({percent:1,totalBytes:t,transferredBytes:s},new Uint8Array),new Response(null,{status:A.status,statusText:A.statusText,headers:A.headers})):new Response(new ReadableStream({async start(i){const n=A.body.getReader();e&&e({percent:0,transferredBytes:0,totalBytes:t},new Uint8Array),await async function A(){const{done:o,value:r}=await n.read();o?i.close():(e&&(s+=r.byteLength,e({percent:0===t?0:s/t,transferredBytes:s,totalBytes:t},r)),i.enqueue(r),await A())}()}}),{status:A.status,statusText:A.statusText,headers:A.headers})})(A.clone(),t._options.onDownloadProgress)}return A},i=(t._options.retry.methods.includes(t.request.method.toLowerCase())?t._retry(s):s()).finally(async()=>{t.request.bodyUsed||await(t.request.body?.cancel())});for(const[A,s]of Object.entries(rs))i[A]=async()=>{t.request.headers.set("accept",t.request.headers.get("accept")||s);const n=await i;if("json"===A){if(204===n.status)return"";if(0===(await n.clone().arrayBuffer()).byteLength)return"";if(e.parseJson)return e.parseJson(await n.text())}return n[A]()};return i}request;abortController;_retryCount=0;_input;_options;constructor(A,e={}){if(this._input=A,this._options={...e,headers:us(this._input.headers,e.headers),hooks:ms({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},e.hooks),method:Es(e.method??this._input.method??"GET"),prefixUrl:String(e.prefixUrl||""),retry:ws(e.retry),throwHttpErrors:!1!==e.throwHttpErrors,timeout:e.timeout??1e4,fetch:e.fetch??globalThis.fetch.bind(globalThis)},"string"!=typeof this._input&&!(this._input instanceof URL||this._input instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(this._options.prefixUrl&&"string"==typeof this._input){if(this._input.startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");this._options.prefixUrl.endsWith("/")||(this._options.prefixUrl+="/"),this._input=this._options.prefixUrl+this._input}if(ts&&ss){const A=this._options.signal??this._input.signal;this.abortController=new globalThis.AbortController,this._options.signal=A?AbortSignal.any([A,this.abortController.signal]):this.abortController.signal}if(es&&(this._options.duplex="half"),void 0!==this._options.json&&(this._options.body=this._options.stringifyJson?.(this._options.json)??JSON.stringify(this._options.json),this._options.headers.set("content-type",this._options.headers.get("content-type")??"application/json")),this.request=new globalThis.Request(this._input,this._options),this._options.searchParams){const A="?"+("string"==typeof this._options.searchParams?this._options.searchParams.replace(/^\?/,""):new URLSearchParams(this._options.searchParams).toString()),e=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,A);!(ns&&this._options.body instanceof globalThis.FormData||this._options.body instanceof URLSearchParams)||this._options.headers&&this._options.headers["content-type"]||this.request.headers.delete("content-type"),this.request=new globalThis.Request(new globalThis.Request(e,{...this.request}),this._options)}if(this._options.onUploadProgress){if("function"!=typeof this._options.onUploadProgress)throw new TypeError("The `onUploadProgress` option must be a function");if(!es)throw new Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");this.request.body&&(this.request=gs(this.request,this._options.onUploadProgress))}}_calculateRetryDelay(A){if(this._retryCount++,this._retryCount>this._options.retry.limit||A instanceof As)throw A;if(A instanceof $t){if(!this._options.retry.statusCodes.includes(A.response.status))throw A;const e=A.response.headers.get("Retry-After")??A.response.headers.get("RateLimit-Reset")??A.response.headers.get("X-RateLimit-Reset")??A.response.headers.get("X-Rate-Limit-Reset");if(e&&this._options.retry.afterStatusCodes.includes(A.response.status)){let A=1e3*Number(e);Number.isNaN(A)?A=Date.parse(e)-Date.now():A>=Date.parse("2024-01-01")&&(A-=Date.now());const t=this._options.retry.maxRetryAfter??A;return A<t?A:t}if(413===A.response.status)throw A}const e=this._options.retry.delay(this._retryCount);return Math.min(this._options.retry.backoffLimit,e)}_decorateResponse(A){return this._options.parseJson&&(A.json=async()=>this._options.parseJson(await A.text())),A}async _retry(A){try{return await A()}catch(e){const t=Math.min(this._calculateRetryDelay(e),as);if(this._retryCount<1)throw e;await async function(A,{signal:e}){return new Promise((t,s)=>{function i(){clearTimeout(n),s(e.reason)}e&&(e.throwIfAborted(),e.addEventListener("abort",i,{once:!0}));const n=setTimeout(()=>{e?.removeEventListener("abort",i),t()},A)})}(t,{signal:this._options.signal});for(const A of this._options.hooks.beforeRetry){if(await A({request:this.request,options:this._options,error:e,retryCount:this._retryCount})===cs)return}return this._retry(A)}}async _fetch(){for(const A of this._options.hooks.beforeRequest){const e=await A(this.request,this._options);if(e instanceof Request){this.request=e;break}if(e instanceof Response)return e}const A=((A,e)=>{const t={};for(const s in e)s in ls||s in hs||s in A||(t[s]=e[s]);return t})(this.request,this._options),e=this.request;return this.request=e.clone(),!1===this._options.timeout?this._options.fetch(e,A):async function(A,e,t,s){return new Promise((i,n)=>{const o=setTimeout(()=>{t&&t.abort(),n(new As(A))},s.timeout);s.fetch(A,e).then(i).catch(n).then(()=>{clearTimeout(o)})})}(e,A,this.abortController,this._options)}}
|
|
517
|
-
/*! MIT License © Sindre Sorhus */const fs=A=>{const e=(e,t)=>Ms.create(e,ds(A,t));for(const t of
|
|
516
|
+
`}};Ot([bt()],_t.prototype,"open",void 0),_t=Ot([vt("my-icon-popup")],_t);class $t extends Error{response;request;options;constructor(A,e,t){const s=`${A.status||0===A.status?A.status:""} ${A.statusText||""}`.trim();super(`Request failed with ${s?`status code ${s}`:"an unknown error"}: ${e.method} ${e.url}`),this.name="HTTPError",this.response=A,this.request=e,this.options=t}}class As extends Error{request;constructor(A){super(`Request timed out: ${A.method} ${A.url}`),this.name="TimeoutError",this.request=A}}const es=(()=>{let A=!1,e=!1;const t="function"==typeof globalThis.ReadableStream,s="function"==typeof globalThis.Request;if(t&&s)try{e=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return A=!0,"half"}}).headers.has("Content-Type")}catch(A){if(A instanceof Error&&"unsupported BodyInit type"===A.message)return!1;throw A}return A&&!e})(),ts="function"==typeof globalThis.AbortController,ss="function"==typeof globalThis.AbortSignal&&"function"==typeof globalThis.AbortSignal.any,is="function"==typeof globalThis.ReadableStream,os="function"==typeof globalThis.FormData,ns=["get","post","put","patch","head","delete"],rs={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},as=2147483647,Vs=(new TextEncoder).encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length,cs=Symbol("stop"),hs={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,onUploadProgress:!0,fetch:!0},ls={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,dispatcher:!0,duplex:!0,priority:!0},gs=(A,e)=>{const t=(A=>{if(!A)return 0;if(A instanceof FormData){let e=0;for(const[t,s]of A)e+=Vs,e+=(new TextEncoder).encode(`Content-Disposition: form-data; name="${t}"`).length,e+="string"==typeof s?(new TextEncoder).encode(s).length:s.size;return e}if(A instanceof Blob)return A.size;if(A instanceof ArrayBuffer)return A.byteLength;if("string"==typeof A)return(new TextEncoder).encode(A).length;if(A instanceof URLSearchParams)return(new TextEncoder).encode(A.toString()).length;if("byteLength"in A)return A.byteLength;if("object"==typeof A&&null!==A)try{const e=JSON.stringify(A);return(new TextEncoder).encode(e).length}catch{return 0}return 0})(A.body);let s=0;return new Request(A,{duplex:"half",body:new ReadableStream({async start(i){const o=A.body instanceof ReadableStream?A.body.getReader():new Response("").body.getReader();await async function A(){const{done:n,value:r}=await o.read();if(n)return e&&e({percent:1,transferredBytes:s,totalBytes:Math.max(t,s)},new Uint8Array),void i.close();s+=r.byteLength;let a=0===t?0:s/t;(t<s||1===a)&&(a=.99),e&&e({percent:Number(a.toFixed(2)),transferredBytes:s,totalBytes:t},r),i.enqueue(r),await A()}()}})})},qs=A=>null!==A&&"object"==typeof A,ds=(...A)=>{for(const e of A)if((!qs(e)||Array.isArray(e))&&void 0!==e)throw new TypeError("The `options` argument must be an object");return Cs({},...A)},us=(A={},e={})=>{const t=new globalThis.Headers(A),s=e instanceof globalThis.Headers,i=new globalThis.Headers(e);for(const[A,e]of i.entries())s&&"undefined"===e||void 0===e?t.delete(A):t.set(A,e);return t};function ps(A,e,t){return Object.hasOwn(e,t)&&void 0===e[t]?[]:Cs(A[t]??[],e[t]??[])}const ms=(A={},e={})=>({beforeRequest:ps(A,e,"beforeRequest"),beforeRetry:ps(A,e,"beforeRetry"),afterResponse:ps(A,e,"afterResponse"),beforeError:ps(A,e,"beforeError")}),Cs=(...A)=>{let e={},t={},s={};for(const i of A)if(Array.isArray(i))Array.isArray(e)||(e=[]),e=[...e,...i];else if(qs(i)){for(let[A,t]of Object.entries(i))qs(t)&&A in e&&(t=Cs(e[A],t)),e={...e,[A]:t};qs(i.hooks)&&(s=ms(s,i.hooks),e.hooks=s),qs(i.headers)&&(t=us(t,i.headers),e.headers=t)}return e},Es=A=>ns.includes(A)?A.toUpperCase():A,Is={limit:2,methods:["get","put","head","delete","options","trace"],statusCodes:[408,413,429,500,502,503,504],afterStatusCodes:[413,429,503],maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:A=>.3*2**(A-1)*1e3},ws=(A={})=>{if("number"==typeof A)return{...Is,limit:A};if(A.methods&&!Array.isArray(A.methods))throw new Error("retry.methods must be an array");if(A.statusCodes&&!Array.isArray(A.statusCodes))throw new Error("retry.statusCodes must be an array");return{...Is,...A}};class Ms{static create(A,e){const t=new Ms(A,e),s=async()=>{if("number"==typeof t._options.timeout&&t._options.timeout>as)throw new RangeError("The `timeout` option cannot be greater than 2147483647");await Promise.resolve();let A=await t._fetch();for(const e of t._options.hooks.afterResponse){const s=await e(t.request,t._options,t._decorateResponse(A.clone()));s instanceof globalThis.Response&&(A=s)}if(t._decorateResponse(A),!A.ok&&t._options.throwHttpErrors){let e=new $t(A,t.request,t._options);for(const A of t._options.hooks.beforeError)e=await A(e);throw e}if(t._options.onDownloadProgress){if("function"!=typeof t._options.onDownloadProgress)throw new TypeError("The `onDownloadProgress` option must be a function");if(!is)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return((A,e)=>{const t=Number(A.headers.get("content-length"))||0;let s=0;return 204===A.status?(e&&e({percent:1,totalBytes:t,transferredBytes:s},new Uint8Array),new Response(null,{status:A.status,statusText:A.statusText,headers:A.headers})):new Response(new ReadableStream({async start(i){const o=A.body.getReader();e&&e({percent:0,transferredBytes:0,totalBytes:t},new Uint8Array),await async function A(){const{done:n,value:r}=await o.read();n?i.close():(e&&(s+=r.byteLength,e({percent:0===t?0:s/t,transferredBytes:s,totalBytes:t},r)),i.enqueue(r),await A())}()}}),{status:A.status,statusText:A.statusText,headers:A.headers})})(A.clone(),t._options.onDownloadProgress)}return A},i=(t._options.retry.methods.includes(t.request.method.toLowerCase())?t._retry(s):s()).finally(async()=>{t.request.bodyUsed||await(t.request.body?.cancel())});for(const[A,s]of Object.entries(rs))i[A]=async()=>{t.request.headers.set("accept",t.request.headers.get("accept")||s);const o=await i;if("json"===A){if(204===o.status)return"";if(0===(await o.clone().arrayBuffer()).byteLength)return"";if(e.parseJson)return e.parseJson(await o.text())}return o[A]()};return i}request;abortController;_retryCount=0;_input;_options;constructor(A,e={}){if(this._input=A,this._options={...e,headers:us(this._input.headers,e.headers),hooks:ms({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},e.hooks),method:Es(e.method??this._input.method??"GET"),prefixUrl:String(e.prefixUrl||""),retry:ws(e.retry),throwHttpErrors:!1!==e.throwHttpErrors,timeout:e.timeout??1e4,fetch:e.fetch??globalThis.fetch.bind(globalThis)},"string"!=typeof this._input&&!(this._input instanceof URL||this._input instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(this._options.prefixUrl&&"string"==typeof this._input){if(this._input.startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");this._options.prefixUrl.endsWith("/")||(this._options.prefixUrl+="/"),this._input=this._options.prefixUrl+this._input}if(ts&&ss){const A=this._options.signal??this._input.signal;this.abortController=new globalThis.AbortController,this._options.signal=A?AbortSignal.any([A,this.abortController.signal]):this.abortController.signal}if(es&&(this._options.duplex="half"),void 0!==this._options.json&&(this._options.body=this._options.stringifyJson?.(this._options.json)??JSON.stringify(this._options.json),this._options.headers.set("content-type",this._options.headers.get("content-type")??"application/json")),this.request=new globalThis.Request(this._input,this._options),this._options.searchParams){const A="?"+("string"==typeof this._options.searchParams?this._options.searchParams.replace(/^\?/,""):new URLSearchParams(this._options.searchParams).toString()),e=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,A);!(os&&this._options.body instanceof globalThis.FormData||this._options.body instanceof URLSearchParams)||this._options.headers&&this._options.headers["content-type"]||this.request.headers.delete("content-type"),this.request=new globalThis.Request(new globalThis.Request(e,{...this.request}),this._options)}if(this._options.onUploadProgress){if("function"!=typeof this._options.onUploadProgress)throw new TypeError("The `onUploadProgress` option must be a function");if(!es)throw new Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");this.request.body&&(this.request=gs(this.request,this._options.onUploadProgress))}}_calculateRetryDelay(A){if(this._retryCount++,this._retryCount>this._options.retry.limit||A instanceof As)throw A;if(A instanceof $t){if(!this._options.retry.statusCodes.includes(A.response.status))throw A;const e=A.response.headers.get("Retry-After")??A.response.headers.get("RateLimit-Reset")??A.response.headers.get("X-RateLimit-Reset")??A.response.headers.get("X-Rate-Limit-Reset");if(e&&this._options.retry.afterStatusCodes.includes(A.response.status)){let A=1e3*Number(e);Number.isNaN(A)?A=Date.parse(e)-Date.now():A>=Date.parse("2024-01-01")&&(A-=Date.now());const t=this._options.retry.maxRetryAfter??A;return A<t?A:t}if(413===A.response.status)throw A}const e=this._options.retry.delay(this._retryCount);return Math.min(this._options.retry.backoffLimit,e)}_decorateResponse(A){return this._options.parseJson&&(A.json=async()=>this._options.parseJson(await A.text())),A}async _retry(A){try{return await A()}catch(e){const t=Math.min(this._calculateRetryDelay(e),as);if(this._retryCount<1)throw e;await async function(A,{signal:e}){return new Promise((t,s)=>{function i(){clearTimeout(o),s(e.reason)}e&&(e.throwIfAborted(),e.addEventListener("abort",i,{once:!0}));const o=setTimeout(()=>{e?.removeEventListener("abort",i),t()},A)})}(t,{signal:this._options.signal});for(const A of this._options.hooks.beforeRetry){if(await A({request:this.request,options:this._options,error:e,retryCount:this._retryCount})===cs)return}return this._retry(A)}}async _fetch(){for(const A of this._options.hooks.beforeRequest){const e=await A(this.request,this._options);if(e instanceof Request){this.request=e;break}if(e instanceof Response)return e}const A=((A,e)=>{const t={};for(const s in e)s in ls||s in hs||s in A||(t[s]=e[s]);return t})(this.request,this._options),e=this.request;return this.request=e.clone(),!1===this._options.timeout?this._options.fetch(e,A):async function(A,e,t,s){return new Promise((i,o)=>{const n=setTimeout(()=>{t&&t.abort(),o(new As(A))},s.timeout);s.fetch(A,e).then(i).catch(o).then(()=>{clearTimeout(n)})})}(e,A,this.abortController,this._options)}}
|
|
517
|
+
/*! MIT License © Sindre Sorhus */const fs=A=>{const e=(e,t)=>Ms.create(e,ds(A,t));for(const t of ns)e[t]=(e,s)=>Ms.create(e,ds(A,s,{method:t}));return e.create=A=>fs(ds(A)),e.extend=e=>("function"==typeof e&&(e=e(A??{})),fs(ds(A,e))),e.stop=cs,e};var Bs,Qs=fs(),Ss="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Ts={exports:{}};
|
|
518
518
|
/**
|
|
519
519
|
* [js-md5]{@link https://github.com/emn178/js-md5}
|
|
520
520
|
*
|
|
@@ -524,7 +524,7 @@ const vt=A=>(e,t)=>{void 0!==t?t.addInitializer(()=>{customElements.define(A,e)}
|
|
|
524
524
|
* @copyright Chen, Yi-Cyuan 2014-2023
|
|
525
525
|
* @license MIT
|
|
526
526
|
*/
|
|
527
|
-
Bs=Ts,function(){var t="input is invalid type",s="object"==typeof window,i=s?window:{};i.JS_MD5_NO_WINDOW&&(s=!1);var n=!s&&"object"==typeof self,o=!i.JS_MD5_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;o?i=Ss:n&&(i=self);var r,a=!i.JS_MD5_NO_COMMON_JS&&Bs.exports,V=!i.JS_MD5_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,c="0123456789abcdef".split(""),h=[128,32768,8388608,-2147483648],l=[0,8,16,24],g=["hex","array","digest","buffer","arrayBuffer","base64"],q="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),d=[];if(V){var u=new ArrayBuffer(68);r=new Uint8Array(u),d=new Uint32Array(u)}var p=Array.isArray;!i.JS_MD5_NO_NODE_JS&&p||(p=function(A){return"[object Array]"===Object.prototype.toString.call(A)});var m=ArrayBuffer.isView;!V||!i.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW&&m||(m=function(A){return"object"==typeof A&&A.buffer&&A.buffer.constructor===ArrayBuffer});var C=function(A){var e=typeof A;if("string"===e)return[A,!0];if("object"!==e||null===A)throw new Error(t);if(V&&A.constructor===ArrayBuffer)return[new Uint8Array(A),!1];if(!p(A)&&!m(A))throw new Error(t);return[A,!1]},E=function(A){return function(e){return new M(!0).update(e)[A]()}},I=function(s){var n,o=A,r=e.Buffer;return n=r.from&&!i.JS_MD5_NO_BUFFER_FROM?r.from:function(A){return new r(A)},function(A){if("string"==typeof A)return o.createHash("md5").update(A,"utf8").digest("hex");if(null==A)throw new Error(t);return A.constructor===ArrayBuffer&&(A=new Uint8Array(A)),p(A)||m(A)||A.constructor===r?o.createHash("md5").update(n(A)).digest("hex"):s(A)}},w=function(A){return function(e,t){return new f(e,!0).update(t)[A]()}};function M(A){if(A)d[0]=d[16]=d[1]=d[2]=d[3]=d[4]=d[5]=d[6]=d[7]=d[8]=d[9]=d[10]=d[11]=d[12]=d[13]=d[14]=d[15]=0,this.blocks=d,this.buffer8=r;else if(V){var e=new ArrayBuffer(68);this.buffer8=new Uint8Array(e),this.blocks=new Uint32Array(e)}else this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h0=this.h1=this.h2=this.h3=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0}function f(A,e){var t,s=C(A);if(A=s[0],s[1]){var i,n=[],o=A.length,r=0;for(t=0;t<o;++t)(i=A.charCodeAt(t))<128?n[r++]=i:i<2048?(n[r++]=192|i>>>6,n[r++]=128|63&i):i<55296||i>=57344?(n[r++]=224|i>>>12,n[r++]=128|i>>>6&63,n[r++]=128|63&i):(i=65536+((1023&i)<<10|1023&A.charCodeAt(++t)),n[r++]=240|i>>>18,n[r++]=128|i>>>12&63,n[r++]=128|i>>>6&63,n[r++]=128|63&i);A=n}A.length>64&&(A=new M(!0).update(A).array());var a=[],V=[];for(t=0;t<64;++t){var c=A[t]||0;a[t]=92^c,V[t]=54^c}M.call(this,e),this.update(V),this.oKeyPad=a,this.inner=!0,this.sharedMemory=e}M.prototype.update=function(A){if(this.finalized)throw new Error("finalize already called");var e=C(A);A=e[0];for(var t,s,i=e[1],n=0,o=A.length,r=this.blocks,a=this.buffer8;n<o;){if(this.hashed&&(this.hashed=!1,r[0]=r[16],r[16]=r[1]=r[2]=r[3]=r[4]=r[5]=r[6]=r[7]=r[8]=r[9]=r[10]=r[11]=r[12]=r[13]=r[14]=r[15]=0),i)if(V)for(s=this.start;n<o&&s<64;++n)(t=A.charCodeAt(n))<128?a[s++]=t:t<2048?(a[s++]=192|t>>>6,a[s++]=128|63&t):t<55296||t>=57344?(a[s++]=224|t>>>12,a[s++]=128|t>>>6&63,a[s++]=128|63&t):(t=65536+((1023&t)<<10|1023&A.charCodeAt(++n)),a[s++]=240|t>>>18,a[s++]=128|t>>>12&63,a[s++]=128|t>>>6&63,a[s++]=128|63&t);else for(s=this.start;n<o&&s<64;++n)(t=A.charCodeAt(n))<128?r[s>>>2]|=t<<l[3&s++]:t<2048?(r[s>>>2]|=(192|t>>>6)<<l[3&s++],r[s>>>2]|=(128|63&t)<<l[3&s++]):t<55296||t>=57344?(r[s>>>2]|=(224|t>>>12)<<l[3&s++],r[s>>>2]|=(128|t>>>6&63)<<l[3&s++],r[s>>>2]|=(128|63&t)<<l[3&s++]):(t=65536+((1023&t)<<10|1023&A.charCodeAt(++n)),r[s>>>2]|=(240|t>>>18)<<l[3&s++],r[s>>>2]|=(128|t>>>12&63)<<l[3&s++],r[s>>>2]|=(128|t>>>6&63)<<l[3&s++],r[s>>>2]|=(128|63&t)<<l[3&s++]);else if(V)for(s=this.start;n<o&&s<64;++n)a[s++]=A[n];else for(s=this.start;n<o&&s<64;++n)r[s>>>2]|=A[n]<<l[3&s++];this.lastByteIndex=s,this.bytes+=s-this.start,s>=64?(this.start=s-64,this.hash(),this.hashed=!0):this.start=s}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296|0,this.bytes=this.bytes%4294967296),this},M.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var A=this.blocks,e=this.lastByteIndex;A[e>>>2]|=h[3&e],e>=56&&(this.hashed||this.hash(),A[0]=A[16],A[16]=A[1]=A[2]=A[3]=A[4]=A[5]=A[6]=A[7]=A[8]=A[9]=A[10]=A[11]=A[12]=A[13]=A[14]=A[15]=0),A[14]=this.bytes<<3,A[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},M.prototype.hash=function(){var A,e,t,s,i,n,o=this.blocks;this.first?e=((e=((A=((A=o[0]-680876937)<<7|A>>>25)-271733879|0)^(t=((t=(-271733879^(s=((s=(-1732584194^2004318071&A)+o[1]-117830708)<<12|s>>>20)+A|0)&(-271733879^A))+o[2]-1126478375)<<17|t>>>15)+s|0)&(s^A))+o[3]-1316259209)<<22|e>>>10)+t|0:(A=this.h0,e=this.h1,t=this.h2,e=((e+=((A=((A+=((s=this.h3)^e&(t^s))+o[0]-680876936)<<7|A>>>25)+e|0)^(t=((t+=(e^(s=((s+=(t^A&(e^t))+o[1]-389564586)<<12|s>>>20)+A|0)&(A^e))+o[2]+606105819)<<17|t>>>15)+s|0)&(s^A))+o[3]-1044525330)<<22|e>>>10)+t|0),e=((e+=((A=((A+=(s^e&(t^s))+o[4]-176418897)<<7|A>>>25)+e|0)^(t=((t+=(e^(s=((s+=(t^A&(e^t))+o[5]+1200080426)<<12|s>>>20)+A|0)&(A^e))+o[6]-1473231341)<<17|t>>>15)+s|0)&(s^A))+o[7]-45705983)<<22|e>>>10)+t|0,e=((e+=((A=((A+=(s^e&(t^s))+o[8]+1770035416)<<7|A>>>25)+e|0)^(t=((t+=(e^(s=((s+=(t^A&(e^t))+o[9]-1958414417)<<12|s>>>20)+A|0)&(A^e))+o[10]-42063)<<17|t>>>15)+s|0)&(s^A))+o[11]-1990404162)<<22|e>>>10)+t|0,e=((e+=((A=((A+=(s^e&(t^s))+o[12]+1804603682)<<7|A>>>25)+e|0)^(t=((t+=(e^(s=((s+=(t^A&(e^t))+o[13]-40341101)<<12|s>>>20)+A|0)&(A^e))+o[14]-1502002290)<<17|t>>>15)+s|0)&(s^A))+o[15]+1236535329)<<22|e>>>10)+t|0,e=((e+=((s=((s+=(e^t&((A=((A+=(t^s&(e^t))+o[1]-165796510)<<5|A>>>27)+e|0)^e))+o[6]-1069501632)<<9|s>>>23)+A|0)^A&((t=((t+=(A^e&(s^A))+o[11]+643717713)<<14|t>>>18)+s|0)^s))+o[0]-373897302)<<20|e>>>12)+t|0,e=((e+=((s=((s+=(e^t&((A=((A+=(t^s&(e^t))+o[5]-701558691)<<5|A>>>27)+e|0)^e))+o[10]+38016083)<<9|s>>>23)+A|0)^A&((t=((t+=(A^e&(s^A))+o[15]-660478335)<<14|t>>>18)+s|0)^s))+o[4]-405537848)<<20|e>>>12)+t|0,e=((e+=((s=((s+=(e^t&((A=((A+=(t^s&(e^t))+o[9]+568446438)<<5|A>>>27)+e|0)^e))+o[14]-1019803690)<<9|s>>>23)+A|0)^A&((t=((t+=(A^e&(s^A))+o[3]-187363961)<<14|t>>>18)+s|0)^s))+o[8]+1163531501)<<20|e>>>12)+t|0,e=((e+=((s=((s+=(e^t&((A=((A+=(t^s&(e^t))+o[13]-1444681467)<<5|A>>>27)+e|0)^e))+o[2]-51403784)<<9|s>>>23)+A|0)^A&((t=((t+=(A^e&(s^A))+o[7]+1735328473)<<14|t>>>18)+s|0)^s))+o[12]-1926607734)<<20|e>>>12)+t|0,e=((e+=((n=(s=((s+=((i=e^t)^(A=((A+=(i^s)+o[5]-378558)<<4|A>>>28)+e|0))+o[8]-2022574463)<<11|s>>>21)+A|0)^A)^(t=((t+=(n^e)+o[11]+1839030562)<<16|t>>>16)+s|0))+o[14]-35309556)<<23|e>>>9)+t|0,e=((e+=((n=(s=((s+=((i=e^t)^(A=((A+=(i^s)+o[1]-1530992060)<<4|A>>>28)+e|0))+o[4]+1272893353)<<11|s>>>21)+A|0)^A)^(t=((t+=(n^e)+o[7]-155497632)<<16|t>>>16)+s|0))+o[10]-1094730640)<<23|e>>>9)+t|0,e=((e+=((n=(s=((s+=((i=e^t)^(A=((A+=(i^s)+o[13]+681279174)<<4|A>>>28)+e|0))+o[0]-358537222)<<11|s>>>21)+A|0)^A)^(t=((t+=(n^e)+o[3]-722521979)<<16|t>>>16)+s|0))+o[6]+76029189)<<23|e>>>9)+t|0,e=((e+=((n=(s=((s+=((i=e^t)^(A=((A+=(i^s)+o[9]-640364487)<<4|A>>>28)+e|0))+o[12]-421815835)<<11|s>>>21)+A|0)^A)^(t=((t+=(n^e)+o[15]+530742520)<<16|t>>>16)+s|0))+o[2]-995338651)<<23|e>>>9)+t|0,e=((e+=((s=((s+=(e^((A=((A+=(t^(e|~s))+o[0]-198630844)<<6|A>>>26)+e|0)|~t))+o[7]+1126891415)<<10|s>>>22)+A|0)^((t=((t+=(A^(s|~e))+o[14]-1416354905)<<15|t>>>17)+s|0)|~A))+o[5]-57434055)<<21|e>>>11)+t|0,e=((e+=((s=((s+=(e^((A=((A+=(t^(e|~s))+o[12]+1700485571)<<6|A>>>26)+e|0)|~t))+o[3]-1894986606)<<10|s>>>22)+A|0)^((t=((t+=(A^(s|~e))+o[10]-1051523)<<15|t>>>17)+s|0)|~A))+o[1]-2054922799)<<21|e>>>11)+t|0,e=((e+=((s=((s+=(e^((A=((A+=(t^(e|~s))+o[8]+1873313359)<<6|A>>>26)+e|0)|~t))+o[15]-30611744)<<10|s>>>22)+A|0)^((t=((t+=(A^(s|~e))+o[6]-1560198380)<<15|t>>>17)+s|0)|~A))+o[13]+1309151649)<<21|e>>>11)+t|0,e=((e+=((s=((s+=(e^((A=((A+=(t^(e|~s))+o[4]-145523070)<<6|A>>>26)+e|0)|~t))+o[11]-1120210379)<<10|s>>>22)+A|0)^((t=((t+=(A^(s|~e))+o[2]+718787259)<<15|t>>>17)+s|0)|~A))+o[9]-343485551)<<21|e>>>11)+t|0,this.first?(this.h0=A+1732584193|0,this.h1=e-271733879|0,this.h2=t-1732584194|0,this.h3=s+271733878|0,this.first=!1):(this.h0=this.h0+A|0,this.h1=this.h1+e|0,this.h2=this.h2+t|0,this.h3=this.h3+s|0)},M.prototype.hex=function(){this.finalize();var A=this.h0,e=this.h1,t=this.h2,s=this.h3;return c[A>>>4&15]+c[15&A]+c[A>>>12&15]+c[A>>>8&15]+c[A>>>20&15]+c[A>>>16&15]+c[A>>>28&15]+c[A>>>24&15]+c[e>>>4&15]+c[15&e]+c[e>>>12&15]+c[e>>>8&15]+c[e>>>20&15]+c[e>>>16&15]+c[e>>>28&15]+c[e>>>24&15]+c[t>>>4&15]+c[15&t]+c[t>>>12&15]+c[t>>>8&15]+c[t>>>20&15]+c[t>>>16&15]+c[t>>>28&15]+c[t>>>24&15]+c[s>>>4&15]+c[15&s]+c[s>>>12&15]+c[s>>>8&15]+c[s>>>20&15]+c[s>>>16&15]+c[s>>>28&15]+c[s>>>24&15]},M.prototype.toString=M.prototype.hex,M.prototype.digest=function(){this.finalize();var A=this.h0,e=this.h1,t=this.h2,s=this.h3;return[255&A,A>>>8&255,A>>>16&255,A>>>24&255,255&e,e>>>8&255,e>>>16&255,e>>>24&255,255&t,t>>>8&255,t>>>16&255,t>>>24&255,255&s,s>>>8&255,s>>>16&255,s>>>24&255]},M.prototype.array=M.prototype.digest,M.prototype.arrayBuffer=function(){this.finalize();var A=new ArrayBuffer(16),e=new Uint32Array(A);return e[0]=this.h0,e[1]=this.h1,e[2]=this.h2,e[3]=this.h3,A},M.prototype.buffer=M.prototype.arrayBuffer,M.prototype.base64=function(){for(var A,e,t,s="",i=this.array(),n=0;n<15;)A=i[n++],e=i[n++],t=i[n++],s+=q[A>>>2]+q[63&(A<<4|e>>>4)]+q[63&(e<<2|t>>>6)]+q[63&t];return A=i[n],s+=q[A>>>2]+q[A<<4&63]+"=="},f.prototype=new M,f.prototype.finalize=function(){if(M.prototype.finalize.call(this),this.inner){this.inner=!1;var A=this.array();M.call(this,this.sharedMemory),this.update(this.oKeyPad),this.update(A),M.prototype.finalize.call(this)}};var B=function(){var A=E("hex");o&&(A=I(A)),A.create=function(){return new M},A.update=function(e){return A.create().update(e)};for(var e=0;e<g.length;++e){var t=g[e];A[t]=E(t)}return A}();B.md5=B,B.md5.hmac=function(){var A=w("hex");A.create=function(A){return new f(A)},A.update=function(e,t){return A.create(e).update(t)};for(var e=0;e<g.length;++e){var t=g[e];A[t]=w(t)}return A}(),a?Bs.exports=B:i.md5=B}();var ys=Ts.exports;const Rs=(A,e)=>{const t=Date.now(),s=`${A}:${t}:${ys.md5(`${e}${t}`)}`,i=(new TextEncoder).encode(s);return btoa(String.fromCharCode(...i))},Ds=A=>/^\d+$/.test(A),Us="/v1/aicc/bmserver",ks="/v1/aicc/ccs";let Gs="",Fs="",Ys="",Zs="";function Os(){const A=Rs(Fs,Ys);return Qs.create({prefixUrl:`${Gs}`,timeout:!1,headers:{Authorization:A},hooks:{afterResponse:[async(A,e,t)=>{if(-1!==t.url.indexOf("heartbeat"))return t;const s=await t.clone().json();if(0!==s.code)throw new Error(JSON.stringify(s)||"请求失败");return t.json=async()=>s,t}]}})}async function vs(A,e){const t=Os(),s="api/"+A.replace(/^\/+/,"");return t.post(s,{json:e}).json()}const xs=A=>vs(`${ks}/state/change`,A),Ns=()=>async function(A,e){const t=Os(),s=A.replace(/^\/+/,"");return t.post(s,{json:e}).json()}("/heartbeat",{});class Ks{constructor(){this.roleData={agentInfo:()=>{if(!Ve.agentInfo?.agent_no)throw new Error(JSON.stringify({code:1,msg:"请先登录"}))},requestInfo:A=>{if(!A.data)throw new Error(JSON.stringify({code:1,msg:'Parameter "data" is required'}))},changeDevice:A=>{if(!A)throw new Error(JSON.stringify({code:1,msg:'Parameter "device" is required'}));const{answer_devices:e}=Ve.agentInfo;if(!e.split(",").map(A=>Number(A)).includes(A))throw new Error(JSON.stringify({code:1,msg:"当前状态不支持"}))},changeState:(A,e)=>{if(!A)throw new Error(JSON.stringify({code:1,msg:'Parameter "state" is required'}));if(!e)throw new Error(JSON.stringify({code:1,msg:'Parameter "state_name" is required'}));if(2===A&&("通话中"===e||"整理"===e))throw new Error(JSON.stringify({code:1,msg:"当前状态不支持"}));if(![1,2].includes(A))throw new Error(JSON.stringify({code:1,msg:"当前状态不支持"}))},setAgentExplicit:A=>{const{out_display_select_switch:e,out_display_data:t}=Ve.agentInfo;if(1!==e)throw new Error(JSON.stringify({code:1,msg:"当前坐席设置未开启允许指定外显"}));if(!A)throw new Error(JSON.stringify({code:1,msg:'Parameter "number" is required'}));if(!(t||"").split("#").includes(A))throw new Error(JSON.stringify({code:1,msg:"当前外显号码不存在"}))}}}formatDate(A){return`${A.getFullYear()}-${String(A.getMonth()+1).padStart(2,"0")}-${String(A.getDate()).padStart(2,"0")} ${String(A.getHours()).padStart(2,"0")}:${String(A.getMinutes()).padStart(2,"0")}:${String(A.getSeconds()).padStart(2,"0")}`}async _agentLogin(A){try{const t=await(e={agent_no:A},vs(`${ks}/agent/login`,e));Ve.agentInfo=t.data}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}var e}async _changeState(A){try{Ve.autoStateTimer&&(clearTimeout(Ve.autoStateTimer),Ve.autoStateTimer=null),this.roleData.agentInfo(),this.roleData.requestInfo(A);const{data:e,success:t}=A,{state:s,state_name:i}=e,{agent_no:n}=Ve.agentInfo;await xs({agent_no:n,state_name:i,state:s}),s===Ae.IDLE?he.updateActionConfigs(ft):s===Ae.BUSY&&he.updateActionConfigs(Bt),Ve.stateObject={state:s,state_name:i},t?.({code:0,msg:"请求成功"})}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async _getInCallCrmDetail(A){try{const{phone:e}=A.data,t={};Ds(e)?t.phone=e:t.trace_id=e;const s=await(A=>vs(`${Us}/crm/popups`,A))({...t});A.success?.(s)}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async changeDevice(A){try{if(he.get("isCalling"))throw new Error(JSON.stringify({code:1,msg:"当前正在通话中,请勿切换设备"}));this.roleData.agentInfo(),this.roleData.requestInfo(A);const{data:e,success:t}=A,{device:s}=e;1===s&&he.updateAnswerDevice(s),this.roleData.changeDevice(s);const{agent_no:i}=Ve.agentInfo;await(A=>vs(`${ks}/device/change`,A))({agent_no:i,answer_device:s}),he.updateAnswerDevice(s);const n=he.get("actionConfigs");he.updateActionConfigs(n),2===s&&Ve.stateObject.state===Ae.UNREGISTERED&&await this._changeState({data:{...Ve.stateBeforeChange,state_name:Ve.stateBeforeChange.state===Ae.IDLE?"空闲":"忙碌"}}),t?.({code:0,msg:"请求成功"})}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async changeState(A){try{if(he.get("isCalling"))throw new Error(JSON.stringify({code:1,msg:"当前正在通话中,请勿切换设备"}));Ve.autoStateTimer&&(clearTimeout(Ve.autoStateTimer),Ve.autoStateTimer=null),this.roleData.agentInfo(),this.roleData.requestInfo(A);const{data:e,success:t}=A,{state:s,state_name:i}=e;this.roleData.changeState(s,i);const{agent_no:n}=Ve.agentInfo;await xs({agent_no:n,state_name:i,state:s}),(Ve.stateObject.state===Ae.IDLE||Ve.stateObject.state===Ae.BUSY&&"整理"!==i)&&(Ve.stateBeforeChange=Ve.stateObject),s===Ae.IDLE?he.updateActionConfigs(ft):s===Ae.BUSY&&he.updateActionConfigs(Bt),Ve.stateObject={state:s,state_name:i},t?.({code:0,msg:"请求成功"})}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async getIdleAgentList(A){const{agent_no:e}=Ve.agentInfo;try{this.roleData.agentInfo();const t=await(A=>vs(`${ks}/agent/free`,A))({agent_no:e});A.success?.(t)}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async getAgentState(A){try{const e=await vs(`${Us}/agent/statecfg/list`,{}),t=(e.data||[]).filter(A=>0===A.enable).filter(A=>0!==A.state&&3!==A.state).filter(A=>"通话中"!==A.state_name&&"整理"!==A.state_name&&"未注册"!==A.state_name&&"离线接听"!==A.state_name).map(A=>({state:A.state,state_name:A.state_name})).reverse();A.success?.({...e,data:t})}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async setAgentExplicit(A){try{this.roleData.agentInfo(),this.roleData.requestInfo(A),this.roleData.setAgentExplicit(A.data.number);const{agent_id:e}=Ve.agentInfo;await(A=>vs(`${Us}/agent/update`,A))({agent_id:e,out_display_number:A.data.number}),he.updateSelectOutNumber(A.data.number),A.success?.({code:0,msg:"请求成功"})}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async checkAgentLogin(A){try{this.roleData.requestInfo(A);const{agent_no:e}=A.data;if(!e)throw new Error(JSON.stringify({code:1,msg:'Parameter "agent_no" is required'}));const t=await(A=>vs(`${ks}/agent/islogin`,A))({agent_no:e});A.success?.(t)}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async getCallRecord(A){try{this.roleData.agentInfo();const{success:e}=A,t=new Date,s=new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0),i=new Date(t.getFullYear(),t.getMonth(),t.getDate(),23,59,59),n=[this.formatDate(s),this.formatDate(i)],{agent_no:o}=Ve.agentInfo,r=await(A=>vs(`${Us}/agent/recordpage`,A))({start_time:n[0],end_time:n[1],page_no:1,page_size:10,agent_no:o}),{code:a,msg:V,data:c}=r;e?.({code:a,msg:V,data:c})}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async logout(A){this.roleData.agentInfo();try{const{agent_no:e}=Ve.agentInfo,{data:t,success:s}=A;await(A=>vs(`${ks}/agent/logout`,A))({...t,agent_no:e}),s?.({code:0,msg:""})}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async listenCall(A){try{const{agent_no:e}=Ve.agentInfo,{data:t,success:s}=A;if(this.roleData.agentInfo(),this.roleData.requestInfo(A),!t.monitored_agent_no)throw new Error(JSON.stringify({code:1,msg:'Parameter "monitored_agent_no" is required'}));await(A=>vs(`${ks}/call/monitor`,A))({...t,monitor_agent_no:e}),Ve.monitoredAgentNo=t.monitored_agent_no,s?.({code:0,msg:""})}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async earCall(A){try{const{agentInfo:e,monitoredAgentNo:t}=Ve,{agent_no:s}=e;this.roleData.agentInfo();const{success:i}=A;if(!t)throw new Error(JSON.stringify({code:1,msg:"当前未有监听坐席"}));await(A=>vs(`${ks}/call/whisper`,A))({monitored_agent_no:t,monitor_agent_no:s}),i?.({code:0,msg:""})}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async stopEarCall(A){try{const{agentInfo:e,earSpeakAgent:t}=Ve;if(!t)throw new Error(JSON.stringify({code:1,msg:"当前没有正在耳语的坐席"}));const{agent_no:s}=e;this.roleData.agentInfo();const{success:i}=A;await(A=>vs(`${ks}/call/stopwhisper`,A))({monitor_agent_no:s,monitored_agent_no:t}),i?.({code:0,msg:""})}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async forceInsert(A){try{const{agentInfo:e,monitoredAgentNo:t}=Ve,{agent_no:s}=e;this.roleData.agentInfo();const{success:i}=A;if(!t)throw new Error(JSON.stringify({code:1,msg:"当前未有监听坐席"}));await(A=>vs(`${ks}/call/bargein`,A))({monitored_agent_no:t,monitor_agent_no:s}),i?.({code:0,msg:""})}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async forceDisconnect(A){try{const{agentInfo:e,monitoredAgentNo:t}=Ve,{agent_no:s}=e;this.roleData.agentInfo();const{success:i}=A;if(!t)throw new Error(JSON.stringify({code:1,msg:"当前未有监听坐席"}));await(A=>vs(`${ks}/call/intercept`,A))({monitored_agent_no:t,monitor_agent_no:s}),i?.({code:0,msg:""})}catch(A){throw ae.emit(ne.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}}let bs=class extends Et{constructor(){super(...arguments),this.type="info",this.content="",this.duration=3e3}static{this.styles=Ce`
|
|
527
|
+
Bs=Ts,function(){var t="input is invalid type",s="object"==typeof window,i=s?window:{};i.JS_MD5_NO_WINDOW&&(s=!1);var o=!s&&"object"==typeof self,n=!i.JS_MD5_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;n?i=Ss:o&&(i=self);var r,a=!i.JS_MD5_NO_COMMON_JS&&Bs.exports,V=!i.JS_MD5_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,c="0123456789abcdef".split(""),h=[128,32768,8388608,-2147483648],l=[0,8,16,24],g=["hex","array","digest","buffer","arrayBuffer","base64"],q="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),d=[];if(V){var u=new ArrayBuffer(68);r=new Uint8Array(u),d=new Uint32Array(u)}var p=Array.isArray;!i.JS_MD5_NO_NODE_JS&&p||(p=function(A){return"[object Array]"===Object.prototype.toString.call(A)});var m=ArrayBuffer.isView;!V||!i.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW&&m||(m=function(A){return"object"==typeof A&&A.buffer&&A.buffer.constructor===ArrayBuffer});var C=function(A){var e=typeof A;if("string"===e)return[A,!0];if("object"!==e||null===A)throw new Error(t);if(V&&A.constructor===ArrayBuffer)return[new Uint8Array(A),!1];if(!p(A)&&!m(A))throw new Error(t);return[A,!1]},E=function(A){return function(e){return new M(!0).update(e)[A]()}},I=function(s){var o,n=A,r=e.Buffer;return o=r.from&&!i.JS_MD5_NO_BUFFER_FROM?r.from:function(A){return new r(A)},function(A){if("string"==typeof A)return n.createHash("md5").update(A,"utf8").digest("hex");if(null==A)throw new Error(t);return A.constructor===ArrayBuffer&&(A=new Uint8Array(A)),p(A)||m(A)||A.constructor===r?n.createHash("md5").update(o(A)).digest("hex"):s(A)}},w=function(A){return function(e,t){return new f(e,!0).update(t)[A]()}};function M(A){if(A)d[0]=d[16]=d[1]=d[2]=d[3]=d[4]=d[5]=d[6]=d[7]=d[8]=d[9]=d[10]=d[11]=d[12]=d[13]=d[14]=d[15]=0,this.blocks=d,this.buffer8=r;else if(V){var e=new ArrayBuffer(68);this.buffer8=new Uint8Array(e),this.blocks=new Uint32Array(e)}else this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h0=this.h1=this.h2=this.h3=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0}function f(A,e){var t,s=C(A);if(A=s[0],s[1]){var i,o=[],n=A.length,r=0;for(t=0;t<n;++t)(i=A.charCodeAt(t))<128?o[r++]=i:i<2048?(o[r++]=192|i>>>6,o[r++]=128|63&i):i<55296||i>=57344?(o[r++]=224|i>>>12,o[r++]=128|i>>>6&63,o[r++]=128|63&i):(i=65536+((1023&i)<<10|1023&A.charCodeAt(++t)),o[r++]=240|i>>>18,o[r++]=128|i>>>12&63,o[r++]=128|i>>>6&63,o[r++]=128|63&i);A=o}A.length>64&&(A=new M(!0).update(A).array());var a=[],V=[];for(t=0;t<64;++t){var c=A[t]||0;a[t]=92^c,V[t]=54^c}M.call(this,e),this.update(V),this.oKeyPad=a,this.inner=!0,this.sharedMemory=e}M.prototype.update=function(A){if(this.finalized)throw new Error("finalize already called");var e=C(A);A=e[0];for(var t,s,i=e[1],o=0,n=A.length,r=this.blocks,a=this.buffer8;o<n;){if(this.hashed&&(this.hashed=!1,r[0]=r[16],r[16]=r[1]=r[2]=r[3]=r[4]=r[5]=r[6]=r[7]=r[8]=r[9]=r[10]=r[11]=r[12]=r[13]=r[14]=r[15]=0),i)if(V)for(s=this.start;o<n&&s<64;++o)(t=A.charCodeAt(o))<128?a[s++]=t:t<2048?(a[s++]=192|t>>>6,a[s++]=128|63&t):t<55296||t>=57344?(a[s++]=224|t>>>12,a[s++]=128|t>>>6&63,a[s++]=128|63&t):(t=65536+((1023&t)<<10|1023&A.charCodeAt(++o)),a[s++]=240|t>>>18,a[s++]=128|t>>>12&63,a[s++]=128|t>>>6&63,a[s++]=128|63&t);else for(s=this.start;o<n&&s<64;++o)(t=A.charCodeAt(o))<128?r[s>>>2]|=t<<l[3&s++]:t<2048?(r[s>>>2]|=(192|t>>>6)<<l[3&s++],r[s>>>2]|=(128|63&t)<<l[3&s++]):t<55296||t>=57344?(r[s>>>2]|=(224|t>>>12)<<l[3&s++],r[s>>>2]|=(128|t>>>6&63)<<l[3&s++],r[s>>>2]|=(128|63&t)<<l[3&s++]):(t=65536+((1023&t)<<10|1023&A.charCodeAt(++o)),r[s>>>2]|=(240|t>>>18)<<l[3&s++],r[s>>>2]|=(128|t>>>12&63)<<l[3&s++],r[s>>>2]|=(128|t>>>6&63)<<l[3&s++],r[s>>>2]|=(128|63&t)<<l[3&s++]);else if(V)for(s=this.start;o<n&&s<64;++o)a[s++]=A[o];else for(s=this.start;o<n&&s<64;++o)r[s>>>2]|=A[o]<<l[3&s++];this.lastByteIndex=s,this.bytes+=s-this.start,s>=64?(this.start=s-64,this.hash(),this.hashed=!0):this.start=s}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296|0,this.bytes=this.bytes%4294967296),this},M.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var A=this.blocks,e=this.lastByteIndex;A[e>>>2]|=h[3&e],e>=56&&(this.hashed||this.hash(),A[0]=A[16],A[16]=A[1]=A[2]=A[3]=A[4]=A[5]=A[6]=A[7]=A[8]=A[9]=A[10]=A[11]=A[12]=A[13]=A[14]=A[15]=0),A[14]=this.bytes<<3,A[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},M.prototype.hash=function(){var A,e,t,s,i,o,n=this.blocks;this.first?e=((e=((A=((A=n[0]-680876937)<<7|A>>>25)-271733879|0)^(t=((t=(-271733879^(s=((s=(-1732584194^2004318071&A)+n[1]-117830708)<<12|s>>>20)+A|0)&(-271733879^A))+n[2]-1126478375)<<17|t>>>15)+s|0)&(s^A))+n[3]-1316259209)<<22|e>>>10)+t|0:(A=this.h0,e=this.h1,t=this.h2,e=((e+=((A=((A+=((s=this.h3)^e&(t^s))+n[0]-680876936)<<7|A>>>25)+e|0)^(t=((t+=(e^(s=((s+=(t^A&(e^t))+n[1]-389564586)<<12|s>>>20)+A|0)&(A^e))+n[2]+606105819)<<17|t>>>15)+s|0)&(s^A))+n[3]-1044525330)<<22|e>>>10)+t|0),e=((e+=((A=((A+=(s^e&(t^s))+n[4]-176418897)<<7|A>>>25)+e|0)^(t=((t+=(e^(s=((s+=(t^A&(e^t))+n[5]+1200080426)<<12|s>>>20)+A|0)&(A^e))+n[6]-1473231341)<<17|t>>>15)+s|0)&(s^A))+n[7]-45705983)<<22|e>>>10)+t|0,e=((e+=((A=((A+=(s^e&(t^s))+n[8]+1770035416)<<7|A>>>25)+e|0)^(t=((t+=(e^(s=((s+=(t^A&(e^t))+n[9]-1958414417)<<12|s>>>20)+A|0)&(A^e))+n[10]-42063)<<17|t>>>15)+s|0)&(s^A))+n[11]-1990404162)<<22|e>>>10)+t|0,e=((e+=((A=((A+=(s^e&(t^s))+n[12]+1804603682)<<7|A>>>25)+e|0)^(t=((t+=(e^(s=((s+=(t^A&(e^t))+n[13]-40341101)<<12|s>>>20)+A|0)&(A^e))+n[14]-1502002290)<<17|t>>>15)+s|0)&(s^A))+n[15]+1236535329)<<22|e>>>10)+t|0,e=((e+=((s=((s+=(e^t&((A=((A+=(t^s&(e^t))+n[1]-165796510)<<5|A>>>27)+e|0)^e))+n[6]-1069501632)<<9|s>>>23)+A|0)^A&((t=((t+=(A^e&(s^A))+n[11]+643717713)<<14|t>>>18)+s|0)^s))+n[0]-373897302)<<20|e>>>12)+t|0,e=((e+=((s=((s+=(e^t&((A=((A+=(t^s&(e^t))+n[5]-701558691)<<5|A>>>27)+e|0)^e))+n[10]+38016083)<<9|s>>>23)+A|0)^A&((t=((t+=(A^e&(s^A))+n[15]-660478335)<<14|t>>>18)+s|0)^s))+n[4]-405537848)<<20|e>>>12)+t|0,e=((e+=((s=((s+=(e^t&((A=((A+=(t^s&(e^t))+n[9]+568446438)<<5|A>>>27)+e|0)^e))+n[14]-1019803690)<<9|s>>>23)+A|0)^A&((t=((t+=(A^e&(s^A))+n[3]-187363961)<<14|t>>>18)+s|0)^s))+n[8]+1163531501)<<20|e>>>12)+t|0,e=((e+=((s=((s+=(e^t&((A=((A+=(t^s&(e^t))+n[13]-1444681467)<<5|A>>>27)+e|0)^e))+n[2]-51403784)<<9|s>>>23)+A|0)^A&((t=((t+=(A^e&(s^A))+n[7]+1735328473)<<14|t>>>18)+s|0)^s))+n[12]-1926607734)<<20|e>>>12)+t|0,e=((e+=((o=(s=((s+=((i=e^t)^(A=((A+=(i^s)+n[5]-378558)<<4|A>>>28)+e|0))+n[8]-2022574463)<<11|s>>>21)+A|0)^A)^(t=((t+=(o^e)+n[11]+1839030562)<<16|t>>>16)+s|0))+n[14]-35309556)<<23|e>>>9)+t|0,e=((e+=((o=(s=((s+=((i=e^t)^(A=((A+=(i^s)+n[1]-1530992060)<<4|A>>>28)+e|0))+n[4]+1272893353)<<11|s>>>21)+A|0)^A)^(t=((t+=(o^e)+n[7]-155497632)<<16|t>>>16)+s|0))+n[10]-1094730640)<<23|e>>>9)+t|0,e=((e+=((o=(s=((s+=((i=e^t)^(A=((A+=(i^s)+n[13]+681279174)<<4|A>>>28)+e|0))+n[0]-358537222)<<11|s>>>21)+A|0)^A)^(t=((t+=(o^e)+n[3]-722521979)<<16|t>>>16)+s|0))+n[6]+76029189)<<23|e>>>9)+t|0,e=((e+=((o=(s=((s+=((i=e^t)^(A=((A+=(i^s)+n[9]-640364487)<<4|A>>>28)+e|0))+n[12]-421815835)<<11|s>>>21)+A|0)^A)^(t=((t+=(o^e)+n[15]+530742520)<<16|t>>>16)+s|0))+n[2]-995338651)<<23|e>>>9)+t|0,e=((e+=((s=((s+=(e^((A=((A+=(t^(e|~s))+n[0]-198630844)<<6|A>>>26)+e|0)|~t))+n[7]+1126891415)<<10|s>>>22)+A|0)^((t=((t+=(A^(s|~e))+n[14]-1416354905)<<15|t>>>17)+s|0)|~A))+n[5]-57434055)<<21|e>>>11)+t|0,e=((e+=((s=((s+=(e^((A=((A+=(t^(e|~s))+n[12]+1700485571)<<6|A>>>26)+e|0)|~t))+n[3]-1894986606)<<10|s>>>22)+A|0)^((t=((t+=(A^(s|~e))+n[10]-1051523)<<15|t>>>17)+s|0)|~A))+n[1]-2054922799)<<21|e>>>11)+t|0,e=((e+=((s=((s+=(e^((A=((A+=(t^(e|~s))+n[8]+1873313359)<<6|A>>>26)+e|0)|~t))+n[15]-30611744)<<10|s>>>22)+A|0)^((t=((t+=(A^(s|~e))+n[6]-1560198380)<<15|t>>>17)+s|0)|~A))+n[13]+1309151649)<<21|e>>>11)+t|0,e=((e+=((s=((s+=(e^((A=((A+=(t^(e|~s))+n[4]-145523070)<<6|A>>>26)+e|0)|~t))+n[11]-1120210379)<<10|s>>>22)+A|0)^((t=((t+=(A^(s|~e))+n[2]+718787259)<<15|t>>>17)+s|0)|~A))+n[9]-343485551)<<21|e>>>11)+t|0,this.first?(this.h0=A+1732584193|0,this.h1=e-271733879|0,this.h2=t-1732584194|0,this.h3=s+271733878|0,this.first=!1):(this.h0=this.h0+A|0,this.h1=this.h1+e|0,this.h2=this.h2+t|0,this.h3=this.h3+s|0)},M.prototype.hex=function(){this.finalize();var A=this.h0,e=this.h1,t=this.h2,s=this.h3;return c[A>>>4&15]+c[15&A]+c[A>>>12&15]+c[A>>>8&15]+c[A>>>20&15]+c[A>>>16&15]+c[A>>>28&15]+c[A>>>24&15]+c[e>>>4&15]+c[15&e]+c[e>>>12&15]+c[e>>>8&15]+c[e>>>20&15]+c[e>>>16&15]+c[e>>>28&15]+c[e>>>24&15]+c[t>>>4&15]+c[15&t]+c[t>>>12&15]+c[t>>>8&15]+c[t>>>20&15]+c[t>>>16&15]+c[t>>>28&15]+c[t>>>24&15]+c[s>>>4&15]+c[15&s]+c[s>>>12&15]+c[s>>>8&15]+c[s>>>20&15]+c[s>>>16&15]+c[s>>>28&15]+c[s>>>24&15]},M.prototype.toString=M.prototype.hex,M.prototype.digest=function(){this.finalize();var A=this.h0,e=this.h1,t=this.h2,s=this.h3;return[255&A,A>>>8&255,A>>>16&255,A>>>24&255,255&e,e>>>8&255,e>>>16&255,e>>>24&255,255&t,t>>>8&255,t>>>16&255,t>>>24&255,255&s,s>>>8&255,s>>>16&255,s>>>24&255]},M.prototype.array=M.prototype.digest,M.prototype.arrayBuffer=function(){this.finalize();var A=new ArrayBuffer(16),e=new Uint32Array(A);return e[0]=this.h0,e[1]=this.h1,e[2]=this.h2,e[3]=this.h3,A},M.prototype.buffer=M.prototype.arrayBuffer,M.prototype.base64=function(){for(var A,e,t,s="",i=this.array(),o=0;o<15;)A=i[o++],e=i[o++],t=i[o++],s+=q[A>>>2]+q[63&(A<<4|e>>>4)]+q[63&(e<<2|t>>>6)]+q[63&t];return A=i[o],s+=q[A>>>2]+q[A<<4&63]+"=="},f.prototype=new M,f.prototype.finalize=function(){if(M.prototype.finalize.call(this),this.inner){this.inner=!1;var A=this.array();M.call(this,this.sharedMemory),this.update(this.oKeyPad),this.update(A),M.prototype.finalize.call(this)}};var B=function(){var A=E("hex");n&&(A=I(A)),A.create=function(){return new M},A.update=function(e){return A.create().update(e)};for(var e=0;e<g.length;++e){var t=g[e];A[t]=E(t)}return A}();B.md5=B,B.md5.hmac=function(){var A=w("hex");A.create=function(A){return new f(A)},A.update=function(e,t){return A.create(e).update(t)};for(var e=0;e<g.length;++e){var t=g[e];A[t]=w(t)}return A}(),a?Bs.exports=B:i.md5=B}();var ys=Ts.exports;const Rs=(A,e)=>{const t=Date.now(),s=`${A}:${t}:${ys.md5(`${e}${t}`)}`,i=(new TextEncoder).encode(s);return btoa(String.fromCharCode(...i))},Ds=A=>/^\d+$/.test(A),Us="/v1/aicc/bmserver",ks="/v1/aicc/ccs";let Gs="",Fs="",Ys="",Zs="";function Os(){const A=Rs(Fs,Ys);return Qs.create({prefixUrl:`${Gs}`,timeout:!1,headers:{Authorization:A},hooks:{afterResponse:[async(A,e,t)=>{if(-1!==t.url.indexOf("heartbeat"))return t;const s=await t.clone().json();if(0!==s.code)throw new Error(JSON.stringify(s)||"请求失败");return t.json=async()=>s,t}]}})}async function vs(A,e){const t=Os(),s="api/"+A.replace(/^\/+/,"");return t.post(s,{json:e}).json()}const xs=A=>vs(`${ks}/state/change`,A),Ns=()=>async function(A,e){const t=Os(),s=A.replace(/^\/+/,"");return t.post(s,{json:e}).json()}("/heartbeat",{});class Ks{constructor(){this.roleData={agentInfo:()=>{if(!Ve.agentInfo?.agent_no)throw new Error(JSON.stringify({code:1,msg:"请先登录"}))},requestInfo:A=>{if(!A.data)throw new Error(JSON.stringify({code:1,msg:'Parameter "data" is required'}))},changeDevice:A=>{if(!A)throw new Error(JSON.stringify({code:1,msg:'Parameter "device" is required'}));const{answer_devices:e}=Ve.agentInfo;if(!e.split(",").map(A=>Number(A)).includes(A))throw new Error(JSON.stringify({code:1,msg:"当前状态不支持"}))},changeState:(A,e)=>{if(!A)throw new Error(JSON.stringify({code:1,msg:'Parameter "state" is required'}));if(!e)throw new Error(JSON.stringify({code:1,msg:'Parameter "state_name" is required'}));if(2===A&&("通话中"===e||"整理"===e))throw new Error(JSON.stringify({code:1,msg:"当前状态不支持"}));if(![1,2].includes(A))throw new Error(JSON.stringify({code:1,msg:"当前状态不支持"}))},setAgentExplicit:A=>{const{out_display_select_switch:e,out_display_data:t}=Ve.agentInfo;if(1!==e)throw new Error(JSON.stringify({code:1,msg:"当前坐席设置未开启允许指定外显"}));if(!A)throw new Error(JSON.stringify({code:1,msg:'Parameter "number" is required'}));if(!(t||"").split("#").includes(A))throw new Error(JSON.stringify({code:1,msg:"当前外显号码不存在"}))}}}formatDate(A){return`${A.getFullYear()}-${String(A.getMonth()+1).padStart(2,"0")}-${String(A.getDate()).padStart(2,"0")} ${String(A.getHours()).padStart(2,"0")}:${String(A.getMinutes()).padStart(2,"0")}:${String(A.getSeconds()).padStart(2,"0")}`}async _agentLogin(A){try{const t=await(e={agent_no:A},vs(`${ks}/agent/login`,e));Ve.agentInfo=t.data}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}var e}async _changeState(A){try{Ve.autoStateTimer&&(clearTimeout(Ve.autoStateTimer),Ve.autoStateTimer=null),this.roleData.agentInfo(),this.roleData.requestInfo(A);const{data:e,success:t}=A,{state:s,state_name:i}=e,{agent_no:o}=Ve.agentInfo;await xs({agent_no:o,state_name:i,state:s}),s===Ae.IDLE?he.updateActionConfigs(ft):s===Ae.BUSY&&he.updateActionConfigs(Bt),Ve.stateObject={state:s,state_name:i},t?.({code:0,msg:"请求成功"})}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async _getInCallCrmDetail(A){try{const{phone:e}=A.data,t={};Ds(e)?t.phone=e:t.trace_id=e;const s=await(A=>vs(`${Us}/crm/popups`,A))({...t});A.success?.(s)}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async changeDevice(A){try{if(he.get("isCalling"))throw new Error(JSON.stringify({code:1,msg:"当前正在通话中,请勿切换设备"}));this.roleData.agentInfo(),this.roleData.requestInfo(A);const{data:e,success:t}=A,{device:s}=e;1===s&&he.updateAnswerDevice(s),this.roleData.changeDevice(s);const{agent_no:i}=Ve.agentInfo;await(A=>vs(`${ks}/device/change`,A))({agent_no:i,answer_device:s}),he.updateAnswerDevice(s);const o=he.get("actionConfigs");he.updateActionConfigs(o),2===s&&Ve.stateObject.state===Ae.UNREGISTERED&&await this._changeState({data:{...Ve.stateBeforeChange,state_name:Ve.stateBeforeChange.state===Ae.IDLE?"空闲":"忙碌"}}),t?.({code:0,msg:"请求成功"})}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async changeState(A){try{if(he.get("isCalling"))throw new Error(JSON.stringify({code:1,msg:"当前正在通话中,请勿切换设备"}));Ve.autoStateTimer&&(clearTimeout(Ve.autoStateTimer),Ve.autoStateTimer=null),this.roleData.agentInfo(),this.roleData.requestInfo(A);const{data:e,success:t}=A,{state:s,state_name:i}=e;this.roleData.changeState(s,i);const{agent_no:o}=Ve.agentInfo;await xs({agent_no:o,state_name:i,state:s}),(Ve.stateObject.state===Ae.IDLE||Ve.stateObject.state===Ae.BUSY&&"整理"!==i)&&(Ve.stateBeforeChange=Ve.stateObject),s===Ae.IDLE?he.updateActionConfigs(ft):s===Ae.BUSY&&he.updateActionConfigs(Bt),Ve.stateObject={state:s,state_name:i},t?.({code:0,msg:"请求成功"})}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async getIdleAgentList(A){const{agent_no:e}=Ve.agentInfo;try{this.roleData.agentInfo();const t=await(A=>vs(`${ks}/agent/free`,A))({agent_no:e});A.success?.(t)}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async getAgentState(A){try{const e=await vs(`${Us}/agent/statecfg/list`,{}),t=(e.data||[]).filter(A=>0===A.enable).filter(A=>0!==A.state&&3!==A.state).filter(A=>"通话中"!==A.state_name&&"整理"!==A.state_name&&"未注册"!==A.state_name&&"离线接听"!==A.state_name).map(A=>({state:A.state,state_name:A.state_name})).reverse();A.success?.({...e,data:t})}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async setAgentExplicit(A){try{this.roleData.agentInfo(),this.roleData.requestInfo(A),this.roleData.setAgentExplicit(A.data.number);const{agent_id:e}=Ve.agentInfo;await(A=>vs(`${Us}/agent/update`,A))({agent_id:e,out_display_number:A.data.number}),he.updateSelectOutNumber(A.data.number),A.success?.({code:0,msg:"请求成功"})}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async checkAgentLogin(A){try{this.roleData.requestInfo(A);const{agent_no:e}=A.data;if(!e)throw new Error(JSON.stringify({code:1,msg:'Parameter "agent_no" is required'}));const t=await(A=>vs(`${ks}/agent/islogin`,A))({agent_no:e});A.success?.(t)}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async getCallRecord(A){try{this.roleData.agentInfo();const{success:e}=A,t=new Date,s=new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0),i=new Date(t.getFullYear(),t.getMonth(),t.getDate(),23,59,59),o=[this.formatDate(s),this.formatDate(i)],{agent_no:n}=Ve.agentInfo,r=await(A=>vs(`${Us}/agent/recordpage`,A))({start_time:o[0],end_time:o[1],page_no:1,page_size:10,agent_no:n}),{code:a,msg:V,data:c}=r;e?.({code:a,msg:V,data:c})}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async logout(A){this.roleData.agentInfo();try{const{agent_no:e}=Ve.agentInfo,{data:t,success:s}=A;await(A=>vs(`${ks}/agent/logout`,A))({...t,agent_no:e}),s?.({code:0,msg:""})}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async listenCall(A){try{const{agent_no:e}=Ve.agentInfo,{data:t,success:s}=A;if(this.roleData.agentInfo(),this.roleData.requestInfo(A),!t.monitored_agent_no)throw new Error(JSON.stringify({code:1,msg:'Parameter "monitored_agent_no" is required'}));await(A=>vs(`${ks}/call/monitor`,A))({...t,monitor_agent_no:e}),Ve.monitoredAgentNo=t.monitored_agent_no,s?.({code:0,msg:""})}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async earCall(A){try{const{agentInfo:e,monitoredAgentNo:t}=Ve,{agent_no:s}=e;this.roleData.agentInfo();const{success:i}=A;if(!t)throw new Error(JSON.stringify({code:1,msg:"当前未有监听坐席"}));await(A=>vs(`${ks}/call/whisper`,A))({monitored_agent_no:t,monitor_agent_no:s}),i?.({code:0,msg:""})}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async stopEarCall(A){try{const{agentInfo:e,earSpeakAgent:t}=Ve;if(!t)throw new Error(JSON.stringify({code:1,msg:"当前没有正在耳语的坐席"}));const{agent_no:s}=e;this.roleData.agentInfo();const{success:i}=A;await(A=>vs(`${ks}/call/stopwhisper`,A))({monitor_agent_no:s,monitored_agent_no:t}),i?.({code:0,msg:""})}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async forceInsert(A){try{const{agentInfo:e,monitoredAgentNo:t}=Ve,{agent_no:s}=e;this.roleData.agentInfo();const{success:i}=A;if(!t)throw new Error(JSON.stringify({code:1,msg:"当前未有监听坐席"}));await(A=>vs(`${ks}/call/bargein`,A))({monitored_agent_no:t,monitor_agent_no:s}),i?.({code:0,msg:""})}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}async forceDisconnect(A){try{const{agentInfo:e,monitoredAgentNo:t}=Ve,{agent_no:s}=e;this.roleData.agentInfo();const{success:i}=A;if(!t)throw new Error(JSON.stringify({code:1,msg:"当前未有监听坐席"}));await(A=>vs(`${ks}/call/intercept`,A))({monitored_agent_no:t,monitor_agent_no:s}),i?.({code:0,msg:""})}catch(A){throw ae.emit(oe.FAIL_NOTIFICATION,JSON.parse(A.message).msg),A}}}let bs=class extends Et{constructor(){super(...arguments),this.type="info",this.content="",this.duration=3e3}static{this.styles=Ce`
|
|
528
528
|
:host {
|
|
529
529
|
display: block;
|
|
530
530
|
margin-top: 10px;
|
|
@@ -689,7 +689,7 @@ Bs=Ts,function(){var t="input is invalid type",s="object"==typeof window,i=s?win
|
|
|
689
689
|
<my-tooltip content="拒接" color="#F5212D" @click="${()=>this.callApi.cancelCall()}">
|
|
690
690
|
<i class="ysyt icon-quxiao my-icon" style="color: #F5212D"></i>
|
|
691
691
|
</my-tooltip>
|
|
692
|
-
`,this.inCallAudio=new Audio("data:audio/mpeg;base64,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VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//viZAAP9lpNGesvTdg5gRAAe74zAAABpAAAACAAADSAAAAEsklut1lsjaBjnAhEhCQ7puJPodEPxwAkCCpIGIKIjUDM9Ixrx24L1kqYwUOiocEnyUAkHKhRK2InSowI0QQMWjQoUvYYxtMkexIy4FqWEtx2pBINauOknQroiwa4nA0h7lkbJnFCNIU8UwSIbJAC7m4b52GGWQ7izMA50IVbhDblMvqRVo1Dj9SS7X2qCxJ0/jtPg9z1TC+vL66SJ8HueqSTK4Xa8vpg+TtPgFwoJzz8iqcXYNCkiGShxNZUiIRoDwcOHUk1ipYPh4aOA2i40cKqTE4mYNKt3015FCjW3LvNLgY4zYRLTfhwjN6IDWN7TlI9DMzEMM6ItMzXUUDI8VBMHFYpMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ=="),this.waitAudio=new Audio("data:audio/mpeg;base64,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"),this.inCallAudio.loop=!0,this.waitAudio.loop=!0,this.container=A,this.statusParams=t,this.rttHTML=e;const{init_state:n,default_device:o}=this.VoiceSDKInstance.getAgentData(),r=Ve.agentInfo.out_display_number||"";this.default_device=o,this.selectNumber=r,1===n?this.statusParams={state:Ae.IDLE,statusName:"空闲"}:2===n&&(this.statusParams={state:Ae.BUSY,statusName:"忙碌"}),he.subscribe(this.handleCallInfoChange),le.subscribe(this.handleNetworkInfoChange);const a=()=>{this.hiddenSelect()};document.removeEventListener("click",a),document.addEventListener("click",a),this.eventHandle(),this.getAgentStateList()}play(A){A.play()}playFromStart(A){A.currentTime=0,A.play()}pause(A){A.pause()}eventHandle(){ae.on(ie.AGENT_STATE,A=>{this.statusParams={state:A.state,statusName:A.state_name},this.render()}),ae.on(ie.CONSULT_FAILED,()=>{Hs("咨询失败")}).on(ie.OUT_FAILED,A=>{Hs(`外呼失败: ${A}`)}).on(ie.SATISFACTION_EVALUATION_FAILED,A=>{Hs(`满意度评价失败: ${A}`)}).on(ie.CUSTOMER_INFO,A=>{this.customerInfo=A,this.render()}).on(ne.SELECT_EXTERNAL_NUMBER,A=>{this.selectNumber=A}).on(ne.FAIL_NOTIFICATION,A=>{Hs(A)}).on(ne.KICK_OFF,()=>{js("您的座席账号已在别处登录,请重新登录。如非您本人操作,请及时修改密码。"),this.isLoad=!1,this.render()}),ae.on(ne.EVENT_ALL,({event:A})=>{switch(A){case ie.OUT_SUCCESS:case ie.CONSULT_RINGING:return void this.playFromStart(this.waitAudio);case ie.OUT_OFF_ANSWER:case ie.OUT_FAILED:case ie.CONSULT_FAILED:case ie.OUT_RINGING:case ie.CONSULT_OFF_HOOK:return void this.pause(this.waitAudio);case ie.CONSULT_INCOMING:case ie.TRANSFER_INCOMING_CALL:case ie.INCOMING_CALL:return void this.playFromStart(this.inCallAudio);case ie.TRANSFER_OFF_HOOK:case ie.CONSULT_CALL_IN_SUCCESS:case ie.INCOMING_CALL_OFF_HOOK:return void this.pause(this.inCallAudio);case ie.THREE_WAY_OUR_SIDE_HANGUP:case ie.OUR_SIDE_CONSULT_HANGUP:case ie.OUT_HANGUP:case ie.INCOMING_CALL_END:return this.pause(this.inCallAudio),void this.pause(this.waitAudio);default:return null}})}async setOutNumber(A){try{await this.apiClient.setAgentExplicit({data:{number:A},success:()=>{Ls(`设置[${A}]外显号码成功`),this.render()}})}catch(A){Hs("设置外显号码失败")}}async getAgentStateList(){try{await this.apiClient.getAgentState({success:({data:A,code:e})=>{0===e?(this.agentStateData=A,this.render()):Hs("获取状态列表失败")}})}catch(A){}}onKeyPress(A){A.detail.key}async renderConsultModalToBody(){try{await this.apiClient.getIdleAgentList({success:A=>{const{data:e}=A,t=e||[];if(0===t.length&&(this.consultShow=!1,js("没有空闲坐席")),!this.consultShow)return void(this.modalRoot&&(document.body.removeChild(this.modalRoot),this.modalRoot=null));this.modalRoot||(this.modalRoot=document.createElement("div"),document.body.appendChild(this.modalRoot));const s=et`
|
|
692
|
+
`,this.inCallAudio=new Audio("data:audio/mpeg;base64,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VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//viZAAP9lpNGesvTdg5gRAAe74zAAABpAAAACAAADSAAAAEsklut1lsjaBjnAhEhCQ7puJPodEPxwAkCCpIGIKIjUDM9Ixrx24L1kqYwUOiocEnyUAkHKhRK2InSowI0QQMWjQoUvYYxtMkexIy4FqWEtx2pBINauOknQroiwa4nA0h7lkbJnFCNIU8UwSIbJAC7m4b52GGWQ7izMA50IVbhDblMvqRVo1Dj9SS7X2qCxJ0/jtPg9z1TC+vL66SJ8HueqSTK4Xa8vpg+TtPgFwoJzz8iqcXYNCkiGShxNZUiIRoDwcOHUk1ipYPh4aOA2i40cKqTE4mYNKt3015FCjW3LvNLgY4zYRLTfhwjN6IDWN7TlI9DMzEMM6ItMzXUUDI8VBMHFYpMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ=="),this.waitAudio=new Audio("data:audio/mpeg;base64,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"),this.inCallAudio.loop=!0,this.waitAudio.loop=!0,this.container=A,this.statusParams=t,this.rttHTML=e;const{init_state:o,default_device:n}=this.VoiceSDKInstance.getAgentData(),r=Ve.agentInfo.out_display_number||"";this.default_device=n,this.selectNumber=r,1===o?this.statusParams={state:Ae.IDLE,statusName:"空闲"}:2===o&&(this.statusParams={state:Ae.BUSY,statusName:"忙碌"}),he.subscribe(this.handleCallInfoChange),le.subscribe(this.handleNetworkInfoChange);const a=()=>{this.hiddenSelect()};document.removeEventListener("click",a),document.addEventListener("click",a),this.eventHandle(),this.getAgentStateList()}play(A){A.play()}playFromStart(A){A.currentTime=0,A.play()}pause(A){A.pause()}eventHandle(){ae.on(ie.AGENT_STATE,A=>{this.statusParams={state:A.state,statusName:A.state_name},this.render()}),ae.on(ie.CONSULT_FAILED,()=>{Hs("咨询失败")}).on(ie.OUT_FAILED,A=>{Hs(`外呼失败: ${A}`)}).on(ie.SATISFACTION_EVALUATION_FAILED,A=>{Hs(`满意度评价失败: ${A}`)}).on(ie.CUSTOMER_INFO,A=>{this.customerInfo=A,this.render()}).on(oe.SELECT_EXTERNAL_NUMBER,A=>{this.selectNumber=A}).on(oe.FAIL_NOTIFICATION,A=>{Hs(A)}).on(oe.KICK_OFF,()=>{js("您的座席账号已在别处登录,请重新登录。如非您本人操作,请及时修改密码。"),this.isLoad=!1,this.render()}),ae.on(oe.EVENT_ALL,({event:A})=>{switch(A){case ie.OUT_SUCCESS:case ie.CONSULT_RINGING:return void this.playFromStart(this.waitAudio);case ie.OUT_OFF_ANSWER:case ie.OUT_FAILED:case ie.CONSULT_FAILED:case ie.OUT_RINGING:case ie.CONSULT_OFF_HOOK:return void this.pause(this.waitAudio);case ie.CONSULT_INCOMING:case ie.TRANSFER_INCOMING_CALL:case ie.INCOMING_CALL:return void this.playFromStart(this.inCallAudio);case ie.TRANSFER_OFF_HOOK:case ie.CONSULT_CALL_IN_SUCCESS:case ie.INCOMING_CALL_OFF_HOOK:return void this.pause(this.inCallAudio);case ie.THREE_WAY_OUR_SIDE_HANGUP:case ie.OUR_SIDE_CONSULT_HANGUP:case ie.OUT_HANGUP:case ie.INCOMING_CALL_END:return this.pause(this.inCallAudio),void this.pause(this.waitAudio);default:return null}})}async setOutNumber(A){try{await this.apiClient.setAgentExplicit({data:{number:A},success:()=>{Ls(`设置[${A}]外显号码成功`),this.render()}})}catch(A){Hs("设置外显号码失败")}}async getAgentStateList(){try{await this.apiClient.getAgentState({success:({data:A,code:e})=>{0===e?(this.agentStateData=A,this.render()):Hs("获取状态列表失败")}})}catch(A){}}onKeyPress(A){A.detail.key}async renderConsultModalToBody(){try{await this.apiClient.getIdleAgentList({success:A=>{const{data:e}=A,t=e||[];if(0===t.length&&(this.consultShow=!1,js("没有空闲坐席")),!this.consultShow)return void(this.modalRoot&&(document.body.removeChild(this.modalRoot),this.modalRoot=null));this.modalRoot||(this.modalRoot=document.createElement("div"),document.body.appendChild(this.modalRoot));const s=et`
|
|
693
693
|
<my-modal-wrapper
|
|
694
694
|
.visible=${!0}
|
|
695
695
|
.showFooter=${!1}
|
|
@@ -763,7 +763,7 @@ Bs=Ts,function(){var t="input is invalid type",s="object"==typeof window,i=s?win
|
|
|
763
763
|
`}
|
|
764
764
|
</div>
|
|
765
765
|
</my-modal-wrapper>
|
|
766
|
-
`;mt(s,this.modalRoot)}})}catch(A){Hs(A)}}getActionConfigs(){const A=he.get("actionConfigs");return[{render:this.renderCallPopover,type:"call_number"},{render:this.renderAnswer,type:"answer"},{render:this.renderReject,type:"reject"},{render:this.renderHangup,type:"hangup"},{render:this.renderDialer,type:"dtmf"},{render:this.renderUnhold,type:"unhold"},{render:this.renderHold,type:"hold"},{render:this.renderMute,type:"mute"},{render:this.renderUnmute,type:"unmute"},{render:this.renderSatisfaction,type:"satisfaction"},{render:this.renderConsult,type:"consult"},{render:this.renderTransfer,type:"transfer"},{render:this.renderConsultTransfer,type:"consult_transfer"},{render:this.renderConsultRetrieve,type:"consult_retrieve"},{render:this.renderConference,type:"conference"}].filter(({type:e})=>A.includes(e))}async render(){if(!this.isLoad)return void mt(et`<span></span>`,this.container);const{displayText:A}=he.getState(),{answer_devices:e,out_display_data:t,out_display_select_switch:s}=Ve.agentInfo,i=(e||"").split(","),
|
|
766
|
+
`;mt(s,this.modalRoot)}})}catch(A){Hs(A)}}getActionConfigs(){const A=he.get("actionConfigs");return[{render:this.renderCallPopover,type:"call_number"},{render:this.renderAnswer,type:"answer"},{render:this.renderReject,type:"reject"},{render:this.renderHangup,type:"hangup"},{render:this.renderDialer,type:"dtmf"},{render:this.renderUnhold,type:"unhold"},{render:this.renderHold,type:"hold"},{render:this.renderMute,type:"mute"},{render:this.renderUnmute,type:"unmute"},{render:this.renderSatisfaction,type:"satisfaction"},{render:this.renderConsult,type:"consult"},{render:this.renderTransfer,type:"transfer"},{render:this.renderConsultTransfer,type:"consult_transfer"},{render:this.renderConsultRetrieve,type:"consult_retrieve"},{render:this.renderConference,type:"conference"}].filter(({type:e})=>A.includes(e))}async render(){if(!this.isLoad)return void mt(et`<span></span>`,this.container);const{displayText:A}=he.getState(),{answer_devices:e,out_display_data:t,out_display_select_switch:s}=Ve.agentInfo,i=(e||"").split(","),o=this.getActionConfigs(),n={...wt},{statusColor:r}=n,a=document.querySelector("head"),{city:V,contact_count:c,customer_name:h,phone:l,province:g}=this.customerInfo||{};if(a){const A=et`
|
|
767
767
|
<style>
|
|
768
768
|
.ysyt-phone-body {
|
|
769
769
|
background: ${r[this.statusParams.state]};
|
|
@@ -837,7 +837,7 @@ Bs=Ts,function(){var t="input is invalid type",s="object"==typeof window,i=s?win
|
|
|
837
837
|
</div>
|
|
838
838
|
<timer-component id="my-timer"></timer-component>
|
|
839
839
|
</div>
|
|
840
|
-
<div class="ysyt-action-body">${
|
|
840
|
+
<div class="ysyt-action-body">${o.map(A=>A.render())}</div>
|
|
841
841
|
${1===s?et`<div class="out-display-body">
|
|
842
842
|
<div style="width: 100px;">
|
|
843
843
|
<my-icon-popup>
|
|
@@ -911,4 +911,4 @@ Bs=Ts,function(){var t="input is invalid type",s="object"==typeof window,i=s?win
|
|
|
911
911
|
`:""}
|
|
912
912
|
</div>
|
|
913
913
|
</my-popover>
|
|
914
|
-
`;mt(s,this.rttHTML)}}class Ps{static requestPermission(){"Notification"in window&&"default"===Notification.permission&&Notification.requestPermission()}static async requestMediaPermissions(){try{const A=await navigator.mediaDevices.enumerateDevices();if(A.some(A=>"audioinput"===A.kind&&""!==A.label))return null;return await navigator.mediaDevices.getUserMedia({audio:!0})}catch(A){return console.warn("获取音频权限失败:",A),null}}static show(A,e,t,s){if("Notification"in window&&"granted"===Notification.permission){const i=new Notification(A,{body:e,tag:`xy-global-notification${(new Date).getTime()}`,renotify:!0});i.onclick=()=>{window.focus(),i.close(),t?.()},setTimeout(()=>i.close(),1e3*(s||3))}}static async checkMediaPermissions(){try{return(await navigator.mediaDevices.enumerateDevices()).some(A=>"audioinput"===A.kind&&""!==A.label)}catch(A){return console.warn("无法检查设备权限:",A),!1}}}const zs=console.log,Xs=(...A)=>{Ve.logBuiltinEnabled&&zs(...A)};let _s=null;class $s{constructor(A){this.url=A,this.ws=null,this.heartbeatWorker=null,this.reconnectDelay=3e3,this.manualClose=!1,this.apiClient=new Ks,this.sipClient=null,this.pendingMessages=new Map,this.initWebSocket()}static getInstance({url:A,sipClient:e}){if(!_s){if(!A)throw new Error("WebSocket 尚未初始化");_s=new $s(A),_s.sipClient=e}return _s}stateIdleChange(){const{state:A}=Ve.stateObject;A!==Ae.IDLE&&(Ve.stateBeforeChange,this.apiClient._changeState({data:{...Ve.stateBeforeChange,state_name:Ve.stateBeforeChange.state===Ae.IDLE?"空闲":"忙碌"}}))}inCallAutoAnswer(){const{soft_device_auto_answer:A,auto_answer_time:e}=Ve.agentInfo,t=1===A,s=he.get("direction");if(t&&s===ee.INCOMING){const A=Number(e)||0;A>0&&(Ve.autoAnswerTimer=setTimeout(()=>{this.sipClient?.answerCall(),Ve.autoAnswerTimer=null},1e3*A))}}async getCustomerInfo(A){try{await this.apiClient._getInCallCrmDetail({data:{phone:A},success:A=>{he.updateCustomerInfo(A.data||{phone:A.data.phone,is_vip:0,customer_name:"未知客户",city:"未知",province:"未知",contact_count:0,in_contact_count:0,trace_id:A.data.trace_id,contact_count_month:0,in_contact_count_month:0})}})}catch(A){}}putAgentState(A,e){if(!A)return;if(5===e)return void this.stateIdleChange();Ve.sessionId="";const{post_call_process_time:t}=Ve.agentInfo,s=t||0;if(Ve.autoStateTimer&&(clearTimeout(Ve.autoStateTimer),Ve.autoStateTimer=null),he.updateCustomerInfo(void 0),s>0){const{state:A}=Ve.stateObject;if(A===Ae.IDLE)return;this.apiClient._changeState({data:{state:Ae.BUSY,state_name:"整理"}}),Ve.autoStateTimer=setTimeout(()=>{Ve.autoStateTimer=null,this.stateIdleChange()},1e3*s)}else this.stateIdleChange()}stateBusyChange(){Ve.sessionId="",clearTimeout(Ve.autoStateTimer),he.updateCustomerInfo(void 0),this.apiClient._changeState({data:{state:Ae.BUSY,state_name:"忙碌"}})}initWebSocket(){if(1===this.ws?.readyState)return;const A=Rs(Fs,Ys);this.ws=new WebSocket(this.url+A),this.ws.onopen=()=>{const A=(new Date).getTime();this.sendMessage({type:0,msg_id:A}),this.pendingMessages.set(A,performance.now()),this.startHeartbeat(),this.manualClose=!1},this.ws.onmessage=async A=>{const e=JSON.parse(A.data),{type:t,data:s,code:i,msg:n,msg_id:o}=e;if(0===t&&o){const A=this.pendingMessages.get(o),e=performance.now()-A;Ve.latency=parseFloat(e.toFixed(2)),this.pendingMessages.delete(o)}if(0!==t&&Xs("%cWebSocket 收到消息:","color: blue; font-weight: bold;",e),t!==te.OUT_CALL&&t!==te.PREVIEW_OUT_CALL||(0!==i?(he.reset(),ae.emit(ie.OUT_FAILED,n),ae.emit(ne.FAIL_NOTIFICATION,n),he.updateActionConfigs(ft),setTimeout(()=>{he.updateCustomerInfo(void 0)},500),this.stateIdleChange()):0===i&&(ae.emit(ie.OUT_SUCCESS),clearTimeout(Ve.autoStateTimer))),t===te.AGENT_STATE){const{state:A,state_name:e}=s;Ve.stateObject={state:A,state_name:e},"振铃中"===e&&he.updateDisplayText(oe.AGENT_RINGING),A===Ae.UNREGISTERED&&he.updateActionConfigs(Mt),A===Ae.IDLE&&Ve.stateObject.state===Ae.UNREGISTERED&&he.updateActionConfigs(ft),ae.emit(ie.AGENT_STATE,{state:A,state_name:e})}if(t===te.OUT_CALL_INCOMING_CALL){try{await this.getCustomerInfo(s.trace_id||s.customer_phone)}catch(A){console.error(A)}s.preview_task_id?ae.emit(ie.PREVIEW_OUT_INCOMING_CALL,{customer_phone:s.customer_phone,session_id:s.session_id,preview_task_id:s.preview_task_id,trace_id:s.trace_id}):ae.emit(ie.OUT_INCOMING_CALL,{customer_phone:s.customer_phone,session_id:s.session_id,trace_id:s.trace_id}),Ve.sessionId=s.session_id,he.updateActionConfigs(Qt)}if(t===te.OUT_CALL_END)if(he.updateDisplayText(""),1===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)this.putAgentState(!0),he.reset(),ae.emit(ie.OUT_HANGUP,{session_id:s.session_id}),he.updateActionConfigs(ft);else if(2===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)he.reset(),ae.emit(ie.OUR_SIDE_CONSULT_HANGUP,{session_id:s.session_id}),this.putAgentState(!0),he.updateActionConfigs(ft);else if(2===s.device_type&&s.agent_no!==Ve.agentInfo.agent_no){he.get("isCalling")&&(he.updateDisplayText(oe.CALLING),ae.emit(ie.OTHER_SIDE_CONSULT_HANGUP,{session_id:s.session_id}),he.updateActionConfigs(St))}else if(3===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)this.putAgentState(!0),he.reset(),ae.emit(ie.THREE_WAY_OUR_SIDE_HANGUP,{session_id:s.session_id}),he.updateActionConfigs(ft);else if(4===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)this.putAgentState(!0),he.reset(),ae.emit(ie.TRANSFER_END,{session_id:s.session_id}),he.updateActionConfigs(ft);else if(4===s.device_type&&s.agent_no!==Ve.agentInfo.agent_no){ae.emit(ie.TRANSFER_FAILED,"未知原因"),ae.emit(ne.FAIL_NOTIFICATION,"转接失败");const A=he.get("direction");A===ee.OUTGOING?he.updateActionConfigs(St):A===ee.INCOMING&&he.updateActionConfigs(Ut)}else 5===s.device_type&&s.agent_no===Ve.agentInfo.agent_no&&(this.putAgentState(!0,5),Ve.monitoredAgentNo="",Ve.earSpeakAgent="",he.reset(),ae.emit(ie.LISTEN_HANGUP,{session_id:s.session_id}),he.updateActionConfigs(ft));if(t===te.OUT_CALL_RINGING&&1===s.type&&(ae.emit(ie.OUT_RINGING,{session_id:Ve.sessionId,type:s.type}),he.updateDisplayText(oe.RINGING)),t===te.OUT_CALL_ANSWER&&(clearTimeout(Ve.autoStateTimer),he.updateIsCalling(!0),ae.emit(ie.OUT_OFF_ANSWER,{session_id:Ve.sessionId}),he.updateOutCallIsAnswer(!0),he.updateDisplayText(oe.CALLING),he.updateActionConfigs(St)),t===te.CONSULT_RINGING&&(ae.emit(ie.CONSULT_RINGING,{session_id:s.session_id}),he.updateDisplayText(oe.AGENT_RINGING),he.updateActionConfigs([]),clearTimeout(Ve.autoStateTimer)),t===te.CONSULT_ANSWER&&(ae.emit(ie.CONSULT_OFF_HOOK,{session_id:s.session_id}),he.updateConsultIsAnswer(!0),he.updateDisplayText(oe.CONSULTING),he.updateActionConfigs(Tt)),t===te.CONSULT_FAIL&&(ae.emit(ie.CONSULT_FAILED,{custom_reason:s.custom_reason}),he.updateDisplayText(oe.CALLING),he.updateActionConfigs(St)),t===te.CONSULT_CALL_IN&&(ae.emit(ie.CONSULT_INCOMING,{agent_no:s.agent_no,agent_mane:s.agent_name,session_id:s.session_id}),Ve.sessionId=s.session_id,he.updateIsCalling(!0),he.updateDirection(ee.CONSULT),he.updateDisplayText(oe.CONSULT_CALL_IN),he.updateActionConfigs(Dt),Ve.enableBrowserAlert&&Ps.show("📞 咨询来电",`坐席 [${s.agent_name}] 正在咨询...`,()=>{ae.emit(ne.NOTIFICATION_CLICK,{agent_mane:s.agent_name,agent_no:s.agent_no})},Ve.browserAlertTime)),t===te.CONSULT_CALL_IN_SUCCESS&&(ae.emit(ie.CONSULT_CALL_IN_SUCCESS,{session_id:s.session_id}),he.updateConsultIsAnswer(!0),he.updateDisplayText(oe.CALLING),he.updateActionConfigs(yt)),t===te.CONSULT_RETURN_CALL_SUCCESS&&("success"===s.status?(he.updateConsultIsAnswer(!1),ae.emit(ie.CONSULT_RETURN_CALL_SUCCESS),he.updateDisplayText(oe.CALLING),ae.emit(ie.OTHER_SIDE_CONSULT_HANGUP),he.updateActionConfigs(St)):ae.emit(ne.FAIL_NOTIFICATION,"媒体失败")),t===te.MUTE&&(0===i?(he.updateIsMuted(!0),ae.emit(ie.MUTE_SUCCESS),he.updateDisplayText(oe.MUTING)):(ae.emit(ie.MUTE_FAILED,n),ae.emit(ne.FAIL_NOTIFICATION,n))),t===te.UNMUTE&&(0===i?(he.updateIsMuted(!1),ae.emit(ie.UNMUTE_SUCCESS),he.updateDisplayText(oe.CALLING)):(ae.emit(ie.UNMUTE_FAILED,n),ae.emit(ne.FAIL_NOTIFICATION,n))),t===te.CALL_HOLD&&(0===i?(he.updateIsHold(!0),he.updateDisplayText(oe.HOLDING),ae.emit(ie.HOLD_SUCCESS)):(ae.emit(ie.HOLD_FAILED,n),ae.emit(ne.FAIL_NOTIFICATION,n))),t===te.CALL_UNHOLD&&(0===i?(he.updateDisplayText(oe.CALLING),he.updateIsHold(!1),ae.emit(ie.UNHOLD_SUCCESS)):(ae.emit(ie.UNHOLD_FAILED,n),ae.emit(ne.FAIL_NOTIFICATION,n))),t===te.CONSULT_TRANSFER&&(0===i?ae.emit(ie.CONSULT_TRANSFER_SUCCESS):(ae.emit(ie.CONSULT_TRANSFER_FAILED,n),ae.emit(ne.FAIL_NOTIFICATION,n))),t===te.CONSULT_TRANSFER_FAILED&&ae.emit(ie.CONSULT_TRANSFER_FAILED,s.status),t===te.CONSULT_TRANSFER_OFF_HOOK&&(he.updateDirection(ee.INCOMING),he.updateDisplayText(oe.CALLING),ae.emit(ie.CONSULT_TRANSFER_OFF_HOOK),he.updateActionConfigs(Ut),he.updateIncomingIsAnswer(!0),he.updateConsultIsAnswer(!1)),t===te.INCOMING_CALL){clearTimeout(Ve.autoStateTimer),Ve.sessionId=s.session_id;try{await this.getCustomerInfo(s.trace_id||s.customer_phone)}catch(A){console.error(A)}he.updateIsCalling(!0),he.updateDirection(ee.INCOMING),this.inCallAutoAnswer(),he.updateDisplayText(oe.INCOMING_CALL),1===s.direction&&ae.emit(ie.INCOMING_CALL,{customer_phone:s.customer_phone,trace_id:s.trace_id,session_id:s.session_id}),3===s.direction&&(ae.emit(ie.PREDICT_INCOMING_CALL,{customer_phone:s.customer_phone,trace_id:s.trace_id,session_id:s.session_id}),this.sipClient?.answerCall()),he.updateActionConfigs(Dt),Ve.enableBrowserAlert&&Ps.show("📞 客户来电",`客户 [${s.customer_phone}] 正在呼入...`,()=>{ae.emit(ne.NOTIFICATION_CLICK,{customer_phone:s.customer_phone})},Ve.browserAlertTime)}if(t===te.INCOMING_CALL_OFF_HOOK&&(he.updateIncomingIsAnswer(!0),ae.emit(ie.INCOMING_CALL_OFF_HOOK,{session_id:Ve.sessionId}),he.updateActionConfigs(Ut),he.updateDisplayText(oe.CALLING)),t===te.INCOMING_CALL_END)if(he.updateDisplayText(""),1===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)this.putAgentState(!0),he.reset(),ae.emit(ie.INCOMING_CALL_END,{session_id:s.session_id}),he.updateActionConfigs(ft);else if(2===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)he.reset(),ae.emit(ie.OUR_SIDE_CONSULT_HANGUP,{session_id:s.session_id}),this.putAgentState(!0),he.updateActionConfigs(ft);else if(2===s.device_type&&s.agent_no!==Ve.agentInfo.agent_no)he.updateDisplayText(oe.CALLING),ae.emit(ie.OTHER_SIDE_CONSULT_HANGUP,{session_id:s.session_id}),he.updateActionConfigs(St);else if(3===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)this.putAgentState(!0),he.reset(),ae.emit(ie.THREE_WAY_OUR_SIDE_HANGUP,{session_id:s.session_id}),he.updateActionConfigs(ft);else if(4===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)this.putAgentState(!0),he.reset(),ae.emit(ie.TRANSFER_END,{session_id:s.session_id}),he.updateActionConfigs(ft);else if(4===s.device_type&&s.agent_no!==Ve.agentInfo.agent_no){ae.emit(ie.TRANSFER_FAILED,"未知原因"),ae.emit(ne.FAIL_NOTIFICATION,"转接失败");const A=he.get("direction");A===ee.OUTGOING?he.updateActionConfigs(St):A===ee.INCOMING&&he.updateActionConfigs(Ut)}else 5===s.device_type&&s.agent_no===Ve.agentInfo.agent_no&&(this.putAgentState(!0,5),Ve.monitoredAgentNo="",Ve.earSpeakAgent="",he.reset(),ae.emit(ie.LISTEN_HANGUP,{session_id:s.session_id}),he.updateActionConfigs(ft));if(t===te.SATISFACTION_EVALUATION&&(0===i?ae.emit(ie.SATISFACTION_EVALUATION_SUCCESS):(ae.emit(ie.SATISFACTION_EVALUATION_FAILED,n),ae.emit(ne.FAIL_NOTIFICATION,n))),t===te.CONSULT_THREE_WAY&&(0!==i?(ae.emit(ie.CONSULT_THREE_WAY_FAILED,n),ae.emit(ne.FAIL_NOTIFICATION,n)):0===i&&he.updateIsMeeting(!0)),t===te.CONSULT_THREE_WAY_RESULT&&("success"===s.status?(he.updateDirection(ee.MEETING),he.updateDisplayText(oe.MEETING),he.updateActionConfigs(Rt),ae.emit(ie.CONSULT_THREE_WAY_SUCCESS)):(ae.emit(ie.CONSULT_THREE_WAY_FAILED,{conf_name:s.conf_name}),he.updateIsMeeting(!1))),t===te.TRANSFER_INCOMING_CALL&&(clearTimeout(Ve.autoStateTimer),s.agent_no===Ve.agentInfo.agent_no?(he.updateDisplayText(oe.TRANSFERRING),ae.emit(ie.TRANSFER_PROGRESS),he.updateActionConfigs([]),he.updateTransferIsAnswer(!0)):(Ve.sessionId=s.session_id,ae.emit(ie.TRANSFER_INCOMING_CALL,{agent_no:s.agent_no,agent_name:s.agent_name,session_id:s.session_id}),he.updateIsCalling(!0),he.updateDirection(ee.TRANSFER),he.updateDisplayText(oe.TRANSFER_INCOMING_CALL),he.updateActionConfigs(Dt),Ve.enableBrowserAlert&&Ps.show("📞 转接来电",`坐席 [${s.agent_no}] 正在转接...`,()=>{ae.emit(ne.NOTIFICATION_CLICK,{agent_no:s.agent_no})},Ve.browserAlertTime))),t===te.TRANSFER_OFF_HOOK&&(ae.emit(ie.TRANSFER_OFF_HOOK,{session_id:Ve.sessionId}),he.updateTransferIsAnswer(!1),he.updateDisplayText(oe.CALLING),he.updateActionConfigs(Ut)),t===te.TRANSFER_FAILED&&"failed"===s.status){ae.emit(ie.TRANSFER_FAILED,"未知原因"),ae.emit(ne.FAIL_NOTIFICATION,"转接失败");const A=he.get("direction");A===ee.OUTGOING?he.updateActionConfigs(St):A===ee.INCOMING&&he.updateActionConfigs(Ut)}t===te.KICK_OFFLINE&&ae.emit(ne.KICK_OFF),t===te.CONTINUOUS_NOT_ANSWER&&(ae.emit(ne.FAIL_NOTIFICATION,`已连续 ${s.miss_count} 次未接, 设置忙碌`),this.stateBusyChange()),t===te.SIGN_OUT&&ae.emit(ne.SIGN_OUT),t===te.SIGN_IN_SWITCH_DEVICE&&ae.emit(ne.SIGN_IN_SWITCH_DEVICE,s),t===te.LISTEN_INCOMING_CALL&&(clearTimeout(Ve.autoStateTimer),Ve.sessionId=s.session_id,he.updateIsCalling(!0),he.updateDirection(ee.INCOMING),this.inCallAutoAnswer(),he.updateDisplayText(oe.LISTENING),he.updateActionConfigs(Dt),ae.emit(ie.LISTEN_INCOMING_CALL,{session_id:s.session_id}),Ve.enableBrowserAlert&&Ps.show("📞 监听来电","正在来电...",()=>{ae.emit(ne.NOTIFICATION_CLICK,{customer_phone:s.customer_phone})},Ve.browserAlertTime)),t===te.LISTEN_INCOMING_CALL_OFF_HOOK&&(Ve.monitoredAgentNo=s.monitored_agent_no,Ve.earSpeakAgent="",he.updateIncomingIsAnswer(!0),ae.emit(ie.LISTEN_INCOMING_CALL_OFF_HOOK,{session_id:Ve.sessionId,monitored_agent_no:s.monitored_agent_no}),he.updateActionConfigs(kt),he.updateDisplayText(oe.CALLING)),t===te.LISTEN_CALL_FAILED&&"failed"===s.status&&(ae.emit(ie.LISTEN_CALL_FAILED),Ve.monitoredAgentNo=""),t===te.EAR_SPEECH&&("success"===s.status?(s.monitored_agent_no===Ve.agentInfo.agent_no&&(he.updateActionConfigs(Gt),ae.emit(ie.EAR_SPEECH_BE_SUCCESS)),s.monitor_agent_no===Ve.agentInfo.agent_no&&(he.updateActionConfigs(Ft),ae.emit(ie.EAR_SPEECH_SUCCESS,{monitored_agent_no:s.monitored_agent_no,monitor_agent_no:s.monitor_agent_no}),Ve.earSpeakAgent=s.monitored_agent_no)):ae.emit(ie.EAR_SPEECH_FAILED)),t===te.STOP_EAR_SPEECH&&("success"===s.status?(s.monitored_agent_no===Ve.agentInfo.agent_no&&he.updateActionConfigs(Ut),s.monitor_agent_no===Ve.agentInfo.agent_no&&he.updateActionConfigs(kt),Ve.earSpeakAgent="",ae.emit(ie.STOP_EAR_SPEECH_SUCCESS)):ae.emit(ie.STOP_EAR_SPEECH_FAILED)),t===te.CALL_FORCE_INSERT&&("success"===s.status?(s.monitored_agent_no===Ve.agentInfo.agent_no&&(he.updateActionConfigs(Zt),ae.emit(ie.CALL_FORCE_INSERT_SUCCESS,{monitored_agent_no:s.monitored_agent_no,monitor_agent_no:s.monitor_agent_no})),s.monitor_agent_no===Ve.agentInfo.agent_no&&(he.updateActionConfigs(Yt),ae.emit(ie.CALL_FORCE_INSERT_SUCCESS_LISTENER,{monitored_agent_no:s.monitored_agent_no,monitor_agent_no:s.monitor_agent_no}))):ae.emit(ie.CALL_FORCE_INSERT_FAILED))},this.ws.onclose=()=>{this.stopHeartbeat(),this.manualClose||setTimeout(()=>this.initWebSocket(),this.reconnectDelay)},this.ws.onerror=()=>{this.ws?.close()}}startHeartbeat(){const A=new Blob(["\n let timer;\n self.onmessage = function (e) {\n if (e.data === 'start') {\n timer = setInterval(() => {\n self.postMessage('heartbeat');\n }, 5000);\n } else if (e.data === 'stop') {\n clearInterval(timer);\n }\n };\n "],{type:"application/javascript"}),e=URL.createObjectURL(A);this.heartbeatWorker=new Worker(e),this.heartbeatWorker.onmessage=()=>{const A=(new Date).getTime();this.sendMessage({type:0,msg_id:A}),this.pendingMessages.set(A,performance.now())},this.heartbeatWorker.postMessage("start")}stopHeartbeat(){this.heartbeatWorker&&(this.heartbeatWorker.postMessage("stop"),this.heartbeatWorker.terminate(),this.heartbeatWorker=null)}sendMessage(A){this.ws?.readyState===WebSocket.OPEN?(this.ws.send(JSON.stringify(A)),0!==A.type&&Xs("%cWebSocket 发送消息:","color: green; font-weight: bold;",A)):console.warn("WebSocket 未连接,消息未发送")}close(){this.manualClose=!0,this.stopHeartbeat(),this.ws?.close()}reconnect(){this.initWebSocket()}static __internalClose(){_s&&(_s.close(),_s=null)}static __internalSend(A){if(!_s)throw new Error("WebSocket 尚未初始化");_s.sendMessage(A)}}class Ai{constructor(A){this.sipClient=null,this.sipClient=A}roleMute(){const A=he.get("isCalling"),e=Ve.sessionId;if(!A)throw new Error(JSON.stringify({code:1,msg:"当前没有通话"}));if(!e)throw new Error(JSON.stringify({code:1,msg:"当前没有通话"}))}holdCall(){this.roleMute();const A=he.get("isHold"),{sessionId:e}=Ve;if(!e)return;if(!he.get("actionConfigs").includes("hold"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿保持"}));if(A)throw new Error(JSON.stringify({code:1,msg:"当前已处于保持状态"}));$s.__internalSend({type:te.CALL_HOLD,data:{session_id:e}})}unholdCall(){this.roleMute();const{isHold:A}=he.getState(),{sessionId:e}=Ve;if(!he.get("actionConfigs").includes("unhold"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿取消保持"}));if(e){if(!A)throw new Error(JSON.stringify({code:1,msg:"当前未处于保持状态"}));$s.__internalSend({type:te.CALL_UNHOLD,data:{session_id:e}})}}sendDTMF(A){if(1!==he.get("answerDevice"))throw new Error(JSON.stringify({code:1,msg:"当前设备不支持此功能"}));if(!he.get("actionConfigs").includes("dtmf"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿发送按键"}));const{isCalling:e}=he.getState();if(!e)throw new Error(JSON.stringify({code:1,msg:"当前没有通话"}));this.sipClient.sendDTMF(A)}cancelCall(){if(!he.get("isCalling"))throw new Error(JSON.stringify({code:1,msg:"当前没有通话"}));const A=Ve.sessionId;ae.emit(ie.REJECT,{session_id:A}),$s.__internalSend({type:te.AGENT_HANGUP,data:{session_id:A}})}async consultCall(A){this.roleMute();const{isCalling:e,outCallIsAnswer:t,consultIsAnswer:s,incomingIsAnswer:i}=he.getState(),n=Ve.sessionId;if(!he.get("actionConfigs").includes("consult"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿调用咨询"}));if(s)throw new Error(JSON.stringify({code:1,msg:"当前正在咨询"}));if(!(e||t||i))throw new Error(JSON.stringify({code:1,msg:"当前没有通话"}));if(!n)throw new Error(JSON.stringify({code:1,msg:"sessionId不存在"}));$s.__internalSend({type:te.CONSULT_REQUEST,data:{session_id:n,consultation_agent_no:A}})}async answerCall(){if(1!==he.get("answerDevice"))throw new Error(JSON.stringify({code:1,msg:"当前设备不支持此功能"}));await this.sipClient.answerCall()}makeCall(A){const e={};Ds(A)?e.customer_phone=A:e.trace_id=A;const t=he.get("isCalling"),s=he.get("selectOutNumber")||"";if(t)throw new Error(JSON.stringify({code:1,msg:"正在呼叫中,请勿重复点击"}));if("string"!=typeof A||""===A.trim())throw new Error(JSON.stringify({code:1,msg:"外呼号码非法"}));he.updateIsCalling(!0),he.updateDirection(ee.OUTGOING),$s.__internalSend({type:te.OUT_CALL,data:{...e,caller:s}})}previewCall(A,e){const t={};Ds(A)?t.customer_phone=A:t.trace_id=A;const s=he.get("isCalling"),i=he.get("selectOutNumber")||"";if(s)throw new Error(JSON.stringify({code:1,msg:"正在呼叫中,请勿重复点击"}));if("string"!=typeof A||""===A.trim())throw new Error(JSON.stringify({code:1,msg:"外呼号码非法"}));he.updateIsCalling(!0),he.updateDirection(ee.OUTGOING),$s.__internalSend({type:te.PREVIEW_OUT_CALL,data:{...t,caller:i,preview_task_id:e}})}async hangup(){if(!he.get("isCalling"))throw new Error(JSON.stringify({code:1,msg:"当前没有通话"}));const A=Ve.sessionId;$s.__internalSend({type:te.AGENT_HANGUP,data:{session_id:A}})}mute(){this.roleMute();const A=he.get("actionConfigs"),e=he.get("isMuted"),t=Ve.sessionId;if(e)throw new Error(JSON.stringify({code:1,msg:"当前未处于静音状态"}));if(!A.includes("mute"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿调用静音"}));$s.__internalSend({type:te.MUTE,data:{session_id:t}})}unmute(){this.roleMute();const A=he.get("actionConfigs"),e=he.get("isMuted"),t=Ve.sessionId;if(!e)throw new Error(JSON.stringify({code:1,msg:"当前未处于未静音状态"}));if(!A.includes("unmute"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿调用静音"}));$s.__internalSend({type:te.UNMUTE,data:{session_id:t}})}consultTransfer(){this.roleMute();const A=he.get("consultIsAnswer"),e=Ve.sessionId;if(!he.get("actionConfigs").includes("consult_transfer"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿调用咨询转移"}));if(!A)throw new Error(JSON.stringify({code:1,msg:"当前未处于咨询中"}));$s.__internalSend({type:te.CONSULT_TRANSFER,data:{session_id:e}})}satisfactionEvaluation(){this.roleMute();const A=Ve.sessionId;if(!he.get("actionConfigs").includes("satisfaction"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿调用满意度评价"}));$s.__internalSend({type:te.SATISFACTION_EVALUATION,data:{session_id:A}})}startConference(){this.roleMute();if(!he.get("actionConfigs").includes("conference"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿调用三方会议"}));const A=Ve.sessionId;if(!he.get("consultIsAnswer"))throw new Error(JSON.stringify({code:1,msg:"当前未处于咨询中"}));$s.__internalSend({type:te.CONSULT_THREE_WAY,data:{session_id:A}})}consultRetrieve(){this.roleMute();if(!he.get("actionConfigs").includes("consult_retrieve"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿取回通话"}));const A=Ve.sessionId;if(!he.get("consultIsAnswer"))throw new Error(JSON.stringify({code:1,msg:"当前未处于咨询中"}));$s.__internalSend({type:te.CONSULT_RETURN_CALL,data:{session_id:A}})}async transferAgent(A){this.roleMute();if(!he.get("actionConfigs").includes("transfer"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿转接"}));const{transferIsAnswer:e}=he.getState(),t=Ve.sessionId;if(e)throw new Error(JSON.stringify({code:1,msg:"当前正在转接"}));$s.__internalSend({type:te.TRANSFER,data:{session_id:t,transfer_type:0,transfer_dest:A}})}async transferOutline(A){this.roleMute();if(!he.get("actionConfigs").includes("transfer"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿转接"}));if(!A)throw new Error(JSON.stringify({code:1,msg:"号码不能为空"}));if(!/^\d+$/.test(A))throw new Error(JSON.stringify({code:1,msg:"号码格式错误"}));const{transferIsAnswer:e}=he.getState(),t=Ve.sessionId;if(e)throw new Error(JSON.stringify({code:1,msg:"当前正在转接"}));if(e)throw new Error(JSON.stringify({code:1,msg:"当前正在转接"}));$s.__internalSend({type:te.TRANSFER,data:{session_id:t,transfer_type:2,transfer_dest:A}})}}var ei;class ti{static{this._instance=null}#A=null;#e=new Ks;#t;#s=null;#i=!1;#n;#o;#r=!1;static{this._timer=null}#a=null;constructor(){if(!ei._creatingInstance)throw new Error("请使用 YSYTAgentSdk.getInstance() 获取实例");clearInterval(this.#s),this.#s=setInterval(async()=>{const A=await this.#V();le.updateRttObject(A)},2e3),Ps.requestMediaPermissions(),this.#n=he.subscribeKey("answerDevice",async A=>{1===A?(await this.initWebRtc(),Ve.stateObject.state===Ae.UNREGISTERED&&await this.#e._changeState({data:{...Ve.stateBeforeChange,state_name:Ve.stateBeforeChange.state===Ae.IDLE?"空闲":"忙碌"}})):await this.destroyRtc()}),this.#o=he.subscribeKey("isNextState",async A=>{if(A){await this.#e._agentLogin(Zs);1===he.get("answerDevice")&&await this.#A.reconnect();let A="";const e=new URL(Gs).host;A=Gs.includes("https")?`wss://${e}`:`ws://${e}`;const{agent_no:t}=Ve.agentInfo;$s.getInstance({url:`${A}/ccs-ws/api/v1/ws/call/${t}?Authorization=`,sipClient:this.#A}),Ve.stateObject.state===Ae.OFFLINE&&setTimeout(()=>{this.#e._changeState({data:{...this.#a,state_name:this.#a.state===Ae.BUSY&&"整理"===this.#a.state_name?"忙碌":this.#a.state_name},success:()=>{he.updateDisplayText(""),ae.emit(ie.AGENT_STATE,this.#a)}})},10)}else this.#a=Ve.stateObject,$s.__internalClose(),he.updateDisplayText("离线")}),this.on(ne.KICK_OFF,()=>{this.destroy()}),window.addEventListener("online",this.#c),window.addEventListener("offline",this.#h)}#c=()=>{he.updateIsNextState(!0)};#h=()=>{he.updateIsNextState(!1)};async#l(){const A=he.get("isNextState");try{await Ns(),A||he.updateIsNextState(!0)}catch(e){A&&he.updateIsNextState(!1)}}#g(){ei._timer||(ei._timer=setInterval(()=>this.#l(),3e3))}static get instance(){return this._instance}static async destroyInstance(){this._instance&&(await this._instance.destroy(),this._instance=null)}static getInstance(A){if(!this._instance){if(!A)throw new Error("首次调用必须传入配置参数");const{url:e,appKey:t,appSecret:s,agentNo:i}=A;Gs=e||"https://aicc-api.yescloudy.com",Fs=t,Ys=s,Zs=i,ei._creatingInstance=!0,this._instance=new ei,delete ei._creatingInstance,window.addEventListener("beforeunload",()=>{this._instance?.destroy()})}return this._instance}getInit(){return this.#r}async initWebRtc(){if(this.#A)return;const A=Ve.agentInfo.sip_account_list.find(A=>1===A.device_type);if(!A)throw new Error(JSON.stringify({code:1,msg:"未找到 sip_account_list"}));{const e=A.sip_register_addr;this.#A=new ge({server:e.split(":")[0],user:A.sip_account,password:A.sip_password,webSocket:`wss://${e}`,callTimeout:3e4},this.#q),await this.#A.start()}}async init({actionNodeParams:A,enableBrowserAlert:e,logBuiltinEnabled:t,browserAlertTime:s,initialState:i,initDevice:n}){try{const{viewHtmlElement:o,rttHTML:r}=A||{};Ve.logBuiltinEnabled=t||!1,Ve.browserAlertTime=s||5e3,await this.#e._agentLogin(Zs);const{agent_no:a,current_answer_device:V,current_state:c,out_display_number:h,out_display_select_switch:l}=Ve.agentInfo;(i||c)===Ae.IDLE?(he.updateActionConfigs(ft),Ve.stateObject={state:i||c,state_name:"空闲"},Ve.stateBeforeChange=Ve.stateObject):(i||c)===Ae.BUSY&&(he.updateActionConfigs(Bt),Ve.stateObject={state:c,state_name:"忙碌"},Ve.stateBeforeChange=Ve.stateObject),1===l?he.updateSelectOutNumber(h):he.updateSelectOutNumber("");let g="";const q=new URL(Gs).host;g=Gs.includes("https")?`wss://${q}`:`ws://${q}`,he.updateAnswerDevice(n||V),1===(n||V)&&await this.initWebRtc(),setTimeout(()=>{this.#e._changeState({data:Ve.stateObject}),this.#e.changeDevice({data:{device:n||V}})},500),$s.getInstance({url:`${g}/ccs-ws/api/v1/ws/call/${a}?Authorization=`,sipClient:this.#A}),this.#t=new Ai(this.#A),A&&o&&(this.#i=!0,new Ws({container:o,rttHTML:r,statusParams:{state:Ae.IDLE,statusName:"空闲"}},this,this.#t)),Ve.enableBrowserAlert=e,e&&Ps.requestPermission(),ae.emit(ne.AGENT_INIT_STATUS,!0),this.#r=!0,clearInterval(ei._timer),ei._timer=null,this.#g()}catch(A){this.#i&&Hs("初始化失败"),ae.emit(ne.AGENT_INIT_STATUS,!1),this.#r=!1}}#q=A=>{const{type:e,data:t}=A;ae.emit(e,t)};on(A,e){return ae.on(A,e),this}off(A,e){ae.off(A,e)}offAll(){ae.clearAllListeners()}async destroyRtc(){await(this.#A?.destroy()),this.#A=null}async destroy(){ei._instance&&(await this.destroyRtc(),clearInterval(this.#s),$s.__internalClose(),ae.emit(ne.DESTROY),this.offAll(),this.#n?.(),this.#o?.(),this.#i=!1,ei._instance=null,he.reset(),he.updateSelectOutNumber(""),clearInterval(ei._timer),ei._timer=null)}async#V(){return this.#A?this.#A.getNetworkStats():{}}get call_api(){const A=A=>(...e)=>{if(!this.#i)return A.apply(this,e);console.warn("当前未使用个人开发模式")};return{answerCall:A(()=>this.#t.answerCall()),makeCall:A=>this.#t.makeCall(A),previewMakeCall:(A,e)=>this.#t.previewCall(A,e),cancelCall:A(()=>this.#t.cancelCall()),hangup:A(()=>this.#t.hangup()),sendDTMF:A(A=>this.#t.sendDTMF(A)),holdCall:A(()=>this.#t.holdCall()),unholdCall:A(()=>this.#t.unholdCall()),consultCall:A(async A=>{try{await this.#t.consultCall(A)}catch(A){throw console.warn(A),A}}),consultRetrieve:A(()=>this.#t.consultRetrieve()),consultTransfer:A(()=>this.#t.consultTransfer()),mute:A(()=>this.#t.mute()),unmute:A(()=>this.#t.unmute()),satisfactionEvaluation:A(()=>this.#t.satisfactionEvaluation()),startConference:A(()=>this.#t.startConference()),transferAgent:A(A=>this.#t.transferAgent(A)),transferOutline:A(A=>this.#t.transferOutline(A)),earSpeakStart:A(A=>this.#e.earCall(A)),earSpeakStop:A(A=>this.#e.stopEarCall(A)),forceInsert:A(A=>this.#e.forceInsert(A)),forceDisconnect:A(A=>this.#e.forceDisconnect(A))}}get agent_api(){const A=A=>(...e)=>{if(!this.#i)return A.apply(this,e);console.warn("当前未使用个人开发模式")};return{changeDevice:A(A=>this.#e.changeDevice(A)),changeState:A(A=>this.#e.changeState(A)),getIdleAgentList:A(A=>this.#e.getIdleAgentList(A)),getAgentState:A(A=>this.#e.getAgentState(A)),setAgentExplicit:A(A=>this.#e.setAgentExplicit(A)),checkAgentLogin:A=>this.#e.checkAgentLogin(A),getCallRecord:A=>this.#e.getCallRecord(A),agentLogout:async(A,e)=>{try{await this.#e.logout(A),await this.destroy(),e?.({code:0,msg:""})}catch(A){}},listenAgentCall:A=>this.#e.listenCall(A)}}getAgentData(){const{agent_no:A,agent_name:e,answer_devices:t,out_display_data:s,out_display_select_switch:i,current_state:n}=Ve.agentInfo,{stateObject:o}=Ve,r={1:"软电话",2:"手机模式",3:"SIP话机"};return{agent_no:A,agent_name:e,init_state:n,default_device:he.get("answerDevice"),out_display_data:s,out_display_select_switch:i,answer_devices:(t||"").split(",").map(A=>({value:Number(A),label:r[Number(A)]})),stateObject:o}}async getRealTimeCustomerInfo(){return he.get("customerObject")}setBrowserAlert(A){if("boolean"!=typeof A)throw new Error(JSON.stringify({code:1,msg:"参数类型错误"}));Ve.logBuiltinEnabled=A||!1}setBrowserAlertTime(A){if("number"!=typeof A)throw new Error(JSON.stringify({code:1,msg:"参数类型错误"}));Ve.browserAlertTime=A||3e3}}ei=ti,import.meta.hot&&import.meta.hot.dispose(()=>{window.location.reload()});export{Ae as AgentStatus,ie as CallSipCallEventEnum,ee as DirectionEnum,oe as DisplayTextEnum,ne as EventName,se as WebRtcCallSipEventEnum,te as WebsocketTypeEnum,ti as default};
|
|
914
|
+
`;mt(s,this.rttHTML)}}class Ps{static requestPermission(){"Notification"in window&&"default"===Notification.permission&&Notification.requestPermission()}static async requestMediaPermissions(){try{const A=await navigator.mediaDevices.enumerateDevices();if(A.some(A=>"audioinput"===A.kind&&""!==A.label))return null;return await navigator.mediaDevices.getUserMedia({audio:!0})}catch(A){return console.warn("获取音频权限失败:",A),null}}static show(A,e,t,s){if("Notification"in window&&"granted"===Notification.permission){const i=new Notification(A,{body:e,tag:`xy-global-notification${(new Date).getTime()}`,renotify:!0});i.onclick=()=>{window.focus(),i.close(),t?.()},setTimeout(()=>i.close(),1e3*(s||3))}}static async checkMediaPermissions(){try{return(await navigator.mediaDevices.enumerateDevices()).some(A=>"audioinput"===A.kind&&""!==A.label)}catch(A){return console.warn("无法检查设备权限:",A),!1}}}const zs=console.log,Xs=(...A)=>{Ve.logBuiltinEnabled&&zs(...A)};let _s=null;class $s{constructor(A){this.url=A,this.ws=null,this.heartbeatWorker=null,this.reconnectDelay=3e3,this.manualClose=!1,this.apiClient=new Ks,this.sipClient=null,this.pendingMessages=new Map,this.initWebSocket()}static getInstance({url:A,sipClient:e}){if(!_s){if(!A)throw new Error("WebSocket 尚未初始化");_s=new $s(A),_s.sipClient=e}return _s}stateIdleChange(){const{state:A}=Ve.stateObject;A!==Ae.IDLE&&(Ve.stateBeforeChange,this.apiClient._changeState({data:{...Ve.stateBeforeChange,state_name:Ve.stateBeforeChange.state===Ae.IDLE?"空闲":"忙碌"}}))}inCallAutoAnswer(){const{soft_device_auto_answer:A,auto_answer_time:e}=Ve.agentInfo,t=1===A,s=he.get("direction");if(t&&s===ee.INCOMING){const A=Number(e)||0;A>0&&(Ve.autoAnswerTimer=setTimeout(()=>{this.sipClient?.answerCall(),Ve.autoAnswerTimer=null},1e3*A))}}async getCustomerInfo(A){try{await this.apiClient._getInCallCrmDetail({data:{phone:A},success:A=>{he.updateCustomerInfo(A.data||{phone:A.data.phone,is_vip:0,customer_name:"未知客户",city:"未知",province:"未知",contact_count:0,in_contact_count:0,trace_id:A.data.trace_id,contact_count_month:0,in_contact_count_month:0})}})}catch(A){}}putAgentState(A,e){if(!A)return;if(5===e)return void this.stateIdleChange();Ve.sessionId="";const{post_call_process_time:t}=Ve.agentInfo,s=t||0;if(Ve.autoStateTimer&&(clearTimeout(Ve.autoStateTimer),Ve.autoStateTimer=null),he.updateCustomerInfo(void 0),s>0){const{state:A}=Ve.stateObject;if(A===Ae.IDLE)return;this.apiClient._changeState({data:{state:Ae.BUSY,state_name:"整理"}}),Ve.autoStateTimer=setTimeout(()=>{Ve.autoStateTimer=null,this.stateIdleChange()},1e3*s)}else this.stateIdleChange()}stateBusyChange(){Ve.sessionId="",clearTimeout(Ve.autoStateTimer),he.updateCustomerInfo(void 0),this.apiClient._changeState({data:{state:Ae.BUSY,state_name:"忙碌"}})}initWebSocket(){if(1===this.ws?.readyState)return;const A=Rs(Fs,Ys);this.ws=new WebSocket(this.url+A),this.ws.onopen=()=>{const A=(new Date).getTime();this.sendMessage({type:0,msg_id:A}),this.pendingMessages.set(A,performance.now()),this.startHeartbeat(),this.manualClose=!1},this.ws.onmessage=async A=>{const e=JSON.parse(A.data),{type:t,data:s,code:i,msg:o,msg_id:n}=e;if(0===t&&n){const A=this.pendingMessages.get(n),e=performance.now()-A;Ve.latency=parseFloat(e.toFixed(2)),this.pendingMessages.delete(n)}if(0!==t&&Xs("%cWebSocket 收到消息:","color: blue; font-weight: bold;",e),t!==te.OUT_CALL&&t!==te.PREVIEW_OUT_CALL||(0!==i?(he.reset(),ae.emit(ie.OUT_FAILED,o),ae.emit(oe.FAIL_NOTIFICATION,o),he.updateActionConfigs(ft),setTimeout(()=>{he.updateCustomerInfo(void 0)},500),this.stateIdleChange()):0===i&&(ae.emit(ie.OUT_SUCCESS),clearTimeout(Ve.autoStateTimer))),t===te.AGENT_STATE){const{state:A,state_name:e}=s;Ve.stateObject={state:A,state_name:e},"振铃中"===e&&he.updateDisplayText(ne.AGENT_RINGING),A===Ae.UNREGISTERED&&he.updateActionConfigs(Mt),A===Ae.IDLE&&Ve.stateObject.state===Ae.UNREGISTERED&&he.updateActionConfigs(ft),ae.emit(ie.AGENT_STATE,{state:A,state_name:e})}if(t===te.OUT_CALL_INCOMING_CALL){try{await this.getCustomerInfo(s.trace_id||s.customer_phone)}catch(A){console.error(A)}s.preview_task_id?ae.emit(ie.PREVIEW_OUT_INCOMING_CALL,{customer_phone:s.customer_phone,session_id:s.session_id,preview_task_id:s.preview_task_id,trace_id:s.trace_id}):ae.emit(ie.OUT_INCOMING_CALL,{customer_phone:s.customer_phone,session_id:s.session_id,trace_id:s.trace_id}),Ve.sessionId=s.session_id,he.updateActionConfigs(Qt)}if(t===te.OUT_CALL_END)if(he.updateDisplayText(""),1===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)this.putAgentState(!0),he.reset(),ae.emit(ie.OUT_HANGUP,{session_id:s.session_id}),he.updateActionConfigs(ft);else if(2===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)he.reset(),ae.emit(ie.OUR_SIDE_CONSULT_HANGUP,{session_id:s.session_id}),this.putAgentState(!0),he.updateActionConfigs(ft);else if(2===s.device_type&&s.agent_no!==Ve.agentInfo.agent_no){he.get("isCalling")&&(he.updateDisplayText(ne.CALLING),ae.emit(ie.OTHER_SIDE_CONSULT_HANGUP,{session_id:s.session_id}),he.updateActionConfigs(St))}else if(3===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)this.putAgentState(!0),he.reset(),ae.emit(ie.THREE_WAY_OUR_SIDE_HANGUP,{session_id:s.session_id}),he.updateActionConfigs(ft);else if(4===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)this.putAgentState(!0),he.reset(),ae.emit(ie.TRANSFER_END,{session_id:s.session_id}),he.updateActionConfigs(ft);else if(4===s.device_type&&s.agent_no!==Ve.agentInfo.agent_no){ae.emit(ie.TRANSFER_FAILED,"未知原因"),ae.emit(oe.FAIL_NOTIFICATION,"转接失败");const A=he.get("direction");A===ee.OUTGOING?he.updateActionConfigs(St):A===ee.INCOMING&&he.updateActionConfigs(Ut)}else 5===s.device_type&&s.agent_no===Ve.agentInfo.agent_no&&(this.putAgentState(!0,5),Ve.monitoredAgentNo="",Ve.earSpeakAgent="",he.reset(),ae.emit(ie.LISTEN_HANGUP,{session_id:s.session_id}),he.updateActionConfigs(ft));if(t===te.OUT_CALL_RINGING&&1===s.type&&(ae.emit(ie.OUT_RINGING,{session_id:Ve.sessionId,type:s.type}),he.updateDisplayText(ne.RINGING)),t===te.OUT_CALL_ANSWER&&(clearTimeout(Ve.autoStateTimer),he.updateIsCalling(!0),ae.emit(ie.OUT_OFF_ANSWER,{session_id:Ve.sessionId}),he.updateOutCallIsAnswer(!0),he.updateDisplayText(ne.CALLING),he.updateActionConfigs(St)),t===te.CONSULT_RINGING&&(ae.emit(ie.CONSULT_RINGING,{session_id:s.session_id}),he.updateDisplayText(ne.AGENT_RINGING),he.updateActionConfigs([]),clearTimeout(Ve.autoStateTimer)),t===te.CONSULT_ANSWER&&(ae.emit(ie.CONSULT_OFF_HOOK,{session_id:s.session_id}),he.updateConsultIsAnswer(!0),he.updateDisplayText(ne.CONSULTING),he.updateActionConfigs(Tt)),t===te.CONSULT_FAIL&&(ae.emit(ie.CONSULT_FAILED,{custom_reason:s.custom_reason}),he.updateDisplayText(ne.CALLING),he.updateActionConfigs(St)),t===te.CONSULT_CALL_IN&&(ae.emit(ie.CONSULT_INCOMING,{agent_no:s.agent_no,agent_mane:s.agent_name,session_id:s.session_id}),Ve.sessionId=s.session_id,he.updateIsCalling(!0),he.updateDirection(ee.CONSULT),he.updateDisplayText(ne.CONSULT_CALL_IN),he.updateActionConfigs(Dt),Ve.enableBrowserAlert&&Ps.show("📞 咨询来电",`坐席 [${s.agent_name}] 正在咨询...`,()=>{ae.emit(oe.NOTIFICATION_CLICK,{agent_mane:s.agent_name,agent_no:s.agent_no})},Ve.browserAlertTime)),t===te.CONSULT_CALL_IN_SUCCESS&&(ae.emit(ie.CONSULT_CALL_IN_SUCCESS,{session_id:s.session_id}),he.updateConsultIsAnswer(!0),he.updateDisplayText(ne.CALLING),he.updateActionConfigs(yt)),t===te.CONSULT_RETURN_CALL_SUCCESS&&("success"===s.status?(he.updateConsultIsAnswer(!1),ae.emit(ie.CONSULT_RETURN_CALL_SUCCESS),he.updateDisplayText(ne.CALLING),ae.emit(ie.OTHER_SIDE_CONSULT_HANGUP),he.updateActionConfigs(St)):ae.emit(oe.FAIL_NOTIFICATION,"媒体失败")),t===te.MUTE&&(0===i?(he.updateIsMuted(!0),ae.emit(ie.MUTE_SUCCESS),he.updateDisplayText(ne.MUTING)):(ae.emit(ie.MUTE_FAILED,o),ae.emit(oe.FAIL_NOTIFICATION,o))),t===te.UNMUTE&&(0===i?(he.updateIsMuted(!1),ae.emit(ie.UNMUTE_SUCCESS),he.updateDisplayText(ne.CALLING)):(ae.emit(ie.UNMUTE_FAILED,o),ae.emit(oe.FAIL_NOTIFICATION,o))),t===te.CALL_HOLD&&(0===i?(he.updateIsHold(!0),he.updateDisplayText(ne.HOLDING),ae.emit(ie.HOLD_SUCCESS)):(ae.emit(ie.HOLD_FAILED,o),ae.emit(oe.FAIL_NOTIFICATION,o))),t===te.CALL_UNHOLD&&(0===i?(he.updateDisplayText(ne.CALLING),he.updateIsHold(!1),ae.emit(ie.UNHOLD_SUCCESS)):(ae.emit(ie.UNHOLD_FAILED,o),ae.emit(oe.FAIL_NOTIFICATION,o))),t===te.CONSULT_TRANSFER&&(0===i?ae.emit(ie.CONSULT_TRANSFER_SUCCESS):(ae.emit(ie.CONSULT_TRANSFER_FAILED,o),ae.emit(oe.FAIL_NOTIFICATION,o))),t===te.CONSULT_TRANSFER_FAILED&&ae.emit(ie.CONSULT_TRANSFER_FAILED,s.status),t===te.CONSULT_TRANSFER_OFF_HOOK&&(he.updateDirection(ee.INCOMING),he.updateDisplayText(ne.CALLING),ae.emit(ie.CONSULT_TRANSFER_OFF_HOOK),he.updateActionConfigs(Ut),he.updateIncomingIsAnswer(!0),he.updateConsultIsAnswer(!1)),t===te.INCOMING_CALL){clearTimeout(Ve.autoStateTimer),Ve.sessionId=s.session_id;try{await this.getCustomerInfo(s.trace_id||s.customer_phone)}catch(A){console.error(A)}he.updateIsCalling(!0),he.updateDirection(ee.INCOMING),this.inCallAutoAnswer(),he.updateDisplayText(ne.INCOMING_CALL),1===s.direction&&ae.emit(ie.INCOMING_CALL,{customer_phone:s.customer_phone,trace_id:s.trace_id,session_id:s.session_id}),3===s.direction&&(ae.emit(ie.PREDICT_INCOMING_CALL,{customer_phone:s.customer_phone,trace_id:s.trace_id,session_id:s.session_id}),this.sipClient?.answerCall()),he.updateActionConfigs(Dt),Ve.enableBrowserAlert&&Ps.show("📞 客户来电",`客户 [${s.customer_phone}] 正在呼入...`,()=>{ae.emit(oe.NOTIFICATION_CLICK,{customer_phone:s.customer_phone})},Ve.browserAlertTime)}if(t===te.INCOMING_CALL_OFF_HOOK&&(he.updateIncomingIsAnswer(!0),ae.emit(ie.INCOMING_CALL_OFF_HOOK,{session_id:Ve.sessionId}),he.updateActionConfigs(Ut),he.updateDisplayText(ne.CALLING)),t===te.INCOMING_CALL_END)if(he.updateDisplayText(""),1===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)this.putAgentState(!0),he.reset(),ae.emit(ie.INCOMING_CALL_END,{session_id:s.session_id}),he.updateActionConfigs(ft);else if(2===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)he.reset(),ae.emit(ie.OUR_SIDE_CONSULT_HANGUP,{session_id:s.session_id}),this.putAgentState(!0),he.updateActionConfigs(ft);else if(2===s.device_type&&s.agent_no!==Ve.agentInfo.agent_no)he.updateDisplayText(ne.CALLING),ae.emit(ie.OTHER_SIDE_CONSULT_HANGUP,{session_id:s.session_id}),he.updateActionConfigs(St);else if(3===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)this.putAgentState(!0),he.reset(),ae.emit(ie.THREE_WAY_OUR_SIDE_HANGUP,{session_id:s.session_id}),he.updateActionConfigs(ft);else if(4===s.device_type&&s.agent_no===Ve.agentInfo.agent_no)this.putAgentState(!0),he.reset(),ae.emit(ie.TRANSFER_END,{session_id:s.session_id}),he.updateActionConfigs(ft);else if(4===s.device_type&&s.agent_no!==Ve.agentInfo.agent_no){ae.emit(ie.TRANSFER_FAILED,"未知原因"),ae.emit(oe.FAIL_NOTIFICATION,"转接失败");const A=he.get("direction");A===ee.OUTGOING?he.updateActionConfigs(St):A===ee.INCOMING&&he.updateActionConfigs(Ut)}else 5===s.device_type&&s.agent_no===Ve.agentInfo.agent_no&&(this.putAgentState(!0,5),Ve.monitoredAgentNo="",Ve.earSpeakAgent="",he.reset(),ae.emit(ie.LISTEN_HANGUP,{session_id:s.session_id}),he.updateActionConfigs(ft));if(t===te.SATISFACTION_EVALUATION&&(0===i?ae.emit(ie.SATISFACTION_EVALUATION_SUCCESS):(ae.emit(ie.SATISFACTION_EVALUATION_FAILED,o),ae.emit(oe.FAIL_NOTIFICATION,o))),t===te.CONSULT_THREE_WAY&&(0!==i?(ae.emit(ie.CONSULT_THREE_WAY_FAILED,o),ae.emit(oe.FAIL_NOTIFICATION,o)):0===i&&he.updateIsMeeting(!0)),t===te.CONSULT_THREE_WAY_RESULT&&("success"===s.status?(he.updateDirection(ee.MEETING),he.updateDisplayText(ne.MEETING),he.updateActionConfigs(Rt),ae.emit(ie.CONSULT_THREE_WAY_SUCCESS)):(ae.emit(ie.CONSULT_THREE_WAY_FAILED,{conf_name:s.conf_name}),he.updateIsMeeting(!1))),t===te.TRANSFER_INCOMING_CALL&&(clearTimeout(Ve.autoStateTimer),s.agent_no===Ve.agentInfo.agent_no?(he.updateDisplayText(ne.TRANSFERRING),ae.emit(ie.TRANSFER_PROGRESS),he.updateActionConfigs([]),he.updateTransferIsAnswer(!0)):(Ve.sessionId=s.session_id,ae.emit(ie.TRANSFER_INCOMING_CALL,{agent_no:s.agent_no,agent_name:s.agent_name,session_id:s.session_id}),he.updateIsCalling(!0),he.updateDirection(ee.TRANSFER),he.updateDisplayText(ne.TRANSFER_INCOMING_CALL),he.updateActionConfigs(Dt),Ve.enableBrowserAlert&&Ps.show("📞 转接来电",`坐席 [${s.agent_no}] 正在转接...`,()=>{ae.emit(oe.NOTIFICATION_CLICK,{agent_no:s.agent_no})},Ve.browserAlertTime))),t===te.TRANSFER_OFF_HOOK&&(ae.emit(ie.TRANSFER_OFF_HOOK,{session_id:Ve.sessionId}),he.updateTransferIsAnswer(!1),he.updateDisplayText(ne.CALLING),he.updateActionConfigs(Ut)),t===te.TRANSFER_FAILED&&"failed"===s.status){ae.emit(ie.TRANSFER_FAILED,"未知原因"),ae.emit(oe.FAIL_NOTIFICATION,"转接失败");const A=he.get("direction");A===ee.OUTGOING?he.updateActionConfigs(St):A===ee.INCOMING&&he.updateActionConfigs(Ut)}t===te.KICK_OFFLINE&&ae.emit(oe.KICK_OFF),t===te.CONTINUOUS_NOT_ANSWER&&(ae.emit(oe.FAIL_NOTIFICATION,`已连续 ${s.miss_count} 次未接, 设置忙碌`),this.stateBusyChange()),t===te.SIGN_OUT&&ae.emit(oe.SIGN_OUT),t===te.SIGN_IN_SWITCH_DEVICE&&ae.emit(oe.SIGN_IN_SWITCH_DEVICE,s),t===te.LISTEN_INCOMING_CALL&&(clearTimeout(Ve.autoStateTimer),Ve.sessionId=s.session_id,he.updateIsCalling(!0),he.updateDirection(ee.INCOMING),this.inCallAutoAnswer(),he.updateDisplayText(ne.LISTENING),he.updateActionConfigs(Dt),ae.emit(ie.LISTEN_INCOMING_CALL,{session_id:s.session_id}),Ve.enableBrowserAlert&&Ps.show("📞 监听来电","正在来电...",()=>{ae.emit(oe.NOTIFICATION_CLICK,{customer_phone:s.customer_phone})},Ve.browserAlertTime)),t===te.LISTEN_INCOMING_CALL_OFF_HOOK&&(Ve.monitoredAgentNo=s.monitored_agent_no,Ve.earSpeakAgent="",he.updateIncomingIsAnswer(!0),ae.emit(ie.LISTEN_INCOMING_CALL_OFF_HOOK,{session_id:Ve.sessionId,monitored_agent_no:s.monitored_agent_no}),he.updateActionConfigs(kt),he.updateDisplayText(ne.CALLING)),t===te.LISTEN_CALL_FAILED&&"failed"===s.status&&(ae.emit(ie.LISTEN_CALL_FAILED),Ve.monitoredAgentNo=""),t===te.EAR_SPEECH&&("success"===s.status?(s.monitored_agent_no===Ve.agentInfo.agent_no&&(he.updateActionConfigs(Gt),ae.emit(ie.EAR_SPEECH_BE_SUCCESS)),s.monitor_agent_no===Ve.agentInfo.agent_no&&(he.updateActionConfigs(Ft),ae.emit(ie.EAR_SPEECH_SUCCESS,{monitored_agent_no:s.monitored_agent_no,monitor_agent_no:s.monitor_agent_no}),Ve.earSpeakAgent=s.monitored_agent_no)):ae.emit(ie.EAR_SPEECH_FAILED)),t===te.STOP_EAR_SPEECH&&("success"===s.status?(s.monitored_agent_no===Ve.agentInfo.agent_no&&he.updateActionConfigs(Ut),s.monitor_agent_no===Ve.agentInfo.agent_no&&he.updateActionConfigs(kt),Ve.earSpeakAgent="",ae.emit(ie.STOP_EAR_SPEECH_SUCCESS)):ae.emit(ie.STOP_EAR_SPEECH_FAILED)),t===te.CALL_FORCE_INSERT&&("success"===s.status?(s.monitored_agent_no===Ve.agentInfo.agent_no&&(he.updateActionConfigs(Zt),ae.emit(ie.CALL_FORCE_INSERT_SUCCESS,{monitored_agent_no:s.monitored_agent_no,monitor_agent_no:s.monitor_agent_no})),s.monitor_agent_no===Ve.agentInfo.agent_no&&(he.updateActionConfigs(Yt),ae.emit(ie.CALL_FORCE_INSERT_SUCCESS_LISTENER,{monitored_agent_no:s.monitored_agent_no,monitor_agent_no:s.monitor_agent_no}))):ae.emit(ie.CALL_FORCE_INSERT_FAILED))},this.ws.onclose=()=>{this.stopHeartbeat(),this.manualClose||setTimeout(()=>this.initWebSocket(),this.reconnectDelay)},this.ws.onerror=()=>{this.ws?.close()}}startHeartbeat(){const A=new Blob(["\n let timer;\n self.onmessage = function (e) {\n if (e.data === 'start') {\n timer = setInterval(() => {\n self.postMessage('heartbeat');\n }, 5000);\n } else if (e.data === 'stop') {\n clearInterval(timer);\n }\n };\n "],{type:"application/javascript"}),e=URL.createObjectURL(A);this.heartbeatWorker=new Worker(e),this.heartbeatWorker.onmessage=()=>{const A=(new Date).getTime();this.sendMessage({type:0,msg_id:A}),this.pendingMessages.set(A,performance.now())},this.heartbeatWorker.postMessage("start")}stopHeartbeat(){this.heartbeatWorker&&(this.heartbeatWorker.postMessage("stop"),this.heartbeatWorker.terminate(),this.heartbeatWorker=null)}sendMessage(A){this.ws?.readyState===WebSocket.OPEN?(this.ws.send(JSON.stringify(A)),0!==A.type&&Xs("%cWebSocket 发送消息:","color: green; font-weight: bold;",A)):console.warn("WebSocket 未连接,消息未发送")}close(){this.manualClose=!0,this.stopHeartbeat(),this.ws?.close()}reconnect(){this.initWebSocket()}static __internalClose(){_s&&(_s.close(),_s=null)}static __internalSend(A){if(!_s)throw new Error("WebSocket 尚未初始化");_s.sendMessage(A)}}class Ai{constructor(A){this.sipClient=null,this.sipClient=A}roleMute(){const A=he.get("isCalling"),e=Ve.sessionId;if(!A)throw new Error(JSON.stringify({code:1,msg:"当前没有通话"}));if(!e)throw new Error(JSON.stringify({code:1,msg:"当前没有通话"}))}holdCall(){this.roleMute();const A=he.get("isHold"),{sessionId:e}=Ve;if(!e)return;if(!he.get("actionConfigs").includes("hold"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿保持"}));if(A)throw new Error(JSON.stringify({code:1,msg:"当前已处于保持状态"}));$s.__internalSend({type:te.CALL_HOLD,data:{session_id:e}})}unholdCall(){this.roleMute();const{isHold:A}=he.getState(),{sessionId:e}=Ve;if(!he.get("actionConfigs").includes("unhold"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿取消保持"}));if(e){if(!A)throw new Error(JSON.stringify({code:1,msg:"当前未处于保持状态"}));$s.__internalSend({type:te.CALL_UNHOLD,data:{session_id:e}})}}sendDTMF(A){if(1!==he.get("answerDevice"))throw new Error(JSON.stringify({code:1,msg:"当前设备不支持此功能"}));if(!he.get("actionConfigs").includes("dtmf"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿发送按键"}));const{isCalling:e}=he.getState();if(!e)throw new Error(JSON.stringify({code:1,msg:"当前没有通话"}));this.sipClient.sendDTMF(A)}cancelCall(){if(!he.get("isCalling"))throw new Error(JSON.stringify({code:1,msg:"当前没有通话"}));const A=Ve.sessionId;ae.emit(ie.REJECT,{session_id:A}),$s.__internalSend({type:te.AGENT_HANGUP,data:{session_id:A}})}async consultCall(A){this.roleMute();const{isCalling:e,outCallIsAnswer:t,consultIsAnswer:s,incomingIsAnswer:i}=he.getState(),o=Ve.sessionId;if(!he.get("actionConfigs").includes("consult"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿调用咨询"}));if(s)throw new Error(JSON.stringify({code:1,msg:"当前正在咨询"}));if(!(e||t||i))throw new Error(JSON.stringify({code:1,msg:"当前没有通话"}));if(!o)throw new Error(JSON.stringify({code:1,msg:"sessionId不存在"}));$s.__internalSend({type:te.CONSULT_REQUEST,data:{session_id:o,consultation_agent_no:A}})}async answerCall(){if(1!==he.get("answerDevice"))throw new Error(JSON.stringify({code:1,msg:"当前设备不支持此功能"}));await this.sipClient.answerCall()}makeCall(A){const e={};Ds(A)?e.customer_phone=A:e.trace_id=A;const t=he.get("isCalling"),s=he.get("selectOutNumber")||"";if(t)throw new Error(JSON.stringify({code:1,msg:"正在呼叫中,请勿重复点击"}));if("string"!=typeof A||""===A.trim())throw new Error(JSON.stringify({code:1,msg:"外呼号码非法"}));he.updateIsCalling(!0),he.updateDirection(ee.OUTGOING),$s.__internalSend({type:te.OUT_CALL,data:{...e,caller:s}})}previewCall(A,e){const t={};Ds(A)?t.customer_phone=A:t.trace_id=A;const s=he.get("isCalling"),i=he.get("selectOutNumber")||"";if(s)throw new Error(JSON.stringify({code:1,msg:"正在呼叫中,请勿重复点击"}));if("string"!=typeof A||""===A.trim())throw new Error(JSON.stringify({code:1,msg:"外呼号码非法"}));he.updateIsCalling(!0),he.updateDirection(ee.OUTGOING),$s.__internalSend({type:te.PREVIEW_OUT_CALL,data:{...t,caller:i,preview_task_id:e}})}async hangup(){if(!he.get("isCalling"))throw new Error(JSON.stringify({code:1,msg:"当前没有通话"}));const A=Ve.sessionId;$s.__internalSend({type:te.AGENT_HANGUP,data:{session_id:A}})}mute(){this.roleMute();const A=he.get("actionConfigs"),e=he.get("isMuted"),t=Ve.sessionId;if(e)throw new Error(JSON.stringify({code:1,msg:"当前未处于静音状态"}));if(!A.includes("mute"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿调用静音"}));$s.__internalSend({type:te.MUTE,data:{session_id:t}})}unmute(){this.roleMute();const A=he.get("actionConfigs"),e=he.get("isMuted"),t=Ve.sessionId;if(!e)throw new Error(JSON.stringify({code:1,msg:"当前未处于未静音状态"}));if(!A.includes("unmute"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿调用静音"}));$s.__internalSend({type:te.UNMUTE,data:{session_id:t}})}consultTransfer(){this.roleMute();const A=he.get("consultIsAnswer"),e=Ve.sessionId;if(!he.get("actionConfigs").includes("consult_transfer"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿调用咨询转移"}));if(!A)throw new Error(JSON.stringify({code:1,msg:"当前未处于咨询中"}));$s.__internalSend({type:te.CONSULT_TRANSFER,data:{session_id:e}})}satisfactionEvaluation(){this.roleMute();const A=Ve.sessionId;if(!he.get("actionConfigs").includes("satisfaction"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿调用满意度评价"}));$s.__internalSend({type:te.SATISFACTION_EVALUATION,data:{session_id:A}})}startConference(){this.roleMute();if(!he.get("actionConfigs").includes("conference"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿调用三方会议"}));const A=Ve.sessionId;if(!he.get("consultIsAnswer"))throw new Error(JSON.stringify({code:1,msg:"当前未处于咨询中"}));$s.__internalSend({type:te.CONSULT_THREE_WAY,data:{session_id:A}})}consultRetrieve(){this.roleMute();if(!he.get("actionConfigs").includes("consult_retrieve"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿取回通话"}));const A=Ve.sessionId;if(!he.get("consultIsAnswer"))throw new Error(JSON.stringify({code:1,msg:"当前未处于咨询中"}));$s.__internalSend({type:te.CONSULT_RETURN_CALL,data:{session_id:A}})}async transferAgent(A){this.roleMute();if(!he.get("actionConfigs").includes("transfer"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿转接"}));const{transferIsAnswer:e}=he.getState(),t=Ve.sessionId;if(e)throw new Error(JSON.stringify({code:1,msg:"当前正在转接"}));$s.__internalSend({type:te.TRANSFER,data:{session_id:t,transfer_type:0,transfer_dest:A}})}async transferOutline(A){this.roleMute();if(!he.get("actionConfigs").includes("transfer"))throw new Error(JSON.stringify({code:1,msg:"当前状态请勿转接"}));if(!A)throw new Error(JSON.stringify({code:1,msg:"号码不能为空"}));if(!/^\d+$/.test(A))throw new Error(JSON.stringify({code:1,msg:"号码格式错误"}));const{transferIsAnswer:e}=he.getState(),t=Ve.sessionId;if(e)throw new Error(JSON.stringify({code:1,msg:"当前正在转接"}));if(e)throw new Error(JSON.stringify({code:1,msg:"当前正在转接"}));$s.__internalSend({type:te.TRANSFER,data:{session_id:t,transfer_type:2,transfer_dest:A}})}}var ei;class ti{static{this._instance=null}#A=null;#e=new Ks;#t;#s=null;#i=!1;#o;#n;#r=!1;static{this._timer=null}#a=null;constructor(){if(!ei._creatingInstance)throw new Error("请使用 YSYTAgentSdk.getInstance() 获取实例");clearInterval(this.#s),this.#s=setInterval(async()=>{const A=await this.#V();le.updateRttObject(A)},2e3),Ps.requestMediaPermissions(),this.#o=he.subscribeKey("answerDevice",async A=>{1===A?(await this.initWebRtc(),Ve.stateObject.state===Ae.UNREGISTERED&&await this.#e._changeState({data:{...Ve.stateBeforeChange,state_name:Ve.stateBeforeChange.state===Ae.IDLE?"空闲":"忙碌"}})):await this.destroyRtc()}),this.#n=he.subscribeKey("isNextState",async A=>{if(A){await this.#e._agentLogin(Zs);1===he.get("answerDevice")&&await this.#A.reconnect();let A="";const e=new URL(Gs).host;A=Gs.includes("https")?`wss://${e}`:`ws://${e}`;const{agent_no:t}=Ve.agentInfo;$s.getInstance({url:`${A}/ccs-ws/api/v1/ws/call/${t}?Authorization=`,sipClient:this.#A}),Ve.stateObject.state===Ae.OFFLINE&&setTimeout(()=>{this.#e._changeState({data:{...this.#a,state_name:this.#a.state===Ae.BUSY&&"整理"===this.#a.state_name?"忙碌":this.#a.state_name},success:()=>{he.updateDisplayText(""),ae.emit(ie.AGENT_STATE,this.#a)}})},10)}else this.#a=Ve.stateObject,$s.__internalClose(),he.updateDisplayText("离线")}),this.on(oe.KICK_OFF,()=>{this.destroy()}),window.addEventListener("online",this.#c),window.addEventListener("offline",this.#h)}#c=()=>{he.updateIsNextState(!0)};#h=()=>{he.updateIsNextState(!1)};async#l(){const A=he.get("isNextState");try{await Ns(),A||he.updateIsNextState(!0)}catch(e){A&&he.updateIsNextState(!1)}}#g(){ei._timer||(ei._timer=setInterval(()=>this.#l(),3e3))}static get instance(){return this._instance}static async destroyInstance(){this._instance&&(await this._instance.destroy(),this._instance=null)}static getInstance(A){if(!this._instance){if(!A)throw new Error("首次调用必须传入配置参数");const{url:e,appKey:t,appSecret:s,agentNo:i}=A;Gs=e||"https://aicc-api.yescloudy.com",Fs=t,Ys=s,Zs=i,ei._creatingInstance=!0,this._instance=new ei,delete ei._creatingInstance,window.addEventListener("beforeunload",()=>{this._instance?.destroy()})}return this._instance}getInit(){return this.#r}async initWebRtc(){if(this.#A)return;const A=Ve.agentInfo.sip_account_list.find(A=>1===A.device_type);if(!A)throw new Error(JSON.stringify({code:1,msg:"未找到 sip_account_list"}));{const e=A.sip_register_addr;this.#A=new ge({server:e.split(":")[0],user:A.sip_account,password:A.sip_password,webSocket:`wss://${e}`,callTimeout:3e4},this.#q),await this.#A.start()}}async init({actionNodeParams:A,enableBrowserAlert:e,logBuiltinEnabled:t,browserAlertTime:s,initialState:i,initDevice:o}){try{const{viewHtmlElement:n,rttHTML:r}=A||{};Ve.logBuiltinEnabled=t||!1,Ve.browserAlertTime=s||5e3,await this.#e._agentLogin(Zs);const{agent_no:a,current_answer_device:V,current_state:c,out_display_number:h,out_display_select_switch:l}=Ve.agentInfo;(i||c)===Ae.IDLE?(he.updateActionConfigs(ft),Ve.stateObject={state:i||c,state_name:"空闲"},Ve.stateBeforeChange=Ve.stateObject):(i||c)===Ae.BUSY&&(he.updateActionConfigs(Bt),Ve.stateObject={state:c,state_name:"忙碌"},Ve.stateBeforeChange=Ve.stateObject),1===l?he.updateSelectOutNumber(h):he.updateSelectOutNumber("");let g="";const q=new URL(Gs).host;g=Gs.includes("https")?`wss://${q}`:`ws://${q}`,he.updateAnswerDevice(o||V),1===(o||V)&&await this.initWebRtc(),setTimeout(()=>{this.#e._changeState({data:Ve.stateObject}),this.#e.changeDevice({data:{device:o||V}})},500),$s.getInstance({url:`${g}/ccs-ws/api/v1/ws/call/${a}?Authorization=`,sipClient:this.#A}),this.#t=new Ai(this.#A),A&&n&&(this.#i=!0,new Ws({container:n,rttHTML:r,statusParams:{state:Ae.IDLE,statusName:"空闲"}},this,this.#t)),Ve.enableBrowserAlert=e,e&&Ps.requestPermission(),ae.emit(oe.AGENT_INIT_STATUS,!0),this.#r=!0,clearInterval(ei._timer),ei._timer=null,this.#g()}catch(A){this.#i&&Hs("初始化失败"),ae.emit(oe.AGENT_INIT_STATUS,!1),this.#r=!1}}#q=A=>{const{type:e,data:t}=A;ae.emit(e,t)};on(A,e){return ae.on(A,e),this}off(A,e){ae.off(A,e)}offAll(){ae.clearAllListeners()}async destroyRtc(){await(this.#A?.destroy()),this.#A=null}async destroy(){ei._instance&&(await this.destroyRtc(),clearInterval(this.#s),$s.__internalClose(),ae.emit(oe.DESTROY),this.offAll(),this.#o?.(),this.#n?.(),this.#i=!1,ei._instance=null,he.reset(),he.updateSelectOutNumber(""),clearInterval(ei._timer),ei._timer=null)}async#V(){return this.#A?this.#A.getNetworkStats():{}}get call_api(){const A=A=>(...e)=>{if(!this.#i)return A.apply(this,e);console.warn("当前未使用个人开发模式")};return{answerCall:A(()=>this.#t.answerCall()),makeCall:A=>this.#t.makeCall(A),previewMakeCall:(A,e)=>this.#t.previewCall(A,e),cancelCall:A(()=>this.#t.cancelCall()),hangup:A(()=>this.#t.hangup()),sendDTMF:A(A=>this.#t.sendDTMF(A)),holdCall:A(()=>this.#t.holdCall()),unholdCall:A(()=>this.#t.unholdCall()),consultCall:A(async A=>{try{await this.#t.consultCall(A)}catch(A){throw console.warn(A),A}}),consultRetrieve:A(()=>this.#t.consultRetrieve()),consultTransfer:A(()=>this.#t.consultTransfer()),mute:A(()=>this.#t.mute()),unmute:A(()=>this.#t.unmute()),satisfactionEvaluation:A(()=>this.#t.satisfactionEvaluation()),startConference:A(()=>this.#t.startConference()),transferAgent:A(A=>this.#t.transferAgent(A)),transferOutline:A(A=>this.#t.transferOutline(A)),earSpeakStart:A(A=>this.#e.earCall(A)),earSpeakStop:A(A=>this.#e.stopEarCall(A)),forceInsert:A(A=>this.#e.forceInsert(A)),forceDisconnect:A(A=>this.#e.forceDisconnect(A))}}get agent_api(){const A=A=>(...e)=>{if(!this.#i)return A.apply(this,e);console.warn("当前未使用个人开发模式")};return{changeDevice:A(A=>this.#e.changeDevice(A)),changeState:A(A=>this.#e.changeState(A)),getIdleAgentList:A(A=>this.#e.getIdleAgentList(A)),getAgentState:A(A=>this.#e.getAgentState(A)),setAgentExplicit:A(A=>this.#e.setAgentExplicit(A)),checkAgentLogin:A=>this.#e.checkAgentLogin(A),getCallRecord:A=>this.#e.getCallRecord(A),agentLogout:async(A,e)=>{try{await this.#e.logout(A),await this.destroy(),e?.({code:0,msg:""})}catch(A){}},listenAgentCall:A=>this.#e.listenCall(A)}}getAgentData(){const{agent_no:A,agent_name:e,answer_devices:t,out_display_data:s,out_display_select_switch:i,current_state:o}=Ve.agentInfo,{stateObject:n}=Ve,r={1:"软电话",2:"手机模式",3:"SIP话机"};return{agent_no:A,agent_name:e,init_state:o,default_device:he.get("answerDevice"),out_display_data:s,out_display_select_switch:i,answer_devices:(t||"").split(",").map(A=>({value:Number(A),label:r[Number(A)]})),stateObject:n}}async getRealTimeCustomerInfo(){return he.get("customerObject")}setBrowserAlert(A){if("boolean"!=typeof A)throw new Error(JSON.stringify({code:1,msg:"参数类型错误"}));Ve.logBuiltinEnabled=A||!1}setBrowserAlertTime(A){if("number"!=typeof A)throw new Error(JSON.stringify({code:1,msg:"参数类型错误"}));Ve.browserAlertTime=A||3e3}}ei=ti,import.meta.hot&&import.meta.hot.dispose(()=>{window.location.reload()});export{Ae as AgentStatus,ie as CallSipCallEventEnum,ee as DirectionEnum,ne as DisplayTextEnum,oe as EventName,se as WebRtcCallSipEventEnum,te as WebsocketTypeEnum,ti as default};
|