@16x/webphone-sdk 3.1.18 → 3.1.19

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.
Files changed (51) hide show
  1. package/CHANGELOG.md +267 -40
  2. package/LICENSE +1 -1
  3. package/README.md +214 -161
  4. package/dist/{Diagnostics-DhX9Uc67.cjs → Diagnostics-CgDSPlQx.cjs} +1 -1
  5. package/dist/{Diagnostics-qnipur6s.js → Diagnostics-DJdBDGad.js} +1 -1
  6. package/dist/{JsSipAdapter-l97xq1ao.cjs → JsSipAdapter-CgBtmR16.cjs} +1 -1
  7. package/dist/{JsSipAdapter-B8ueIoBA.js → JsSipAdapter-CiqM4KOq.js} +1 -1
  8. package/dist/SharedWorkerProtocol-4VARy5ma.cjs +1 -0
  9. package/dist/SharedWorkerProtocol-DvLUl0JZ.js +93 -0
  10. package/dist/core/CCBarCall.d.ts +1 -1
  11. package/dist/createJsSipFactory-9CPsweDR.js +9665 -0
  12. package/dist/createJsSipFactory-Dr8HbLl-.cjs +75 -0
  13. package/dist/crypto/legacySipTicket.d.ts +40 -0
  14. package/dist/diagnostics/index.cjs +1 -1
  15. package/dist/diagnostics/index.js +1 -1
  16. package/dist/errors/CCBarError.d.ts +2 -0
  17. package/dist/i18n/index.d.ts +22 -0
  18. package/dist/i18n/messages/en-US.d.ts +2 -0
  19. package/dist/i18n/messages/es-ES.d.ts +2 -0
  20. package/dist/i18n/messages/id-ID.d.ts +2 -0
  21. package/dist/i18n/messages/index.d.ts +7 -0
  22. package/dist/i18n/messages/zh-CN.d.ts +2 -0
  23. package/dist/i18n/types.d.ts +5 -0
  24. package/dist/i18n-BbEy6K9z.cjs +1 -0
  25. package/dist/i18n-D-DdHtGz.js +150 -0
  26. package/dist/index.cjs +1 -1
  27. package/dist/index.d.ts +2 -0
  28. package/dist/index.js +9 -8
  29. package/dist/index.umd.js +69 -16
  30. package/dist/legacy/index.cjs +1 -1
  31. package/dist/legacy/index.js +10 -276
  32. package/dist/legacy/legacySessionProvider.d.ts +20 -9
  33. package/dist/legacySessionProvider-CKJyrade.cjs +1 -0
  34. package/dist/{CCBarClient-5z2ZCceq.js → legacySessionProvider-DBrRBB3S.js} +778 -501
  35. package/dist/shared/SharedWorkerFactory.d.ts +2 -0
  36. package/dist/shared/SharedWorkerProtocol.d.ts +2 -0
  37. package/dist/shared-worker.cjs +1 -1
  38. package/dist/shared-worker.js +65 -64
  39. package/dist/styles.css +7 -7
  40. package/dist/ui/i18n/es-ES.d.ts +2 -0
  41. package/dist/ui/i18n/id-ID.d.ts +2 -0
  42. package/dist/ui/i18n/index.d.ts +2 -0
  43. package/dist/ui/index.cjs +1 -1
  44. package/dist/ui/index.js +278 -170
  45. package/dist/version.d.ts +1 -1
  46. package/package.json +114 -109
  47. package/dist/CCBarClient-UAJK9WcJ.cjs +0 -1
  48. package/dist/SharedWorkerProtocol-C-4KpECM.cjs +0 -1
  49. package/dist/SharedWorkerProtocol-CffZrUXg.js +0 -119
  50. package/dist/createJsSipFactory-B1ORbJiP.cjs +0 -22
  51. package/dist/createJsSipFactory-CoWZN-BC.js +0 -7410
@@ -1,22 +0,0 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,o)=>(o=n==null?{}:e(i(n)),l(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n)),d=e=>a.call(e,`module.exports`)?e[`module.exports`]:l(t({},`__esModule`,{value:!0}),e),f=c({bugs:()=>C,contributors:()=>v,default:()=>D,dependencies:()=>ee,description:()=>h,devDependencies:()=>E,files:()=>w,homepage:()=>_,keywords:()=>x,license:()=>`MIT`,main:()=>b,name:()=>p,repository:()=>S,scripts:()=>T,title:()=>m,types:()=>y,version:()=>g}),p,m,h,g,_,v,y,b,x,S,C,w,T,ee,E,D,O=o((()=>{p=`jssip`,m=`JsSIP`,h=`The Javascript SIP library`,g=`3.13.8`,_=`https://jssip.net`,v=[`José Luis Millán <jmillan@aliax.net> (https://github.com/jmillan)`,`Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)`],y=`lib/JsSIP.d.ts`,b=`lib/JsSIP.js`,x=[`sip`,`websocket`,`webrtc`,`node`,`browser`,`library`],S={type:`git`,url:`https://github.com/versatica/JsSIP.git`},C={url:`https://github.com/versatica/JsSIP/issues`},w=[`LICENSE`,`README.md`,`npm-scripts.mjs`,`lib`],T={lint:`node npm-scripts.mjs lint`,"lint:fix":`node npm-scripts.mjs lint:fix`,test:`node npm-scripts.mjs test`,coverage:`node npm-scripts.mjs coverage`,build:`node npm-scripts.mjs build`,"typescript:build":`node npm-scripts.mjs typescript:build`,release:`node npm-scripts.mjs release`,docs:`node npm-scripts.mjs docs`,"docs:watch":`node npm-scripts.mjs docs:watch`,"docs:check":`node npm-scripts.mjs docs:check`},ee={debug:`^4.3.1`,events:`^3.3.0`,"sdp-transform":`^2.14.1`},E={"@eslint/eslintrc":`^3.3.3`,"@eslint/js":`^9.39.2`,"@types/debug":`^4.1.12`,"@types/events":`^3.0.3`,"@types/jest":`^30.0.0`,"@types/node":`^25.0.10`,cpx:`^1.5.0`,esbuild:`^0.27.2`,eslint:`^9.39.1`,"eslint-config-prettier":`^10.1.8`,"eslint-plugin-jest":`^29.12.1`,"eslint-plugin-prettier":`^5.5.5`,globals:`^17.0.0`,jest:`^30.2.0`,"open-cli":`^8.0.0`,pegjs:`^0.7.0`,prettier:`^3.8.1`,"ts-jest":`^29.4.6`,typedoc:`^0.28.16`,typescript:`^5.9.3`,"typescript-eslint":`^8.53.1`},D={name:p,title:m,description:h,version:g,homepage:_,contributors:v,types:y,main:b,keywords:x,license:`MIT`,repository:S,bugs:C,files:w,scripts:T,dependencies:ee,devDependencies:E}})),k=s(((e,t)=>{var n=(O(),d(f).default);t.exports={USER_AGENT:`${n.title} ${n.version}`,SIP:`sip`,SIPS:`sips`,causes:{CONNECTION_ERROR:`Connection Error`,REQUEST_TIMEOUT:`Request Timeout`,SIP_FAILURE_CODE:`SIP Failure Code`,INTERNAL_ERROR:`Internal Error`,BUSY:`Busy`,REJECTED:`Rejected`,REDIRECTED:`Redirected`,UNAVAILABLE:`Unavailable`,NOT_FOUND:`Not Found`,ADDRESS_INCOMPLETE:`Address Incomplete`,INCOMPATIBLE_SDP:`Incompatible SDP`,MISSING_SDP:`Missing SDP`,AUTHENTICATION_ERROR:`Authentication Error`,BYE:`Terminated`,WEBRTC_ERROR:`WebRTC Error`,CANCELED:`Canceled`,NO_ANSWER:`No Answer`,EXPIRES:`Expires`,NO_ACK:`No ACK`,DIALOG_ERROR:`Dialog Error`,USER_DENIED_MEDIA_ACCESS:`User Denied Media Access`,BAD_MEDIA_DESCRIPTION:`Bad Media Description`,RTP_TIMEOUT:`RTP Timeout`},SIP_ERROR_CAUSES:{REDIRECTED:[300,301,302,305,380],BUSY:[486,600],REJECTED:[403,603],NOT_FOUND:[404,604],UNAVAILABLE:[480,410,408,430],ADDRESS_INCOMPLETE:[484,424],INCOMPATIBLE_SDP:[488,606],AUTHENTICATION_ERROR:[401,407]},ACK:`ACK`,BYE:`BYE`,CANCEL:`CANCEL`,INFO:`INFO`,INVITE:`INVITE`,MESSAGE:`MESSAGE`,NOTIFY:`NOTIFY`,OPTIONS:`OPTIONS`,REGISTER:`REGISTER`,REFER:`REFER`,UPDATE:`UPDATE`,SUBSCRIBE:`SUBSCRIBE`,DTMF_TRANSPORT:{INFO:`INFO`,RFC2833:`RFC2833`},REASON_PHRASE:{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`,424:`Bad Location Information`,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:`JsSIP Internal 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`},ALLOWED_METHODS:`INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY,SUBSCRIBE`,ACCEPTED_BODY_TYPES:`application/sdp, application/dtmf-relay`,MAX_FORWARDS:69,SESSION_EXPIRES:90,MIN_SESSION_EXPIRES:60,CONNECTION_RECOVERY_MAX_INTERVAL:30,CONNECTION_RECOVERY_MIN_INTERVAL:2}})),A=s(((e,t)=>{t.exports={ConfigurationError:class extends Error{constructor(e,t){super(),this.code=1,this.name=`CONFIGURATION_ERROR`,this.parameter=e,this.value=t,this.message=this.value?`Invalid value ${JSON.stringify(this.value)} for parameter "${this.parameter}"`:`Missing parameter: ${this.parameter}`}},InvalidStateError:class extends Error{constructor(e){super(),this.code=2,this.name=`INVALID_STATE_ERROR`,this.status=e,this.message=`Invalid status: ${e}`}},NotSupportedError:class extends Error{constructor(e){super(),this.code=3,this.name=`NOT_SUPPORTED_ERROR`,this.message=e}},NotReadyError:class extends Error{constructor(e){super(),this.code=4,this.name=`NOT_READY_ERROR`,this.message=e}}}})),te=s(((e,t)=>{var n=M(),r=j();t.exports=class e{static parse(e){if(e=r.parse(e,`Name_Addr_Header`),e!==-1)return e}constructor(e,t,r){if(!e||!(e instanceof n))throw TypeError(`missing or invalid "uri" parameter`);this._uri=e,this._parameters={},this.display_name=t;for(let e in r)Object.prototype.hasOwnProperty.call(r,e)&&this.setParam(e,r[e])}get uri(){return this._uri}get display_name(){return this._display_name}set display_name(e){this._display_name=e===0?`0`:e}setParam(e,t){e&&(this._parameters[e.toLowerCase()]=t==null?null:t.toString())}getParam(e){if(e)return this._parameters[e.toLowerCase()]}hasParam(e){if(e)return this._parameters.hasOwnProperty(e.toLowerCase())&&!0||!1}deleteParam(e){if(e=e.toLowerCase(),this._parameters.hasOwnProperty(e)){let t=this._parameters[e];return delete this._parameters[e],t}}clearParams(){this._parameters={}}clone(){return new e(this._uri.clone(),this._display_name,JSON.parse(JSON.stringify(this._parameters)))}_quote(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}toString(){let e=this._display_name?`"${this._quote(this._display_name)}" `:``;e+=`<${this._uri.toString()}>`;for(let t in this._parameters)Object.prototype.hasOwnProperty.call(this._parameters,t)&&(e+=`;${t}`,this._parameters[t]!==null&&(e+=`=${this._parameters[t]}`));return e}}})),j=s(((e,t)=>{t.exports=(function(){function e(e){return`"`+e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/\x08/g,`\\b`).replace(/\t/g,`\\t`).replace(/\n/g,`\\n`).replace(/\f/g,`\\f`).replace(/\r/g,`\\r`).replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g,escape)+`"`}var t={parse:function(t,n){var r={CRLF:l,DIGIT:u,ALPHA:d,HEXDIG:f,WSP:p,OCTET:m,DQUOTE:h,SP:g,HTAB:_,alphanum:v,reserved:y,unreserved:b,mark:x,escaped:S,LWS:C,SWS:w,HCOLON:T,TEXT_UTF8_TRIM:ee,TEXT_UTF8char:E,UTF8_NONASCII:D,UTF8_CONT:O,LHEX:k,token:A,token_nodot:j,separators:N,word:P,STAR:ne,SLASH:re,EQUAL:F,LPAREN:I,RPAREN:ie,RAQUOT:ae,LAQUOT:oe,COMMA:L,SEMI:R,COLON:se,LDQUOT:ce,RDQUOT:z,comment:B,ctext:le,quoted_string:ue,quoted_string_clean:V,qdtext:H,quoted_pair:U,SIP_URI_noparams:W,SIP_URI:de,uri_scheme:fe,uri_scheme_sips:pe,uri_scheme_sip:me,userinfo:he,user:ge,user_unreserved:_e,password:ve,hostport:ye,host:G,hostname:be,domainlabel:xe,toplabel:Se,IPv6reference:Ce,IPv6address:we,h16:K,ls32:q,IPv4address:Te,dec_octet:Ee,port:De,uri_parameters:Oe,uri_parameter:ke,transport_param:Ae,user_param:je,method_param:Me,ttl_param:Ne,maddr_param:Pe,lr_param:Fe,other_param:Ie,pname:Le,pvalue:Re,paramchar:ze,param_unreserved:Be,headers:Ve,header:He,hname:Ue,hvalue:We,hnv_unreserved:Ge,Request_Response:Ke,Request_Line:qe,Request_URI:Je,absoluteURI:Ye,hier_part:Xe,net_path:Ze,abs_path:Qe,opaque_part:$e,uric:et,uric_no_slash:tt,path_segments:nt,segment:rt,param:it,pchar:at,scheme:ot,authority:st,srvr:ct,reg_name:lt,query:ut,SIP_Version:dt,INVITEm:ft,ACKm:pt,OPTIONSm:mt,BYEm:ht,CANCELm:gt,REGISTERm:_t,SUBSCRIBEm:vt,NOTIFYm:yt,REFERm:bt,Method:xt,Status_Line:St,Status_Code:Ct,extension_code:wt,Reason_Phrase:Tt,Allow_Events:Et,Call_ID:Dt,Contact:Ot,contact_param:kt,name_addr:J,display_name:At,contact_params:jt,c_p_q:Mt,c_p_expires:Nt,delta_seconds:Y,qvalue:Pt,generic_param:X,gen_value:Ft,Content_Disposition:It,disp_type:Lt,disp_param:Rt,handling_param:zt,Content_Encoding:Bt,Content_Length:Vt,Content_Type:Ht,media_type:Ut,m_type:Wt,discrete_type:Gt,composite_type:Kt,extension_token:qt,x_token:Jt,m_subtype:Yt,m_parameter:Xt,m_value:Zt,CSeq:Qt,CSeq_value:$t,Expires:en,Event:tn,event_type:nn,From:rn,from_param:an,tag_param:on,Max_Forwards:sn,Min_Expires:cn,Name_Addr_Header:ln,Proxy_Authenticate:un,challenge:dn,other_challenge:fn,auth_param:pn,digest_cln:mn,realm:hn,realm_value:gn,domain:_n,URI:vn,nonce:yn,nonce_value:bn,opaque:xn,stale:Sn,algorithm:Cn,qop_options:wn,qop_value:Tn,Proxy_Require:En,Record_Route:Dn,rec_route:On,Reason:kn,reason_param:An,reason_cause:jn,Require:Mn,Route:Nn,route_param:Pn,Subscription_State:Fn,substate_value:In,subexp_params:Ln,event_reason_value:Rn,Subject:zn,Supported:Bn,To:Vn,to_param:Hn,Via:Un,via_param:Wn,via_params:Gn,via_ttl:Kn,via_maddr:qn,via_received:Jn,via_branch:Yn,response_port:Xn,rport:Zn,sent_protocol:Qn,protocol_name:$n,transport:er,sent_by:tr,via_host:nr,via_port:rr,ttl:ir,WWW_Authenticate:ar,Session_Expires:or,s_e_expires:sr,s_e_params:cr,s_e_refresher:lr,extension_header:ur,header_value:dr,message_body:fr,uuid_URI:pr,uuid:mr,hex4:Z,hex8:hr,hex12:gr,Refer_To:_r,Replaces:vr,call_id:yr,replaces_param:br,to_tag:xr,from_tag:Sr,early_flag:Cr};if(n!==void 0){if(r[n]===void 0)throw Error(`Invalid rule name: `+e(n)+`.`)}else n=`CRLF`;var i=0,a=0,o=0,s=[];function c(e){i<o||(i>o&&(o=i,s=[]),s.push(e))}function l(){var e;return t.substr(i,2)===`\r
2
- `?(e=`\r
3
- `,i+=2):(e=null,a===0&&c(`"\\r\\n"`)),e}function u(){var e;return/^[0-9]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[0-9]`)),e}function d(){var e;return/^[a-zA-Z]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[a-zA-Z]`)),e}function f(){var e;return/^[0-9a-fA-F]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[0-9a-fA-F]`)),e}function p(){var e=g();return e===null&&(e=_()),e}function m(){var e;return/^[\0-\xFF]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[\\0-\\xFF]`)),e}function h(){var e;return/^["]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`["]`)),e}function g(){var e;return t.charCodeAt(i)===32?(e=` `,i++):(e=null,a===0&&c(`" "`)),e}function _(){var e;return t.charCodeAt(i)===9?(e=` `,i++):(e=null,a===0&&c(`"\\t"`)),e}function v(){var e;return/^[a-zA-Z0-9]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[a-zA-Z0-9]`)),e}function y(){var e;return t.charCodeAt(i)===59?(e=`;`,i++):(e=null,a===0&&c(`";"`)),e===null&&(t.charCodeAt(i)===47?(e=`/`,i++):(e=null,a===0&&c(`"/"`)),e===null&&(t.charCodeAt(i)===63?(e=`?`,i++):(e=null,a===0&&c(`"?"`)),e===null&&(t.charCodeAt(i)===58?(e=`:`,i++):(e=null,a===0&&c(`":"`)),e===null&&(t.charCodeAt(i)===64?(e=`@`,i++):(e=null,a===0&&c(`"@"`)),e===null&&(t.charCodeAt(i)===38?(e=`&`,i++):(e=null,a===0&&c(`"&"`)),e===null&&(t.charCodeAt(i)===61?(e=`=`,i++):(e=null,a===0&&c(`"="`)),e===null&&(t.charCodeAt(i)===43?(e=`+`,i++):(e=null,a===0&&c(`"+"`)),e===null&&(t.charCodeAt(i)===36?(e=`$`,i++):(e=null,a===0&&c(`"$"`)),e===null&&(t.charCodeAt(i)===44?(e=`,`,i++):(e=null,a===0&&c(`","`))))))))))),e}function b(){var e=v();return e===null&&(e=x()),e}function x(){var e;return t.charCodeAt(i)===45?(e=`-`,i++):(e=null,a===0&&c(`"-"`)),e===null&&(t.charCodeAt(i)===95?(e=`_`,i++):(e=null,a===0&&c(`"_"`)),e===null&&(t.charCodeAt(i)===46?(e=`.`,i++):(e=null,a===0&&c(`"."`)),e===null&&(t.charCodeAt(i)===33?(e=`!`,i++):(e=null,a===0&&c(`"!"`)),e===null&&(t.charCodeAt(i)===126?(e=`~`,i++):(e=null,a===0&&c(`"~"`)),e===null&&(t.charCodeAt(i)===42?(e=`*`,i++):(e=null,a===0&&c(`"*"`)),e===null&&(t.charCodeAt(i)===39?(e=`'`,i++):(e=null,a===0&&c(`"'"`)),e===null&&(t.charCodeAt(i)===40?(e=`(`,i++):(e=null,a===0&&c(`"("`)),e===null&&(t.charCodeAt(i)===41?(e=`)`,i++):(e=null,a===0&&c(`")"`)))))))))),e}function S(){var e,n,r,o=i,s=i;return t.charCodeAt(i)===37?(e=`%`,i++):(e=null,a===0&&c(`"%"`)),e===null?(e=null,i=s):(n=f(),n===null?(e=null,i=s):(r=f(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){return t.join(``)})(o,e)),e===null&&(i=o),e}function C(){var e,t,n,r=i,a=i,o=i;for(e=[],t=p();t!==null;)e.push(t),t=p();if(e===null?(e=null,i=o):(t=l(),t===null?(e=null,i=o):e=[e,t]),e=e===null?``:e,e!==null){if(n=p(),n!==null)for(t=[];n!==null;)t.push(n),n=p();else t=null;t===null?(e=null,i=a):e=[e,t]}else e=null,i=a;return e!==null&&(e=(function(e){return` `})(r)),e===null&&(i=r),e}function w(){var e=C();return e=e===null?``:e,e}function T(){var e,n,r,o=i,s=i;for(e=[],n=g(),n===null&&(n=_());n!==null;)e.push(n),n=g(),n===null&&(n=_());return e===null?(e=null,i=s):(t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(e=null,i=s):(r=w(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e){return`:`})(o)),e===null&&(i=o),e}function ee(){var e,n,r,a,o=i,s=i,c;if(n=E(),n!==null)for(e=[];n!==null;)e.push(n),n=E();else e=null;if(e!==null){for(n=[],c=i,r=[],a=C();a!==null;)r.push(a),a=C();for(r===null?(r=null,i=c):(a=E(),a===null?(r=null,i=c):r=[r,a]);r!==null;){for(n.push(r),c=i,r=[],a=C();a!==null;)r.push(a),a=C();r===null?(r=null,i=c):(a=E(),a===null?(r=null,i=c):r=[r,a])}n===null?(e=null,i=s):e=[e,n]}else e=null,i=s;return e!==null&&(e=(function(e){return t.substring(i,e)})(o)),e===null&&(i=o),e}function E(){var e;return/^[!-~]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[!-~]`)),e===null&&(e=D()),e}function D(){var e;return/^[\x80-\uFFFF]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[\\x80-\\uFFFF]`)),e}function O(){var e;return/^[\x80-\xBF]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[\\x80-\\xBF]`)),e}function k(){var e=u();return e===null&&(/^[a-f]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[a-f]`))),e}function A(){var e,n,r=i;if(n=v(),n===null&&(t.charCodeAt(i)===45?(n=`-`,i++):(n=null,a===0&&c(`"-"`)),n===null&&(t.charCodeAt(i)===46?(n=`.`,i++):(n=null,a===0&&c(`"."`)),n===null&&(t.charCodeAt(i)===33?(n=`!`,i++):(n=null,a===0&&c(`"!"`)),n===null&&(t.charCodeAt(i)===37?(n=`%`,i++):(n=null,a===0&&c(`"%"`)),n===null&&(t.charCodeAt(i)===42?(n=`*`,i++):(n=null,a===0&&c(`"*"`)),n===null&&(t.charCodeAt(i)===95?(n=`_`,i++):(n=null,a===0&&c(`"_"`)),n===null&&(t.charCodeAt(i)===43?(n=`+`,i++):(n=null,a===0&&c(`"+"`)),n===null&&(t.charCodeAt(i)===96?(n="`",i++):(n=null,a===0&&c('"`"')),n===null&&(t.charCodeAt(i)===39?(n=`'`,i++):(n=null,a===0&&c(`"'"`)),n===null&&(t.charCodeAt(i)===126?(n=`~`,i++):(n=null,a===0&&c(`"~"`)))))))))))),n!==null)for(e=[];n!==null;)e.push(n),n=v(),n===null&&(t.charCodeAt(i)===45?(n=`-`,i++):(n=null,a===0&&c(`"-"`)),n===null&&(t.charCodeAt(i)===46?(n=`.`,i++):(n=null,a===0&&c(`"."`)),n===null&&(t.charCodeAt(i)===33?(n=`!`,i++):(n=null,a===0&&c(`"!"`)),n===null&&(t.charCodeAt(i)===37?(n=`%`,i++):(n=null,a===0&&c(`"%"`)),n===null&&(t.charCodeAt(i)===42?(n=`*`,i++):(n=null,a===0&&c(`"*"`)),n===null&&(t.charCodeAt(i)===95?(n=`_`,i++):(n=null,a===0&&c(`"_"`)),n===null&&(t.charCodeAt(i)===43?(n=`+`,i++):(n=null,a===0&&c(`"+"`)),n===null&&(t.charCodeAt(i)===96?(n="`",i++):(n=null,a===0&&c('"`"')),n===null&&(t.charCodeAt(i)===39?(n=`'`,i++):(n=null,a===0&&c(`"'"`)),n===null&&(t.charCodeAt(i)===126?(n=`~`,i++):(n=null,a===0&&c(`"~"`))))))))))));else e=null;return e!==null&&(e=(function(e){return t.substring(i,e)})(r)),e===null&&(i=r),e}function j(){var e,n,r=i;if(n=v(),n===null&&(t.charCodeAt(i)===45?(n=`-`,i++):(n=null,a===0&&c(`"-"`)),n===null&&(t.charCodeAt(i)===33?(n=`!`,i++):(n=null,a===0&&c(`"!"`)),n===null&&(t.charCodeAt(i)===37?(n=`%`,i++):(n=null,a===0&&c(`"%"`)),n===null&&(t.charCodeAt(i)===42?(n=`*`,i++):(n=null,a===0&&c(`"*"`)),n===null&&(t.charCodeAt(i)===95?(n=`_`,i++):(n=null,a===0&&c(`"_"`)),n===null&&(t.charCodeAt(i)===43?(n=`+`,i++):(n=null,a===0&&c(`"+"`)),n===null&&(t.charCodeAt(i)===96?(n="`",i++):(n=null,a===0&&c('"`"')),n===null&&(t.charCodeAt(i)===39?(n=`'`,i++):(n=null,a===0&&c(`"'"`)),n===null&&(t.charCodeAt(i)===126?(n=`~`,i++):(n=null,a===0&&c(`"~"`))))))))))),n!==null)for(e=[];n!==null;)e.push(n),n=v(),n===null&&(t.charCodeAt(i)===45?(n=`-`,i++):(n=null,a===0&&c(`"-"`)),n===null&&(t.charCodeAt(i)===33?(n=`!`,i++):(n=null,a===0&&c(`"!"`)),n===null&&(t.charCodeAt(i)===37?(n=`%`,i++):(n=null,a===0&&c(`"%"`)),n===null&&(t.charCodeAt(i)===42?(n=`*`,i++):(n=null,a===0&&c(`"*"`)),n===null&&(t.charCodeAt(i)===95?(n=`_`,i++):(n=null,a===0&&c(`"_"`)),n===null&&(t.charCodeAt(i)===43?(n=`+`,i++):(n=null,a===0&&c(`"+"`)),n===null&&(t.charCodeAt(i)===96?(n="`",i++):(n=null,a===0&&c('"`"')),n===null&&(t.charCodeAt(i)===39?(n=`'`,i++):(n=null,a===0&&c(`"'"`)),n===null&&(t.charCodeAt(i)===126?(n=`~`,i++):(n=null,a===0&&c(`"~"`)))))))))));else e=null;return e!==null&&(e=(function(e){return t.substring(i,e)})(r)),e===null&&(i=r),e}function N(){var e;return t.charCodeAt(i)===40?(e=`(`,i++):(e=null,a===0&&c(`"("`)),e===null&&(t.charCodeAt(i)===41?(e=`)`,i++):(e=null,a===0&&c(`")"`)),e===null&&(t.charCodeAt(i)===60?(e=`<`,i++):(e=null,a===0&&c(`"<"`)),e===null&&(t.charCodeAt(i)===62?(e=`>`,i++):(e=null,a===0&&c(`">"`)),e===null&&(t.charCodeAt(i)===64?(e=`@`,i++):(e=null,a===0&&c(`"@"`)),e===null&&(t.charCodeAt(i)===44?(e=`,`,i++):(e=null,a===0&&c(`","`)),e===null&&(t.charCodeAt(i)===59?(e=`;`,i++):(e=null,a===0&&c(`";"`)),e===null&&(t.charCodeAt(i)===58?(e=`:`,i++):(e=null,a===0&&c(`":"`)),e===null&&(t.charCodeAt(i)===92?(e=`\\`,i++):(e=null,a===0&&c(`"\\\\"`)),e===null&&(e=h(),e===null&&(t.charCodeAt(i)===47?(e=`/`,i++):(e=null,a===0&&c(`"/"`)),e===null&&(t.charCodeAt(i)===91?(e=`[`,i++):(e=null,a===0&&c(`"["`)),e===null&&(t.charCodeAt(i)===93?(e=`]`,i++):(e=null,a===0&&c(`"]"`)),e===null&&(t.charCodeAt(i)===63?(e=`?`,i++):(e=null,a===0&&c(`"?"`)),e===null&&(t.charCodeAt(i)===61?(e=`=`,i++):(e=null,a===0&&c(`"="`)),e===null&&(t.charCodeAt(i)===123?(e=`{`,i++):(e=null,a===0&&c(`"{"`)),e===null&&(t.charCodeAt(i)===125?(e=`}`,i++):(e=null,a===0&&c(`"}"`)),e===null&&(e=g(),e===null&&(e=_())))))))))))))))))),e}function P(){var e,n,r=i;if(n=v(),n===null&&(t.charCodeAt(i)===45?(n=`-`,i++):(n=null,a===0&&c(`"-"`)),n===null&&(t.charCodeAt(i)===46?(n=`.`,i++):(n=null,a===0&&c(`"."`)),n===null&&(t.charCodeAt(i)===33?(n=`!`,i++):(n=null,a===0&&c(`"!"`)),n===null&&(t.charCodeAt(i)===37?(n=`%`,i++):(n=null,a===0&&c(`"%"`)),n===null&&(t.charCodeAt(i)===42?(n=`*`,i++):(n=null,a===0&&c(`"*"`)),n===null&&(t.charCodeAt(i)===95?(n=`_`,i++):(n=null,a===0&&c(`"_"`)),n===null&&(t.charCodeAt(i)===43?(n=`+`,i++):(n=null,a===0&&c(`"+"`)),n===null&&(t.charCodeAt(i)===96?(n="`",i++):(n=null,a===0&&c('"`"')),n===null&&(t.charCodeAt(i)===39?(n=`'`,i++):(n=null,a===0&&c(`"'"`)),n===null&&(t.charCodeAt(i)===126?(n=`~`,i++):(n=null,a===0&&c(`"~"`)),n===null&&(t.charCodeAt(i)===40?(n=`(`,i++):(n=null,a===0&&c(`"("`)),n===null&&(t.charCodeAt(i)===41?(n=`)`,i++):(n=null,a===0&&c(`")"`)),n===null&&(t.charCodeAt(i)===60?(n=`<`,i++):(n=null,a===0&&c(`"<"`)),n===null&&(t.charCodeAt(i)===62?(n=`>`,i++):(n=null,a===0&&c(`">"`)),n===null&&(t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null&&(t.charCodeAt(i)===92?(n=`\\`,i++):(n=null,a===0&&c(`"\\\\"`)),n===null&&(n=h(),n===null&&(t.charCodeAt(i)===47?(n=`/`,i++):(n=null,a===0&&c(`"/"`)),n===null&&(t.charCodeAt(i)===91?(n=`[`,i++):(n=null,a===0&&c(`"["`)),n===null&&(t.charCodeAt(i)===93?(n=`]`,i++):(n=null,a===0&&c(`"]"`)),n===null&&(t.charCodeAt(i)===63?(n=`?`,i++):(n=null,a===0&&c(`"?"`)),n===null&&(t.charCodeAt(i)===123?(n=`{`,i++):(n=null,a===0&&c(`"{"`)),n===null&&(t.charCodeAt(i)===125?(n=`}`,i++):(n=null,a===0&&c(`"}"`))))))))))))))))))))))))),n!==null)for(e=[];n!==null;)e.push(n),n=v(),n===null&&(t.charCodeAt(i)===45?(n=`-`,i++):(n=null,a===0&&c(`"-"`)),n===null&&(t.charCodeAt(i)===46?(n=`.`,i++):(n=null,a===0&&c(`"."`)),n===null&&(t.charCodeAt(i)===33?(n=`!`,i++):(n=null,a===0&&c(`"!"`)),n===null&&(t.charCodeAt(i)===37?(n=`%`,i++):(n=null,a===0&&c(`"%"`)),n===null&&(t.charCodeAt(i)===42?(n=`*`,i++):(n=null,a===0&&c(`"*"`)),n===null&&(t.charCodeAt(i)===95?(n=`_`,i++):(n=null,a===0&&c(`"_"`)),n===null&&(t.charCodeAt(i)===43?(n=`+`,i++):(n=null,a===0&&c(`"+"`)),n===null&&(t.charCodeAt(i)===96?(n="`",i++):(n=null,a===0&&c('"`"')),n===null&&(t.charCodeAt(i)===39?(n=`'`,i++):(n=null,a===0&&c(`"'"`)),n===null&&(t.charCodeAt(i)===126?(n=`~`,i++):(n=null,a===0&&c(`"~"`)),n===null&&(t.charCodeAt(i)===40?(n=`(`,i++):(n=null,a===0&&c(`"("`)),n===null&&(t.charCodeAt(i)===41?(n=`)`,i++):(n=null,a===0&&c(`")"`)),n===null&&(t.charCodeAt(i)===60?(n=`<`,i++):(n=null,a===0&&c(`"<"`)),n===null&&(t.charCodeAt(i)===62?(n=`>`,i++):(n=null,a===0&&c(`">"`)),n===null&&(t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null&&(t.charCodeAt(i)===92?(n=`\\`,i++):(n=null,a===0&&c(`"\\\\"`)),n===null&&(n=h(),n===null&&(t.charCodeAt(i)===47?(n=`/`,i++):(n=null,a===0&&c(`"/"`)),n===null&&(t.charCodeAt(i)===91?(n=`[`,i++):(n=null,a===0&&c(`"["`)),n===null&&(t.charCodeAt(i)===93?(n=`]`,i++):(n=null,a===0&&c(`"]"`)),n===null&&(t.charCodeAt(i)===63?(n=`?`,i++):(n=null,a===0&&c(`"?"`)),n===null&&(t.charCodeAt(i)===123?(n=`{`,i++):(n=null,a===0&&c(`"{"`)),n===null&&(t.charCodeAt(i)===125?(n=`}`,i++):(n=null,a===0&&c(`"}"`)))))))))))))))))))))))));else e=null;return e!==null&&(e=(function(e){return t.substring(i,e)})(r)),e===null&&(i=r),e}function ne(){var e,n,r,o=i,s=i;return e=w(),e===null?(e=null,i=s):(t.charCodeAt(i)===42?(n=`*`,i++):(n=null,a===0&&c(`"*"`)),n===null?(e=null,i=s):(r=w(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e){return`*`})(o)),e===null&&(i=o),e}function re(){var e,n,r,o=i,s=i;return e=w(),e===null?(e=null,i=s):(t.charCodeAt(i)===47?(n=`/`,i++):(n=null,a===0&&c(`"/"`)),n===null?(e=null,i=s):(r=w(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e){return`/`})(o)),e===null&&(i=o),e}function F(){var e,n,r,o=i,s=i;return e=w(),e===null?(e=null,i=s):(t.charCodeAt(i)===61?(n=`=`,i++):(n=null,a===0&&c(`"="`)),n===null?(e=null,i=s):(r=w(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e){return`=`})(o)),e===null&&(i=o),e}function I(){var e,n,r,o=i,s=i;return e=w(),e===null?(e=null,i=s):(t.charCodeAt(i)===40?(n=`(`,i++):(n=null,a===0&&c(`"("`)),n===null?(e=null,i=s):(r=w(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e){return`(`})(o)),e===null&&(i=o),e}function ie(){var e,n,r,o=i,s=i;return e=w(),e===null?(e=null,i=s):(t.charCodeAt(i)===41?(n=`)`,i++):(n=null,a===0&&c(`")"`)),n===null?(e=null,i=s):(r=w(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e){return`)`})(o)),e===null&&(i=o),e}function ae(){var e,n,r=i,o=i;return t.charCodeAt(i)===62?(e=`>`,i++):(e=null,a===0&&c(`">"`)),e===null?(e=null,i=o):(n=w(),n===null?(e=null,i=o):e=[e,n]),e!==null&&(e=(function(e){return`>`})(r)),e===null&&(i=r),e}function oe(){var e,n,r=i,o=i;return e=w(),e===null?(e=null,i=o):(t.charCodeAt(i)===60?(n=`<`,i++):(n=null,a===0&&c(`"<"`)),n===null?(e=null,i=o):e=[e,n]),e!==null&&(e=(function(e){return`<`})(r)),e===null&&(i=r),e}function L(){var e,n,r,o=i,s=i;return e=w(),e===null?(e=null,i=s):(t.charCodeAt(i)===44?(n=`,`,i++):(n=null,a===0&&c(`","`)),n===null?(e=null,i=s):(r=w(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e){return`,`})(o)),e===null&&(i=o),e}function R(){var e,n,r,o=i,s=i;return e=w(),e===null?(e=null,i=s):(t.charCodeAt(i)===59?(n=`;`,i++):(n=null,a===0&&c(`";"`)),n===null?(e=null,i=s):(r=w(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e){return`;`})(o)),e===null&&(i=o),e}function se(){var e,n,r,o=i,s=i;return e=w(),e===null?(e=null,i=s):(t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(e=null,i=s):(r=w(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e){return`:`})(o)),e===null&&(i=o),e}function ce(){var e,t,n=i,r=i;return e=w(),e===null?(e=null,i=r):(t=h(),t===null?(e=null,i=r):e=[e,t]),e!==null&&(e=(function(e){return`"`})(n)),e===null&&(i=n),e}function z(){var e,t,n=i,r=i;return e=h(),e===null?(e=null,i=r):(t=w(),t===null?(e=null,i=r):e=[e,t]),e!==null&&(e=(function(e){return`"`})(n)),e===null&&(i=n),e}function B(){var e,t,n,r=i;if(e=I(),e!==null){for(t=[],n=le(),n===null&&(n=U(),n===null&&(n=B()));n!==null;)t.push(n),n=le(),n===null&&(n=U(),n===null&&(n=B()));t===null?(e=null,i=r):(n=ie(),n===null?(e=null,i=r):e=[e,t,n])}else e=null,i=r;return e}function le(){var e;return/^[!-']/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[!-']`)),e===null&&(/^[*-[]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[*-[]`)),e===null&&(/^[\]-~]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[\\]-~]`)),e===null&&(e=D(),e===null&&(e=C())))),e}function ue(){var e,n,r,a,o=i,s=i;if(e=w(),e!==null){if(n=h(),n!==null){for(r=[],a=H(),a===null&&(a=U());a!==null;)r.push(a),a=H(),a===null&&(a=U());r===null?(e=null,i=s):(a=h(),a===null?(e=null,i=s):e=[e,n,r,a])}else e=null,i=s}else e=null,i=s;return e!==null&&(e=(function(e){return t.substring(i,e)})(o)),e===null&&(i=o),e}function V(){var e,n,r,a,o=i,s=i;if(e=w(),e!==null){if(n=h(),n!==null){for(r=[],a=H(),a===null&&(a=U());a!==null;)r.push(a),a=H(),a===null&&(a=U());r===null?(e=null,i=s):(a=h(),a===null?(e=null,i=s):e=[e,n,r,a])}else e=null,i=s}else e=null,i=s;return e!==null&&(e=(function(e){var n=t.substring(i,e).trim();return n.substring(1,n.length-1).replace(/\\([\x00-\x09\x0b-\x0c\x0e-\x7f])/g,`$1`)})(o)),e===null&&(i=o),e}function H(){var e=C();return e===null&&(t.charCodeAt(i)===33?(e=`!`,i++):(e=null,a===0&&c(`"!"`)),e===null&&(/^[#-[]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[#-[]`)),e===null&&(/^[\]-~]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[\\]-~]`)),e===null&&(e=D())))),e}function U(){var e,n,r=i;return t.charCodeAt(i)===92?(e=`\\`,i++):(e=null,a===0&&c(`"\\\\"`)),e===null?(e=null,i=r):(/^[\0-\t]/.test(t.charAt(i))?(n=t.charAt(i),i++):(n=null,a===0&&c(`[\\0-\\t]`)),n===null&&(/^[\x0B-\f]/.test(t.charAt(i))?(n=t.charAt(i),i++):(n=null,a===0&&c(`[\\x0B-\\f]`)),n===null&&(/^[\x0E-]/.test(t.charAt(i))?(n=t.charAt(i),i++):(n=null,a===0&&c(`[\\x0E-]`)))),n===null?(e=null,i=r):e=[e,n]),e}function W(){var e,n,r,o,s=i,l=i;return e=fe(),e===null?(e=null,i=l):(t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(e=null,i=l):(r=he(),r=r===null?``:r,r===null?(e=null,i=l):(o=ye(),o===null?(e=null,i=l):e=[e,n,r,o]))),e!==null&&(e=(function(e){try{$.uri=new Er($.scheme,$.user,$.host,$.port),delete $.scheme,delete $.user,delete $.host,delete $.host_type,delete $.port}catch{$=-1}})(s)),e===null&&(i=s),e}function de(){var e,r,o,s,l,u,d=i,f=i;return e=fe(),e===null?(e=null,i=f):(t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(e=null,i=f):(o=he(),o=o===null?``:o,o===null?(e=null,i=f):(s=ye(),s===null?(e=null,i=f):(l=Oe(),l===null?(e=null,i=f):(u=Ve(),u=u===null?``:u,u===null?(e=null,i=f):e=[e,r,o,s,l,u]))))),e!==null&&(e=(function(e){try{$.uri=new Er($.scheme,$.user,$.host,$.port,$.uri_params,$.uri_headers),delete $.scheme,delete $.user,delete $.host,delete $.host_type,delete $.port,delete $.uri_params,n===`SIP_URI`&&($=$.uri)}catch{$=-1}})(d)),e===null&&(i=d),e}function fe(){var e=pe();return e===null&&(e=me()),e}function pe(){var e,n=i;return t.substr(i,4).toLowerCase()===`sips`?(e=t.substr(i,4),i+=4):(e=null,a===0&&c(`"sips"`)),e!==null&&(e=(function(e,t){$.scheme=t.toLowerCase()})(n,e)),e===null&&(i=n),e}function me(){var e,n=i;return t.substr(i,3).toLowerCase()===`sip`?(e=t.substr(i,3),i+=3):(e=null,a===0&&c(`"sip"`)),e!==null&&(e=(function(e,t){$.scheme=t.toLowerCase()})(n,e)),e===null&&(i=n),e}function he(){var e,n,r,o=i,s=i,l;return e=ge(),e===null?(e=null,i=s):(l=i,t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(n=null,i=l):(r=ve(),r===null?(n=null,i=l):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=s):(t.charCodeAt(i)===64?(r=`@`,i++):(r=null,a===0&&c(`"@"`)),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e){$.user=decodeURIComponent(t.substring(i-1,e))})(o)),e===null&&(i=o),e}function ge(){var e,t=b();if(t===null&&(t=S(),t===null&&(t=_e())),t!==null)for(e=[];t!==null;)e.push(t),t=b(),t===null&&(t=S(),t===null&&(t=_e()));else e=null;return e}function _e(){var e;return t.charCodeAt(i)===38?(e=`&`,i++):(e=null,a===0&&c(`"&"`)),e===null&&(t.charCodeAt(i)===61?(e=`=`,i++):(e=null,a===0&&c(`"="`)),e===null&&(t.charCodeAt(i)===43?(e=`+`,i++):(e=null,a===0&&c(`"+"`)),e===null&&(t.charCodeAt(i)===36?(e=`$`,i++):(e=null,a===0&&c(`"$"`)),e===null&&(t.charCodeAt(i)===44?(e=`,`,i++):(e=null,a===0&&c(`","`)),e===null&&(t.charCodeAt(i)===59?(e=`;`,i++):(e=null,a===0&&c(`";"`)),e===null&&(t.charCodeAt(i)===63?(e=`?`,i++):(e=null,a===0&&c(`"?"`)),e===null&&(t.charCodeAt(i)===47?(e=`/`,i++):(e=null,a===0&&c(`"/"`))))))))),e}function ve(){var e,n,r=i;for(e=[],n=b(),n===null&&(n=S(),n===null&&(t.charCodeAt(i)===38?(n=`&`,i++):(n=null,a===0&&c(`"&"`)),n===null&&(t.charCodeAt(i)===61?(n=`=`,i++):(n=null,a===0&&c(`"="`)),n===null&&(t.charCodeAt(i)===43?(n=`+`,i++):(n=null,a===0&&c(`"+"`)),n===null&&(t.charCodeAt(i)===36?(n=`$`,i++):(n=null,a===0&&c(`"$"`)),n===null&&(t.charCodeAt(i)===44?(n=`,`,i++):(n=null,a===0&&c(`","`))))))));n!==null;)e.push(n),n=b(),n===null&&(n=S(),n===null&&(t.charCodeAt(i)===38?(n=`&`,i++):(n=null,a===0&&c(`"&"`)),n===null&&(t.charCodeAt(i)===61?(n=`=`,i++):(n=null,a===0&&c(`"="`)),n===null&&(t.charCodeAt(i)===43?(n=`+`,i++):(n=null,a===0&&c(`"+"`)),n===null&&(t.charCodeAt(i)===36?(n=`$`,i++):(n=null,a===0&&c(`"$"`)),n===null&&(t.charCodeAt(i)===44?(n=`,`,i++):(n=null,a===0&&c(`","`))))))));return e!==null&&(e=(function(e){$.password=t.substring(i,e)})(r)),e===null&&(i=r),e}function ye(){var e,n,r,o=i,s;return e=G(),e===null?(e=null,i=o):(s=i,t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(n=null,i=s):(r=De(),r===null?(n=null,i=s):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=o):e=[e,n]),e}function G(){var e,n=i;return e=be(),e===null&&(e=Te(),e===null&&(e=Ce())),e!==null&&(e=(function(e){return $.host=t.substring(i,e).toLowerCase(),$.host})(n)),e===null&&(i=n),e}function be(){var e,n,r,o=i,s=i,l;for(e=[],l=i,n=xe(),n===null?(n=null,i=l):(t.charCodeAt(i)===46?(r=`.`,i++):(r=null,a===0&&c(`"."`)),r===null?(n=null,i=l):n=[n,r]);n!==null;)e.push(n),l=i,n=xe(),n===null?(n=null,i=l):(t.charCodeAt(i)===46?(r=`.`,i++):(r=null,a===0&&c(`"."`)),r===null?(n=null,i=l):n=[n,r]);return e===null?(e=null,i=s):(n=Se(),n===null?(e=null,i=s):(t.charCodeAt(i)===46?(r=`.`,i++):(r=null,a===0&&c(`"."`)),r=r===null?``:r,r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e){return $.host_type=`domain`,t.substring(i,e)})(o)),e===null&&(i=o),e}function xe(){var e,n,r,o=i;if(e=v(),e!==null){for(n=[],r=v(),r===null&&(t.charCodeAt(i)===45?(r=`-`,i++):(r=null,a===0&&c(`"-"`)),r===null&&(t.charCodeAt(i)===95?(r=`_`,i++):(r=null,a===0&&c(`"_"`))));r!==null;)n.push(r),r=v(),r===null&&(t.charCodeAt(i)===45?(r=`-`,i++):(r=null,a===0&&c(`"-"`)),r===null&&(t.charCodeAt(i)===95?(r=`_`,i++):(r=null,a===0&&c(`"_"`))));n===null?(e=null,i=o):e=[e,n]}else e=null,i=o;return e}function Se(){var e,n,r,o=i;if(e=d(),e!==null){for(n=[],r=v(),r===null&&(t.charCodeAt(i)===45?(r=`-`,i++):(r=null,a===0&&c(`"-"`)),r===null&&(t.charCodeAt(i)===95?(r=`_`,i++):(r=null,a===0&&c(`"_"`))));r!==null;)n.push(r),r=v(),r===null&&(t.charCodeAt(i)===45?(r=`-`,i++):(r=null,a===0&&c(`"-"`)),r===null&&(t.charCodeAt(i)===95?(r=`_`,i++):(r=null,a===0&&c(`"_"`))));n===null?(e=null,i=o):e=[e,n]}else e=null,i=o;return e}function Ce(){var e,n,r,o=i,s=i;return t.charCodeAt(i)===91?(e=`[`,i++):(e=null,a===0&&c(`"["`)),e===null?(e=null,i=s):(n=we(),n===null?(e=null,i=s):(t.charCodeAt(i)===93?(r=`]`,i++):(r=null,a===0&&c(`"]"`)),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e){return $.host_type=`IPv6`,t.substring(i,e)})(o)),e===null&&(i=o),e}function we(){var e,n,r,o,s,l,u,d,f,p,m,h,g,_=i,v=i,y;return e=K(),e===null?(e=null,i=v):(t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(e=null,i=v):(r=K(),r===null?(e=null,i=v):(t.charCodeAt(i)===58?(o=`:`,i++):(o=null,a===0&&c(`":"`)),o===null?(e=null,i=v):(s=K(),s===null?(e=null,i=v):(t.charCodeAt(i)===58?(l=`:`,i++):(l=null,a===0&&c(`":"`)),l===null?(e=null,i=v):(u=K(),u===null?(e=null,i=v):(t.charCodeAt(i)===58?(d=`:`,i++):(d=null,a===0&&c(`":"`)),d===null?(e=null,i=v):(f=K(),f===null?(e=null,i=v):(t.charCodeAt(i)===58?(p=`:`,i++):(p=null,a===0&&c(`":"`)),p===null?(e=null,i=v):(m=K(),m===null?(e=null,i=v):(t.charCodeAt(i)===58?(h=`:`,i++):(h=null,a===0&&c(`":"`)),h===null?(e=null,i=v):(g=q(),g===null?(e=null,i=v):e=[e,n,r,o,s,l,u,d,f,p,m,h,g])))))))))))),e===null&&(v=i,t.substr(i,2)===`::`?(e=`::`,i+=2):(e=null,a===0&&c(`"::"`)),e===null?(e=null,i=v):(n=K(),n===null?(e=null,i=v):(t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(e=null,i=v):(o=K(),o===null?(e=null,i=v):(t.charCodeAt(i)===58?(s=`:`,i++):(s=null,a===0&&c(`":"`)),s===null?(e=null,i=v):(l=K(),l===null?(e=null,i=v):(t.charCodeAt(i)===58?(u=`:`,i++):(u=null,a===0&&c(`":"`)),u===null?(e=null,i=v):(d=K(),d===null?(e=null,i=v):(t.charCodeAt(i)===58?(f=`:`,i++):(f=null,a===0&&c(`":"`)),f===null?(e=null,i=v):(p=K(),p===null?(e=null,i=v):(t.charCodeAt(i)===58?(m=`:`,i++):(m=null,a===0&&c(`":"`)),m===null?(e=null,i=v):(h=q(),h===null?(e=null,i=v):e=[e,n,r,o,s,l,u,d,f,p,m,h]))))))))))),e===null&&(v=i,t.substr(i,2)===`::`?(e=`::`,i+=2):(e=null,a===0&&c(`"::"`)),e===null?(e=null,i=v):(n=K(),n===null?(e=null,i=v):(t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(e=null,i=v):(o=K(),o===null?(e=null,i=v):(t.charCodeAt(i)===58?(s=`:`,i++):(s=null,a===0&&c(`":"`)),s===null?(e=null,i=v):(l=K(),l===null?(e=null,i=v):(t.charCodeAt(i)===58?(u=`:`,i++):(u=null,a===0&&c(`":"`)),u===null?(e=null,i=v):(d=K(),d===null?(e=null,i=v):(t.charCodeAt(i)===58?(f=`:`,i++):(f=null,a===0&&c(`":"`)),f===null?(e=null,i=v):(p=q(),p===null?(e=null,i=v):e=[e,n,r,o,s,l,u,d,f,p]))))))))),e===null&&(v=i,t.substr(i,2)===`::`?(e=`::`,i+=2):(e=null,a===0&&c(`"::"`)),e===null?(e=null,i=v):(n=K(),n===null?(e=null,i=v):(t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(e=null,i=v):(o=K(),o===null?(e=null,i=v):(t.charCodeAt(i)===58?(s=`:`,i++):(s=null,a===0&&c(`":"`)),s===null?(e=null,i=v):(l=K(),l===null?(e=null,i=v):(t.charCodeAt(i)===58?(u=`:`,i++):(u=null,a===0&&c(`":"`)),u===null?(e=null,i=v):(d=q(),d===null?(e=null,i=v):e=[e,n,r,o,s,l,u,d]))))))),e===null&&(v=i,t.substr(i,2)===`::`?(e=`::`,i+=2):(e=null,a===0&&c(`"::"`)),e===null?(e=null,i=v):(n=K(),n===null?(e=null,i=v):(t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(e=null,i=v):(o=K(),o===null?(e=null,i=v):(t.charCodeAt(i)===58?(s=`:`,i++):(s=null,a===0&&c(`":"`)),s===null?(e=null,i=v):(l=q(),l===null?(e=null,i=v):e=[e,n,r,o,s,l]))))),e===null&&(v=i,t.substr(i,2)===`::`?(e=`::`,i+=2):(e=null,a===0&&c(`"::"`)),e===null?(e=null,i=v):(n=K(),n===null?(e=null,i=v):(t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(e=null,i=v):(o=q(),o===null?(e=null,i=v):e=[e,n,r,o]))),e===null&&(v=i,t.substr(i,2)===`::`?(e=`::`,i+=2):(e=null,a===0&&c(`"::"`)),e===null?(e=null,i=v):(n=q(),n===null?(e=null,i=v):e=[e,n]),e===null&&(v=i,t.substr(i,2)===`::`?(e=`::`,i+=2):(e=null,a===0&&c(`"::"`)),e===null?(e=null,i=v):(n=K(),n===null?(e=null,i=v):e=[e,n]),e===null&&(v=i,e=K(),e===null?(e=null,i=v):(t.substr(i,2)===`::`?(n=`::`,i+=2):(n=null,a===0&&c(`"::"`)),n===null?(e=null,i=v):(r=K(),r===null?(e=null,i=v):(t.charCodeAt(i)===58?(o=`:`,i++):(o=null,a===0&&c(`":"`)),o===null?(e=null,i=v):(s=K(),s===null?(e=null,i=v):(t.charCodeAt(i)===58?(l=`:`,i++):(l=null,a===0&&c(`":"`)),l===null?(e=null,i=v):(u=K(),u===null?(e=null,i=v):(t.charCodeAt(i)===58?(d=`:`,i++):(d=null,a===0&&c(`":"`)),d===null?(e=null,i=v):(f=K(),f===null?(e=null,i=v):(t.charCodeAt(i)===58?(p=`:`,i++):(p=null,a===0&&c(`":"`)),p===null?(e=null,i=v):(m=q(),m===null?(e=null,i=v):e=[e,n,r,o,s,l,u,d,f,p,m])))))))))),e===null&&(v=i,e=K(),e===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(n=null,i=y):(r=K(),r===null?(n=null,i=y):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=v):(t.substr(i,2)===`::`?(r=`::`,i+=2):(r=null,a===0&&c(`"::"`)),r===null?(e=null,i=v):(o=K(),o===null?(e=null,i=v):(t.charCodeAt(i)===58?(s=`:`,i++):(s=null,a===0&&c(`":"`)),s===null?(e=null,i=v):(l=K(),l===null?(e=null,i=v):(t.charCodeAt(i)===58?(u=`:`,i++):(u=null,a===0&&c(`":"`)),u===null?(e=null,i=v):(d=K(),d===null?(e=null,i=v):(t.charCodeAt(i)===58?(f=`:`,i++):(f=null,a===0&&c(`":"`)),f===null?(e=null,i=v):(p=q(),p===null?(e=null,i=v):e=[e,n,r,o,s,l,u,d,f,p]))))))))),e===null&&(v=i,e=K(),e===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(n=null,i=y):(r=K(),r===null?(n=null,i=y):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(r=null,i=y):(o=K(),o===null?(r=null,i=y):r=[r,o]),r=r===null?``:r,r===null?(e=null,i=v):(t.substr(i,2)===`::`?(o=`::`,i+=2):(o=null,a===0&&c(`"::"`)),o===null?(e=null,i=v):(s=K(),s===null?(e=null,i=v):(t.charCodeAt(i)===58?(l=`:`,i++):(l=null,a===0&&c(`":"`)),l===null?(e=null,i=v):(u=K(),u===null?(e=null,i=v):(t.charCodeAt(i)===58?(d=`:`,i++):(d=null,a===0&&c(`":"`)),d===null?(e=null,i=v):(f=q(),f===null?(e=null,i=v):e=[e,n,r,o,s,l,u,d,f])))))))),e===null&&(v=i,e=K(),e===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(n=null,i=y):(r=K(),r===null?(n=null,i=y):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(r=null,i=y):(o=K(),o===null?(r=null,i=y):r=[r,o]),r=r===null?``:r,r===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(o=`:`,i++):(o=null,a===0&&c(`":"`)),o===null?(o=null,i=y):(s=K(),s===null?(o=null,i=y):o=[o,s]),o=o===null?``:o,o===null?(e=null,i=v):(t.substr(i,2)===`::`?(s=`::`,i+=2):(s=null,a===0&&c(`"::"`)),s===null?(e=null,i=v):(l=K(),l===null?(e=null,i=v):(t.charCodeAt(i)===58?(u=`:`,i++):(u=null,a===0&&c(`":"`)),u===null?(e=null,i=v):(d=q(),d===null?(e=null,i=v):e=[e,n,r,o,s,l,u,d]))))))),e===null&&(v=i,e=K(),e===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(n=null,i=y):(r=K(),r===null?(n=null,i=y):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(r=null,i=y):(o=K(),o===null?(r=null,i=y):r=[r,o]),r=r===null?``:r,r===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(o=`:`,i++):(o=null,a===0&&c(`":"`)),o===null?(o=null,i=y):(s=K(),s===null?(o=null,i=y):o=[o,s]),o=o===null?``:o,o===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(s=`:`,i++):(s=null,a===0&&c(`":"`)),s===null?(s=null,i=y):(l=K(),l===null?(s=null,i=y):s=[s,l]),s=s===null?``:s,s===null?(e=null,i=v):(t.substr(i,2)===`::`?(l=`::`,i+=2):(l=null,a===0&&c(`"::"`)),l===null?(e=null,i=v):(u=q(),u===null?(e=null,i=v):e=[e,n,r,o,s,l,u])))))),e===null&&(v=i,e=K(),e===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(n=null,i=y):(r=K(),r===null?(n=null,i=y):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(r=null,i=y):(o=K(),o===null?(r=null,i=y):r=[r,o]),r=r===null?``:r,r===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(o=`:`,i++):(o=null,a===0&&c(`":"`)),o===null?(o=null,i=y):(s=K(),s===null?(o=null,i=y):o=[o,s]),o=o===null?``:o,o===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(s=`:`,i++):(s=null,a===0&&c(`":"`)),s===null?(s=null,i=y):(l=K(),l===null?(s=null,i=y):s=[s,l]),s=s===null?``:s,s===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(l=`:`,i++):(l=null,a===0&&c(`":"`)),l===null?(l=null,i=y):(u=K(),u===null?(l=null,i=y):l=[l,u]),l=l===null?``:l,l===null?(e=null,i=v):(t.substr(i,2)===`::`?(u=`::`,i+=2):(u=null,a===0&&c(`"::"`)),u===null?(e=null,i=v):(d=K(),d===null?(e=null,i=v):e=[e,n,r,o,s,l,u,d]))))))),e===null&&(v=i,e=K(),e===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(n=null,i=y):(r=K(),r===null?(n=null,i=y):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(r=null,i=y):(o=K(),o===null?(r=null,i=y):r=[r,o]),r=r===null?``:r,r===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(o=`:`,i++):(o=null,a===0&&c(`":"`)),o===null?(o=null,i=y):(s=K(),s===null?(o=null,i=y):o=[o,s]),o=o===null?``:o,o===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(s=`:`,i++):(s=null,a===0&&c(`":"`)),s===null?(s=null,i=y):(l=K(),l===null?(s=null,i=y):s=[s,l]),s=s===null?``:s,s===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(l=`:`,i++):(l=null,a===0&&c(`":"`)),l===null?(l=null,i=y):(u=K(),u===null?(l=null,i=y):l=[l,u]),l=l===null?``:l,l===null?(e=null,i=v):(y=i,t.charCodeAt(i)===58?(u=`:`,i++):(u=null,a===0&&c(`":"`)),u===null?(u=null,i=y):(d=K(),d===null?(u=null,i=y):u=[u,d]),u=u===null?``:u,u===null?(e=null,i=v):(t.substr(i,2)===`::`?(d=`::`,i+=2):(d=null,a===0&&c(`"::"`)),d===null?(e=null,i=v):e=[e,n,r,o,s,l,u,d]))))))))))))))))))))),e!==null&&(e=(function(e){return $.host_type=`IPv6`,t.substring(i,e)})(_)),e===null&&(i=_),e}function K(){var e,t,n,r,a=i;return e=f(),e===null?(e=null,i=a):(t=f(),t=t===null?``:t,t===null?(e=null,i=a):(n=f(),n=n===null?``:n,n===null?(e=null,i=a):(r=f(),r=r===null?``:r,r===null?(e=null,i=a):e=[e,t,n,r]))),e}function q(){var e,n,r,o=i;return e=K(),e===null?(e=null,i=o):(t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(e=null,i=o):(r=K(),r===null?(e=null,i=o):e=[e,n,r])),e===null&&(e=Te()),e}function Te(){var e,n,r,o,s,l,u,d=i,f=i;return e=Ee(),e===null?(e=null,i=f):(t.charCodeAt(i)===46?(n=`.`,i++):(n=null,a===0&&c(`"."`)),n===null?(e=null,i=f):(r=Ee(),r===null?(e=null,i=f):(t.charCodeAt(i)===46?(o=`.`,i++):(o=null,a===0&&c(`"."`)),o===null?(e=null,i=f):(s=Ee(),s===null?(e=null,i=f):(t.charCodeAt(i)===46?(l=`.`,i++):(l=null,a===0&&c(`"."`)),l===null?(e=null,i=f):(u=Ee(),u===null?(e=null,i=f):e=[e,n,r,o,s,l,u])))))),e!==null&&(e=(function(e){return $.host_type=`IPv4`,t.substring(i,e)})(d)),e===null&&(i=d),e}function Ee(){var e,n,r,o=i;return t.substr(i,2)===`25`?(e=`25`,i+=2):(e=null,a===0&&c(`"25"`)),e===null?(e=null,i=o):(/^[0-5]/.test(t.charAt(i))?(n=t.charAt(i),i++):(n=null,a===0&&c(`[0-5]`)),n===null?(e=null,i=o):e=[e,n]),e===null&&(o=i,t.charCodeAt(i)===50?(e=`2`,i++):(e=null,a===0&&c(`"2"`)),e===null?(e=null,i=o):(/^[0-4]/.test(t.charAt(i))?(n=t.charAt(i),i++):(n=null,a===0&&c(`[0-4]`)),n===null?(e=null,i=o):(r=u(),r===null?(e=null,i=o):e=[e,n,r])),e===null&&(o=i,t.charCodeAt(i)===49?(e=`1`,i++):(e=null,a===0&&c(`"1"`)),e===null?(e=null,i=o):(n=u(),n===null?(e=null,i=o):(r=u(),r===null?(e=null,i=o):e=[e,n,r])),e===null&&(o=i,/^[1-9]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[1-9]`)),e===null?(e=null,i=o):(n=u(),n===null?(e=null,i=o):e=[e,n]),e===null&&(e=u())))),e}function De(){var e,t,n,r,a,o=i,s=i;return e=u(),e=e===null?``:e,e===null?(e=null,i=s):(t=u(),t=t===null?``:t,t===null?(e=null,i=s):(n=u(),n=n===null?``:n,n===null?(e=null,i=s):(r=u(),r=r===null?``:r,r===null?(e=null,i=s):(a=u(),a=a===null?``:a,a===null?(e=null,i=s):e=[e,t,n,r,a])))),e!==null&&(e=(function(e,t){return t=parseInt(t.join(``)),$.port=t,t})(o,e)),e===null&&(i=o),e}function Oe(){var e=[],n,r,o=i;for(t.charCodeAt(i)===59?(n=`;`,i++):(n=null,a===0&&c(`";"`)),n===null?(n=null,i=o):(r=ke(),r===null?(n=null,i=o):n=[n,r]);n!==null;)e.push(n),o=i,t.charCodeAt(i)===59?(n=`;`,i++):(n=null,a===0&&c(`";"`)),n===null?(n=null,i=o):(r=ke(),r===null?(n=null,i=o):n=[n,r]);return e}function ke(){var e=Ae();return e===null&&(e=je(),e===null&&(e=Me(),e===null&&(e=Ne(),e===null&&(e=Pe(),e===null&&(e=Fe(),e===null&&(e=Ie())))))),e}function Ae(){var e,n,r=i,o=i;return t.substr(i,10).toLowerCase()===`transport=`?(e=t.substr(i,10),i+=10):(e=null,a===0&&c(`"transport="`)),e===null?(e=null,i=o):(t.substr(i,3).toLowerCase()===`udp`?(n=t.substr(i,3),i+=3):(n=null,a===0&&c(`"udp"`)),n===null&&(t.substr(i,3).toLowerCase()===`tcp`?(n=t.substr(i,3),i+=3):(n=null,a===0&&c(`"tcp"`)),n===null&&(t.substr(i,4).toLowerCase()===`sctp`?(n=t.substr(i,4),i+=4):(n=null,a===0&&c(`"sctp"`)),n===null&&(t.substr(i,3).toLowerCase()===`tls`?(n=t.substr(i,3),i+=3):(n=null,a===0&&c(`"tls"`)),n===null&&(n=A())))),n===null?(e=null,i=o):e=[e,n]),e!==null&&(e=(function(e,t){$.uri_params||($.uri_params={}),$.uri_params.transport=t.toLowerCase()})(r,e[1])),e===null&&(i=r),e}function je(){var e,n,r=i,o=i;return t.substr(i,5).toLowerCase()===`user=`?(e=t.substr(i,5),i+=5):(e=null,a===0&&c(`"user="`)),e===null?(e=null,i=o):(t.substr(i,5).toLowerCase()===`phone`?(n=t.substr(i,5),i+=5):(n=null,a===0&&c(`"phone"`)),n===null&&(t.substr(i,2).toLowerCase()===`ip`?(n=t.substr(i,2),i+=2):(n=null,a===0&&c(`"ip"`)),n===null&&(n=A())),n===null?(e=null,i=o):e=[e,n]),e!==null&&(e=(function(e,t){$.uri_params||($.uri_params={}),$.uri_params.user=t.toLowerCase()})(r,e[1])),e===null&&(i=r),e}function Me(){var e,n,r=i,o=i;return t.substr(i,7).toLowerCase()===`method=`?(e=t.substr(i,7),i+=7):(e=null,a===0&&c(`"method="`)),e===null?(e=null,i=o):(n=xt(),n===null?(e=null,i=o):e=[e,n]),e!==null&&(e=(function(e,t){$.uri_params||($.uri_params={}),$.uri_params.method=t})(r,e[1])),e===null&&(i=r),e}function Ne(){var e,n,r=i,o=i;return t.substr(i,4).toLowerCase()===`ttl=`?(e=t.substr(i,4),i+=4):(e=null,a===0&&c(`"ttl="`)),e===null?(e=null,i=o):(n=ir(),n===null?(e=null,i=o):e=[e,n]),e!==null&&(e=(function(e,t){$.params||($.params={}),$.params.ttl=t})(r,e[1])),e===null&&(i=r),e}function Pe(){var e,n,r=i,o=i;return t.substr(i,6).toLowerCase()===`maddr=`?(e=t.substr(i,6),i+=6):(e=null,a===0&&c(`"maddr="`)),e===null?(e=null,i=o):(n=G(),n===null?(e=null,i=o):e=[e,n]),e!==null&&(e=(function(e,t){$.uri_params||($.uri_params={}),$.uri_params.maddr=t})(r,e[1])),e===null&&(i=r),e}function Fe(){var e,n,r,o=i,s=i,l;return t.substr(i,2).toLowerCase()===`lr`?(e=t.substr(i,2),i+=2):(e=null,a===0&&c(`"lr"`)),e===null?(e=null,i=s):(l=i,t.charCodeAt(i)===61?(n=`=`,i++):(n=null,a===0&&c(`"="`)),n===null?(n=null,i=l):(r=A(),r===null?(n=null,i=l):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=s):e=[e,n]),e!==null&&(e=(function(e){$.uri_params||($.uri_params={}),$.uri_params.lr=void 0})(o)),e===null&&(i=o),e}function Ie(){var e,n,r,o=i,s=i,l;return e=Le(),e===null?(e=null,i=s):(l=i,t.charCodeAt(i)===61?(n=`=`,i++):(n=null,a===0&&c(`"="`)),n===null?(n=null,i=l):(r=Re(),r===null?(n=null,i=l):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=s):e=[e,n]),e!==null&&(e=(function(e,t,n){$.uri_params||($.uri_params={}),n=n===void 0?void 0:n[1],$.uri_params[t.toLowerCase()]=n})(o,e[0],e[1])),e===null&&(i=o),e}function Le(){var e,t,n=i;if(t=ze(),t!==null)for(e=[];t!==null;)e.push(t),t=ze();else e=null;return e!==null&&(e=(function(e,t){return t.join(``)})(n,e)),e===null&&(i=n),e}function Re(){var e,t,n=i;if(t=ze(),t!==null)for(e=[];t!==null;)e.push(t),t=ze();else e=null;return e!==null&&(e=(function(e,t){return t.join(``)})(n,e)),e===null&&(i=n),e}function ze(){var e=Be();return e===null&&(e=b(),e===null&&(e=S())),e}function Be(){var e;return t.charCodeAt(i)===91?(e=`[`,i++):(e=null,a===0&&c(`"["`)),e===null&&(t.charCodeAt(i)===93?(e=`]`,i++):(e=null,a===0&&c(`"]"`)),e===null&&(t.charCodeAt(i)===47?(e=`/`,i++):(e=null,a===0&&c(`"/"`)),e===null&&(t.charCodeAt(i)===58?(e=`:`,i++):(e=null,a===0&&c(`":"`)),e===null&&(t.charCodeAt(i)===38?(e=`&`,i++):(e=null,a===0&&c(`"&"`)),e===null&&(t.charCodeAt(i)===43?(e=`+`,i++):(e=null,a===0&&c(`"+"`)),e===null&&(t.charCodeAt(i)===36?(e=`$`,i++):(e=null,a===0&&c(`"$"`)))))))),e}function Ve(){var e,n,r,o,s,l=i,u;if(t.charCodeAt(i)===63?(e=`?`,i++):(e=null,a===0&&c(`"?"`)),e!==null){if(n=He(),n!==null){for(r=[],u=i,t.charCodeAt(i)===38?(o=`&`,i++):(o=null,a===0&&c(`"&"`)),o===null?(o=null,i=u):(s=He(),s===null?(o=null,i=u):o=[o,s]);o!==null;)r.push(o),u=i,t.charCodeAt(i)===38?(o=`&`,i++):(o=null,a===0&&c(`"&"`)),o===null?(o=null,i=u):(s=He(),s===null?(o=null,i=u):o=[o,s]);r===null?(e=null,i=l):e=[e,n,r]}else e=null,i=l}else e=null,i=l;return e}function He(){var e,n,r,o=i,s=i;return e=Ue(),e===null?(e=null,i=s):(t.charCodeAt(i)===61?(n=`=`,i++):(n=null,a===0&&c(`"="`)),n===null?(e=null,i=s):(r=We(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t,n){t=t.join(``).toLowerCase(),n=n.join(``),$.uri_headers||($.uri_headers={}),$.uri_headers[t]?$.uri_headers[t].push(n):$.uri_headers[t]=[n]})(o,e[0],e[2])),e===null&&(i=o),e}function Ue(){var e,t=Ge();if(t===null&&(t=b(),t===null&&(t=S())),t!==null)for(e=[];t!==null;)e.push(t),t=Ge(),t===null&&(t=b(),t===null&&(t=S()));else e=null;return e}function We(){var e=[],t=Ge();for(t===null&&(t=b(),t===null&&(t=S()));t!==null;)e.push(t),t=Ge(),t===null&&(t=b(),t===null&&(t=S()));return e}function Ge(){var e;return t.charCodeAt(i)===91?(e=`[`,i++):(e=null,a===0&&c(`"["`)),e===null&&(t.charCodeAt(i)===93?(e=`]`,i++):(e=null,a===0&&c(`"]"`)),e===null&&(t.charCodeAt(i)===47?(e=`/`,i++):(e=null,a===0&&c(`"/"`)),e===null&&(t.charCodeAt(i)===63?(e=`?`,i++):(e=null,a===0&&c(`"?"`)),e===null&&(t.charCodeAt(i)===58?(e=`:`,i++):(e=null,a===0&&c(`":"`)),e===null&&(t.charCodeAt(i)===43?(e=`+`,i++):(e=null,a===0&&c(`"+"`)),e===null&&(t.charCodeAt(i)===36?(e=`$`,i++):(e=null,a===0&&c(`"$"`)))))))),e}function Ke(){var e=St();return e===null&&(e=qe()),e}function qe(){var e,t,n,r,a,o=i;return e=xt(),e===null?(e=null,i=o):(t=g(),t===null?(e=null,i=o):(n=Je(),n===null?(e=null,i=o):(r=g(),r===null?(e=null,i=o):(a=dt(),a===null?(e=null,i=o):e=[e,t,n,r,a])))),e}function Je(){var e=de();return e===null&&(e=Ye()),e}function Ye(){var e,n,r,o=i;return e=ot(),e===null?(e=null,i=o):(t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(e=null,i=o):(r=Xe(),r===null&&(r=$e()),r===null?(e=null,i=o):e=[e,n,r])),e}function Xe(){var e,n,r,o=i,s;return e=Ze(),e===null&&(e=Qe()),e===null?(e=null,i=o):(s=i,t.charCodeAt(i)===63?(n=`?`,i++):(n=null,a===0&&c(`"?"`)),n===null?(n=null,i=s):(r=ut(),r===null?(n=null,i=s):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=o):e=[e,n]),e}function Ze(){var e,n,r,o=i;return t.substr(i,2)===`//`?(e=`//`,i+=2):(e=null,a===0&&c(`"//"`)),e===null?(e=null,i=o):(n=st(),n===null?(e=null,i=o):(r=Qe(),r=r===null?``:r,r===null?(e=null,i=o):e=[e,n,r])),e}function Qe(){var e,n,r=i;return t.charCodeAt(i)===47?(e=`/`,i++):(e=null,a===0&&c(`"/"`)),e===null?(e=null,i=r):(n=nt(),n===null?(e=null,i=r):e=[e,n]),e}function $e(){var e,t,n,r=i;if(e=tt(),e!==null){for(t=[],n=et();n!==null;)t.push(n),n=et();t===null?(e=null,i=r):e=[e,t]}else e=null,i=r;return e}function et(){var e=y();return e===null&&(e=b(),e===null&&(e=S())),e}function tt(){var e=b();return e===null&&(e=S(),e===null&&(t.charCodeAt(i)===59?(e=`;`,i++):(e=null,a===0&&c(`";"`)),e===null&&(t.charCodeAt(i)===63?(e=`?`,i++):(e=null,a===0&&c(`"?"`)),e===null&&(t.charCodeAt(i)===58?(e=`:`,i++):(e=null,a===0&&c(`":"`)),e===null&&(t.charCodeAt(i)===64?(e=`@`,i++):(e=null,a===0&&c(`"@"`)),e===null&&(t.charCodeAt(i)===38?(e=`&`,i++):(e=null,a===0&&c(`"&"`)),e===null&&(t.charCodeAt(i)===61?(e=`=`,i++):(e=null,a===0&&c(`"="`)),e===null&&(t.charCodeAt(i)===43?(e=`+`,i++):(e=null,a===0&&c(`"+"`)),e===null&&(t.charCodeAt(i)===36?(e=`$`,i++):(e=null,a===0&&c(`"$"`)),e===null&&(t.charCodeAt(i)===44?(e=`,`,i++):(e=null,a===0&&c(`","`)))))))))))),e}function nt(){var e,n,r,o,s=i,l;if(e=rt(),e!==null){for(n=[],l=i,t.charCodeAt(i)===47?(r=`/`,i++):(r=null,a===0&&c(`"/"`)),r===null?(r=null,i=l):(o=rt(),o===null?(r=null,i=l):r=[r,o]);r!==null;)n.push(r),l=i,t.charCodeAt(i)===47?(r=`/`,i++):(r=null,a===0&&c(`"/"`)),r===null?(r=null,i=l):(o=rt(),o===null?(r=null,i=l):r=[r,o]);n===null?(e=null,i=s):e=[e,n]}else e=null,i=s;return e}function rt(){var e,n,r,o,s=i,l;for(e=[],n=at();n!==null;)e.push(n),n=at();if(e!==null){for(n=[],l=i,t.charCodeAt(i)===59?(r=`;`,i++):(r=null,a===0&&c(`";"`)),r===null?(r=null,i=l):(o=it(),o===null?(r=null,i=l):r=[r,o]);r!==null;)n.push(r),l=i,t.charCodeAt(i)===59?(r=`;`,i++):(r=null,a===0&&c(`";"`)),r===null?(r=null,i=l):(o=it(),o===null?(r=null,i=l):r=[r,o]);n===null?(e=null,i=s):e=[e,n]}else e=null,i=s;return e}function it(){for(var e=[],t=at();t!==null;)e.push(t),t=at();return e}function at(){var e=b();return e===null&&(e=S(),e===null&&(t.charCodeAt(i)===58?(e=`:`,i++):(e=null,a===0&&c(`":"`)),e===null&&(t.charCodeAt(i)===64?(e=`@`,i++):(e=null,a===0&&c(`"@"`)),e===null&&(t.charCodeAt(i)===38?(e=`&`,i++):(e=null,a===0&&c(`"&"`)),e===null&&(t.charCodeAt(i)===61?(e=`=`,i++):(e=null,a===0&&c(`"="`)),e===null&&(t.charCodeAt(i)===43?(e=`+`,i++):(e=null,a===0&&c(`"+"`)),e===null&&(t.charCodeAt(i)===36?(e=`$`,i++):(e=null,a===0&&c(`"$"`)),e===null&&(t.charCodeAt(i)===44?(e=`,`,i++):(e=null,a===0&&c(`","`)))))))))),e}function ot(){var e,n,r,o=i,s=i;if(e=d(),e!==null){for(n=[],r=d(),r===null&&(r=u(),r===null&&(t.charCodeAt(i)===43?(r=`+`,i++):(r=null,a===0&&c(`"+"`)),r===null&&(t.charCodeAt(i)===45?(r=`-`,i++):(r=null,a===0&&c(`"-"`)),r===null&&(t.charCodeAt(i)===46?(r=`.`,i++):(r=null,a===0&&c(`"."`))))));r!==null;)n.push(r),r=d(),r===null&&(r=u(),r===null&&(t.charCodeAt(i)===43?(r=`+`,i++):(r=null,a===0&&c(`"+"`)),r===null&&(t.charCodeAt(i)===45?(r=`-`,i++):(r=null,a===0&&c(`"-"`)),r===null&&(t.charCodeAt(i)===46?(r=`.`,i++):(r=null,a===0&&c(`"."`))))));n===null?(e=null,i=s):e=[e,n]}else e=null,i=s;return e!==null&&(e=(function(e){$.scheme=t.substring(i,e)})(o)),e===null&&(i=o),e}function st(){var e=ct();return e===null&&(e=lt()),e}function ct(){var e,n,r=i,o=i;return e=he(),e===null?(e=null,i=o):(t.charCodeAt(i)===64?(n=`@`,i++):(n=null,a===0&&c(`"@"`)),n===null?(e=null,i=o):e=[e,n]),e=e===null?``:e,e===null?(e=null,i=r):(n=ye(),n===null?(e=null,i=r):e=[e,n]),e=e===null?``:e,e}function lt(){var e,n=b();if(n===null&&(n=S(),n===null&&(t.charCodeAt(i)===36?(n=`$`,i++):(n=null,a===0&&c(`"$"`)),n===null&&(t.charCodeAt(i)===44?(n=`,`,i++):(n=null,a===0&&c(`","`)),n===null&&(t.charCodeAt(i)===59?(n=`;`,i++):(n=null,a===0&&c(`";"`)),n===null&&(t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null&&(t.charCodeAt(i)===64?(n=`@`,i++):(n=null,a===0&&c(`"@"`)),n===null&&(t.charCodeAt(i)===38?(n=`&`,i++):(n=null,a===0&&c(`"&"`)),n===null&&(t.charCodeAt(i)===61?(n=`=`,i++):(n=null,a===0&&c(`"="`)),n===null&&(t.charCodeAt(i)===43?(n=`+`,i++):(n=null,a===0&&c(`"+"`))))))))))),n!==null)for(e=[];n!==null;)e.push(n),n=b(),n===null&&(n=S(),n===null&&(t.charCodeAt(i)===36?(n=`$`,i++):(n=null,a===0&&c(`"$"`)),n===null&&(t.charCodeAt(i)===44?(n=`,`,i++):(n=null,a===0&&c(`","`)),n===null&&(t.charCodeAt(i)===59?(n=`;`,i++):(n=null,a===0&&c(`";"`)),n===null&&(t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null&&(t.charCodeAt(i)===64?(n=`@`,i++):(n=null,a===0&&c(`"@"`)),n===null&&(t.charCodeAt(i)===38?(n=`&`,i++):(n=null,a===0&&c(`"&"`)),n===null&&(t.charCodeAt(i)===61?(n=`=`,i++):(n=null,a===0&&c(`"="`)),n===null&&(t.charCodeAt(i)===43?(n=`+`,i++):(n=null,a===0&&c(`"+"`)))))))))));else e=null;return e}function ut(){for(var e=[],t=et();t!==null;)e.push(t),t=et();return e}function dt(){var e,n,r,o,s,l,d=i,f=i;if(t.substr(i,3).toLowerCase()===`sip`?(e=t.substr(i,3),i+=3):(e=null,a===0&&c(`"SIP"`)),e!==null){if(t.charCodeAt(i)===47?(n=`/`,i++):(n=null,a===0&&c(`"/"`)),n!==null){if(o=u(),o!==null)for(r=[];o!==null;)r.push(o),o=u();else r=null;if(r!==null){if(t.charCodeAt(i)===46?(o=`.`,i++):(o=null,a===0&&c(`"."`)),o!==null){if(l=u(),l!==null)for(s=[];l!==null;)s.push(l),l=u();else s=null;s===null?(e=null,i=f):e=[e,n,r,o,s]}else e=null,i=f}else e=null,i=f}else e=null,i=f}else e=null,i=f;return e!==null&&(e=(function(e){$.sip_version=t.substring(i,e)})(d)),e===null&&(i=d),e}function ft(){var e;return t.substr(i,6)===`INVITE`?(e=`INVITE`,i+=6):(e=null,a===0&&c(`"INVITE"`)),e}function pt(){var e;return t.substr(i,3)===`ACK`?(e=`ACK`,i+=3):(e=null,a===0&&c(`"ACK"`)),e}function mt(){var e;return t.substr(i,7)===`OPTIONS`?(e=`OPTIONS`,i+=7):(e=null,a===0&&c(`"OPTIONS"`)),e}function ht(){var e;return t.substr(i,3)===`BYE`?(e=`BYE`,i+=3):(e=null,a===0&&c(`"BYE"`)),e}function gt(){var e;return t.substr(i,6)===`CANCEL`?(e=`CANCEL`,i+=6):(e=null,a===0&&c(`"CANCEL"`)),e}function _t(){var e;return t.substr(i,8)===`REGISTER`?(e=`REGISTER`,i+=8):(e=null,a===0&&c(`"REGISTER"`)),e}function vt(){var e;return t.substr(i,9)===`SUBSCRIBE`?(e=`SUBSCRIBE`,i+=9):(e=null,a===0&&c(`"SUBSCRIBE"`)),e}function yt(){var e;return t.substr(i,6)===`NOTIFY`?(e=`NOTIFY`,i+=6):(e=null,a===0&&c(`"NOTIFY"`)),e}function bt(){var e;return t.substr(i,5)===`REFER`?(e=`REFER`,i+=5):(e=null,a===0&&c(`"REFER"`)),e}function xt(){var e,n=i;return e=ft(),e===null&&(e=pt(),e===null&&(e=mt(),e===null&&(e=ht(),e===null&&(e=gt(),e===null&&(e=_t(),e===null&&(e=vt(),e===null&&(e=yt(),e===null&&(e=bt(),e===null&&(e=A()))))))))),e!==null&&(e=(function(e){return $.method=t.substring(i,e),$.method})(n)),e===null&&(i=n),e}function St(){var e,t,n,r,a,o=i;return e=dt(),e===null?(e=null,i=o):(t=g(),t===null?(e=null,i=o):(n=Ct(),n===null?(e=null,i=o):(r=g(),r===null?(e=null,i=o):(a=Tt(),a===null?(e=null,i=o):e=[e,t,n,r,a])))),e}function Ct(){var e,t=i;return e=wt(),e!==null&&(e=(function(e,t){$.status_code=parseInt(t.join(``))})(t,e)),e===null&&(i=t),e}function wt(){var e,t,n,r=i;return e=u(),e===null?(e=null,i=r):(t=u(),t===null?(e=null,i=r):(n=u(),n===null?(e=null,i=r):e=[e,t,n])),e}function Tt(){var e,n,r=i;for(e=[],n=y(),n===null&&(n=b(),n===null&&(n=S(),n===null&&(n=D(),n===null&&(n=O(),n===null&&(n=g(),n===null&&(n=_()))))));n!==null;)e.push(n),n=y(),n===null&&(n=b(),n===null&&(n=S(),n===null&&(n=D(),n===null&&(n=O(),n===null&&(n=g(),n===null&&(n=_()))))));return e!==null&&(e=(function(e){$.reason_phrase=t.substring(i,e)})(r)),e===null&&(i=r),e}function Et(){var e,t,n,r,a=i,o;if(e=nn(),e!==null){for(t=[],o=i,n=L(),n===null?(n=null,i=o):(r=nn(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=L(),n===null?(n=null,i=o):(r=nn(),r===null?(n=null,i=o):n=[n,r]);t===null?(e=null,i=a):e=[e,t]}else e=null,i=a;return e}function Dt(){var e,n,r,o=i,s=i,l;return e=P(),e===null?(e=null,i=s):(l=i,t.charCodeAt(i)===64?(n=`@`,i++):(n=null,a===0&&c(`"@"`)),n===null?(n=null,i=l):(r=P(),r===null?(n=null,i=l):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=s):e=[e,n]),e!==null&&(e=(function(e){$=t.substring(i,e)})(o)),e===null&&(i=o),e}function Ot(){var e,t,n,r,a=i,o,s;if(e=ne(),e===null){if(o=i,e=kt(),e!==null){for(t=[],s=i,n=L(),n===null?(n=null,i=s):(r=kt(),r===null?(n=null,i=s):n=[n,r]);n!==null;)t.push(n),s=i,n=L(),n===null?(n=null,i=s):(r=kt(),r===null?(n=null,i=s):n=[n,r]);t===null?(e=null,i=o):e=[e,t]}else e=null,i=o}return e!==null&&(e=(function(e){var t,n=$.multi_header.length;for(t=0;t<n;t++)if($.multi_header[t].parsed===null){$=null;break}$=$===null?-1:$.multi_header})(a)),e===null&&(i=a),e}function kt(){var e,t,n,r,a=i,o=i,s;if(e=W(),e===null&&(e=J()),e!==null){for(t=[],s=i,n=R(),n===null?(n=null,i=s):(r=jt(),r===null?(n=null,i=s):n=[n,r]);n!==null;)t.push(n),s=i,n=R(),n===null?(n=null,i=s):(r=jt(),r===null?(n=null,i=s):n=[n,r]);t===null?(e=null,i=o):e=[e,t]}else e=null,i=o;return e!==null&&(e=(function(e){var t;$.multi_header||($.multi_header=[]);try{t=new Q($.uri,$.display_name,$.params),delete $.uri,delete $.display_name,delete $.params}catch{t=null}$.multi_header.push({possition:i,offset:e,parsed:t})})(a)),e===null&&(i=a),e}function J(){var e,t,n,r,a=i;return e=At(),e=e===null?``:e,e===null?(e=null,i=a):(t=oe(),t===null?(e=null,i=a):(n=de(),n===null?(e=null,i=a):(r=ae(),r===null?(e=null,i=a):e=[e,t,n,r]))),e}function At(){var e,t,n,r,a=i,o=i,s;if(e=A(),e!==null){for(t=[],s=i,n=C(),n===null?(n=null,i=s):(r=A(),r===null?(n=null,i=s):n=[n,r]);n!==null;)t.push(n),s=i,n=C(),n===null?(n=null,i=s):(r=A(),r===null?(n=null,i=s):n=[n,r]);t===null?(e=null,i=o):e=[e,t]}else e=null,i=o;return e===null&&(e=V()),e!==null&&(e=(function(e,t){typeof t==`string`?$.display_name=t:$.display_name=t[1].reduce(function(e,t){return e+t[0]+t[1]},t[0])})(a,e)),e===null&&(i=a),e}function jt(){var e=Mt();return e===null&&(e=Nt(),e===null&&(e=X())),e}function Mt(){var e,n,r,o=i,s=i;return t.substr(i,1).toLowerCase()===`q`?(e=t.substr(i,1),i++):(e=null,a===0&&c(`"q"`)),e===null?(e=null,i=s):(n=F(),n===null?(e=null,i=s):(r=Pt(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){$.params||($.params={}),$.params.q=t})(o,e[2])),e===null&&(i=o),e}function Nt(){var e,n,r,o=i,s=i;return t.substr(i,7).toLowerCase()===`expires`?(e=t.substr(i,7),i+=7):(e=null,a===0&&c(`"expires"`)),e===null?(e=null,i=s):(n=F(),n===null?(e=null,i=s):(r=Y(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){$.params||($.params={}),$.params.expires=t})(o,e[2])),e===null&&(i=o),e}function Y(){var e,t,n=i;if(t=u(),t!==null)for(e=[];t!==null;)e.push(t),t=u();else e=null;return e!==null&&(e=(function(e,t){return parseInt(t.join(``))})(n,e)),e===null&&(i=n),e}function Pt(){var e,n,r,o,s,l=i,d=i,f;return t.charCodeAt(i)===48?(e=`0`,i++):(e=null,a===0&&c(`"0"`)),e===null?(e=null,i=d):(f=i,t.charCodeAt(i)===46?(n=`.`,i++):(n=null,a===0&&c(`"."`)),n===null?(n=null,i=f):(r=u(),r=r===null?``:r,r===null?(n=null,i=f):(o=u(),o=o===null?``:o,o===null?(n=null,i=f):(s=u(),s=s===null?``:s,s===null?(n=null,i=f):n=[n,r,o,s]))),n=n===null?``:n,n===null?(e=null,i=d):e=[e,n]),e!==null&&(e=(function(e){return parseFloat(t.substring(i,e))})(l)),e===null&&(i=l),e}function X(){var e,t,n,r=i,a=i,o;return e=A(),e===null?(e=null,i=a):(o=i,t=F(),t===null?(t=null,i=o):(n=Ft(),n===null?(t=null,i=o):t=[t,n]),t=t===null?``:t,t===null?(e=null,i=a):e=[e,t]),e!==null&&(e=(function(e,t,n){$.params||($.params={}),n=n===void 0?void 0:n[1],$.params[t.toLowerCase()]=n})(r,e[0],e[1])),e===null&&(i=r),e}function Ft(){var e=A();return e===null&&(e=G(),e===null&&(e=ue())),e}function It(){var e,t,n,r,a=i,o;if(e=Lt(),e!==null){for(t=[],o=i,n=R(),n===null?(n=null,i=o):(r=Rt(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=R(),n===null?(n=null,i=o):(r=Rt(),r===null?(n=null,i=o):n=[n,r]);t===null?(e=null,i=a):e=[e,t]}else e=null,i=a;return e}function Lt(){var e;return t.substr(i,6).toLowerCase()===`render`?(e=t.substr(i,6),i+=6):(e=null,a===0&&c(`"render"`)),e===null&&(t.substr(i,7).toLowerCase()===`session`?(e=t.substr(i,7),i+=7):(e=null,a===0&&c(`"session"`)),e===null&&(t.substr(i,4).toLowerCase()===`icon`?(e=t.substr(i,4),i+=4):(e=null,a===0&&c(`"icon"`)),e===null&&(t.substr(i,5).toLowerCase()===`alert`?(e=t.substr(i,5),i+=5):(e=null,a===0&&c(`"alert"`)),e===null&&(e=A())))),e}function Rt(){var e=zt();return e===null&&(e=X()),e}function zt(){var e,n,r,o=i;return t.substr(i,8).toLowerCase()===`handling`?(e=t.substr(i,8),i+=8):(e=null,a===0&&c(`"handling"`)),e===null?(e=null,i=o):(n=F(),n===null?(e=null,i=o):(t.substr(i,8).toLowerCase()===`optional`?(r=t.substr(i,8),i+=8):(r=null,a===0&&c(`"optional"`)),r===null&&(t.substr(i,8).toLowerCase()===`required`?(r=t.substr(i,8),i+=8):(r=null,a===0&&c(`"required"`)),r===null&&(r=A())),r===null?(e=null,i=o):e=[e,n,r])),e}function Bt(){var e,t,n,r,a=i,o;if(e=A(),e!==null){for(t=[],o=i,n=L(),n===null?(n=null,i=o):(r=A(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=L(),n===null?(n=null,i=o):(r=A(),r===null?(n=null,i=o):n=[n,r]);t===null?(e=null,i=a):e=[e,t]}else e=null,i=a;return e}function Vt(){var e,t,n=i;if(t=u(),t!==null)for(e=[];t!==null;)e.push(t),t=u();else e=null;return e!==null&&(e=(function(e,t){$=parseInt(t.join(``))})(n,e)),e===null&&(i=n),e}function Ht(){var e,n=i;return e=Ut(),e!==null&&(e=(function(e){$=t.substring(i,e)})(n)),e===null&&(i=n),e}function Ut(){var e,t,n,r,a,o,s=i,c;if(e=Wt(),e!==null){if(t=re(),t!==null){if(n=Yt(),n!==null){for(r=[],c=i,a=R(),a===null?(a=null,i=c):(o=Xt(),o===null?(a=null,i=c):a=[a,o]);a!==null;)r.push(a),c=i,a=R(),a===null?(a=null,i=c):(o=Xt(),o===null?(a=null,i=c):a=[a,o]);r===null?(e=null,i=s):e=[e,t,n,r]}else e=null,i=s}else e=null,i=s}else e=null,i=s;return e}function Wt(){var e=Gt();return e===null&&(e=Kt()),e}function Gt(){var e;return t.substr(i,4).toLowerCase()===`text`?(e=t.substr(i,4),i+=4):(e=null,a===0&&c(`"text"`)),e===null&&(t.substr(i,5).toLowerCase()===`image`?(e=t.substr(i,5),i+=5):(e=null,a===0&&c(`"image"`)),e===null&&(t.substr(i,5).toLowerCase()===`audio`?(e=t.substr(i,5),i+=5):(e=null,a===0&&c(`"audio"`)),e===null&&(t.substr(i,5).toLowerCase()===`video`?(e=t.substr(i,5),i+=5):(e=null,a===0&&c(`"video"`)),e===null&&(t.substr(i,11).toLowerCase()===`application`?(e=t.substr(i,11),i+=11):(e=null,a===0&&c(`"application"`)),e===null&&(e=qt()))))),e}function Kt(){var e;return t.substr(i,7).toLowerCase()===`message`?(e=t.substr(i,7),i+=7):(e=null,a===0&&c(`"message"`)),e===null&&(t.substr(i,9).toLowerCase()===`multipart`?(e=t.substr(i,9),i+=9):(e=null,a===0&&c(`"multipart"`)),e===null&&(e=qt())),e}function qt(){var e=A();return e===null&&(e=Jt()),e}function Jt(){var e,n,r=i;return t.substr(i,2).toLowerCase()===`x-`?(e=t.substr(i,2),i+=2):(e=null,a===0&&c(`"x-"`)),e===null?(e=null,i=r):(n=A(),n===null?(e=null,i=r):e=[e,n]),e}function Yt(){var e=qt();return e===null&&(e=A()),e}function Xt(){var e,t,n,r=i;return e=A(),e===null?(e=null,i=r):(t=F(),t===null?(e=null,i=r):(n=Zt(),n===null?(e=null,i=r):e=[e,t,n])),e}function Zt(){var e=A();return e===null&&(e=ue()),e}function Qt(){var e,t,n,r=i;return e=$t(),e===null?(e=null,i=r):(t=C(),t===null?(e=null,i=r):(n=xt(),n===null?(e=null,i=r):e=[e,t,n])),e}function $t(){var e,t,n=i;if(t=u(),t!==null)for(e=[];t!==null;)e.push(t),t=u();else e=null;return e!==null&&(e=(function(e,t){$.value=parseInt(t.join(``))})(n,e)),e===null&&(i=n),e}function en(){var e,t=i;return e=Y(),e!==null&&(e=(function(e,t){$=t})(t,e)),e===null&&(i=t),e}function tn(){var e,t,n,r,a=i,o=i,s;if(e=nn(),e!==null){for(t=[],s=i,n=R(),n===null?(n=null,i=s):(r=X(),r===null?(n=null,i=s):n=[n,r]);n!==null;)t.push(n),s=i,n=R(),n===null?(n=null,i=s):(r=X(),r===null?(n=null,i=s):n=[n,r]);t===null?(e=null,i=o):e=[e,t]}else e=null,i=o;return e!==null&&(e=(function(e,t){$.event=t.join(``).toLowerCase()})(a,e[0])),e===null&&(i=a),e}function nn(){var e,n,r,o,s=i,l;if(e=j(),e!==null){for(n=[],l=i,t.charCodeAt(i)===46?(r=`.`,i++):(r=null,a===0&&c(`"."`)),r===null?(r=null,i=l):(o=j(),o===null?(r=null,i=l):r=[r,o]);r!==null;)n.push(r),l=i,t.charCodeAt(i)===46?(r=`.`,i++):(r=null,a===0&&c(`"."`)),r===null?(r=null,i=l):(o=j(),o===null?(r=null,i=l):r=[r,o]);n===null?(e=null,i=s):e=[e,n]}else e=null,i=s;return e}function rn(){var e,t,n,r,a=i,o=i,s;if(e=W(),e===null&&(e=J()),e!==null){for(t=[],s=i,n=R(),n===null?(n=null,i=s):(r=an(),r===null?(n=null,i=s):n=[n,r]);n!==null;)t.push(n),s=i,n=R(),n===null?(n=null,i=s):(r=an(),r===null?(n=null,i=s):n=[n,r]);t===null?(e=null,i=o):e=[e,t]}else e=null,i=o;return e!==null&&(e=(function(e){var t=$.tag;try{$=new Q($.uri,$.display_name,$.params),t&&$.setParam(`tag`,t)}catch{$=-1}})(a)),e===null&&(i=a),e}function an(){var e=on();return e===null&&(e=X()),e}function on(){var e,n,r,o=i,s=i;return t.substr(i,3).toLowerCase()===`tag`?(e=t.substr(i,3),i+=3):(e=null,a===0&&c(`"tag"`)),e===null?(e=null,i=s):(n=F(),n===null?(e=null,i=s):(r=A(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){$.tag=t})(o,e[2])),e===null&&(i=o),e}function sn(){var e,t,n=i;if(t=u(),t!==null)for(e=[];t!==null;)e.push(t),t=u();else e=null;return e!==null&&(e=(function(e,t){$=parseInt(t.join(``))})(n,e)),e===null&&(i=n),e}function cn(){var e,t=i;return e=Y(),e!==null&&(e=(function(e,t){$=t})(t,e)),e===null&&(i=t),e}function ln(){var e,t,n,r,a,o,s,c=i,l=i,u;for(e=[],t=At();t!==null;)e.push(t),t=At();if(e!==null){if(t=oe(),t!==null){if(n=de(),n!==null){if(r=ae(),r!==null){for(a=[],u=i,o=R(),o===null?(o=null,i=u):(s=X(),s===null?(o=null,i=u):o=[o,s]);o!==null;)a.push(o),u=i,o=R(),o===null?(o=null,i=u):(s=X(),s===null?(o=null,i=u):o=[o,s]);a===null?(e=null,i=l):e=[e,t,n,r,a]}else e=null,i=l}else e=null,i=l}else e=null,i=l}else e=null,i=l;return e!==null&&(e=(function(e){try{$=new Q($.uri,$.display_name,$.params)}catch{$=-1}})(c)),e===null&&(i=c),e}function un(){return dn()}function dn(){var e,n,r,o,s,l,u=i,d;if(t.substr(i,6).toLowerCase()===`digest`?(e=t.substr(i,6),i+=6):(e=null,a===0&&c(`"Digest"`)),e!==null){if(n=C(),n!==null){if(r=mn(),r!==null){for(o=[],d=i,s=L(),s===null?(s=null,i=d):(l=mn(),l===null?(s=null,i=d):s=[s,l]);s!==null;)o.push(s),d=i,s=L(),s===null?(s=null,i=d):(l=mn(),l===null?(s=null,i=d):s=[s,l]);o===null?(e=null,i=u):e=[e,n,r,o]}else e=null,i=u}else e=null,i=u}else e=null,i=u;return e===null&&(e=fn()),e}function fn(){var e,t,n,r,a,o,s=i,c;if(e=A(),e!==null){if(t=C(),t!==null){if(n=pn(),n!==null){for(r=[],c=i,a=L(),a===null?(a=null,i=c):(o=pn(),o===null?(a=null,i=c):a=[a,o]);a!==null;)r.push(a),c=i,a=L(),a===null?(a=null,i=c):(o=pn(),o===null?(a=null,i=c):a=[a,o]);r===null?(e=null,i=s):e=[e,t,n,r]}else e=null,i=s}else e=null,i=s}else e=null,i=s;return e}function pn(){var e,t,n,r=i;return e=A(),e===null?(e=null,i=r):(t=F(),t===null?(e=null,i=r):(n=A(),n===null&&(n=ue()),n===null?(e=null,i=r):e=[e,t,n])),e}function mn(){var e=hn();return e===null&&(e=_n(),e===null&&(e=yn(),e===null&&(e=xn(),e===null&&(e=Sn(),e===null&&(e=Cn(),e===null&&(e=wn(),e===null&&(e=pn()))))))),e}function hn(){var e,n,r,o=i;return t.substr(i,5).toLowerCase()===`realm`?(e=t.substr(i,5),i+=5):(e=null,a===0&&c(`"realm"`)),e===null?(e=null,i=o):(n=F(),n===null?(e=null,i=o):(r=gn(),r===null?(e=null,i=o):e=[e,n,r])),e}function gn(){var e,t=i;return e=V(),e!==null&&(e=(function(e,t){$.realm=t})(t,e)),e===null&&(i=t),e}function _n(){var e,n,r,o,s,l,u,d=i,f;if(t.substr(i,6).toLowerCase()===`domain`?(e=t.substr(i,6),i+=6):(e=null,a===0&&c(`"domain"`)),e!==null){if(n=F(),n!==null){if(r=ce(),r!==null){if(o=vn(),o!==null){if(s=[],f=i,u=g(),u!==null)for(l=[];u!==null;)l.push(u),u=g();else l=null;for(l===null?(l=null,i=f):(u=vn(),u===null?(l=null,i=f):l=[l,u]);l!==null;){if(s.push(l),f=i,u=g(),u!==null)for(l=[];u!==null;)l.push(u),u=g();else l=null;l===null?(l=null,i=f):(u=vn(),u===null?(l=null,i=f):l=[l,u])}s===null?(e=null,i=d):(l=z(),l===null?(e=null,i=d):e=[e,n,r,o,s,l])}else e=null,i=d}else e=null,i=d}else e=null,i=d}else e=null,i=d;return e}function vn(){var e=Ye();return e===null&&(e=Qe()),e}function yn(){var e,n,r,o=i;return t.substr(i,5).toLowerCase()===`nonce`?(e=t.substr(i,5),i+=5):(e=null,a===0&&c(`"nonce"`)),e===null?(e=null,i=o):(n=F(),n===null?(e=null,i=o):(r=bn(),r===null?(e=null,i=o):e=[e,n,r])),e}function bn(){var e,t=i;return e=V(),e!==null&&(e=(function(e,t){$.nonce=t})(t,e)),e===null&&(i=t),e}function xn(){var e,n,r,o=i,s=i;return t.substr(i,6).toLowerCase()===`opaque`?(e=t.substr(i,6),i+=6):(e=null,a===0&&c(`"opaque"`)),e===null?(e=null,i=s):(n=F(),n===null?(e=null,i=s):(r=V(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){$.opaque=t})(o,e[2])),e===null&&(i=o),e}function Sn(){var e,n,r,o=i,s;return t.substr(i,5).toLowerCase()===`stale`?(e=t.substr(i,5),i+=5):(e=null,a===0&&c(`"stale"`)),e===null?(e=null,i=o):(n=F(),n===null?(e=null,i=o):(s=i,t.substr(i,4).toLowerCase()===`true`?(r=t.substr(i,4),i+=4):(r=null,a===0&&c(`"true"`)),r!==null&&(r=(function(e){$.stale=!0})(s)),r===null&&(i=s),r===null&&(s=i,t.substr(i,5).toLowerCase()===`false`?(r=t.substr(i,5),i+=5):(r=null,a===0&&c(`"false"`)),r!==null&&(r=(function(e){$.stale=!1})(s)),r===null&&(i=s)),r===null?(e=null,i=o):e=[e,n,r])),e}function Cn(){var e,n,r,o=i,s=i;return t.substr(i,9).toLowerCase()===`algorithm`?(e=t.substr(i,9),i+=9):(e=null,a===0&&c(`"algorithm"`)),e===null?(e=null,i=s):(n=F(),n===null?(e=null,i=s):(t.substr(i,3).toLowerCase()===`md5`?(r=t.substr(i,3),i+=3):(r=null,a===0&&c(`"MD5"`)),r===null&&(t.substr(i,8).toLowerCase()===`md5-sess`?(r=t.substr(i,8),i+=8):(r=null,a===0&&c(`"MD5-sess"`)),r===null&&(r=A())),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){$.algorithm=t.toUpperCase()})(o,e[2])),e===null&&(i=o),e}function wn(){var e,n,r,o,s,l,u,d=i,f,p;if(t.substr(i,3).toLowerCase()===`qop`?(e=t.substr(i,3),i+=3):(e=null,a===0&&c(`"qop"`)),e!==null){if(n=F(),n!==null){if(r=ce(),r!==null){if(f=i,o=Tn(),o!==null){for(s=[],p=i,t.charCodeAt(i)===44?(l=`,`,i++):(l=null,a===0&&c(`","`)),l===null?(l=null,i=p):(u=Tn(),u===null?(l=null,i=p):l=[l,u]);l!==null;)s.push(l),p=i,t.charCodeAt(i)===44?(l=`,`,i++):(l=null,a===0&&c(`","`)),l===null?(l=null,i=p):(u=Tn(),u===null?(l=null,i=p):l=[l,u]);s===null?(o=null,i=f):o=[o,s]}else o=null,i=f;o===null?(e=null,i=d):(s=z(),s===null?(e=null,i=d):e=[e,n,r,o,s])}else e=null,i=d}else e=null,i=d}else e=null,i=d;return e}function Tn(){var e,n=i;return t.substr(i,8).toLowerCase()===`auth-int`?(e=t.substr(i,8),i+=8):(e=null,a===0&&c(`"auth-int"`)),e===null&&(t.substr(i,4).toLowerCase()===`auth`?(e=t.substr(i,4),i+=4):(e=null,a===0&&c(`"auth"`)),e===null&&(e=A())),e!==null&&(e=(function(e,t){$.qop||($.qop=[]),$.qop.push(t.toLowerCase())})(n,e)),e===null&&(i=n),e}function En(){var e,t,n,r,a=i,o;if(e=A(),e!==null){for(t=[],o=i,n=L(),n===null?(n=null,i=o):(r=A(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=L(),n===null?(n=null,i=o):(r=A(),r===null?(n=null,i=o):n=[n,r]);t===null?(e=null,i=a):e=[e,t]}else e=null,i=a;return e}function Dn(){var e,t,n,r,a=i,o=i,s;if(e=On(),e!==null){for(t=[],s=i,n=L(),n===null?(n=null,i=s):(r=On(),r===null?(n=null,i=s):n=[n,r]);n!==null;)t.push(n),s=i,n=L(),n===null?(n=null,i=s):(r=On(),r===null?(n=null,i=s):n=[n,r]);t===null?(e=null,i=o):e=[e,t]}else e=null,i=o;return e!==null&&(e=(function(e){var t,n=$.multi_header.length;for(t=0;t<n;t++)if($.multi_header[t].parsed===null){$=null;break}$=$===null?-1:$.multi_header})(a)),e===null&&(i=a),e}function On(){var e,t,n,r,a=i,o=i,s;if(e=J(),e!==null){for(t=[],s=i,n=R(),n===null?(n=null,i=s):(r=X(),r===null?(n=null,i=s):n=[n,r]);n!==null;)t.push(n),s=i,n=R(),n===null?(n=null,i=s):(r=X(),r===null?(n=null,i=s):n=[n,r]);t===null?(e=null,i=o):e=[e,t]}else e=null,i=o;return e!==null&&(e=(function(e){var t;$.multi_header||($.multi_header=[]);try{t=new Q($.uri,$.display_name,$.params),delete $.uri,delete $.display_name,delete $.params}catch{t=null}$.multi_header.push({possition:i,offset:e,parsed:t})})(a)),e===null&&(i=a),e}function kn(){var e,n,r,o,s=i,l=i,u;if(t.substr(i,3).toLowerCase()===`sip`?(e=t.substr(i,3),i+=3):(e=null,a===0&&c(`"SIP"`)),e===null&&(e=A()),e!==null){for(n=[],u=i,r=R(),r===null?(r=null,i=u):(o=An(),o===null?(r=null,i=u):r=[r,o]);r!==null;)n.push(r),u=i,r=R(),r===null?(r=null,i=u):(o=An(),o===null?(r=null,i=u):r=[r,o]);n===null?(e=null,i=l):e=[e,n]}else e=null,i=l;return e!==null&&(e=(function(e,t){if($.protocol=t.toLowerCase(),$.params||($.params={}),$.params.text&&$.params.text[0]===`"`){var n=$.params.text;$.text=n.substring(1,n.length-1),delete $.params.text}})(s,e[0])),e===null&&(i=s),e}function An(){var e=jn();return e===null&&(e=X()),e}function jn(){var e,n,r,o,s=i,l=i;if(t.substr(i,5).toLowerCase()===`cause`?(e=t.substr(i,5),i+=5):(e=null,a===0&&c(`"cause"`)),e!==null){if(n=F(),n!==null){if(o=u(),o!==null)for(r=[];o!==null;)r.push(o),o=u();else r=null;r===null?(e=null,i=l):e=[e,n,r]}else e=null,i=l}else e=null,i=l;return e!==null&&(e=(function(e,t){$.cause=parseInt(t.join(``))})(s,e[2])),e===null&&(i=s),e}function Mn(){var e,t,n,r,a=i,o;if(e=A(),e!==null){for(t=[],o=i,n=L(),n===null?(n=null,i=o):(r=A(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=L(),n===null?(n=null,i=o):(r=A(),r===null?(n=null,i=o):n=[n,r]);t===null?(e=null,i=a):e=[e,t]}else e=null,i=a;return e}function Nn(){var e,t,n,r,a=i,o;if(e=Pn(),e!==null){for(t=[],o=i,n=L(),n===null?(n=null,i=o):(r=Pn(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=L(),n===null?(n=null,i=o):(r=Pn(),r===null?(n=null,i=o):n=[n,r]);t===null?(e=null,i=a):e=[e,t]}else e=null,i=a;return e}function Pn(){var e,t,n,r,a=i,o;if(e=J(),e!==null){for(t=[],o=i,n=R(),n===null?(n=null,i=o):(r=X(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=R(),n===null?(n=null,i=o):(r=X(),r===null?(n=null,i=o):n=[n,r]);t===null?(e=null,i=a):e=[e,t]}else e=null,i=a;return e}function Fn(){var e,t,n,r,a=i,o;if(e=In(),e!==null){for(t=[],o=i,n=R(),n===null?(n=null,i=o):(r=Ln(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=R(),n===null?(n=null,i=o):(r=Ln(),r===null?(n=null,i=o):n=[n,r]);t===null?(e=null,i=a):e=[e,t]}else e=null,i=a;return e}function In(){var e,n=i;return t.substr(i,6).toLowerCase()===`active`?(e=t.substr(i,6),i+=6):(e=null,a===0&&c(`"active"`)),e===null&&(t.substr(i,7).toLowerCase()===`pending`?(e=t.substr(i,7),i+=7):(e=null,a===0&&c(`"pending"`)),e===null&&(t.substr(i,10).toLowerCase()===`terminated`?(e=t.substr(i,10),i+=10):(e=null,a===0&&c(`"terminated"`)),e===null&&(e=A()))),e!==null&&(e=(function(e){$.state=t.substring(i,e)})(n)),e===null&&(i=n),e}function Ln(){var e,n,r,o=i,s=i;return t.substr(i,6).toLowerCase()===`reason`?(e=t.substr(i,6),i+=6):(e=null,a===0&&c(`"reason"`)),e===null?(e=null,i=s):(n=F(),n===null?(e=null,i=s):(r=Rn(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){t!==void 0&&($.reason=t)})(o,e[2])),e===null&&(i=o),e===null&&(o=i,s=i,t.substr(i,7).toLowerCase()===`expires`?(e=t.substr(i,7),i+=7):(e=null,a===0&&c(`"expires"`)),e===null?(e=null,i=s):(n=F(),n===null?(e=null,i=s):(r=Y(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){t!==void 0&&($.expires=t)})(o,e[2])),e===null&&(i=o),e===null&&(o=i,s=i,t.substr(i,11).toLowerCase()===`retry_after`?(e=t.substr(i,11),i+=11):(e=null,a===0&&c(`"retry_after"`)),e===null?(e=null,i=s):(n=F(),n===null?(e=null,i=s):(r=Y(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){t!==void 0&&($.retry_after=t)})(o,e[2])),e===null&&(i=o),e===null&&(e=X()))),e}function Rn(){var e;return t.substr(i,11).toLowerCase()===`deactivated`?(e=t.substr(i,11),i+=11):(e=null,a===0&&c(`"deactivated"`)),e===null&&(t.substr(i,9).toLowerCase()===`probation`?(e=t.substr(i,9),i+=9):(e=null,a===0&&c(`"probation"`)),e===null&&(t.substr(i,8).toLowerCase()===`rejected`?(e=t.substr(i,8),i+=8):(e=null,a===0&&c(`"rejected"`)),e===null&&(t.substr(i,7).toLowerCase()===`timeout`?(e=t.substr(i,7),i+=7):(e=null,a===0&&c(`"timeout"`)),e===null&&(t.substr(i,6).toLowerCase()===`giveup`?(e=t.substr(i,6),i+=6):(e=null,a===0&&c(`"giveup"`)),e===null&&(t.substr(i,10).toLowerCase()===`noresource`?(e=t.substr(i,10),i+=10):(e=null,a===0&&c(`"noresource"`)),e===null&&(t.substr(i,9).toLowerCase()===`invariant`?(e=t.substr(i,9),i+=9):(e=null,a===0&&c(`"invariant"`)),e===null&&(e=A()))))))),e}function zn(){var e=ee();return e=e===null?``:e,e}function Bn(){var e,t,n,r,a=i,o;if(e=A(),e!==null){for(t=[],o=i,n=L(),n===null?(n=null,i=o):(r=A(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=L(),n===null?(n=null,i=o):(r=A(),r===null?(n=null,i=o):n=[n,r]);t===null?(e=null,i=a):e=[e,t]}else e=null,i=a;return e=e===null?``:e,e}function Vn(){var e,t,n,r,a=i,o=i,s;if(e=W(),e===null&&(e=J()),e!==null){for(t=[],s=i,n=R(),n===null?(n=null,i=s):(r=Hn(),r===null?(n=null,i=s):n=[n,r]);n!==null;)t.push(n),s=i,n=R(),n===null?(n=null,i=s):(r=Hn(),r===null?(n=null,i=s):n=[n,r]);t===null?(e=null,i=o):e=[e,t]}else e=null,i=o;return e!==null&&(e=(function(e){var t=$.tag;try{$=new Q($.uri,$.display_name,$.params),t&&$.setParam(`tag`,t)}catch{$=-1}})(a)),e===null&&(i=a),e}function Hn(){var e=on();return e===null&&(e=X()),e}function Un(){var e,t,n,r,a=i,o;if(e=Wn(),e!==null){for(t=[],o=i,n=L(),n===null?(n=null,i=o):(r=Wn(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=L(),n===null?(n=null,i=o):(r=Wn(),r===null?(n=null,i=o):n=[n,r]);t===null?(e=null,i=a):e=[e,t]}else e=null,i=a;return e}function Wn(){var e,t,n,r,a,o,s=i,c;if(e=Qn(),e!==null){if(t=C(),t!==null){if(n=tr(),n!==null){for(r=[],c=i,a=R(),a===null?(a=null,i=c):(o=Gn(),o===null?(a=null,i=c):a=[a,o]);a!==null;)r.push(a),c=i,a=R(),a===null?(a=null,i=c):(o=Gn(),o===null?(a=null,i=c):a=[a,o]);r===null?(e=null,i=s):e=[e,t,n,r]}else e=null,i=s}else e=null,i=s}else e=null,i=s;return e}function Gn(){var e=Kn();return e===null&&(e=qn(),e===null&&(e=Jn(),e===null&&(e=Yn(),e===null&&(e=Xn(),e===null&&(e=X()))))),e}function Kn(){var e,n,r,o=i,s=i;return t.substr(i,3).toLowerCase()===`ttl`?(e=t.substr(i,3),i+=3):(e=null,a===0&&c(`"ttl"`)),e===null?(e=null,i=s):(n=F(),n===null?(e=null,i=s):(r=ir(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){$.ttl=t})(o,e[2])),e===null&&(i=o),e}function qn(){var e,n,r,o=i,s=i;return t.substr(i,5).toLowerCase()===`maddr`?(e=t.substr(i,5),i+=5):(e=null,a===0&&c(`"maddr"`)),e===null?(e=null,i=s):(n=F(),n===null?(e=null,i=s):(r=G(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){$.maddr=t})(o,e[2])),e===null&&(i=o),e}function Jn(){var e,n,r,o=i,s=i;return t.substr(i,8).toLowerCase()===`received`?(e=t.substr(i,8),i+=8):(e=null,a===0&&c(`"received"`)),e===null?(e=null,i=s):(n=F(),n===null?(e=null,i=s):(r=Te(),r===null&&(r=we()),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){$.received=t})(o,e[2])),e===null&&(i=o),e}function Yn(){var e,n,r,o=i,s=i;return t.substr(i,6).toLowerCase()===`branch`?(e=t.substr(i,6),i+=6):(e=null,a===0&&c(`"branch"`)),e===null?(e=null,i=s):(n=F(),n===null?(e=null,i=s):(r=A(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){$.branch=t})(o,e[2])),e===null&&(i=o),e}function Xn(){var e,n,r,o=i,s;return t.substr(i,5).toLowerCase()===`rport`?(e=t.substr(i,5),i+=5):(e=null,a===0&&c(`"rport"`)),e===null?(e=null,i=o):(s=i,n=F(),n===null?(n=null,i=s):(r=Zn(),r===null?(n=null,i=s):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=o):e=[e,n]),e}function Zn(){var e,t,n,r,a,o=i,s=i;return e=u(),e=e===null?``:e,e===null?(e=null,i=s):(t=u(),t=t===null?``:t,t===null?(e=null,i=s):(n=u(),n=n===null?``:n,n===null?(e=null,i=s):(r=u(),r=r===null?``:r,r===null?(e=null,i=s):(a=u(),a=a===null?``:a,a===null?(e=null,i=s):e=[e,t,n,r,a])))),e!==null&&(e=(function(e,t){$.rport=parseInt(t.join(``))})(o,e)),e===null&&(i=o),e}function Qn(){var e,t,n,r,a,o=i;return e=$n(),e===null?(e=null,i=o):(t=re(),t===null?(e=null,i=o):(n=A(),n===null?(e=null,i=o):(r=re(),r===null?(e=null,i=o):(a=er(),a===null?(e=null,i=o):e=[e,t,n,r,a])))),e}function $n(){var e,n=i;return t.substr(i,3).toLowerCase()===`sip`?(e=t.substr(i,3),i+=3):(e=null,a===0&&c(`"SIP"`)),e===null&&(e=A()),e!==null&&(e=(function(e,t){$.protocol=t})(n,e)),e===null&&(i=n),e}function er(){var e,n=i;return t.substr(i,3).toLowerCase()===`udp`?(e=t.substr(i,3),i+=3):(e=null,a===0&&c(`"UDP"`)),e===null&&(t.substr(i,3).toLowerCase()===`tcp`?(e=t.substr(i,3),i+=3):(e=null,a===0&&c(`"TCP"`)),e===null&&(t.substr(i,3).toLowerCase()===`tls`?(e=t.substr(i,3),i+=3):(e=null,a===0&&c(`"TLS"`)),e===null&&(t.substr(i,4).toLowerCase()===`sctp`?(e=t.substr(i,4),i+=4):(e=null,a===0&&c(`"SCTP"`)),e===null&&(e=A())))),e!==null&&(e=(function(e,t){$.transport=t})(n,e)),e===null&&(i=n),e}function tr(){var e,t,n,r=i,a;return e=nr(),e===null?(e=null,i=r):(a=i,t=se(),t===null?(t=null,i=a):(n=rr(),n===null?(t=null,i=a):t=[t,n]),t=t===null?``:t,t===null?(e=null,i=r):e=[e,t]),e}function nr(){var e,n=i;return e=Te(),e===null&&(e=Ce(),e===null&&(e=be())),e!==null&&(e=(function(e){$.host=t.substring(i,e)})(n)),e===null&&(i=n),e}function rr(){var e,t,n,r,a,o=i,s=i;return e=u(),e=e===null?``:e,e===null?(e=null,i=s):(t=u(),t=t===null?``:t,t===null?(e=null,i=s):(n=u(),n=n===null?``:n,n===null?(e=null,i=s):(r=u(),r=r===null?``:r,r===null?(e=null,i=s):(a=u(),a=a===null?``:a,a===null?(e=null,i=s):e=[e,t,n,r,a])))),e!==null&&(e=(function(e,t){$.port=parseInt(t.join(``))})(o,e)),e===null&&(i=o),e}function ir(){var e,t,n,r=i,a=i;return e=u(),e===null?(e=null,i=a):(t=u(),t=t===null?``:t,t===null?(e=null,i=a):(n=u(),n=n===null?``:n,n===null?(e=null,i=a):e=[e,t,n])),e!==null&&(e=(function(e,t){return parseInt(t.join(``))})(r,e)),e===null&&(i=r),e}function ar(){return dn()}function or(){var e,t,n,r,a=i,o;if(e=sr(),e!==null){for(t=[],o=i,n=R(),n===null?(n=null,i=o):(r=cr(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=R(),n===null?(n=null,i=o):(r=cr(),r===null?(n=null,i=o):n=[n,r]);t===null?(e=null,i=a):e=[e,t]}else e=null,i=a;return e}function sr(){var e,t=i;return e=Y(),e!==null&&(e=(function(e,t){$.expires=t})(t,e)),e===null&&(i=t),e}function cr(){var e=lr();return e===null&&(e=X()),e}function lr(){var e,n,r,o=i,s=i;return t.substr(i,9).toLowerCase()===`refresher`?(e=t.substr(i,9),i+=9):(e=null,a===0&&c(`"refresher"`)),e===null?(e=null,i=s):(n=F(),n===null?(e=null,i=s):(t.substr(i,3).toLowerCase()===`uac`?(r=t.substr(i,3),i+=3):(r=null,a===0&&c(`"uac"`)),r===null&&(t.substr(i,3).toLowerCase()===`uas`?(r=t.substr(i,3),i+=3):(r=null,a===0&&c(`"uas"`))),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){$.refresher=t.toLowerCase()})(o,e[2])),e===null&&(i=o),e}function ur(){var e,t,n,r=i;return e=A(),e===null?(e=null,i=r):(t=T(),t===null?(e=null,i=r):(n=dr(),n===null?(e=null,i=r):e=[e,t,n])),e}function dr(){var e=[],t=E();for(t===null&&(t=O(),t===null&&(t=C()));t!==null;)e.push(t),t=E(),t===null&&(t=O(),t===null&&(t=C()));return e}function fr(){for(var e=[],t=m();t!==null;)e.push(t),t=m();return e}function pr(){var e,n,r=i;return t.substr(i,5)===`uuid:`?(e=`uuid:`,i+=5):(e=null,a===0&&c(`"uuid:"`)),e===null?(e=null,i=r):(n=mr(),n===null?(e=null,i=r):e=[e,n]),e}function mr(){var e,n,r,o,s,l,u,d,f,p=i,m=i;return e=hr(),e===null?(e=null,i=m):(t.charCodeAt(i)===45?(n=`-`,i++):(n=null,a===0&&c(`"-"`)),n===null?(e=null,i=m):(r=Z(),r===null?(e=null,i=m):(t.charCodeAt(i)===45?(o=`-`,i++):(o=null,a===0&&c(`"-"`)),o===null?(e=null,i=m):(s=Z(),s===null?(e=null,i=m):(t.charCodeAt(i)===45?(l=`-`,i++):(l=null,a===0&&c(`"-"`)),l===null?(e=null,i=m):(u=Z(),u===null?(e=null,i=m):(t.charCodeAt(i)===45?(d=`-`,i++):(d=null,a===0&&c(`"-"`)),d===null?(e=null,i=m):(f=gr(),f===null?(e=null,i=m):e=[e,n,r,o,s,l,u,d,f])))))))),e!==null&&(e=(function(e,n){$=t.substring(i+5,e)})(p,e[0])),e===null&&(i=p),e}function Z(){var e,t,n,r,a=i;return e=f(),e===null?(e=null,i=a):(t=f(),t===null?(e=null,i=a):(n=f(),n===null?(e=null,i=a):(r=f(),r===null?(e=null,i=a):e=[e,t,n,r]))),e}function hr(){var e,t,n=i;return e=Z(),e===null?(e=null,i=n):(t=Z(),t===null?(e=null,i=n):e=[e,t]),e}function gr(){var e,t,n,r=i;return e=Z(),e===null?(e=null,i=r):(t=Z(),t===null?(e=null,i=r):(n=Z(),n===null?(e=null,i=r):e=[e,t,n])),e}function _r(){var e,t,n,r,a=i,o=i,s;if(e=W(),e===null&&(e=J()),e!==null){for(t=[],s=i,n=R(),n===null?(n=null,i=s):(r=X(),r===null?(n=null,i=s):n=[n,r]);n!==null;)t.push(n),s=i,n=R(),n===null?(n=null,i=s):(r=X(),r===null?(n=null,i=s):n=[n,r]);t===null?(e=null,i=o):e=[e,t]}else e=null,i=o;return e!==null&&(e=(function(e){try{$=new Q($.uri,$.display_name,$.params)}catch{$=-1}})(a)),e===null&&(i=a),e}function vr(){var e,t,n,r,a=i,o;if(e=yr(),e!==null){for(t=[],o=i,n=R(),n===null?(n=null,i=o):(r=br(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=R(),n===null?(n=null,i=o):(r=br(),r===null?(n=null,i=o):n=[n,r]);t===null?(e=null,i=a):e=[e,t]}else e=null,i=a;return e}function yr(){var e,n,r,o=i,s=i,l;return e=P(),e===null?(e=null,i=s):(l=i,t.charCodeAt(i)===64?(n=`@`,i++):(n=null,a===0&&c(`"@"`)),n===null?(n=null,i=l):(r=P(),r===null?(n=null,i=l):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=s):e=[e,n]),e!==null&&(e=(function(e){$.call_id=t.substring(i,e)})(o)),e===null&&(i=o),e}function br(){var e=xr();return e===null&&(e=Sr(),e===null&&(e=Cr(),e===null&&(e=X()))),e}function xr(){var e,n,r,o=i,s=i;return t.substr(i,6)===`to-tag`?(e=`to-tag`,i+=6):(e=null,a===0&&c(`"to-tag"`)),e===null?(e=null,i=s):(n=F(),n===null?(e=null,i=s):(r=A(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){$.to_tag=t})(o,e[2])),e===null&&(i=o),e}function Sr(){var e,n,r,o=i,s=i;return t.substr(i,8)===`from-tag`?(e=`from-tag`,i+=8):(e=null,a===0&&c(`"from-tag"`)),e===null?(e=null,i=s):(n=F(),n===null?(e=null,i=s):(r=A(),r===null?(e=null,i=s):e=[e,n,r])),e!==null&&(e=(function(e,t){$.from_tag=t})(o,e[2])),e===null&&(i=o),e}function Cr(){var e,n=i;return t.substr(i,10)===`early-only`?(e=`early-only`,i+=10):(e=null,a===0&&c(`"early-only"`)),e!==null&&(e=(function(e){$.early_only=!0})(n)),e===null&&(i=n),e}function wr(e){e.sort();for(var t=null,n=[],r=0;r<e.length;r++)e[r]!==t&&(n.push(e[r]),t=e[r]);return n}function Tr(){for(var e=1,n=1,r=!1,a=0;a<Math.max(i,o);a++){var s=t.charAt(a);s===`
4
- `?(r||e++,n=1,r=!1):s===`\r`||s===`\u2028`||s===`\u2029`?(e++,n=1,r=!0):(n++,r=!1)}return{line:e,column:n}}var Er=M(),Q=te(),$={};if(r[n]()===null||i!==t.length){var Dr=Math.max(i,o),Or=Dr<t.length?t.charAt(Dr):null,kr=Tr();return new this.SyntaxError(wr(s),Or,Dr,kr.line,kr.column),-1}return $},toSource:function(){return this._source}};return t.SyntaxError=function(t,n,r,i,a){function o(t,n){var r,i;switch(t.length){case 0:r=`end of input`;break;case 1:r=t[0];break;default:r=t.slice(0,t.length-1).join(`, `)+` or `+t[t.length-1]}return i=n?e(n):`end of input`,`Expected `+r+` but `+i+` found.`}this.name=`SyntaxError`,this.expected=t,this.found=n,this.message=o(t,n),this.offset=r,this.line=i,this.column=a},t.SyntaxError.prototype=Error.prototype,t})()})),M=s(((e,t)=>{var n=k(),r=N(),i=j();t.exports=class e{static parse(e){if(e=i.parse(e,`SIP_URI`),e!==-1)return e}constructor(e,t,r,i,a={},o={}){if(!r)throw TypeError(`missing or invalid "host" parameter`);this._parameters={},this._headers={},this._scheme=e||n.SIP,this._user=t,this._host=r,this._port=i;for(let e in a)Object.prototype.hasOwnProperty.call(a,e)&&this.setParam(e,a[e]);for(let e in o)Object.prototype.hasOwnProperty.call(o,e)&&this.setHeader(e,o[e])}get scheme(){return this._scheme}set scheme(e){this._scheme=e.toLowerCase()}get user(){return this._user}set user(e){this._user=e}get host(){return this._host}set host(e){this._host=e.toLowerCase()}get port(){return this._port}set port(e){this._port=e===0?e:parseInt(e,10)||null}setParam(e,t){e&&(this._parameters[e.toLowerCase()]=t==null?null:t.toString())}getParam(e){if(e)return this._parameters[e.toLowerCase()]}hasParam(e){if(e)return this._parameters.hasOwnProperty(e.toLowerCase())&&!0||!1}deleteParam(e){if(e=e.toLowerCase(),this._parameters.hasOwnProperty(e)){let t=this._parameters[e];return delete this._parameters[e],t}}clearParams(){this._parameters={}}setHeader(e,t){this._headers[r.headerize(e)]=Array.isArray(t)?t:[t]}getHeader(e){if(e)return this._headers[r.headerize(e)]}hasHeader(e){if(e)return this._headers.hasOwnProperty(r.headerize(e))&&!0||!1}deleteHeader(e){if(e=r.headerize(e),this._headers.hasOwnProperty(e)){let t=this._headers[e];return delete this._headers[e],t}}clearHeaders(){this._headers={}}clone(){return new e(this._scheme,this._user,this._host,this._port,JSON.parse(JSON.stringify(this._parameters)),JSON.parse(JSON.stringify(this._headers)))}toString(){let e=[],t=`${this._scheme}:`;this._user&&(t+=`${r.escapeUser(this._user)}@`),t+=this._host,(this._port||this._port===0)&&(t+=`:${this._port}`);for(let e in this._parameters)Object.prototype.hasOwnProperty.call(this._parameters,e)&&(t+=`;${e}`,this._parameters[e]!==null&&(t+=`=${this._parameters[e]}`));for(let t in this._headers)if(Object.prototype.hasOwnProperty.call(this._headers,t))for(let n of this._headers[t])e.push(`${t}=${n}`);return e.length>0&&(t+=`?${e.join(`&`)}`),t}toAor(e){let t=`${this._scheme}:`;return this._user&&(t+=`${r.escapeUser(this._user)}@`),t+=this._host,e&&(this._port||this._port===0)&&(t+=`:${this._port}`),t}}})),N=s((e=>{var t=k(),n=M(),r=j();e.str_utf8_length=e=>unescape(encodeURIComponent(e)).length;var i=e.isFunction=e=>e!==void 0&&Object.prototype.toString.call(e)===`[object Function]`;e.isString=e=>e!==void 0&&Object.prototype.toString.call(e)===`[object String]`,e.isDecimal=e=>!isNaN(e)&&parseFloat(e)===parseInt(e,10),e.isEmpty=e=>e===null||e===``||e===void 0||Array.isArray(e)&&e.length===0||typeof e==`number`&&isNaN(e),e.hasMethods=function(e,...t){for(let n of t)if(i(e[n]))return!1;return!0};var a=e.createRandomToken=(e,t=32)=>{let n,r,i=``;for(n=0;n<e;n++)r=Math.random()*t|0,i+=r.toString(t);return i};e.newTag=()=>a(10),e.newUUID=()=>`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)}),e.hostType=e=>{if(e&&(e=r.parse(e,`host`),e!==-1))return e.host_type};var o=e.escapeUser=e=>encodeURIComponent(decodeURIComponent(e)).replace(/%3A/gi,`:`).replace(/%2B/gi,`+`).replace(/%3F/gi,`?`).replace(/%2F/gi,`/`);e.normalizeTarget=(e,r)=>{if(e){if(e instanceof n)return e;if(typeof e==`string`){let i=e.split(`@`),a,s;switch(i.length){case 1:if(!r)return;a=e,s=r;break;case 2:a=i[0],s=i[1];break;default:a=i.slice(0,i.length-1).join(`@`),s=i[i.length-1]}a=a.replace(/^(sips?|tel):/i,``),/^[-.()]*\+?[0-9\-.()]+$/.test(a)&&(a=a.replace(/[-.()]/g,``)),e=`${t.SIP}:${o(a)}@${s}`;let c;return(c=n.parse(e))?c:void 0}}},e.headerize=e=>{let t={"Call-Id":`Call-ID`,Cseq:`CSeq`,"Www-Authenticate":`WWW-Authenticate`},n=e.toLowerCase().replace(/_/g,`-`).split(`-`),r=``,i=n.length,a=0;for(;a<i;a++)a!==0&&(r+=`-`),r+=n[a].charAt(0).toUpperCase()+n[a].substring(1);return t[r]&&(r=t[r]),r},e.sipErrorCause=e=>{for(let n in t.SIP_ERROR_CAUSES)if(t.SIP_ERROR_CAUSES[n].indexOf(e)!==-1)return t.causes[n];return t.causes.SIP_FAILURE_CODE},e.getRandomTestNetIP=()=>{function e(e,t){return Math.floor(Math.random()*(t-e+1)+e)}return`192.0.2.${e(1,254)}`},e.calculateMD5=e=>{function t(e,t){return e<<t|e>>>32-t}function n(e,t){let n=e&2147483648,r=t&2147483648,i=e&1073741824,a=t&1073741824,o=(e&1073741823)+(t&1073741823);return i&a?o^2147483648^n^r:i|a?o&1073741824?o^3221225472^n^r:o^1073741824^n^r:o^n^r}function r(e,t,n){return e&t|~e&n}function i(e,t,n){return e&n|t&~n}function a(e,t,n){return e^t^n}function o(e,t,n){return t^(e|~n)}function s(e,i,a,o,s,c,l){return e=n(e,n(n(r(i,a,o),s),l)),n(t(e,c),i)}function c(e,r,a,o,s,c,l){return e=n(e,n(n(i(r,a,o),s),l)),n(t(e,c),r)}function l(e,r,i,o,s,c,l){return e=n(e,n(n(a(r,i,o),s),l)),n(t(e,c),r)}function u(e,r,i,a,s,c,l){return e=n(e,n(n(o(r,i,a),s),l)),n(t(e,c),r)}function d(e){let t,n=e.length,r=n+8,i=((r-r%64)/64+1)*16,a=Array(i-1),o=0,s=0;for(;s<n;)t=(s-s%4)/4,o=s%4*8,a[t]=a[t]|e.charCodeAt(s)<<o,s++;return t=(s-s%4)/4,o=s%4*8,a[t]=a[t]|128<<o,a[i-2]=n<<3,a[i-1]=n>>>29,a}function f(e){let t=``,n=``,r,i=0;for(;i<=3;i++)r=e>>>i*8&255,n=`0${r.toString(16)}`,t+=n.substr(n.length-2,2);return t}function p(e){let t=``;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);r<128?t+=String.fromCharCode(r):r>127&&r<2048?(t+=String.fromCharCode(r>>6|192),t+=String.fromCharCode(r&63|128)):(t+=String.fromCharCode(r>>12|224),t+=String.fromCharCode(r>>6&63|128),t+=String.fromCharCode(r&63|128))}return t}let m=[],h,g,_,v,y,b,x,S,C;for(e=p(e),m=d(e),b=1732584193,x=4023233417,S=2562383102,C=271733878,h=0;h<m.length;h+=16)g=b,_=x,v=S,y=C,b=s(b,x,S,C,m[h+0],7,3614090360),C=s(C,b,x,S,m[h+1],12,3905402710),S=s(S,C,b,x,m[h+2],17,606105819),x=s(x,S,C,b,m[h+3],22,3250441966),b=s(b,x,S,C,m[h+4],7,4118548399),C=s(C,b,x,S,m[h+5],12,1200080426),S=s(S,C,b,x,m[h+6],17,2821735955),x=s(x,S,C,b,m[h+7],22,4249261313),b=s(b,x,S,C,m[h+8],7,1770035416),C=s(C,b,x,S,m[h+9],12,2336552879),S=s(S,C,b,x,m[h+10],17,4294925233),x=s(x,S,C,b,m[h+11],22,2304563134),b=s(b,x,S,C,m[h+12],7,1804603682),C=s(C,b,x,S,m[h+13],12,4254626195),S=s(S,C,b,x,m[h+14],17,2792965006),x=s(x,S,C,b,m[h+15],22,1236535329),b=c(b,x,S,C,m[h+1],5,4129170786),C=c(C,b,x,S,m[h+6],9,3225465664),S=c(S,C,b,x,m[h+11],14,643717713),x=c(x,S,C,b,m[h+0],20,3921069994),b=c(b,x,S,C,m[h+5],5,3593408605),C=c(C,b,x,S,m[h+10],9,38016083),S=c(S,C,b,x,m[h+15],14,3634488961),x=c(x,S,C,b,m[h+4],20,3889429448),b=c(b,x,S,C,m[h+9],5,568446438),C=c(C,b,x,S,m[h+14],9,3275163606),S=c(S,C,b,x,m[h+3],14,4107603335),x=c(x,S,C,b,m[h+8],20,1163531501),b=c(b,x,S,C,m[h+13],5,2850285829),C=c(C,b,x,S,m[h+2],9,4243563512),S=c(S,C,b,x,m[h+7],14,1735328473),x=c(x,S,C,b,m[h+12],20,2368359562),b=l(b,x,S,C,m[h+5],4,4294588738),C=l(C,b,x,S,m[h+8],11,2272392833),S=l(S,C,b,x,m[h+11],16,1839030562),x=l(x,S,C,b,m[h+14],23,4259657740),b=l(b,x,S,C,m[h+1],4,2763975236),C=l(C,b,x,S,m[h+4],11,1272893353),S=l(S,C,b,x,m[h+7],16,4139469664),x=l(x,S,C,b,m[h+10],23,3200236656),b=l(b,x,S,C,m[h+13],4,681279174),C=l(C,b,x,S,m[h+0],11,3936430074),S=l(S,C,b,x,m[h+3],16,3572445317),x=l(x,S,C,b,m[h+6],23,76029189),b=l(b,x,S,C,m[h+9],4,3654602809),C=l(C,b,x,S,m[h+12],11,3873151461),S=l(S,C,b,x,m[h+15],16,530742520),x=l(x,S,C,b,m[h+2],23,3299628645),b=u(b,x,S,C,m[h+0],6,4096336452),C=u(C,b,x,S,m[h+7],10,1126891415),S=u(S,C,b,x,m[h+14],15,2878612391),x=u(x,S,C,b,m[h+5],21,4237533241),b=u(b,x,S,C,m[h+12],6,1700485571),C=u(C,b,x,S,m[h+3],10,2399980690),S=u(S,C,b,x,m[h+10],15,4293915773),x=u(x,S,C,b,m[h+1],21,2240044497),b=u(b,x,S,C,m[h+8],6,1873313359),C=u(C,b,x,S,m[h+15],10,4264355552),S=u(S,C,b,x,m[h+6],15,2734768916),x=u(x,S,C,b,m[h+13],21,1309151649),b=u(b,x,S,C,m[h+4],6,4149444226),C=u(C,b,x,S,m[h+11],10,3174756917),S=u(S,C,b,x,m[h+2],15,718787259),x=u(x,S,C,b,m[h+9],21,3951481745),b=n(b,g),x=n(x,_),S=n(S,v),C=n(C,y);return(f(b)+f(x)+f(S)+f(C)).toLowerCase()},e.closeMediaStream=e=>{if(e)try{let t;if(e.getTracks){t=e.getTracks();for(let e of t)e.stop()}else{t=e.getAudioTracks();for(let e of t)e.stop();t=e.getVideoTracks();for(let e of t)e.stop()}}catch{(typeof e.stop==`function`||typeof e.stop==`object`)&&e.stop()}},e.cloneArray=e=>e&&e.slice()||[],e.cloneObject=(e,t={})=>e&&Object.assign({},e)||t})),P=s(((e,t)=>{var n=typeof Reflect==`object`?Reflect:null,r=n&&typeof n.apply==`function`?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},i=n&&typeof n.ownKeys==`function`?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};function a(e){console&&console.warn&&console.warn(e)}var o=Number.isNaN||function(e){return e!==e};function s(){s.init.call(this)}t.exports=s,t.exports.once=y,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var c=10;function l(e){if(typeof e!=`function`)throw TypeError(`The "listener" argument must be of type Function. Received type `+typeof e)}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(e){if(typeof e!=`number`||e<0||o(e))throw RangeError(`The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received `+e+`.`);c=e}}),s.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if(typeof e!=`number`||e<0||o(e))throw RangeError(`The value of "n" is out of range. It must be a non-negative number. Received `+e+`.`);return this._maxListeners=e,this};function u(e){return e._maxListeners===void 0?s.defaultMaxListeners:e._maxListeners}s.prototype.getMaxListeners=function(){return u(this)},s.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var i=e===`error`,a=this._events;if(a!==void 0)i&&=a.error===void 0;else if(!i)return!1;if(i){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var s=Error(`Unhandled error.`+(o?` (`+o.message+`)`:``));throw s.context=o,s}var c=a[e];if(c===void 0)return!1;if(typeof c==`function`)r(c,this,t);else for(var l=c.length,u=g(c,l),n=0;n<l;++n)r(u[n],this,t);return!0};function d(e,t,n,r){var i,o,s;if(l(n),o=e._events,o===void 0?(o=e._events=Object.create(null),e._eventsCount=0):(o.newListener!==void 0&&(e.emit(`newListener`,t,n.listener?n.listener:n),o=e._events),s=o[t]),s===void 0)s=o[t]=n,++e._eventsCount;else if(typeof s==`function`?s=o[t]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),i=u(e),i>0&&s.length>i&&!s.warned){s.warned=!0;var c=Error(`Possible EventEmitter memory leak detected. `+s.length+` `+String(t)+` listeners added. Use emitter.setMaxListeners() to increase limit`);c.name=`MaxListenersExceededWarning`,c.emitter=e,c.type=t,c.count=s.length,a(c)}return e}s.prototype.addListener=function(e,t){return d(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return d(this,e,t,!0)};function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=f.bind(r);return i.listener=n,r.wrapFn=i,i}s.prototype.once=function(e,t){return l(t),this.on(e,p(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){return l(t),this.prependListener(e,p(this,e,t)),this},s.prototype.removeListener=function(e,t){var n,r,i,a,o;if(l(t),r=this._events,r===void 0||(n=r[e],n===void 0))return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit(`removeListener`,e,n.listener||t));else if(typeof n!=`function`){for(i=-1,a=n.length-1;a>=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;i===0?n.shift():_(n,i),n.length===1&&(r[e]=n[0]),r.removeListener!==void 0&&this.emit(`removeListener`,e,o||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,n=this._events,r;if(n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var i=Object.keys(n),a;for(r=0;r<i.length;++r)a=i[r],a!==`removeListener`&&this.removeAllListeners(a);return this.removeAllListeners(`removeListener`),this._events=Object.create(null),this._eventsCount=0,this}if(t=n[e],typeof t==`function`)this.removeListener(e,t);else if(t!==void 0)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this};function m(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i==`function`?n?[i.listener||i]:[i]:n?v(i):g(i,i.length)}s.prototype.listeners=function(e){return m(this,e,!0)},s.prototype.rawListeners=function(e){return m(this,e,!1)},s.listenerCount=function(e,t){return typeof e.listenerCount==`function`?e.listenerCount(t):h.call(e,t)},s.prototype.listenerCount=h;function h(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n==`function`)return 1;if(n!==void 0)return n.length}return 0}s.prototype.eventNames=function(){return this._eventsCount>0?i(this._events):[]};function g(e,t){for(var n=Array(t),r=0;r<t;++r)n[r]=e[r];return n}function _(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function v(e){for(var t=Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function y(e,t){return new Promise(function(n,r){function i(n){e.removeListener(t,a),r(n)}function a(){typeof e.removeListener==`function`&&e.removeListener(`error`,i),n([].slice.call(arguments))}x(e,t,a,{once:!0}),t!==`error`&&b(e,i,{once:!0})})}function b(e,t,n){typeof e.on==`function`&&x(e,`error`,t,n)}function x(e,t,n,r){if(typeof e.on==`function`)r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener==`function`)e.addEventListener(t,function i(a){r.once&&e.removeEventListener(t,i),n(a)});else throw TypeError(`The "emitter" argument must be of type EventEmitter. Received type `+typeof e)}})),ne=s(((e,t)=>{var n=1e3,r=n*60,i=r*60,a=i*24,o=a*7,s=a*365.25;t.exports=function(e,t){t||={};var n=typeof e;if(n===`string`&&e.length>0)return c(e);if(n===`number`&&isFinite(e))return t.long?u(e):l(e);throw Error(`val is not a non-empty string or a valid number. val=`+JSON.stringify(e))};function c(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var c=parseFloat(t[1]);switch((t[2]||`ms`).toLowerCase()){case`years`:case`year`:case`yrs`:case`yr`:case`y`:return c*s;case`weeks`:case`week`:case`w`:return c*o;case`days`:case`day`:case`d`:return c*a;case`hours`:case`hour`:case`hrs`:case`hr`:case`h`:return c*i;case`minutes`:case`minute`:case`mins`:case`min`:case`m`:return c*r;case`seconds`:case`second`:case`secs`:case`sec`:case`s`:return c*n;case`milliseconds`:case`millisecond`:case`msecs`:case`msec`:case`ms`:return c;default:return}}}}function l(e){var t=Math.abs(e);return t>=a?Math.round(e/a)+`d`:t>=i?Math.round(e/i)+`h`:t>=r?Math.round(e/r)+`m`:t>=n?Math.round(e/n)+`s`:e+`ms`}function u(e){var t=Math.abs(e);return t>=a?d(e,t,a,`day`):t>=i?d(e,t,i,`hour`):t>=r?d(e,t,r,`minute`):t>=n?d(e,t,n,`second`):e+` ms`}function d(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+` `+r+(i?`s`:``)}})),re=s(((e,t)=>{function n(e){n.debug=n,n.default=n,n.coerce=c,n.disable=o,n.enable=i,n.enabled=s,n.humanize=ne(),n.destroy=l,Object.keys(e).forEach(t=>{n[t]=e[t]}),n.names=[],n.skips=[],n.formatters={};function t(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return n.colors[Math.abs(t)%n.colors.length]}n.selectColor=t;function n(e){let t,i=null,a,o;function s(...e){if(!s.enabled)return;let r=s,i=Number(new Date);r.diff=i-(t||i),r.prev=t,r.curr=i,t=i,e[0]=n.coerce(e[0]),typeof e[0]!=`string`&&e.unshift(`%O`);let a=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(t,i)=>{if(t===`%%`)return`%`;a++;let o=n.formatters[i];if(typeof o==`function`){let n=e[a];t=o.call(r,n),e.splice(a,1),a--}return t}),n.formatArgs.call(r,e),(r.log||n.log).apply(r,e)}return s.namespace=e,s.useColors=n.useColors(),s.color=n.selectColor(e),s.extend=r,s.destroy=n.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>i===null?(a!==n.namespaces&&(a=n.namespaces,o=n.enabled(e)),o):i,set:e=>{i=e}}),typeof n.init==`function`&&n.init(s),s}function r(e,t){let r=n(this.namespace+(t===void 0?`:`:t)+e);return r.log=this.log,r}function i(e){n.save(e),n.namespaces=e,n.names=[],n.skips=[];let t=(typeof e==`string`?e:``).trim().replace(/\s+/g,`,`).split(`,`).filter(Boolean);for(let e of t)e[0]===`-`?n.skips.push(e.slice(1)):n.names.push(e)}function a(e,t){let n=0,r=0,i=-1,a=0;for(;n<e.length;)if(r<t.length&&(t[r]===e[n]||t[r]===`*`))t[r]===`*`?(i=r,a=n,r++):(n++,r++);else if(i!==-1)r=i+1,a++,n=a;else return!1;for(;r<t.length&&t[r]===`*`;)r++;return r===t.length}function o(){let e=[...n.names,...n.skips.map(e=>`-`+e)].join(`,`);return n.enable(``),e}function s(e){for(let t of n.skips)if(a(e,t))return!1;for(let t of n.names)if(a(e,t))return!0;return!1}function c(e){return e instanceof Error?e.stack||e.message:e}function l(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}t.exports=n})),F=s(((e,t)=>{e.formatArgs=r,e.save=i,e.load=a,e.useColors=n,e.storage=o(),e.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=`#0000CC.#0000FF.#0033CC.#0033FF.#0066CC.#0066FF.#0099CC.#0099FF.#00CC00.#00CC33.#00CC66.#00CC99.#00CCCC.#00CCFF.#3300CC.#3300FF.#3333CC.#3333FF.#3366CC.#3366FF.#3399CC.#3399FF.#33CC00.#33CC33.#33CC66.#33CC99.#33CCCC.#33CCFF.#6600CC.#6600FF.#6633CC.#6633FF.#66CC00.#66CC33.#9900CC.#9900FF.#9933CC.#9933FF.#99CC00.#99CC33.#CC0000.#CC0033.#CC0066.#CC0099.#CC00CC.#CC00FF.#CC3300.#CC3333.#CC3366.#CC3399.#CC33CC.#CC33FF.#CC6600.#CC6633.#CC9900.#CC9933.#CCCC00.#CCCC33.#FF0000.#FF0033.#FF0066.#FF0099.#FF00CC.#FF00FF.#FF3300.#FF3333.#FF3366.#FF3399.#FF33CC.#FF33FF.#FF6600.#FF6633.#FF9900.#FF9933.#FFCC00.#FFCC33`.split(`.`);function n(){if(typeof window<`u`&&window.process&&(window.process.type===`renderer`||window.process.__nwjs))return!0;if(typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<`u`&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<`u`&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<`u`&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function r(e){if(e[0]=(this.useColors?`%c`:``)+this.namespace+(this.useColors?` %c`:` `)+e[0]+(this.useColors?`%c `:` `)+`+`+t.exports.humanize(this.diff),!this.useColors)return;let n=`color: `+this.color;e.splice(1,0,n,`color: inherit`);let r=0,i=0;e[0].replace(/%[a-zA-Z%]/g,e=>{e!==`%%`&&(r++,e===`%c`&&(i=r))}),e.splice(i,0,n)}e.log=console.debug||console.log||(()=>{});function i(t){try{t?e.storage.setItem(`debug`,t):e.storage.removeItem(`debug`)}catch{}}function a(){let t;try{t=e.storage.getItem(`debug`)||e.storage.getItem(`DEBUG`)}catch{}return!t&&typeof process<`u`&&`env`in process&&(t=process.env.DEBUG),t}function o(){try{return localStorage}catch{}}t.exports=re()(e);var{formatters:s}=t.exports;s.j=function(e){try{return JSON.stringify(e)}catch(e){return`[UnexpectedJSONParseError]: `+e.message}}})),I=s(((e,t)=>{var n=F(),r=`JsSIP`;t.exports=class{constructor(e){e?(this._debug=n.default(`${r}:${e}`),this._warn=n.default(`${r}:WARN:${e}`),this._error=n.default(`${r}:ERROR:${e}`)):(this._debug=n.default(r),this._warn=n.default(`${r}:WARN`),this._error=n.default(`${r}:ERROR`)),this._debug.log=console.info.bind(console),this._warn.log=console.warn.bind(console),this._error.log=console.error.bind(console)}get debug(){return this._debug}get warn(){return this._warn}get error(){return this._error}}})),ie=s(((e,t)=>{var n=t.exports={v:[{name:`version`,reg:/^(\d*)$/}],o:[{name:`origin`,reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:[`username`,`sessionId`,`sessionVersion`,`netType`,`ipVer`,`address`],format:`%s %s %d %s IP%d %s`}],s:[{name:`name`}],i:[{name:`description`}],u:[{name:`uri`}],e:[{name:`email`}],p:[{name:`phone`}],z:[{name:`timezones`}],r:[{name:`repeats`}],t:[{name:`timing`,reg:/^(\d*) (\d*)/,names:[`start`,`stop`],format:`%d %d`}],c:[{name:`connection`,reg:/^IN IP(\d) (\S*)/,names:[`version`,`ip`],format:`IN IP%d %s`}],b:[{push:`bandwidth`,reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:[`type`,`limit`],format:`%s:%s`}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:[`type`,`port`,`protocol`,`payloads`],format:`%s %d %s %s`}],a:[{push:`rtp`,reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:[`payload`,`codec`,`rate`,`encoding`],format:function(e){return e.encoding?`rtpmap:%d %s/%s/%s`:e.rate?`rtpmap:%d %s/%s`:`rtpmap:%d %s`}},{push:`fmtp`,reg:/^fmtp:(\d*) ([\S| ]*)/,names:[`payload`,`config`],format:`fmtp:%d %s`},{name:`control`,reg:/^control:(.*)/,format:`control:%s`},{name:`rtcp`,reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:[`port`,`netType`,`ipVer`,`address`],format:function(e){return e.address==null?`rtcp:%d`:`rtcp:%d %s IP%d %s`}},{push:`rtcpFbTrrInt`,reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:[`payload`,`value`],format:`rtcp-fb:%s trr-int %d`},{push:`rtcpFb`,reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:[`payload`,`type`,`subtype`],format:function(e){return e.subtype==null?`rtcp-fb:%s %s`:`rtcp-fb:%s %s %s`}},{push:`ext`,reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:[`value`,`direction`,`encrypt-uri`,`uri`,`config`],format:function(e){return`extmap:%d`+(e.direction?`/%s`:`%v`)+(e[`encrypt-uri`]?` %s`:`%v`)+` %s`+(e.config?` %s`:``)}},{name:`extmapAllowMixed`,reg:/^(extmap-allow-mixed)/},{push:`crypto`,reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:[`id`,`suite`,`config`,`sessionConfig`],format:function(e){return e.sessionConfig==null?`crypto:%d %s %s`:`crypto:%d %s %s %s`}},{name:`setup`,reg:/^setup:(\w*)/,format:`setup:%s`},{name:`connectionType`,reg:/^connection:(new|existing)/,format:`connection:%s`},{name:`mid`,reg:/^mid:([^\s]*)/,format:`mid:%s`},{name:`msid`,reg:/^msid:(.*)/,format:`msid:%s`},{name:`ptime`,reg:/^ptime:(\d*(?:\.\d*)*)/,format:`ptime:%d`},{name:`maxptime`,reg:/^maxptime:(\d*(?:\.\d*)*)/,format:`maxptime:%d`},{name:`direction`,reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:`icelite`,reg:/^(ice-lite)/},{name:`iceUfrag`,reg:/^ice-ufrag:(\S*)/,format:`ice-ufrag:%s`},{name:`icePwd`,reg:/^ice-pwd:(\S*)/,format:`ice-pwd:%s`},{name:`fingerprint`,reg:/^fingerprint:(\S*) (\S*)/,names:[`type`,`hash`],format:`fingerprint:%s %s`},{push:`candidates`,reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:[`foundation`,`component`,`transport`,`priority`,`ip`,`port`,`type`,`raddr`,`rport`,`tcptype`,`generation`,`network-id`,`network-cost`],format:function(e){var t=`candidate:%s %d %s %d %s %d typ %s`;return t+=e.raddr==null?`%v%v`:` raddr %s rport %d`,t+=e.tcptype==null?`%v`:` tcptype %s`,e.generation!=null&&(t+=` generation %d`),t+=e[`network-id`]==null?`%v`:` network-id %d`,t+=e[`network-cost`]==null?`%v`:` network-cost %d`,t}},{name:`endOfCandidates`,reg:/^(end-of-candidates)/},{name:`remoteCandidates`,reg:/^remote-candidates:(.*)/,format:`remote-candidates:%s`},{name:`iceOptions`,reg:/^ice-options:(\S*)/,format:`ice-options:%s`},{push:`ssrcs`,reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:[`id`,`attribute`,`value`],format:function(e){var t=`ssrc:%d`;return e.attribute!=null&&(t+=` %s`,e.value!=null&&(t+=`:%s`)),t}},{push:`ssrcGroups`,reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:[`semantics`,`ssrcs`],format:`ssrc-group:%s %s`},{name:`msidSemantic`,reg:/^msid-semantic:\s?(\w*) (\S*)/,names:[`semantic`,`token`],format:`msid-semantic: %s %s`},{push:`groups`,reg:/^group:(\w*) (.*)/,names:[`type`,`mids`],format:`group:%s %s`},{name:`rtcpMux`,reg:/^(rtcp-mux)/},{name:`rtcpRsize`,reg:/^(rtcp-rsize)/},{name:`sctpmap`,reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:[`sctpmapNumber`,`app`,`maxMessageSize`],format:function(e){return e.maxMessageSize==null?`sctpmap:%s %s`:`sctpmap:%s %s %s`}},{name:`xGoogleFlag`,reg:/^x-google-flag:([^\s]*)/,format:`x-google-flag:%s`},{push:`rids`,reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:[`id`,`direction`,`params`],format:function(e){return e.params?`rid:%s %s %s`:`rid:%s %s`}},{push:`imageattrs`,reg:RegExp(`^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?`),names:[`pt`,`dir1`,`attrs1`,`dir2`,`attrs2`],format:function(e){return`imageattr:%s %s %s`+(e.dir2?` %s %s`:``)}},{name:`simulcast`,reg:RegExp(`^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$`),names:[`dir1`,`list1`,`dir2`,`list2`],format:function(e){return`simulcast:%s %s`+(e.dir2?` %s %s`:``)}},{name:`simulcast_03`,reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:[`value`],format:`simulcast: %s`},{name:`framerate`,reg:/^framerate:(\d+(?:$|\.\d+))/,format:`framerate:%s`},{name:`sourceFilter`,reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:[`filterMode`,`netType`,`addressTypes`,`destAddress`,`srcList`],format:`source-filter: %s %s %s %s %s`},{name:`bundleOnly`,reg:/^(bundle-only)/},{name:`label`,reg:/^label:(.+)/,format:`label:%s`},{name:`sctpPort`,reg:/^sctp-port:(\d+)$/,format:`sctp-port:%s`},{name:`maxMessageSize`,reg:/^max-message-size:(\d+)$/,format:`max-message-size:%s`},{push:`tsRefClocks`,reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:[`clksrc`,`clksrcExt`],format:function(e){return`ts-refclk:%s`+(e.clksrcExt==null?``:`=%s`)}},{name:`mediaClk`,reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:[`id`,`mediaClockName`,`mediaClockValue`,`rateNumerator`,`rateDenominator`],format:function(e){var t=`mediaclk:`;return t+=e.id==null?`%v%s`:`id=%s %s`,t+=e.mediaClockValue==null?``:`=%s`,t+=e.rateNumerator==null?``:` rate=%s`,t+=e.rateDenominator==null?``:`/%s`,t}},{name:`keywords`,reg:/^keywds:(.+)$/,format:`keywds:%s`},{name:`content`,reg:/^content:(.+)/,format:`content:%s`},{name:`bfcpFloorCtrl`,reg:/^floorctrl:(c-only|s-only|c-s)/,format:`floorctrl:%s`},{name:`bfcpConfId`,reg:/^confid:(\d+)/,format:`confid:%s`},{name:`bfcpUserId`,reg:/^userid:(\d+)/,format:`userid:%s`},{name:`bfcpFloorId`,reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:[`id`,`mStream`],format:`floorid:%s mstrm:%s`},{push:`invalid`,names:[`value`]}]};Object.keys(n).forEach(function(e){n[e].forEach(function(e){e.reg||=/(.*)/,e.format||=`%s`})})})),ae=s((e=>{var t=function(e){return String(Number(e))===e?Number(e):e},n=function(e,n,r,i){if(i&&!r)n[i]=t(e[1]);else for(var a=0;a<r.length;a+=1)e[a+1]!=null&&(n[r[a]]=t(e[a+1]))},r=function(e,t,r){var i=e.name&&e.names;e.push&&!t[e.push]?t[e.push]=[]:i&&!t[e.name]&&(t[e.name]={});var a=e.push?{}:i?t[e.name]:t;n(r.match(e.reg),a,e.names,e.name),e.push&&t[e.push].push(a)},i=ie(),a=RegExp.prototype.test.bind(/^([a-z])=(.*)/);e.parse=function(e){var t={},n=[],o=t;return e.split(/(\r\n|\r|\n)/).filter(a).forEach(function(e){var t=e[0],a=e.slice(2);t===`m`&&(n.push({rtp:[],fmtp:[]}),o=n[n.length-1]);for(var s=0;s<(i[t]||[]).length;s+=1){var c=i[t][s];if(c.reg.test(a))return r(c,o,a)}}),t.media=n,t};var o=function(e,n){var r=n.split(/=(.+)/,2);return r.length===2?e[r[0]]=t(r[1]):r.length===1&&n.length>1&&(e[r[0]]=void 0),e};e.parseParams=function(e){return e.split(/;\s?/).reduce(o,{})},e.parseFmtpConfig=e.parseParams,e.parsePayloads=function(e){return e.toString().split(` `).map(Number)},e.parseRemoteCandidates=function(e){for(var n=[],r=e.split(` `).map(t),i=0;i<r.length;i+=3)n.push({component:r[i],ip:r[i+1],port:r[i+2]});return n},e.parseImageAttributes=function(e){return e.split(` `).map(function(e){return e.substring(1,e.length-1).split(`,`).reduce(o,{})})},e.parseSimulcastStreamList=function(e){return e.split(`;`).map(function(e){return e.split(`,`).map(function(e){var n,r=!1;return e[0]===`~`?(n=t(e.substring(1,e.length)),r=!0):n=t(e),{scid:n,paused:r}})})}})),oe=s(((e,t)=>{var n=ie(),r=/%[sdv%]/g,i=function(e){var t=1,n=arguments,i=n.length;return e.replace(r,function(e){if(t>=i)return e;var r=n[t];switch(t+=1,e){case`%%`:return`%`;case`%s`:return String(r);case`%d`:return Number(r);case`%v`:return``}})},a=function(e,t,n){var r=t.format instanceof Function?t.format(t.push?n:n[t.name]):t.format,a=[e+`=`+r];if(t.names)for(var o=0;o<t.names.length;o+=1){var s=t.names[o];t.name?a.push(n[t.name][s]):a.push(n[t.names[o]])}else a.push(n[t.name]);return i.apply(null,a)},o=[`v`,`o`,`s`,`i`,`u`,`e`,`p`,`c`,`b`,`t`,`r`,`z`,`a`],s=[`i`,`c`,`b`,`a`];t.exports=function(e,t){t||={},e.version??=0,e.name??=` `,e.media.forEach(function(e){e.payloads??=``});var r=t.outerOrder||o,i=t.innerOrder||s,c=[];return r.forEach(function(t){n[t].forEach(function(n){n.name in e&&e[n.name]!=null?c.push(a(t,n,e)):n.push in e&&e[n.push]!=null&&e[n.push].forEach(function(e){c.push(a(t,n,e))})})}),e.media.forEach(function(e){c.push(a(`m`,n.m[0],e)),i.forEach(function(t){n[t].forEach(function(n){n.name in e&&e[n.name]!=null?c.push(a(t,n,e)):n.push in e&&e[n.push]!=null&&e[n.push].forEach(function(e){c.push(a(t,n,e))})})})}),c.join(`\r
5
- `)+`\r
6
- `}})),L=s((e=>{var t=ae(),n=oe();e.grammar=ie(),e.write=n,e.parse=t.parse,e.parseParams=t.parseParams,e.parseFmtpConfig=t.parseFmtpConfig,e.parsePayloads=t.parsePayloads,e.parseRemoteCandidates=t.parseRemoteCandidates,e.parseImageAttributes=t.parseImageAttributes,e.parseSimulcastStreamList=t.parseSimulcastStreamList})),R=s(((e,t)=>{var n=L(),r=I(),i=k(),a=N(),o=te(),s=j(),c=new r(`SIPMessage`),l=class e{constructor(e,t,n,r,s,c){if(!e||!t||!n)return null;r||={},this.ua=n,this.headers={},this.method=e,this.ruri=t,this.body=c,this.extraHeaders=a.cloneArray(s),this.ua.configuration.extra_headers&&(this.extraHeaders=this.extraHeaders.concat(this.ua.configuration.extra_headers)),r.route_set?this.setHeader(`route`,r.route_set):n.configuration.use_preloaded_route&&this.setHeader(`route`,`<${n.transport.sip_uri};lr>`),this.setHeader(`via`,``),this.setHeader(`max-forwards`,i.MAX_FORWARDS);let l=r.to_uri||t,u=r.to_tag?{tag:r.to_tag}:null,d=r.to_display_name===void 0?null:r.to_display_name;this.to=new o(l,d,u),this.setHeader(`to`,this.to.toString());let f=r.from_uri||n.configuration.uri,p={tag:r.from_tag||a.newTag()},m;m=r.from_display_name===void 0?n.configuration.display_name?n.configuration.display_name:null:r.from_display_name,this.from=new o(f,m,p),this.setHeader(`from`,this.from.toString());let h=r.call_id||n.configuration.jssip_id+a.createRandomToken(15);this.call_id=h,this.setHeader(`call-id`,h);let g=r.cseq||Math.floor(Math.random()*1e4);this.cseq=g,this.setHeader(`cseq`,`${g} ${e}`)}setHeader(e,t){let n=RegExp(`^\\s*${e}\\s*:`,`i`);for(let e=0;e<this.extraHeaders.length;e++)n.test(this.extraHeaders[e])&&this.extraHeaders.splice(e,1);this.headers[a.headerize(e)]=Array.isArray(t)?t:[t]}getHeader(e){let t=this.headers[a.headerize(e)];if(t){if(t[0])return t[0]}else{let t=RegExp(`^\\s*${e}\\s*:`,`i`);for(let e of this.extraHeaders)if(t.test(e))return e.substring(e.indexOf(`:`)+1).trim()}}getHeaders(e){let t=this.headers[a.headerize(e)],n=[];if(t){for(let e of t)n.push(e);return n}{let t=RegExp(`^\\s*${e}\\s*:`,`i`);for(let e of this.extraHeaders)t.test(e)&&n.push(e.substring(e.indexOf(`:`)+1).trim());return n}}hasHeader(e){if(this.headers[a.headerize(e)])return!0;{let t=RegExp(`^\\s*${e}\\s*:`,`i`);for(let e of this.extraHeaders)if(t.test(e))return!0}return!1}parseSDP(e){return!e&&this.sdp||(this.sdp=n.parse(this.body||``)),this.sdp}toString(){let e=`${this.method} ${this.ruri} SIP/2.0\r\n`;for(let t in this.headers)if(Object.prototype.hasOwnProperty.call(this.headers,t))for(let n of this.headers[t])e+=`${t}: ${n}\r\n`;for(let t of this.extraHeaders)e+=`${t.trim()}\r\n`;let t=[];switch(this.method){case i.REGISTER:t.push(`path`,`gruu`);break;case i.INVITE:this.ua.configuration.session_timers&&t.push(`timer`),(this.ua.contact.pub_gruu||this.ua.contact.temp_gruu)&&t.push(`gruu`),t.push(`ice`,`replaces`);break;case i.UPDATE:this.ua.configuration.session_timers&&t.push(`timer`),t.push(`ice`)}t.push(`outbound`);let n=this.ua.configuration.user_agent||i.USER_AGENT;if(e+=`Allow: ${i.ALLOWED_METHODS}\r\n`,e+=`Supported: ${t}\r\n`,e+=`User-Agent: ${n}\r\n`,this.body){let t=a.str_utf8_length(this.body);e+=`Content-Length: ${t}\r\n\r\n`,e+=this.body}else e+=`Content-Length: 0\r
7
- \r
8
- `;return e}clone(){let t=new e(this.method,this.ruri,this.ua);return Object.keys(this.headers).forEach(function(e){t.headers[e]=this.headers[e].slice()},this),t.body=this.body,t.extraHeaders=a.cloneArray(this.extraHeaders),t.to=this.to,t.from=this.from,t.call_id=this.call_id,t.cseq=this.cseq,t}},u=class e extends l{constructor(e,t,n,r,a){super(i.INVITE,e,t,n,r,a),this.transaction=null}cancel(e){this.transaction.cancel(e)}clone(){let t=new e(this.ruri,this.ua);return Object.keys(this.headers).forEach(function(e){t.headers[e]=this.headers[e].slice()},this),t.body=this.body,t.extraHeaders=a.cloneArray(this.extraHeaders),t.to=this.to,t.from=this.from,t.call_id=this.call_id,t.cseq=this.cseq,t.transaction=this.transaction,t}},d=class{constructor(){this.data=null,this.headers=null,this.method=null,this.via=null,this.via_branch=null,this.call_id=null,this.cseq=null,this.from=null,this.from_tag=null,this.to=null,this.to_tag=null,this.body=null,this.sdp=null}addHeader(e,t){let n={raw:t};e=a.headerize(e),this.headers[e]?this.headers[e].push(n):this.headers[e]=[n]}getHeader(e){let t=this.headers[a.headerize(e)];if(t){if(t[0])return t[0].raw}else return}getHeaders(e){let t=this.headers[a.headerize(e)],n=[];if(!t)return[];for(let e of t)n.push(e.raw);return n}hasHeader(e){return!!this.headers[a.headerize(e)]}parseHeader(e,t=0){if(e=a.headerize(e),!this.headers[e]){c.debug(`header "${e}" not present`);return}if(t>=this.headers[e].length){c.debug(`not so many "${e}" headers present`);return}let n=this.headers[e][t],r=n.raw;if(n.parsed)return n.parsed;let i=s.parse(r,e.replace(/-/g,`_`));if(i===-1){this.headers[e].splice(t,1),c.debug(`error parsing "${e}" header field with value "${r}"`);return}return n.parsed=i,i}s(e,t){return this.parseHeader(e,t)}setHeader(e,t){let n={raw:t};this.headers[a.headerize(e)]=[n]}parseSDP(e){return!e&&this.sdp||(this.sdp=n.parse(this.body||``)),this.sdp}toString(){return this.data}};t.exports={OutgoingRequest:l,InitialOutgoingInviteRequest:u,IncomingRequest:class extends d{constructor(e){super(),this.ua=e,this.headers={},this.ruri=null,this.transport=null,this.server_transaction=null}reply(e,t,n,r,o,s){let c=[],l=this.getHeader(`To`);if(e||=null,t||=null,!e||e<100||e>699)throw TypeError(`Invalid status_code: ${e}`);if(t&&typeof t!=`string`&&!(t instanceof String))throw TypeError(`Invalid reason_phrase: ${t}`);t=t||i.REASON_PHRASE[e]||``,n=a.cloneArray(n),this.ua.configuration.extra_headers&&(n=n.concat(this.ua.configuration.extra_headers));let u=`SIP/2.0 ${e} ${t}\r\n`;if(this.method===i.INVITE&&e>100&&e<=200){let e=this.getHeaders(`record-route`);for(let t of e)u+=`Record-Route: ${t}\r\n`}let d=this.getHeaders(`via`);for(let e of d)u+=`Via: ${e}\r\n`;!this.to_tag&&e>100?l+=`;tag=${a.newTag()}`:this.to_tag&&!this.s(`to`).hasParam(`tag`)&&(l+=`;tag=${this.to_tag}`),u+=`To: ${l}\r\n`,u+=`From: ${this.getHeader(`From`)}\r\n`,u+=`Call-ID: ${this.call_id}\r\n`,u+=`CSeq: ${this.cseq} ${this.method}\r\n`;for(let e of n)u+=`${e.trim()}\r\n`;switch(this.method){case i.INVITE:this.ua.configuration.session_timers&&c.push(`timer`),(this.ua.contact.pub_gruu||this.ua.contact.temp_gruu)&&c.push(`gruu`),c.push(`ice`,`replaces`);break;case i.UPDATE:this.ua.configuration.session_timers&&c.push(`timer`),r&&c.push(`ice`),c.push(`replaces`)}if(c.push(`outbound`),this.method===i.OPTIONS?(u+=`Allow: ${i.ALLOWED_METHODS}\r\n`,u+=`Accept: ${i.ACCEPTED_BODY_TYPES}\r\n`):e===405?u+=`Allow: ${i.ALLOWED_METHODS}\r\n`:e===415&&(u+=`Accept: ${i.ACCEPTED_BODY_TYPES}\r\n`),u+=`Supported: ${c}\r\n`,r){let e=a.str_utf8_length(r);u+=`Content-Type: application/sdp\r
9
- `,u+=`Content-Length: ${e}\r\n\r\n`,u+=r}else u+=`Content-Length: 0\r
10
- \r
11
- `;this.server_transaction.receiveResponse(e,u,o,s)}reply_sl(e=null,t=null){let n=this.getHeaders(`via`);if(!e||e<100||e>699)throw TypeError(`Invalid status_code: ${e}`);if(t&&typeof t!=`string`&&!(t instanceof String))throw TypeError(`Invalid reason_phrase: ${t}`);t=t||i.REASON_PHRASE[e]||``;let r=`SIP/2.0 ${e} ${t}\r\n`;for(let e of n)r+=`Via: ${e}\r\n`;let o=this.getHeader(`To`);if(!this.to_tag&&e>100?o+=`;tag=${a.newTag()}`:this.to_tag&&!this.s(`to`).hasParam(`tag`)&&(o+=`;tag=${this.to_tag}`),r+=`To: ${o}\r\n`,r+=`From: ${this.getHeader(`From`)}\r\n`,r+=`Call-ID: ${this.call_id}\r\n`,r+=`CSeq: ${this.cseq} ${this.method}\r\n`,this.ua.configuration.extra_headers)for(let e of this.ua.configuration.extra_headers)r+=`${e.trim()}\r\n`;r+=`Content-Length: 0\r
12
- \r
13
- `,this.transport.send(r)}},IncomingResponse:class extends d{constructor(){super(),this.headers={},this.status_code=null,this.reason_phrase=null}}}})),se=s(((e,t)=>{var n=I(),r=N(),i=new n(`DigestAuthentication`);t.exports=class{constructor(e){this._credentials=e,this._cnonce=null,this._nc=0,this._ncHex=`00000000`,this._algorithm=null,this._realm=null,this._nonce=null,this._opaque=null,this._stale=null,this._qop=null,this._method=null,this._uri=null,this._ha1=null,this._response=null}get(e){switch(e){case`realm`:return this._realm;case`ha1`:return this._ha1;default:i.warn(`get() | cannot get "%s" parameter`,e);return}}authenticate({method:e,ruri:t,body:n},a,o=null){if(this._algorithm=a.algorithm,this._realm=a.realm,this._nonce=a.nonce,this._opaque=a.opaque,this._stale=a.stale,this._algorithm){if(this._algorithm!==`MD5`)return i.warn(`authenticate() | challenge with Digest algorithm different than "MD5", authentication aborted`),!1}else this._algorithm=`MD5`;if(!this._nonce)return i.warn(`authenticate() | challenge without Digest nonce, authentication aborted`),!1;if(!this._realm)return i.warn(`authenticate() | challenge without Digest realm, authentication aborted`),!1;if(!this._credentials.password){if(!this._credentials.ha1)return i.warn(`authenticate() | no plain SIP password nor ha1 provided, authentication aborted`),!1;if(this._credentials.realm!==this._realm)return i.warn('authenticate() | no plain SIP password, and stored `realm` does not match the given `realm`, cannot authenticate [stored:"%s", given:"%s"]',this._credentials.realm,this._realm),!1}if(a.qop){if(a.qop.indexOf(`auth-int`)>-1)this._qop=`auth-int`;else if(a.qop.indexOf(`auth`)>-1)this._qop=`auth`;else return i.warn(`authenticate() | challenge without Digest qop different than "auth" or "auth-int", authentication aborted`),!1}else this._qop=null;this._method=e,this._uri=t,this._cnonce=o||r.createRandomToken(12),this._nc+=1;let s=Number(this._nc).toString(16);this._ncHex=`00000000`.substr(0,8-s.length)+s,this._nc===4294967296&&(this._nc=1,this._ncHex=`00000001`),this._ha1=this._credentials.password?r.calculateMD5(`${this._credentials.username}:${this._realm}:${this._credentials.password}`):this._credentials.ha1;let c,l;return this._qop===`auth`?(c=`${this._method}:${this._uri}`,l=r.calculateMD5(c),i.debug(`authenticate() | using qop=auth [a2:"%s"]`,c),this._response=r.calculateMD5(`${this._ha1}:${this._nonce}:${this._ncHex}:${this._cnonce}:auth:${l}`)):this._qop===`auth-int`?(c=`${this._method}:${this._uri}:${r.calculateMD5(n||``)}`,l=r.calculateMD5(c),i.debug(`authenticate() | using qop=auth-int [a2:"%s"]`,c),this._response=r.calculateMD5(`${this._ha1}:${this._nonce}:${this._ncHex}:${this._cnonce}:auth-int:${l}`)):this._qop===null&&(c=`${this._method}:${this._uri}`,l=r.calculateMD5(c),i.debug(`authenticate() | using qop=null [a2:"%s"]`,c),this._response=r.calculateMD5(`${this._ha1}:${this._nonce}:${l}`)),i.debug(`authenticate() | response generated`),!0}toString(){let e=[];if(!this._response)throw Error(`response field does not exist, cannot generate Authorization header`);return e.push(`algorithm=${this._algorithm}`),e.push(`username="${this._credentials.username}"`),e.push(`realm="${this._realm}"`),e.push(`nonce="${this._nonce}"`),e.push(`uri="${this._uri}"`),e.push(`response="${this._response}"`),this._opaque&&e.push(`opaque="${this._opaque}"`),this._qop&&(e.push(`qop=${this._qop}`),e.push(`cnonce="${this._cnonce}"`),e.push(`nc=${this._ncHex}`)),`Digest ${e.join(`, `)}`}}})),ce=s(((e,t)=>{var n=500;t.exports={T1:n,T2:4e3,T4:5e3,TIMER_B:64*n,TIMER_D:0,TIMER_F:64*n,TIMER_H:64*n,TIMER_I:0,TIMER_J:0,TIMER_K:0,TIMER_L:64*n,TIMER_M:64*n,PROVISIONAL_RESPONSE_INTERVAL:6e4}})),z=s(((e,t)=>{var n=P().EventEmitter,r=I(),i=k(),a=R(),o=ce(),s=new r(`NonInviteClientTransaction`),c=new r(`InviteClientTransaction`),l=new r(`AckClientTransaction`),u=new r(`NonInviteServerTransaction`),d=new r(`InviteServerTransaction`),f={STATUS_TRYING:1,STATUS_PROCEEDING:2,STATUS_CALLING:3,STATUS_ACCEPTED:4,STATUS_COMPLETED:5,STATUS_TERMINATED:6,STATUS_CONFIRMED:7,NON_INVITE_CLIENT:`nict`,NON_INVITE_SERVER:`nist`,INVITE_CLIENT:`ict`,INVITE_SERVER:`ist`},p=class extends n{constructor(e,t,n,r){super(),this.type=f.NON_INVITE_CLIENT,this.id=`z9hG4bK${Math.floor(Math.random()*1e7)}`,this.ua=e,this.transport=t,this.request=n,this.eventHandlers=r;let i=`SIP/2.0/${t.via_transport}`;i+=` ${e.configuration.via_host};branch=${this.id}`,this.request.setHeader(`via`,i),this.ua.newTransaction(this)}get C(){return f}stateChanged(e){this.state=e,this.emit(`stateChanged`)}send(){this.stateChanged(f.STATUS_TRYING),this.F=setTimeout(()=>{this.timer_F()},o.TIMER_F),this.transport.send(this.request)||this.onTransportError()}onTransportError(){s.debug(`transport error occurred, deleting transaction ${this.id}`),clearTimeout(this.F),clearTimeout(this.K),this.stateChanged(f.STATUS_TERMINATED),this.ua.destroyTransaction(this),this.eventHandlers.onTransportError()}timer_F(){s.debug(`Timer F expired for transaction ${this.id}`),this.stateChanged(f.STATUS_TERMINATED),this.ua.destroyTransaction(this),this.eventHandlers.onRequestTimeout()}timer_K(){this.stateChanged(f.STATUS_TERMINATED),this.ua.destroyTransaction(this)}receiveResponse(e){let t=e.status_code;if(t<200)switch(this.state){case f.STATUS_TRYING:case f.STATUS_PROCEEDING:this.stateChanged(f.STATUS_PROCEEDING),this.eventHandlers.onReceiveResponse(e)}else switch(this.state){case f.STATUS_TRYING:case f.STATUS_PROCEEDING:this.stateChanged(f.STATUS_COMPLETED),clearTimeout(this.F),t===408?this.eventHandlers.onRequestTimeout():this.eventHandlers.onReceiveResponse(e),this.K=setTimeout(()=>{this.timer_K()},o.TIMER_K);break;case f.STATUS_COMPLETED:}}},m=class extends n{constructor(e,t,n,r){super(),this.type=f.INVITE_CLIENT,this.id=`z9hG4bK${Math.floor(Math.random()*1e7)}`,this.ua=e,this.transport=t,this.request=n,this.eventHandlers=r,n.transaction=this;let i=`SIP/2.0/${t.via_transport}`;i+=` ${e.configuration.via_host};branch=${this.id}`,this.request.setHeader(`via`,i),this.ua.newTransaction(this)}get C(){return f}stateChanged(e){this.state=e,this.emit(`stateChanged`)}send(){this.stateChanged(f.STATUS_CALLING),this.B=setTimeout(()=>{this.timer_B()},o.TIMER_B),this.transport.send(this.request)||this.onTransportError()}onTransportError(){clearTimeout(this.B),clearTimeout(this.D),clearTimeout(this.M),this.state!==f.STATUS_ACCEPTED&&(c.debug(`transport error occurred, deleting transaction ${this.id}`),this.eventHandlers.onTransportError()),this.stateChanged(f.STATUS_TERMINATED),this.ua.destroyTransaction(this)}timer_M(){c.debug(`Timer M expired for transaction ${this.id}`),this.state===f.STATUS_ACCEPTED&&(clearTimeout(this.B),this.stateChanged(f.STATUS_TERMINATED),this.ua.destroyTransaction(this))}timer_B(){c.debug(`Timer B expired for transaction ${this.id}`),this.state===f.STATUS_CALLING&&(this.stateChanged(f.STATUS_TERMINATED),this.ua.destroyTransaction(this),this.eventHandlers.onRequestTimeout())}timer_D(){c.debug(`Timer D expired for transaction ${this.id}`),clearTimeout(this.B),this.stateChanged(f.STATUS_TERMINATED),this.ua.destroyTransaction(this)}sendACK(e){let t=new a.OutgoingRequest(i.ACK,this.request.ruri,this.ua,{route_set:this.request.getHeaders(`route`),call_id:this.request.getHeader(`call-id`),cseq:this.request.cseq});t.setHeader(`from`,this.request.getHeader(`from`)),t.setHeader(`via`,this.request.getHeader(`via`)),t.setHeader(`to`,e.getHeader(`to`)),this.D=setTimeout(()=>{this.timer_D()},o.TIMER_D),this.transport.send(t)}cancel(e){if(this.state!==f.STATUS_PROCEEDING)return;let t=new a.OutgoingRequest(i.CANCEL,this.request.ruri,this.ua,{route_set:this.request.getHeaders(`route`),call_id:this.request.getHeader(`call-id`),cseq:this.request.cseq});t.setHeader(`from`,this.request.getHeader(`from`)),t.setHeader(`via`,this.request.getHeader(`via`)),t.setHeader(`to`,this.request.getHeader(`to`)),e&&t.setHeader(`reason`,e),this.transport.send(t)}receiveResponse(e){let t=e.status_code;if(t>=100&&t<=199)switch(this.state){case f.STATUS_CALLING:this.stateChanged(f.STATUS_PROCEEDING),this.eventHandlers.onReceiveResponse(e);break;case f.STATUS_PROCEEDING:this.eventHandlers.onReceiveResponse(e)}else if(t>=200&&t<=299)switch(this.state){case f.STATUS_CALLING:case f.STATUS_PROCEEDING:this.stateChanged(f.STATUS_ACCEPTED),this.M=setTimeout(()=>{this.timer_M()},o.TIMER_M),this.eventHandlers.onReceiveResponse(e);break;case f.STATUS_ACCEPTED:this.eventHandlers.onReceiveResponse(e)}else if(t>=300&&t<=699)switch(this.state){case f.STATUS_CALLING:case f.STATUS_PROCEEDING:this.stateChanged(f.STATUS_COMPLETED),this.sendACK(e),this.eventHandlers.onReceiveResponse(e);break;case f.STATUS_COMPLETED:this.sendACK(e)}}},h=class extends n{constructor(e,t,n,r){super(),this.id=`z9hG4bK${Math.floor(Math.random()*1e7)}`,this.transport=t,this.request=n,this.eventHandlers=r;let i=`SIP/2.0/${t.via_transport}`;i+=` ${e.configuration.via_host};branch=${this.id}`,this.request.setHeader(`via`,i)}get C(){return f}send(){this.transport.send(this.request)||this.onTransportError()}onTransportError(){l.debug(`transport error occurred for transaction ${this.id}`),this.eventHandlers.onTransportError()}},g=class extends n{constructor(e,t,n){super(),this.type=f.NON_INVITE_SERVER,this.id=n.via_branch,this.ua=e,this.transport=t,this.request=n,this.last_response=``,n.server_transaction=this,this.state=f.STATUS_TRYING,e.newTransaction(this)}get C(){return f}stateChanged(e){this.state=e,this.emit(`stateChanged`)}timer_J(){u.debug(`Timer J expired for transaction ${this.id}`),this.stateChanged(f.STATUS_TERMINATED),this.ua.destroyTransaction(this)}onTransportError(){this.transportError||(this.transportError=!0,u.debug(`transport error occurred, deleting transaction ${this.id}`),clearTimeout(this.J),this.stateChanged(f.STATUS_TERMINATED),this.ua.destroyTransaction(this))}receiveResponse(e,t,n,r){if(e===100)switch(this.state){case f.STATUS_TRYING:this.stateChanged(f.STATUS_PROCEEDING),this.transport.send(t)||this.onTransportError();break;case f.STATUS_PROCEEDING:this.last_response=t,this.transport.send(t)?n&&n():(this.onTransportError(),r&&r())}else if(e>=200&&e<=699)switch(this.state){case f.STATUS_TRYING:case f.STATUS_PROCEEDING:this.stateChanged(f.STATUS_COMPLETED),this.last_response=t,this.J=setTimeout(()=>{this.timer_J()},o.TIMER_J),this.transport.send(t)?n&&n():(this.onTransportError(),r&&r());break;case f.STATUS_COMPLETED:}}},_=class extends n{constructor(e,t,n){super(),this.type=f.INVITE_SERVER,this.id=n.via_branch,this.ua=e,this.transport=t,this.request=n,this.last_response=``,n.server_transaction=this,this.state=f.STATUS_PROCEEDING,e.newTransaction(this),this.resendProvisionalTimer=null,n.reply(100)}get C(){return f}stateChanged(e){this.state=e,this.emit(`stateChanged`)}timer_H(){d.debug(`Timer H expired for transaction ${this.id}`),this.state===f.STATUS_COMPLETED&&d.debug(`ACK not received, dialog will be terminated`),this.stateChanged(f.STATUS_TERMINATED),this.ua.destroyTransaction(this)}timer_I(){this.stateChanged(f.STATUS_TERMINATED),this.ua.destroyTransaction(this)}timer_L(){d.debug(`Timer L expired for transaction ${this.id}`),this.state===f.STATUS_ACCEPTED&&(this.stateChanged(f.STATUS_TERMINATED),this.ua.destroyTransaction(this))}onTransportError(){this.transportError||(this.transportError=!0,d.debug(`transport error occurred, deleting transaction ${this.id}`),this.resendProvisionalTimer!==null&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),clearTimeout(this.L),clearTimeout(this.H),clearTimeout(this.I),this.stateChanged(f.STATUS_TERMINATED),this.ua.destroyTransaction(this))}resend_provisional(){this.transport.send(this.last_response)||this.onTransportError()}receiveResponse(e,t,n,r){if(e>=100&&e<=199)switch(this.state){case f.STATUS_PROCEEDING:this.transport.send(t)||this.onTransportError(),this.last_response=t}if(e>100&&e<=199&&this.state===f.STATUS_PROCEEDING)this.resendProvisionalTimer===null&&(this.resendProvisionalTimer=setInterval(()=>{this.resend_provisional()},o.PROVISIONAL_RESPONSE_INTERVAL));else if(e>=200&&e<=299)switch(this.state){case f.STATUS_PROCEEDING:this.stateChanged(f.STATUS_ACCEPTED),this.last_response=t,this.L=setTimeout(()=>{this.timer_L()},o.TIMER_L),this.resendProvisionalTimer!==null&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null);case f.STATUS_ACCEPTED:this.transport.send(t)?n&&n():(this.onTransportError(),r&&r())}else if(e>=300&&e<=699)switch(this.state){case f.STATUS_PROCEEDING:this.resendProvisionalTimer!==null&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),this.transport.send(t)?(this.stateChanged(f.STATUS_COMPLETED),this.H=setTimeout(()=>{this.timer_H()},o.TIMER_H),n&&n()):(this.onTransportError(),r&&r())}}};function v({_transactions:e},t){let n;switch(t.method){case i.INVITE:if(n=e.ist[t.via_branch],n){switch(n.state){case f.STATUS_PROCEEDING:n.transport.send(n.last_response);break;case f.STATUS_ACCEPTED:}return!0}break;case i.ACK:if(n=e.ist[t.via_branch],n){if(n.state===f.STATUS_ACCEPTED)return!1;if(n.state===f.STATUS_COMPLETED)return n.state=f.STATUS_CONFIRMED,n.I=setTimeout(()=>{n.timer_I()},o.TIMER_I),!0}else return!1;break;case i.CANCEL:return n=e.ist[t.via_branch],n?(t.reply_sl(200),n.state!==f.STATUS_PROCEEDING):(t.reply_sl(481),!0);default:if(n=e.nist[t.via_branch],n){switch(n.state){case f.STATUS_TRYING:break;case f.STATUS_PROCEEDING:case f.STATUS_COMPLETED:n.transport.send(n.last_response)}return!0}}}t.exports={C:f,NonInviteClientTransaction:p,InviteClientTransaction:m,AckClientTransaction:h,NonInviteServerTransaction:g,InviteServerTransaction:_,checkTransaction:v}})),B=s(((e,t)=>{var n=I(),r=k(),i=se(),a=z(),o=new n(`RequestSender`),s={onRequestTimeout:()=>{},onTransportError:()=>{},onReceiveResponse:()=>{},onAuthenticated:()=>{}};t.exports=class{constructor(e,t,n){this._ua=e,this._eventHandlers=n,this._method=t.method,this._request=t,this._auth=null,this._challenged=!1,this._staled=!1;for(let e in s)Object.prototype.hasOwnProperty.call(s,e)&&(this._eventHandlers[e]||(this._eventHandlers[e]=s[e]));e.status===e.C.STATUS_USER_CLOSED&&(this._method!==r.BYE||this._method!==r.ACK)&&this._eventHandlers.onTransportError()}send(){let e={onRequestTimeout:()=>{this._eventHandlers.onRequestTimeout()},onTransportError:()=>{this._eventHandlers.onTransportError()},onReceiveResponse:e=>{this._receiveResponse(e)}};switch(this._method){case`INVITE`:this.clientTransaction=new a.InviteClientTransaction(this._ua,this._ua.transport,this._request,e);break;case`ACK`:this.clientTransaction=new a.AckClientTransaction(this._ua,this._ua.transport,this._request,e);break;default:this.clientTransaction=new a.NonInviteClientTransaction(this._ua,this._ua.transport,this._request,e)}this._ua._configuration.authorization_jwt&&this._request.setHeader(`Authorization`,this._ua._configuration.authorization_jwt),this.clientTransaction.send()}_receiveResponse(e){let t,n,r=e.status_code;if((r===401||r===407)&&(this._ua.configuration.password!==null||this._ua.configuration.ha1!==null)){if(e.status_code===401?(t=e.parseHeader(`www-authenticate`),n=`authorization`):(t=e.parseHeader(`proxy-authenticate`),n=`proxy-authorization`),!t){o.debug(`${e.status_code} with wrong or missing challenge, cannot authenticate`),this._eventHandlers.onReceiveResponse(e);return}if(!this._challenged||!this._staled&&t.stale===!0){if(this._auth||=new i({username:this._ua.configuration.authorization_user,password:this._ua.configuration.password,realm:this._ua.configuration.realm,ha1:this._ua.configuration.ha1}),!this._auth.authenticate(this._request,t)){this._eventHandlers.onReceiveResponse(e);return}this._challenged=!0,this._ua.set(`realm`,this._auth.get(`realm`)),this._ua.set(`ha1`,this._auth.get(`ha1`)),t.stale&&(this._staled=!0),this._request=this._request.clone(),this._request.cseq+=1,this._request.setHeader(`cseq`,`${this._request.cseq} ${this._method}`),this._request.setHeader(n,this._auth.toString()),this._eventHandlers.onAuthenticated(this._request),this.send()}else this._eventHandlers.onReceiveResponse(e)}else this._eventHandlers.onReceiveResponse(e)}}})),le=s(((e,t)=>{var n=I(),r=N(),i=k(),a=R(),o=B(),s=new n(`Registrator`),c=10;t.exports=class{constructor(e,t){this._reg_id=1,this._ua=e,this._transport=t,this._registrar=e.configuration.registrar_server,this._expires=e.configuration.register_expires,this._call_id=r.createRandomToken(22),this._cseq=0,this._to_uri=e.configuration.uri,this._registrationTimer=null,this._registering=!1,this._registered=!1,this._contact=this._ua.contact.toString(),this._contact+=`;+sip.ice`,this._extraHeaders=[],this._extraContactParams=``,this._sipInstance=`"<urn:uuid:${this._ua.configuration.instance_id}>"`,this._contact+=`;reg-id=${this._reg_id}`,this._contact+=`;+sip.instance=${this._sipInstance}`}get registered(){return this._registered}setExtraHeaders(e){Array.isArray(e)||(e=[]),this._extraHeaders=e.slice()}setExtraContactParams(e){e instanceof Object||(e={}),this._extraContactParams=``;for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];this._extraContactParams+=`;${t}`,n&&(this._extraContactParams+=`=${n}`)}}register(){if(this._registering){s.debug(`Register request in progress...`);return}let e=r.cloneArray(this._extraHeaders),t;this._expires?(t=`${this._contact};expires=${this._expires}${this._extraContactParams}`,e.push(`Expires: ${this._expires}`)):t=`${this._contact}${this._extraContactParams}`,e.push(`Contact: ${t}`);let n=r.newTag();this._ua.configuration.register_from_tag_trail&&(typeof this._ua.configuration.register_from_tag_trail==`function`?n+=this._ua.configuration.register_from_tag_trail():n+=this._ua.configuration.register_from_tag_trail);let l=new a.OutgoingRequest(i.REGISTER,this._registrar,this._ua,{to_uri:this._to_uri,call_id:this._call_id,cseq:this._cseq+=1,from_tag:n},e),u=new o(this._ua,l,{onRequestTimeout:()=>{this._registrationFailure(null,i.causes.REQUEST_TIMEOUT)},onTransportError:()=>{this._registrationFailure(null,i.causes.CONNECTION_ERROR)},onAuthenticated:()=>{this._cseq+=1},onReceiveResponse:e=>{if(e.cseq===this._cseq)switch(this._registrationTimer!==null&&(clearTimeout(this._registrationTimer),this._registrationTimer=null),!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):{if(this._registering=!1,!e.hasHeader(`Contact`)){s.debug(`no Contact header in response to REGISTER, response ignored`);break}let t=e.headers.Contact.reduce((e,t)=>e.concat(t.parsed),[]),n=t.find(e=>this._sipInstance===e.getParam(`+sip.instance`)&&this._reg_id===parseInt(e.getParam(`reg-id`)));if(n||=t.find(e=>e.uri.user===this._ua.contact.uri.user),!n){s.debug(`no Contact header pointing to us, response ignored`);break}let r=n.getParam(`expires`);!r&&e.hasHeader(`expires`)&&(r=e.getHeader(`expires`)),r||=this._expires,r=Number(r),r<c&&(r=c);let i=r>64?r*1e3/2+Math.floor((r/2-32)*1e3*Math.random()):r*1e3-5e3;this._registrationTimer=setTimeout(()=>{this._registrationTimer=null,this._ua.listeners(`registrationExpiring`).length===0?this.register():this._ua.emit(`registrationExpiring`)},i),n.hasParam(`temp-gruu`)&&(this._ua.contact.temp_gruu=n.getParam(`temp-gruu`).replace(/"/g,``)),n.hasParam(`pub-gruu`)&&(this._ua.contact.pub_gruu=n.getParam(`pub-gruu`).replace(/"/g,``)),this._registered||(this._registered=!0,this._ua.registered({response:e}));break}case/^423$/.test(e.status_code):e.hasHeader(`min-expires`)?(this._expires=Number(e.getHeader(`min-expires`)),this._expires<c&&(this._expires=c),this._registering=!1,this.register()):(s.debug(`423 response received for REGISTER without Min-Expires`),this._registrationFailure(e,i.causes.SIP_FAILURE_CODE));break;default:{let t=r.sipErrorCause(e.status_code);this._registrationFailure(e,t)}}}});this._registering=!0,u.send()}unregister(e={}){if(!this._registered){s.debug(`already unregistered`);return}this._registered=!1,this._registrationTimer!==null&&(clearTimeout(this._registrationTimer),this._registrationTimer=null);let t=r.cloneArray(this._extraHeaders);e.all?t.push(`Contact: *${this._extraContactParams}`):t.push(`Contact: ${this._contact};expires=0${this._extraContactParams}`),t.push(`Expires: 0`);let n=new a.OutgoingRequest(i.REGISTER,this._registrar,this._ua,{to_uri:this._to_uri,call_id:this._call_id,cseq:this._cseq+=1},t);new o(this._ua,n,{onRequestTimeout:()=>{this._unregistered(null,i.causes.REQUEST_TIMEOUT)},onTransportError:()=>{this._unregistered(null,i.causes.CONNECTION_ERROR)},onAuthenticated:()=>{this._cseq+=1},onReceiveResponse:e=>{switch(!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):this._unregistered(e);break;default:{let t=r.sipErrorCause(e.status_code);this._unregistered(e,t)}}}}).send()}close(){this._registered&&this.unregister()}onTransportClosed(){this._registering=!1,this._registrationTimer!==null&&(clearTimeout(this._registrationTimer),this._registrationTimer=null),this._registered&&(this._registered=!1,this._ua.unregistered({}))}_registrationFailure(e,t){this._registering=!1,this._ua.registrationFailed({response:e||null,cause:t}),this._registered&&(this._registered=!1,this._ua.unregistered({response:e||null,cause:t}))}_unregistered(e,t){this._registering=!1,this._registered=!1,this._ua.unregistered({response:e||null,cause:t||null})}}})),ue=s(((e,t)=>{var n=k(),r=z(),i=B(),a={onRequestTimeout:()=>{},onTransportError:()=>{},onSuccessResponse:()=>{},onErrorResponse:()=>{},onAuthenticated:()=>{},onDialogError:()=>{}};t.exports=class{constructor(e,t,n){this._dialog=e,this._ua=e._ua,this._request=t,this._eventHandlers=n,this._reattempt=!1,this._reattemptTimer=null;for(let e in a)Object.prototype.hasOwnProperty.call(a,e)&&(this._eventHandlers[e]||(this._eventHandlers[e]=a[e]))}get request(){return this._request}send(){let e=new i(this._ua,this._request,{onRequestTimeout:()=>{this._eventHandlers.onRequestTimeout()},onTransportError:()=>{this._eventHandlers.onTransportError()},onAuthenticated:e=>{this._eventHandlers.onAuthenticated(e)},onReceiveResponse:e=>{this._receiveResponse(e)}});if(e.send(),(this._request.method===n.INVITE||this._request.method===n.UPDATE&&this._request.body)&&e.clientTransaction.state!==r.C.STATUS_TERMINATED){this._dialog.uac_pending_reply=!0;let t=()=>{(e.clientTransaction.state===r.C.STATUS_ACCEPTED||e.clientTransaction.state===r.C.STATUS_COMPLETED||e.clientTransaction.state===r.C.STATUS_TERMINATED)&&(e.clientTransaction.removeListener(`stateChanged`,t),this._dialog.uac_pending_reply=!1)};e.clientTransaction.on(`stateChanged`,t)}}_receiveResponse(e){e.status_code===408||e.status_code===481?this._eventHandlers.onDialogError(e):e.method===n.INVITE&&e.status_code===491?this._reattempt?this._eventHandlers.onErrorResponse(e):(this._request.cseq=this._dialog.local_seqnum+=1,this._reattemptTimer=setTimeout(()=>{this._dialog.isTerminated()||(this._reattempt=!0,this.send())},1e3)):e.status_code>=200&&e.status_code<300?this._eventHandlers.onSuccessResponse(e):e.status_code>=300&&this._eventHandlers.onErrorResponse(e)}}})),V=s(((e,t)=>{var n=I(),r=R(),i=k(),a=z(),o=ue(),s=N(),c=new n(`Dialog`),l={STATUS_EARLY:1,STATUS_CONFIRMED:2,STATUS_TERMINATED:3};t.exports=class{static get C(){return l}constructor(e,t,n,i=l.STATUS_CONFIRMED){if(this._owner=e,this._ua=e._ua,this._uac_pending_reply=!1,this._uas_pending_reply=!1,!t.hasHeader(`contact`))return{error:`unable to create a Dialog without Contact header field`};t instanceof r.IncomingResponse&&(i=t.status_code<200?l.STATUS_EARLY:l.STATUS_CONFIRMED);let a=t.parseHeader(`contact`);n===`UAS`?(this._id={call_id:t.call_id,local_tag:t.to_tag,remote_tag:t.from_tag,toString(){return this.call_id+this.local_tag+this.remote_tag}},this._state=i,this._remote_seqnum=t.cseq,this._local_uri=t.parseHeader(`to`).uri,this._remote_uri=t.parseHeader(`from`).uri,this._remote_target=a.uri,this._route_set=t.getHeaders(`record-route`),this._incoming_ack_seqnum=t.cseq,this._outgoing_ack_seqnum=null):n===`UAC`&&(this._id={call_id:t.call_id,local_tag:t.from_tag,remote_tag:t.to_tag,toString(){return this.call_id+this.local_tag+this.remote_tag}},this._state=i,this._local_seqnum=t.cseq,this._local_uri=t.parseHeader(`from`).uri,this._remote_uri=t.parseHeader(`to`).uri,this._remote_target=a.uri,this._route_set=t.getHeaders(`record-route`).reverse(),this._incoming_ack_seqnum=null,this._outgoing_ack_seqnum=this._local_seqnum),this._ua.newDialog(this),c.debug(`new ${n} dialog created with status ${this._state===l.STATUS_EARLY?`EARLY`:`CONFIRMED`}`)}get id(){return this._id}get local_seqnum(){return this._local_seqnum}set local_seqnum(e){this._local_seqnum=e}get owner(){return this._owner}get uac_pending_reply(){return this._uac_pending_reply}set uac_pending_reply(e){this._uac_pending_reply=e}get uas_pending_reply(){return this._uas_pending_reply}isTerminated(){return this._status===l.STATUS_TERMINATED}update(e,t){this._state=l.STATUS_CONFIRMED,c.debug(`dialog ${this._id.toString()} changed to CONFIRMED state`),t===`UAC`&&(this._route_set=e.getHeaders(`record-route`).reverse())}terminate(){c.debug(`dialog ${this._id.toString()} deleted`),this._ua.destroyDialog(this),this._state=l.STATUS_TERMINATED}sendRequest(e,t={}){let n=s.cloneArray(t.extraHeaders),r=s.cloneObject(t.eventHandlers),a=t.body||null,c=this._createRequest(e,n,a),l=r.onAuthenticated||(()=>{});return r.onAuthenticated=e=>{this._local_seqnum+=1,c.method===i.INVITE&&(this._outgoing_ack_seqnum=this._local_seqnum),l(e)},new o(this,c,r).send(),c}receiveRequest(e){this._checkInDialogRequest(e)&&(e.method===i.ACK&&this._incoming_ack_seqnum!==null?this._incoming_ack_seqnum=null:e.method===i.INVITE&&(this._incoming_ack_seqnum=e.cseq),this._owner.receiveRequest(e))}_createRequest(e,t,n){t=s.cloneArray(t),this._local_seqnum||=Math.floor(Math.random()*1e4);let a=e===i.CANCEL||e===i.ACK?this._outgoing_ack_seqnum:this._local_seqnum+=1;return e===i.INVITE&&(this._outgoing_ack_seqnum=a),new r.OutgoingRequest(e,this._remote_target,this._ua,{cseq:a,call_id:this._id.call_id,from_uri:this._local_uri,from_tag:this._id.local_tag,to_uri:this._remote_uri,to_tag:this._id.remote_tag,route_set:this._route_set},t,n)}_checkInDialogRequest(e){if(!this._remote_seqnum)this._remote_seqnum=e.cseq;else if(e.cseq<this._remote_seqnum){if(e.method===i.ACK){if(this._incoming_ack_seqnum===null||e.cseq!==this._incoming_ack_seqnum)return!1}else return e.reply(500),!1}else e.cseq>this._remote_seqnum&&(this._remote_seqnum=e.cseq);if(e.method===i.INVITE||e.method===i.UPDATE&&e.body){if(this._uac_pending_reply===!0)e.reply(491);else if(this._uas_pending_reply===!0){let t=(Math.random()*10|0)+1;return e.reply(500,null,[`Retry-After:${t}`]),!1}else{this._uas_pending_reply=!0;let t=()=>{(e.server_transaction.state===a.C.STATUS_ACCEPTED||e.server_transaction.state===a.C.STATUS_COMPLETED||e.server_transaction.state===a.C.STATUS_TERMINATED)&&(e.server_transaction.removeListener(`stateChanged`,t),this._uas_pending_reply=!1)};e.server_transaction.on(`stateChanged`,t)}e.hasHeader(`contact`)&&e.server_transaction.on(`stateChanged`,()=>{e.server_transaction.state===a.C.STATUS_ACCEPTED&&(this._remote_target=e.parseHeader(`contact`).uri)})}else e.method===i.NOTIFY&&e.hasHeader(`contact`)&&e.server_transaction.on(`stateChanged`,()=>{e.server_transaction.state===a.C.STATUS_COMPLETED&&(this._remote_target=e.parseHeader(`contact`).uri)});return!0}}})),H=s(((e,t)=>{var n=P().EventEmitter,r=I(),i=k(),a=A(),o=N(),s=new r(`RTCSession:DTMF`),c={MIN_DURATION:70,MAX_DURATION:6e3,DEFAULT_DURATION:100,MIN_INTER_TONE_GAP:50,DEFAULT_INTER_TONE_GAP:500};t.exports=class extends n{constructor(e){super(),this._session=e,this._direction=null,this._tone=null,this._duration=null,this._request=null}get tone(){return this._tone}get duration(){return this._duration}send(e,t={}){if(e===void 0)throw TypeError(`Not enough arguments`);if(this._direction=`outgoing`,this._session.status!==this._session.C.STATUS_CONFIRMED&&this._session.status!==this._session.C.STATUS_WAITING_FOR_ACK&&this._session.status!==this._session.C.STATUS_1XX_RECEIVED)throw new a.InvalidStateError(this._session.status);let n=o.cloneArray(t.extraHeaders);if(this.eventHandlers=o.cloneObject(t.eventHandlers),typeof e==`string`)e=e.toUpperCase();else if(typeof e==`number`)e=e.toString();else throw TypeError(`Invalid tone: ${e}`);if(e.match(/^[0-9A-DR#*]$/))this._tone=e;else throw TypeError(`Invalid tone: ${e}`);this._duration=t.duration,n.push(`Content-Type: application/dtmf-relay`);let r=`Signal=${this._tone}\r\n`;r+=`Duration=${this._duration}`,this._session.newDTMF({originator:`local`,dtmf:this,request:this._request}),this._session.sendRequest(i.INFO,{extraHeaders:n,eventHandlers:{onSuccessResponse:e=>{this.emit(`succeeded`,{originator:`remote`,response:e})},onErrorResponse:e=>{this.eventHandlers.onFailed&&this.eventHandlers.onFailed(),this.emit(`failed`,{originator:`remote`,response:e})},onRequestTimeout:()=>{this._session.onRequestTimeout()},onTransportError:()=>{this._session.onTransportError()},onDialogError:()=>{this._session.onDialogError()}},body:r})}init_incoming(e){let t=/^(Signal\s*?=\s*?)([0-9A-D#*]{1})(\s)?.*/,n=/^(Duration\s?=\s?)([0-9]{1,4})(\s)?.*/;if(this._direction=`incoming`,this._request=e,e.reply(200),e.body){let r=e.body.split(`
14
- `);r.length>=1&&t.test(r[0])&&(this._tone=r[0].replace(t,`$2`)),r.length>=2&&n.test(r[1])&&(this._duration=parseInt(r[1].replace(n,`$2`),10))}this._duration||=c.DEFAULT_DURATION,this._tone?this._session.newDTMF({originator:`remote`,dtmf:this,request:e}):s.debug(`invalid INFO DTMF received, discarded`)}},t.exports.C=c})),U=s(((e,t)=>{var n=P().EventEmitter,r=k(),i=A(),a=N();t.exports=class extends n{constructor(e){super(),this._session=e,this._direction=null,this._contentType=null,this._body=null}get contentType(){return this._contentType}get body(){return this._body}send(e,t,n={}){if(this._direction=`outgoing`,e===void 0)throw TypeError(`Not enough arguments`);if(this._session.status!==this._session.C.STATUS_CONFIRMED&&this._session.status!==this._session.C.STATUS_WAITING_FOR_ACK)throw new i.InvalidStateError(this._session.status);this._contentType=e,this._body=t;let o=a.cloneArray(n.extraHeaders);o.push(`Content-Type: ${e}`),this._session.newInfo({originator:`local`,info:this,request:this.request}),this._session.sendRequest(r.INFO,{extraHeaders:o,eventHandlers:{onSuccessResponse:e=>{this.emit(`succeeded`,{originator:`remote`,response:e})},onErrorResponse:e=>{this.emit(`failed`,{originator:`remote`,response:e})},onTransportError:()=>{this._session.onTransportError()},onRequestTimeout:()=>{this._session.onRequestTimeout()},onDialogError:()=>{this._session.onDialogError()}},body:t})}init_incoming(e){this._direction=`incoming`,this.request=e,e.reply(200),this._contentType=e.hasHeader(`Content-Type`)?e.getHeader(`Content-Type`).toLowerCase():void 0,this._body=e.body,this._session.newInfo({originator:`remote`,info:this,request:e})}}})),W=s(((e,t)=>{var n=I(),r=k(),i=new n(`RTCSession:ReferNotifier`),a={event_type:`refer`,body_type:`message/sipfrag;version=2.0`,expires:300};t.exports=class{constructor(e,t,n){this._session=e,this._id=t,this._expires=n||a.expires,this._active=!0,this.notify(100)}notify(e,t){if(i.debug(`notify()`),this._active===!1)return;t=t||r.REASON_PHRASE[e]||``;let n;n=e>=200?`terminated;reason=noresource`:`active;expires=${this._expires}`,this._session.sendRequest(r.NOTIFY,{extraHeaders:[`Event: ${a.event_type};id=${this._id}`,`Subscription-State: ${n}`,`Content-Type: ${a.body_type}`],body:`SIP/2.0 ${e} ${t}`,eventHandlers:{onErrorResponse(){this._active=!1}}})}}})),de=s(((e,t)=>{var n=P().EventEmitter,r=I(),i=k(),a=j(),o=N(),s=new r(`RTCSession:ReferSubscriber`);t.exports=class extends n{constructor(e){super(),this._id=null,this._session=e}get id(){return this._id}sendRefer(e,t={}){s.debug(`sendRefer()`);let n=o.cloneArray(t.extraHeaders),r=o.cloneObject(t.eventHandlers);for(let e in r)Object.prototype.hasOwnProperty.call(r,e)&&this.on(e,r[e]);let a=null;t.replaces&&(a=t.replaces._request.call_id,a+=`;to-tag=${t.replaces._to_tag}`,a+=`;from-tag=${t.replaces._from_tag}`,a=encodeURIComponent(a));let c=`Refer-To: <${e}${a?`?Replaces=${a}`:``}>`;if(n.push(c),!n.some(e=>e.toLowerCase().startsWith(`referred-by:`))){let e=`Referred-By: <${this._session._ua._configuration.uri._scheme}:${this._session._ua._configuration.uri._user}@${this._session._ua._configuration.uri._host}>`;n.push(e)}n.push(`Contact: ${this._session.contact}`);let l=this._session.sendRequest(i.REFER,{extraHeaders:n,eventHandlers:{onSuccessResponse:e=>{this._requestSucceeded(e)},onErrorResponse:e=>{this._requestFailed(e,i.causes.REJECTED)},onTransportError:()=>{this._requestFailed(null,i.causes.CONNECTION_ERROR)},onRequestTimeout:()=>{this._requestFailed(null,i.causes.REQUEST_TIMEOUT)},onDialogError:()=>{this._requestFailed(null,i.causes.DIALOG_ERROR)},onAuthenticated:e=>{this._id=e.cseq,this.emit(`authenticated`)}}});this._id=l.cseq}receiveNotify(e){if(s.debug(`receiveNotify()`),!e.body)return;let t=a.parse(e.body.trim().split(`\r
15
- `,1)[0],`Status_Line`);if(t===-1){s.debug(`receiveNotify() | error parsing NOTIFY body: "${e.body}"`);return}switch(!0){case/^100$/.test(t.status_code):this.emit(`trying`,{request:e,status_line:t});break;case/^1[0-9]{2}$/.test(t.status_code):this.emit(`progress`,{request:e,status_line:t});break;case/^2[0-9]{2}$/.test(t.status_code):this.emit(`accepted`,{request:e,status_line:t});break;default:this.emit(`failed`,{request:e,status_line:t})}}_requestSucceeded(e){s.debug(`REFER succeeded`),s.debug(`emit "requestSucceeded"`),this.emit(`requestSucceeded`,{response:e})}_requestFailed(e,t){s.debug(`REFER failed`),s.debug(`emit "requestFailed"`),this.emit(`requestFailed`,{response:e||null,cause:t})}}})),fe=s(((e,t)=>{var n=P().EventEmitter,r=L(),i=I(),a=k(),o=A(),s=z(),c=N(),l=ce(),u=R(),d=V(),f=B(),p=H(),m=U(),h=W(),g=de(),_=M(),v=new i(`RTCSession`),y={STATUS_NULL:0,STATUS_INVITE_SENT:1,STATUS_1XX_RECEIVED:2,STATUS_INVITE_RECEIVED:3,STATUS_WAITING_FOR_ANSWER:4,STATUS_ANSWERED:5,STATUS_WAITING_FOR_ACK:6,STATUS_CANCELED:7,STATUS_TERMINATED:8,STATUS_CONFIRMED:9},b=[`audio`,`video`];t.exports=class e extends n{static get C(){return y}constructor(e){v.debug(`new`),super(),this._id=null,this._ua=e,this._status=y.STATUS_NULL,this._dialog=null,this._earlyDialogs={},this._contact=null,this._from_tag=null,this._to_tag=null,this._connection=null,this._connectionPromiseQueue=Promise.resolve(),this._request=null,this._is_canceled=!1,this._cancel_reason=``,this._is_confirmed=!1,this._late_sdp=!1,this._rtcOfferConstraints=null,this._rtcAnswerConstraints=null,this._localMediaStream=null,this._localMediaStreamLocallyGenerated=!1,this._rtcReady=!0,this._iceReady=!1,this._timers={ackTimer:null,expiresTimer:null,invite2xxTimer:null,userNoAnswerTimer:null},this._direction=null,this._local_identity=null,this._remote_identity=null,this._start_time=null,this._end_time=null,this._tones=null,this._audioMuted=!1,this._videoMuted=!1,this._localHold=!1,this._remoteHold=!1,this._sessionTimers={enabled:this._ua.configuration.session_timers,refreshMethod:this._ua.configuration.session_timers_refresh_method,defaultExpires:a.SESSION_EXPIRES,currentExpires:null,running:!1,refresher:!1,timer:null},this._referSubscribers={},this._data={}}get C(){return y}get causes(){return a.causes}get id(){return this._id}get connection(){return this._connection}get contact(){return this._contact}get direction(){return this._direction}get local_identity(){return this._local_identity}get remote_identity(){return this._remote_identity}get start_time(){return this._start_time}get end_time(){return this._end_time}get data(){return this._data}set data(e){this._data=e}get status(){return this._status}isInProgress(){switch(this._status){case y.STATUS_NULL:case y.STATUS_INVITE_SENT:case y.STATUS_1XX_RECEIVED:case y.STATUS_INVITE_RECEIVED:case y.STATUS_WAITING_FOR_ANSWER:return!0;default:return!1}}isEstablished(){switch(this._status){case y.STATUS_ANSWERED:case y.STATUS_WAITING_FOR_ACK:case y.STATUS_CONFIRMED:return!0;default:return!1}}isEnded(){switch(this._status){case y.STATUS_CANCELED:case y.STATUS_TERMINATED:return!0;default:return!1}}isMuted(){return{audio:this._audioMuted,video:this._videoMuted}}isOnHold(){return{local:this._localHold,remote:this._remoteHold}}connect(e,t={},n){v.debug(`connect()`);let r=e,i=c.cloneObject(t.eventHandlers),s=c.cloneArray(t.extraHeaders),l=c.cloneObject(t.mediaConstraints,{audio:!0,video:!0}),d=t.mediaStream||null,f=c.cloneObject(t.pcConfig,{iceServers:[]}),p=t.rtcConstraints||null,m=t.rtcOfferConstraints||null;if(this._rtcOfferConstraints=m,this._rtcAnswerConstraints=t.rtcAnswerConstraints||null,this._data=t.data||this._data,e===void 0)throw TypeError(`Not enough arguments`);if(this._status!==y.STATUS_NULL)throw new o.InvalidStateError(this._status);if(!window.RTCPeerConnection)throw new o.NotSupportedError(`WebRTC not supported`);if(e=this._ua.normalizeTarget(e),!e)throw TypeError(`Invalid target: ${r}`);this._sessionTimers.enabled&&c.isDecimal(t.sessionTimersExpires)&&(t.sessionTimersExpires>=a.MIN_SESSION_EXPIRES?this._sessionTimers.defaultExpires=t.sessionTimersExpires:this._sessionTimers.defaultExpires=a.SESSION_EXPIRES);for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&this.on(e,i[e]);this._from_tag=c.newTag();let h=t.anonymous||!1,g={from_tag:this._from_tag};this._contact=this._ua.contact.toString({anonymous:h,outbound:!0}),h?(g.from_display_name=`Anonymous`,g.from_uri=new _(`sip`,`anonymous`,`anonymous.invalid`),s.push(`P-Preferred-Identity: ${this._ua.configuration.uri.toString()}`),s.push(`Privacy: id`)):t.fromUserName&&(g.from_uri=new _(`sip`,t.fromUserName,this._ua.configuration.uri.host),s.push(`P-Preferred-Identity: ${this._ua.configuration.uri.toString()}`)),t.fromDisplayName&&(g.from_display_name=t.fromDisplayName),s.push(`Contact: ${this._contact}`),s.push(`Content-Type: application/sdp`),this._sessionTimers.enabled&&s.push(`Session-Expires: ${this._sessionTimers.defaultExpires}${this._ua.configuration.session_timers_force_refresher?`;refresher=uac`:``}`),this._request=new u.InitialOutgoingInviteRequest(e,this._ua,g,s),this._id=this._request.call_id+this._from_tag,this._createRTCConnection(f,p),this._direction=`outgoing`,this._local_identity=this._request.from,this._remote_identity=this._request.to,n&&n(this),this._newRTCSession(`local`,this._request),this._sendInitialRequest(l,m,d)}init_incoming(e,t){v.debug(`init_incoming()`);let n,r=e.hasHeader(`Content-Type`)?e.getHeader(`Content-Type`).toLowerCase():void 0;if(e.body&&r!==`application/sdp`){e.reply(415);return}if(this._status=y.STATUS_INVITE_RECEIVED,this._from_tag=e.from_tag,this._id=e.call_id+this._from_tag,this._request=e,this._contact=this._ua.contact.toString(),e.hasHeader(`expires`)&&(n=e.getHeader(`expires`)*1e3),e.to_tag=c.newTag(),!this._createDialog(e,`UAS`,!0)){e.reply(500,`Missing Contact header field`);return}this._late_sdp=!e.body,this._status=y.STATUS_WAITING_FOR_ANSWER,this._timers.userNoAnswerTimer=setTimeout(()=>{e.reply(408),this._failed(`local`,null,a.causes.NO_ANSWER)},this._ua.configuration.no_answer_timeout),n&&(this._timers.expiresTimer=setTimeout(()=>{this._status===y.STATUS_WAITING_FOR_ANSWER&&(e.reply(487),this._failed(`system`,null,a.causes.EXPIRES))},n)),this._direction=`incoming`,this._local_identity=e.to,this._remote_identity=e.from,t&&t(this),this._newRTCSession(`remote`,e),this._status!==y.STATUS_TERMINATED&&(e.reply(180,null,[`Contact: ${this._contact}`]),this._progress(`local`,null))}answer(e={}){v.debug(`answer()`);let t=this._request,n=c.cloneArray(e.extraHeaders),r=c.cloneObject(e.mediaConstraints),i=e.mediaStream||null,s=c.cloneObject(e.pcConfig,{iceServers:[]}),l=e.rtcConstraints||null,u=e.rtcAnswerConstraints||null,d=c.cloneObject(e.rtcOfferConstraints),f,p=!1,m=!1,h=!1,g=!1;if(this._rtcAnswerConstraints=u,this._rtcOfferConstraints=e.rtcOfferConstraints||null,this._data=e.data||this._data,this._direction!==`incoming`)throw new o.NotSupportedError(`"answer" not supported for outgoing RTCSession`);if(this._status!==y.STATUS_WAITING_FOR_ANSWER)throw new o.InvalidStateError(this._status);if(this._sessionTimers.enabled&&c.isDecimal(e.sessionTimersExpires)&&(e.sessionTimersExpires>=a.MIN_SESSION_EXPIRES?this._sessionTimers.defaultExpires=e.sessionTimersExpires:this._sessionTimers.defaultExpires=a.SESSION_EXPIRES),this._status=y.STATUS_ANSWERED,!this._createDialog(t,`UAS`)){t.reply(500,`Error creating dialog`);return}clearTimeout(this._timers.userNoAnswerTimer),n.unshift(`Contact: ${this._contact}`);let _=t.parseSDP();Array.isArray(_.media)||(_.media=[_.media]);for(let e of _.media)e.type===`audio`&&(p=!0,(!e.direction||e.direction===`sendrecv`)&&(h=!0)),e.type===`video`&&(m=!0,(!e.direction||e.direction===`sendrecv`)&&(g=!0));if(i&&r.audio===!1){f=i.getAudioTracks();for(let e of f)i.removeTrack(e)}if(i&&r.video===!1){f=i.getVideoTracks();for(let e of f)i.removeTrack(e)}!i&&r.audio===void 0&&(r.audio=h),!i&&r.video===void 0&&(r.video=g),!i&&!p&&!d.offerToReceiveAudio&&(r.audio=!1),!i&&!m&&!d.offerToReceiveVideo&&(r.video=!1),this._createRTCConnection(s,l),Promise.resolve().then(()=>{if(i)return i;if(r.audio||r.video)return this._localMediaStreamLocallyGenerated=!0,navigator.mediaDevices.getUserMedia(r).catch(e=>{throw this._status===y.STATUS_TERMINATED?Error(`terminated`):(t.reply(480),this._failed(`local`,null,a.causes.USER_DENIED_MEDIA_ACCESS),v.warn(`emit "getusermediafailed" [error:%o]`,e),this.emit(`getusermediafailed`,e),Error(`getUserMedia() failed`))})}).then(e=>{if(this._status===y.STATUS_TERMINATED)throw Error(`terminated`);this._localMediaStream=e,e&&e.getTracks().forEach(t=>{this._connection.addTrack(t,e)})}).then(()=>{if(this._late_sdp)return;let e={originator:`remote`,type:`offer`,sdp:t.body};v.debug(`emit "sdp"`),this.emit(`sdp`,e);let n=new RTCSessionDescription({type:`offer`,sdp:e.sdp});return this._connectionPromiseQueue=this._connectionPromiseQueue.then(()=>this._connection.setRemoteDescription(n)).catch(e=>{throw t.reply(488),this._failed(`system`,null,a.causes.WEBRTC_ERROR),v.warn(`emit "peerconnection:setremotedescriptionfailed" [error:%o]`,e),this.emit(`peerconnection:setremotedescriptionfailed`,e),Error(`peerconnection.setRemoteDescription() failed`)}),this._connectionPromiseQueue}).then(()=>{if(this._status===y.STATUS_TERMINATED)throw Error(`terminated`);return this._connecting(t),this._late_sdp?this._createLocalDescription(`offer`,this._rtcOfferConstraints).catch(()=>{throw t.reply(500),Error(`_createLocalDescription() failed`)}):this._createLocalDescription(`answer`,u).catch(()=>{throw t.reply(500),Error(`_createLocalDescription() failed`)})}).then(e=>{if(this._status===y.STATUS_TERMINATED)throw Error(`terminated`);this._handleSessionTimersInIncomingRequest(t,n),t.reply(200,null,n,e,()=>{this._status=y.STATUS_WAITING_FOR_ACK,this._setInvite2xxTimer(t,e),this._setACKTimer(),this._accepted(`local`)},()=>{this._failed(`system`,null,a.causes.CONNECTION_ERROR)})}).catch(e=>{this._status!==y.STATUS_TERMINATED&&(v.warn(`answer() failed: ${e.message}`),this._failed(`system`,e.message,a.causes.INTERNAL_ERROR))})}terminate(e={}){v.debug(`terminate()`);let t=e.cause||a.causes.BYE,n=c.cloneArray(e.extraHeaders),r=e.body,i,l=e.status_code,u=e.reason_phrase;if(this._status===y.STATUS_TERMINATED)throw new o.InvalidStateError(this._status);switch(this._status){case y.STATUS_NULL:case y.STATUS_INVITE_SENT:case y.STATUS_1XX_RECEIVED:if(v.debug(`canceling session`),l&&(l<200||l>=700))throw TypeError(`Invalid status_code: ${l}`);l&&(u=u||a.REASON_PHRASE[l]||``,i=`SIP ;cause=${l} ;text="${u}"`),this._status===y.STATUS_NULL||this._status===y.STATUS_INVITE_SENT?(this._is_canceled=!0,this._cancel_reason=i):this._status===y.STATUS_1XX_RECEIVED&&this._request.cancel(i),this._status=y.STATUS_CANCELED,this._failed(`local`,null,a.causes.CANCELED);break;case y.STATUS_WAITING_FOR_ANSWER:case y.STATUS_ANSWERED:if(v.debug(`rejecting session`),l||=480,l<300||l>=700)throw TypeError(`Invalid status_code: ${l}`);this._request.reply(l,u,n,r),this._failed(`local`,null,a.causes.REJECTED);break;case y.STATUS_WAITING_FOR_ACK:case y.STATUS_CONFIRMED:if(v.debug(`terminating session`),u=e.reason_phrase||a.REASON_PHRASE[l]||``,l&&(l<200||l>=700))throw TypeError(`Invalid status_code: ${l}`);if(l&&n.push(`Reason: SIP ;cause=${l}; text="${u}"`),this._status===y.STATUS_WAITING_FOR_ACK&&this._direction===`incoming`&&this._request.server_transaction.state!==s.C.STATUS_TERMINATED){let e=this._dialog;this.receiveRequest=({method:t})=>{t===a.ACK&&(this.sendRequest(a.BYE,{extraHeaders:n,body:r}),e.terminate())},this._request.server_transaction.on(`stateChanged`,()=>{this._request.server_transaction.state===s.C.STATUS_TERMINATED&&(this.sendRequest(a.BYE,{extraHeaders:n,body:r}),e.terminate())}),this._ended(`local`,null,t),this._dialog=e,this._ua.newDialog(e)}else this.sendRequest(a.BYE,{extraHeaders:n,body:r}),this._ended(`local`,null,t)}}sendDTMF(e,t={}){v.debug(`sendDTMF() | tones: %s`,e);let n=t.duration||null,r=t.interToneGap||null,i=t.transportType||a.DTMF_TRANSPORT.INFO;if(e===void 0)throw TypeError(`Not enough arguments`);if(this._status!==y.STATUS_CONFIRMED&&this._status!==y.STATUS_WAITING_FOR_ACK&&this._status!==y.STATUS_1XX_RECEIVED)throw new o.InvalidStateError(this._status);if(i!==a.DTMF_TRANSPORT.INFO&&i!==a.DTMF_TRANSPORT.RFC2833)throw TypeError(`invalid transportType: ${i}`);if(typeof e==`number`&&(e=e.toString()),!e||typeof e!=`string`||!e.match(/^[0-9A-DR#*,]+$/i))throw TypeError(`Invalid tones: ${e}`);if(n&&!c.isDecimal(n))throw TypeError(`Invalid tone duration: ${n}`);if(n?n<p.C.MIN_DURATION?(v.debug(`"duration" value is lower than the minimum allowed, setting it to ${p.C.MIN_DURATION} milliseconds`),n=p.C.MIN_DURATION):n>p.C.MAX_DURATION?(v.debug(`"duration" value is greater than the maximum allowed, setting it to ${p.C.MAX_DURATION} milliseconds`),n=p.C.MAX_DURATION):n=Math.abs(n):n=p.C.DEFAULT_DURATION,t.duration=n,r&&!c.isDecimal(r))throw TypeError(`Invalid interToneGap: ${r}`);if(r?r<p.C.MIN_INTER_TONE_GAP?(v.debug(`"interToneGap" value is lower than the minimum allowed, setting it to ${p.C.MIN_INTER_TONE_GAP} milliseconds`),r=p.C.MIN_INTER_TONE_GAP):r=Math.abs(r):r=p.C.DEFAULT_INTER_TONE_GAP,i===a.DTMF_TRANSPORT.RFC2833){let t=this._getDTMFRTPSender();t&&(e=t.toneBuffer+e,t.insertDTMF(e,n,r));return}if(this._tones){this._tones+=e;return}this._tones=e,s.call(this);function s(){let e;if(this._status===y.STATUS_TERMINATED||!this._tones){this._tones=null;return}let i=this._tones[0];if(this._tones=this._tones.substring(1),i===`,`)e=2e3;else{let a=new p(this);t.eventHandlers={onFailed:()=>{this._tones=null}},a.send(i,t),e=n+r}setTimeout(s.bind(this),e)}}sendInfo(e,t,n={}){if(v.debug(`sendInfo()`),this._status!==y.STATUS_CONFIRMED&&this._status!==y.STATUS_WAITING_FOR_ACK&&this._status!==y.STATUS_1XX_RECEIVED)throw new o.InvalidStateError(this._status);new m(this).send(e,t,n)}mute(e={audio:!0,video:!1}){v.debug(`mute()`);let t=!1,n=!1;this._audioMuted===!1&&e.audio&&(t=!0,this._audioMuted=!0,this._toggleMuteAudio(!0)),this._videoMuted===!1&&e.video&&(n=!0,this._videoMuted=!0,this._toggleMuteVideo(!0)),(t===!0||n===!0)&&this._onmute({audio:t,video:n})}unmute(e={audio:!0,video:!0}){v.debug(`unmute()`);let t=!1,n=!1;this._audioMuted===!0&&e.audio&&(t=!0,this._audioMuted=!1,this._localHold===!1&&this._toggleMuteAudio(!1)),this._videoMuted===!0&&e.video&&(n=!0,this._videoMuted=!1,this._localHold===!1&&this._toggleMuteVideo(!1)),(t===!0||n===!0)&&this._onunmute({audio:t,video:n})}hold(e={},t){if(v.debug(`hold()`),this._status!==y.STATUS_WAITING_FOR_ACK&&this._status!==y.STATUS_CONFIRMED||this._localHold===!0||!this.isReadyToReOffer())return!1;this._localHold=!0,this._onhold(`local`);let n={succeeded:()=>{t&&t()},failed:()=>{this.terminate({cause:a.causes.WEBRTC_ERROR,status_code:500,reason_phrase:`Hold Failed`})}};return e.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:n,extraHeaders:e.extraHeaders}):this._sendReinvite({eventHandlers:n,extraHeaders:e.extraHeaders}),!0}unhold(e={},t){if(v.debug(`unhold()`),this._status!==y.STATUS_WAITING_FOR_ACK&&this._status!==y.STATUS_CONFIRMED||this._localHold===!1||!this.isReadyToReOffer())return!1;this._localHold=!1,this._onunhold(`local`);let n={succeeded:()=>{t&&t()},failed:()=>{this.terminate({cause:a.causes.WEBRTC_ERROR,status_code:500,reason_phrase:`Unhold Failed`})}};return e.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:n,extraHeaders:e.extraHeaders}):this._sendReinvite({eventHandlers:n,extraHeaders:e.extraHeaders}),!0}renegotiate(e={},t){v.debug(`renegotiate()`);let n=e.rtcOfferConstraints||null;if(this._status!==y.STATUS_WAITING_FOR_ACK&&this._status!==y.STATUS_CONFIRMED||!this.isReadyToReOffer())return!1;let r={succeeded:()=>{t&&t()},failed:()=>{this.terminate({cause:a.causes.WEBRTC_ERROR,status_code:500,reason_phrase:`Media Renegotiation Failed`})}};return this._setLocalMediaStatus(),e.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:r,rtcOfferConstraints:n,extraHeaders:e.extraHeaders}):this._sendReinvite({eventHandlers:r,rtcOfferConstraints:n,extraHeaders:e.extraHeaders}),!0}refer(e,t){v.debug(`refer()`);let n=e;if(this._status!==y.STATUS_WAITING_FOR_ACK&&this._status!==y.STATUS_CONFIRMED)return!1;if(e=this._ua.normalizeTarget(e),!e)throw TypeError(`Invalid target: ${n}`);let r=new g(this);r.sendRefer(e,t);let i=r.id;return this._referSubscribers[i]=r,r.on(`requestFailed`,()=>{delete this._referSubscribers[i]}),r.on(`accepted`,()=>{delete this._referSubscribers[i]}),r.on(`failed`,()=>{delete this._referSubscribers[i]}),r.on(`authenticated`,()=>{delete this._referSubscribers[i],i=r.id,this._referSubscribers[i]=r}),r}sendRequest(e,t){if(v.debug(`sendRequest()`),this._dialog)return this._dialog.sendRequest(e,t);{let n=Object.values(this._earlyDialogs);if(n.length>0)return n[0].sendRequest(e,t);v.warn(`sendRequest() | no valid early dialog found`);return}}receiveRequest(e){if(v.debug(`receiveRequest()`),e.method===a.CANCEL)(this._status===y.STATUS_WAITING_FOR_ANSWER||this._status===y.STATUS_ANSWERED)&&(this._status=y.STATUS_CANCELED,this._request.reply(487),this._failed(`remote`,e,a.causes.CANCELED));else switch(e.method){case a.ACK:if(this._status!==y.STATUS_WAITING_FOR_ACK)return;if(this._status=y.STATUS_CONFIRMED,clearTimeout(this._timers.ackTimer),clearTimeout(this._timers.invite2xxTimer),this._late_sdp){if(!e.body){this.terminate({cause:a.causes.MISSING_SDP,status_code:400});break}let t={originator:`remote`,type:`answer`,sdp:e.body};v.debug(`emit "sdp"`),this.emit(`sdp`,t);let n=new RTCSessionDescription({type:`answer`,sdp:t.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(()=>this._connection.setRemoteDescription(n)).then(()=>{this._is_confirmed||this._confirmed(`remote`,e)}).catch(e=>{this.terminate({cause:a.causes.BAD_MEDIA_DESCRIPTION,status_code:488}),v.warn(`emit "peerconnection:setremotedescriptionfailed" [error:%o]`,e),this.emit(`peerconnection:setremotedescriptionfailed`,e)})}else this._is_confirmed||this._confirmed(`remote`,e);break;case a.BYE:this._status===y.STATUS_CONFIRMED||this._status===y.STATUS_WAITING_FOR_ACK?(e.reply(200),this._ended(`remote`,e,a.causes.BYE)):this._status===y.STATUS_INVITE_RECEIVED||this._status===y.STATUS_WAITING_FOR_ANSWER?(e.reply(200),this._request.reply(487,`BYE Received`),this._ended(`remote`,e,a.causes.BYE)):e.reply(403,`Wrong Status`);break;case a.INVITE:this._status===y.STATUS_CONFIRMED?e.hasHeader(`replaces`)?this._receiveReplaces(e):this._receiveReinvite(e):e.reply(403,`Wrong Status`);break;case a.INFO:if(this._status===y.STATUS_1XX_RECEIVED||this._status===y.STATUS_WAITING_FOR_ANSWER||this._status===y.STATUS_ANSWERED||this._status===y.STATUS_WAITING_FOR_ACK||this._status===y.STATUS_CONFIRMED){let t=e.hasHeader(`Content-Type`)?e.getHeader(`Content-Type`).toLowerCase():void 0;t&&t.match(/^application\/dtmf-relay/i)?new p(this).init_incoming(e):t===void 0?e.reply(415):new m(this).init_incoming(e)}else e.reply(403,`Wrong Status`);break;case a.UPDATE:this._status===y.STATUS_CONFIRMED?this._receiveUpdate(e):e.reply(403,`Wrong Status`);break;case a.REFER:this._status===y.STATUS_CONFIRMED?this._receiveRefer(e):e.reply(403,`Wrong Status`);break;case a.NOTIFY:this._status===y.STATUS_CONFIRMED?this._receiveNotify(e):e.reply(403,`Wrong Status`);break;default:e.reply(501)}}onTransportError(){v.warn(`onTransportError()`),this._status!==y.STATUS_TERMINATED&&this.terminate({status_code:500,reason_phrase:a.causes.CONNECTION_ERROR,cause:a.causes.CONNECTION_ERROR})}onRequestTimeout(){v.warn(`onRequestTimeout()`),this._status!==y.STATUS_TERMINATED&&this.terminate({status_code:408,reason_phrase:a.causes.REQUEST_TIMEOUT,cause:a.causes.REQUEST_TIMEOUT})}onDialogError(){v.warn(`onDialogError()`),this._status!==y.STATUS_TERMINATED&&this.terminate({status_code:500,reason_phrase:a.causes.DIALOG_ERROR,cause:a.causes.DIALOG_ERROR})}newDTMF(e){v.debug(`newDTMF()`),this.emit(`newDTMF`,e)}newInfo(e){v.debug(`newInfo()`),this.emit(`newInfo`,e)}isReadyToReOffer(){return this._rtcReady?this._dialog?this._dialog.uac_pending_reply===!0||this._dialog.uas_pending_reply===!0?(v.debug(`isReadyToReOffer() | there is another INVITE/UPDATE transaction in progress`),!1):!0:(v.debug(`isReadyToReOffer() | session not established yet`),!1):(v.debug(`isReadyToReOffer() | internal WebRTC status not ready`),!1)}_close(){if(v.debug(`close()`),this._localMediaStream&&this._localMediaStreamLocallyGenerated&&(v.debug(`close() | closing local MediaStream`),c.closeMediaStream(this._localMediaStream)),this._status!==y.STATUS_TERMINATED){if(this._status=y.STATUS_TERMINATED,this._connection)try{this._connection.close()}catch(e){v.warn(`close() | error closing the RTCPeerConnection: %o`,e)}for(let e in this._timers)Object.prototype.hasOwnProperty.call(this._timers,e)&&clearTimeout(this._timers[e]);clearTimeout(this._sessionTimers.timer),this._dialog&&(this._dialog.terminate(),delete this._dialog);for(let e in this._earlyDialogs)Object.prototype.hasOwnProperty.call(this._earlyDialogs,e)&&(this._earlyDialogs[e].terminate(),delete this._earlyDialogs[e]);for(let e in this._referSubscribers)Object.prototype.hasOwnProperty.call(this._referSubscribers,e)&&delete this._referSubscribers[e];this._ua.destroyRTCSession(this)}}_setInvite2xxTimer(e,t){let n=l.T1;function r(){this._status===y.STATUS_WAITING_FOR_ACK&&(e.reply(200,null,[`Contact: ${this._contact}`],t),n<l.T2&&(n*=2,n>l.T2&&(n=l.T2)),this._timers.invite2xxTimer=setTimeout(r.bind(this),n))}this._timers.invite2xxTimer=setTimeout(r.bind(this),n)}_setACKTimer(){this._timers.ackTimer=setTimeout(()=>{this._status===y.STATUS_WAITING_FOR_ACK&&(v.debug(`no ACK received, terminating the session`),clearTimeout(this._timers.invite2xxTimer),this.sendRequest(a.BYE),this._ended(`remote`,null,a.causes.NO_ACK))},l.TIMER_H)}_createRTCConnection(e,t){this._connection=new RTCPeerConnection(e,t),this._connection.addEventListener(`iceconnectionstatechange`,()=>{this._connection.iceConnectionState===`failed`&&this.terminate({cause:a.causes.RTP_TIMEOUT,status_code:408,reason_phrase:a.causes.RTP_TIMEOUT})}),v.debug(`emit "peerconnection"`),this.emit(`peerconnection`,{peerconnection:this._connection})}_createLocalDescription(e,t){if(v.debug(`createLocalDescription()`),e!==`offer`&&e!==`answer`)throw Error(`createLocalDescription() | invalid type "${e}"`);let n=this._connection;return this._rtcReady=!1,Promise.resolve().then(()=>e===`offer`?n.createOffer(t).catch(e=>(v.warn(`emit "peerconnection:createofferfailed" [error:%o]`,e),this.emit(`peerconnection:createofferfailed`,e),Promise.reject(e))):n.createAnswer(t).catch(e=>(v.warn(`emit "peerconnection:createanswerfailed" [error:%o]`,e),this.emit(`peerconnection:createanswerfailed`,e),Promise.reject(e)))).then(e=>n.setLocalDescription(e).catch(e=>(this._rtcReady=!0,v.warn(`emit "peerconnection:setlocaldescriptionfailed" [error:%o]`,e),this.emit(`peerconnection:setlocaldescriptionfailed`,e),Promise.reject(e)))).then(()=>{let r=t&&t.iceRestart;if(n.iceGatheringState===`complete`&&!r||n.iceGatheringState===`gathering`&&this._iceReady){this._rtcReady=!0;let t={originator:`local`,type:e,sdp:n.localDescription.sdp};return v.debug(`emit "sdp"`),this.emit(`sdp`,t),Promise.resolve(t.sdp)}return new Promise(t=>{let r=!1,i,a;this._iceReady=!1;let o=()=>{if(r)return;n.removeEventListener(`icecandidate`,i),n.removeEventListener(`icegatheringstatechange`,a),r=!0,this._rtcReady=!0,this._iceReady=!0;let o={originator:`local`,type:e,sdp:n.localDescription.sdp};v.debug(`emit "sdp"`),this.emit(`sdp`,o),t(o.sdp)};n.addEventListener(`icecandidate`,i=e=>{let t=e.candidate;t?this.emit(`icecandidate`,{candidate:t,ready:o}):o()}),n.addEventListener(`icegatheringstatechange`,a=()=>{n.iceGatheringState===`complete`&&o()})})})}_createDialog(e,t,n){let r=t===`UAS`?e.to_tag:e.from_tag,i=t===`UAS`?e.from_tag:e.to_tag,o=e.call_id+r+i,s=this._earlyDialogs[o];if(n)return s?!0:(s=new d(this,e,t,d.C.STATUS_EARLY),s.error?(v.debug(s.error),this._failed(`remote`,e,a.causes.INTERNAL_ERROR),!1):(this._earlyDialogs[o]=s,!0));{if(this._from_tag=e.from_tag,this._to_tag=e.to_tag,s)return s.update(e,t),this._dialog=s,delete this._earlyDialogs[o],!0;let n=new d(this,e,t);return n.error?(v.debug(n.error),this._failed(`remote`,e,a.causes.INTERNAL_ERROR),!1):(this._dialog=n,!0)}}_receiveReinvite(e){v.debug(`receiveReinvite()`);let t=e.hasHeader(`Content-Type`)?e.getHeader(`Content-Type`).toLowerCase():void 0,n={request:e,callback:void 0,reject:i.bind(this)},r=!1;function i(t={}){r=!0;let n=t.status_code||403,i=t.reason_phrase||``,a=c.cloneArray(t.extraHeaders);if(this._status!==y.STATUS_CONFIRMED)return!1;if(n<300||n>=700)throw TypeError(`Invalid status_code: ${n}`);e.reply(n,i,a)}if(this.emit(`reinvite`,n),r)return;if(this._late_sdp=!1,!e.body){this._late_sdp=!0,this._remoteHold&&(this._remoteHold=!1,this._onunhold(`remote`)),this._connectionPromiseQueue=this._connectionPromiseQueue.then(()=>this._createLocalDescription(`offer`,this._rtcOfferConstraints)).then(e=>{a.call(this,e)}).catch(()=>{e.reply(500)});return}if(t!==`application/sdp`){v.debug(`invalid Content-Type`),e.reply(415);return}this._processInDialogSdpOffer(e).then(e=>{this._status!==y.STATUS_TERMINATED&&a.call(this,e)}).catch(e=>{v.warn(e)});function a(t){let r=[`Contact: ${this._contact}`];this._handleSessionTimersInIncomingRequest(e,r),this._late_sdp&&(t=this._mangleOffer(t)),e.reply(200,null,r,t,()=>{this._status=y.STATUS_WAITING_FOR_ACK,this._setInvite2xxTimer(e,t),this._setACKTimer()}),typeof n.callback==`function`&&n.callback()}}_receiveUpdate(e){v.debug(`receiveUpdate()`);let t=e.hasHeader(`Content-Type`)?e.getHeader(`Content-Type`).toLowerCase():void 0,n={request:e,callback:void 0,reject:i.bind(this)},r=!1;function i(t={}){r=!0;let n=t.status_code||403,i=t.reason_phrase||``,a=c.cloneArray(t.extraHeaders);if(this._status!==y.STATUS_CONFIRMED)return!1;if(n<300||n>=700)throw TypeError(`Invalid status_code: ${n}`);e.reply(n,i,a)}if(this.emit(`update`,n),r)return;if(!e.body){a.call(this,null);return}if(t!==`application/sdp`){v.debug(`invalid Content-Type`),e.reply(415);return}this._processInDialogSdpOffer(e).then(e=>{this._status!==y.STATUS_TERMINATED&&a.call(this,e)}).catch(e=>{v.warn(e)});function a(t){let r=[`Contact: ${this._contact}`];this._handleSessionTimersInIncomingRequest(e,r),e.reply(200,null,r,t),typeof n.callback==`function`&&n.callback()}}_processInDialogSdpOffer(e){v.debug(`_processInDialogSdpOffer()`);let t=e.parseSDP(),n=!1;for(let e of t.media){if(b.indexOf(e.type)===-1)continue;let r=e.direction||t.direction||`sendrecv`;if(r===`sendonly`||r===`inactive`)n=!0;else{n=!1;break}}let r={originator:`remote`,type:`offer`,sdp:e.body};v.debug(`emit "sdp"`),this.emit(`sdp`,r);let i=new RTCSessionDescription({type:`offer`,sdp:r.sdp});return this._connectionPromiseQueue=this._connectionPromiseQueue.then(()=>{if(this._status===y.STATUS_TERMINATED)throw Error(`terminated`);return this._connection.setRemoteDescription(i).catch(t=>{throw e.reply(488),v.warn(`emit "peerconnection:setremotedescriptionfailed" [error:%o]`,t),this.emit(`peerconnection:setremotedescriptionfailed`,t),t})}).then(()=>{if(this._status===y.STATUS_TERMINATED)throw Error(`terminated`);this._remoteHold===!0&&n===!1?(this._remoteHold=!1,this._onunhold(`remote`)):this._remoteHold===!1&&n===!0&&(this._remoteHold=!0,this._onhold(`remote`))}).then(()=>{if(this._status===y.STATUS_TERMINATED)throw Error(`terminated`);return this._createLocalDescription(`answer`,this._rtcAnswerConstraints).catch(t=>{throw e.reply(500),v.warn(`emit "peerconnection:createtelocaldescriptionfailed" [error:%o]`,t),t})}).catch(e=>{v.warn(`_processInDialogSdpOffer() failed [error: %o]`,e)}),this._connectionPromiseQueue}_receiveRefer(t){if(v.debug(`receiveRefer()`),!t.refer_to){v.debug(`no Refer-To header field present in REFER`),t.reply(400);return}if(t.refer_to.uri.scheme!==a.SIP){v.debug(`Refer-To header field points to a non-SIP URI scheme`),t.reply(416);return}t.reply(202);let n=new h(this,t.cseq);v.debug(`emit "refer"`),this.emit(`refer`,{request:t,accept:(e,t)=>{r.call(this,e,t)},reject:()=>{i.call(this)}});function r(r,i={}){if(r=typeof r==`function`?r:null,this._status!==y.STATUS_WAITING_FOR_ACK&&this._status!==y.STATUS_CONFIRMED)return!1;let a=new e(this._ua);if(a.on(`progress`,({response:e})=>{n.notify(e.status_code,e.reason_phrase)}),a.on(`accepted`,({response:e})=>{n.notify(e.status_code,e.reason_phrase)}),a.on(`_failed`,({message:e,cause:t})=>{e?n.notify(e.status_code,e.reason_phrase):n.notify(487,t)}),t.refer_to.uri.hasHeader(`replaces`)){let e=decodeURIComponent(t.refer_to.uri.getHeader(`replaces`));i.extraHeaders=c.cloneArray(i.extraHeaders),i.extraHeaders.push(`Replaces: ${e}`)}let o=t.refer_to.uri.clone();o.clearHeaders(),a.connect(o,i,r)}function i(){n.notify(603)}}_receiveNotify(e){switch(v.debug(`receiveNotify()`),e.event||e.reply(400),e.event.event){case`refer`:{let t,n;if(e.event.params&&e.event.params.id)t=e.event.params.id,n=this._referSubscribers[t];else if(Object.keys(this._referSubscribers).length===1)n=this._referSubscribers[Object.keys(this._referSubscribers)[0]];else{e.reply(400,`Missing event id parameter`);return}if(!n){e.reply(481,`Subscription does not exist`);return}n.receiveNotify(e),e.reply(200);break}default:e.reply(489)}}_receiveReplaces(t){v.debug(`receiveReplaces()`);function n(n){if(this._status!==y.STATUS_WAITING_FOR_ACK&&this._status!==y.STATUS_CONFIRMED)return!1;let r=new e(this._ua);r.on(`confirmed`,()=>{this.terminate()}),r.init_incoming(t,n)}function r(){v.debug(`Replaced INVITE rejected by the user`),t.reply(486)}this.emit(`replaces`,{request:t,accept:e=>{n.call(this,e)},reject:()=>{r.call(this)}})}_sendInitialRequest(e,t,n){let r=new f(this._ua,this._request,{onRequestTimeout:()=>{this.onRequestTimeout()},onTransportError:()=>{this.onTransportError()},onAuthenticated:e=>{this._request=e},onReceiveResponse:e=>{this._receiveInviteResponse(e)}});Promise.resolve().then(()=>{if(n)return n;if(e.audio||e.video)return this._localMediaStreamLocallyGenerated=!0,navigator.mediaDevices.getUserMedia(e).catch(e=>{throw this._status===y.STATUS_TERMINATED?Error(`terminated`):(this._failed(`local`,null,a.causes.USER_DENIED_MEDIA_ACCESS),v.warn(`emit "getusermediafailed" [error:%o]`,e),this.emit(`getusermediafailed`,e),e)})}).then(e=>{if(this._status===y.STATUS_TERMINATED)throw Error(`terminated`);return this._localMediaStream=e,e&&e.getTracks().forEach(t=>{this._connection.addTrack(t,e)}),this._connecting(this._request),this._createLocalDescription(`offer`,t).catch(e=>{throw this._failed(`local`,null,a.causes.WEBRTC_ERROR),e})}).then(e=>{if(this._is_canceled||this._status===y.STATUS_TERMINATED)throw Error(`terminated`);this._request.body=e,this._status=y.STATUS_INVITE_SENT,v.debug(`emit "sending" [request:%o]`,this._request),this.emit(`sending`,{request:this._request}),r.send()}).catch(e=>{this._status!==y.STATUS_TERMINATED&&v.warn(e)})}_getDTMFRTPSender(){let e=this._connection.getSenders().find(e=>e.track&&e.track.kind===`audio`);if(!(e&&e.dtmf)){v.warn(`sendDTMF() | no local audio track to send DTMF with`);return}return e.dtmf}_receiveInviteResponse(e){if(v.debug(`receiveInviteResponse()`),this._dialog&&e.status_code>=200&&e.status_code<=299){if(this._dialog.id.call_id===e.call_id&&this._dialog.id.local_tag===e.from_tag&&this._dialog.id.remote_tag===e.to_tag){this.sendRequest(a.ACK);return}{let t=new d(this,e,`UAC`);if(t.error!==void 0){v.debug(t.error);return}this.sendRequest(a.ACK),this.sendRequest(a.BYE);return}}if(this._is_canceled){e.status_code>=100&&e.status_code<200?this._request.cancel(this._cancel_reason):e.status_code>=200&&e.status_code<299&&this._acceptAndTerminate(e);return}if(this._status===y.STATUS_INVITE_SENT||this._status===y.STATUS_1XX_RECEIVED)switch(!0){case/^100$/.test(e.status_code):this._status=y.STATUS_1XX_RECEIVED;break;case/^1[0-9]{2}$/.test(e.status_code):{if(!e.to_tag){v.debug(`1xx response received without to tag`);break}if(e.hasHeader(`contact`)&&!this._createDialog(e,`UAC`,!0))break;if(this._status=y.STATUS_1XX_RECEIVED,!e.body){this._progress(`remote`,e);break}let t={originator:`remote`,type:`answer`,sdp:e.body};v.debug(`emit "sdp"`),this.emit(`sdp`,t);let n=new RTCSessionDescription({type:`answer`,sdp:t.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(()=>this._connection.setRemoteDescription(n)).then(()=>this._progress(`remote`,e)).catch(e=>{v.warn(`emit "peerconnection:setremotedescriptionfailed" [error:%o]`,e),this.emit(`peerconnection:setremotedescriptionfailed`,e)});break}case/^2[0-9]{2}$/.test(e.status_code):{if(this._status=y.STATUS_CONFIRMED,!e.body){this._acceptAndTerminate(e,400,a.causes.MISSING_SDP),this._failed(`remote`,e,a.causes.BAD_MEDIA_DESCRIPTION);break}if(!this._createDialog(e,`UAC`))break;let t={originator:`remote`,type:`answer`,sdp:e.body};v.debug(`emit "sdp"`),this.emit(`sdp`,t);let n=new RTCSessionDescription({type:`answer`,sdp:t.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(()=>{if(this._connection.signalingState===`stable`)return this._connection.createOffer(this._rtcOfferConstraints).then(e=>this._connection.setLocalDescription(e)).catch(t=>{this._acceptAndTerminate(e,500,t.toString()),this._failed(`local`,e,a.causes.WEBRTC_ERROR)})}).then(()=>{this._connection.setRemoteDescription(n).then(()=>{this._handleSessionTimersInIncomingResponse(e),this._accepted(`remote`,e),this.sendRequest(a.ACK),this._confirmed(`local`,null)}).catch(t=>{this._acceptAndTerminate(e,488,`Not Acceptable Here`),this._failed(`remote`,e,a.causes.BAD_MEDIA_DESCRIPTION),v.warn(`emit "peerconnection:setremotedescriptionfailed" [error:%o]`,t),this.emit(`peerconnection:setremotedescriptionfailed`,t)})});break}default:{let t=c.sipErrorCause(e.status_code);this._failed(`remote`,e,t)}}}_sendReinvite(e={}){v.debug(`sendReinvite()`);let t=c.cloneArray(e.extraHeaders),n=c.cloneObject(e.eventHandlers),r=e.rtcOfferConstraints||this._rtcOfferConstraints||null,i=!1;t.push(`Contact: ${this._contact}`),t.push(`Content-Type: application/sdp`),this._sessionTimers.running&&t.push(`Session-Expires: ${this._sessionTimers.currentExpires};refresher=${this._sessionTimers.refresher?`uac`:`uas`}`),this._connectionPromiseQueue=this._connectionPromiseQueue.then(()=>this._createLocalDescription(`offer`,r)).then(e=>{e=this._mangleOffer(e);let n={originator:`local`,type:`offer`,sdp:e};v.debug(`emit "sdp"`),this.emit(`sdp`,n),this.sendRequest(a.INVITE,{extraHeaders:t,body:e,eventHandlers:{onSuccessResponse:e=>{o.call(this,e),i=!0},onErrorResponse:e=>{s.call(this,e)},onTransportError:()=>{this.onTransportError()},onRequestTimeout:()=>{this.onRequestTimeout()},onDialogError:()=>{this.onDialogError()}}})}).catch(()=>{s()});function o(e){if(this._status===y.STATUS_TERMINATED||(this.sendRequest(a.ACK),i))return;if(this._handleSessionTimersInIncomingResponse(e),!e.body){s.call(this);return}if(!e.hasHeader(`Content-Type`)||e.getHeader(`Content-Type`).toLowerCase()!==`application/sdp`){s.call(this);return}let t={originator:`remote`,type:`answer`,sdp:e.body};v.debug(`emit "sdp"`),this.emit(`sdp`,t);let r=new RTCSessionDescription({type:`answer`,sdp:t.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(()=>this._connection.setRemoteDescription(r)).then(()=>{n.succeeded&&n.succeeded(e)}).catch(e=>{s.call(this),v.warn(`emit "peerconnection:setremotedescriptionfailed" [error:%o]`,e),this.emit(`peerconnection:setremotedescriptionfailed`,e)})}function s(e){n.failed&&n.failed(e)}}_sendUpdate(e={}){v.debug(`sendUpdate()`);let t=c.cloneArray(e.extraHeaders),n=c.cloneObject(e.eventHandlers),r=e.rtcOfferConstraints||this._rtcOfferConstraints||null,i=e.sdpOffer||!1,o=!1;t.push(`Contact: ${this._contact}`),this._sessionTimers.running&&t.push(`Session-Expires: ${this._sessionTimers.currentExpires};refresher=${this._sessionTimers.refresher?`uac`:`uas`}`),i?(t.push(`Content-Type: application/sdp`),this._connectionPromiseQueue=this._connectionPromiseQueue.then(()=>this._createLocalDescription(`offer`,r)).then(e=>{e=this._mangleOffer(e);let n={originator:`local`,type:`offer`,sdp:e};v.debug(`emit "sdp"`),this.emit(`sdp`,n),this.sendRequest(a.UPDATE,{extraHeaders:t,body:e,eventHandlers:{onSuccessResponse:e=>{s.call(this,e),o=!0},onErrorResponse:e=>{l.call(this,e)},onTransportError:()=>{this.onTransportError()},onRequestTimeout:()=>{this.onRequestTimeout()},onDialogError:()=>{this.onDialogError()}}})}).catch(()=>{l.call(this)})):this.sendRequest(a.UPDATE,{extraHeaders:t,eventHandlers:{onSuccessResponse:e=>{s.call(this,e)},onErrorResponse:e=>{l.call(this,e)},onTransportError:()=>{this.onTransportError()},onRequestTimeout:()=>{this.onRequestTimeout()},onDialogError:()=>{this.onDialogError()}}});function s(e){if(this._status!==y.STATUS_TERMINATED&&!o){if(this._handleSessionTimersInIncomingResponse(e),i){if(!e.body){l.call(this);return}if(!e.hasHeader(`Content-Type`)||e.getHeader(`Content-Type`).toLowerCase()!==`application/sdp`){l.call(this);return}let t={originator:`remote`,type:`answer`,sdp:e.body};v.debug(`emit "sdp"`),this.emit(`sdp`,t);let r=new RTCSessionDescription({type:`answer`,sdp:t.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(()=>this._connection.setRemoteDescription(r)).then(()=>{n.succeeded&&n.succeeded(e)}).catch(e=>{l.call(this),v.warn(`emit "peerconnection:setremotedescriptionfailed" [error:%o]`,e),this.emit(`peerconnection:setremotedescriptionfailed`,e)})}else n.succeeded&&n.succeeded(e)}}function l(e){n.failed&&n.failed(e)}}_acceptAndTerminate(e,t,n){v.debug(`acceptAndTerminate()`);let r=[];t&&(n=n||a.REASON_PHRASE[t]||``,r.push(`Reason: SIP ;cause=${t}; text="${n}"`)),(this._dialog||this._createDialog(e,`UAC`))&&(this.sendRequest(a.ACK),this.sendRequest(a.BYE,{extraHeaders:r})),this._status=y.STATUS_TERMINATED}_mangleOffer(e){if(!this._localHold&&!this._remoteHold)return e;if(e=r.parse(e),this._localHold&&!this._remoteHold){v.debug(`mangleOffer() | me on hold, mangling offer`);for(let t of e.media)b.indexOf(t.type)!==-1&&(t.direction?t.direction===`sendrecv`?t.direction=`sendonly`:t.direction===`recvonly`&&(t.direction=`inactive`):t.direction=`sendonly`)}else if(this._localHold&&this._remoteHold){v.debug(`mangleOffer() | both on hold, mangling offer`);for(let t of e.media)b.indexOf(t.type)!==-1&&(t.direction=`inactive`)}else if(this._remoteHold){v.debug(`mangleOffer() | remote on hold, mangling offer`);for(let t of e.media)b.indexOf(t.type)!==-1&&(t.direction?t.direction===`sendrecv`?t.direction=`recvonly`:t.direction===`recvonly`&&(t.direction=`inactive`):t.direction=`recvonly`)}return r.write(e)}_setLocalMediaStatus(){let e=!0,t=!0;(this._localHold||this._remoteHold)&&(e=!1,t=!1),this._audioMuted&&(e=!1),this._videoMuted&&(t=!1),this._toggleMuteAudio(!e),this._toggleMuteVideo(!t)}_handleSessionTimersInIncomingRequest(e,t){if(!this._sessionTimers.enabled)return;let n;e.session_expires&&e.session_expires>=a.MIN_SESSION_EXPIRES?(this._sessionTimers.currentExpires=e.session_expires,n=e.session_expires_refresher||`uas`):(this._sessionTimers.currentExpires=this._sessionTimers.defaultExpires,n=`uas`),t.push(`Session-Expires: ${this._sessionTimers.currentExpires};refresher=${n}`),this._sessionTimers.refresher=n===`uas`,this._runSessionTimer()}_handleSessionTimersInIncomingResponse(e){if(!this._sessionTimers.enabled)return;let t;e.session_expires&&e.session_expires>=a.MIN_SESSION_EXPIRES?(this._sessionTimers.currentExpires=e.session_expires,t=e.session_expires_refresher||`uac`):(this._sessionTimers.currentExpires=this._sessionTimers.defaultExpires,t=`uac`),this._sessionTimers.refresher=t===`uac`,this._runSessionTimer()}_runSessionTimer(){let e=this._sessionTimers.currentExpires;this._sessionTimers.running=!0,clearTimeout(this._sessionTimers.timer),this._sessionTimers.refresher?this._sessionTimers.timer=setTimeout(()=>{this._status!==y.STATUS_TERMINATED&&this.isReadyToReOffer()&&(v.debug(`runSessionTimer() | sending session refresh request`),this._sessionTimers.refreshMethod===a.UPDATE?this._sendUpdate():this._sendReinvite())},e*500):this._sessionTimers.timer=setTimeout(()=>{this._status!==y.STATUS_TERMINATED&&(v.warn(`runSessionTimer() | timer expired, terminating the session`),this.terminate({cause:a.causes.REQUEST_TIMEOUT,status_code:408,reason_phrase:`Session Timer Expired`}))},e*1100)}_toggleMuteAudio(e){let t=this._connection.getSenders().filter(e=>e.track&&e.track.kind===`audio`);for(let n of t)n.track.enabled=!e}_toggleMuteVideo(e){let t=this._connection.getSenders().filter(e=>e.track&&e.track.kind===`video`);for(let n of t)n.track.enabled=!e}_newRTCSession(e,t){v.debug(`newRTCSession()`),this._ua.newRTCSession(this,{originator:e,session:this,request:t})}_connecting(e){v.debug(`session connecting`),v.debug(`emit "connecting"`),this.emit(`connecting`,{request:e})}_progress(e,t){v.debug(`session progress`),v.debug(`emit "progress"`),this.emit(`progress`,{originator:e,response:t||null})}_accepted(e,t){v.debug(`session accepted`),this._start_time=new Date,v.debug(`emit "accepted"`),this.emit(`accepted`,{originator:e,response:t||null})}_confirmed(e,t){v.debug(`session confirmed`),this._is_confirmed=!0,v.debug(`emit "confirmed"`),this.emit(`confirmed`,{originator:e,ack:t||null})}_ended(e,t,n){v.debug(`session ended`),this._end_time=new Date,this._close(),v.debug(`emit "ended"`),this.emit(`ended`,{originator:e,message:t||null,cause:n})}_failed(e,t,n){v.debug(`session failed`),v.debug(`emit "_failed"`),this.emit(`_failed`,{originator:e,message:t||null,cause:n}),this._close(),v.debug(`emit "failed"`),this.emit(`failed`,{originator:e,message:t||null,cause:n})}_onhold(e){v.debug(`session onhold`),this._setLocalMediaStatus(),v.debug(`emit "hold"`),this.emit(`hold`,{originator:e})}_onunhold(e){v.debug(`session onunhold`),this._setLocalMediaStatus(),v.debug(`emit "unhold"`),this.emit(`unhold`,{originator:e})}_onmute({audio:e,video:t}){v.debug(`session onmute`),this._setLocalMediaStatus(),v.debug(`emit "muted"`),this.emit(`muted`,{audio:e,video:t})}_onunmute({audio:e,video:t}){v.debug(`session onunmute`),this._setLocalMediaStatus(),v.debug(`emit "unmuted"`),this.emit(`unmuted`,{audio:e,video:t})}}})),pe=s(((e,t)=>{var n=P().EventEmitter,r=A(),i=I(),a=k(),o=N(),s=j(),c=R(),l=B(),u=V(),d=new i(`Subscriber`),f={SUBSCRIBE_RESPONSE_TIMEOUT:0,SUBSCRIBE_TRANSPORT_ERROR:1,SUBSCRIBE_NON_OK_RESPONSE:2,SUBSCRIBE_WRONG_OK_RESPONSE:3,SUBSCRIBE_AUTHENTICATION_FAILED:4,UNSUBSCRIBE_TIMEOUT:5,FINAL_NOTIFY_RECEIVED:6,WRONG_NOTIFY_RECEIVED:7,STATE_PENDING:0,STATE_ACTIVE:1,STATE_TERMINATED:2,STATE_INIT:3,STATE_WAITING_NOTIFY:4,DEFAULT_EXPIRES_SEC:900};t.exports=class extends n{static get C(){return f}constructor(e,t,n,r,{expires:i,contentType:a,allowEvents:c,params:l,extraHeaders:u}){if(d.debug(`new`),super(),!t)throw TypeError(`Not enough arguments: Missing target`);if(!n)throw TypeError(`Not enough arguments: Missing eventName`);if(!r)throw TypeError(`Not enough arguments: Missing accept`);let p=s.parse(n,`Event`);if(p===-1)throw TypeError(`Missing Event header field`);this._ua=e,this._target=t,(!o.isDecimal(i)||i<=0)&&(i=f.DEFAULT_EXPIRES_SEC),this._expires=i,this._content_type=a,this._params=o.cloneObject(l),this._params.from_uri||(this._params.from_uri=this._ua.configuration.uri),this._params.from_tag=o.newTag(),this._params.to_tag=null,this._params.call_id=o.createRandomToken(20),this._params.cseq===void 0&&(this._params.cseq=Math.floor(Math.random()*1e4+1)),this._state=f.STATE_INIT,this._dialog=null,this._expires_timer=null,this._expires_timestamp=null,this._terminated=!1,this._event_name=p.event,this._event_id=p.params&&p.params.id;let m=this._event_name;if(this._event_id&&(m+=`;id=${this._event_id}`),this._headers=o.cloneArray(u),this._headers=this._headers.concat([`Event: ${m}`,`Expires: ${this._expires}`,`Accept: ${r}`]),!this._headers.find(e=>e.startsWith(`Contact`))){let e=`Contact: ${this._ua._contact.toString()}`;this._headers.push(e)}c&&this._headers.push(`Allow-Events: ${c}`),this._queue=[],this._data={}}get C(){return f}get state(){return this._state}get id(){return this._dialog?this._dialog.id:null}get data(){return this._data}set data(e){this._data=e}onRequestTimeout(){this._terminateDialog(f.SUBSCRIBE_RESPONSE_TIMEOUT)}onTransportError(){this._terminateDialog(f.SUBSCRIBE_TRANSPORT_ERROR)}receiveRequest(e){if(e.method!==a.NOTIFY){d.warn(`received non-NOTIFY request`),e.reply(405);return}let t=e.parseHeader(`Event`);if(!t){d.warn(`missing Event header`),e.reply(400),this._terminateDialog(f.WRONG_NOTIFY_RECEIVED);return}let n=t.event,r=t.params&&t.params.id;if(n!==this._event_name||r!==this._event_id){d.warn(`Event header does not match the one in SUBSCRIBE request`),e.reply(489),this._terminateDialog(f.WRONG_NOTIFY_RECEIVED);return}let i=e.parseHeader(`subscription-state`);if(!i){d.warn(`missing Subscription-State header`),e.reply(400),this._terminateDialog(f.WRONG_NOTIFY_RECEIVED);return}let o=this._parseSubscriptionState(i.state);if(o===void 0){d.warn(`Invalid Subscription-State header value: ${i.state}`),e.reply(400),this._terminateDialog(f.WRONG_NOTIFY_RECEIVED);return}e.reply(200);let s=this._state;if(s!==f.STATE_TERMINATED&&o!==f.STATE_TERMINATED&&(this._state=o,i.expires!==void 0)){let e=i.expires,t=new Date().getTime()+e*1e3;this._expires_timestamp-t>2e3&&(d.debug(`update sending re-SUBSCRIBE time`),this._scheduleSubscribe(e))}s!==f.STATE_PENDING&&o===f.STATE_PENDING?(d.debug(`emit "pending"`),this.emit(`pending`)):s!==f.STATE_ACTIVE&&o===f.STATE_ACTIVE&&(d.debug(`emit "active"`),this.emit(`active`));let c=e.body,l=o===f.STATE_TERMINATED;if(c){let t=e.getHeader(`content-type`);d.debug(`emit "notify"`),this.emit(`notify`,l,e,c,t)}if(l){let e=i.reason,t;i.params&&i.params[`retry-after`]!==void 0&&(t=parseInt(i.params[`retry-after`])),this._terminateDialog(f.FINAL_NOTIFY_RECEIVED,e,t)}}subscribe(e=null){d.debug(`subscribe()`),this._state===f.STATE_INIT?this._sendInitialSubscribe(e,this._headers):this._sendSubsequentSubscribe(e,this._headers)}terminate(e=null){if(d.debug(`terminate()`),this._state===f.STATE_INIT)throw new r.InvalidStateError(this._state);if(this._terminated)return;this._terminated=!0;let t=this._headers.map(e=>e.startsWith(`Expires`)?`Expires: 0`:e);this._sendSubsequentSubscribe(e,t)}_terminateDialog(e,t=void 0,n=void 0){this._state!==f.STATE_TERMINATED&&(this._state=f.STATE_TERMINATED,clearTimeout(this._expires_timer),this._dialog&&=(this._dialog.terminate(),null),d.debug(`emit "terminated" code=${e}`),this.emit(`terminated`,e,t,n))}_sendInitialSubscribe(e,t){if(e){if(!this._content_type)throw TypeError(`content_type is undefined`);t=o.cloneArray(t),t.push(`Content-Type: ${this._content_type}`)}this._state=f.STATE_WAITING_NOTIFY;let n=new c.OutgoingRequest(a.SUBSCRIBE,this._ua.normalizeTarget(this._target),this._ua,this._params,t,e);new l(this._ua,n,{onRequestTimeout:()=>{this.onRequestTimeout()},onTransportError:()=>{this.onTransportError()},onReceiveResponse:e=>{this._receiveSubscribeResponse(e)}}).send()}_sendSubsequentSubscribe(e,t){if(this._state!==f.STATE_TERMINATED){if(!this._dialog){d.debug(`enqueue subscribe`),this._queue.push({body:e,headers:o.cloneArray(t)});return}if(e){if(!this._content_type)throw TypeError(`content_type is undefined`);t=o.cloneArray(t),t.push(`Content-Type: ${this._content_type}`)}this._dialog.sendRequest(a.SUBSCRIBE,{body:e,extraHeaders:t,eventHandlers:{onRequestTimeout:()=>{this.onRequestTimeout()},onTransportError:()=>{this.onTransportError()},onSuccessResponse:e=>{this._receiveSubscribeResponse(e)},onErrorResponse:e=>{this._receiveSubscribeResponse(e)},onDialogError:e=>{this._receiveSubscribeResponse(e)}}})}}_receiveSubscribeResponse(e){if(this._state!==f.STATE_TERMINATED){if(e.status_code>=200&&e.status_code<300){if(this._dialog===null){let t=new u(this,e,`UAC`);if(t.error){d.warn(t.error),this._terminateDialog(f.SUBSCRIBE_WRONG_OK_RESPONSE);return}this._dialog=t,d.debug(`emit "accepted"`),this.emit(`accepted`);for(let e of this._queue)d.debug(`dequeue subscribe`),this._sendSubsequentSubscribe(e.body,e.headers)}let t=e.getHeader(`expires`),n=parseInt(t);(!o.isDecimal(n)||n<=0)&&(d.warn(`response without Expires header, setting a default value of ${f.DEFAULT_EXPIRES_SEC}`),n=f.DEFAULT_EXPIRES_SEC),n>0&&this._scheduleSubscribe(n)}else e.status_code===401||e.status_code===407?this._terminateDialog(f.SUBSCRIBE_AUTHENTICATION_FAILED):e.status_code>=300&&this._terminateDialog(f.SUBSCRIBE_NON_OK_RESPONSE)}}_scheduleSubscribe(e){let t=e>=140?e*1e3/2+Math.floor((e/2-70)*1e3*Math.random()):e*1e3-5e3;this._expires_timestamp=new Date().getTime()+e*1e3,d.debug(`next SUBSCRIBE will be sent in ${Math.floor(t/1e3)} sec`),clearTimeout(this._expires_timer),this._expires_timer=setTimeout(()=>{this._expires_timer=null,this._sendSubsequentSubscribe(null,this._headers)},t)}_parseSubscriptionState(e){switch(e){case`pending`:return f.STATE_PENDING;case`active`:return f.STATE_ACTIVE;case`terminated`:return f.STATE_TERMINATED;case`init`:return f.STATE_INIT;case`notify_wait`:return f.STATE_WAITING_NOTIFY;default:return}}}})),me=s(((e,t)=>{var n=P().EventEmitter,r=A(),i=I(),a=k(),o=N(),s=V(),c=new i(`Notifier`),l={NOTIFY_RESPONSE_TIMEOUT:0,NOTIFY_TRANSPORT_ERROR:1,NOTIFY_NON_OK_RESPONSE:2,NOTIFY_AUTHENTICATION_FAILED:3,FINAL_NOTIFY_SENT:4,UNSUBSCRIBE_RECEIVED:5,SUBSCRIPTION_EXPIRED:6,STATE_PENDING:0,STATE_ACTIVE:1,STATE_TERMINATED:2,DEFAULT_EXPIRES_SEC:900};t.exports=class e extends n{static get C(){return l}static init_incoming(t,n){try{e.checkSubscribe(t)}catch(e){c.warn(`Notifier.init_incoming: invalid request. Error: `,e.message),t.reply(405);return}n()}static checkSubscribe(e){if(!e)throw TypeError(`Not enough arguments. Missing subscribe request`);if(e.method!==a.SUBSCRIBE)throw TypeError(`Invalid method for Subscribe request`);if(!e.hasHeader(`contact`))throw TypeError(`Missing Contact header in subscribe request`);if(!e.hasHeader(`event`))throw TypeError(`Missing Event header in subscribe request`);let t=e.getHeader(`expires`);if(t){let e=parseInt(t);if(!o.isDecimal(e)||e<0)throw TypeError(`Invalid Expires header field in subscribe request`)}}constructor(t,n,r,{extraHeaders:i,allowEvents:a,pending:s,defaultExpires:u}){if(c.debug(`new`),super(),!r)throw TypeError(`Not enough arguments. Missing contentType`);e.checkSubscribe(n);let d=n.getHeader(`event`);this._ua=t,this._initial_subscribe=n,this._expires_timestamp=null,this._expires_timer=null,this._defaultExpires=u||l.DEFAULT_EXPIRES_SEC,this._state=s?l.STATE_PENDING:l.STATE_ACTIVE,this._content_type=r,this._headers=o.cloneArray(i),this._headers.push(`Event: ${d}`),this._contact=this._headers.find(e=>e.startsWith(`Contact`)),this._contact||(this._contact=`Contact: ${this._ua._contact.toString()}`,this._headers.push(this._contact)),a&&this._headers.push(`Allow-Events: ${a}`),this._target=n.from.uri.user,n.to_tag=o.newTag(),this._data={}}get C(){return l}get state(){return this._state}get id(){return this._dialog?this._dialog.id:null}get data(){return this._data}set data(e){this._data=e}receiveRequest(e){if(e.method!==a.SUBSCRIBE){e.reply(405);return}this._setExpires(e),this._dialog||=new s(this,e,`UAS`),e.reply(200,null,[`Expires: ${this._expires}`,`${this._contact}`]);let t=e.body,n=e.getHeader(`content-type`),r=this._expires===0;r||this._setExpiresTimer(),c.debug(`emit "subscribe"`),this.emit(`subscribe`,r,e,t,n),r&&this._terminateDialog(l.UNSUBSCRIBE_RECEIVED)}start(){if(c.debug(`start()`),this._state===l.STATE_TERMINATED)throw new r.InvalidStateError(this._state);this.receiveRequest(this._initial_subscribe)}setActiveState(){if(c.debug(`setActiveState()`),this._state===l.STATE_TERMINATED)throw new r.InvalidStateError(this._state);this._state===l.STATE_PENDING&&(this._state=l.STATE_ACTIVE)}notify(e=null){if(c.debug(`notify()`),this._state===l.STATE_TERMINATED)throw new r.InvalidStateError(this._state);let t=Math.floor((this._expires_timestamp-new Date().getTime())/1e3);t<=0?(this._expires_timer||c.error(`expires timer is not set`),clearTimeout(this._expires_timer),this.terminate(e,`timeout`)):this._sendNotify([`;expires=${t}`],e)}terminate(e=null,t=null,n=null){if(c.debug(`terminate()`),this._state===l.STATE_TERMINATED)return;let r=[];t&&r.push(`;reason=${t}`),n!==null&&r.push(`;retry-after=${n}`),this._sendNotify(r,e,null,`terminated`),this._terminateDialog(t===`timeout`?l.SUBSCRIPTION_EXPIRED:l.FINAL_NOTIFY_SENT)}_terminateDialog(e){this._state!==l.STATE_TERMINATED&&(this._state=l.STATE_TERMINATED,clearTimeout(this._expires_timer),this._dialog&&=(this._dialog.terminate(),null),c.debug(`emit "terminated" code=${e}`),this.emit(`terminated`,e))}_setExpires(e){e.hasHeader(`expires`)?this._expires=parseInt(e.getHeader(`expires`)):(this._expires=this._defaultExpires,c.debug(`missing Expires header field, default value set: ${this._expires}`))}_sendNotify(e,t=null,n=null,r=null){if(this._state===l.STATE_TERMINATED){c.warn(`final notify already sent`);return}let i=`Subscription-State: ${r||this._parseState()}`;for(let t of e)i+=t;let s=o.cloneArray(this._headers);s.push(i),n&&(s=s.concat(n)),t&&s.push(`Content-Type: ${this._content_type}`),this._dialog.sendRequest(a.NOTIFY,{body:t,extraHeaders:s,eventHandlers:{onRequestTimeout:()=>{this._terminateDialog(l.NOTIFY_RESPONSE_TIMEOUT)},onTransportError:()=>{this._terminateDialog(l.NOTIFY_TRANSPORT_ERROR)},onErrorResponse:e=>{e.status_code===401||e.status_code===407?this._terminateDialog(l.NOTIFY_AUTHENTICATION_FAILED):this._terminateDialog(l.NOTIFY_NON_OK_RESPONSE)},onDialogError:()=>{this._terminateDialog(l.NOTIFY_NON_OK_RESPONSE)}}})}_setExpiresTimer(){this._expires_timestamp=new Date().getTime()+this._expires*1e3,clearTimeout(this._expires_timer),this._expires_timer=setTimeout(()=>{this._state!==l.STATE_TERMINATED&&(c.debug(`emit "expired"`),this.emit(`expired`),this.terminate(null,`timeout`))},this._expires*1e3)}_parseState(){switch(this._state){case l.STATE_PENDING:return`pending`;case l.STATE_ACTIVE:return`active`;case l.STATE_TERMINATED:return`terminated`;default:throw TypeError(`wrong state value`)}}}})),he=s(((e,t)=>{var n=P().EventEmitter,r=I(),i=k(),a=R(),o=N(),s=B(),c=A(),l=M(),u=new r(`Message`);t.exports=class extends n{constructor(e){super(),this._ua=e,this._request=null,this._closed=!1,this._direction=null,this._local_identity=null,this._remote_identity=null,this._is_replied=!1,this._data={}}get direction(){return this._direction}get local_identity(){return this._local_identity}get remote_identity(){return this._remote_identity}send(e,t,n={}){let r=e;if(e===void 0||t===void 0)throw TypeError(`Not enough arguments`);if(e=this._ua.normalizeTarget(e),!e)throw TypeError(`Invalid target: ${r}`);let c=o.cloneArray(n.extraHeaders),u=o.cloneObject(n.eventHandlers),d=n.contentType||`text/plain`,f={};n.fromUserName&&(f.from_uri=new l(`sip`,n.fromUserName,this._ua.configuration.uri.host),c.push(`P-Preferred-Identity: ${this._ua.configuration.uri.toString()}`)),n.fromDisplayName&&(f.from_display_name=n.fromDisplayName);for(let e in u)Object.prototype.hasOwnProperty.call(u,e)&&this.on(e,u[e]);c.push(`Content-Type: ${d}`),this._request=new a.OutgoingRequest(i.MESSAGE,e,this._ua,f,c),t&&(this._request.body=t);let p=new s(this._ua,this._request,{onRequestTimeout:()=>{this._onRequestTimeout()},onTransportError:()=>{this._onTransportError()},onReceiveResponse:e=>{this._receiveResponse(e)}});this._newMessage(`local`,this._request),p.send()}init_incoming(e){this._request=e,this._newMessage(`remote`,e),this._is_replied||(this._is_replied=!0,e.reply(200)),this._close()}accept(e={}){let t=o.cloneArray(e.extraHeaders),n=e.body;if(this._direction!==`incoming`)throw new c.NotSupportedError(`"accept" not supported for outgoing Message`);if(this._is_replied)throw Error(`incoming Message already replied`);this._is_replied=!0,this._request.reply(200,null,t,n)}reject(e={}){let t=e.status_code||480,n=e.reason_phrase,r=o.cloneArray(e.extraHeaders),i=e.body;if(this._direction!==`incoming`)throw new c.NotSupportedError(`"reject" not supported for outgoing Message`);if(this._is_replied)throw Error(`incoming Message already replied`);if(t<300||t>=700)throw TypeError(`Invalid status_code: ${t}`);this._is_replied=!0,this._request.reply(t,n,r,i)}_receiveResponse(e){if(!this._closed)switch(!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):this._succeeded(`remote`,e);break;default:{let t=o.sipErrorCause(e.status_code);this._failed(`remote`,e,t);break}}}_onRequestTimeout(){this._closed||this._failed(`system`,null,i.causes.REQUEST_TIMEOUT)}_onTransportError(){this._closed||this._failed(`system`,null,i.causes.CONNECTION_ERROR)}_close(){this._closed=!0,this._ua.destroyMessage(this)}_newMessage(e,t){e===`remote`?(this._direction=`incoming`,this._local_identity=t.to,this._remote_identity=t.from):e===`local`&&(this._direction=`outgoing`,this._local_identity=t.from,this._remote_identity=t.to),this._ua.newMessage(this,{originator:e,message:this,request:t})}_failed(e,t,n){u.debug(`MESSAGE failed`),this._close(),u.debug(`emit "failed"`),this.emit(`failed`,{originator:e,response:t||null,cause:n})}_succeeded(e,t){u.debug(`MESSAGE succeeded`),this._close(),u.debug(`emit "succeeded"`),this.emit(`succeeded`,{originator:e,response:t})}}})),ge=s(((e,t)=>{var n=P().EventEmitter,r=I(),i=k(),a=R(),o=N(),s=B(),c=A(),l=new r(`Options`);t.exports=class extends n{constructor(e){super(),this._ua=e,this._request=null,this._closed=!1,this._direction=null,this._local_identity=null,this._remote_identity=null,this._is_replied=!1,this._data={}}get direction(){return this._direction}get local_identity(){return this._local_identity}get remote_identity(){return this._remote_identity}send(e,t,n={}){let r=e;if(e===void 0)throw TypeError(`A target is required for OPTIONS`);if(e=this._ua.normalizeTarget(e),!e)throw TypeError(`Invalid target: ${r}`);let c=o.cloneArray(n.extraHeaders),l=o.cloneObject(n.eventHandlers),u=n.contentType||`application/sdp`;for(let e in l)Object.prototype.hasOwnProperty.call(l,e)&&this.on(e,l[e]);c.push(`Content-Type: ${u}`),this._request=new a.OutgoingRequest(i.OPTIONS,e,this._ua,null,c),t&&(this._request.body=t);let d=new s(this._ua,this._request,{onRequestTimeout:()=>{this._onRequestTimeout()},onTransportError:()=>{this._onTransportError()},onReceiveResponse:e=>{this._receiveResponse(e)}});this._newOptions(`local`,this._request),d.send()}init_incoming(e){this._request=e,this._newOptions(`remote`,e),this._is_replied||(this._is_replied=!0,e.reply(200)),this._close()}accept(e={}){let t=o.cloneArray(e.extraHeaders),n=e.body;if(this._direction!==`incoming`)throw new c.NotSupportedError(`"accept" not supported for outgoing Options`);if(this._is_replied)throw Error(`incoming Options already replied`);this._is_replied=!0,this._request.reply(200,null,t,n)}reject(e={}){let t=e.status_code||480,n=e.reason_phrase,r=o.cloneArray(e.extraHeaders),i=e.body;if(this._direction!==`incoming`)throw new c.NotSupportedError(`"reject" not supported for outgoing Options`);if(this._is_replied)throw Error(`incoming Options already replied`);if(t<300||t>=700)throw TypeError(`Invalid status_code: ${t}`);this._is_replied=!0,this._request.reply(t,n,r,i)}_receiveResponse(e){if(!this._closed)switch(!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):this._succeeded(`remote`,e);break;default:{let t=o.sipErrorCause(e.status_code);this._failed(`remote`,e,t);break}}}_onRequestTimeout(){this._closed||this._failed(`system`,null,i.causes.REQUEST_TIMEOUT)}_onTransportError(){this._closed||this._failed(`system`,null,i.causes.CONNECTION_ERROR)}_close(){this._closed=!0,this._ua.destroyMessage(this)}_newOptions(e,t){e===`remote`?(this._direction=`incoming`,this._local_identity=t.to,this._remote_identity=t.from):e===`local`&&(this._direction=`outgoing`,this._local_identity=t.from,this._remote_identity=t.to),this._ua.newOptions(this,{originator:e,message:this,request:t})}_failed(e,t,n){l.debug(`OPTIONS failed`),this._close(),l.debug(`emit "failed"`),this.emit(`failed`,{originator:e,response:t||null,cause:n})}_succeeded(e,t){l.debug(`OPTIONS succeeded`),this._close(),l.debug(`emit "succeeded"`),this.emit(`succeeded`,{originator:e,response:t})}}})),_e=s((e=>{var t=I(),n=N(),r=j(),i=new t(`Socket`);e.isSocket=e=>{if(Array.isArray(e))return!1;if(e===void 0)return i.warn(`undefined JsSIP.Socket instance`),!1;try{if(!n.isString(e.url))throw i.warn(`missing or invalid JsSIP.Socket url property`),Error(`Missing or invalid JsSIP.Socket url property`);if(!n.isString(e.via_transport))throw i.warn(`missing or invalid JsSIP.Socket via_transport property`),Error(`Missing or invalid JsSIP.Socket via_transport property`);if(r.parse(e.sip_uri,`SIP_URI`)===-1)throw i.warn(`missing or invalid JsSIP.Socket sip_uri property`),Error(`missing or invalid JsSIP.Socket sip_uri property`)}catch{return!1}try{[`connect`,`disconnect`,`send`].forEach(t=>{if(!n.isFunction(e[t]))throw i.warn(`missing or invalid JsSIP.Socket method: ${t}`),Error(`Missing or invalid JsSIP.Socket method: ${t}`)})}catch{return!1}return!0}})),ve=s(((e,t)=>{var n=I(),r=_e(),i=k(),a=new n(`Transport`),o={STATUS_CONNECTED:0,STATUS_CONNECTING:1,STATUS_DISCONNECTED:2,SOCKET_STATUS_READY:0,SOCKET_STATUS_ERROR:1,recovery_options:{min_interval:i.CONNECTION_RECOVERY_MIN_INTERVAL,max_interval:i.CONNECTION_RECOVERY_MAX_INTERVAL}};t.exports=class{constructor(e,t=o.recovery_options){a.debug(`new()`),this.status=o.STATUS_DISCONNECTED,this.socket=null,this.sockets=[],this.recovery_options=t,this.recover_attempts=0,this.recovery_timer=null,this.close_requested=!1;try{this.textDecoder=new TextDecoder(`utf8`)}catch(e){a.warn(`cannot use TextDecoder: ${e}`)}if(e===void 0)throw TypeError(`Invalid argument. undefined 'sockets' argument`);e instanceof Array||(e=[e]),e.forEach(function(e){if(!r.isSocket(e.socket))throw TypeError(`Invalid argument. invalid 'JsSIP.Socket' instance`);if(e.weight&&!Number(e.weight))throw TypeError(`Invalid argument. 'weight' attribute is not a number`);this.sockets.push({socket:e.socket,weight:e.weight||0,status:o.SOCKET_STATUS_READY})},this),this._getSocket()}get via_transport(){return this.socket.via_transport}get url(){return this.socket.url}get sip_uri(){return this.socket.sip_uri}connect(){if(a.debug(`connect()`),this.isConnected()){a.debug(`Transport is already connected`);return}if(this.isConnecting()){a.debug(`Transport is connecting`);return}this.close_requested=!1,this.status=o.STATUS_CONNECTING,this.onconnecting({socket:this.socket,attempts:this.recover_attempts}),this.close_requested||(this.socket.onconnect=this._onConnect.bind(this),this.socket.ondisconnect=this._onDisconnect.bind(this),this.socket.ondata=this._onData.bind(this),this.socket.connect())}disconnect(){a.debug(`close()`),this.close_requested=!0,this.recover_attempts=0,this.status=o.STATUS_DISCONNECTED,this.recovery_timer!==null&&(clearTimeout(this.recovery_timer),this.recovery_timer=null),this.socket.onconnect=()=>{},this.socket.ondisconnect=()=>{},this.socket.ondata=()=>{},this.socket.disconnect(),this.ondisconnect({socket:this.socket,error:!1})}send(e){if(a.debug(`send()`),!this.isConnected())return a.warn(`unable to send message, transport is not connected`),!1;let t=e.toString();return a.debug(`sending message:\n\n${t}\n`),this.socket.send(t)}isConnected(){return this.status===o.STATUS_CONNECTED}isConnecting(){return this.status===o.STATUS_CONNECTING}_reconnect(){this.recover_attempts+=1;let e=Math.floor(Math.random()*2**this.recover_attempts+1);e<this.recovery_options.min_interval?e=this.recovery_options.min_interval:e>this.recovery_options.max_interval&&(e=this.recovery_options.max_interval),a.debug(`reconnection attempt: ${this.recover_attempts}. next connection attempt in ${e} seconds`),this.recovery_timer=setTimeout(()=>{!this.close_requested&&!(this.isConnected()||this.isConnecting())&&(this._getSocket(),this.connect())},e*1e3)}_getSocket(){let e=[];if(this.sockets.forEach(t=>{t.status!==o.SOCKET_STATUS_ERROR&&(e.length===0?e.push(t):t.weight>e[0].weight?e=[t]:t.weight===e[0].weight&&e.push(t))}),e.length===0){this.sockets.forEach(e=>{e.status=o.SOCKET_STATUS_READY}),this._getSocket();return}let t=Math.floor(Math.random()*e.length);this.socket=e[t].socket}_onConnect(){this.recover_attempts=0,this.status=o.STATUS_CONNECTED,this.recovery_timer!==null&&(clearTimeout(this.recovery_timer),this.recovery_timer=null),this.onconnect({socket:this})}_onDisconnect(e,t,n){this.status=o.STATUS_DISCONNECTED,this.ondisconnect({socket:this.socket,error:e,code:t,reason:n}),!this.close_requested&&(this.sockets.forEach(function(e){this.socket===e.socket&&(e.status=o.SOCKET_STATUS_ERROR)},this),this._reconnect(e))}_onData(e){if(e===`\r
16
- \r
17
- `){a.debug(`received message with double-CRLF Keep Alive request`);try{this.socket.send(`\r
18
- `)}catch(e){a.warn(`error sending Keep Alive response: ${e}`)}return}if(e===`\r
19
- `){a.debug(`received message with CRLF Keep Alive response`);return}if(typeof e!=`string`){try{e=this.textDecoder?this.textDecoder.decode(e):String.fromCharCode.apply(null,new Uint8Array(e))}catch(e){a.debug(`received binary message failed to be converted into string: ${e}`);return}a.debug(`received binary message:\n\n${e}\n`)}else a.debug(`received text message:\n\n${e}\n`);this.ondata({transport:this,message:e})}}})),ye=s((e=>{var t=I(),n=j(),r=R(),i=new t(`Parser`);e.parseMessage=(e,t)=>{let s,c,l=e.indexOf(`\r
20
- `);if(l===-1){i.warn(`parseMessage() | no CRLF found, not a SIP message`);return}let u=e.substring(0,l),d=n.parse(u,`Request_Response`);if(d===-1){i.warn(`parseMessage() | error parsing first line of SIP message: "${u}"`);return}d.status_code?(s=new r.IncomingResponse,s.status_code=d.status_code,s.reason_phrase=d.reason_phrase):(s=new r.IncomingRequest(t),s.method=d.method,s.ruri=d.uri),s.data=e;let f=l+2;for(;;){if(l=a(e,f),l===-2){c=f+2;break}if(l===-1){i.warn(`parseMessage() | malformed message`);return}if(d=o(s,e,f,l),d!==!0){i.warn(`parseMessage() |`,d.error);return}f=l+2}if(s.hasHeader(`content-length`)){let t=s.getHeader(`content-length`);s.body=e.substr(c,t)}else s.body=e.substring(c);return s};function a(e,t){let n=t,r=0,i=0;if(e.substring(n,n+2).match(/(^\r\n)/))return-2;for(;r===0;){if(i=e.indexOf(`\r
21
- `,n),i===-1)return i;!e.substring(i+2,i+4).match(/(^\r\n)/)&&e.charAt(i+2).match(/(^\s+)/)?n=i+2:r=i}return r}function o(e,t,i,a){let o,s=t.indexOf(`:`,i),c=t.substring(i,s).trim(),l=t.substring(s+1,a).trim();switch(c.toLowerCase()){case`via`:case`v`:e.addHeader(`via`,l),e.getHeaders(`via`).length===1?(o=e.parseHeader(`Via`),o&&(e.via=o,e.via_branch=o.branch)):o=0;break;case`from`:case`f`:e.setHeader(`from`,l),o=e.parseHeader(`from`),o&&(e.from=o,e.from_tag=o.getParam(`tag`));break;case`to`:case`t`:e.setHeader(`to`,l),o=e.parseHeader(`to`),o&&(e.to=o,e.to_tag=o.getParam(`tag`));break;case`record-route`:if(o=n.parse(l,`Record_Route`),o===-1)o=void 0;else for(let t of o)e.addHeader(`record-route`,l.substring(t.possition,t.offset)),e.headers[`Record-Route`][e.getHeaders(`record-route`).length-1].parsed=t.parsed;break;case`call-id`:case`i`:e.setHeader(`call-id`,l),o=e.parseHeader(`call-id`),o&&(e.call_id=l);break;case`contact`:case`m`:if(o=n.parse(l,`Contact`),o===-1)o=void 0;else for(let t of o)e.addHeader(`contact`,l.substring(t.possition,t.offset)),e.headers.Contact[e.getHeaders(`contact`).length-1].parsed=t.parsed;break;case`content-length`:case`l`:e.setHeader(`content-length`,l),o=e.parseHeader(`content-length`);break;case`content-type`:case`c`:e.setHeader(`content-type`,l),o=e.parseHeader(`content-type`);break;case`cseq`:e.setHeader(`cseq`,l),o=e.parseHeader(`cseq`),o&&(e.cseq=o.value),e instanceof r.IncomingResponse&&(e.method=o.method);break;case`max-forwards`:e.setHeader(`max-forwards`,l),o=e.parseHeader(`max-forwards`);break;case`www-authenticate`:e.setHeader(`www-authenticate`,l),o=e.parseHeader(`www-authenticate`);break;case`proxy-authenticate`:e.setHeader(`proxy-authenticate`,l),o=e.parseHeader(`proxy-authenticate`);break;case`session-expires`:case`x`:e.setHeader(`session-expires`,l),o=e.parseHeader(`session-expires`),o&&(e.session_expires=o.expires,e.session_expires_refresher=o.refresher);break;case`refer-to`:case`r`:e.setHeader(`refer-to`,l),o=e.parseHeader(`refer-to`),o&&(e.refer_to=o);break;case`replaces`:e.setHeader(`replaces`,l),o=e.parseHeader(`replaces`),o&&(e.replaces=o);break;case`event`:case`o`:e.setHeader(`event`,l),o=e.parseHeader(`event`),o&&(e.event=o);break;default:e.addHeader(c,l),o=0}return o!==void 0||{error:`error parsing header "${c}"`}}})),G=s(((e,t)=>{var n=I(),r=k(),i=R(),a=N(),o=new n(`sanityCheck`),s=[y],c=[p,m,h,g],l=[_,v],u,d,f;t.exports=(e,t,n)=>{u=e,d=t,f=n;for(let e of s)if(e()===!1)return!1;if(u instanceof i.IncomingRequest){for(let e of c)if(e()===!1)return!1}else if(u instanceof i.IncomingResponse){for(let e of l)if(e()===!1)return!1}return!0};function p(){if(u.s(`to`).uri.scheme!==`sip`)return b(416),!1}function m(){if(!u.to_tag&&u.call_id.substr(0,5)===d.configuration.jssip_id)return b(482),!1}function h(){if(a.str_utf8_length(u.body)<u.getHeader(`content-length`))return b(400),!1}function g(){let e=u.from_tag,t=u.call_id,n=u.cseq,i;if(!u.to_tag){if(u.method===r.INVITE){if(d._transactions.ist[u.via_branch])return!1;for(let r in d._transactions.ist)if(Object.prototype.hasOwnProperty.call(d._transactions.ist,r)&&(i=d._transactions.ist[r],i.request.from_tag===e&&i.request.call_id===t&&i.request.cseq===n))return b(482),!1}else if(d._transactions.nist[u.via_branch])return!1;else for(let r in d._transactions.nist)if(Object.prototype.hasOwnProperty.call(d._transactions.nist,r)&&(i=d._transactions.nist[r],i.request.from_tag===e&&i.request.call_id===t&&i.request.cseq===n))return b(482),!1}}function _(){if(u.getHeaders(`via`).length>1)return o.debug(`more than one Via header field present in the response, dropping the response`),!1}function v(){if(a.str_utf8_length(u.body)<u.getHeader(`content-length`))return o.debug(`message body length is lower than the value in Content-Length header field, dropping the response`),!1}function y(){for(let e of[`from`,`to`,`call_id`,`cseq`,`via`])if(!u.hasHeader(e))return o.debug(`missing mandatory header field : ${e}, dropping the response`),!1}function b(e){let t=u.getHeaders(`via`),n,i=`SIP/2.0 ${e} ${r.REASON_PHRASE[e]}\r\n`;for(let e of t)i+=`Via: ${e}\r\n`;n=u.getHeader(`To`),u.to_tag||(n+=`;tag=${a.newTag()}`),i+=`To: ${n}\r\n`,i+=`From: ${u.getHeader(`From`)}\r\n`,i+=`Call-ID: ${u.call_id}\r\n`,i+=`CSeq: ${u.cseq} ${u.method}\r\n`,i+=`\r
22
- `,f.send(i)}})),be=s((e=>{var t=N(),n=k(),r=j(),i=M(),a=_e(),o=A();e.settings={authorization_user:null,password:null,realm:null,ha1:null,authorization_jwt:null,display_name:null,uri:null,contact_uri:null,instance_id:null,use_preloaded_route:!1,session_timers:!0,session_timers_refresh_method:n.UPDATE,session_timers_force_refresher:!1,no_answer_timeout:60,register:!0,register_expires:600,register_from_tag_trail:``,registrar_server:null,sockets:null,connection_recovery_max_interval:n.CONNECTION_RECOVERY_MAX_INTERVAL,connection_recovery_min_interval:n.CONNECTION_RECOVERY_MIN_INTERVAL,extra_headers:null,via_host:`${t.createRandomToken(12)}.invalid`};var s={mandatory:{sockets(e){let t=[];if(a.isSocket(e))t.push({socket:e});else if(Array.isArray(e)&&e.length)for(let n of e)Object.prototype.hasOwnProperty.call(n,`socket`)&&a.isSocket(n.socket)?t.push(n):a.isSocket(n)&&t.push({socket:n});else return;return t},uri(e){/^sip:/i.test(e)||(e=`${n.SIP}:${e}`);let t=i.parse(e);if(t&&t.user)return t}},optional:{authorization_user(e){if(r.parse(`"${e}"`,`quoted_string`)!==-1)return e},authorization_jwt(e){if(typeof e==`string`)return e},user_agent(e){if(typeof e==`string`)return e},connection_recovery_max_interval(e){if(t.isDecimal(e)){let t=Number(e);if(t>0)return t}},connection_recovery_min_interval(e){if(t.isDecimal(e)){let t=Number(e);if(t>0)return t}},contact_uri(e){if(typeof e==`string`){let t=r.parse(e,`SIP_URI`);if(t!==-1)return t}},display_name(e){return e},instance_id(e){if(/^uuid:/i.test(e)&&(e=e.substr(5)),r.parse(e,`uuid`)!==-1)return e},no_answer_timeout(e){if(t.isDecimal(e)){let t=Number(e);if(t>0)return t}},session_timers(e){if(typeof e==`boolean`)return e},session_timers_refresh_method(e){if(typeof e==`string`&&(e=e.toUpperCase(),e===n.INVITE||e===n.UPDATE))return e},session_timers_force_refresher(e){if(typeof e==`boolean`)return e},password(e){return String(e)},realm(e){return String(e)},ha1(e){return String(e)},register(e){if(typeof e==`boolean`)return e},register_expires(e){if(t.isDecimal(e)){let t=Number(e);if(t>=0)return t}},register_from_tag_trail(e){return typeof e==`function`?e:String(e)},registrar_server(e){/^sip:/i.test(e)||(e=`${n.SIP}:${e}`);let t=i.parse(e);if(t&&!t.user)return t},use_preloaded_route(e){if(typeof e==`boolean`)return e},extra_headers(e){let t=[];if(Array.isArray(e)&&e.length)for(let n of e)typeof n==`string`&&t.push(n);else return;return t}}};e.load=(e,n)=>{for(let t in s.mandatory)if(n.hasOwnProperty(t)){let r=n[t],i=s.mandatory[t](r);if(i!==void 0)e[t]=i;else throw new o.ConfigurationError(t,r)}else throw new o.ConfigurationError(t);for(let r in s.optional)if(n.hasOwnProperty(r)){let i=n[r];if(t.isEmpty(i))continue;let a=s.optional[r](i);if(a!==void 0)e[r]=a;else throw new o.ConfigurationError(r,i)}}})),xe=s(((e,t)=>{var n=P().EventEmitter,r=I(),i=k(),a=le(),o=fe(),s=pe(),c=me(),l=he(),u=ge(),d=z(),f=ve(),p=N(),m=A(),h=M(),g=ye(),_=R(),v=G(),y=be(),b=new r(`UA`),x={STATUS_INIT:0,STATUS_READY:1,STATUS_USER_CLOSED:2,STATUS_NOT_READY:3,CONFIGURATION_ERROR:1,NETWORK_ERROR:2};t.exports=class extends n{static get C(){return x}constructor(e){if(!e)throw TypeError(`Not enough arguments`);let t=[`password`,`ha1`,`authorization_jwt`];b.debug(`new() [configuration:%o]`,Object.entries(e).filter(([e])=>!t.includes(e))),super(),this._cache={credentials:{}},this._configuration=Object.assign({},y.settings),this._dynConfiguration={},this._dialogs={},this._applicants={},this._sessions={},this._transport=null,this._contact=null,this._status=x.STATUS_INIT,this._error=null,this._transactions={nist:{},nict:{},ist:{},ict:{}},this._data={},this._closeTimer=null;try{this._loadConfig(e)}catch(e){throw this._status=x.STATUS_NOT_READY,this._error=x.CONFIGURATION_ERROR,e}this._registrator=new a(this)}get C(){return x}get status(){return this._status}get contact(){return this._contact}get configuration(){return this._configuration}get transport(){return this._transport}start(){b.debug(`start()`),this._status===x.STATUS_INIT?this._transport.connect():this._status===x.STATUS_USER_CLOSED?(b.debug(`restarting UA`),this._closeTimer!==null&&(clearTimeout(this._closeTimer),this._closeTimer=null,this._transport.disconnect()),this._status=x.STATUS_INIT,this._transport.connect()):this._status===x.STATUS_READY?b.debug(`UA is in READY status, not restarted`):b.debug(`ERROR: connection is down, Auto-Recovery system is trying to reconnect`),this._dynConfiguration.register=this._configuration.register}register(){b.debug(`register()`),this._dynConfiguration.register=!0,this._registrator.register()}unregister(e){b.debug(`unregister()`),this._dynConfiguration.register=!1,this._registrator.unregister(e)}registrator(){return this._registrator}isRegistered(){return this._registrator.registered}isConnected(){return this._transport.isConnected()}call(e,t){b.debug(`call()`);let n=new o(this);return n.connect(e,t),n}sendMessage(e,t,n){b.debug(`sendMessage()`);let r=new l(this);return r.send(e,t,n),r}subscribe(e,t,n,r){return b.debug(`subscribe()`),new s(this,e,t,n,r)}notify(e,t,n){return b.debug(`notify()`),new c(this,e,t,n)}sendOptions(e,t,n){b.debug(`sendOptions()`);let r=new u(this);return r.send(e,t,n),r}terminateSessions(e){b.debug(`terminateSessions()`);for(let t in this._sessions)this._sessions[t].isEnded()||this._sessions[t].terminate(e)}stop(){if(b.debug(`stop()`),this._dynConfiguration={},this._status===x.STATUS_USER_CLOSED){b.debug(`UA already closed`);return}this._registrator.close();let e=Object.keys(this._sessions).length;for(let e in this._sessions)if(Object.prototype.hasOwnProperty.call(this._sessions,e)){b.debug(`closing session ${e}`);try{this._sessions[e].terminate()}catch{}}for(let e in this._applicants)if(Object.prototype.hasOwnProperty.call(this._applicants,e))try{this._applicants[e].close()}catch{}this._status=x.STATUS_USER_CLOSED,Object.keys(this._transactions.nict).length+Object.keys(this._transactions.nist).length+Object.keys(this._transactions.ict).length+Object.keys(this._transactions.ist).length===0&&e===0?this._transport.disconnect():this._closeTimer=setTimeout(()=>{this._closeTimer=null,this._transport.disconnect()},2e3)}normalizeTarget(e){return p.normalizeTarget(e,this._configuration.hostport_params)}get(e){switch(e){case`authorization_user`:return this._configuration.authorization_user;case`realm`:return this._configuration.realm;case`ha1`:return this._configuration.ha1;case`authorization_jwt`:return this._configuration.authorization_jwt;default:b.warn(`get() | cannot get "%s" parameter in runtime`,e);return}}set(e,t){switch(e){case`authorization_user`:this._configuration.authorization_user=String(t);break;case`password`:this._configuration.password=String(t);break;case`realm`:this._configuration.realm=String(t);break;case`ha1`:this._configuration.ha1=String(t),this._configuration.password=null;break;case`authorization_jwt`:this._configuration.authorization_jwt=String(t);break;case`display_name`:this._configuration.display_name=t;break;case`extra_headers`:this._configuration.extra_headers=t;break;default:return b.warn(`set() | cannot set "%s" parameter in runtime`,e),!1}return!0}newTransaction(e){this._transactions[e.type][e.id]=e,this.emit(`newTransaction`,{transaction:e})}destroyTransaction(e){delete this._transactions[e.type][e.id],this.emit(`transactionDestroyed`,{transaction:e})}newDialog(e){this._dialogs[e.id]=e}destroyDialog(e){delete this._dialogs[e.id]}newMessage(e,t){this._applicants[e]=e,this.emit(`newMessage`,t)}newOptions(e,t){this._applicants[e]=e,this.emit(`newOptions`,t)}destroyMessage(e){delete this._applicants[e]}newRTCSession(e,t){this._sessions[e.id]=e,this.emit(`newRTCSession`,t)}destroyRTCSession(e){delete this._sessions[e.id]}registered(e){this.emit(`registered`,e)}unregistered(e){this.emit(`unregistered`,e)}registrationFailed(e){this.emit(`registrationFailed`,e)}receiveRequest(e){let t=e.method;if(e.ruri.user!==this._configuration.uri.user&&e.ruri.user!==this._contact.uri.user){b.debug(`Request-URI does not point to us`),e.method!==i.ACK&&e.reply_sl(404);return}if(e.ruri.scheme===i.SIPS){e.reply_sl(416);return}if(d.checkTransaction(this,e))return;if(t===i.INVITE?new d.InviteServerTransaction(this,this._transport,e):t!==i.ACK&&t!==i.CANCEL&&new d.NonInviteServerTransaction(this,this._transport,e),t===i.OPTIONS){if(this.listeners(`newOptions`).length===0){e.reply(200);return}new u(this).init_incoming(e)}else if(t===i.MESSAGE){if(this.listeners(`newMessage`).length===0){e.reply(405);return}new l(this).init_incoming(e)}else if(t===i.SUBSCRIBE){if(this.listeners(`newSubscribe`).length===0){e.reply(405);return}}else if(t===i.INVITE&&!e.to_tag&&this.listeners(`newRTCSession`).length===0){e.reply(405);return}let n,r;if(e.to_tag)n=this._findDialog(e.call_id,e.from_tag,e.to_tag),n?n.receiveRequest(e):t===i.NOTIFY?(r=this._findSession(e),r?r.receiveRequest(e):(b.debug(`received NOTIFY request for a non existent subscription`),e.reply(481,`Subscription does not exist`))):t!==i.ACK&&e.reply(481);else switch(t){case i.INVITE:if(window.RTCPeerConnection){if(e.hasHeader(`replaces`)){let t=e.replaces;n=this._findDialog(t.call_id,t.from_tag,t.to_tag),n?(r=n.owner,r.isEnded()?e.reply(603):r.receiveRequest(e)):e.reply(481)}else r=new o(this),r.init_incoming(e)}else b.warn(`INVITE received but WebRTC is not supported`),e.reply(488);break;case i.BYE:e.reply(481);break;case i.CANCEL:r=this._findSession(e),r?r.receiveRequest(e):b.debug(`received CANCEL request for a non existent session`);break;case i.ACK:break;case i.NOTIFY:this.emit(`sipEvent`,{event:e.event,request:e}),e.reply(200);break;case i.SUBSCRIBE:c.init_incoming(e,()=>{this.emit(`newSubscribe`,{event:e.event,request:e})});break;default:e.reply(405)}}_findSession({call_id:e,from_tag:t,to_tag:n}){let r=e+t,i=this._sessions[r],a=e+n,o=this._sessions[a];return i||o||null}_findDialog(e,t,n){let r=e+t+n,i=this._dialogs[r];return i||(r=e+n+t,i=this._dialogs[r],i||null)}_loadConfig(e){y.load(this._configuration,e),this._configuration.display_name===0&&(this._configuration.display_name=`0`),this._configuration.instance_id||(this._configuration.instance_id=p.newUUID()),this._configuration.jssip_id=p.createRandomToken(5);let t=this._configuration.uri.clone();t.user=null,this._configuration.hostport_params=t.toString().replace(/^sip:/i,``);try{this._transport=new f(this._configuration.sockets,{max_interval:this._configuration.connection_recovery_max_interval,min_interval:this._configuration.connection_recovery_min_interval}),this._transport.onconnecting=S.bind(this),this._transport.onconnect=C.bind(this),this._transport.ondisconnect=w.bind(this),this._transport.ondata=T.bind(this)}catch(e){throw b.warn(e),new m.ConfigurationError(`sockets`,this._configuration.sockets)}if(delete this._configuration.sockets,this._configuration.authorization_user||(this._configuration.authorization_user=this._configuration.uri.user),!this._configuration.registrar_server){let e=this._configuration.uri.clone();e.user=null,e.clearParams(),e.clearHeaders(),this._configuration.registrar_server=e}this._configuration.no_answer_timeout*=1e3,this._configuration.contact_uri?this._configuration.via_host=this._configuration.contact_uri.host:this._configuration.contact_uri=new h(`sip`,p.createRandomToken(8),this._configuration.via_host,null,{transport:`ws`}),this._contact={pub_gruu:null,temp_gruu:null,uri:this._configuration.contact_uri,toString(e={}){let t=e.anonymous||null,n=e.outbound||null,r=`<`;return r+=t?this.temp_gruu||`sip:anonymous@anonymous.invalid;transport=ws`:this.pub_gruu||this.uri.toString(),n&&(t?!this.temp_gruu:!this.pub_gruu)&&(r+=`;ob`),r+=`>`,r}};let n=[`authorization_user`,`password`,`realm`,`ha1`,`authorization_jwt`,`display_name`,`register`,`extra_headers`];for(let e in this._configuration)Object.prototype.hasOwnProperty.call(this._configuration,e)&&(n.indexOf(e)===-1?Object.defineProperty(this._configuration,e,{writable:!1,configurable:!1}):Object.defineProperty(this._configuration,e,{writable:!0,configurable:!1}));b.debug(`configuration parameters after validation:`);for(let e in this._configuration)if(Object.prototype.hasOwnProperty.call(y.settings,e))switch(e){case`uri`:case`registrar_server`:b.debug(`- ${e}: ${this._configuration[e]}`);break;case`password`:case`ha1`:case`authorization_jwt`:b.debug(`- ${e}: NOT SHOWN`);break;default:b.debug(`- ${e}: ${JSON.stringify(this._configuration[e])}`)}}};function S(e){this.emit(`connecting`,e)}function C(e){this._status!==x.STATUS_USER_CLOSED&&(this._status=x.STATUS_READY,this._error=null,this.emit(`connected`,e),this._dynConfiguration.register&&this._registrator.register())}function w(e){for(let e of[`nict`,`ict`,`nist`,`ist`])for(let t in this._transactions[e])Object.prototype.hasOwnProperty.call(this._transactions[e],t)&&this._transactions[e][t].onTransportError();this.emit(`disconnected`,e),this._registrator.onTransportClosed(),this._status!==x.STATUS_USER_CLOSED&&(this._status=x.STATUS_NOT_READY,this._error=x.NETWORK_ERROR)}function T(e){let t=e.transport,n=e.message;if(n=g.parseMessage(n,this),n&&!(this._status===x.STATUS_USER_CLOSED&&n instanceof _.IncomingRequest)&&v(n,this,t)){if(n instanceof _.IncomingRequest)n.transport=t,this.receiveRequest(n);else if(n instanceof _.IncomingResponse){let e;switch(n.method){case i.INVITE:e=this._transactions.ict[n.via_branch],e&&e.receiveResponse(n);break;case i.ACK:break;default:e=this._transactions.nict[n.via_branch],e&&e.receiveResponse(n)}}}}})),Se=s(((e,t)=>{var n=I(),r=j(),i=new n(`WebSocketInterface`);t.exports=class{constructor(e){i.debug(`new() [url:"%s"]`,e),this._url=e,this._sip_uri=null,this._via_transport=null,this._ws=null;let t=r.parse(e,`absoluteURI`);if(t===-1)throw i.warn(`invalid WebSocket URI: ${e}`),TypeError(`Invalid argument: ${e}`);if(t.scheme!==`wss`&&t.scheme!==`ws`)throw i.warn(`invalid WebSocket URI scheme: ${t.scheme}`),TypeError(`Invalid argument: ${e}`);this._sip_uri=`sip:${t.host}${t.port?`:${t.port}`:``};transport=ws`,this._via_transport=t.scheme.toUpperCase()}get via_transport(){return this._via_transport}set via_transport(e){this._via_transport=e.toUpperCase()}get sip_uri(){return this._sip_uri}get url(){return this._url}connect(){if(i.debug(`connect()`),this.isConnected()){i.debug(`WebSocket ${this._url} is already connected`);return}if(this.isConnecting()){i.debug(`WebSocket ${this._url} is connecting`);return}this._ws&&this.disconnect(),i.debug(`connecting to WebSocket ${this._url}`);try{this._ws=new WebSocket(this._url,`sip`),this._ws.binaryType=`arraybuffer`,this._ws.onopen=this._onOpen.bind(this),this._ws.onclose=this._onClose.bind(this),this._ws.onmessage=this._onMessage.bind(this),this._ws.onerror=this._onError.bind(this)}catch(e){this._onError(e)}}disconnect(){i.debug(`disconnect()`),this._ws&&=(this._ws.onopen=()=>{},this._ws.onclose=()=>{},this._ws.onmessage=()=>{},this._ws.onerror=()=>{},this._ws.close(),null)}send(e){return i.debug(`send()`),this.isConnected()?(this._ws.send(e),!0):(i.warn(`unable to send message, WebSocket is not open`),!1)}isConnected(){return this._ws&&this._ws.readyState===this._ws.OPEN}isConnecting(){return this._ws&&this._ws.readyState===this._ws.CONNECTING}_onOpen(){i.debug(`WebSocket ${this._url} connected`),this.onconnect()}_onClose({wasClean:e,code:t,reason:n}){i.debug(`WebSocket ${this._url} closed`),e===!1&&i.debug(`WebSocket abrupt disconnection`),this.ondisconnect(!e,t,n)}_onMessage({data:e}){i.debug(`received WebSocket message`),this.ondata(e)}_onError(e){i.warn(`WebSocket ${this._url} error: `,e)}}})),Ce=u(s(((e,t)=>{var n=(O(),d(f).default),r=k(),i=A(),a=N(),o=xe(),s=M(),c=te(),l=j(),u=Se(),p=F()(`JsSIP`),m=fe();p(`version %s`,n.version),t.exports={C:r,Exceptions:i,Utils:a,UA:o,URI:s,NameAddrHeader:c,WebSocketInterface:u,Grammar:l,RTCSession:m,debug:F(),get name(){return n.title},get version(){return n.version}}}))(),1);function we(){return{createSocket:(e,t)=>new K(e,t),createUa:e=>new Ce.UA(e)}}var K=class extends Ce.WebSocketInterface{ticket;constructor(e,t){super(e),this.ticket=t}protocols(){return this.ticket===``?[`sip`]:[`xcall-ticket.${this.ticket}`,`sip`]}connect(){if(this.isConnected()||this.isConnecting())return;let e=this;e._ws&&this.disconnect();try{e._ws=new WebSocket(this.url,this.protocols()),e._ws.binaryType=`arraybuffer`,e._ws.onopen=e._onOpen.bind(this),e._ws.onclose=e._onClose.bind(this),e._ws.onmessage=e._onMessage.bind(this),e._ws.onerror=e._onError.bind(this)}catch(t){e._onError.call(this,t)}}};exports.createJsSipFactory=we,exports.t=d;