@16x/webphone-sdk 3.2.1 → 3.2.2

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.
package/dist/index.umd.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.CCBarSDK={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},c=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),l=(e,t)=>{let r={};for(var i in e)n(r,i,{get:e[i],enumerable:!0});return t||n(r,Symbol.toStringTag,{value:`Module`}),r},u=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},d=(e,r,i)=>(i=e==null?{}:t(a(e)),u(r||!e||!e.__esModule||!o.call(e,`default`)?n(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>o.call(e,`module.exports`)?e[`module.exports`]:u(n({},`__esModule`,{value:!0}),e),p,m=s((()=>{p=class extends Error{code;category;retryable;requestId;callId;cause;serverCode;status;constructor(e,t,n,r={}){super(e),this.name=`CCBarError`,this.code=e,this.category=t,this.retryable=n,this.requestId=r.requestId,this.callId=r.callId,this.cause=r.cause,this.serverCode=r.serverCode,this.status=r.status}}}));m();var h=class{handlers=new Map;on(e,t){let n=this.handlers.get(e)??new Set;n.add(t),this.handlers.set(e,n);let r=!0;return()=>{r&&(r=!1,n.delete(t))}}off(e,t){this.handlers.get(e)?.delete(t)}emit(e,t){[...this.handlers.get(e)??[]].forEach(e=>{try{e(t)}catch{}})}listenerCount(){return[...this.handlers.values()].reduce((e,t)=>e+t.size,0)}clear(){this.handlers.clear()}},g={new:new Set([`dialing`,`ringing`,`failed`]),dialing:new Set([`ringing`,`connecting`,`ended`,`failed`]),ringing:new Set([`connecting`,`ended`,`failed`]),connecting:new Set([`active`,`ended`,`failed`]),active:new Set([`held`,`ended`,`failed`]),held:new Set([`active`,`ended`,`failed`]),ended:new Set,failed:new Set},_=(e,t)=>g[e].has(t);function v(e,t){if(!_(e,t))throw new y(e,t);return t}var y=class extends p{constructor(e,t){super(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{cause:{from:e,to:t}})}},b=v;function x(e){if(e.code!==`OK`)throw TypeError(`Unexpected session response code: ${e.code}`);if(e.data===void 0||e.data===null)throw TypeError(`Unexpected session response: missing data`);return e.data}m();var S=[`progress`,`accepted`,`confirmed`,`ended`,`failed`,`hold`,`unhold`,`mediaConnected`],C=3e4,w=class{options;currentState=`new`;sessionUnsubscribers=[];capabilities;disposed=!1;pendingOperation;incomingOperation;ownerTabId;ownerLost=!1;id;destination;platform;constructor(e){this.options=e,this.id=e.id,this.destination=e.destination,this.platform=e.platform,this.capabilities=e.capabilities??new Set;try{S.forEach(t=>{this.sessionUnsubscribers.push(e.session.on(t,e=>this.handleSessionEvent(t,e)))})}catch(t){this.cleanupSessionListeners();try{e.session.terminate()}catch{}throw new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:this.id,cause:t})}}get state(){return this.currentState}getResourceCounts(){return{timers:this.pendingOperation?.timer===void 0?0:1,listeners:this.sessionUnsubscribers.length}}async mute(e){this.assertNotDisposed(),this.assertOwner(e),this.assertMediaControlAllowed(),this.assertCapability(`mute`),this.invoke(()=>this.options.session.mute())}async unmute(e){this.assertNotDisposed(),this.assertOwner(e),this.assertMediaControlAllowed(),this.assertCapability(`mute`),this.invoke(()=>this.options.session.unmute())}async answer(e,t){this.assertNotDisposed(),this.assertOwner(t),this.assertIncomingCall(),this.assertCapability(`inbound`),this.assertIncomingOperationAvailable(),this.incomingOperation=`answer`;try{this.options.session.answer(e)}catch(e){throw this.incomingOperation=void 0,this.finishFailedIncomingOperation(e),this.operationError(e)}this.transitionIfAllowed(`connecting`,void 0,`accepted`)}async reject(e={},t){this.assertNotDisposed(),this.assertOwner(t),this.assertIncomingCall(),this.assertIncomingOperationAvailable(),this.incomingOperation=`reject`;let n;try{this.options.session.terminate()}catch(e){n=e}finally{this.incomingOperation=void 0,this.transitionIfStillRinging(`ended`,{reason:e.reason?.trim()||`rejected`})}if(n!==void 0)throw this.operationError(n)}async hold(e){this.assertNotDisposed(),this.assertOwner(e),this.assertHoldCapability(),this.assertState(`active`),this.assertCapability(`hold`),await this.startPendingOperation(`hold`,`held`,()=>this.options.session.hold())}async resume(e){this.assertNotDisposed(),this.assertOwner(e),this.assertHoldCapability(),this.assertState(`held`),this.assertCapability(`hold`),await this.startPendingOperation(`resume`,`active`,()=>this.options.session.unhold())}async sendDtmf(e,t){if(this.assertNotDisposed(),this.assertOwner(t),!/^[0-9A-D*#]$/.test(e))throw this.operationError();this.assertState(`active`),this.assertCapability(`dtmf`),this.invoke(()=>this.options.session.sendDtmf(e))}async transfer(e,t){if(this.assertNotDisposed(),this.assertOwner(t),this.assertTransferCapability(),this.assertState(`active`),this.assertCapability(`blind_transfer`),!ee(e)||e.target.trim()===``)throw this.operationError();this.invoke(()=>this.options.session.refer(e.target.trim()))}async hangup(e){if(this.assertNotDisposed(),this.assertOwner(e),T(this.currentState))throw this.operationError();try{this.options.session.terminate(),T(this.currentState)||this.transitionTo(`ended`)}catch(e){throw this.operationError(e)}}beginOutbound(){this.assertNotDisposed(),this.assertCapability(`outbound`),this.transitionTo(`dialing`)}beginIncoming(){this.assertNotDisposed(),this.transitionTo(`ringing`)}setOwnerTabId(e){this.ownerTabId=e,this.ownerLost=!1}clearOwnerTabId(e={}){this.ownerTabId=void 0,this.ownerLost=e.lost===!0}getOwnerTabId(){return this.ownerTabId}assertOwnerForManager(e){this.assertOwner(e)}canBeReclaimed(){return this.currentState===`new`||this.currentState===`dialing`||this.currentState===`ringing`}dispose(){if(!this.disposed){if(this.rejectPendingOperation(),this.incomingOperation=void 0,this.disposed=!0,!T(this.currentState))try{this.options.session.terminate()}catch(e){this.reportOperationError(e)}this.cleanupSessionListeners();try{this.options.onDisposed?.()}catch{}}}handleSessionEvent(e,t){if((e===`accepted`||e===`confirmed`||e===`ended`||e===`failed`)&&(this.incomingOperation=void 0),!(this.disposed||T(this.currentState)))switch(e){case`progress`:this.transitionIfAllowed(`ringing`,t,e);break;case`accepted`:this.transitionIfAllowed(`connecting`,t,e);break;case`confirmed`:this.transitionToActive(t);break;case`mediaConnected`:this.currentState===`connecting`&&this.transitionTo(`active`,t);break;case`hold`:this.transitionIfAllowed(`held`,t,e);break;case`unhold`:this.transitionIfAllowed(`active`,t,e);break;case`ended`:this.transitionIfAllowed(`ended`,t,e);break;case`failed`:this.transitionIfAllowed(`failed`,t,e)}}transitionToActive(e){this.currentState!==`active`&&((this.currentState===`dialing`||this.currentState===`ringing`)&&this.transitionTo(`connecting`,e),this.transitionIfAllowed(`active`,e,`confirmed`))}transitionIfAllowed(e,t,n){this.currentState!==e&&(_(this.currentState,e)?this.transitionTo(e,t):this.reportIllegalTransition(e,n))}transitionIfStillRinging(e,t){this.currentState===`ringing`&&this.transitionTo(e,t)}transitionTo(e,t){if(this.currentState===e)return;if(!_(this.currentState,e))throw this.operationError();let n=this.currentState;this.currentState=e,T(e)&&this.rejectPendingOperation();try{this.options.onStateChanged?.({callId:this.id,from:n,to:e},t)}catch{}finally{T(e)&&this.dispose()}}startPendingOperation(e,t,n){if(this.pendingOperation!==void 0)throw this.operationError();return new Promise((r,i)=>{let a={kind:e,nextState:t,resolve:r,reject:i};this.pendingOperation=a,a.timer=setTimeout(()=>this.timeoutPendingOperation(a),C);let o;try{o=n()}catch(e){this.rejectPendingOperation(e);return}o.then(()=>this.resolvePendingOperation(a),e=>this.rejectPendingOperation(e,a))})}resolvePendingOperation(e){if(this.pendingOperation===e){if(this.clearPendingTimer(e),this.pendingOperation=void 0,this.disposed||T(this.currentState)){e.reject(this.operationError());return}try{this.transitionTo(e.nextState),e.resolve()}catch(t){e.reject(this.operationError(t))}}}rejectPendingOperation(e,t){let n=this.pendingOperation;n===void 0||t!==void 0&&n!==t||(this.clearPendingTimer(n),this.pendingOperation=void 0,n.reject(this.operationError(e)))}timeoutPendingOperation(e){this.pendingOperation===e&&(this.rejectPendingOperation(Error(`${e.kind} operation timed out`),e),this.dispose())}clearPendingTimer(e){e.timer!==void 0&&(clearTimeout(e.timer),e.timer=void 0)}reportIllegalTransition(e,t){this.reportOperationError({event:t,from:this.currentState,to:e})}reportOperationError(e){let t=e instanceof p&&e.callId===this.id?e:this.operationError(e);try{this.options.onError?.(t)}catch{}}finishFailedIncomingOperation(e){this.reportOperationError(e);try{this.options.session.terminate()}catch(t){e={operation:e,cleanup:t}}this.transitionIfStillRinging(`ended`,{reason:`incoming_operation_failed`,cause:e})}cleanupSessionListeners(){this.sessionUnsubscribers.splice(0).forEach(e=>{try{e()}catch{}})}assertState(e){if(this.currentState!==e)throw this.operationError()}assertMediaControlAllowed(){if(this.currentState!==`active`&&this.currentState!==`held`)throw this.operationError()}assertHoldCapability(){if(this.platform===`mobile-web`)throw this.capabilityError()}assertTransferCapability(){if(this.platform===`mobile-web`)throw this.capabilityError()}assertIncomingCall(){if(this.options.incoming!==!0||this.currentState!==`ringing`)throw this.operationError()}assertIncomingOperationAvailable(){if(this.incomingOperation!==void 0)throw this.operationError()}assertCapability(e){if(!this.capabilities.has(e))throw this.capabilityError()}invoke(e){try{e()}catch(e){throw this.operationError(e)}}assertNotDisposed(){if(this.disposed)throw this.operationError()}assertOwner(e){if(e!==void 0&&(this.ownerLost||this.ownerTabId!==void 0&&this.ownerTabId!==e))throw this.operationError()}capabilityError(){return new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1,{callId:this.id})}operationError(e){return new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:this.id,cause:e})}};function T(e){return e===`ended`||e===`failed`}function ee(e){return typeof e==`object`&&!!e&&e.type===`blind`&&typeof e.target==`string`}var E=0;function D(){return E+=1,`call_${Date.now().toString(36)}_${E.toString(36)}`}m();var te=`X-User-Data`,ne=/[^\x20-\x7E]/,O=`userdata 只能是可见 ASCII(不能有换行/制表/中文):换行会构成 SIP 头注入;要传中文或 JSON 请调用方先 encodeURIComponent / base64,再在平台侧解回来`;function re(e){if(typeof e!=`string`)return[];let t=e.trim();if(t===``)return[];if(ne.test(t))throw new p(`CALL_INVALID_USERDATA`,`call`,!1,{cause:O});return[`${te}: ${t}`]}m();var ie=class{events=new ae;calls=new Map;options;incomingUnsubscribe;activeCallId=null;incomingSessionSnapshot;callSessions=new Map;callOwners=new Map;ownerLostCalls=new Set;pendingDialCount=0;pendingDestinations=new Set;activeOperationPromise=Promise.resolve();operationGeneration=0;automaticActiveTransition;disposed=!1;terminalNotified=new Set;terminalOperations=new Map;disposeOperation;constructor(e){this.options=e,this.incomingSessionSnapshot=e.session;try{this.incomingUnsubscribe=e.sip.onIncoming(e=>this.handleIncoming(e))}catch(e){throw new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{cause:e})}}on(e,t){return this.disposed?()=>void 0:this.events.on(e,t)}async dial(e,t){this.assertNotDisposed();let n=this.operationGeneration,r=e.destination.trim();if(r===``)throw new p(`CALL_INVALID_DESTINATION`,`call`,!1);let i=re(e.userdata);this.requireCapability(t,`outbound`);let a=this.callLimit(t);if(this.options.platform===`mobile-web`&&this.calls.size+this.pendingDialCount>=a)throw this.capabilityError();if(this.calls.size+this.pendingDialCount>=a||this.pendingDestinations.has(r)||[...this.calls.values()].some(e=>e.destination===r))throw new p(`CALL_ALREADY_EXISTS`,`call`,!1);this.pendingDialCount+=1,this.pendingDestinations.add(r);let o=D(),s;try{s=await this.holdActiveCallForNewCall(),this.assertGeneration(n,o);let a;try{a=this.options.sip.dial(r,this.dialOptions(o,t,e.type,i))}catch(e){throw this.dialError(e,o)}this.assertGeneration(n,o);let c;try{c=new w({id:o,destination:r,platform:this.options.platform,capabilities:this.effectiveCapabilities(t),session:a,onStateChanged:(e,t)=>this.handleStateChanged(c,e,t),onError:e=>this.events.emit(`error`,{error:e}),onDisposed:()=>this.handleDisposed(c)})}catch(e){throw this.dialError(e,o)}if(!this.isCurrentGeneration(n))throw c.dispose(),this.callOperationError(c.id);this.calls.set(c.id,c),this.callSessions.set(c.id,a),this.options.onCallCreated?.(c.id,a);try{c.beginOutbound()}catch(e){throw c.dispose(),this.calls.delete(c.id),this.callSessions.delete(c.id),this.dialError(e,c.id)}if(!this.isCurrentGeneration(n))throw c.dispose(),this.calls.delete(c.id),this.callSessions.delete(c.id),this.callOperationError(c.id);return this.events.emit(`call.created`,{callId:c.id,state:c.state}),c}catch(e){if(this.isCurrentGeneration(n)&&s!==void 0&&this.isManagedCall(s)&&s.state===`held`)try{await s.resume()}catch(t){throw this.compensationError(s.id,void 0,e,t)}throw e}finally{--this.pendingDialCount,this.pendingDestinations.delete(r)}}async answer(e,t,n,r){this.assertNotDisposed();let i=this.requireCall(e);if(this.options.platform===`mobile-web`&&t.policy.mobileIncomingEnabled!==!0)throw this.capabilityError(e);let a={iceServers:t.iceServers,pcConfig:{iceServers:t.iceServers},...n===void 0?{}:{mediaConstraints:n}};await i.answer(a,r)}async reject(e,t,n){this.assertNotDisposed(),await this.requireCall(e).reject(t,n)}getCalls(){return[...this.calls.values()]}hasNonTerminalCalls(){return this.calls.size>0}getResourceCounts(){let e=[...this.calls.values()].map(e=>e.getResourceCounts());return{timers:e.reduce((e,t)=>e+t.timers,0),listeners:this.events.listenerCount()+e.reduce((e,t)=>e+t.listeners,0),terminalRecords:this.terminalNotified.size+this.terminalOperations.size}}getActiveCall(){return this.activeCallId===null?void 0:this.calls.get(this.activeCallId)}async setActiveCall(e,t){this.assertNotDisposed(),this.requireCall(e).assertOwnerForManager(t),await this.enqueueActiveOperation(t=>this.switchActiveCall(e,t))}async claimCall(e,t){this.assertNotDisposed();let n=t.trim();if(n===``)throw this.callOperationError(e);let r=this.requireCall(e),i=this.callOwners.get(e);if(i!==n){if(i!==void 0||this.ownerLostCalls.has(e)&&!r.canBeReclaimed())throw this.callOperationError(e);this.ownerLostCalls.delete(e),this.callOwners.set(e,n),r.setOwnerTabId(n),this.emitOwnershipChanged({callId:e,state:`owned`,ownerTabId:n})}}async releaseCall(e,t){this.assertNotDisposed();let n=this.requireCall(e);if(this.callOwners.get(e)!==t)throw this.callOperationError(e);this.callOwners.delete(e);let r=!n.canBeReclaimed();r?this.ownerLostCalls.add(e):this.ownerLostCalls.delete(e),n.clearOwnerTabId({lost:r}),this.emitOwnershipChanged({callId:e,state:r?`owner-lost`:`released`})}getCallOwner(e){return this.callOwners.get(e)}releaseOwnedCalls(e){for(let[t,n]of[...this.callOwners.entries()]){if(n!==e)continue;let r=this.calls.get(t);if(r===void 0){this.callOwners.delete(t),this.ownerLostCalls.delete(t);continue}this.callOwners.delete(t);let i=!r.canBeReclaimed();i?this.ownerLostCalls.add(t):this.ownerLostCalls.delete(t),r.clearOwnerTabId({lost:i}),this.emitOwnershipChanged({callId:t,state:i?`owner-lost`:`released`})}}dispose(e={}){if(this.disposeOperation!==void 0)return this.disposeOperation;this.disposed=!0,this.operationGeneration+=1,this.automaticActiveTransition=void 0,this.activeOperationPromise=Promise.resolve(),this.events.clear();try{this.incomingUnsubscribe()}catch{}this.activeCallId=null;let t=[...this.calls.values()];this.calls.clear(),this.callSessions.clear(),this.callOwners.clear(),this.ownerLostCalls.clear();let n=Promise.all(t.map(async t=>{let n;try{e.terminateCalls===!0&&t.state!==`ended`&&t.state!==`failed`?await t.hangup():t.dispose()}catch(e){n=e,t.dispose()}try{await this.notifyCallTerminal(t.id)}catch(e){n??=e}if(n!==void 0)throw n})).finally(()=>{this.terminalNotified.clear(),this.terminalOperations.clear()}).then(()=>void 0);return this.disposeOperation=n,n}updateSession(e){this.disposed||(this.incomingSessionSnapshot=e)}async switchActiveCall(e,t){this.assertGeneration(t,e);let n=this.requireCall(e),r=this.getActiveCall();if(r?.id===n.id)return;if(n.state!==`held`&&n.state!==`active`)throw this.callOperationError(e);let i=n.state===`held`;try{if(r!==void 0&&await r.hold(),this.assertGeneration(t,n.id),n.state===`held`&&await n.resume(),this.assertGeneration(t,n.id),!this.isManagedCall(n)||n.state!==`active`)throw this.callOperationError(n.id);this.commitActive(n,t)}catch(a){if(!this.isCurrentGeneration(t))throw this.callOperationError(n.id,a);if(r===void 0)throw this.callOperationError(e,a);try{let e=n.state===`active`;i&&e&&this.isManagedCall(n)&&await n.hold(),this.assertGeneration(t,n.id),r.state===`held`&&this.isManagedCall(r)&&await r.resume(),this.assertGeneration(t,r.id),r.state===`active`&&this.isManagedCall(r)&&this.commitActive(r,t)}catch(e){throw this.compensationError(r.id,n.id,a,e)}throw this.isManagedCall(r)&&r.state===`active`&&this.commitActive(r,t),this.callOperationError(n.id,{operation:a,restoredCallId:r.id})}}handleStateChanged(e,t,n){if(this.disposed)return;let r=this.callSessions.get(e.id);if(r!==void 0&&this.options.onCallStateChanged?.(e.id,r),this.events.emit(`call.stateChanged`,t),t.to===`active`&&this.activeCallId!==e.id){let t=this.getActiveCall();if(this.options.autoHoldPreviousCall===!0&&t!==void 0&&t.id!==e.id&&t.state===`active`){let n=this.operationGeneration;this.enqueueActiveOperation(n=>this.switchAutomaticActiveCall(t,e,n)).catch(e=>{this.isCurrentGeneration(n)&&this.events.emit(`error`,{error:e})})}else this.commitActive(e)}t.to===`held`&&this.activeCallId===e.id&&this.automaticActiveTransition?.previous.id!==e.id&&(this.activeCallId=null,this.events.emit(`call.activeChanged`,{callId:null})),(t.to===`ended`||t.to===`failed`)&&(this.calls.delete(e.id),this.callSessions.delete(e.id),this.callOwners.delete(e.id),this.ownerLostCalls.delete(e.id),this.activeCallId===e.id&&this.automaticActiveTransition?.previous.id!==e.id&&(this.activeCallId=null,this.events.emit(`call.activeChanged`,{callId:null})),this.notifyCallTerminal(e.id),t.to===`ended`?this.events.emit(`call.ended`,{callId:e.id,reason:oe(n)}):this.events.emit(`call.failed`,{callId:e.id,error:se(n,e.id)}))}async switchAutomaticActiveCall(e,t,n){this.automaticActiveTransition={previous:e,target:t};let r;try{if(this.assertGeneration(n,t.id),!this.isManagedCall(t)||t.state!==`active`)return;if(!this.isManagedCall(e)||e.state!==`active`){this.commitActive(t,n);return}if(await e.hold(),this.assertGeneration(n,t.id),!this.isManagedCall(e)){this.isManagedCall(t)&&t.state===`active`&&this.commitActive(t,n);return}if(!this.isManagedCall(t)||t.state!==`active`)r=Error(`target call is no longer active`);else{this.commitActive(t,n);return}}catch(e){r=e}finally{this.automaticActiveTransition?.target.id===t.id&&(this.automaticActiveTransition=void 0)}if(!this.isCurrentGeneration(n))return;if(!this.isManagedCall(e)){this.isManagedCall(t)&&t.state===`active`&&this.commitActive(t,n);return}let i=await this.restoreAutomaticActiveCall(e,t,r,n);if(this.isCurrentGeneration(n)){if(i.error!==void 0)throw i.error;if(!this.isManagedCall(e)){this.isManagedCall(t)&&t.state===`active`&&this.commitActive(t,n);return}throw this.callOperationError(t.id,{operation:r,restoredCallId:e.id})}}async restoreAutomaticActiveCall(e,t,n,r){if(!this.isCurrentGeneration(r))return{};if(!this.isManagedCall(e))return this.isManagedCall(t)&&t.state===`active`&&this.commitActive(t,r),{};let i;try{this.isManagedCall(t)&&t.state===`active`&&await t.hold(),this.assertGeneration(r,t.id),this.isManagedCall(e)&&e.state===`held`&&await e.resume(),this.assertGeneration(r,e.id)}catch(e){i=e}return this.isCurrentGeneration(r)?this.isManagedCall(e)?i===void 0?(e.state===`active`&&this.commitActive(e,r),{}):{error:this.compensationError(e.id,t.id,n,i)}:(this.isManagedCall(t)&&t.state===`active`&&this.commitActive(t,r),{}):{}}handleDisposed(e){this.disposed||(this.calls.delete(e.id),this.callSessions.delete(e.id),this.callOwners.delete(e.id),this.ownerLostCalls.delete(e.id),this.notifyCallTerminal(e.id),this.activeCallId===e.id&&(this.activeCallId=null,this.events.emit(`call.activeChanged`,{callId:null})))}commitActive(e,t=this.operationGeneration){this.isCurrentGeneration(t)&&this.isManagedCall(e)&&e.state===`active`&&this.activeCallId!==e.id&&(this.activeCallId=e.id,this.events.emit(`call.activeChanged`,{callId:e.id}))}handleIncoming(e){if(this.disposed)return;let t=D(),n=this.incomingSessionSnapshot;if(n===void 0||!n.policy.incomingEnabled||!this.effectiveCapabilities(n).has(`inbound`)){this.terminateUnsupportedIncoming(e),this.events.emit(`error`,{error:this.capabilityError(t)});return}let r=e.from??e.id;if(this.calls.size+this.pendingDialCount>=this.callLimit(n)){this.terminateUnsupportedIncoming(e),this.events.emit(`error`,{error:new p(`CALL_ALREADY_EXISTS`,`call`,!1,{callId:t})});return}let i;try{i=new w({id:t,destination:r,platform:this.options.platform,incoming:!0,capabilities:this.effectiveCapabilities(n),session:e,onStateChanged:(e,t)=>this.handleStateChanged(i,e,t),onError:e=>this.events.emit(`error`,{error:e}),onDisposed:()=>this.handleDisposed(i)})}catch(e){this.events.emit(`error`,{error:this.callOperationError(t,e)});return}this.calls.set(i.id,i),this.callSessions.set(i.id,e),this.options.onCallCreated?.(i.id,e);try{i.beginIncoming(),this.events.emit(`call.incoming`,{callId:i.id,from:r})}catch(e){i.dispose(),this.events.emit(`error`,{error:this.callOperationError(i.id,e)})}}terminateUnsupportedIncoming(e){try{e.terminate()}catch{}}async holdActiveCallForNewCall(){if(this.options.autoHoldPreviousCall!==!0)return;let e=this.getActiveCall();if(e!==void 0&&e.state===`active`)return await e.hold(),e}enqueueActiveOperation(e){let t=this.operationGeneration,n=()=>this.isCurrentGeneration(t)?e(t):Promise.reject(this.callOperationError(``)),r=this.activeOperationPromise.then(n,n);return this.activeOperationPromise=r.catch(()=>void 0),r}isManagedCall(e){return!this.disposed&&this.calls.get(e.id)===e&&e.state!==`ended`&&e.state!==`failed`}isCurrentGeneration(e){return!this.disposed&&this.operationGeneration===e}assertGeneration(e,t){if(!this.isCurrentGeneration(e))throw this.callOperationError(t??``)}effectiveCapabilities(e){let t=new Set(e.capabilities);return this.options.platform===`mobile-web`&&(t.delete(`hold`),t.delete(`blind_transfer`),e.policy.mobileIncomingEnabled!==!0&&t.delete(`inbound`)),t}requireCapability(e,t,n){if(!this.effectiveCapabilities(e).has(t))throw this.capabilityError(n)}requireCall(e){let t=this.calls.get(e);if(t===void 0)throw this.callOperationError(e);return t}emitOwnershipChanged(e){this.events.emit(`call.ownershipChanged`,e)}notifyCallTerminal(e){let t=this.terminalOperations.get(e);if(t!==void 0)return t;if(this.terminalNotified.has(e))return Promise.resolve();this.terminalNotified.add(e);let n;try{n=this.options.onCallTerminal?.(e)}catch(t){this.events.emit(`error`,{error:this.callOperationError(e,t)});let n=Promise.reject(this.callOperationError(e,t));return this.terminalOperations.set(e,n),n.catch(()=>void 0).finally(()=>this.pruneTerminalRecord(e,n)),n}let r=Promise.resolve(n).catch(t=>{throw this.events.emit(`error`,{error:this.callOperationError(e,t)}),t});return this.terminalOperations.set(e,r),r.catch(()=>void 0).finally(()=>this.pruneTerminalRecord(e,r)),r}pruneTerminalRecord(e,t){this.terminalOperations.get(e)===t&&this.terminalOperations.delete(e),this.calls.has(e)||this.terminalNotified.delete(e)}assertNotDisposed(){if(this.disposed)throw new p(`SDK_ALREADY_DISPOSED`,`internal`,!1)}callOperationError(e,t){return new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:e,cause:t})}capabilityError(e){return new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1,{callId:e})}compensationError(e,t,n,r){return this.callOperationError(e,{operation:n,rollback:r,originalCallId:e,targetCallId:t})}callLimit(e){let t=this.options.platform===`mobile-web`?1:2,n=this.options.maxConcurrentCalls??t;return Math.min(t,Math.max(1,n),Math.max(1,e.policy.maxConcurrentCalls))}dialOptions(e,t,n,r=[]){return{iceServers:t.iceServers,extraHeaders:[`X-XCall-Call-ID: ${e}`,`X-XCall-Session-ID: ${t.sessionId}`,...r],...n===void 0?{}:{type:n}}}dialError(e,t){return e instanceof p?new p(e.code,e.category,e.retryable,{requestId:e.requestId,callId:t,cause:e.cause??e}):new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:t,cause:e})}},ae=class{handlers=new Map;on(e,t){let n=this.handlers.get(e)??new Set,r=t;n.add(r),this.handlers.set(e,n);let i=!0;return()=>{i&&(i=!1,n.delete(r))}}emit(e,t){let n=this.handlers.get(e);n!==void 0&&[...n].forEach(e=>{try{e(t)}catch{}})}listenerCount(){return[...this.handlers.values()].reduce((e,t)=>e+t.size,0)}clear(){this.handlers.clear()}};function oe(e){if(typeof e!=`object`||!e||!(`reason`in e))return`ended`;let t=e.reason;return typeof t==`string`&&t!==``?t:`ended`}function se(e,t){if(e instanceof p)return new p(e.code,e.category,e.retryable,{requestId:e.requestId,callId:t,cause:e.cause??e});if(typeof e==`object`&&e&&`error`in e){let n=e.error;if(n instanceof p)return new p(n.code,n.category,n.retryable,{requestId:n.requestId,callId:t,cause:n.cause??n});if(n instanceof Error)return new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:t,cause:n})}return new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:t,cause:e})}m();var k=`q7X4p6MvK1z8Lb3A`,ce=`W9e2T4mN0aQ7Ru6C`,le=16,ue=`�`;function de(e){for(let t of e){let e=t.codePointAt(0)??0;if(e===127||e<32&&e!==9)return!0}return!1}async function A(e,t={}){let n=String(e??``).replace(/\s+/g,``);if(!n)throw new p(`LEGACY_PLATFORM_REJECTED`,`auth`,!1,{cause:`解密的密文为空:坐席账号里没有 password/registerPassword`});let r=t.subtle??globalThis.crypto?.subtle;if(r===void 0)throw new p(`CONFIG_INVALID`,`configuration`,!1,{cause:`需要 WebCrypto 才能解 SIP 密码:请在安全上下文(https / localhost)或 Node 18+ 里运行`});let i=me(n);if(i===void 0)throw new p(`LEGACY_PLATFORM_REJECTED`,`auth`,!1,{cause:`密文不是合法的 Base64:确认取的是 password/registerPassword 原值,没有被截断或转义`});let a=await r.importKey(`raw`,he(t.key??k),`AES-CBC`,!1,[`decrypt`]);try{let e=await r.decrypt({name:`AES-CBC`,iv:he(t.iv??ce)},a,i);return new TextDecoder(`utf-8`).decode(e).trim()}catch(e){throw new p(`LEGACY_PLATFORM_REJECTED`,`auth`,!1,{cause:`SIP 密码解密失败(检查 key/iv 与该环境是否一致):${e instanceof Error?e.message:String(e)}`})}}async function j(e,t={}){let n=String(e??``).replace(/\s+/g,``);if(fe(n))try{let e=await A(n,t);return pe(e)?e:void 0}catch{return}}function fe(e){let t=me(e);return t!==void 0&&t.byteLength>0&&t.byteLength%le===0}function pe(e){return e.length===0||e.includes(ue)?!1:!de(e)}function me(e){if(e.length!==0&&e.length%4==0&&/^[A-Za-z0-9+/]+={0,2}$/.test(e))try{let t=atob(e),n=new Uint8Array(new ArrayBuffer(t.length));for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n}catch{return}}function he(e){let t=new TextEncoder().encode(e),n=new Uint8Array(new ArrayBuffer(t.byteLength));return n.set(t),n}var ge=`3.2.1`,M=`[REDACTED]`,_e=/\bBearer\s+[^\s,;"'}]+/gi,ve=/(\bAuthorization\s*[:=]\s*)Digest\s+[^\r\n]*/gi,N=/(\bAuthorization\s*[:=]\s*)(?:(Bearer|Basic|Digest|Token)\s+)?[^\s,;"'}]+/gi,ye=/\beyJ[A-Za-z0-9_-]*\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/g,be=/\b((?:sip|sips|turn|turns|ws|wss):(?:\/\/)?)[^/?#@\s:]+:[^/?#@\s]+@/gi,xe=/(\b(?:sip(?:Register)?Ticket|registerTicket|wssTicket|turnCredential|credential|accessToken|refreshToken|appSecret|password|jwt|ticket)\b\s*[:=]\s*)(["']?)([^\s,;&}"']+)(["']?)/gi,Se=/(?<!\d)(1[3-9]\d)\d{4}(\d{4})(?!\d)/g,Ce=/(?:authorization|token|ticket|credential|password|secret)$/i;function P(e,t={}){let n=e.replace(_e,`Bearer ${M}`).replace(ve,(e,t)=>`${t}Digest ${M}`).replace(N,(e,t,n)=>`${t}${n===void 0?``:`${n} `}${M}`).replace(ye,M).replace(be,(e,t)=>`${t}${M}@`).replace(xe,(e,t)=>`${t}${M}`);return t.maskPhoneNumbers!==!1&&(n=n.replace(Se,`$1****$2`)),n}function we(e,t={}){return Te(e,t,new WeakSet)}function Te(e,t,n){if(typeof e==`string`)return P(e,t);if(typeof e!=`object`||!e)return e;if(n.has(e))return`[Circular]`;if(n.add(e),Array.isArray(e))return e.map(e=>Te(e,t,n));let r={};return Object.entries(e).forEach(([e,i])=>{r[e]=Ce.test(e)?M:Te(i,t,n)}),r}m();function Ee(e){if(!F(e))throw I(`Invalid worker message`);if(e.version!==1)throw I(`Unsupported worker protocol version`);if(e.type===`attach`||e.type===`detach`)return De(e),e;if(e.type===`command`){if(De(e),typeof e.command!=`string`||e.payload!==void 0&&!F(e.payload))throw I(`Invalid worker command`);return e}if(e.type===`response`){if(typeof e.requestId!=`string`||typeof e.ok!=`boolean`)throw I(`Invalid worker response`);return e}if(e.type===`event`){if(typeof e.event!=`string`||!(`payload`in e))throw I(`Invalid worker event`);return e}throw I(`Unknown worker message type`)}function De(e){if(typeof e.requestId!=`string`||typeof e.tabId!=`string`)throw I(`Worker request requires requestId and tabId`)}function F(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function I(e){return new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{cause:e})}m();var Oe=class{port;timeoutMs;pending=new Map;eventHandlers=new Set;closed=!1;lifecycleState=`connected`;constructor(e,t={}){this.port=e,this.timeoutMs=t.timeoutMs??15e3,this.port.onmessage=e=>this.handleMessage(e.data),this.port.start()}request(e){return this.closed?Promise.reject(new p(`SDK_ALREADY_DISPOSED`,`internal`,!1)):this.pending.has(e.requestId)?Promise.reject(new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{requestId:e.requestId})):this.lifecycleState===`reconnecting`&&e.type===`command`&&(e.command===`dial`||e.command===`answer`)?Promise.reject(new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!0,{callId:e.payload?.callId})):new Promise((t,n)=>{let r=setTimeout(()=>{this.pending.delete(e.requestId),n(new p(`NETWORK_TIMEOUT`,`network`,!0,{requestId:e.requestId}))},this.timeoutMs);this.pending.set(e.requestId,{resolve:e=>t(e),reject:n,timer:r}),this.port.postMessage(e)})}onEvent(e){return this.closed?()=>void 0:(this.eventHandlers.add(e),()=>this.eventHandlers.delete(e))}getLifecycleState(){return this.lifecycleState}close(){this.closed||(this.closed=!0,this.pending.forEach(e=>{clearTimeout(e.timer),e.reject(new p(`SDK_ALREADY_DISPOSED`,`internal`,!1))}),this.pending.clear(),this.eventHandlers.clear(),this.port.close())}handleMessage(e){try{let t=Ee(e);if(t.type===`event`){t.event===`connection.stateChanged`&&ke(t.payload)&&(this.lifecycleState=t.payload.state),this.eventHandlers.forEach(e=>e(t));return}if(t.type!==`response`)return;let n=this.pending.get(t.requestId);if(n===void 0)return;this.pending.delete(t.requestId),clearTimeout(n.timer),t.ok?n.resolve(t.result):n.reject(Ae(t))}catch(e){this.pending.forEach(t=>{clearTimeout(t.timer),t.reject(e)}),this.pending.clear()}}};function ke(e){return typeof e==`object`&&!!e&&`state`in e&&(e.state===`connected`||e.state===`reconnecting`)}function Ae(e){let t=e.error;return new p(t?.code??`SDK_INTERNAL_ERROR`,t?.category??`internal`,t?.retryable??!1,{requestId:e.requestId,...t?.message===void 0?{}:{cause:t.message},...t?.serverCode===void 0?{}:{serverCode:t.serverCode},...t?.status===void 0?{}:{status:t.status}})}m();function je(e={}){if((e.enabled??`auto`)===!1)return{mode:`single-tab`,reason:`disabled`};let t=e.locationHref??R(),n=L(e.url,t),r=t=>{if(e.fallback===`error`)throw new p(`CONFIG_INVALID`,`configuration`,!1,{cause:t});return{mode:`single-tab`,reason:t}};if(n===void 0)return r(`SharedWorker URL is unavailable`);if(!Ne(n,t))return r(`SharedWorker URL must be same-origin`);let i=e.workerCtor??Me();if(i===void 0)return r(`SharedWorker is not supported`);let a;try{a=new i(n,e.name===void 0?void 0:{name:e.name})}catch(e){return r(`SharedWorker construction failed: ${e instanceof Error?e.message:String(e)}`)}let o=e.tabId??Pe(),s=new Oe(a.port),c={version:1,type:`attach`,requestId:Fe(),tabId:o},l=s.request(c).then(()=>void 0).catch(e=>{throw s.close(),e});return{mode:`shared`,worker:a,client:s,tabId:o,workerUrl:n,ready:l}}function L(e,t=R()){try{return t===void 0?void 0:new URL(e??`./shared-worker.js`,t).toString()}catch{return}}function R(){return typeof location>`u`?void 0:location.href}function Me(){if(typeof SharedWorker==`function`)return SharedWorker}function Ne(e,t){if(t===void 0)return!0;try{return new URL(e,t).origin===new URL(t).origin}catch{return!1}}function Pe(){return`tab-${typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():Math.random().toString(36).slice(2)}`}function Fe(){return`attach-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}m();var Ie=class{mediaDevices;createAudioElement;outputCapability;outputDeviceId;outputGeneration=0;outputTail;constructor(e={}){this.mediaDevices=e.mediaDevices===null?void 0:e.mediaDevices??Le(),this.createAudioElement=e.createAudioElement}async requestPermission(e={}){let t=this.requireMediaDevices(),n;try{n=await t.getUserMedia({audio:e})}catch(e){throw Be(e)}Re(n)}async getDevices(){if(this.mediaDevices===void 0)return[];try{return(await this.mediaDevices.enumerateDevices()).filter(e=>e.kind===`audioinput`||e.kind===`audiooutput`&&this.supportsOutputSelection())}catch(e){throw Ve(e)}}getCapabilities(){return{input:this.mediaDevices!==void 0,output:this.supportsOutputSelection()}}supportsOutputSelection(){if(this.outputCapability!==void 0)return this.outputCapability;let e=this.createAudioElementSafely();return this.outputCapability=e!==void 0&&typeof e.setSinkId==`function`,this.outputCapability}async setOutputDevice(e,t){if(!this.supportsOutputSelection())throw new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1);this.outputDeviceId=e;let n=++this.outputGeneration;t!==void 0&&await this.enqueueOutput(async()=>{n===this.outputGeneration&&await this.applyOutputDevice(e,t)})}async applyConfiguredOutputDevice(e){if(this.outputDeviceId===void 0||e===void 0)return;let t=this.outputDeviceId,n=this.outputGeneration;await this.enqueueOutput(async()=>{n===this.outputGeneration&&await this.applyOutputDevice(t,e)})}getOutputDeviceId(){return this.outputDeviceId}async applyOutputDevice(e,t){let n=t;if(typeof n.setSinkId!=`function`)throw new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1);try{await n.setSinkId(e)}catch(e){throw He(e)}}enqueueOutput(e){let t=this.outputTail,n=t===void 0?e():t.then(e,e),r=n.catch(()=>void 0);return this.outputTail=r,r.then(()=>{this.outputTail===r&&(this.outputTail=void 0)}),n}async openInputStream(e){let t=this.requireMediaDevices();try{return await t.getUserMedia({audio:{deviceId:{exact:e}}})}catch(e){throw ze(e)}}requireMediaDevices(){if(this.mediaDevices===void 0)throw new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1);return this.mediaDevices}createAudioElementSafely(){if(this.createAudioElement!==void 0)try{return this.createAudioElement()}catch{return}if(typeof document<`u`)try{return document.createElement(`audio`)}catch{return}}};function Le(){return globalThis.navigator?.mediaDevices}function Re(e){let t;try{t=e.getTracks()}catch{return}t.forEach(e=>{try{e.stop()}catch{}})}function ze(e){let t=Ue(e);return t===`NotFoundError`||t===`OverconstrainedError`?new p(`MEDIA_DEVICE_NOT_FOUND`,`media`,!1,{cause:e}):t===`NotReadableError`||t===`AbortError`?new p(`MEDIA_DEVICE_IN_USE`,`media`,!0,{cause:e}):t===`NotAllowedError`||t===`SecurityError`?new p(`MEDIA_PERMISSION_DENIED`,`media`,!1,{cause:e}):new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{cause:e})}function Be(e){let t=Ue(e);return t===`NotFoundError`||t===`OverconstrainedError`?new p(`MEDIA_DEVICE_NOT_FOUND`,`media`,!1,{cause:e}):t===`NotReadableError`||t===`AbortError`?new p(`MEDIA_DEVICE_IN_USE`,`media`,!0,{cause:e}):t===`NotAllowedError`||t===`SecurityError`?new p(`MEDIA_PERMISSION_DENIED`,`media`,!1,{cause:e}):new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{cause:e})}function Ve(e){let t=Ue(e);return t===`NotFoundError`?new p(`MEDIA_DEVICE_NOT_FOUND`,`media`,!1,{cause:e}):t===`NotAllowedError`||t===`SecurityError`?new p(`MEDIA_PERMISSION_DENIED`,`media`,!1,{cause:e}):t===`AbortError`||t===`NotReadableError`?new p(`MEDIA_DEVICE_IN_USE`,`media`,!0,{cause:e}):new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{cause:e})}function He(e){let t=Ue(e);return t===`NotFoundError`?new p(`MEDIA_DEVICE_NOT_FOUND`,`media`,!1,{cause:e}):t===`NotAllowedError`||t===`SecurityError`?new p(`MEDIA_PERMISSION_DENIED`,`media`,!1,{cause:e}):t===`AbortError`||t===`NotReadableError`?new p(`MEDIA_DEVICE_IN_USE`,`media`,!0,{cause:e}):new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{cause:e})}function Ue(e){if(typeof e!=`object`||!e||!(`name`in e))return;let t=e.name;return typeof t==`string`?t:void 0}m();var We=class{createAudioElement;bindings=new Map;audioOwners=new Map;trackOwners=new Map;generations=new Map;pendingPlays=new Map;constructor(e=Ge){this.createAudioElement=e}async bind(e,t){let n=this.bindings.get(e);if(n?.stream===t)return;let r=Ke(e,t),i;try{i=this.createAudioElement()}catch(t){throw qe(r,this.trackOwners),new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1,{callId:e,cause:t})}let a=this.audioOwners.get(i);if(a!==void 0&&a!==e)throw qe(r,this.trackOwners),new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:e});try{i.autoplay=!0,i.playsInline=!0}catch(t){throw qe(r,this.trackOwners),new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{callId:e,cause:t})}try{i.srcObject=t}catch(t){throw qe(r,this.trackOwners),new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{callId:e,cause:t})}this.acquireTracks(r),n!==void 0&&this.releaseBinding(n,n.audio!==i);let o=this.nextGeneration(e);this.audioOwners.set(i,e);let s={callId:e,audio:i,stream:t,tracks:r,generation:o};this.bindings.set(e,s),this.beginPlay(e);try{await i.play()}catch(t){if(!this.isCurrent(e,o))return;throw new p(`MEDIA_PLAYBACK_BLOCKED`,`media`,!1,{callId:e,cause:t})}finally{this.finishPlay(e)}this.isCurrent(e,o)}async play(e){let t=this.bindings.get(e);if(t===void 0)throw new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:e});let n=t.generation;this.beginPlay(e);try{await t.audio.play()}catch(t){if(!this.isCurrent(e,n))return;throw new p(`MEDIA_PLAYBACK_BLOCKED`,`media`,!1,{callId:e,cause:t})}finally{this.finishPlay(e)}this.isCurrent(e,n)}getAudioElement(e){return this.bindings.get(e)?.audio}getResourceCounts(){return{tracks:this.trackOwners.size,audioElements:this.audioOwners.size}}release(e){this.nextGeneration(e);let t=this.bindings.get(e);t!==void 0&&this.releaseBinding(t),this.cleanupGeneration(e)}releaseAll(){[...this.bindings.keys()].forEach(e=>this.release(e))}releaseBinding(e,t=!0){if(this.bindings.get(e.callId)===e&&this.bindings.delete(e.callId),this.audioOwners.get(e.audio)===e.callId&&this.audioOwners.delete(e.audio),t)try{e.audio.srcObject=null}catch{}e.tracks.forEach(e=>this.releaseTrack(e))}acquireTracks(e){e.forEach(e=>this.trackOwners.set(e,(this.trackOwners.get(e)??0)+1))}releaseTrack(e){let t=this.trackOwners.get(e);if(t===void 0||t<=1){this.trackOwners.delete(e),Ye(e);return}this.trackOwners.set(e,t-1)}beginPlay(e){this.pendingPlays.set(e,(this.pendingPlays.get(e)??0)+1)}finishPlay(e){let t=this.pendingPlays.get(e)??0;t<=1?this.pendingPlays.delete(e):this.pendingPlays.set(e,t-1),this.cleanupGeneration(e)}nextGeneration(e){let t=(this.generations.get(e)??0)+1;return this.generations.set(e,t),t}cleanupGeneration(e){!this.bindings.has(e)&&!this.pendingPlays.has(e)&&this.generations.delete(e)}isCurrent(e,t){return this.generations.get(e)===t&&this.bindings.get(e)?.generation===t}};function Ge(){if(typeof document>`u`)throw new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1);return document.createElement(`audio`)}function Ke(e,t){try{return[...new Set(t.getAudioTracks())].filter(e=>e.kind===`audio`)}catch(n){try{return[...new Set(t.getTracks())].filter(e=>e.kind===`audio`)}catch(r){throw Je(t),new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{callId:e,cause:n??r})}}}function qe(e,t){e.forEach(e=>{(t.get(e)??0)===0&&Ye(e)})}function Je(e){try{[...new Set(e.getTracks())].filter(e=>e.kind===`audio`).forEach(Ye)}catch{}}function Ye(e){try{e.stop()}catch{}}m();var Xe=class{deviceManager;remoteAudio;getActiveCall;createRemoteStream;calls=new Map;resources=new Set;inputOperations=new Map;senderQueues=new Map;releaseOperations=new Map;callReleaseOperations=new Map;releaseErrors=new WeakMap;releaseAllOperation;disposeOperation;disposing=!1;disposed=!1;constructor(e={}){let t={mediaDevices:e.mediaDevices,createAudioElement:e.createAudioElement};this.deviceManager=new Ie(t),this.remoteAudio=new We(e.createAudioElement),this.getActiveCall=e.getActiveCall,this.createRemoteStream=e.createRemoteStream??nt}requestPermission(e){return this.assertNotDisposed(),this.deviceManager.requestPermission(e)}getDevices(){return this.assertNotDisposed(),this.deviceManager.getDevices()}getCapabilities(){return this.assertNotDisposed(),this.deviceManager.getCapabilities()}supportsOutputSelection(){return this.assertNotDisposed(),this.deviceManager.supportsOutputSelection()}registerCallMedia(e,t){this.assertNotDisposed();let n=this.calls.get(e);n!==void 0&&this.releaseResource(n).catch(e=>{this.releaseErrors.set(n,e)});let r=Ze(t)?t:{peerConnection:t},i={callId:e,peerConnection:r.peerConnection,senders:new Map,localTracks:new Set,pendingTracks:new Set,generation:1,released:!1,peerClosed:!1};if(this.captureSenders(i,r.getSenderKind),this.resources.add(i),r.localTracks?.forEach(e=>{e.kind===`audio`&&i.localTracks.add(e)}),this.calls.set(e,i),r.trackSource!==void 0)try{i.trackSourceUnsubscribe=r.trackSource.onTrack(e=>this.handleTrackEvent(i,e))}catch{}return async()=>{let e=this.releaseOperations.get(i);if(e!==void 0)await e;else if(this.releaseErrors.has(i))throw this.releaseErrors.get(i);else await this.releaseResource(i);let t=this.releaseErrors.get(i);if(t!==void 0)throw t}}async setInputDevice(e,t){this.assertNotDisposed();let n=t??this.getActiveCall?.();this.assertActiveCall(n),this.assertDeviceSelectionCapability(n);let r=this.ensureCallMedia(n),i=(this.inputOperations.get(n.callId)??Promise.resolve()).then(()=>this.performInputSwitch(e,n,r),()=>this.performInputSwitch(e,n,r));this.inputOperations.set(n.callId,i);try{await i}finally{this.inputOperations.get(n.callId)===i&&this.inputOperations.delete(n.callId)}}setOutputDevice(e,t){this.assertNotDisposed();let n=t??this.getActiveCall?.()?.callId,r=n===void 0?void 0:this.remoteAudio.getAudioElement(n);return this.deviceManager.setOutputDevice(e,r)}async bindRemoteTrack(e,t){this.assertNotDisposed();let n;try{await this.remoteAudio.bind(e,t)}catch(e){n=e}let r;try{await this.deviceManager.applyConfiguredOutputDevice(this.remoteAudio.getAudioElement(e))}catch(e){r=e}if(n!==void 0)throw n;if(r!==void 0)throw r}playRemoteAudio(e){return this.assertNotDisposed(),this.remoteAudio.play(e)}getResourceCounts(){let e=new Set;this.resources.forEach(t=>{t.localTracks.forEach(t=>e.add(t)),t.pendingTracks.forEach(t=>e.add(t))});let t=this.remoteAudio.getResourceCounts();return{listeners:[...this.resources].filter(e=>e.trackSourceUnsubscribe!==void 0).length,tracks:e.size+t.tracks,peerConnections:this.resources.size,audioElements:t.audioElements}}releaseResource(e){let t=this.releaseOperations.get(e);if(t!==void 0)return t;if(!this.resources.has(e))return Promise.resolve();let n=e.callId;this.remoteAudio.release(n),this.releaseErrors.delete(e),this.calls.get(n)===e&&this.calls.delete(n),e.generation+=1,e.released=!0,this.unsubscribeTrackSource(e);let r=new Set([...e.localTracks,...e.pendingTracks]),i=[...e.senders.values()].filter(e=>e.audio).map(t=>({senderResource:t,promise:this.enqueueSender(e,t,()=>$e(t.sender),!0)})),a=Promise.all(i.map(async e=>{try{return await e.promise,{senderResource:e.senderResource,cause:void 0}}catch(t){return{senderResource:e.senderResource,cause:t}}})).then(async t=>{let i=new Set,a=[];if(t.forEach(e=>{if(e.cause!==void 0){a.push(e.cause);let t=z(e.senderResource.sender);t?.kind===`audio`&&i.add(t);return}let t=z(e.senderResource.sender);t?.kind===`audio`&&r.add(t)}),r.forEach(e=>{i.has(e)||tt(e)}),a.length>0)throw e.localTracks.clear(),e.pendingTracks.clear(),i.forEach(t=>e.localTracks.add(t)),new p(`SDK_INTERNAL_ERROR`,`internal`,!0,{callId:n,cause:a[0]});if(!e.peerClosed&&e.peerConnection.close!==void 0)try{await e.peerConnection.close(),e.peerClosed=!0}catch(t){let r=[...e.senders.values()].map(e=>z(e.sender)).find(e=>e?.kind===`audio`);throw e.localTracks.clear(),e.pendingTracks.clear(),r!=null&&e.localTracks.add(r),new p(`SDK_INTERNAL_ERROR`,`internal`,!0,{callId:n,cause:t})}e.localTracks.clear(),e.pendingTracks.clear(),e.senders.clear(),this.resources.delete(e),this.releaseUnusedSenderQueues()}).catch(t=>{throw this.releaseErrors.set(e,t),this.calls.get(n)===void 0&&this.calls.set(n,e),t}).finally(()=>{this.releaseOperations.get(e)===a&&this.releaseOperations.delete(e)});return this.releaseOperations.set(e,a),a}releaseCall(e){let t=this.callReleaseOperations.get(e);if(t!==void 0)return t;let n=[...this.resources].filter(t=>t.callId===e);if(n.length===0)return Promise.resolve();let r=Promise.all(n.map(async e=>{try{return await this.releaseResource(e),{cause:void 0}}catch(e){return{cause:e}}})).then(e=>{let t=e.find(e=>e.cause!==void 0)?.cause;if(t!==void 0)throw t}).finally(()=>{this.callReleaseOperations.get(e)===r&&this.callReleaseOperations.delete(e)});return this.callReleaseOperations.set(e,r),r}releaseAll(){if(this.releaseAllOperation!==void 0)return this.releaseAllOperation;this.remoteAudio.releaseAll();let e=new Set([...this.resources].map(e=>e.callId)),t=Promise.all([...e].map(async e=>{try{return await this.releaseCall(e),{cause:void 0}}catch(e){return{cause:e}}})).then(e=>{let t=e.find(e=>e.cause!==void 0)?.cause;if(t!==void 0)throw t}).finally(()=>{this.releaseAllOperation===t&&(this.releaseAllOperation=void 0)});return this.releaseAllOperation=t,t}dispose(){if(this.disposeOperation!==void 0)return this.disposeOperation;this.disposing=!0;let e=this.releaseAll(),t=this.waitForInputOperations(),n=Promise.allSettled([e,t]).then(e=>{let t=e.find(e=>e.status===`rejected`);if(t?.status===`rejected`)throw t.reason;this.inputOperations.clear(),this.disposed=!0,this.disposing=!1}).finally(()=>{this.disposeOperation===n&&!this.disposed&&(this.disposeOperation=void 0),!this.disposed&&this.disposeOperation===void 0&&(this.disposing=!1)});return this.disposeOperation=n,n}async waitForInputOperations(){let e=[...this.inputOperations.values()];e.length!==0&&await Promise.allSettled(e)}async performInputSwitch(e,t,n){if(this.assertActiveCall(t),this.assertDeviceSelectionCapability(t),!this.isCurrentResource(n)||t.peerConnection!==n.peerConnection)throw this.callOperationError(t.callId);let r=this.findAudioSender(n),i=z(r.sender),a=n.generation,o=await this.deviceManager.openInputStream(e),s;try{s=o.getTracks()}catch(e){throw et(o),new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{callId:t.callId,cause:e})}let c;try{c=o.getAudioTracks()}catch(e){throw B(s),new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{callId:t.callId,cause:e})}let l=c[0];if(l===void 0)throw B(s),new p(`MEDIA_DEVICE_NOT_FOUND`,`media`,!1,{callId:t.callId});if(!this.canCommitInputSwitch(t,n,r,i,a))throw B(s),this.callOperationError(t.callId);s.forEach(e=>n.pendingTracks.add(e)),n.pendingTracks.add(l);try{await this.enqueueSender(n,r,()=>r.sender.replaceTrack(l))}catch(e){throw n.released?this.callOperationError(t.callId):(n.released||(s.forEach(e=>n.pendingTracks.delete(e)),n.pendingTracks.delete(l),await this.rollbackSender(n,r,i,l),B(s)),new p(`MEDIA_DEVICE_IN_USE`,`media`,!0,{callId:t.callId,cause:e}))}if(!this.canCommitInputSwitch(t,n,r,l,a)){if(!n.released)try{await this.enqueueSender(n,r,()=>z(r.sender)===l?$e(r.sender):Promise.resolve()),s.forEach(e=>n.pendingTracks.delete(e)),n.pendingTracks.delete(l),B(s)}catch(e){throw new p(`SDK_INTERNAL_ERROR`,`internal`,!0,{callId:t.callId,cause:e})}throw this.callOperationError(t.callId)}s.forEach(e=>n.pendingTracks.delete(e)),n.pendingTracks.delete(l),n.localTracks.add(l),i!==null&&i!==l&&(n.localTracks.delete(i),tt(i)),s.forEach(e=>{e!==l&&tt(e)})}ensureCallMedia(e){let t=this.calls.get(e.callId);if(t!==void 0&&t.peerConnection===e.peerConnection)return t;if(e.peerConnection===void 0)throw this.capabilityError(e.callId);this.registerCallMedia(e.callId,e.peerConnection);let n=this.calls.get(e.callId);if(n===void 0)throw this.callOperationError(e.callId);return n}captureSenders(e,t){let n;try{n=e.peerConnection.getSenders()}catch(t){throw new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{callId:e.callId,cause:t})}n.forEach(n=>{let r=z(n),i;try{i=t?.(n)??n.senderKind??n.kind}catch(t){throw new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{callId:e.callId,cause:t})}e.senders.set(n,{sender:n,audio:i===`audio`||i===void 0&&r?.kind===`audio`,queue:this.senderQueues.get(n)??this.createSenderQueue(n)}),r?.kind===`audio`&&e.localTracks.add(r)})}findAudioSender(e){let t=[...e.senders.values()].find(e=>e.audio&&(z(e.sender)?.kind===`audio`||z(e.sender)===null));if(t===void 0)throw this.capabilityError(e.callId);return t}handleTrackEvent(e,t){if(!this.isCurrentResource(e)||t.track.kind!==`audio`)return;let n=t.streams[0]??this.createRemoteStream(t.track);n!==void 0&&this.bindRemoteTrack(e.callId,n).catch(()=>void 0)}canCommitInputSwitch(e,t,n,r,i){if(this.disposed||!this.isCurrentResource(t,i)||e.state!==`active`||e.peerConnection!==t.peerConnection||!t.senders.has(n.sender))return!1;try{if(!t.peerConnection.getSenders().includes(n.sender))return!1}catch{return!1}return z(n.sender)===r}enqueueSender(e,t,n,r=!1){t.queue.pending+=1;let i=t.queue.chain.then(async()=>{if(e.released&&!r)throw this.callOperationError(e.callId);return n()},async()=>{if(e.released&&!r)throw this.callOperationError(e.callId);return n()}),a=i.finally(()=>{--t.queue.pending});return t.queue.chain=a.catch(()=>void 0),i}createSenderQueue(e){let t={chain:Promise.resolve(),pending:0};return this.senderQueues.set(e,t),t}releaseUnusedSenderQueues(){let e=new Set;this.resources.forEach(t=>t.senders.forEach(t=>e.add(t.sender))),this.senderQueues.forEach((t,n)=>{t.pending===0&&!e.has(n)&&this.senderQueues.delete(n)})}async rollbackSender(e,t,n,r){e.released||z(t.sender)!==r||await this.enqueueSender(e,t,()=>t.sender.replaceTrack(n)).catch(()=>void 0)}isCurrentResource(e,t=e.generation){return!this.disposed&&this.calls.get(e.callId)===e&&e.generation===t}unsubscribeTrackSource(e){let t=e.trackSourceUnsubscribe;if(e.trackSourceUnsubscribe=void 0,t!==void 0)try{t()}catch{}}assertActiveCall(e){if(e===void 0||e.state!==`active`)throw new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:e?.callId})}assertDeviceSelectionCapability(e){if(e.capabilities===void 0||!e.capabilities.has(`device_selection`))throw this.capabilityError(e.callId)}capabilityError(e){return new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1,{callId:e})}callOperationError(e){return new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:e})}assertNotDisposed(){if(this.disposed||this.disposing)throw new p(`SDK_ALREADY_DISPOSED`,`internal`,!1)}};function Ze(e){return`peerConnection`in e}function z(e){try{return e.track}catch{return null}}function Qe(e){return typeof e==`object`&&!!e&&e.name===`InvalidStateError`}function $e(e){try{return e.replaceTrack(null).catch(e=>{if(!Qe(e))throw e})}catch(e){return Qe(e)?Promise.resolve():Promise.reject(e)}}function et(e){try{B(e.getTracks())}catch{}}function B(e){e.forEach(tt)}function tt(e){try{e.stop()}catch{}}function nt(e){if(typeof MediaStream<`u`)try{return new MediaStream([e])}catch{return}}m();function rt(e,t={}){let n=new Map,r=new Map,i=new Set,a=t.ownershipRequired===!0,o=!1,s=!1,c,l=()=>e(),u=new Xe({getActiveCall:l});return{publicMedia:{requestPermission:()=>(d(),u.requestPermission()),getDevices:()=>(d(),u.getDevices()),getCapabilities:()=>(d(),u.getCapabilities()),supportsOutputSelection:()=>(d(),u.supportsOutputSelection()),setInputDevice:e=>(d(),u.setInputDevice(e,l())),setOutputDevice:e=>(d(),u.setOutputDevice(e)),playRemoteAudio:e=>(d(),u.playRemoteAudio(e)),releaseAll:()=>(d(),u.releaseAll())},registerCall(e,t){o||s||!it(t)||(r.set(e,t),(!a||i.has(e))&&f(e,t))},async setCallOwnership(e,t){if(o)return;if(t!==`owned`){i.delete(e),await u.releaseCall(e),n.delete(e);return}i.add(e);let a=r.get(e);a!==void 0&&f(e,a)},contextFor(e,t,r){let i=n.get(e);if(i!==void 0)return{callId:e,state:t,capabilities:r,peerConnection:i.peerConnection}},async releaseCall(e){o||(await u.releaseCall(e),n.delete(e),r.delete(e),i.delete(e))},releaseAll:async()=>{await u.releaseAll(),n.clear(),r.clear(),i.clear()},getResourceCounts:()=>u.getResourceCounts(),dispose:()=>{if(c!==void 0)return c;s=!0;let e=u.dispose().then(()=>{o=!0,s=!1,n.clear(),r.clear(),i.clear()}).finally(()=>{c===e&&!o&&(c=void 0,s=!1)});return c=e,e}};function d(){if(o)throw new p(`SDK_ALREADY_DISPOSED`,`internal`,!1)}function f(e,t){if(!it(t)||typeof t.getMediaRegistration!=`function`)return;let r=t.getMediaRegistration();if(at(r)&&n.get(e)?.peerConnection!==r.peerConnection){n.set(e,r);try{u.registerCallMedia(e,r)}catch{n.delete(e)}}}}function it(e){return typeof e==`object`&&!!e}function at(e){return typeof e==`object`&&!!e&&`peerConnection`in e&&typeof e.peerConnection==`object`&&e.peerConnection!==null}var ot=1e3,st=3e4;function ct(e,t=Math.random){let n=Math.min(st,ot*2**Math.max(0,Math.floor(e))),r=Math.min(1,Math.max(0,t()));return Math.round(n*(1+r*.2))}var lt=class{recover;random;isOnline;onAttempt;attempt=0;pendingTimer;running=!1;online=!0;generation=0;disposed=!1;restartAfterRun=!1;constructor(e){this.recover=e.recover,this.random=e.random??Math.random,this.isOnline=e.isOnline??(()=>!0),this.onAttempt=e.onAttempt}start(){if(this.disposed||!this.online||!this.isOnline()||this.pendingTimer!==void 0||this.running)return;let e=this.generation,t=ct(this.attempt,this.random);this.pendingTimer=setTimeout(()=>{this.pendingTimer=void 0,this.run(e)},t)}notifyOffline(){this.disposed||(this.online=!1,this.generation+=1,this.clearPendingTimer(),this.restartAfterRun=!1)}notifyOnline(){this.disposed||(this.online=!0,this.running&&(this.restartAfterRun=!0),this.start())}cancel(){this.disposed||(this.generation+=1,this.clearPendingTimer(),this.attempt=0,this.restartAfterRun=!1)}dispose(){this.disposed||(this.disposed=!0,this.generation+=1,this.clearPendingTimer(),this.restartAfterRun=!1)}getTimerCount(){return this.pendingTimer===void 0?0:1}async run(e){if(this.disposed||!this.online||e!==this.generation||this.running)return;this.running=!0;try{this.onAttempt?.(this.attempt)}catch{}let t=!1;try{await this.recover(),this.isCurrent(e)&&(this.attempt=0)}catch{this.isCurrent(e)&&(this.attempt+=1,t=!0)}finally{this.running=!1}this.restartAfterRun?(this.restartAfterRun=!1,this.isCurrent(this.generation)&&this.start()):t&&this.isCurrent(e)&&this.start()}isCurrent(e){return!this.disposed&&this.online&&e===this.generation&&this.isOnline()}clearPendingTimer(){this.pendingTimer!==void 0&&(clearTimeout(this.pendingTimer),this.pendingTimer=void 0)}},ut=class{capacity;entries=[];constructor(e){if(this.capacity=e,!Number.isInteger(e)||e<=0)throw RangeError(`RingBuffer capacity must be a positive integer`)}push(e){this.entries.length===this.capacity&&this.entries.shift(),this.entries.push(e)}toArray(){return[...this.entries]}},dt=`@16x/webphone-sdk`,ft=200,pt=class{dependencies;logs=new ut(ft);now;constructor(e){this.dependencies=e,this.now=e.now??(()=>new Date)}log(e,t,n){this.logs.push({timestamp:this.now().toISOString(),level:e,message:P(t),...n===void 0?{}:{context:we(n)}})}async getReport(e={}){let t=e.includeRecentLogs!==!1,n=e.includeDeviceNames===!0,r=e.maskPhoneNumbers!==!1,i=this.dependencies.getSnapshot(),a=this.dependencies.getPermission===void 0?i.permission:await mt(this.dependencies.getPermission,i.permission),o=n?await ht(this.dependencies.getDeviceNames):void 0,s=_t(gt(this.dependencies.getUserAgent));return we({generatedAt:this.now().toISOString(),sdk:{name:dt,version:ge},browser:s.browser,os:s.os,...i,permission:a,recentLogs:t?this.logs.toArray():[],...o===void 0?{}:{deviceNames:o}},{maskPhoneNumbers:r})}};async function mt(e,t){try{return await e()}catch{return t}}async function ht(e){if(e===void 0)return[];try{return[...await e()]}catch{return[]}}function gt(e){if(e!==void 0)try{return e()}catch{return``}return typeof navigator>`u`?``:navigator.userAgent}function _t(e){return{browser:vt(e),os:yt(e)}}function vt(e){for(let[t,n]of[[`Edge`,/Edg\/([\d.]+)/],[`Chrome`,/(?:Chrome|CriOS)\/([\d.]+)/],[`Firefox`,/(?:Firefox|FxiOS)\/([\d.]+)/],[`Safari`,/Version\/([\d.]+).*Safari/]]){let r=e.match(n);if(r?.[1]!==void 0)return{name:t,version:r[1]}}return{name:`unknown`,version:``}}function yt(e){let t=e.match(/(?:iPhone|iPad).*OS ([\d_]+)/);if(t?.[1]!==void 0)return{name:`iOS`,version:t[1].replaceAll(`_`,`.`)};let n=e.match(/Android ([\d.]+)/);if(n?.[1]!==void 0)return{name:`Android`,version:n[1]};let r=e.match(/Windows NT ([\d.]+)/);if(r?.[1]!==void 0)return{name:`Windows`,version:r[1]};let i=e.match(/Mac OS X ([\d_]+)/);return i?.[1]===void 0?/Linux/.test(e)?{name:`Linux`,version:``}:{name:`unknown`,version:``}:{name:`macOS`,version:i[1].replaceAll(`_`,`.`)}}var bt=l({bugs:()=>jt,contributors:()=>Et,default:()=>Ft,dependencies:()=>Pt,description:()=>Ct,devDependencies:()=>V,files:()=>Mt,homepage:()=>Tt,keywords:()=>kt,license:()=>`MIT`,main:()=>Ot,name:()=>xt,repository:()=>At,scripts:()=>Nt,title:()=>St,types:()=>Dt,version:()=>wt}),xt,St,Ct,wt,Tt,Et,Dt,Ot,kt,At,jt,Mt,Nt,Pt,V,Ft,It=s((()=>{xt=`jssip`,St=`JsSIP`,Ct=`The Javascript SIP library`,wt=`3.13.8`,Tt=`https://jssip.net`,Et=[`José Luis Millán <jmillan@aliax.net> (https://github.com/jmillan)`,`Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)`],Dt=`lib/JsSIP.d.ts`,Ot=`lib/JsSIP.js`,kt=[`sip`,`websocket`,`webrtc`,`node`,`browser`,`library`],At={type:`git`,url:`https://github.com/versatica/JsSIP.git`},jt={url:`https://github.com/versatica/JsSIP/issues`},Mt=[`LICENSE`,`README.md`,`npm-scripts.mjs`,`lib`],Nt={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`},Pt={debug:`^4.3.1`,events:`^3.3.0`,"sdp-transform":`^2.14.1`},V={"@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`},Ft={name:xt,title:St,description:Ct,version:wt,homepage:Tt,contributors:Et,types:Dt,main:Ot,keywords:kt,license:`MIT`,repository:At,bugs:jt,files:Mt,scripts:Nt,dependencies:Pt,devDependencies:V}})),H=c(((e,t)=>{var n=(It(),f(bt).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}})),U=c(((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}}}})),Lt=c(((e,t)=>{var n=G(),r=W();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}}})),W=c(((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:te,LHEX:ne,token:O,token_nodot:re,separators:ie,word:ae,STAR:oe,SLASH:se,EQUAL:k,LPAREN:ce,RPAREN:le,RAQUOT:ue,LAQUOT:de,COMMA:A,SEMI:j,COLON:fe,LDQUOT:pe,RDQUOT:me,comment:he,ctext:ge,quoted_string:M,quoted_string_clean:_e,qdtext:ve,quoted_pair:N,SIP_URI_noparams:ye,SIP_URI:be,uri_scheme:xe,uri_scheme_sips:Se,uri_scheme_sip:Ce,userinfo:P,user:we,user_unreserved:Te,password:Ee,hostport:De,host:F,hostname:I,domainlabel:Oe,toplabel:ke,IPv6reference:Ae,IPv6address:je,h16:L,ls32:R,IPv4address:Me,dec_octet:Ne,port:Pe,uri_parameters:Fe,uri_parameter:Ie,transport_param:Le,user_param:Re,method_param:ze,ttl_param:Be,maddr_param:Ve,lr_param:He,other_param:Ue,pname:We,pvalue:Ge,paramchar:Ke,param_unreserved:qe,headers:Je,header:Ye,hname:Xe,hvalue:Ze,hnv_unreserved:z,Request_Response:Qe,Request_Line:$e,Request_URI:et,absoluteURI:B,hier_part:tt,net_path:nt,abs_path:rt,opaque_part:it,uric:at,uric_no_slash:ot,path_segments:st,segment:ct,param:lt,pchar:ut,scheme:dt,authority:ft,srvr:pt,reg_name:mt,query:ht,SIP_Version:gt,INVITEm:_t,ACKm:vt,OPTIONSm:yt,BYEm:bt,CANCELm:xt,REGISTERm:St,SUBSCRIBEm:Ct,NOTIFYm:wt,REFERm:Tt,Method:Et,Status_Line:Dt,Status_Code:Ot,extension_code:kt,Reason_Phrase:At,Allow_Events:jt,Call_ID:Mt,Contact:Nt,contact_param:Pt,name_addr:V,display_name:Ft,contact_params:It,c_p_q:H,c_p_expires:U,delta_seconds:W,qvalue:K,generic_param:q,gen_value:Rt,Content_Disposition:zt,disp_type:Bt,disp_param:J,handling_param:Vt,Content_Encoding:Ht,Content_Length:Ut,Content_Type:Wt,media_type:Y,m_type:Gt,discrete_type:Kt,composite_type:qt,extension_token:X,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:Z,via_params:Wn,via_ttl:Gn,via_maddr:Kn,via_received:qn,via_branch:Jn,response_port:Yn,rport:Xn,sent_protocol:Zn,protocol_name:Qn,transport:$n,sent_by:er,via_host:tr,via_port:nr,ttl:rr,WWW_Authenticate:ir,Session_Expires:ar,s_e_expires:or,s_e_params:sr,s_e_refresher:cr,extension_header:lr,header_value:ur,message_body:dr,uuid_URI:fr,uuid:pr,hex4:Q,hex8:mr,hex12:hr,Refer_To:gr,Replaces:_r,call_id:vr,replaces_param:yr,to_tag:br,from_tag:xr,early_flag:Sr};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
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.CCBarSDK={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},c=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),l=(e,t)=>{let r={};for(var i in e)n(r,i,{get:e[i],enumerable:!0});return t||n(r,Symbol.toStringTag,{value:`Module`}),r},u=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},d=(e,r,i)=>(i=e==null?{}:t(a(e)),u(r||!e||!e.__esModule||!o.call(e,`default`)?n(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>o.call(e,`module.exports`)?e[`module.exports`]:u(n({},`__esModule`,{value:!0}),e),p,m=s((()=>{p=class extends Error{code;category;retryable;requestId;callId;cause;serverCode;status;constructor(e,t,n,r={}){super(e),this.name=`CCBarError`,this.code=e,this.category=t,this.retryable=n,this.requestId=r.requestId,this.callId=r.callId,this.cause=r.cause,this.serverCode=r.serverCode,this.status=r.status}}}));m();var h=class{handlers=new Map;on(e,t){let n=this.handlers.get(e)??new Set;n.add(t),this.handlers.set(e,n);let r=!0;return()=>{r&&(r=!1,n.delete(t))}}off(e,t){this.handlers.get(e)?.delete(t)}emit(e,t){[...this.handlers.get(e)??[]].forEach(e=>{try{e(t)}catch{}})}listenerCount(){return[...this.handlers.values()].reduce((e,t)=>e+t.size,0)}clear(){this.handlers.clear()}},g={new:new Set([`dialing`,`ringing`,`failed`]),dialing:new Set([`ringing`,`connecting`,`ended`,`failed`]),ringing:new Set([`connecting`,`ended`,`failed`]),connecting:new Set([`active`,`ended`,`failed`]),active:new Set([`held`,`ended`,`failed`]),held:new Set([`active`,`ended`,`failed`]),ended:new Set,failed:new Set},_=(e,t)=>g[e].has(t);function v(e,t){if(!_(e,t))throw new y(e,t);return t}var y=class extends p{constructor(e,t){super(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{cause:{from:e,to:t}})}},b=v;function x(e){if(e.code!==`OK`)throw TypeError(`Unexpected session response code: ${e.code}`);if(e.data===void 0||e.data===null)throw TypeError(`Unexpected session response: missing data`);return e.data}m();var S=[`progress`,`accepted`,`confirmed`,`ended`,`failed`,`hold`,`unhold`,`mediaConnected`],C=3e4,w=class{options;currentState=`new`;sessionUnsubscribers=[];capabilities;disposed=!1;pendingOperation;incomingOperation;ownerTabId;ownerLost=!1;id;destination;platform;constructor(e){this.options=e,this.id=e.id,this.destination=e.destination,this.platform=e.platform,this.capabilities=e.capabilities??new Set;try{S.forEach(t=>{this.sessionUnsubscribers.push(e.session.on(t,e=>this.handleSessionEvent(t,e)))})}catch(t){this.cleanupSessionListeners();try{e.session.terminate()}catch{}throw new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:this.id,cause:t})}}get state(){return this.currentState}getResourceCounts(){return{timers:this.pendingOperation?.timer===void 0?0:1,listeners:this.sessionUnsubscribers.length}}async mute(e){this.assertNotDisposed(),this.assertOwner(e),this.assertMediaControlAllowed(),this.assertCapability(`mute`),this.invoke(()=>this.options.session.mute())}async unmute(e){this.assertNotDisposed(),this.assertOwner(e),this.assertMediaControlAllowed(),this.assertCapability(`mute`),this.invoke(()=>this.options.session.unmute())}async answer(e,t){this.assertNotDisposed(),this.assertOwner(t),this.assertIncomingCall(),this.assertCapability(`inbound`),this.assertIncomingOperationAvailable(),this.incomingOperation=`answer`;try{this.options.session.answer(e)}catch(e){throw this.incomingOperation=void 0,this.finishFailedIncomingOperation(e),this.operationError(e)}this.transitionIfAllowed(`connecting`,void 0,`accepted`)}async reject(e={},t){this.assertNotDisposed(),this.assertOwner(t),this.assertIncomingCall(),this.assertIncomingOperationAvailable(),this.incomingOperation=`reject`;let n;try{this.options.session.terminate()}catch(e){n=e}finally{this.incomingOperation=void 0,this.transitionIfStillRinging(`ended`,{reason:e.reason?.trim()||`rejected`})}if(n!==void 0)throw this.operationError(n)}async hold(e){this.assertNotDisposed(),this.assertOwner(e),this.assertHoldCapability(),this.assertState(`active`),this.assertCapability(`hold`),await this.startPendingOperation(`hold`,`held`,()=>this.options.session.hold())}async resume(e){this.assertNotDisposed(),this.assertOwner(e),this.assertHoldCapability(),this.assertState(`held`),this.assertCapability(`hold`),await this.startPendingOperation(`resume`,`active`,()=>this.options.session.unhold())}async sendDtmf(e,t){if(this.assertNotDisposed(),this.assertOwner(t),!/^[0-9A-D*#]$/.test(e))throw this.operationError();this.assertState(`active`),this.assertCapability(`dtmf`),this.invoke(()=>this.options.session.sendDtmf(e))}async transfer(e,t){if(this.assertNotDisposed(),this.assertOwner(t),this.assertTransferCapability(),this.assertState(`active`),this.assertCapability(`blind_transfer`),!ee(e)||e.target.trim()===``)throw this.operationError();this.invoke(()=>this.options.session.refer(e.target.trim()))}async hangup(e){if(this.assertNotDisposed(),this.assertOwner(e),T(this.currentState))throw this.operationError();try{this.options.session.terminate(),T(this.currentState)||this.transitionTo(`ended`)}catch(e){throw this.operationError(e)}}beginOutbound(){this.assertNotDisposed(),this.assertCapability(`outbound`),this.transitionTo(`dialing`)}beginIncoming(){this.assertNotDisposed(),this.transitionTo(`ringing`)}setOwnerTabId(e){this.ownerTabId=e,this.ownerLost=!1}clearOwnerTabId(e={}){this.ownerTabId=void 0,this.ownerLost=e.lost===!0}getOwnerTabId(){return this.ownerTabId}assertOwnerForManager(e){this.assertOwner(e)}canBeReclaimed(){return this.currentState===`new`||this.currentState===`dialing`||this.currentState===`ringing`}dispose(){if(!this.disposed){if(this.rejectPendingOperation(),this.incomingOperation=void 0,this.disposed=!0,!T(this.currentState))try{this.options.session.terminate()}catch(e){this.reportOperationError(e)}this.cleanupSessionListeners();try{this.options.onDisposed?.()}catch{}}}handleSessionEvent(e,t){if((e===`accepted`||e===`confirmed`||e===`ended`||e===`failed`)&&(this.incomingOperation=void 0),!(this.disposed||T(this.currentState)))switch(e){case`progress`:this.transitionIfAllowed(`ringing`,t,e);break;case`accepted`:this.transitionIfAllowed(`connecting`,t,e);break;case`confirmed`:this.transitionToActive(t);break;case`mediaConnected`:this.currentState===`connecting`&&this.transitionTo(`active`,t);break;case`hold`:this.transitionIfAllowed(`held`,t,e);break;case`unhold`:this.transitionIfAllowed(`active`,t,e);break;case`ended`:this.transitionIfAllowed(`ended`,t,e);break;case`failed`:this.transitionIfAllowed(`failed`,t,e)}}transitionToActive(e){this.currentState!==`active`&&((this.currentState===`dialing`||this.currentState===`ringing`)&&this.transitionTo(`connecting`,e),this.transitionIfAllowed(`active`,e,`confirmed`))}transitionIfAllowed(e,t,n){this.currentState!==e&&(_(this.currentState,e)?this.transitionTo(e,t):this.reportIllegalTransition(e,n))}transitionIfStillRinging(e,t){this.currentState===`ringing`&&this.transitionTo(e,t)}transitionTo(e,t){if(this.currentState===e)return;if(!_(this.currentState,e))throw this.operationError();let n=this.currentState;this.currentState=e,T(e)&&this.rejectPendingOperation();try{this.options.onStateChanged?.({callId:this.id,from:n,to:e},t)}catch{}finally{T(e)&&this.dispose()}}startPendingOperation(e,t,n){if(this.pendingOperation!==void 0)throw this.operationError();return new Promise((r,i)=>{let a={kind:e,nextState:t,resolve:r,reject:i};this.pendingOperation=a,a.timer=setTimeout(()=>this.timeoutPendingOperation(a),C);let o;try{o=n()}catch(e){this.rejectPendingOperation(e);return}o.then(()=>this.resolvePendingOperation(a),e=>this.rejectPendingOperation(e,a))})}resolvePendingOperation(e){if(this.pendingOperation===e){if(this.clearPendingTimer(e),this.pendingOperation=void 0,this.disposed||T(this.currentState)){e.reject(this.operationError());return}try{this.transitionTo(e.nextState),e.resolve()}catch(t){e.reject(this.operationError(t))}}}rejectPendingOperation(e,t){let n=this.pendingOperation;n===void 0||t!==void 0&&n!==t||(this.clearPendingTimer(n),this.pendingOperation=void 0,n.reject(this.operationError(e)))}timeoutPendingOperation(e){this.pendingOperation===e&&(this.rejectPendingOperation(Error(`${e.kind} operation timed out`),e),this.dispose())}clearPendingTimer(e){e.timer!==void 0&&(clearTimeout(e.timer),e.timer=void 0)}reportIllegalTransition(e,t){this.reportOperationError({event:t,from:this.currentState,to:e})}reportOperationError(e){let t=e instanceof p&&e.callId===this.id?e:this.operationError(e);try{this.options.onError?.(t)}catch{}}finishFailedIncomingOperation(e){this.reportOperationError(e);try{this.options.session.terminate()}catch(t){e={operation:e,cleanup:t}}this.transitionIfStillRinging(`ended`,{reason:`incoming_operation_failed`,cause:e})}cleanupSessionListeners(){this.sessionUnsubscribers.splice(0).forEach(e=>{try{e()}catch{}})}assertState(e){if(this.currentState!==e)throw this.operationError()}assertMediaControlAllowed(){if(this.currentState!==`active`&&this.currentState!==`held`)throw this.operationError()}assertHoldCapability(){if(this.platform===`mobile-web`)throw this.capabilityError()}assertTransferCapability(){if(this.platform===`mobile-web`)throw this.capabilityError()}assertIncomingCall(){if(this.options.incoming!==!0||this.currentState!==`ringing`)throw this.operationError()}assertIncomingOperationAvailable(){if(this.incomingOperation!==void 0)throw this.operationError()}assertCapability(e){if(!this.capabilities.has(e))throw this.capabilityError()}invoke(e){try{e()}catch(e){throw this.operationError(e)}}assertNotDisposed(){if(this.disposed)throw this.operationError()}assertOwner(e){if(e!==void 0&&(this.ownerLost||this.ownerTabId!==void 0&&this.ownerTabId!==e))throw this.operationError()}capabilityError(){return new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1,{callId:this.id})}operationError(e){return new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:this.id,cause:e})}};function T(e){return e===`ended`||e===`failed`}function ee(e){return typeof e==`object`&&!!e&&e.type===`blind`&&typeof e.target==`string`}var E=0;function D(){return E+=1,`call_${Date.now().toString(36)}_${E.toString(36)}`}m();var te=`X-User-Data`,ne=/[^\x20-\x7E]/,O=`userdata 只能是可见 ASCII(不能有换行/制表/中文):换行会构成 SIP 头注入;要传中文或 JSON 请调用方先 encodeURIComponent / base64,再在平台侧解回来`;function re(e){if(typeof e!=`string`)return[];let t=e.trim();if(t===``)return[];if(ne.test(t))throw new p(`CALL_INVALID_USERDATA`,`call`,!1,{cause:O});return[`${te}: ${t}`]}m();var ie=class{events=new ae;calls=new Map;options;incomingUnsubscribe;activeCallId=null;incomingSessionSnapshot;callSessions=new Map;callOwners=new Map;ownerLostCalls=new Set;pendingDialCount=0;pendingDestinations=new Set;activeOperationPromise=Promise.resolve();operationGeneration=0;automaticActiveTransition;disposed=!1;terminalNotified=new Set;terminalOperations=new Map;disposeOperation;constructor(e){this.options=e,this.incomingSessionSnapshot=e.session;try{this.incomingUnsubscribe=e.sip.onIncoming(e=>this.handleIncoming(e))}catch(e){throw new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{cause:e})}}on(e,t){return this.disposed?()=>void 0:this.events.on(e,t)}async dial(e,t){this.assertNotDisposed();let n=this.operationGeneration,r=e.destination.trim();if(r===``)throw new p(`CALL_INVALID_DESTINATION`,`call`,!1);let i=/^\+?\d{3,20}$/.test(r),a=/^sips?:[^\s<>@]+(?:@[^\s<>@]+)?$/i.test(r);if(!i&&!a)throw new p(`CALL_INVALID_DESTINATION`,`call`,!1);let o=re(e.userdata);this.requireCapability(t,`outbound`);let s=this.callLimit(t);if(this.options.platform===`mobile-web`&&this.calls.size+this.pendingDialCount>=s)throw this.capabilityError();if(this.calls.size+this.pendingDialCount>=s||this.pendingDestinations.has(r)||[...this.calls.values()].some(e=>e.destination===r))throw new p(`CALL_ALREADY_EXISTS`,`call`,!1);this.pendingDialCount+=1,this.pendingDestinations.add(r);let c=D(),l;try{l=await this.holdActiveCallForNewCall(),this.assertGeneration(n,c);let i;try{i=this.options.sip.dial(r,this.dialOptions(c,t,e.type,o))}catch(e){throw this.dialError(e,c)}this.assertGeneration(n,c);let a;try{a=new w({id:c,destination:r,platform:this.options.platform,capabilities:this.effectiveCapabilities(t),session:i,onStateChanged:(e,t)=>this.handleStateChanged(a,e,t),onError:e=>this.events.emit(`error`,{error:e}),onDisposed:()=>this.handleDisposed(a)})}catch(e){throw this.dialError(e,c)}if(!this.isCurrentGeneration(n))throw a.dispose(),this.callOperationError(a.id);this.calls.set(a.id,a),this.callSessions.set(a.id,i),this.options.onCallCreated?.(a.id,i);try{a.beginOutbound()}catch(e){throw a.dispose(),this.calls.delete(a.id),this.callSessions.delete(a.id),this.dialError(e,a.id)}if(!this.isCurrentGeneration(n))throw a.dispose(),this.calls.delete(a.id),this.callSessions.delete(a.id),this.callOperationError(a.id);return this.events.emit(`call.created`,{callId:a.id,state:a.state}),a}catch(e){if(this.isCurrentGeneration(n)&&l!==void 0&&this.isManagedCall(l)&&l.state===`held`)try{await l.resume()}catch(t){throw this.compensationError(l.id,void 0,e,t)}throw e}finally{--this.pendingDialCount,this.pendingDestinations.delete(r)}}async answer(e,t,n,r){this.assertNotDisposed();let i=this.requireCall(e);if(this.options.platform===`mobile-web`&&t.policy.mobileIncomingEnabled!==!0)throw this.capabilityError(e);let a={iceServers:t.iceServers,pcConfig:{iceServers:t.iceServers},...n===void 0?{}:{mediaConstraints:n}};await i.answer(a,r)}async reject(e,t,n){this.assertNotDisposed(),await this.requireCall(e).reject(t,n)}getCalls(){return[...this.calls.values()]}hasNonTerminalCalls(){return this.calls.size>0}getResourceCounts(){let e=[...this.calls.values()].map(e=>e.getResourceCounts());return{timers:e.reduce((e,t)=>e+t.timers,0),listeners:this.events.listenerCount()+e.reduce((e,t)=>e+t.listeners,0),terminalRecords:this.terminalNotified.size+this.terminalOperations.size}}getActiveCall(){return this.activeCallId===null?void 0:this.calls.get(this.activeCallId)}async setActiveCall(e,t){this.assertNotDisposed(),this.requireCall(e).assertOwnerForManager(t),await this.enqueueActiveOperation(t=>this.switchActiveCall(e,t))}async claimCall(e,t){this.assertNotDisposed();let n=t.trim();if(n===``)throw this.callOperationError(e);let r=this.requireCall(e),i=this.callOwners.get(e);if(i!==n){if(i!==void 0||this.ownerLostCalls.has(e)&&!r.canBeReclaimed())throw this.callOperationError(e);this.ownerLostCalls.delete(e),this.callOwners.set(e,n),r.setOwnerTabId(n),this.emitOwnershipChanged({callId:e,state:`owned`,ownerTabId:n})}}async releaseCall(e,t){this.assertNotDisposed();let n=this.requireCall(e);if(this.callOwners.get(e)!==t)throw this.callOperationError(e);this.callOwners.delete(e);let r=!n.canBeReclaimed();r?this.ownerLostCalls.add(e):this.ownerLostCalls.delete(e),n.clearOwnerTabId({lost:r}),this.emitOwnershipChanged({callId:e,state:r?`owner-lost`:`released`})}getCallOwner(e){return this.callOwners.get(e)}releaseOwnedCalls(e){for(let[t,n]of[...this.callOwners.entries()]){if(n!==e)continue;let r=this.calls.get(t);if(r===void 0){this.callOwners.delete(t),this.ownerLostCalls.delete(t);continue}this.callOwners.delete(t);let i=!r.canBeReclaimed();i?this.ownerLostCalls.add(t):this.ownerLostCalls.delete(t),r.clearOwnerTabId({lost:i}),this.emitOwnershipChanged({callId:t,state:i?`owner-lost`:`released`})}}dispose(e={}){if(this.disposeOperation!==void 0)return this.disposeOperation;this.disposed=!0,this.operationGeneration+=1,this.automaticActiveTransition=void 0,this.activeOperationPromise=Promise.resolve(),this.events.clear();try{this.incomingUnsubscribe()}catch{}this.activeCallId=null;let t=[...this.calls.values()];this.calls.clear(),this.callSessions.clear(),this.callOwners.clear(),this.ownerLostCalls.clear();let n=Promise.all(t.map(async t=>{let n;try{e.terminateCalls===!0&&t.state!==`ended`&&t.state!==`failed`?await t.hangup():t.dispose()}catch(e){n=e,t.dispose()}try{await this.notifyCallTerminal(t.id)}catch(e){n??=e}if(n!==void 0)throw n})).finally(()=>{this.terminalNotified.clear(),this.terminalOperations.clear()}).then(()=>void 0);return this.disposeOperation=n,n}updateSession(e){this.disposed||(this.incomingSessionSnapshot=e)}async switchActiveCall(e,t){this.assertGeneration(t,e);let n=this.requireCall(e),r=this.getActiveCall();if(r?.id===n.id)return;if(n.state!==`held`&&n.state!==`active`)throw this.callOperationError(e);let i=n.state===`held`;try{if(r!==void 0&&await r.hold(),this.assertGeneration(t,n.id),n.state===`held`&&await n.resume(),this.assertGeneration(t,n.id),!this.isManagedCall(n)||n.state!==`active`)throw this.callOperationError(n.id);this.commitActive(n,t)}catch(a){if(!this.isCurrentGeneration(t))throw this.callOperationError(n.id,a);if(r===void 0)throw this.callOperationError(e,a);try{let e=n.state===`active`;i&&e&&this.isManagedCall(n)&&await n.hold(),this.assertGeneration(t,n.id),r.state===`held`&&this.isManagedCall(r)&&await r.resume(),this.assertGeneration(t,r.id),r.state===`active`&&this.isManagedCall(r)&&this.commitActive(r,t)}catch(e){throw this.compensationError(r.id,n.id,a,e)}throw this.isManagedCall(r)&&r.state===`active`&&this.commitActive(r,t),this.callOperationError(n.id,{operation:a,restoredCallId:r.id})}}handleStateChanged(e,t,n){if(this.disposed)return;let r=this.callSessions.get(e.id);if(r!==void 0&&this.options.onCallStateChanged?.(e.id,r),this.events.emit(`call.stateChanged`,t),t.to===`active`&&this.activeCallId!==e.id){let t=this.getActiveCall();if(this.options.autoHoldPreviousCall===!0&&t!==void 0&&t.id!==e.id&&t.state===`active`){let n=this.operationGeneration;this.enqueueActiveOperation(n=>this.switchAutomaticActiveCall(t,e,n)).catch(e=>{this.isCurrentGeneration(n)&&this.events.emit(`error`,{error:e})})}else this.commitActive(e)}t.to===`held`&&this.activeCallId===e.id&&this.automaticActiveTransition?.previous.id!==e.id&&(this.activeCallId=null,this.events.emit(`call.activeChanged`,{callId:null})),(t.to===`ended`||t.to===`failed`)&&(this.calls.delete(e.id),this.callSessions.delete(e.id),this.callOwners.delete(e.id),this.ownerLostCalls.delete(e.id),this.activeCallId===e.id&&this.automaticActiveTransition?.previous.id!==e.id&&(this.activeCallId=null,this.events.emit(`call.activeChanged`,{callId:null})),this.notifyCallTerminal(e.id),t.to===`ended`?this.events.emit(`call.ended`,{callId:e.id,reason:oe(n)}):this.events.emit(`call.failed`,{callId:e.id,error:se(n,e.id)}))}async switchAutomaticActiveCall(e,t,n){this.automaticActiveTransition={previous:e,target:t};let r;try{if(this.assertGeneration(n,t.id),!this.isManagedCall(t)||t.state!==`active`)return;if(!this.isManagedCall(e)||e.state!==`active`){this.commitActive(t,n);return}if(await e.hold(),this.assertGeneration(n,t.id),!this.isManagedCall(e)){this.isManagedCall(t)&&t.state===`active`&&this.commitActive(t,n);return}if(!this.isManagedCall(t)||t.state!==`active`)r=Error(`target call is no longer active`);else{this.commitActive(t,n);return}}catch(e){r=e}finally{this.automaticActiveTransition?.target.id===t.id&&(this.automaticActiveTransition=void 0)}if(!this.isCurrentGeneration(n))return;if(!this.isManagedCall(e)){this.isManagedCall(t)&&t.state===`active`&&this.commitActive(t,n);return}let i=await this.restoreAutomaticActiveCall(e,t,r,n);if(this.isCurrentGeneration(n)){if(i.error!==void 0)throw i.error;if(!this.isManagedCall(e)){this.isManagedCall(t)&&t.state===`active`&&this.commitActive(t,n);return}throw this.callOperationError(t.id,{operation:r,restoredCallId:e.id})}}async restoreAutomaticActiveCall(e,t,n,r){if(!this.isCurrentGeneration(r))return{};if(!this.isManagedCall(e))return this.isManagedCall(t)&&t.state===`active`&&this.commitActive(t,r),{};let i;try{this.isManagedCall(t)&&t.state===`active`&&await t.hold(),this.assertGeneration(r,t.id),this.isManagedCall(e)&&e.state===`held`&&await e.resume(),this.assertGeneration(r,e.id)}catch(e){i=e}return this.isCurrentGeneration(r)?this.isManagedCall(e)?i===void 0?(e.state===`active`&&this.commitActive(e,r),{}):{error:this.compensationError(e.id,t.id,n,i)}:(this.isManagedCall(t)&&t.state===`active`&&this.commitActive(t,r),{}):{}}handleDisposed(e){this.disposed||(this.calls.delete(e.id),this.callSessions.delete(e.id),this.callOwners.delete(e.id),this.ownerLostCalls.delete(e.id),this.notifyCallTerminal(e.id),this.activeCallId===e.id&&(this.activeCallId=null,this.events.emit(`call.activeChanged`,{callId:null})))}commitActive(e,t=this.operationGeneration){this.isCurrentGeneration(t)&&this.isManagedCall(e)&&e.state===`active`&&this.activeCallId!==e.id&&(this.activeCallId=e.id,this.events.emit(`call.activeChanged`,{callId:e.id}))}handleIncoming(e){if(this.disposed)return;let t=D(),n=this.incomingSessionSnapshot;if(n===void 0||!n.policy.incomingEnabled||!this.effectiveCapabilities(n).has(`inbound`)){this.terminateUnsupportedIncoming(e),this.events.emit(`error`,{error:this.capabilityError(t)});return}let r=e.from??e.id;if(this.calls.size+this.pendingDialCount>=this.callLimit(n)){this.terminateUnsupportedIncoming(e),this.events.emit(`error`,{error:new p(`CALL_ALREADY_EXISTS`,`call`,!1,{callId:t})});return}let i;try{i=new w({id:t,destination:r,platform:this.options.platform,incoming:!0,capabilities:this.effectiveCapabilities(n),session:e,onStateChanged:(e,t)=>this.handleStateChanged(i,e,t),onError:e=>this.events.emit(`error`,{error:e}),onDisposed:()=>this.handleDisposed(i)})}catch(e){this.events.emit(`error`,{error:this.callOperationError(t,e)});return}this.calls.set(i.id,i),this.callSessions.set(i.id,e),this.options.onCallCreated?.(i.id,e);try{i.beginIncoming(),this.events.emit(`call.incoming`,{callId:i.id,from:r})}catch(e){i.dispose(),this.events.emit(`error`,{error:this.callOperationError(i.id,e)})}}terminateUnsupportedIncoming(e){try{e.terminate()}catch{}}async holdActiveCallForNewCall(){if(this.options.autoHoldPreviousCall!==!0)return;let e=this.getActiveCall();if(e!==void 0&&e.state===`active`)return await e.hold(),e}enqueueActiveOperation(e){let t=this.operationGeneration,n=()=>this.isCurrentGeneration(t)?e(t):Promise.reject(this.callOperationError(``)),r=this.activeOperationPromise.then(n,n);return this.activeOperationPromise=r.catch(()=>void 0),r}isManagedCall(e){return!this.disposed&&this.calls.get(e.id)===e&&e.state!==`ended`&&e.state!==`failed`}isCurrentGeneration(e){return!this.disposed&&this.operationGeneration===e}assertGeneration(e,t){if(!this.isCurrentGeneration(e))throw this.callOperationError(t??``)}effectiveCapabilities(e){let t=new Set(e.capabilities);return this.options.platform===`mobile-web`&&(t.delete(`hold`),t.delete(`blind_transfer`),e.policy.mobileIncomingEnabled!==!0&&t.delete(`inbound`)),t}requireCapability(e,t,n){if(!this.effectiveCapabilities(e).has(t))throw this.capabilityError(n)}requireCall(e){let t=this.calls.get(e);if(t===void 0)throw this.callOperationError(e);return t}emitOwnershipChanged(e){this.events.emit(`call.ownershipChanged`,e)}notifyCallTerminal(e){let t=this.terminalOperations.get(e);if(t!==void 0)return t;if(this.terminalNotified.has(e))return Promise.resolve();this.terminalNotified.add(e);let n;try{n=this.options.onCallTerminal?.(e)}catch(t){this.events.emit(`error`,{error:this.callOperationError(e,t)});let n=Promise.reject(this.callOperationError(e,t));return this.terminalOperations.set(e,n),n.catch(()=>void 0).finally(()=>this.pruneTerminalRecord(e,n)),n}let r=Promise.resolve(n).catch(t=>{throw this.events.emit(`error`,{error:this.callOperationError(e,t)}),t});return this.terminalOperations.set(e,r),r.catch(()=>void 0).finally(()=>this.pruneTerminalRecord(e,r)),r}pruneTerminalRecord(e,t){this.terminalOperations.get(e)===t&&this.terminalOperations.delete(e),this.calls.has(e)||this.terminalNotified.delete(e)}assertNotDisposed(){if(this.disposed)throw new p(`SDK_ALREADY_DISPOSED`,`internal`,!1)}callOperationError(e,t){return new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:e,cause:t})}capabilityError(e){return new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1,{callId:e})}compensationError(e,t,n,r){return this.callOperationError(e,{operation:n,rollback:r,originalCallId:e,targetCallId:t})}callLimit(e){let t=this.options.platform===`mobile-web`?1:2,n=this.options.maxConcurrentCalls??t;return Math.min(t,Math.max(1,n),Math.max(1,e.policy.maxConcurrentCalls))}dialOptions(e,t,n,r=[]){return{iceServers:t.iceServers,extraHeaders:[`X-XCall-Call-ID: ${e}`,`X-XCall-Session-ID: ${t.sessionId}`,...r],...n===void 0?{}:{type:n}}}dialError(e,t){return e instanceof p?new p(e.code,e.category,e.retryable,{requestId:e.requestId,callId:t,cause:e.cause??e}):new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:t,cause:e})}},ae=class{handlers=new Map;on(e,t){let n=this.handlers.get(e)??new Set,r=t;n.add(r),this.handlers.set(e,n);let i=!0;return()=>{i&&(i=!1,n.delete(r))}}emit(e,t){let n=this.handlers.get(e);n!==void 0&&[...n].forEach(e=>{try{e(t)}catch{}})}listenerCount(){return[...this.handlers.values()].reduce((e,t)=>e+t.size,0)}clear(){this.handlers.clear()}};function oe(e){if(typeof e!=`object`||!e||!(`reason`in e))return`ended`;let t=e.reason;return typeof t==`string`&&t!==``?t:`ended`}function se(e,t){if(e instanceof p)return new p(e.code,e.category,e.retryable,{requestId:e.requestId,callId:t,cause:e.cause??e});if(typeof e==`object`&&e&&`error`in e){let n=e.error;if(n instanceof p)return new p(n.code,n.category,n.retryable,{requestId:n.requestId,callId:t,cause:n.cause??n});if(n instanceof Error)return new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:t,cause:n})}return new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:t,cause:e})}m();var k=`q7X4p6MvK1z8Lb3A`,ce=`W9e2T4mN0aQ7Ru6C`,le=16,ue=`�`;function de(e){for(let t of e){let e=t.codePointAt(0)??0;if(e===127||e<32&&e!==9)return!0}return!1}async function A(e,t={}){let n=String(e??``).replace(/\s+/g,``);if(!n)throw new p(`LEGACY_PLATFORM_REJECTED`,`auth`,!1,{cause:`解密的密文为空:坐席账号里没有 password/registerPassword`});let r=t.subtle??globalThis.crypto?.subtle;if(r===void 0)throw new p(`CONFIG_INVALID`,`configuration`,!1,{cause:`需要 WebCrypto 才能解 SIP 密码:请在安全上下文(https / localhost)或 Node 18+ 里运行`});let i=me(n);if(i===void 0)throw new p(`LEGACY_PLATFORM_REJECTED`,`auth`,!1,{cause:`密文不是合法的 Base64:确认取的是 password/registerPassword 原值,没有被截断或转义`});let a=await r.importKey(`raw`,he(t.key??k),`AES-CBC`,!1,[`decrypt`]);try{let e=await r.decrypt({name:`AES-CBC`,iv:he(t.iv??ce)},a,i);return new TextDecoder(`utf-8`).decode(e).trim()}catch(e){throw new p(`LEGACY_PLATFORM_REJECTED`,`auth`,!1,{cause:`SIP 密码解密失败(检查 key/iv 与该环境是否一致):${e instanceof Error?e.message:String(e)}`})}}async function j(e,t={}){let n=String(e??``).replace(/\s+/g,``);if(fe(n))try{let e=await A(n,t);return pe(e)?e:void 0}catch{return}}function fe(e){let t=me(e);return t!==void 0&&t.byteLength>0&&t.byteLength%le===0}function pe(e){return e.length===0||e.includes(ue)?!1:!de(e)}function me(e){if(e.length!==0&&e.length%4==0&&/^[A-Za-z0-9+/]+={0,2}$/.test(e))try{let t=atob(e),n=new Uint8Array(new ArrayBuffer(t.length));for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n}catch{return}}function he(e){let t=new TextEncoder().encode(e),n=new Uint8Array(new ArrayBuffer(t.byteLength));return n.set(t),n}var ge=`3.2.2`,M=`[REDACTED]`,_e=/\bBearer\s+[^\s,;"'}]+/gi,ve=/(\bAuthorization\s*[:=]\s*)Digest\s+[^\r\n]*/gi,N=/(\bAuthorization\s*[:=]\s*)(?:(Bearer|Basic|Digest|Token)\s+)?[^\s,;"'}]+/gi,ye=/\beyJ[A-Za-z0-9_-]*\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/g,be=/\b((?:sip|sips|turn|turns|ws|wss):(?:\/\/)?)[^/?#@\s:]+:[^/?#@\s]+@/gi,xe=/(\b(?:sip(?:Register)?Ticket|registerTicket|wssTicket|turnCredential|credential|accessToken|refreshToken|appSecret|password|jwt|ticket)\b\s*[:=]\s*)(["']?)([^\s,;&}"']+)(["']?)/gi,Se=/(?<!\d)(1[3-9]\d)\d{4}(\d{4})(?!\d)/g,Ce=/(?:authorization|token|ticket|credential|password|secret)$/i;function P(e,t={}){let n=e.replace(_e,`Bearer ${M}`).replace(ve,(e,t)=>`${t}Digest ${M}`).replace(N,(e,t,n)=>`${t}${n===void 0?``:`${n} `}${M}`).replace(ye,M).replace(be,(e,t)=>`${t}${M}@`).replace(xe,(e,t)=>`${t}${M}`);return t.maskPhoneNumbers!==!1&&(n=n.replace(Se,`$1****$2`)),n}function we(e,t={}){return Te(e,t,new WeakSet)}function Te(e,t,n){if(typeof e==`string`)return P(e,t);if(typeof e!=`object`||!e)return e;if(n.has(e))return`[Circular]`;if(n.add(e),Array.isArray(e))return e.map(e=>Te(e,t,n));let r={};return Object.entries(e).forEach(([e,i])=>{r[e]=Ce.test(e)?M:Te(i,t,n)}),r}m();function Ee(e){if(!F(e))throw I(`Invalid worker message`);if(e.version!==1)throw I(`Unsupported worker protocol version`);if(e.type===`attach`||e.type===`detach`)return De(e),e;if(e.type===`command`){if(De(e),typeof e.command!=`string`||e.payload!==void 0&&!F(e.payload))throw I(`Invalid worker command`);return e}if(e.type===`response`){if(typeof e.requestId!=`string`||typeof e.ok!=`boolean`)throw I(`Invalid worker response`);return e}if(e.type===`event`){if(typeof e.event!=`string`||!(`payload`in e))throw I(`Invalid worker event`);return e}throw I(`Unknown worker message type`)}function De(e){if(typeof e.requestId!=`string`||typeof e.tabId!=`string`)throw I(`Worker request requires requestId and tabId`)}function F(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function I(e){return new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{cause:e})}m();var Oe=class{port;timeoutMs;pending=new Map;eventHandlers=new Set;closed=!1;lifecycleState=`connected`;constructor(e,t={}){this.port=e,this.timeoutMs=t.timeoutMs??15e3,this.port.onmessage=e=>this.handleMessage(e.data),this.port.start()}request(e){return this.closed?Promise.reject(new p(`SDK_ALREADY_DISPOSED`,`internal`,!1)):this.pending.has(e.requestId)?Promise.reject(new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{requestId:e.requestId})):this.lifecycleState===`reconnecting`&&e.type===`command`&&(e.command===`dial`||e.command===`answer`)?Promise.reject(new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!0,{callId:e.payload?.callId})):new Promise((t,n)=>{let r=setTimeout(()=>{this.pending.delete(e.requestId),n(new p(`NETWORK_TIMEOUT`,`network`,!0,{requestId:e.requestId}))},this.timeoutMs);this.pending.set(e.requestId,{resolve:e=>t(e),reject:n,timer:r}),this.port.postMessage(e)})}onEvent(e){return this.closed?()=>void 0:(this.eventHandlers.add(e),()=>this.eventHandlers.delete(e))}getLifecycleState(){return this.lifecycleState}close(){this.closed||(this.closed=!0,this.pending.forEach(e=>{clearTimeout(e.timer),e.reject(new p(`SDK_ALREADY_DISPOSED`,`internal`,!1))}),this.pending.clear(),this.eventHandlers.clear(),this.port.close())}handleMessage(e){try{let t=Ee(e);if(t.type===`event`){t.event===`connection.stateChanged`&&ke(t.payload)&&(this.lifecycleState=t.payload.state),this.eventHandlers.forEach(e=>e(t));return}if(t.type!==`response`)return;let n=this.pending.get(t.requestId);if(n===void 0)return;this.pending.delete(t.requestId),clearTimeout(n.timer),t.ok?n.resolve(t.result):n.reject(Ae(t))}catch(e){this.pending.forEach(t=>{clearTimeout(t.timer),t.reject(e)}),this.pending.clear()}}};function ke(e){return typeof e==`object`&&!!e&&`state`in e&&(e.state===`connected`||e.state===`reconnecting`)}function Ae(e){let t=e.error;return new p(t?.code??`SDK_INTERNAL_ERROR`,t?.category??`internal`,t?.retryable??!1,{requestId:e.requestId,...t?.message===void 0?{}:{cause:t.message},...t?.serverCode===void 0?{}:{serverCode:t.serverCode},...t?.status===void 0?{}:{status:t.status}})}m();function je(e={}){if((e.enabled??`auto`)===!1)return{mode:`single-tab`,reason:`disabled`};let t=e.locationHref??R(),n=L(e.url,t),r=t=>{if(e.fallback===`error`)throw new p(`CONFIG_INVALID`,`configuration`,!1,{cause:t});return{mode:`single-tab`,reason:t}};if(n===void 0)return r(`SharedWorker URL is unavailable`);if(!Ne(n,t))return r(`SharedWorker URL must be same-origin`);let i=e.workerCtor??Me();if(i===void 0)return r(`SharedWorker is not supported`);let a;try{a=new i(n,e.name===void 0?void 0:{name:e.name})}catch(e){return r(`SharedWorker construction failed: ${e instanceof Error?e.message:String(e)}`)}let o=e.tabId??Pe(),s=new Oe(a.port),c={version:1,type:`attach`,requestId:Fe(),tabId:o},l=s.request(c).then(()=>void 0).catch(e=>{throw s.close(),e});return{mode:`shared`,worker:a,client:s,tabId:o,workerUrl:n,ready:l}}function L(e,t=R()){try{return t===void 0?void 0:new URL(e??`./shared-worker.js`,t).toString()}catch{return}}function R(){return typeof location>`u`?void 0:location.href}function Me(){if(typeof SharedWorker==`function`)return SharedWorker}function Ne(e,t){if(t===void 0)return!0;try{return new URL(e,t).origin===new URL(t).origin}catch{return!1}}function Pe(){return`tab-${typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():Math.random().toString(36).slice(2)}`}function Fe(){return`attach-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}m();var Ie=class{mediaDevices;createAudioElement;outputCapability;outputDeviceId;outputGeneration=0;outputTail;constructor(e={}){this.mediaDevices=e.mediaDevices===null?void 0:e.mediaDevices??Le(),this.createAudioElement=e.createAudioElement}async requestPermission(e={}){let t=this.requireMediaDevices(),n;try{n=await t.getUserMedia({audio:e})}catch(e){throw Be(e)}Re(n)}async getDevices(){if(this.mediaDevices===void 0)return[];try{return(await this.mediaDevices.enumerateDevices()).filter(e=>e.kind===`audioinput`||e.kind===`audiooutput`&&this.supportsOutputSelection())}catch(e){throw Ve(e)}}getCapabilities(){return{input:this.mediaDevices!==void 0,output:this.supportsOutputSelection()}}supportsOutputSelection(){if(this.outputCapability!==void 0)return this.outputCapability;let e=this.createAudioElementSafely();return this.outputCapability=e!==void 0&&typeof e.setSinkId==`function`,this.outputCapability}async setOutputDevice(e,t){if(!this.supportsOutputSelection())throw new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1);this.outputDeviceId=e;let n=++this.outputGeneration;t!==void 0&&await this.enqueueOutput(async()=>{n===this.outputGeneration&&await this.applyOutputDevice(e,t)})}async applyConfiguredOutputDevice(e){if(this.outputDeviceId===void 0||e===void 0)return;let t=this.outputDeviceId,n=this.outputGeneration;await this.enqueueOutput(async()=>{n===this.outputGeneration&&await this.applyOutputDevice(t,e)})}getOutputDeviceId(){return this.outputDeviceId}async applyOutputDevice(e,t){let n=t;if(typeof n.setSinkId!=`function`)throw new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1);try{await n.setSinkId(e)}catch(e){throw He(e)}}enqueueOutput(e){let t=this.outputTail,n=t===void 0?e():t.then(e,e),r=n.catch(()=>void 0);return this.outputTail=r,r.then(()=>{this.outputTail===r&&(this.outputTail=void 0)}),n}async openInputStream(e){let t=this.requireMediaDevices();try{return await t.getUserMedia({audio:{deviceId:{exact:e}}})}catch(e){throw ze(e)}}requireMediaDevices(){if(this.mediaDevices===void 0)throw new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1);return this.mediaDevices}createAudioElementSafely(){if(this.createAudioElement!==void 0)try{return this.createAudioElement()}catch{return}if(typeof document<`u`)try{return document.createElement(`audio`)}catch{return}}};function Le(){return globalThis.navigator?.mediaDevices}function Re(e){let t;try{t=e.getTracks()}catch{return}t.forEach(e=>{try{e.stop()}catch{}})}function ze(e){let t=Ue(e);return t===`NotFoundError`||t===`OverconstrainedError`?new p(`MEDIA_DEVICE_NOT_FOUND`,`media`,!1,{cause:e}):t===`NotReadableError`||t===`AbortError`?new p(`MEDIA_DEVICE_IN_USE`,`media`,!0,{cause:e}):t===`NotAllowedError`||t===`SecurityError`?new p(`MEDIA_PERMISSION_DENIED`,`media`,!1,{cause:e}):new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{cause:e})}function Be(e){let t=Ue(e);return t===`NotFoundError`||t===`OverconstrainedError`?new p(`MEDIA_DEVICE_NOT_FOUND`,`media`,!1,{cause:e}):t===`NotReadableError`||t===`AbortError`?new p(`MEDIA_DEVICE_IN_USE`,`media`,!0,{cause:e}):t===`NotAllowedError`||t===`SecurityError`?new p(`MEDIA_PERMISSION_DENIED`,`media`,!1,{cause:e}):new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{cause:e})}function Ve(e){let t=Ue(e);return t===`NotFoundError`?new p(`MEDIA_DEVICE_NOT_FOUND`,`media`,!1,{cause:e}):t===`NotAllowedError`||t===`SecurityError`?new p(`MEDIA_PERMISSION_DENIED`,`media`,!1,{cause:e}):t===`AbortError`||t===`NotReadableError`?new p(`MEDIA_DEVICE_IN_USE`,`media`,!0,{cause:e}):new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{cause:e})}function He(e){let t=Ue(e);return t===`NotFoundError`?new p(`MEDIA_DEVICE_NOT_FOUND`,`media`,!1,{cause:e}):t===`NotAllowedError`||t===`SecurityError`?new p(`MEDIA_PERMISSION_DENIED`,`media`,!1,{cause:e}):t===`AbortError`||t===`NotReadableError`?new p(`MEDIA_DEVICE_IN_USE`,`media`,!0,{cause:e}):new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{cause:e})}function Ue(e){if(typeof e!=`object`||!e||!(`name`in e))return;let t=e.name;return typeof t==`string`?t:void 0}m();var We=class{createAudioElement;bindings=new Map;audioOwners=new Map;trackOwners=new Map;generations=new Map;pendingPlays=new Map;constructor(e=Ge){this.createAudioElement=e}async bind(e,t){let n=this.bindings.get(e);if(n?.stream===t)return;let r=Ke(e,t),i;try{i=this.createAudioElement()}catch(t){throw qe(r,this.trackOwners),new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1,{callId:e,cause:t})}let a=this.audioOwners.get(i);if(a!==void 0&&a!==e)throw qe(r,this.trackOwners),new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:e});try{i.autoplay=!0,i.playsInline=!0}catch(t){throw qe(r,this.trackOwners),new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{callId:e,cause:t})}try{i.srcObject=t}catch(t){throw qe(r,this.trackOwners),new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{callId:e,cause:t})}this.acquireTracks(r),n!==void 0&&this.releaseBinding(n,n.audio!==i);let o=this.nextGeneration(e);this.audioOwners.set(i,e);let s={callId:e,audio:i,stream:t,tracks:r,generation:o};this.bindings.set(e,s),this.beginPlay(e);try{await i.play()}catch(t){if(!this.isCurrent(e,o))return;throw new p(`MEDIA_PLAYBACK_BLOCKED`,`media`,!1,{callId:e,cause:t})}finally{this.finishPlay(e)}this.isCurrent(e,o)}async play(e){let t=this.bindings.get(e);if(t===void 0)throw new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:e});let n=t.generation;this.beginPlay(e);try{await t.audio.play()}catch(t){if(!this.isCurrent(e,n))return;throw new p(`MEDIA_PLAYBACK_BLOCKED`,`media`,!1,{callId:e,cause:t})}finally{this.finishPlay(e)}this.isCurrent(e,n)}getAudioElement(e){return this.bindings.get(e)?.audio}getResourceCounts(){return{tracks:this.trackOwners.size,audioElements:this.audioOwners.size}}release(e){this.nextGeneration(e);let t=this.bindings.get(e);t!==void 0&&this.releaseBinding(t),this.cleanupGeneration(e)}releaseAll(){[...this.bindings.keys()].forEach(e=>this.release(e))}releaseBinding(e,t=!0){if(this.bindings.get(e.callId)===e&&this.bindings.delete(e.callId),this.audioOwners.get(e.audio)===e.callId&&this.audioOwners.delete(e.audio),t)try{e.audio.srcObject=null}catch{}e.tracks.forEach(e=>this.releaseTrack(e))}acquireTracks(e){e.forEach(e=>this.trackOwners.set(e,(this.trackOwners.get(e)??0)+1))}releaseTrack(e){let t=this.trackOwners.get(e);if(t===void 0||t<=1){this.trackOwners.delete(e),Ye(e);return}this.trackOwners.set(e,t-1)}beginPlay(e){this.pendingPlays.set(e,(this.pendingPlays.get(e)??0)+1)}finishPlay(e){let t=this.pendingPlays.get(e)??0;t<=1?this.pendingPlays.delete(e):this.pendingPlays.set(e,t-1),this.cleanupGeneration(e)}nextGeneration(e){let t=(this.generations.get(e)??0)+1;return this.generations.set(e,t),t}cleanupGeneration(e){!this.bindings.has(e)&&!this.pendingPlays.has(e)&&this.generations.delete(e)}isCurrent(e,t){return this.generations.get(e)===t&&this.bindings.get(e)?.generation===t}};function Ge(){if(typeof document>`u`)throw new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1);return document.createElement(`audio`)}function Ke(e,t){try{return[...new Set(t.getAudioTracks())].filter(e=>e.kind===`audio`)}catch(n){try{return[...new Set(t.getTracks())].filter(e=>e.kind===`audio`)}catch(r){throw Je(t),new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{callId:e,cause:n??r})}}}function qe(e,t){e.forEach(e=>{(t.get(e)??0)===0&&Ye(e)})}function Je(e){try{[...new Set(e.getTracks())].filter(e=>e.kind===`audio`).forEach(Ye)}catch{}}function Ye(e){try{e.stop()}catch{}}m();var Xe=class{deviceManager;remoteAudio;getActiveCall;createRemoteStream;calls=new Map;resources=new Set;inputOperations=new Map;senderQueues=new Map;releaseOperations=new Map;callReleaseOperations=new Map;releaseErrors=new WeakMap;releaseAllOperation;disposeOperation;disposing=!1;disposed=!1;constructor(e={}){let t={mediaDevices:e.mediaDevices,createAudioElement:e.createAudioElement};this.deviceManager=new Ie(t),this.remoteAudio=new We(e.createAudioElement),this.getActiveCall=e.getActiveCall,this.createRemoteStream=e.createRemoteStream??nt}requestPermission(e){return this.assertNotDisposed(),this.deviceManager.requestPermission(e)}getDevices(){return this.assertNotDisposed(),this.deviceManager.getDevices()}getCapabilities(){return this.assertNotDisposed(),this.deviceManager.getCapabilities()}supportsOutputSelection(){return this.assertNotDisposed(),this.deviceManager.supportsOutputSelection()}registerCallMedia(e,t){this.assertNotDisposed();let n=this.calls.get(e);n!==void 0&&this.releaseResource(n).catch(e=>{this.releaseErrors.set(n,e)});let r=Ze(t)?t:{peerConnection:t},i={callId:e,peerConnection:r.peerConnection,senders:new Map,localTracks:new Set,pendingTracks:new Set,generation:1,released:!1,peerClosed:!1};if(this.captureSenders(i,r.getSenderKind),this.resources.add(i),r.localTracks?.forEach(e=>{e.kind===`audio`&&i.localTracks.add(e)}),this.calls.set(e,i),r.trackSource!==void 0)try{i.trackSourceUnsubscribe=r.trackSource.onTrack(e=>this.handleTrackEvent(i,e))}catch{}return async()=>{let e=this.releaseOperations.get(i);if(e!==void 0)await e;else if(this.releaseErrors.has(i))throw this.releaseErrors.get(i);else await this.releaseResource(i);let t=this.releaseErrors.get(i);if(t!==void 0)throw t}}async setInputDevice(e,t){this.assertNotDisposed();let n=t??this.getActiveCall?.();this.assertActiveCall(n),this.assertDeviceSelectionCapability(n);let r=this.ensureCallMedia(n),i=(this.inputOperations.get(n.callId)??Promise.resolve()).then(()=>this.performInputSwitch(e,n,r),()=>this.performInputSwitch(e,n,r));this.inputOperations.set(n.callId,i);try{await i}finally{this.inputOperations.get(n.callId)===i&&this.inputOperations.delete(n.callId)}}setOutputDevice(e,t){this.assertNotDisposed();let n=t??this.getActiveCall?.()?.callId,r=n===void 0?void 0:this.remoteAudio.getAudioElement(n);return this.deviceManager.setOutputDevice(e,r)}async bindRemoteTrack(e,t){this.assertNotDisposed();let n;try{await this.remoteAudio.bind(e,t)}catch(e){n=e}let r;try{await this.deviceManager.applyConfiguredOutputDevice(this.remoteAudio.getAudioElement(e))}catch(e){r=e}if(n!==void 0)throw n;if(r!==void 0)throw r}playRemoteAudio(e){return this.assertNotDisposed(),this.remoteAudio.play(e)}getResourceCounts(){let e=new Set;this.resources.forEach(t=>{t.localTracks.forEach(t=>e.add(t)),t.pendingTracks.forEach(t=>e.add(t))});let t=this.remoteAudio.getResourceCounts();return{listeners:[...this.resources].filter(e=>e.trackSourceUnsubscribe!==void 0).length,tracks:e.size+t.tracks,peerConnections:this.resources.size,audioElements:t.audioElements}}releaseResource(e){let t=this.releaseOperations.get(e);if(t!==void 0)return t;if(!this.resources.has(e))return Promise.resolve();let n=e.callId;this.remoteAudio.release(n),this.releaseErrors.delete(e),this.calls.get(n)===e&&this.calls.delete(n),e.generation+=1,e.released=!0,this.unsubscribeTrackSource(e);let r=new Set([...e.localTracks,...e.pendingTracks]),i=[...e.senders.values()].filter(e=>e.audio).map(t=>({senderResource:t,promise:this.enqueueSender(e,t,()=>$e(t.sender),!0)})),a=Promise.all(i.map(async e=>{try{return await e.promise,{senderResource:e.senderResource,cause:void 0}}catch(t){return{senderResource:e.senderResource,cause:t}}})).then(async t=>{let i=new Set,a=[];if(t.forEach(e=>{if(e.cause!==void 0){a.push(e.cause);let t=z(e.senderResource.sender);t?.kind===`audio`&&i.add(t);return}let t=z(e.senderResource.sender);t?.kind===`audio`&&r.add(t)}),r.forEach(e=>{i.has(e)||tt(e)}),a.length>0)throw e.localTracks.clear(),e.pendingTracks.clear(),i.forEach(t=>e.localTracks.add(t)),new p(`SDK_INTERNAL_ERROR`,`internal`,!0,{callId:n,cause:a[0]});if(!e.peerClosed&&e.peerConnection.close!==void 0)try{await e.peerConnection.close(),e.peerClosed=!0}catch(t){let r=[...e.senders.values()].map(e=>z(e.sender)).find(e=>e?.kind===`audio`);throw e.localTracks.clear(),e.pendingTracks.clear(),r!=null&&e.localTracks.add(r),new p(`SDK_INTERNAL_ERROR`,`internal`,!0,{callId:n,cause:t})}e.localTracks.clear(),e.pendingTracks.clear(),e.senders.clear(),this.resources.delete(e),this.releaseUnusedSenderQueues()}).catch(t=>{throw this.releaseErrors.set(e,t),this.calls.get(n)===void 0&&this.calls.set(n,e),t}).finally(()=>{this.releaseOperations.get(e)===a&&this.releaseOperations.delete(e)});return this.releaseOperations.set(e,a),a}releaseCall(e){let t=this.callReleaseOperations.get(e);if(t!==void 0)return t;let n=[...this.resources].filter(t=>t.callId===e);if(n.length===0)return Promise.resolve();let r=Promise.all(n.map(async e=>{try{return await this.releaseResource(e),{cause:void 0}}catch(e){return{cause:e}}})).then(e=>{let t=e.find(e=>e.cause!==void 0)?.cause;if(t!==void 0)throw t}).finally(()=>{this.callReleaseOperations.get(e)===r&&this.callReleaseOperations.delete(e)});return this.callReleaseOperations.set(e,r),r}releaseAll(){if(this.releaseAllOperation!==void 0)return this.releaseAllOperation;this.remoteAudio.releaseAll();let e=new Set([...this.resources].map(e=>e.callId)),t=Promise.all([...e].map(async e=>{try{return await this.releaseCall(e),{cause:void 0}}catch(e){return{cause:e}}})).then(e=>{let t=e.find(e=>e.cause!==void 0)?.cause;if(t!==void 0)throw t}).finally(()=>{this.releaseAllOperation===t&&(this.releaseAllOperation=void 0)});return this.releaseAllOperation=t,t}dispose(){if(this.disposeOperation!==void 0)return this.disposeOperation;this.disposing=!0;let e=this.releaseAll(),t=this.waitForInputOperations(),n=Promise.allSettled([e,t]).then(e=>{let t=e.find(e=>e.status===`rejected`);if(t?.status===`rejected`)throw t.reason;this.inputOperations.clear(),this.disposed=!0,this.disposing=!1}).finally(()=>{this.disposeOperation===n&&!this.disposed&&(this.disposeOperation=void 0),!this.disposed&&this.disposeOperation===void 0&&(this.disposing=!1)});return this.disposeOperation=n,n}async waitForInputOperations(){let e=[...this.inputOperations.values()];e.length!==0&&await Promise.allSettled(e)}async performInputSwitch(e,t,n){if(this.assertActiveCall(t),this.assertDeviceSelectionCapability(t),!this.isCurrentResource(n)||t.peerConnection!==n.peerConnection)throw this.callOperationError(t.callId);let r=this.findAudioSender(n),i=z(r.sender),a=n.generation,o=await this.deviceManager.openInputStream(e),s;try{s=o.getTracks()}catch(e){throw et(o),new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{callId:t.callId,cause:e})}let c;try{c=o.getAudioTracks()}catch(e){throw B(s),new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{callId:t.callId,cause:e})}let l=c[0];if(l===void 0)throw B(s),new p(`MEDIA_DEVICE_NOT_FOUND`,`media`,!1,{callId:t.callId});if(!this.canCommitInputSwitch(t,n,r,i,a))throw B(s),this.callOperationError(t.callId);s.forEach(e=>n.pendingTracks.add(e)),n.pendingTracks.add(l);try{await this.enqueueSender(n,r,()=>r.sender.replaceTrack(l))}catch(e){throw n.released?this.callOperationError(t.callId):(n.released||(s.forEach(e=>n.pendingTracks.delete(e)),n.pendingTracks.delete(l),await this.rollbackSender(n,r,i,l),B(s)),new p(`MEDIA_DEVICE_IN_USE`,`media`,!0,{callId:t.callId,cause:e}))}if(!this.canCommitInputSwitch(t,n,r,l,a)){if(!n.released)try{await this.enqueueSender(n,r,()=>z(r.sender)===l?$e(r.sender):Promise.resolve()),s.forEach(e=>n.pendingTracks.delete(e)),n.pendingTracks.delete(l),B(s)}catch(e){throw new p(`SDK_INTERNAL_ERROR`,`internal`,!0,{callId:t.callId,cause:e})}throw this.callOperationError(t.callId)}s.forEach(e=>n.pendingTracks.delete(e)),n.pendingTracks.delete(l),n.localTracks.add(l),i!==null&&i!==l&&(n.localTracks.delete(i),tt(i)),s.forEach(e=>{e!==l&&tt(e)})}ensureCallMedia(e){let t=this.calls.get(e.callId);if(t!==void 0&&t.peerConnection===e.peerConnection)return t;if(e.peerConnection===void 0)throw this.capabilityError(e.callId);this.registerCallMedia(e.callId,e.peerConnection);let n=this.calls.get(e.callId);if(n===void 0)throw this.callOperationError(e.callId);return n}captureSenders(e,t){let n;try{n=e.peerConnection.getSenders()}catch(t){throw new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{callId:e.callId,cause:t})}n.forEach(n=>{let r=z(n),i;try{i=t?.(n)??n.senderKind??n.kind}catch(t){throw new p(`SDK_INTERNAL_ERROR`,`internal`,!1,{callId:e.callId,cause:t})}e.senders.set(n,{sender:n,audio:i===`audio`||i===void 0&&r?.kind===`audio`,queue:this.senderQueues.get(n)??this.createSenderQueue(n)}),r?.kind===`audio`&&e.localTracks.add(r)})}findAudioSender(e){let t=[...e.senders.values()].find(e=>e.audio&&(z(e.sender)?.kind===`audio`||z(e.sender)===null));if(t===void 0)throw this.capabilityError(e.callId);return t}handleTrackEvent(e,t){if(!this.isCurrentResource(e)||t.track.kind!==`audio`)return;let n=t.streams[0]??this.createRemoteStream(t.track);n!==void 0&&this.bindRemoteTrack(e.callId,n).catch(()=>void 0)}canCommitInputSwitch(e,t,n,r,i){if(this.disposed||!this.isCurrentResource(t,i)||e.state!==`active`||e.peerConnection!==t.peerConnection||!t.senders.has(n.sender))return!1;try{if(!t.peerConnection.getSenders().includes(n.sender))return!1}catch{return!1}return z(n.sender)===r}enqueueSender(e,t,n,r=!1){t.queue.pending+=1;let i=t.queue.chain.then(async()=>{if(e.released&&!r)throw this.callOperationError(e.callId);return n()},async()=>{if(e.released&&!r)throw this.callOperationError(e.callId);return n()}),a=i.finally(()=>{--t.queue.pending});return t.queue.chain=a.catch(()=>void 0),i}createSenderQueue(e){let t={chain:Promise.resolve(),pending:0};return this.senderQueues.set(e,t),t}releaseUnusedSenderQueues(){let e=new Set;this.resources.forEach(t=>t.senders.forEach(t=>e.add(t.sender))),this.senderQueues.forEach((t,n)=>{t.pending===0&&!e.has(n)&&this.senderQueues.delete(n)})}async rollbackSender(e,t,n,r){e.released||z(t.sender)!==r||await this.enqueueSender(e,t,()=>t.sender.replaceTrack(n)).catch(()=>void 0)}isCurrentResource(e,t=e.generation){return!this.disposed&&this.calls.get(e.callId)===e&&e.generation===t}unsubscribeTrackSource(e){let t=e.trackSourceUnsubscribe;if(e.trackSourceUnsubscribe=void 0,t!==void 0)try{t()}catch{}}assertActiveCall(e){if(e===void 0||e.state!==`active`)throw new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:e?.callId})}assertDeviceSelectionCapability(e){if(e.capabilities===void 0||!e.capabilities.has(`device_selection`))throw this.capabilityError(e.callId)}capabilityError(e){return new p(`CAPABILITY_NOT_SUPPORTED`,`capability`,!1,{callId:e})}callOperationError(e){return new p(`CALL_OPERATION_NOT_ALLOWED`,`call`,!1,{callId:e})}assertNotDisposed(){if(this.disposed||this.disposing)throw new p(`SDK_ALREADY_DISPOSED`,`internal`,!1)}};function Ze(e){return`peerConnection`in e}function z(e){try{return e.track}catch{return null}}function Qe(e){return typeof e==`object`&&!!e&&e.name===`InvalidStateError`}function $e(e){try{return e.replaceTrack(null).catch(e=>{if(!Qe(e))throw e})}catch(e){return Qe(e)?Promise.resolve():Promise.reject(e)}}function et(e){try{B(e.getTracks())}catch{}}function B(e){e.forEach(tt)}function tt(e){try{e.stop()}catch{}}function nt(e){if(typeof MediaStream<`u`)try{return new MediaStream([e])}catch{return}}m();function rt(e,t={}){let n=new Map,r=new Map,i=new Set,a=t.ownershipRequired===!0,o=!1,s=!1,c,l=()=>e(),u=new Xe({getActiveCall:l});return{publicMedia:{requestPermission:()=>(d(),u.requestPermission()),getDevices:()=>(d(),u.getDevices()),getCapabilities:()=>(d(),u.getCapabilities()),supportsOutputSelection:()=>(d(),u.supportsOutputSelection()),setInputDevice:e=>(d(),u.setInputDevice(e,l())),setOutputDevice:e=>(d(),u.setOutputDevice(e)),playRemoteAudio:e=>(d(),u.playRemoteAudio(e)),releaseAll:()=>(d(),u.releaseAll())},registerCall(e,t){o||s||!it(t)||(r.set(e,t),(!a||i.has(e))&&f(e,t))},async setCallOwnership(e,t){if(o)return;if(t!==`owned`){i.delete(e),await u.releaseCall(e),n.delete(e);return}i.add(e);let a=r.get(e);a!==void 0&&f(e,a)},contextFor(e,t,r){let i=n.get(e);if(i!==void 0)return{callId:e,state:t,capabilities:r,peerConnection:i.peerConnection}},async releaseCall(e){o||(await u.releaseCall(e),n.delete(e),r.delete(e),i.delete(e))},releaseAll:async()=>{await u.releaseAll(),n.clear(),r.clear(),i.clear()},getResourceCounts:()=>u.getResourceCounts(),dispose:()=>{if(c!==void 0)return c;s=!0;let e=u.dispose().then(()=>{o=!0,s=!1,n.clear(),r.clear(),i.clear()}).finally(()=>{c===e&&!o&&(c=void 0,s=!1)});return c=e,e}};function d(){if(o)throw new p(`SDK_ALREADY_DISPOSED`,`internal`,!1)}function f(e,t){if(!it(t)||typeof t.getMediaRegistration!=`function`)return;let r=t.getMediaRegistration();if(at(r)&&n.get(e)?.peerConnection!==r.peerConnection){n.set(e,r);try{u.registerCallMedia(e,r)}catch{n.delete(e)}}}}function it(e){return typeof e==`object`&&!!e}function at(e){return typeof e==`object`&&!!e&&`peerConnection`in e&&typeof e.peerConnection==`object`&&e.peerConnection!==null}var ot=1e3,st=3e4;function ct(e,t=Math.random){let n=Math.min(st,ot*2**Math.max(0,Math.floor(e))),r=Math.min(1,Math.max(0,t()));return Math.round(n*(1+r*.2))}var lt=class{recover;random;isOnline;onAttempt;attempt=0;pendingTimer;running=!1;online=!0;generation=0;disposed=!1;restartAfterRun=!1;constructor(e){this.recover=e.recover,this.random=e.random??Math.random,this.isOnline=e.isOnline??(()=>!0),this.onAttempt=e.onAttempt}start(){if(this.disposed||!this.online||!this.isOnline()||this.pendingTimer!==void 0||this.running)return;let e=this.generation,t=ct(this.attempt,this.random);this.pendingTimer=setTimeout(()=>{this.pendingTimer=void 0,this.run(e)},t)}notifyOffline(){this.disposed||(this.online=!1,this.generation+=1,this.clearPendingTimer(),this.restartAfterRun=!1)}notifyOnline(){this.disposed||(this.online=!0,this.running&&(this.restartAfterRun=!0),this.start())}cancel(){this.disposed||(this.generation+=1,this.clearPendingTimer(),this.attempt=0,this.restartAfterRun=!1)}dispose(){this.disposed||(this.disposed=!0,this.generation+=1,this.clearPendingTimer(),this.restartAfterRun=!1)}getTimerCount(){return this.pendingTimer===void 0?0:1}async run(e){if(this.disposed||!this.online||e!==this.generation||this.running)return;this.running=!0;try{this.onAttempt?.(this.attempt)}catch{}let t=!1;try{await this.recover(),this.isCurrent(e)&&(this.attempt=0)}catch{this.isCurrent(e)&&(this.attempt+=1,t=!0)}finally{this.running=!1}this.restartAfterRun?(this.restartAfterRun=!1,this.isCurrent(this.generation)&&this.start()):t&&this.isCurrent(e)&&this.start()}isCurrent(e){return!this.disposed&&this.online&&e===this.generation&&this.isOnline()}clearPendingTimer(){this.pendingTimer!==void 0&&(clearTimeout(this.pendingTimer),this.pendingTimer=void 0)}},ut=class{capacity;entries=[];constructor(e){if(this.capacity=e,!Number.isInteger(e)||e<=0)throw RangeError(`RingBuffer capacity must be a positive integer`)}push(e){this.entries.length===this.capacity&&this.entries.shift(),this.entries.push(e)}toArray(){return[...this.entries]}},dt=`@16x/webphone-sdk`,ft=200,pt=class{dependencies;logs=new ut(ft);now;constructor(e){this.dependencies=e,this.now=e.now??(()=>new Date)}log(e,t,n){this.logs.push({timestamp:this.now().toISOString(),level:e,message:P(t),...n===void 0?{}:{context:we(n)}})}async getReport(e={}){let t=e.includeRecentLogs!==!1,n=e.includeDeviceNames===!0,r=e.maskPhoneNumbers!==!1,i=this.dependencies.getSnapshot(),a=this.dependencies.getPermission===void 0?i.permission:await mt(this.dependencies.getPermission,i.permission),o=n?await ht(this.dependencies.getDeviceNames):void 0,s=_t(gt(this.dependencies.getUserAgent));return we({generatedAt:this.now().toISOString(),sdk:{name:dt,version:ge},browser:s.browser,os:s.os,...i,permission:a,recentLogs:t?this.logs.toArray():[],...o===void 0?{}:{deviceNames:o}},{maskPhoneNumbers:r})}};async function mt(e,t){try{return await e()}catch{return t}}async function ht(e){if(e===void 0)return[];try{return[...await e()]}catch{return[]}}function gt(e){if(e!==void 0)try{return e()}catch{return``}return typeof navigator>`u`?``:navigator.userAgent}function _t(e){return{browser:vt(e),os:yt(e)}}function vt(e){for(let[t,n]of[[`Edge`,/Edg\/([\d.]+)/],[`Chrome`,/(?:Chrome|CriOS)\/([\d.]+)/],[`Firefox`,/(?:Firefox|FxiOS)\/([\d.]+)/],[`Safari`,/Version\/([\d.]+).*Safari/]]){let r=e.match(n);if(r?.[1]!==void 0)return{name:t,version:r[1]}}return{name:`unknown`,version:``}}function yt(e){let t=e.match(/(?:iPhone|iPad).*OS ([\d_]+)/);if(t?.[1]!==void 0)return{name:`iOS`,version:t[1].replaceAll(`_`,`.`)};let n=e.match(/Android ([\d.]+)/);if(n?.[1]!==void 0)return{name:`Android`,version:n[1]};let r=e.match(/Windows NT ([\d.]+)/);if(r?.[1]!==void 0)return{name:`Windows`,version:r[1]};let i=e.match(/Mac OS X ([\d_]+)/);return i?.[1]===void 0?/Linux/.test(e)?{name:`Linux`,version:``}:{name:`unknown`,version:``}:{name:`macOS`,version:i[1].replaceAll(`_`,`.`)}}var bt=l({bugs:()=>jt,contributors:()=>Et,default:()=>Ft,dependencies:()=>Pt,description:()=>Ct,devDependencies:()=>V,files:()=>Mt,homepage:()=>Tt,keywords:()=>kt,license:()=>`MIT`,main:()=>Ot,name:()=>xt,repository:()=>At,scripts:()=>Nt,title:()=>St,types:()=>Dt,version:()=>wt}),xt,St,Ct,wt,Tt,Et,Dt,Ot,kt,At,jt,Mt,Nt,Pt,V,Ft,It=s((()=>{xt=`jssip`,St=`JsSIP`,Ct=`The Javascript SIP library`,wt=`3.13.8`,Tt=`https://jssip.net`,Et=[`José Luis Millán <jmillan@aliax.net> (https://github.com/jmillan)`,`Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)`],Dt=`lib/JsSIP.d.ts`,Ot=`lib/JsSIP.js`,kt=[`sip`,`websocket`,`webrtc`,`node`,`browser`,`library`],At={type:`git`,url:`https://github.com/versatica/JsSIP.git`},jt={url:`https://github.com/versatica/JsSIP/issues`},Mt=[`LICENSE`,`README.md`,`npm-scripts.mjs`,`lib`],Nt={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`},Pt={debug:`^4.3.1`,events:`^3.3.0`,"sdp-transform":`^2.14.1`},V={"@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`},Ft={name:xt,title:St,description:Ct,version:wt,homepage:Tt,contributors:Et,types:Dt,main:Ot,keywords:kt,license:`MIT`,repository:At,bugs:jt,files:Mt,scripts:Nt,dependencies:Pt,devDependencies:V}})),H=c(((e,t)=>{var n=(It(),f(bt).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}})),U=c(((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}}}})),Lt=c(((e,t)=>{var n=G(),r=W();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}}})),W=c(((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:te,LHEX:ne,token:O,token_nodot:re,separators:ie,word:ae,STAR:oe,SLASH:se,EQUAL:k,LPAREN:ce,RPAREN:le,RAQUOT:ue,LAQUOT:de,COMMA:A,SEMI:j,COLON:fe,LDQUOT:pe,RDQUOT:me,comment:he,ctext:ge,quoted_string:M,quoted_string_clean:_e,qdtext:ve,quoted_pair:N,SIP_URI_noparams:ye,SIP_URI:be,uri_scheme:xe,uri_scheme_sips:Se,uri_scheme_sip:Ce,userinfo:P,user:we,user_unreserved:Te,password:Ee,hostport:De,host:F,hostname:I,domainlabel:Oe,toplabel:ke,IPv6reference:Ae,IPv6address:je,h16:L,ls32:R,IPv4address:Me,dec_octet:Ne,port:Pe,uri_parameters:Fe,uri_parameter:Ie,transport_param:Le,user_param:Re,method_param:ze,ttl_param:Be,maddr_param:Ve,lr_param:He,other_param:Ue,pname:We,pvalue:Ge,paramchar:Ke,param_unreserved:qe,headers:Je,header:Ye,hname:Xe,hvalue:Ze,hnv_unreserved:z,Request_Response:Qe,Request_Line:$e,Request_URI:et,absoluteURI:B,hier_part:tt,net_path:nt,abs_path:rt,opaque_part:it,uric:at,uric_no_slash:ot,path_segments:st,segment:ct,param:lt,pchar:ut,scheme:dt,authority:ft,srvr:pt,reg_name:mt,query:ht,SIP_Version:gt,INVITEm:_t,ACKm:vt,OPTIONSm:yt,BYEm:bt,CANCELm:xt,REGISTERm:St,SUBSCRIBEm:Ct,NOTIFYm:wt,REFERm:Tt,Method:Et,Status_Line:Dt,Status_Code:Ot,extension_code:kt,Reason_Phrase:At,Allow_Events:jt,Call_ID:Mt,Contact:Nt,contact_param:Pt,name_addr:V,display_name:Ft,contact_params:It,c_p_q:H,c_p_expires:U,delta_seconds:W,qvalue:K,generic_param:q,gen_value:Rt,Content_Disposition:zt,disp_type:Bt,disp_param:J,handling_param:Vt,Content_Encoding:Ht,Content_Length:Ut,Content_Type:Wt,media_type:Y,m_type:Gt,discrete_type:Kt,composite_type:qt,extension_token:X,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:Z,via_params:Wn,via_ttl:Gn,via_maddr:Kn,via_received:qn,via_branch:Jn,response_port:Yn,rport:Xn,sent_protocol:Zn,protocol_name:Qn,transport:$n,sent_by:er,via_host:tr,via_port:nr,ttl:rr,WWW_Authenticate:ir,Session_Expires:ar,s_e_expires:or,s_e_params:sr,s_e_refresher:cr,extension_header:lr,header_value:ur,message_body:dr,uuid_URI:fr,uuid:pr,hex4:Q,hex8:mr,hex12:hr,Refer_To:gr,Replaces:_r,call_id:vr,replaces_param:yr,to_tag:br,from_tag:xr,early_flag:Sr};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
2
  `?(e=`\r
3
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 te(){var e;return/^[\x80-\xBF]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a===0&&c(`[\\x80-\\xBF]`)),e}function ne(){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 O(){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 re(){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 ie(){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 ae(){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 oe(){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 se(){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 k(){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 ce(){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 le(){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 ue(){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 de(){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 A(){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 j(){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 fe(){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 pe(){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 me(){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 he(){var e,t,n,r=i;if(e=ce(),e!==null){for(t=[],n=ge(),n===null&&(n=N(),n===null&&(n=he()));n!==null;)t.push(n),n=ge(),n===null&&(n=N(),n===null&&(n=he()));t===null?(e=null,i=r):(n=le(),n===null?(e=null,i=r):e=[e,t,n])}else e=null,i=r;return e}function ge(){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 M(){var e,n,r,a,o=i,s=i;if(e=w(),e!==null){if(n=h(),n!==null){for(r=[],a=ve(),a===null&&(a=N());a!==null;)r.push(a),a=ve(),a===null&&(a=N());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 _e(){var e,n,r,a,o=i,s=i;if(e=w(),e!==null){if(n=h(),n!==null){for(r=[],a=ve(),a===null&&(a=N());a!==null;)r.push(a),a=ve(),a===null&&(a=N());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 ve(){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 N(){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 ye(){var e,n,r,o,s=i,l=i;return e=xe(),e===null?(e=null,i=l):(t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(e=null,i=l):(r=P(),r=r===null?``:r,r===null?(e=null,i=l):(o=De(),o===null?(e=null,i=l):e=[e,n,r,o]))),e!==null&&(e=(function(e){try{$.uri=new Tr($.scheme,$.user,$.host,$.port),delete $.scheme,delete $.user,delete $.host,delete $.host_type,delete $.port}catch{$=-1}})(s)),e===null&&(i=s),e}function be(){var e,r,o,s,l,u,d=i,f=i;return e=xe(),e===null?(e=null,i=f):(t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(e=null,i=f):(o=P(),o=o===null?``:o,o===null?(e=null,i=f):(s=De(),s===null?(e=null,i=f):(l=Fe(),l===null?(e=null,i=f):(u=Je(),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 Tr($.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 xe(){var e=Se();return e===null&&(e=Ce()),e}function Se(){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 Ce(){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 P(){var e,n,r,o=i,s=i,l;return e=we(),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=Ee(),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 we(){var e,t=b();if(t===null&&(t=S(),t===null&&(t=Te())),t!==null)for(e=[];t!==null;)e.push(t),t=b(),t===null&&(t=S(),t===null&&(t=Te()));else e=null;return e}function Te(){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 Ee(){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 De(){var e,n,r,o=i,s;return e=F(),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=Pe(),r===null?(n=null,i=s):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=o):e=[e,n]),e}function F(){var e,n=i;return e=I(),e===null&&(e=Me(),e===null&&(e=Ae())),e!==null&&(e=(function(e){return $.host=t.substring(i,e).toLowerCase(),$.host})(n)),e===null&&(i=n),e}function I(){var e,n,r,o=i,s=i,l;for(e=[],l=i,n=Oe(),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=Oe(),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=ke(),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 Oe(){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 ke(){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 Ae(){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=je(),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 je(){var e,n,r,o,s,l,u,d,f,p,m,h,g,_=i,v=i,y;return e=L(),e===null?(e=null,i=v):(t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(e=null,i=v):(r=L(),r===null?(e=null,i=v):(t.charCodeAt(i)===58?(o=`:`,i++):(o=null,a===0&&c(`":"`)),o===null?(e=null,i=v):(s=L(),s===null?(e=null,i=v):(t.charCodeAt(i)===58?(l=`:`,i++):(l=null,a===0&&c(`":"`)),l===null?(e=null,i=v):(u=L(),u===null?(e=null,i=v):(t.charCodeAt(i)===58?(d=`:`,i++):(d=null,a===0&&c(`":"`)),d===null?(e=null,i=v):(f=L(),f===null?(e=null,i=v):(t.charCodeAt(i)===58?(p=`:`,i++):(p=null,a===0&&c(`":"`)),p===null?(e=null,i=v):(m=L(),m===null?(e=null,i=v):(t.charCodeAt(i)===58?(h=`:`,i++):(h=null,a===0&&c(`":"`)),h===null?(e=null,i=v):(g=R(),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=L(),n===null?(e=null,i=v):(t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(e=null,i=v):(o=L(),o===null?(e=null,i=v):(t.charCodeAt(i)===58?(s=`:`,i++):(s=null,a===0&&c(`":"`)),s===null?(e=null,i=v):(l=L(),l===null?(e=null,i=v):(t.charCodeAt(i)===58?(u=`:`,i++):(u=null,a===0&&c(`":"`)),u===null?(e=null,i=v):(d=L(),d===null?(e=null,i=v):(t.charCodeAt(i)===58?(f=`:`,i++):(f=null,a===0&&c(`":"`)),f===null?(e=null,i=v):(p=L(),p===null?(e=null,i=v):(t.charCodeAt(i)===58?(m=`:`,i++):(m=null,a===0&&c(`":"`)),m===null?(e=null,i=v):(h=R(),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=L(),n===null?(e=null,i=v):(t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(e=null,i=v):(o=L(),o===null?(e=null,i=v):(t.charCodeAt(i)===58?(s=`:`,i++):(s=null,a===0&&c(`":"`)),s===null?(e=null,i=v):(l=L(),l===null?(e=null,i=v):(t.charCodeAt(i)===58?(u=`:`,i++):(u=null,a===0&&c(`":"`)),u===null?(e=null,i=v):(d=L(),d===null?(e=null,i=v):(t.charCodeAt(i)===58?(f=`:`,i++):(f=null,a===0&&c(`":"`)),f===null?(e=null,i=v):(p=R(),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=L(),n===null?(e=null,i=v):(t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(e=null,i=v):(o=L(),o===null?(e=null,i=v):(t.charCodeAt(i)===58?(s=`:`,i++):(s=null,a===0&&c(`":"`)),s===null?(e=null,i=v):(l=L(),l===null?(e=null,i=v):(t.charCodeAt(i)===58?(u=`:`,i++):(u=null,a===0&&c(`":"`)),u===null?(e=null,i=v):(d=R(),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=L(),n===null?(e=null,i=v):(t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(e=null,i=v):(o=L(),o===null?(e=null,i=v):(t.charCodeAt(i)===58?(s=`:`,i++):(s=null,a===0&&c(`":"`)),s===null?(e=null,i=v):(l=R(),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=L(),n===null?(e=null,i=v):(t.charCodeAt(i)===58?(r=`:`,i++):(r=null,a===0&&c(`":"`)),r===null?(e=null,i=v):(o=R(),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=R(),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=L(),n===null?(e=null,i=v):e=[e,n]),e===null&&(v=i,e=L(),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=L(),r===null?(e=null,i=v):(t.charCodeAt(i)===58?(o=`:`,i++):(o=null,a===0&&c(`":"`)),o===null?(e=null,i=v):(s=L(),s===null?(e=null,i=v):(t.charCodeAt(i)===58?(l=`:`,i++):(l=null,a===0&&c(`":"`)),l===null?(e=null,i=v):(u=L(),u===null?(e=null,i=v):(t.charCodeAt(i)===58?(d=`:`,i++):(d=null,a===0&&c(`":"`)),d===null?(e=null,i=v):(f=L(),f===null?(e=null,i=v):(t.charCodeAt(i)===58?(p=`:`,i++):(p=null,a===0&&c(`":"`)),p===null?(e=null,i=v):(m=R(),m===null?(e=null,i=v):e=[e,n,r,o,s,l,u,d,f,p,m])))))))))),e===null&&(v=i,e=L(),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=L(),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=L(),o===null?(e=null,i=v):(t.charCodeAt(i)===58?(s=`:`,i++):(s=null,a===0&&c(`":"`)),s===null?(e=null,i=v):(l=L(),l===null?(e=null,i=v):(t.charCodeAt(i)===58?(u=`:`,i++):(u=null,a===0&&c(`":"`)),u===null?(e=null,i=v):(d=L(),d===null?(e=null,i=v):(t.charCodeAt(i)===58?(f=`:`,i++):(f=null,a===0&&c(`":"`)),f===null?(e=null,i=v):(p=R(),p===null?(e=null,i=v):e=[e,n,r,o,s,l,u,d,f,p]))))))))),e===null&&(v=i,e=L(),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=L(),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=L(),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=L(),s===null?(e=null,i=v):(t.charCodeAt(i)===58?(l=`:`,i++):(l=null,a===0&&c(`":"`)),l===null?(e=null,i=v):(u=L(),u===null?(e=null,i=v):(t.charCodeAt(i)===58?(d=`:`,i++):(d=null,a===0&&c(`":"`)),d===null?(e=null,i=v):(f=R(),f===null?(e=null,i=v):e=[e,n,r,o,s,l,u,d,f])))))))),e===null&&(v=i,e=L(),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=L(),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=L(),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=L(),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=L(),l===null?(e=null,i=v):(t.charCodeAt(i)===58?(u=`:`,i++):(u=null,a===0&&c(`":"`)),u===null?(e=null,i=v):(d=R(),d===null?(e=null,i=v):e=[e,n,r,o,s,l,u,d]))))))),e===null&&(v=i,e=L(),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=L(),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=L(),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=L(),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=L(),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=R(),u===null?(e=null,i=v):e=[e,n,r,o,s,l,u])))))),e===null&&(v=i,e=L(),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=L(),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=L(),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=L(),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=L(),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=L(),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=L(),d===null?(e=null,i=v):e=[e,n,r,o,s,l,u,d]))))))),e===null&&(v=i,e=L(),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=L(),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=L(),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=L(),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=L(),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=L(),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=L(),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 L(){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 R(){var e,n,r,o=i;return e=L(),e===null?(e=null,i=o):(t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(e=null,i=o):(r=L(),r===null?(e=null,i=o):e=[e,n,r])),e===null&&(e=Me()),e}function Me(){var e,n,r,o,s,l,u,d=i,f=i;return e=Ne(),e===null?(e=null,i=f):(t.charCodeAt(i)===46?(n=`.`,i++):(n=null,a===0&&c(`"."`)),n===null?(e=null,i=f):(r=Ne(),r===null?(e=null,i=f):(t.charCodeAt(i)===46?(o=`.`,i++):(o=null,a===0&&c(`"."`)),o===null?(e=null,i=f):(s=Ne(),s===null?(e=null,i=f):(t.charCodeAt(i)===46?(l=`.`,i++):(l=null,a===0&&c(`"."`)),l===null?(e=null,i=f):(u=Ne(),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 Ne(){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 Pe(){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 Fe(){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=Ie(),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=Ie(),r===null?(n=null,i=o):n=[n,r]);return e}function Ie(){var e=Le();return e===null&&(e=Re(),e===null&&(e=ze(),e===null&&(e=Be(),e===null&&(e=Ve(),e===null&&(e=He(),e===null&&(e=Ue())))))),e}function Le(){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=O())))),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 Re(){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=O())),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 ze(){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=Et(),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 Be(){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=rr(),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 Ve(){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=F(),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 He(){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=O(),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 Ue(){var e,n,r,o=i,s=i,l;return e=We(),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=Ge(),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 We(){var e,t,n=i;if(t=Ke(),t!==null)for(e=[];t!==null;)e.push(t),t=Ke();else e=null;return e!==null&&(e=(function(e,t){return t.join(``)})(n,e)),e===null&&(i=n),e}function Ge(){var e,t,n=i;if(t=Ke(),t!==null)for(e=[];t!==null;)e.push(t),t=Ke();else e=null;return e!==null&&(e=(function(e,t){return t.join(``)})(n,e)),e===null&&(i=n),e}function Ke(){var e=qe();return e===null&&(e=b(),e===null&&(e=S())),e}function qe(){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 Je(){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=Ye(),n!==null){for(r=[],u=i,t.charCodeAt(i)===38?(o=`&`,i++):(o=null,a===0&&c(`"&"`)),o===null?(o=null,i=u):(s=Ye(),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=Ye(),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 Ye(){var e,n,r,o=i,s=i;return e=Xe(),e===null?(e=null,i=s):(t.charCodeAt(i)===61?(n=`=`,i++):(n=null,a===0&&c(`"="`)),n===null?(e=null,i=s):(r=Ze(),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 Xe(){var e,t=z();if(t===null&&(t=b(),t===null&&(t=S())),t!==null)for(e=[];t!==null;)e.push(t),t=z(),t===null&&(t=b(),t===null&&(t=S()));else e=null;return e}function Ze(){var e=[],t=z();for(t===null&&(t=b(),t===null&&(t=S()));t!==null;)e.push(t),t=z(),t===null&&(t=b(),t===null&&(t=S()));return e}function z(){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 Qe(){var e=Dt();return e===null&&(e=$e()),e}function $e(){var e,t,n,r,a,o=i;return e=Et(),e===null?(e=null,i=o):(t=g(),t===null?(e=null,i=o):(n=et(),n===null?(e=null,i=o):(r=g(),r===null?(e=null,i=o):(a=gt(),a===null?(e=null,i=o):e=[e,t,n,r,a])))),e}function et(){var e=be();return e===null&&(e=B()),e}function B(){var e,n,r,o=i;return e=dt(),e===null?(e=null,i=o):(t.charCodeAt(i)===58?(n=`:`,i++):(n=null,a===0&&c(`":"`)),n===null?(e=null,i=o):(r=tt(),r===null&&(r=it()),r===null?(e=null,i=o):e=[e,n,r])),e}function tt(){var e,n,r,o=i,s;return e=nt(),e===null&&(e=rt()),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=ht(),r===null?(n=null,i=s):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=o):e=[e,n]),e}function nt(){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=ft(),n===null?(e=null,i=o):(r=rt(),r=r===null?``:r,r===null?(e=null,i=o):e=[e,n,r])),e}function rt(){var e,n,r=i;return t.charCodeAt(i)===47?(e=`/`,i++):(e=null,a===0&&c(`"/"`)),e===null?(e=null,i=r):(n=st(),n===null?(e=null,i=r):e=[e,n]),e}function it(){var e,t,n,r=i;if(e=ot(),e!==null){for(t=[],n=at();n!==null;)t.push(n),n=at();t===null?(e=null,i=r):e=[e,t]}else e=null,i=r;return e}function at(){var e=y();return e===null&&(e=b(),e===null&&(e=S())),e}function ot(){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 st(){var e,n,r,o,s=i,l;if(e=ct(),e!==null){for(n=[],l=i,t.charCodeAt(i)===47?(r=`/`,i++):(r=null,a===0&&c(`"/"`)),r===null?(r=null,i=l):(o=ct(),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=ct(),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 ct(){var e,n,r,o,s=i,l;for(e=[],n=ut();n!==null;)e.push(n),n=ut();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=lt(),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=lt(),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 lt(){for(var e=[],t=ut();t!==null;)e.push(t),t=ut();return e}function ut(){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 dt(){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 ft(){var e=pt();return e===null&&(e=mt()),e}function pt(){var e,n,r=i,o=i;return e=P(),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=De(),n===null?(e=null,i=r):e=[e,n]),e=e===null?``:e,e}function mt(){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 ht(){for(var e=[],t=at();t!==null;)e.push(t),t=at();return e}function gt(){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 _t(){var e;return t.substr(i,6)===`INVITE`?(e=`INVITE`,i+=6):(e=null,a===0&&c(`"INVITE"`)),e}function vt(){var e;return t.substr(i,3)===`ACK`?(e=`ACK`,i+=3):(e=null,a===0&&c(`"ACK"`)),e}function yt(){var e;return t.substr(i,7)===`OPTIONS`?(e=`OPTIONS`,i+=7):(e=null,a===0&&c(`"OPTIONS"`)),e}function bt(){var e;return t.substr(i,3)===`BYE`?(e=`BYE`,i+=3):(e=null,a===0&&c(`"BYE"`)),e}function xt(){var e;return t.substr(i,6)===`CANCEL`?(e=`CANCEL`,i+=6):(e=null,a===0&&c(`"CANCEL"`)),e}function St(){var e;return t.substr(i,8)===`REGISTER`?(e=`REGISTER`,i+=8):(e=null,a===0&&c(`"REGISTER"`)),e}function Ct(){var e;return t.substr(i,9)===`SUBSCRIBE`?(e=`SUBSCRIBE`,i+=9):(e=null,a===0&&c(`"SUBSCRIBE"`)),e}function wt(){var e;return t.substr(i,6)===`NOTIFY`?(e=`NOTIFY`,i+=6):(e=null,a===0&&c(`"NOTIFY"`)),e}function Tt(){var e;return t.substr(i,5)===`REFER`?(e=`REFER`,i+=5):(e=null,a===0&&c(`"REFER"`)),e}function Et(){var e,n=i;return e=_t(),e===null&&(e=vt(),e===null&&(e=yt(),e===null&&(e=bt(),e===null&&(e=xt(),e===null&&(e=St(),e===null&&(e=Ct(),e===null&&(e=wt(),e===null&&(e=Tt(),e===null&&(e=O()))))))))),e!==null&&(e=(function(e){return $.method=t.substring(i,e),$.method})(n)),e===null&&(i=n),e}function Dt(){var e,t,n,r,a,o=i;return e=gt(),e===null?(e=null,i=o):(t=g(),t===null?(e=null,i=o):(n=Ot(),n===null?(e=null,i=o):(r=g(),r===null?(e=null,i=o):(a=At(),a===null?(e=null,i=o):e=[e,t,n,r,a])))),e}function Ot(){var e,t=i;return e=kt(),e!==null&&(e=(function(e,t){$.status_code=parseInt(t.join(``))})(t,e)),e===null&&(i=t),e}function kt(){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 At(){var e,n,r=i;for(e=[],n=y(),n===null&&(n=b(),n===null&&(n=S(),n===null&&(n=D(),n===null&&(n=te(),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=te(),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 jt(){var e,t,n,r,a=i,o;if(e=nn(),e!==null){for(t=[],o=i,n=A(),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=A(),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 Mt(){var e,n,r,o=i,s=i,l;return e=ae(),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=ae(),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 Nt(){var e,t,n,r,a=i,o,s;if(e=oe(),e===null){if(o=i,e=Pt(),e!==null){for(t=[],s=i,n=A(),n===null?(n=null,i=s):(r=Pt(),r===null?(n=null,i=s):n=[n,r]);n!==null;)t.push(n),s=i,n=A(),n===null?(n=null,i=s):(r=Pt(),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 Pt(){var e,t,n,r,a=i,o=i,s;if(e=ye(),e===null&&(e=V()),e!==null){for(t=[],s=i,n=j(),n===null?(n=null,i=s):(r=It(),r===null?(n=null,i=s):n=[n,r]);n!==null;)t.push(n),s=i,n=j(),n===null?(n=null,i=s):(r=It(),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 Er($.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 V(){var e,t,n,r,a=i;return e=Ft(),e=e===null?``:e,e===null?(e=null,i=a):(t=de(),t===null?(e=null,i=a):(n=be(),n===null?(e=null,i=a):(r=ue(),r===null?(e=null,i=a):e=[e,t,n,r]))),e}function Ft(){var e,t,n,r,a=i,o=i,s;if(e=O(),e!==null){for(t=[],s=i,n=C(),n===null?(n=null,i=s):(r=O(),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=O(),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=_e()),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 It(){var e=H();return e===null&&(e=U(),e===null&&(e=q())),e}function H(){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=k(),n===null?(e=null,i=s):(r=K(),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 U(){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=k(),n===null?(e=null,i=s):(r=W(),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 W(){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 K(){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 q(){var e,t,n,r=i,a=i,o;return e=O(),e===null?(e=null,i=a):(o=i,t=k(),t===null?(t=null,i=o):(n=Rt(),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 Rt(){var e=O();return e===null&&(e=F(),e===null&&(e=M())),e}function zt(){var e,t,n,r,a=i,o;if(e=Bt(),e!==null){for(t=[],o=i,n=j(),n===null?(n=null,i=o):(r=J(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=j(),n===null?(n=null,i=o):(r=J(),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 Bt(){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=O())))),e}function J(){var e=Vt();return e===null&&(e=q()),e}function Vt(){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=k(),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=O())),r===null?(e=null,i=o):e=[e,n,r])),e}function Ht(){var e,t,n,r,a=i,o;if(e=O(),e!==null){for(t=[],o=i,n=A(),n===null?(n=null,i=o):(r=O(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=A(),n===null?(n=null,i=o):(r=O(),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 Ut(){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 Wt(){var e,n=i;return e=Y(),e!==null&&(e=(function(e){$=t.substring(i,e)})(n)),e===null&&(i=n),e}function Y(){var e,t,n,r,a,o,s=i,c;if(e=Gt(),e!==null){if(t=se(),t!==null){if(n=Yt(),n!==null){for(r=[],c=i,a=j(),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=j(),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 Gt(){var e=Kt();return e===null&&(e=qt()),e}function Kt(){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=X()))))),e}function qt(){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=X())),e}function X(){var e=O();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=O(),n===null?(e=null,i=r):e=[e,n]),e}function Yt(){var e=X();return e===null&&(e=O()),e}function Xt(){var e,t,n,r=i;return e=O(),e===null?(e=null,i=r):(t=k(),t===null?(e=null,i=r):(n=Zt(),n===null?(e=null,i=r):e=[e,t,n])),e}function Zt(){var e=O();return e===null&&(e=M()),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=Et(),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=W(),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=j(),n===null?(n=null,i=s):(r=q(),r===null?(n=null,i=s):n=[n,r]);n!==null;)t.push(n),s=i,n=j(),n===null?(n=null,i=s):(r=q(),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=re(),e!==null){for(n=[],l=i,t.charCodeAt(i)===46?(r=`.`,i++):(r=null,a===0&&c(`"."`)),r===null?(r=null,i=l):(o=re(),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=re(),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=ye(),e===null&&(e=V()),e!==null){for(t=[],s=i,n=j(),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=j(),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 Er($.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=q()),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=k(),n===null?(e=null,i=s):(r=O(),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=W(),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=Ft();t!==null;)e.push(t),t=Ft();if(e!==null){if(t=de(),t!==null){if(n=be(),n!==null){if(r=ue(),r!==null){for(a=[],u=i,o=j(),o===null?(o=null,i=u):(s=q(),s===null?(o=null,i=u):o=[o,s]);o!==null;)a.push(o),u=i,o=j(),o===null?(o=null,i=u):(s=q(),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 Er($.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=A(),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=A(),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=O(),e!==null){if(t=C(),t!==null){if(n=pn(),n!==null){for(r=[],c=i,a=A(),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=A(),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=O(),e===null?(e=null,i=r):(t=k(),t===null?(e=null,i=r):(n=O(),n===null&&(n=M()),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=k(),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=_e(),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=k(),n!==null){if(r=pe(),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=me(),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=B();return e===null&&(e=rt()),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=k(),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=_e(),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=k(),n===null?(e=null,i=s):(r=_e(),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=k(),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=k(),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=O())),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=k(),n!==null){if(r=pe(),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=me(),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=O())),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=O(),e!==null){for(t=[],o=i,n=A(),n===null?(n=null,i=o):(r=O(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=A(),n===null?(n=null,i=o):(r=O(),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=A(),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=A(),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=V(),e!==null){for(t=[],s=i,n=j(),n===null?(n=null,i=s):(r=q(),r===null?(n=null,i=s):n=[n,r]);n!==null;)t.push(n),s=i,n=j(),n===null?(n=null,i=s):(r=q(),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 Er($.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=O()),e!==null){for(n=[],u=i,r=j(),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=j(),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=q()),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=k(),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=O(),e!==null){for(t=[],o=i,n=A(),n===null?(n=null,i=o):(r=O(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=A(),n===null?(n=null,i=o):(r=O(),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=A(),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=A(),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=V(),e!==null){for(t=[],o=i,n=j(),n===null?(n=null,i=o):(r=q(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=j(),n===null?(n=null,i=o):(r=q(),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=j(),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=j(),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=O()))),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=k(),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=k(),n===null?(e=null,i=s):(r=W(),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=k(),n===null?(e=null,i=s):(r=W(),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=q()))),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=O()))))))),e}function zn(){var e=ee();return e=e===null?``:e,e}function Bn(){var e,t,n,r,a=i,o;if(e=O(),e!==null){for(t=[],o=i,n=A(),n===null?(n=null,i=o):(r=O(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=A(),n===null?(n=null,i=o):(r=O(),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=ye(),e===null&&(e=V()),e!==null){for(t=[],s=i,n=j(),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=j(),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 Er($.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=q()),e}function Un(){var e,t,n,r,a=i,o;if(e=Z(),e!==null){for(t=[],o=i,n=A(),n===null?(n=null,i=o):(r=Z(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=A(),n===null?(n=null,i=o):(r=Z(),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 Z(){var e,t,n,r,a,o,s=i,c;if(e=Zn(),e!==null){if(t=C(),t!==null){if(n=er(),n!==null){for(r=[],c=i,a=j(),a===null?(a=null,i=c):(o=Wn(),o===null?(a=null,i=c):a=[a,o]);a!==null;)r.push(a),c=i,a=j(),a===null?(a=null,i=c):(o=Wn(),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 Wn(){var e=Gn();return e===null&&(e=Kn(),e===null&&(e=qn(),e===null&&(e=Jn(),e===null&&(e=Yn(),e===null&&(e=q()))))),e}function Gn(){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=k(),n===null?(e=null,i=s):(r=rr(),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 Kn(){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=k(),n===null?(e=null,i=s):(r=F(),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 qn(){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=k(),n===null?(e=null,i=s):(r=Me(),r===null&&(r=je()),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 Jn(){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=k(),n===null?(e=null,i=s):(r=O(),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 Yn(){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=k(),n===null?(n=null,i=s):(r=Xn(),r===null?(n=null,i=s):n=[n,r]),n=n===null?``:n,n===null?(e=null,i=o):e=[e,n]),e}function Xn(){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 Zn(){var e,t,n,r,a,o=i;return e=Qn(),e===null?(e=null,i=o):(t=se(),t===null?(e=null,i=o):(n=O(),n===null?(e=null,i=o):(r=se(),r===null?(e=null,i=o):(a=$n(),a===null?(e=null,i=o):e=[e,t,n,r,a])))),e}function Qn(){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=O()),e!==null&&(e=(function(e,t){$.protocol=t})(n,e)),e===null&&(i=n),e}function $n(){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=O())))),e!==null&&(e=(function(e,t){$.transport=t})(n,e)),e===null&&(i=n),e}function er(){var e,t,n,r=i,a;return e=tr(),e===null?(e=null,i=r):(a=i,t=fe(),t===null?(t=null,i=a):(n=nr(),n===null?(t=null,i=a):t=[t,n]),t=t===null?``:t,t===null?(e=null,i=r):e=[e,t]),e}function tr(){var e,n=i;return e=Me(),e===null&&(e=Ae(),e===null&&(e=I())),e!==null&&(e=(function(e){$.host=t.substring(i,e)})(n)),e===null&&(i=n),e}function nr(){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 rr(){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 ir(){return dn()}function ar(){var e,t,n,r,a=i,o;if(e=or(),e!==null){for(t=[],o=i,n=j(),n===null?(n=null,i=o):(r=sr(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=j(),n===null?(n=null,i=o):(r=sr(),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 or(){var e,t=i;return e=W(),e!==null&&(e=(function(e,t){$.expires=t})(t,e)),e===null&&(i=t),e}function sr(){var e=cr();return e===null&&(e=q()),e}function cr(){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=k(),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 lr(){var e,t,n,r=i;return e=O(),e===null?(e=null,i=r):(t=T(),t===null?(e=null,i=r):(n=ur(),n===null?(e=null,i=r):e=[e,t,n])),e}function ur(){var e=[],t=E();for(t===null&&(t=te(),t===null&&(t=C()));t!==null;)e.push(t),t=E(),t===null&&(t=te(),t===null&&(t=C()));return e}function dr(){for(var e=[],t=m();t!==null;)e.push(t),t=m();return e}function fr(){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=pr(),n===null?(e=null,i=r):e=[e,n]),e}function pr(){var e,n,r,o,s,l,u,d,f,p=i,m=i;return e=mr(),e===null?(e=null,i=m):(t.charCodeAt(i)===45?(n=`-`,i++):(n=null,a===0&&c(`"-"`)),n===null?(e=null,i=m):(r=Q(),r===null?(e=null,i=m):(t.charCodeAt(i)===45?(o=`-`,i++):(o=null,a===0&&c(`"-"`)),o===null?(e=null,i=m):(s=Q(),s===null?(e=null,i=m):(t.charCodeAt(i)===45?(l=`-`,i++):(l=null,a===0&&c(`"-"`)),l===null?(e=null,i=m):(u=Q(),u===null?(e=null,i=m):(t.charCodeAt(i)===45?(d=`-`,i++):(d=null,a===0&&c(`"-"`)),d===null?(e=null,i=m):(f=hr(),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 Q(){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 mr(){var e,t,n=i;return e=Q(),e===null?(e=null,i=n):(t=Q(),t===null?(e=null,i=n):e=[e,t]),e}function hr(){var e,t,n,r=i;return e=Q(),e===null?(e=null,i=r):(t=Q(),t===null?(e=null,i=r):(n=Q(),n===null?(e=null,i=r):e=[e,t,n])),e}function gr(){var e,t,n,r,a=i,o=i,s;if(e=ye(),e===null&&(e=V()),e!==null){for(t=[],s=i,n=j(),n===null?(n=null,i=s):(r=q(),r===null?(n=null,i=s):n=[n,r]);n!==null;)t.push(n),s=i,n=j(),n===null?(n=null,i=s):(r=q(),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 Er($.uri,$.display_name,$.params)}catch{$=-1}})(a)),e===null&&(i=a),e}function _r(){var e,t,n,r,a=i,o;if(e=vr(),e!==null){for(t=[],o=i,n=j(),n===null?(n=null,i=o):(r=yr(),r===null?(n=null,i=o):n=[n,r]);n!==null;)t.push(n),o=i,n=j(),n===null?(n=null,i=o):(r=yr(),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 vr(){var e,n,r,o=i,s=i,l;return e=ae(),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=ae(),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 yr(){var e=br();return e===null&&(e=xr(),e===null&&(e=Sr(),e===null&&(e=q()))),e}function br(){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=k(),n===null?(e=null,i=s):(r=O(),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 xr(){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=k(),n===null?(e=null,i=s):(r=O(),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 Sr(){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 Cr(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 wr(){for(var e=1,n=1,r=!1,a=0;a<Math.max(i,o);a++){var s=t.charAt(a);s===`
4
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 Tr=G(),Er=Lt(),$={};if(r[n]()===null||i!==t.length){var Dr=Math.max(i,o),Or=Dr<t.length?t.charAt(Dr):null,kr=wr();return new this.SyntaxError(Cr(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})()})),G=c(((e,t)=>{var n=H(),r=K(),i=W();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}}})),K=c((e=>{var t=H(),n=G(),r=W();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})),q=c(((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)}})),Rt=c(((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`:``)}})),zt=c(((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=Rt(),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})),Bt=c(((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=zt()(e);var{formatters:s}=t.exports;s.j=function(e){try{return JSON.stringify(e)}catch(e){return`[UnexpectedJSONParseError]: `+e.message}}})),J=c(((e,t)=>{var n=Bt(),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}}})),Vt=c(((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`})})})),Ht=c((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=Vt(),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}})})}})),Ut=c(((e,t)=>{var n=Vt(),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