sip-connector 20.2.1 → 20.3.0

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.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./@SipConnector-BTqBRDjY.cjs");require("events-constructor");const k=require("@krivega/cancelable-promise"),$=require("repeated-calls"),q=require("ts-debounce"),W=require("ua-parser-js"),H=require("sequent-promises"),j=require("stack-promises"),K=n=>n instanceof Object&&("originator"in n||"cause"in n),X=n=>{if(k.isCanceledError(n))return!0;if(!K(n))return!1;const{originator:e,cause:t}=n;return typeof t=="string"?t===o.ECallCause.REQUEST_TIMEOUT||t===o.ECallCause.REJECTED||e==="local"&&(t===o.ECallCause.CANCELED||t===o.ECallCause.BYE):!1},Y=()=>globalThis.process?.versions?.electron!==void 0,L=()=>{const n=new W.UAParser,{name:e}=n.getBrowser(),t=Y();return{isChrome:e==="Chrome"||t}},M=n=>{const{url:e,cause:t}=n;let r=e;return(t===o.ECallCause.BAD_MEDIA_DESCRIPTION||t===o.ECallCause.NOT_FOUND)&&(r=`${n.message.to.uri.user}@${n.message.to.uri.host}`),r};var V=(n=>(n.CONNECT_SERVER_FAILED="CONNECT_SERVER_FAILED",n.WRONG_USER_OR_PASSWORD="WRONG_USER_OR_PASSWORD",n.BAD_MEDIA_ERROR="BAD_MEDIA_ERROR",n.NOT_FOUND_ERROR="NOT_FOUND_ERROR",n.WS_CONNECTION_FAILED="WS_CONNECTION_FAILED",n.CONNECT_SERVER_FAILED_BY_LINK="CONNECT_SERVER_FAILED_BY_LINK",n))(V||{});const G=new Error("Unknown error"),J=(n=G)=>{const{cause:e,socket:t}=n;let r="CONNECT_SERVER_FAILED";switch(e){case"Forbidden":{r="WRONG_USER_OR_PASSWORD";break}case o.ECallCause.BAD_MEDIA_DESCRIPTION:{r="BAD_MEDIA_ERROR";break}case o.ECallCause.NOT_FOUND:{r="NOT_FOUND_ERROR";break}default:t!==void 0&&t._ws?.readyState===3?r="WS_CONNECTION_FAILED":M(n)!==void 0&&M(n)!==""&&(r="CONNECT_SERVER_FAILED_BY_LINK")}return r},z=n=>{let e="";try{e=JSON.stringify(n)}catch(t){o.logger("failed to stringify message",t)}return e},Q=new Error("Unknown error"),Z=(n=Q)=>{const{code:e,cause:t,message:r}=n,a=M(n),s={code:"",cause:"",message:""};return typeof r=="object"&&r!==null?s.message=z(r):r&&(s.message=String(r)),a!==void 0&&a!==""&&(s.link=a),e!==void 0&&e!==""&&(s.code=e),t!==void 0&&t!==""&&(s.cause=t),s},ee=Object.freeze(Object.defineProperty({__proto__:null,EErrorTypes:V,getLinkError:M,getTypeFromError:J,getValuesFromError:Z},Symbol.toStringTag,{value:"Module"})),ne=({sessionId:n,remoteAddress:e,isMutedAudio:t,isMutedVideo:r,isRegistered:a,isPresentationCall:s})=>{const c=[],l=t?"0":"1",g=r?"0":"1";return c.push(`X-Vinteo-Mic-State: ${l}`,`X-Vinteo-MainCam-State: ${g}`),(a===!1||a===void 0)&&c.push("X-Vinteo-Purgatory-Call: yes"),n!==void 0&&n!==""&&c.push(`X-Vinteo-Session: ${n}`),s===!0&&c.push("X-Vinteo-Presentation-Call: yes"),e!==void 0&&e!==""&&c.push(`X-Vinteo-Remote: ${e}`),c},te="[@*!|]",oe="_",re=n=>{let e=n;return e=e.replaceAll(new RegExp(te,"g"),oe),e},se=({appName:n,appVersion:e,browserName:t,browserVersion:r})=>{const s=`${re(n)} ${e}`;return`ChromeNew - ${t===void 0?s:`${t} ${r}, ${s}`}`},ae=({isUnifiedSdpSemantic:n,appVersion:e,browserName:t,browserVersion:r,appName:a})=>n?se({appVersion:e,browserName:t,browserVersion:r,appName:a}):"Chrome",x="purgatory",y=n=>n===x,ce=n=>e=>[...e].map(r=>async()=>n(r)),ie=async({accumulatedKeys:n,sendKey:e,canRunTask:t})=>{const a=ce(e)(n);return H.sequentPromises(a,t)},le=n=>t=>(o.logger("onStartMainCam"),n.on("api:admin-start-main-cam",t)),ue=n=>t=>(o.logger("onStartMic"),n.on("api:admin-start-mic",t)),ge=n=>t=>(o.logger("onStopMainCam"),n.on("api:admin-stop-main-cam",t)),de=n=>t=>(o.logger("onStopMic"),n.on("api:admin-stop-mic",t)),Ce=({sipConnector:n})=>{const e=(u,d)=>({isSyncForced:C})=>{if(C===!0){u();return}d()},t=le(n),r=ge(n),a=ue(n),s=de(n);let c,l,g,p;const b=({onStartMainCamForced:u,onStartMainCamNotForced:d,onStopMainCamForced:C,onStopMainCamNotForced:h,onStartMicForced:R,onStartMicNotForced:O,onStopMicForced:_,onStopMicNotForced:v})=>{const S=e(u,d);c=t(S);const f=e(C,h);l=r(f);const N=e(R,O);g=a(N);const m=e(_,v);p=s(m)},P=()=>{c?.(),l?.(),g?.(),p?.()};return{start:u=>{b(u)},stop:()=>{P()}}},Se=Object.freeze(Object.defineProperty({__proto__:null,PURGATORY_CONFERENCE_NUMBER:x,createSyncMediaState:Ce,createUaParser:L,error:ee,getExtraHeaders:ne,getUserAgent:ae,hasPurgatory:y,prepareMediaStream:o.prepareMediaStream,sendDtmfAccumulated:ie,sendOffer:o.sendOffer,setEncodingsToSender:o.setEncodingsToSender,setParametersToSender:o.setParametersToSender},Symbol.toStringTag,{value:"Module"})),fe=()=>L().isChrome,me=n=>{if(!k.isCanceledError(n)&&!$.hasCanceledError(n)&&!o.hasNotReadyForConnectionError(n))throw n;return{configuration:void 0,isSuccessful:!1}},pe=({kind:n,readyState:e})=>n==="video"&&e==="live",w=(n,e,{onEnterPurgatory:t,onEnterConference:r})=>{y(n)?t&&t():r&&r({isSuccessProgressCall:e})},I=(n,e)=>{n(),e&&e()},U=(n,e,t)=>{throw n&&n(),e(),t},Ee=new Set(["on","once","onceRace","wait","off","sendDTMF","hangUp","declineToIncomingCall","sendChannels","checkTelephony","waitChannels","ping","startAutoConnect","stopAutoConnect","connection","isConfigured","isRegistered"]);class he{on;once;onceRace;wait;off;sendDTMF;hangUp;declineToIncomingCall;sendChannels;checkTelephony;waitChannels;ping;startAutoConnect;stopAutoConnect;connection;isConfigured;isRegistered;sipConnector;constructor(e){return this.sipConnector=e,new Proxy(this,{get:(t,r,a)=>{if(typeof r=="string"&&Ee.has(r)&&r in this.sipConnector){const c=Reflect.get(this.sipConnector,r,this.sipConnector);return typeof c=="function"?c.bind(this.sipConnector):c}const s=Reflect.get(t,r,a);return typeof s=="function"?s.bind(t):s}})}connectToServer=async(e,t)=>this.sipConnector.connect(e,t).then(r=>(o.logger("connectToServer then"),{configuration:r,isSuccessful:!0})).catch(async r=>(o.logger("connectToServer catch: error",r),me(r)));callToServer=async e=>{const{conference:t,mediaStream:r,extraHeaders:a,iceServers:s,contentHint:c,degradationPreference:l,sendEncodings:g,offerToReceiveAudio:p,offerToReceiveVideo:b,directionVideo:P,directionAudio:T,onBeforeProgressCall:E,onSuccessProgressCall:u,onEnterPurgatory:d,onEnterConference:C,onFailProgressCall:h,onFinishProgressCall:R,onEndedCall:O,onAddedTransceiver:_}=e;o.logger("callToServer",e);const v=async()=>(o.logger("startCall"),this.sipConnector.call({mediaStream:r,extraHeaders:a,iceServers:s,contentHint:c,offerToReceiveAudio:p,offerToReceiveVideo:b,directionVideo:P,directionAudio:T,degradationPreference:l,onAddedTransceiver:_,sendEncodings:g,number:t}));let S=!1,f;const m=(o.logger("subscribeEnterConference: onEnterConference",C),this.sipConnector.on("api:enterRoom",({room:i})=>{o.logger("enterRoom",{_room:i,isSuccessProgressCall:S}),f=i,(d??C)&&w(f,S,{onEnterPurgatory:d,onEnterConference:C})})),A=i=>(o.logger("onSuccess"),S=!0,u&&u({isPurgatory:y(f)}),this.sipConnector.onceRace(["call:ended","call:failed"],()=>{I(m,O)}),i),F=i=>(o.logger("onFail"),U(h,m,i)),D=()=>{o.logger("onFinish"),R&&R()};return o.logger("onBeforeProgressCall"),E&&E(t),v().then(A).catch(i=>F(i)).finally(D)};disconnectFromServer=async()=>this.sipConnector.disconnect().then(()=>(o.logger("disconnectFromServer: then"),{isSuccessful:!0})).catch(e=>(o.logger("disconnectFromServer: catch",e),{isSuccessful:!1}));answerToIncomingCall=async e=>{const{mediaStream:t,extraHeaders:r,iceServers:a,contentHint:s,degradationPreference:c,sendEncodings:l,offerToReceiveAudio:g,offerToReceiveVideo:p,directionVideo:b,directionAudio:P,onBeforeProgressCall:T,onSuccessProgressCall:E,onEnterPurgatory:u,onEnterConference:d,onFailProgressCall:C,onFinishProgressCall:h,onEndedCall:R,onAddedTransceiver:O}=e;o.logger("answerToIncomingCall",e);const _=async()=>this.sipConnector.answerToIncomingCall({mediaStream:t,extraHeaders:r,iceServers:a,contentHint:s,offerToReceiveAudio:g,offerToReceiveVideo:p,directionVideo:b,directionAudio:P,degradationPreference:c,onAddedTransceiver:O,sendEncodings:l}),v=()=>{const{remoteCallerData:i}=this.sipConnector;return i.incomingNumber};let S=!1,f;const m=(o.logger("subscribeEnterConference: onEnterConference",d),this.sipConnector.on("api:enterRoom",i=>{o.logger("enterRoom",{room:i.room,isSuccessProgressCall:S}),f=i.room,(u??d)&&w(f,S,{onEnterPurgatory:u,onEnterConference:d})})),A=i=>(o.logger("onSuccess"),S=!0,E&&E({isPurgatory:y(f)}),this.sipConnector.onceRace(["call:ended","call:failed"],()=>{I(m,R)}),i),F=i=>(o.logger("onFail"),U(C,m,i)),D=()=>{o.logger("onFinish"),h&&h()};if(o.logger("onBeforeProgressCall"),T){const i=v();T(i)}return _().then(A).catch(i=>F(i)).finally(D)};updatePresentation=async({mediaStream:e,isP2P:t,contentHint:r,degradationPreference:a,sendEncodings:s,onAddedTransceiver:c})=>(o.logger("updatePresentation"),this.sipConnector.updatePresentation(e,{isP2P:t,contentHint:r,degradationPreference:a,onAddedTransceiver:c,sendEncodings:s}));startPresentation=async({mediaStream:e,isP2P:t,contentHint:r,degradationPreference:a,sendEncodings:s,callLimit:c,onAddedTransceiver:l})=>(o.logger("startPresentation"),this.sipConnector.startPresentation(e,{isP2P:t,contentHint:r,callLimit:c,degradationPreference:a,onAddedTransceiver:l,sendEncodings:s}));stopShareSipConnector=async({isP2P:e=!1}={})=>(o.logger("stopShareSipConnector"),this.sipConnector.stopPresentation({isP2P:e}).catch(t=>{o.logger(t)}));sendRefusalToTurnOnMic=async()=>{o.logger("sendRefusalToTurnOnMic"),await this.sipConnector.sendRefusalToTurnOnMic().catch(e=>{o.logger("sendRefusalToTurnOnMic: error",e)})};sendRefusalToTurnOnCam=async()=>{o.logger("sendRefusalToTurnOnCam"),await this.sipConnector.sendRefusalToTurnOnCam().catch(e=>{o.logger("sendRefusalToTurnOnCam: error",e)})};sendMediaState=async({isEnabledCam:e,isEnabledMic:t})=>{o.logger("sendMediaState"),await this.sipConnector.sendMediaState({cam:e,mic:t})};replaceMediaStream=async(e,{deleteExisting:t,addMissing:r,forceRenegotiation:a,contentHint:s,degradationPreference:c,sendEncodings:l,onAddedTransceiver:g})=>(o.logger("replaceMediaStream"),this.sipConnector.replaceMediaStream(e,{deleteExisting:t,addMissing:r,forceRenegotiation:a,contentHint:s,degradationPreference:c,onAddedTransceiver:g,sendEncodings:l}));askPermissionToEnableCam=async()=>{o.logger("askPermissionToEnableCam"),await this.sipConnector.askPermissionToEnableCam()};resolveHandleReadyRemoteStreamsDebounced=({onReadyRemoteStreams:e})=>q.debounce(()=>{const t=this.sipConnector.getRemoteStreams();o.logger("remoteStreams",t),e(t)},200);resolveHandleReadyRemoteStreams=({onReadyRemoteStreams:e})=>({track:t})=>{pe(t)&&e()};getRemoteStreams=()=>(o.logger("getRemoteStreams"),this.sipConnector.getRemoteStreams());onUseLicense=e=>(o.logger("onUseLicense"),this.sipConnector.on("api:useLicense",e));onMustStopPresentation=e=>(o.logger("onMustStopPresentation"),this.sipConnector.on("api:mustStopPresentation",e));onMoveToSpectators=e=>(o.logger("onMoveToSpectators"),this.sipConnector.on("api:participant:move-request-to-spectators",e));onMoveToParticipants=e=>(o.logger("onMoveToParticipants"),this.sipConnector.on("api:participant:move-request-to-participants",e));onStats=e=>(o.logger("onStats"),this.sipConnector.on("stats:collected",e));offStats=e=>{o.logger("offStats"),this.sipConnector.off("stats:collected",e)}}var B=(n=>(n.VP8="video/VP8",n.VP9="video/VP9",n.H264="video/H264",n.AV1="video/AV1",n.rtx="video/rtx",n.red="video/red",n.flexfec03="video/flexfec-03",n))(B||{});exports.ECallCause=o.ECallCause;exports.EStatsTypes=o.EStatsTypes;exports.EUseLicense=o.EUseLicense;exports.SipConnector=o.SipConnector;exports.StatsPeerConnection=o.StatsPeerConnection;exports.disableDebug=o.disableDebug;exports.enableDebug=o.enableDebug;exports.getCodecFromSender=o.getCodecFromSender;exports.hasCanceledStartPresentationError=o.hasCanceledStartPresentationError;Object.defineProperty(exports,"hasConnectionPromiseIsNotActualError",{enumerable:!0,get:()=>j.isPromiseIsNotActualError});exports.EMimeTypesVideoCodecs=B;exports.SipConnectorFacade=he;exports.hasAvailableStats=fe;exports.hasCanceledCallError=X;exports.tools=Se;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./@SipConnector-C-73R76v.cjs");require("events-constructor");const k=require("@krivega/cancelable-promise"),q=require("repeated-calls"),W=require("ts-debounce"),H=require("ua-parser-js"),j=require("sequent-promises"),K=require("stack-promises"),X=e=>e instanceof Object&&("originator"in e||"cause"in e),Y=e=>{if(k.isCanceledError(e))return!0;if(!X(e))return!1;const{originator:n,cause:o}=e;return typeof o=="string"?o===t.ECallCause.REQUEST_TIMEOUT||o===t.ECallCause.REJECTED||n==="local"&&(o===t.ECallCause.CANCELED||o===t.ECallCause.BYE):!1},G=e=>e.connection.value,L=e=>e.call.value,J=e=>e.incoming.value,z=e=>{if(e.incoming.value!==t.EState$1.IDLE)return e.incoming.context.remoteCallerData},Q=e=>e.presentation.value,Z=e=>{const n=L(e);return n===t.EState.IN_CALL||n===t.EState.ACCEPTED},ee={selectConnectionStatus:G,selectCallStatus:L,selectIncomingStatus:J,selectIncomingRemoteCaller:z,selectPresentationStatus:Q,selectIsInCall:Z},ne=()=>globalThis.process?.versions?.electron!==void 0,V=()=>{const e=new H.UAParser,{name:n}=e.getBrowser(),o=ne();return{isChrome:n==="Chrome"||o}},M=e=>{const{url:n,cause:o}=e;let r=n;return(o===t.ECallCause.BAD_MEDIA_DESCRIPTION||o===t.ECallCause.NOT_FOUND)&&(r=`${e.message.to.uri.user}@${e.message.to.uri.host}`),r};var x=(e=>(e.CONNECT_SERVER_FAILED="CONNECT_SERVER_FAILED",e.WRONG_USER_OR_PASSWORD="WRONG_USER_OR_PASSWORD",e.BAD_MEDIA_ERROR="BAD_MEDIA_ERROR",e.NOT_FOUND_ERROR="NOT_FOUND_ERROR",e.WS_CONNECTION_FAILED="WS_CONNECTION_FAILED",e.CONNECT_SERVER_FAILED_BY_LINK="CONNECT_SERVER_FAILED_BY_LINK",e))(x||{});const te=new Error("Unknown error"),oe=(e=te)=>{const{cause:n,socket:o}=e;let r="CONNECT_SERVER_FAILED";switch(n){case"Forbidden":{r="WRONG_USER_OR_PASSWORD";break}case t.ECallCause.BAD_MEDIA_DESCRIPTION:{r="BAD_MEDIA_ERROR";break}case t.ECallCause.NOT_FOUND:{r="NOT_FOUND_ERROR";break}default:o!==void 0&&o._ws?.readyState===3?r="WS_CONNECTION_FAILED":M(e)!==void 0&&M(e)!==""&&(r="CONNECT_SERVER_FAILED_BY_LINK")}return r},re=e=>{let n="";try{n=JSON.stringify(e)}catch(o){t.logger("failed to stringify message",o)}return n},se=new Error("Unknown error"),ae=(e=se)=>{const{code:n,cause:o,message:r}=e,a=M(e),s={code:"",cause:"",message:""};return typeof r=="object"&&r!==null?s.message=re(r):r&&(s.message=String(r)),a!==void 0&&a!==""&&(s.link=a),n!==void 0&&n!==""&&(s.code=n),o!==void 0&&o!==""&&(s.cause=o),s},ce=Object.freeze(Object.defineProperty({__proto__:null,EErrorTypes:x,getLinkError:M,getTypeFromError:oe,getValuesFromError:ae},Symbol.toStringTag,{value:"Module"})),ie=({sessionId:e,remoteAddress:n,isMutedAudio:o,isMutedVideo:r,isRegistered:a,isPresentationCall:s})=>{const c=[],l=o?"0":"1",g=r?"0":"1";return c.push(`X-Vinteo-Mic-State: ${l}`,`X-Vinteo-MainCam-State: ${g}`),(a===!1||a===void 0)&&c.push("X-Vinteo-Purgatory-Call: yes"),e!==void 0&&e!==""&&c.push(`X-Vinteo-Session: ${e}`),s===!0&&c.push("X-Vinteo-Presentation-Call: yes"),n!==void 0&&n!==""&&c.push(`X-Vinteo-Remote: ${n}`),c},le="[@*!|]",ue="_",ge=e=>{let n=e;return n=n.replaceAll(new RegExp(le,"g"),ue),n},Ce=({appName:e,appVersion:n,browserName:o,browserVersion:r})=>{const s=`${ge(e)} ${n}`;return`ChromeNew - ${o===void 0?s:`${o} ${r}, ${s}`}`},de=({isUnifiedSdpSemantic:e,appVersion:n,browserName:o,browserVersion:r,appName:a})=>e?Ce({appVersion:n,browserName:o,browserVersion:r,appName:a}):"Chrome",$="purgatory",y=e=>e===$,Se=e=>n=>[...n].map(r=>async()=>e(r)),fe=async({accumulatedKeys:e,sendKey:n,canRunTask:o})=>{const a=Se(n)(e);return j.sequentPromises(a,o)},me=e=>o=>(t.logger("onStartMainCam"),e.on("api:admin-start-main-cam",o)),Ee=e=>o=>(t.logger("onStartMic"),e.on("api:admin-start-mic",o)),pe=e=>o=>(t.logger("onStopMainCam"),e.on("api:admin-stop-main-cam",o)),he=e=>o=>(t.logger("onStopMic"),e.on("api:admin-stop-mic",o)),Re=({sipConnector:e})=>{const n=(u,C)=>({isSyncForced:d})=>{if(d===!0){u();return}C()},o=me(e),r=pe(e),a=Ee(e),s=he(e);let c,l,g,E;const b=({onStartMainCamForced:u,onStartMainCamNotForced:C,onStopMainCamForced:d,onStopMainCamNotForced:h,onStartMicForced:R,onStartMicNotForced:T,onStopMicForced:O,onStopMicNotForced:_})=>{const S=n(u,C);c=o(S);const f=n(d,h);l=r(f);const A=n(R,T);g=a(A);const m=n(O,_);E=s(m)},P=()=>{c?.(),l?.(),g?.(),E?.()};return{start:u=>{b(u)},stop:()=>{P()}}},be=Object.freeze(Object.defineProperty({__proto__:null,PURGATORY_CONFERENCE_NUMBER:$,createSyncMediaState:Re,createUaParser:V,error:ce,getExtraHeaders:ie,getUserAgent:de,hasPurgatory:y,prepareMediaStream:t.prepareMediaStream,sendDtmfAccumulated:fe,sendOffer:t.sendOffer,setEncodingsToSender:t.setEncodingsToSender,setParametersToSender:t.setParametersToSender},Symbol.toStringTag,{value:"Module"})),Pe=()=>V().isChrome,ve=e=>{if(!k.isCanceledError(e)&&!q.hasCanceledError(e)&&!t.hasNotReadyForConnectionError(e))throw e;return{configuration:void 0,isSuccessful:!1}},Te=({kind:e,readyState:n})=>e==="video"&&n==="live",I=(e,n,{onEnterPurgatory:o,onEnterConference:r})=>{y(e)?o&&o():r&&r({isSuccessProgressCall:n})},w=(e,n)=>{e(),n&&n()},U=(e,n,o)=>{throw e&&e(),n(),o},Oe=new Set(["on","once","onceRace","wait","off","sendDTMF","hangUp","declineToIncomingCall","sendChannels","checkTelephony","waitChannels","ping","startAutoConnect","stopAutoConnect","connection","isConfigured","isRegistered"]);class _e{on;once;onceRace;wait;off;sendDTMF;hangUp;declineToIncomingCall;sendChannels;checkTelephony;waitChannels;ping;startAutoConnect;stopAutoConnect;connection;isConfigured;isRegistered;sipConnector;constructor(n){return this.sipConnector=n,new Proxy(this,{get:(o,r,a)=>{if(typeof r=="string"&&Oe.has(r)&&r in this.sipConnector){const c=Reflect.get(this.sipConnector,r,this.sipConnector);return typeof c=="function"?c.bind(this.sipConnector):c}const s=Reflect.get(o,r,a);return typeof s=="function"?s.bind(o):s}})}connectToServer=async(n,o)=>this.sipConnector.connect(n,o).then(r=>(t.logger("connectToServer then"),{configuration:r,isSuccessful:!0})).catch(async r=>(t.logger("connectToServer catch: error",r),ve(r)));callToServer=async n=>{const{conference:o,mediaStream:r,extraHeaders:a,iceServers:s,contentHint:c,degradationPreference:l,sendEncodings:g,offerToReceiveAudio:E,offerToReceiveVideo:b,directionVideo:P,directionAudio:v,onBeforeProgressCall:p,onSuccessProgressCall:u,onEnterPurgatory:C,onEnterConference:d,onFailProgressCall:h,onFinishProgressCall:R,onEndedCall:T,onAddedTransceiver:O}=n;t.logger("callToServer",n);const _=async()=>(t.logger("startCall"),this.sipConnector.call({mediaStream:r,extraHeaders:a,iceServers:s,contentHint:c,offerToReceiveAudio:E,offerToReceiveVideo:b,directionVideo:P,directionAudio:v,degradationPreference:l,onAddedTransceiver:O,sendEncodings:g,number:o}));let S=!1,f;const m=(t.logger("subscribeEnterConference: onEnterConference",d),this.sipConnector.on("api:enterRoom",({room:i})=>{t.logger("enterRoom",{_room:i,isSuccessProgressCall:S}),f=i,(C??d)&&I(f,S,{onEnterPurgatory:C,onEnterConference:d})})),N=i=>(t.logger("onSuccess"),S=!0,u&&u({isPurgatory:y(f)}),this.sipConnector.onceRace(["call:ended","call:failed"],()=>{w(m,T)}),i),D=i=>(t.logger("onFail"),U(h,m,i)),F=()=>{t.logger("onFinish"),R&&R()};return t.logger("onBeforeProgressCall"),p&&p(o),_().then(N).catch(i=>D(i)).finally(F)};disconnectFromServer=async()=>this.sipConnector.disconnect().then(()=>(t.logger("disconnectFromServer: then"),{isSuccessful:!0})).catch(n=>(t.logger("disconnectFromServer: catch",n),{isSuccessful:!1}));answerToIncomingCall=async n=>{const{mediaStream:o,extraHeaders:r,iceServers:a,contentHint:s,degradationPreference:c,sendEncodings:l,offerToReceiveAudio:g,offerToReceiveVideo:E,directionVideo:b,directionAudio:P,onBeforeProgressCall:v,onSuccessProgressCall:p,onEnterPurgatory:u,onEnterConference:C,onFailProgressCall:d,onFinishProgressCall:h,onEndedCall:R,onAddedTransceiver:T}=n;t.logger("answerToIncomingCall",n);const O=async()=>this.sipConnector.answerToIncomingCall({mediaStream:o,extraHeaders:r,iceServers:a,contentHint:s,offerToReceiveAudio:g,offerToReceiveVideo:E,directionVideo:b,directionAudio:P,degradationPreference:c,onAddedTransceiver:T,sendEncodings:l}),_=()=>{const{remoteCallerData:i}=this.sipConnector;return i.incomingNumber};let S=!1,f;const m=(t.logger("subscribeEnterConference: onEnterConference",C),this.sipConnector.on("api:enterRoom",i=>{t.logger("enterRoom",{room:i.room,isSuccessProgressCall:S}),f=i.room,(u??C)&&I(f,S,{onEnterPurgatory:u,onEnterConference:C})})),N=i=>(t.logger("onSuccess"),S=!0,p&&p({isPurgatory:y(f)}),this.sipConnector.onceRace(["call:ended","call:failed"],()=>{w(m,R)}),i),D=i=>(t.logger("onFail"),U(d,m,i)),F=()=>{t.logger("onFinish"),h&&h()};if(t.logger("onBeforeProgressCall"),v){const i=_();v(i)}return O().then(N).catch(i=>D(i)).finally(F)};updatePresentation=async({mediaStream:n,isP2P:o,contentHint:r,degradationPreference:a,sendEncodings:s,onAddedTransceiver:c})=>(t.logger("updatePresentation"),this.sipConnector.updatePresentation(n,{isP2P:o,contentHint:r,degradationPreference:a,onAddedTransceiver:c,sendEncodings:s}));startPresentation=async({mediaStream:n,isP2P:o,contentHint:r,degradationPreference:a,sendEncodings:s,callLimit:c,onAddedTransceiver:l})=>(t.logger("startPresentation"),this.sipConnector.startPresentation(n,{isP2P:o,contentHint:r,callLimit:c,degradationPreference:a,onAddedTransceiver:l,sendEncodings:s}));stopShareSipConnector=async({isP2P:n=!1}={})=>(t.logger("stopShareSipConnector"),this.sipConnector.stopPresentation({isP2P:n}).catch(o=>{t.logger(o)}));sendRefusalToTurnOnMic=async()=>{t.logger("sendRefusalToTurnOnMic"),await this.sipConnector.sendRefusalToTurnOnMic().catch(n=>{t.logger("sendRefusalToTurnOnMic: error",n)})};sendRefusalToTurnOnCam=async()=>{t.logger("sendRefusalToTurnOnCam"),await this.sipConnector.sendRefusalToTurnOnCam().catch(n=>{t.logger("sendRefusalToTurnOnCam: error",n)})};sendMediaState=async({isEnabledCam:n,isEnabledMic:o})=>{t.logger("sendMediaState"),await this.sipConnector.sendMediaState({cam:n,mic:o})};replaceMediaStream=async(n,{deleteExisting:o,addMissing:r,forceRenegotiation:a,contentHint:s,degradationPreference:c,sendEncodings:l,onAddedTransceiver:g})=>(t.logger("replaceMediaStream"),this.sipConnector.replaceMediaStream(n,{deleteExisting:o,addMissing:r,forceRenegotiation:a,contentHint:s,degradationPreference:c,onAddedTransceiver:g,sendEncodings:l}));askPermissionToEnableCam=async()=>{t.logger("askPermissionToEnableCam"),await this.sipConnector.askPermissionToEnableCam()};resolveHandleReadyRemoteStreamsDebounced=({onReadyRemoteStreams:n})=>W.debounce(()=>{const o=this.sipConnector.getRemoteStreams();t.logger("remoteStreams",o),n(o)},200);resolveHandleReadyRemoteStreams=({onReadyRemoteStreams:n})=>({track:o})=>{Te(o)&&n()};getRemoteStreams=()=>(t.logger("getRemoteStreams"),this.sipConnector.getRemoteStreams());onUseLicense=n=>(t.logger("onUseLicense"),this.sipConnector.on("api:useLicense",n));onMustStopPresentation=n=>(t.logger("onMustStopPresentation"),this.sipConnector.on("api:mustStopPresentation",n));onMoveToSpectators=n=>(t.logger("onMoveToSpectators"),this.sipConnector.on("api:participant:move-request-to-spectators",n));onMoveToParticipants=n=>(t.logger("onMoveToParticipants"),this.sipConnector.on("api:participant:move-request-to-participants",n));onStats=n=>(t.logger("onStats"),this.sipConnector.on("stats:collected",n));offStats=n=>{t.logger("offStats"),this.sipConnector.off("stats:collected",n)}}var B=(e=>(e.VP8="video/VP8",e.VP9="video/VP9",e.H264="video/H264",e.AV1="video/AV1",e.rtx="video/rtx",e.red="video/red",e.flexfec03="video/flexfec-03",e))(B||{});exports.ECallCause=t.ECallCause;exports.ECallStatus=t.EState;exports.EConnectionStatus=t.EState$2;exports.EIncomingStatus=t.EState$1;exports.EPresentationStatus=t.EState$3;exports.EStatsTypes=t.EStatsTypes;exports.EUseLicense=t.EUseLicense;exports.SipConnector=t.SipConnector;exports.StatsPeerConnection=t.StatsPeerConnection;exports.disableDebug=t.disableDebug;exports.enableDebug=t.enableDebug;exports.getCodecFromSender=t.getCodecFromSender;exports.hasCanceledStartPresentationError=t.hasCanceledStartPresentationError;Object.defineProperty(exports,"hasConnectionPromiseIsNotActualError",{enumerable:!0,get:()=>K.isPromiseIsNotActualError});exports.EMimeTypesVideoCodecs=B;exports.SipConnectorFacade=_e;exports.hasAvailableStats=Pe;exports.hasCanceledCallError=Y;exports.sessionSelectors=ee;exports.tools=be;
package/dist/index.d.ts CHANGED
@@ -14,3 +14,5 @@ export { EMimeTypesVideoCodecs } from './types';
14
14
  export type { TJsSIP } from './types';
15
15
  export { default as getCodecFromSender } from './utils/getCodecFromSender';
16
16
  export { hasConnectionPromiseIsNotActualError } from './ConnectionQueueManager';
17
+ export { sessionSelectors, ECallStatus, EConnectionStatus, EIncomingStatus, EPresentationStatus, } from './session';
18
+ export type { ISession, TSessionSnapshot } from './session';