sip-connector 11.2.0 → 11.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.
@@ -1311,17 +1311,17 @@ export {
1311
1311
  Ss as S,
1312
1312
  Tt as U,
1313
1313
  Te as a,
1314
- ds as b,
1314
+ xn as b,
1315
1315
  Es as c,
1316
- Ts as d,
1316
+ ds as d,
1317
1317
  hs as e,
1318
- ls as f,
1319
- Fn as g,
1318
+ Ts as f,
1319
+ ls as g,
1320
1320
  us as h,
1321
1321
  q as i,
1322
1322
  F as j,
1323
1323
  Rn as k,
1324
1324
  B as l,
1325
1325
  ut as m,
1326
- xn as s
1326
+ Fn as s
1327
1327
  };
package/dist/doMock.js CHANGED
@@ -1,7 +1,7 @@
1
1
  var y = Object.defineProperty;
2
2
  var N = (o, t, e) => t in o ? y(o, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[t] = e;
3
3
  var r = (o, t, e) => N(o, typeof t != "symbol" ? t + "" : t, e);
4
- import { m as P, R as O, U as k, S as A } from "./SipConnector-BqK7EICM.js";
4
+ import { m as P, R as O, U as k, S as A } from "./SipConnector-BGDcrO00.js";
5
5
  import b from "@krivega/jssip/lib/NameAddrHeader";
6
6
  import D from "@krivega/jssip/lib/URI";
7
7
  import { EventEmitter as L } from "node:events";
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("./SipConnector-_gw-GKlW.cjs"),Q=require("ts-debounce"),J=require("@krivega/cancelable-promise"),Z=require("repeated-calls"),ee=require("sequent-promises"),ne=require("stack-promises"),te=require("debug"),re=e=>e.getVideoTracks()[0],se=1e6,C=e=>e*se,$=C(.06),oe=C(4),ce=e=>e<=64?$:e<=128?C(.12):e<=256?C(.25):e<=384?C(.32):e<=426?C(.38):e<=640?C(.5):e<=848?C(.7):e<=1280?C(1):e<=1920?C(2):oe,q=(e,t)=>e!==void 0&&t!==void 0&&e.toLowerCase().includes(t.toLowerCase()),ae="av1",ie=e=>q(e,ae),ue=.6,X=(e,t)=>ie(t)?e*ue:e,le=e=>X($,e),G=(e,t)=>{const n=ce(e);return X(n,t)},ge=1,H=({videoTrack:e,targetSize:t,codec:n})=>{const r=e.getSettings(),o=r.width,c=r.height,a=o/t.width,i=c/t.height,u=Math.max(a,i,ge),g=G(t.width,n);return{scaleResolutionDownBy:u,maxBitrate:g}},P=({mediaStream:e,simulcastEncodings:t,sendEncodings:n})=>{if(t&&t.length>0){const r=n??[],o=re(e);return t.forEach((c,a)=>{const i=r[a]??{},{maxBitrate:u,scaleResolutionDownBy:g}=H({videoTrack:o,targetSize:{width:c.width,height:c.height}});i.maxBitrate=u,i.scaleResolutionDownBy=g,r[a]=i}),r}return n},W="purgatory",p=e=>e===W,F=e=>()=>(s.logger("getRemoteStreams"),e.getRemoteStreams()),Se=({kind:e,readyState:t})=>e==="video"&&t==="live",j=e=>({track:t})=>{Se(t)&&e()},k=({getRemoteStreams:e,setRemoteStreams:t})=>Q.debounce(()=>{const n=e();s.logger("remoteStreams",n),n&&t(n)},200),de=e=>async n=>{const{mediaStream:r,extraHeaders:o,iceServers:c,contentHint:a,simulcastEncodings:i,sendEncodings:u,setRemoteStreams:g,onBeforeProgressCall:f,onSuccessProgressCall:m,onEnterPurgatory:S,onEnterConference:E,onFailProgressCall:d,onFinishProgressCall:R,onEndedCall:T}=n,y=k({setRemoteStreams:g,getRemoteStreams:F(e)}),b=j(y);s.logger("answerIncomingCall",n);const v=async()=>e.answerToIncomingCall({mediaStream:r,extraHeaders:o,iceServers:c,contentHint:a,sendEncodings:P({mediaStream:r,simulcastEncodings:i,sendEncodings:u}),ontrack:b}),O=()=>{const{remoteCallerData:l}=e;return l.incomingNumber};let M=!1,h;const _=(s.logger("subscribeEnterConference: onEnterConference",E),S??E?e.onSession("enterRoom",l=>{s.logger("enterRoom",{_room:l,isSuccessProgressCall:M}),h=l,p(h)?S&&S():E&&E({isSuccessProgressCall:M})}):()=>{}),A=l=>(s.logger("onSuccess"),M=!0,y(),m&&m({isPurgatory:p(h)}),e.onceRaceSession(["ended","failed"],()=>{_(),T&&T()}),l),B=l=>{throw s.logger("onFail"),d&&d(),_(),l},I=()=>{s.logger("onFinish"),R&&R()};if(s.logger("onBeforeProgressCall"),f){const l=O();f(l)}return v().then(A).catch(l=>B(l)).finally(I)},me=e=>async n=>{const{conference:r,mediaStream:o,extraHeaders:c,iceServers:a,contentHint:i,simulcastEncodings:u,sendEncodings:g,setRemoteStreams:f,onBeforeProgressCall:m,onSuccessProgressCall:S,onEnterPurgatory:E,onEnterConference:d,onFailProgressCall:R,onFinishProgressCall:T,onEndedCall:y}=n,b=k({setRemoteStreams:f,getRemoteStreams:F(e)}),v=j(b);s.logger("callToServer",n);const O=async()=>(s.logger("startCall"),e.call({mediaStream:o,extraHeaders:c,iceServers:a,contentHint:i,sendEncodings:P({mediaStream:o,simulcastEncodings:u,sendEncodings:g}),number:r,ontrack:v}));let M=!1,h;const _=(s.logger("subscribeEnterConference: onEnterConference",d),E??d?e.onSession("enterRoom",({room:l})=>{s.logger("enterRoom",{_room:l,isSuccessProgressCall:M}),h=l,p(h)?E&&E():d&&d({isSuccessProgressCall:M})}):()=>{}),A=l=>(s.logger("onSuccess"),M=!0,b(),S&&S({isPurgatory:p(h)}),e.onceRaceSession(["ended","failed"],()=>{_(),y&&y()}),l),B=l=>{throw s.logger("onFail"),R&&R(),_(),l},I=()=>{s.logger("onFinish"),T&&T()};return s.logger("onBeforeProgressCall"),m&&m(r),O().then(A).catch(l=>B(l)).finally(I)},D=e=>{if(!J.isCanceledError(e)&&!Z.hasCanceledError(e))throw e;return{isSuccessful:!1}},fe=e=>async n=>{const{userAgent:r,sipWebSocketServerURL:o,sipServerUrl:c,remoteAddress:a,displayName:i,name:u,password:g,isRegisteredUser:f,isDisconnectOnFail:m}=n;return s.logger("connectToServer",n),e.connect({userAgent:r,sipWebSocketServerURL:o,sipServerUrl:c,remoteAddress:a,displayName:i,password:g,user:u,register:f}).then(S=>(s.logger("connectToServer then"),{ua:S,isSuccessful:!0})).catch(async S=>(s.logger("connectToServer catch: error",S),m===!0?e.disconnect().then(()=>D(S)).catch(()=>D(S)):D(S)))},Ce=e=>async()=>(s.logger("disconnectFromServer"),e.disconnect().then(()=>(s.logger("disconnectFromServer: then"),{isSuccessful:!0})).catch(t=>(s.logger("disconnectFromServer: catch",t),{isSuccessful:!1}))),U=e=>{const{url:t,cause:n}=e;let r=t;return(n===s.BAD_MEDIA_DESCRIPTION||n===s.NOT_FOUND)&&(r=`${e.message.to.uri.user}@${e.message.to.uri.host}`),r};var K=(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))(K||{});const Ee=(e=new Error)=>{var o;const{cause:t,socket:n}=e;let r="CONNECT_SERVER_FAILED";switch(t){case"Forbidden":{r="WRONG_USER_OR_PASSWORD";break}case s.BAD_MEDIA_DESCRIPTION:{r="BAD_MEDIA_ERROR";break}case s.NOT_FOUND:{r="NOT_FOUND_ERROR";break}default:n&&((o=n==null?void 0:n._ws)==null?void 0:o.readyState)===3?r="WS_CONNECTION_FAILED":U(e)&&(r="CONNECT_SERVER_FAILED_BY_LINK")}return r},Re=e=>{let t="";try{t=JSON.stringify(e)}catch(n){s.logger("failed to stringify message",n)}return t},Te=(e=new Error)=>{const{code:t,cause:n,message:r}=e,o=U(e),c={code:"",cause:"",message:""};return typeof r=="object"&&r!==null?c.message=Re(r):r&&(c.message=String(r)),o&&(c.link=o),t&&(c.code=t),n&&(c.cause=n),c},Me=Object.freeze(Object.defineProperty({__proto__:null,EErrorTypes:K,getLinkError:U,getTypeFromError:Ee,getValuesFromError:Te},Symbol.toStringTag,{value:"Module"})),he=({sessionId:e,remoteAddress:t,isMutedAudio:n,isMutedVideo:r,isRegistered:o,isPresentationCall:c})=>{const a=[],i=n?"0":"1",u=r?"0":"1";return a.push(`X-Vinteo-Mic-State: ${i}`,`X-Vinteo-MainCam-State: ${u}`),o||a.push("X-Vinteo-Purgatory-Call: yes"),e&&a.push(`X-Vinteo-Session: ${e}`),c&&a.push("X-Vinteo-Presentation-Call: yes"),t&&a.push(`X-Vinteo-Remote: ${t}`),a},ye="[@*!|]",_e="_",be=e=>{let t=e;return t=t.replaceAll(new RegExp(ye,"g"),_e),t},ve=({appName:e,appVersion:t,browserName:n,browserVersion:r})=>{const c=`${be(e)} ${t}`;return`ChromeNew - ${n?`${n} ${r}, ${c}`:c}`},Oe=({isUnifiedSdpSemantic:e,appVersion:t,browserName:n,browserVersion:r,appName:o})=>e?ve({appVersion:t,browserName:n,browserVersion:r,appName:o}):"Chrome",Ae=e=>async()=>{if(e.isCallActive)return s.logger("askPermissionToEnableCam"),e.askPermissionToEnableCam()},pe=e=>n=>(s.logger("onMustStopPresentation"),e.onSession("mustStopPresentation",n)),Pe=e=>n=>(s.logger("onMoveToSpectators"),e.onSession(s.PARTICIPANT_MOVE_REQUEST_TO_SPECTATORS,n)),Ne=e=>n=>(s.logger("onMoveToParticipants"),e.onSession(s.PARTICIPANT_MOVE_REQUEST_TO_PARTICIPANTS,n)),Be=e=>n=>(s.logger("onUseLicense"),e.onSession("useLicense",n)),Ie=e=>async({isEnabledCam:n,isEnabledMic:r})=>{if(e.isCallActive)return s.logger("sendMediaState"),e.sendMediaState({cam:n,mic:r})},De=e=>async()=>{if(e.isCallActive)return s.logger("sendRefusalToTurnOnCam"),e.sendRefusalToTurnOnCam().catch(n=>{s.logger("sendRefusalToTurnOnCam: error",n)})},we=e=>async()=>{if(e.isCallActive)return s.logger("sendRefusalToTurnOnMic"),e.sendRefusalToTurnOnMic().catch(n=>{s.logger("sendRefusalToTurnOnMic: error",n)})},Fe=e=>async({mediaStream:n,isP2P:r,maxBitrate:o,contentHint:c,simulcastEncodings:a,sendEncodings:i},u)=>(s.logger("startPresentation"),e.startPresentation(n,{isP2P:r,maxBitrate:o,contentHint:c,sendEncodings:P({mediaStream:n,simulcastEncodings:a,sendEncodings:i})},u)),ke=e=>async({isP2P:n=!1}={})=>(s.logger("stopShareSipConnector"),e.stopPresentation({isP2P:n}).catch(r=>{s.logger(r)})),Ue=e=>async({mediaStream:n,isP2P:r,maxBitrate:o,contentHint:c,simulcastEncodings:a,sendEncodings:i})=>(s.logger("updatePresentation"),e.updatePresentation(n,{isP2P:r,maxBitrate:o,contentHint:c,sendEncodings:P({mediaStream:n,simulcastEncodings:a,sendEncodings:i})})),Le=e=>t=>[...t].map(r=>async()=>e(r)),Ve=async({accumulatedKeys:e,sendKey:t,canRunTask:n})=>{const o=Le(t)(e);return ee.sequentPromises(o,n)},xe=e=>n=>(s.logger("onStartMainCam"),e.onSession("admin-start-main-cam",n)),$e=e=>n=>(s.logger("onStartMic"),e.onSession("admin-start-mic",n)),qe=e=>n=>(s.logger("onStopMainCam"),e.onSession("admin-stop-main-cam",n)),Xe=e=>n=>(s.logger("onStopMic"),e.onSession("admin-stop-mic",n)),Ge=({sipConnector:e})=>{const t=(d,R)=>({isSyncForced:T=!1})=>{if(T){d();return}R()},n=xe(e),r=qe(e),o=$e(e),c=Xe(e);let a=()=>{},i=()=>{},u=()=>{},g=()=>{};const f=({onStartMainCamForced:d,onStartMainCamNotForced:R,onStopMainCamForced:T,onStopMainCamNotForced:y,onStartMicForced:b,onStartMicNotForced:v,onStopMicForced:O,onStopMicNotForced:M})=>{const h=t(d,R);a=n(h);const N=t(T,y);i=r(N);const _=t(b,v);u=o(_);const A=t(O,M);g=c(A)},m=()=>{a(),i(),u(),g()};return{start:d=>{f(d)},stop:()=>{m()}}},He=Object.freeze(Object.defineProperty({__proto__:null,PURGATORY_CONFERENCE_NUMBER:W,createSyncMediaState:Ge,error:Me,getExtraHeaders:he,getUserAgent:Oe,hasPurgatory:p,resolveAnswerIncomingCall:de,resolveAskPermissionToEnableCam:Ae,resolveCallToServer:me,resolveConnectToServer:fe,resolveDisconnectFromServer:Ce,resolveGetRemoteStreams:F,resolveOnMoveToParticipants:Ne,resolveOnMoveToSpectators:Pe,resolveOnMustStopPresentation:pe,resolveOnUseLicense:Be,resolveSendMediaState:Ie,resolveSendRefusalToTurnOnCam:De,resolveSendRefusalToTurnOnMic:we,resolveStartPresentation:Fe,resolveStopShareSipConnector:ke,resolveUpdatePresentation:Ue,resolveUpdateRemoteStreams:k,sendDTMFAccumulated:Ve},Symbol.toStringTag,{value:"Module"})),We=e=>[...e.keys()].map(t=>e.get(t)),je=(e,t)=>We(e).find(n=>n.type===t),Y=async e=>e.getStats().then(t=>{const n=je(t,"codec");return n==null?void 0:n.mimeType}),Ke=e=>e.find(t=>{var n;return((n=t==null?void 0:t.track)==null?void 0:n.kind)==="video"}),z=ne.createStackPromises(),Ye=async()=>z().catch(e=>{s.logger("videoSendingBalancer: error",e)}),ze=async e=>(z.add(e),Ye()),L=async({sender:e,scaleResolutionDownBy:t,maxBitrate:n,onSetParameters:r})=>ze(async()=>s.setEncodingsToSender(e,{scaleResolutionDownBy:t,maxBitrate:n},r)),Qe=async({sender:e,codec:t},n)=>{const o=le(t);return L({sender:e,maxBitrate:o,onSetParameters:n,scaleResolutionDownBy:200})},w=async({sender:e,videoTrack:t,codec:n},r)=>{const a=t.getSettings().width,i=G(a,n);return L({sender:e,maxBitrate:i,onSetParameters:r,scaleResolutionDownBy:1})},Je=async({sender:e,videoTrack:t,resolution:n,codec:r},o)=>{const[c,a]=n.split("x"),{maxBitrate:i,scaleResolutionDownBy:u}=H({videoTrack:t,codec:r,targetSize:{width:Number(c),height:Number(a)}});return L({sender:e,maxBitrate:i,onSetParameters:o,scaleResolutionDownBy:u})},Ze=async({mainCam:e,resolutionMainCam:t,sender:n,videoTrack:r,codec:o},c)=>{switch(e){case s.EEventsMainCAM.PAUSE_MAIN_CAM:return Qe({sender:n,codec:o},c);case s.EEventsMainCAM.RESUME_MAIN_CAM:return w({sender:n,videoTrack:r,codec:o},c);case s.EEventsMainCAM.MAX_MAIN_CAM_RESOLUTION:return t!==void 0?Je({sender:n,videoTrack:r,codec:o,resolution:t},c):w({sender:n,videoTrack:r,codec:o},c);default:return w({sender:n,videoTrack:r,codec:o},c)}},V={isChanged:!1,parameters:{encodings:[{}],transactionId:"0",codecs:[],headerExtensions:[],rtcp:{}}},x=async({mainCam:e,resolutionMainCam:t,connection:n,onSetParameters:r,ignoreForCodec:o})=>{const c=n.getSenders(),a=Ke(c);if(!(a!=null&&a.track))return V;const i=await Y(a);return q(i,o)?V:Ze({mainCam:e,resolutionMainCam:t,sender:a,codec:i,videoTrack:a.track},r)},en=(e,{ignoreForCodec:t,onSetParameters:n}={})=>{const r=async()=>{const{connection:u}=e;if(!u)throw new Error("connection is not exist");return x({connection:u,onSetParameters:n,ignoreForCodec:t})};let o=r;const c=async u=>(o=async()=>{const{mainCam:g,resolutionMainCam:f}=u,{connection:m}=e;if(!m)throw new Error("connection is not exist");return x({mainCam:g,resolutionMainCam:f,connection:m,onSetParameters:n,ignoreForCodec:t})},o());return{subscribe:()=>{e.onSession("main-cam-control",c)},unsubscribe:()=>{e.offSession("main-cam-control",c)},balanceByTrack:r,resetMainCamControl(){o=r},async reBalance(){return o()}}};exports.EEventsMainCAM=s.EEventsMainCAM;exports.EEventsMic=s.EEventsMic;exports.EEventsSyncMediaState=s.EEventsSyncMediaState;exports.EUseLicense=s.EUseLicense;exports.causes=s.causes;exports.constants=s.constants;exports.default=s.SipConnector;exports.disableDebug=s.disableDebug;exports.enableDebug=s.enableDebug;exports.eventNames=s.eventNames;exports.hasCanceledCallError=s.hasCanceledCallError;exports.setParametersToSender=s.setParametersToSender;exports.debug=te;exports.getCodecFromSender=Y;exports.resolveVideoSendingBalancer=en;exports.tools=He;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("./SipConnector-_gw-GKlW.cjs"),ee=require("ts-debounce"),ne=require("@krivega/cancelable-promise"),te=require("repeated-calls"),re=require("sequent-promises"),se=require("stack-promises"),oe=require("debug"),ce=e=>e.getVideoTracks()[0],ae=1e6,E=e=>e*ae,j=E(.06),ie=E(4),ue=e=>e<=64?j:e<=128?E(.12):e<=256?E(.25):e<=384?E(.32):e<=426?E(.38):e<=640?E(.5):e<=848?E(.7):e<=1280?E(1):e<=1920?E(2):ie,G=(e,t)=>e!==void 0&&t!==void 0&&e.toLowerCase().includes(t.toLowerCase()),le="av1",ge=e=>G(e,le),de=.6,H=(e,t)=>ge(t)?e*de:e,Se=e=>H(j,e),W=(e,t)=>{const n=ue(e);return H(n,t)},me=1,K=({videoTrack:e,targetSize:t,codec:n})=>{const r=e.getSettings(),o=r.width,c=r.height,a=o/t.width,i=c/t.height,u=Math.max(a,i,me),g=W(t.width,n);return{scaleResolutionDownBy:u,maxBitrate:g}},N=({mediaStream:e,simulcastEncodings:t,sendEncodings:n})=>{if(t&&t.length>0){const r=n??[],o=ce(e);return t.forEach((c,a)=>{const i=r[a]??{},{maxBitrate:u,scaleResolutionDownBy:g}=K({videoTrack:o,targetSize:{width:c.width,height:c.height}});i.maxBitrate=u,i.scaleResolutionDownBy=g,r[a]=i}),r}return n},Y="purgatory",P=e=>e===Y,L=e=>()=>(s.logger("getRemoteStreams"),e.getRemoteStreams()),fe=({kind:e,readyState:t})=>e==="video"&&t==="live",z=e=>({track:t})=>{fe(t)&&e()},V=({getRemoteStreams:e,setRemoteStreams:t})=>ee.debounce(()=>{const n=e();s.logger("remoteStreams",n),n&&t(n)},200),I=e=>async t=>{Object.keys(e).length>0&&await s.setParametersToSender(t.sender,e)},Ce=e=>async n=>{const{mediaStream:r,extraHeaders:o,iceServers:c,contentHint:a,simulcastEncodings:i,degradationPreference:u,sendEncodings:g,setRemoteStreams:m,onBeforeProgressCall:f,onSuccessProgressCall:S,onEnterPurgatory:h,onEnterConference:d,onFailProgressCall:C,onFinishProgressCall:T,onEndedCall:y}=n,v=V({setRemoteStreams:m,getRemoteStreams:L(e)}),_=z(v),b=I({degradationPreference:u});s.logger("answerIncomingCall",n);const O=async()=>e.answerToIncomingCall({mediaStream:r,extraHeaders:o,iceServers:c,contentHint:a,sendEncodings:N({mediaStream:r,simulcastEncodings:i,sendEncodings:g}),onAddedTransceiver:b,ontrack:_}),A=()=>{const{remoteCallerData:l}=e;return l.incomingNumber};let R=!1,M;const p=(s.logger("subscribeEnterConference: onEnterConference",d),h??d?e.onSession("enterRoom",l=>{s.logger("enterRoom",{_room:l,isSuccessProgressCall:R}),M=l,P(M)?h&&h():d&&d({isSuccessProgressCall:R})}):()=>{}),D=l=>(s.logger("onSuccess"),R=!0,v(),S&&S({isPurgatory:P(M)}),e.onceRaceSession(["ended","failed"],()=>{p(),y&&y()}),l),w=l=>{throw s.logger("onFail"),C&&C(),p(),l},F=()=>{s.logger("onFinish"),T&&T()};if(s.logger("onBeforeProgressCall"),f){const l=A();f(l)}return O().then(D).catch(l=>w(l)).finally(F)},Ee=e=>async n=>{const{conference:r,mediaStream:o,extraHeaders:c,iceServers:a,contentHint:i,simulcastEncodings:u,degradationPreference:g,sendEncodings:m,setRemoteStreams:f,onBeforeProgressCall:S,onSuccessProgressCall:h,onEnterPurgatory:d,onEnterConference:C,onFailProgressCall:T,onFinishProgressCall:y,onEndedCall:v}=n,_=V({setRemoteStreams:f,getRemoteStreams:L(e)}),b=z(_),O=I({degradationPreference:g});s.logger("callToServer",n);const A=async()=>(s.logger("startCall"),e.call({mediaStream:o,extraHeaders:c,iceServers:a,contentHint:i,sendEncodings:N({mediaStream:o,simulcastEncodings:u,sendEncodings:m}),number:r,onAddedTransceiver:O,ontrack:b}));let R=!1,M;const p=(s.logger("subscribeEnterConference: onEnterConference",C),d??C?e.onSession("enterRoom",({room:l})=>{s.logger("enterRoom",{_room:l,isSuccessProgressCall:R}),M=l,P(M)?d&&d():C&&C({isSuccessProgressCall:R})}):()=>{}),D=l=>(s.logger("onSuccess"),R=!0,_(),h&&h({isPurgatory:P(M)}),e.onceRaceSession(["ended","failed"],()=>{p(),v&&v()}),l),w=l=>{throw s.logger("onFail"),T&&T(),p(),l},F=()=>{s.logger("onFinish"),y&&y()};return s.logger("onBeforeProgressCall"),S&&S(r),A().then(D).catch(l=>w(l)).finally(F)},k=e=>{if(!ne.isCanceledError(e)&&!te.hasCanceledError(e))throw e;return{isSuccessful:!1}},Te=e=>async n=>{const{userAgent:r,sipWebSocketServerURL:o,sipServerUrl:c,remoteAddress:a,displayName:i,name:u,password:g,isRegisteredUser:m,isDisconnectOnFail:f}=n;return s.logger("connectToServer",n),e.connect({userAgent:r,sipWebSocketServerURL:o,sipServerUrl:c,remoteAddress:a,displayName:i,password:g,user:u,register:m}).then(S=>(s.logger("connectToServer then"),{ua:S,isSuccessful:!0})).catch(async S=>(s.logger("connectToServer catch: error",S),f===!0?e.disconnect().then(()=>k(S)).catch(()=>k(S)):k(S)))},Re=e=>async()=>(s.logger("disconnectFromServer"),e.disconnect().then(()=>(s.logger("disconnectFromServer: then"),{isSuccessful:!0})).catch(t=>(s.logger("disconnectFromServer: catch",t),{isSuccessful:!1}))),x=e=>{const{url:t,cause:n}=e;let r=t;return(n===s.BAD_MEDIA_DESCRIPTION||n===s.NOT_FOUND)&&(r=`${e.message.to.uri.user}@${e.message.to.uri.host}`),r};var Q=(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))(Q||{});const Me=(e=new Error)=>{var o;const{cause:t,socket:n}=e;let r="CONNECT_SERVER_FAILED";switch(t){case"Forbidden":{r="WRONG_USER_OR_PASSWORD";break}case s.BAD_MEDIA_DESCRIPTION:{r="BAD_MEDIA_ERROR";break}case s.NOT_FOUND:{r="NOT_FOUND_ERROR";break}default:n&&((o=n==null?void 0:n._ws)==null?void 0:o.readyState)===3?r="WS_CONNECTION_FAILED":x(e)&&(r="CONNECT_SERVER_FAILED_BY_LINK")}return r},he=e=>{let t="";try{t=JSON.stringify(e)}catch(n){s.logger("failed to stringify message",n)}return t},ye=(e=new Error)=>{const{code:t,cause:n,message:r}=e,o=x(e),c={code:"",cause:"",message:""};return typeof r=="object"&&r!==null?c.message=he(r):r&&(c.message=String(r)),o&&(c.link=o),t&&(c.code=t),n&&(c.cause=n),c},ve=Object.freeze(Object.defineProperty({__proto__:null,EErrorTypes:Q,getLinkError:x,getTypeFromError:Me,getValuesFromError:ye},Symbol.toStringTag,{value:"Module"})),_e=({sessionId:e,remoteAddress:t,isMutedAudio:n,isMutedVideo:r,isRegistered:o,isPresentationCall:c})=>{const a=[],i=n?"0":"1",u=r?"0":"1";return a.push(`X-Vinteo-Mic-State: ${i}`,`X-Vinteo-MainCam-State: ${u}`),o||a.push("X-Vinteo-Purgatory-Call: yes"),e&&a.push(`X-Vinteo-Session: ${e}`),c&&a.push("X-Vinteo-Presentation-Call: yes"),t&&a.push(`X-Vinteo-Remote: ${t}`),a},be="[@*!|]",Oe="_",Ae=e=>{let t=e;return t=t.replaceAll(new RegExp(be,"g"),Oe),t},pe=({appName:e,appVersion:t,browserName:n,browserVersion:r})=>{const c=`${Ae(e)} ${t}`;return`ChromeNew - ${n?`${n} ${r}, ${c}`:c}`},Pe=({isUnifiedSdpSemantic:e,appVersion:t,browserName:n,browserVersion:r,appName:o})=>e?pe({appVersion:t,browserName:n,browserVersion:r,appName:o}):"Chrome",Ne=e=>async()=>{if(e.isCallActive)return s.logger("askPermissionToEnableCam"),e.askPermissionToEnableCam()},Ie=e=>n=>(s.logger("onMustStopPresentation"),e.onSession("mustStopPresentation",n)),Be=e=>n=>(s.logger("onMoveToSpectators"),e.onSession(s.PARTICIPANT_MOVE_REQUEST_TO_SPECTATORS,n)),De=e=>n=>(s.logger("onMoveToParticipants"),e.onSession(s.PARTICIPANT_MOVE_REQUEST_TO_PARTICIPANTS,n)),we=e=>n=>(s.logger("onUseLicense"),e.onSession("useLicense",n)),Fe=e=>async({isEnabledCam:n,isEnabledMic:r})=>{if(e.isCallActive)return s.logger("sendMediaState"),e.sendMediaState({cam:n,mic:r})},ke=e=>async()=>{if(e.isCallActive)return s.logger("sendRefusalToTurnOnCam"),e.sendRefusalToTurnOnCam().catch(n=>{s.logger("sendRefusalToTurnOnCam: error",n)})},Ue=e=>async()=>{if(e.isCallActive)return s.logger("sendRefusalToTurnOnMic"),e.sendRefusalToTurnOnMic().catch(n=>{s.logger("sendRefusalToTurnOnMic: error",n)})},Le=e=>async({mediaStream:n,isP2P:r,maxBitrate:o,contentHint:c,simulcastEncodings:a,degradationPreference:i,sendEncodings:u},g)=>{const m=I({degradationPreference:i});return s.logger("startPresentation"),e.startPresentation(n,{isP2P:r,maxBitrate:o,contentHint:c,sendEncodings:N({mediaStream:n,simulcastEncodings:a,sendEncodings:u}),onAddedTransceiver:m},g)},Ve=e=>async({isP2P:n=!1}={})=>(s.logger("stopShareSipConnector"),e.stopPresentation({isP2P:n}).catch(r=>{s.logger(r)})),xe=e=>async({mediaStream:n,isP2P:r,maxBitrate:o,contentHint:c,simulcastEncodings:a,degradationPreference:i,sendEncodings:u})=>{const g=I({degradationPreference:i});return s.logger("updatePresentation"),e.updatePresentation(n,{isP2P:r,maxBitrate:o,contentHint:c,sendEncodings:N({mediaStream:n,simulcastEncodings:a,sendEncodings:u}),onAddedTransceiver:g})},$e=e=>t=>[...t].map(r=>async()=>e(r)),qe=async({accumulatedKeys:e,sendKey:t,canRunTask:n})=>{const o=$e(t)(e);return re.sequentPromises(o,n)},Xe=e=>n=>(s.logger("onStartMainCam"),e.onSession("admin-start-main-cam",n)),je=e=>n=>(s.logger("onStartMic"),e.onSession("admin-start-mic",n)),Ge=e=>n=>(s.logger("onStopMainCam"),e.onSession("admin-stop-main-cam",n)),He=e=>n=>(s.logger("onStopMic"),e.onSession("admin-stop-mic",n)),We=({sipConnector:e})=>{const t=(d,C)=>({isSyncForced:T=!1})=>{if(T){d();return}C()},n=Xe(e),r=Ge(e),o=je(e),c=He(e);let a=()=>{},i=()=>{},u=()=>{},g=()=>{};const m=({onStartMainCamForced:d,onStartMainCamNotForced:C,onStopMainCamForced:T,onStopMainCamNotForced:y,onStartMicForced:v,onStartMicNotForced:_,onStopMicForced:b,onStopMicNotForced:O})=>{const A=t(d,C);a=n(A);const R=t(T,y);i=r(R);const M=t(v,_);u=o(M);const B=t(b,O);g=c(B)},f=()=>{a(),i(),u(),g()};return{start:d=>{m(d)},stop:()=>{f()}}},Ke=Object.freeze(Object.defineProperty({__proto__:null,PURGATORY_CONFERENCE_NUMBER:Y,createSyncMediaState:We,error:ve,getExtraHeaders:_e,getUserAgent:Pe,hasPurgatory:P,resolveAnswerIncomingCall:Ce,resolveAskPermissionToEnableCam:Ne,resolveCallToServer:Ee,resolveConnectToServer:Te,resolveDisconnectFromServer:Re,resolveGetRemoteStreams:L,resolveOnMoveToParticipants:De,resolveOnMoveToSpectators:Be,resolveOnMustStopPresentation:Ie,resolveOnUseLicense:we,resolveSendMediaState:Fe,resolveSendRefusalToTurnOnCam:ke,resolveSendRefusalToTurnOnMic:Ue,resolveStartPresentation:Le,resolveStopShareSipConnector:Ve,resolveUpdatePresentation:xe,resolveUpdateRemoteStreams:V,sendDTMFAccumulated:qe},Symbol.toStringTag,{value:"Module"})),Ye=e=>[...e.keys()].map(t=>e.get(t)),ze=(e,t)=>Ye(e).find(n=>n.type===t),J=async e=>e.getStats().then(t=>{const n=ze(t,"codec");return n==null?void 0:n.mimeType}),Qe=e=>e.find(t=>{var n;return((n=t==null?void 0:t.track)==null?void 0:n.kind)==="video"}),Z=se.createStackPromises(),Je=async()=>Z().catch(e=>{s.logger("videoSendingBalancer: error",e)}),Ze=async e=>(Z.add(e),Je()),$=async({sender:e,scaleResolutionDownBy:t,maxBitrate:n,onSetParameters:r})=>Ze(async()=>s.setEncodingsToSender(e,{scaleResolutionDownBy:t,maxBitrate:n},r)),en=async({sender:e,codec:t},n)=>{const o=Se(t);return $({sender:e,maxBitrate:o,onSetParameters:n,scaleResolutionDownBy:200})},U=async({sender:e,videoTrack:t,codec:n},r)=>{const a=t.getSettings().width,i=W(a,n);return $({sender:e,maxBitrate:i,onSetParameters:r,scaleResolutionDownBy:1})},nn=async({sender:e,videoTrack:t,resolution:n,codec:r},o)=>{const[c,a]=n.split("x"),{maxBitrate:i,scaleResolutionDownBy:u}=K({videoTrack:t,codec:r,targetSize:{width:Number(c),height:Number(a)}});return $({sender:e,maxBitrate:i,onSetParameters:o,scaleResolutionDownBy:u})},tn=async({mainCam:e,resolutionMainCam:t,sender:n,videoTrack:r,codec:o},c)=>{switch(e){case s.EEventsMainCAM.PAUSE_MAIN_CAM:return en({sender:n,codec:o},c);case s.EEventsMainCAM.RESUME_MAIN_CAM:return U({sender:n,videoTrack:r,codec:o},c);case s.EEventsMainCAM.MAX_MAIN_CAM_RESOLUTION:return t!==void 0?nn({sender:n,videoTrack:r,codec:o,resolution:t},c):U({sender:n,videoTrack:r,codec:o},c);default:return U({sender:n,videoTrack:r,codec:o},c)}},q={isChanged:!1,parameters:{encodings:[{}],transactionId:"0",codecs:[],headerExtensions:[],rtcp:{}}},X=async({mainCam:e,resolutionMainCam:t,connection:n,onSetParameters:r,ignoreForCodec:o})=>{const c=n.getSenders(),a=Qe(c);if(!(a!=null&&a.track))return q;const i=await J(a);return G(i,o)?q:tn({mainCam:e,resolutionMainCam:t,sender:a,codec:i,videoTrack:a.track},r)},rn=(e,{ignoreForCodec:t,onSetParameters:n}={})=>{const r=async()=>{const{connection:u}=e;if(!u)throw new Error("connection is not exist");return X({connection:u,onSetParameters:n,ignoreForCodec:t})};let o=r;const c=async u=>(o=async()=>{const{mainCam:g,resolutionMainCam:m}=u,{connection:f}=e;if(!f)throw new Error("connection is not exist");return X({mainCam:g,resolutionMainCam:m,connection:f,onSetParameters:n,ignoreForCodec:t})},o());return{subscribe:()=>{e.onSession("main-cam-control",c)},unsubscribe:()=>{e.offSession("main-cam-control",c)},balanceByTrack:r,resetMainCamControl(){o=r},async reBalance(){return o()}}};exports.EEventsMainCAM=s.EEventsMainCAM;exports.EEventsMic=s.EEventsMic;exports.EEventsSyncMediaState=s.EEventsSyncMediaState;exports.EUseLicense=s.EUseLicense;exports.causes=s.causes;exports.constants=s.constants;exports.default=s.SipConnector;exports.disableDebug=s.disableDebug;exports.enableDebug=s.enableDebug;exports.eventNames=s.eventNames;exports.hasCanceledCallError=s.hasCanceledCallError;exports.setParametersToSender=s.setParametersToSender;exports.debug=oe;exports.getCodecFromSender=J;exports.resolveVideoSendingBalancer=rn;exports.tools=Ke;
package/dist/index.js CHANGED
@@ -1,70 +1,75 @@
1
- import { l as a, B as X, N as G, P as Z, a as ee, E as I, s as ne, S as on } from "./SipConnector-BqK7EICM.js";
2
- import { i as Cn, j as En, k as Rn, c as Tn, b as hn, d as Mn, f as yn, e as _n, h as bn, g as On } from "./SipConnector-BqK7EICM.js";
3
- import { debounce as te } from "ts-debounce";
4
- import { isCanceledError as se } from "@krivega/cancelable-promise";
5
- import { hasCanceledError as re } from "repeated-calls";
6
- import { sequentPromises as oe } from "sequent-promises";
7
- import { createStackPromises as ae } from "stack-promises";
8
- import { default as vn } from "debug";
9
- const ce = (e) => e.getVideoTracks()[0], ie = 1e6, C = (e) => e * ie, H = C(0.06), ue = C(4), le = (e) => e <= 64 ? H : e <= 128 ? C(0.12) : e <= 256 ? C(0.25) : e <= 384 ? C(0.32) : e <= 426 ? C(0.38) : e <= 640 ? C(0.5) : e <= 848 ? C(0.7) : e <= 1280 ? C(1) : e <= 1920 ? C(2) : ue, W = (e, t) => e !== void 0 && t !== void 0 && e.toLowerCase().includes(t.toLowerCase()), Se = "av1", de = (e) => W(e, Se), me = 0.6, j = (e, t) => de(t) ? e * me : e, fe = (e) => j(H, e), K = (e, t) => {
10
- const n = le(e);
11
- return j(n, t);
12
- }, ge = 1, Y = ({
1
+ import { l as a, s as te, B as H, N as W, P as se, a as re, E as k, b as oe, S as ln } from "./SipConnector-BGDcrO00.js";
2
+ import { i as hn, j as Mn, k as yn, c as _n, d as vn, f as bn, g as pn, e as On, h as An } from "./SipConnector-BGDcrO00.js";
3
+ import { debounce as ae } from "ts-debounce";
4
+ import { isCanceledError as ce } from "@krivega/cancelable-promise";
5
+ import { hasCanceledError as ie } from "repeated-calls";
6
+ import { sequentPromises as ue } from "sequent-promises";
7
+ import { createStackPromises as le } from "stack-promises";
8
+ import { default as Nn } from "debug";
9
+ const de = (e) => e.getVideoTracks()[0], Se = 1e6, T = (e) => e * Se, K = T(0.06), me = T(4), fe = (e) => e <= 64 ? K : e <= 128 ? T(0.12) : e <= 256 ? T(0.25) : e <= 384 ? T(0.32) : e <= 426 ? T(0.38) : e <= 640 ? T(0.5) : e <= 848 ? T(0.7) : e <= 1280 ? T(1) : e <= 1920 ? T(2) : me, Y = (e, t) => e !== void 0 && t !== void 0 && e.toLowerCase().includes(t.toLowerCase()), ge = "av1", Ce = (e) => Y(e, ge), Te = 0.6, z = (e, t) => Ce(t) ? e * Te : e, Ee = (e) => z(K, e), Q = (e, t) => {
10
+ const n = fe(e);
11
+ return z(n, t);
12
+ }, Re = 1, q = ({
13
13
  videoTrack: e,
14
14
  targetSize: t,
15
15
  codec: n
16
16
  }) => {
17
- const s = e.getSettings(), r = s.width, o = s.height, c = r / t.width, i = o / t.height, u = Math.max(c, i, ge), S = K(t.width, n);
18
- return { scaleResolutionDownBy: u, maxBitrate: S };
17
+ const s = e.getSettings(), r = s.width, o = s.height, c = r / t.width, i = o / t.height, u = Math.max(c, i, Re), d = Q(t.width, n);
18
+ return { scaleResolutionDownBy: u, maxBitrate: d };
19
19
  }, N = ({
20
20
  mediaStream: e,
21
21
  simulcastEncodings: t,
22
22
  sendEncodings: n
23
23
  }) => {
24
24
  if (t && t.length > 0) {
25
- const s = n ?? [], r = ce(e);
25
+ const s = n ?? [], r = de(e);
26
26
  return t.forEach((o, c) => {
27
- const i = s[c] ?? {}, { maxBitrate: u, scaleResolutionDownBy: S } = Y({
27
+ const i = s[c] ?? {}, { maxBitrate: u, scaleResolutionDownBy: d } = q({
28
28
  videoTrack: r,
29
29
  targetSize: {
30
30
  width: o.width,
31
31
  height: o.height
32
32
  }
33
33
  });
34
- i.maxBitrate = u, i.scaleResolutionDownBy = S, s[c] = i;
34
+ i.maxBitrate = u, i.scaleResolutionDownBy = d, s[c] = i;
35
35
  }), s;
36
36
  }
37
37
  return n;
38
- }, z = "purgatory", A = (e) => e === z, k = (e) => () => (a("getRemoteStreams"), e.getRemoteStreams()), Ce = ({ kind: e, readyState: t }) => e === "video" && t === "live", Q = (e) => ({ track: t }) => {
39
- Ce(t) && e();
40
- }, U = ({
38
+ }, J = "purgatory", P = (e) => e === J, V = (e) => () => (a("getRemoteStreams"), e.getRemoteStreams()), he = ({ kind: e, readyState: t }) => e === "video" && t === "live", Z = (e) => ({ track: t }) => {
39
+ he(t) && e();
40
+ }, x = ({
41
41
  getRemoteStreams: e,
42
42
  setRemoteStreams: t
43
- }) => te(() => {
43
+ }) => ae(() => {
44
44
  const n = e();
45
45
  a("remoteStreams", n), n && t(n);
46
- }, 200), Ee = (e) => async (n) => {
46
+ }, 200), B = (e) => async (t) => {
47
+ Object.keys(e).length > 0 && await te(t.sender, e);
48
+ }, Me = (e) => async (n) => {
47
49
  const {
48
50
  mediaStream: s,
49
51
  extraHeaders: r,
50
52
  iceServers: o,
51
53
  contentHint: c,
52
54
  simulcastEncodings: i,
53
- sendEncodings: u,
54
- setRemoteStreams: S,
55
+ degradationPreference: u,
56
+ sendEncodings: d,
57
+ setRemoteStreams: f,
55
58
  onBeforeProgressCall: g,
56
- onSuccessProgressCall: f,
57
- onEnterPurgatory: d,
58
- onEnterConference: E,
59
- onFailProgressCall: m,
60
- onFinishProgressCall: R,
61
- onEndedCall: T
62
- } = n, y = U({
63
- setRemoteStreams: S,
64
- getRemoteStreams: k(e)
65
- }), b = Q(y);
59
+ onSuccessProgressCall: m,
60
+ onEnterPurgatory: M,
61
+ onEnterConference: S,
62
+ onFailProgressCall: C,
63
+ onFinishProgressCall: E,
64
+ onEndedCall: y
65
+ } = n, _ = x({
66
+ setRemoteStreams: f,
67
+ getRemoteStreams: V(e)
68
+ }), v = Z(_), b = B({
69
+ degradationPreference: u
70
+ });
66
71
  a("answerIncomingCall", n);
67
- const O = async () => e.answerToIncomingCall({
72
+ const p = async () => e.answerToIncomingCall({
68
73
  mediaStream: s,
69
74
  extraHeaders: r,
70
75
  iceServers: o,
@@ -72,30 +77,31 @@ const ce = (e) => e.getVideoTracks()[0], ie = 1e6, C = (e) => e * ie, H = C(0.06
72
77
  sendEncodings: N({
73
78
  mediaStream: s,
74
79
  simulcastEncodings: i,
75
- sendEncodings: u
80
+ sendEncodings: d
76
81
  }),
77
- ontrack: b
78
- }), p = () => {
82
+ onAddedTransceiver: b,
83
+ ontrack: v
84
+ }), O = () => {
79
85
  const { remoteCallerData: l } = e;
80
86
  return l.incomingNumber;
81
87
  };
82
- let h = !1, M;
83
- const _ = (a("subscribeEnterConference: onEnterConference", E), d ?? E ? e.onSession("enterRoom", (l) => {
84
- a("enterRoom", { _room: l, isSuccessProgressCall: h }), M = l, A(M) ? d && d() : E && E({ isSuccessProgressCall: h });
88
+ let R = !1, h;
89
+ const A = (a("subscribeEnterConference: onEnterConference", S), M ?? S ? e.onSession("enterRoom", (l) => {
90
+ a("enterRoom", { _room: l, isSuccessProgressCall: R }), h = l, P(h) ? M && M() : S && S({ isSuccessProgressCall: R });
85
91
  }) : () => {
86
- }), v = (l) => (a("onSuccess"), h = !0, y(), f && f({ isPurgatory: A(M) }), e.onceRaceSession(["ended", "failed"], () => {
87
- _(), T && T();
88
- }), l), B = (l) => {
89
- throw a("onFail"), m && m(), _(), l;
90
- }, w = () => {
91
- a("onFinish"), R && R();
92
+ }), w = (l) => (a("onSuccess"), R = !0, _(), m && m({ isPurgatory: P(h) }), e.onceRaceSession(["ended", "failed"], () => {
93
+ A(), y && y();
94
+ }), l), D = (l) => {
95
+ throw a("onFail"), C && C(), A(), l;
96
+ }, F = () => {
97
+ a("onFinish"), E && E();
92
98
  };
93
99
  if (a("onBeforeProgressCall"), g) {
94
- const l = p();
100
+ const l = O();
95
101
  g(l);
96
102
  }
97
- return O().then(v).catch((l) => B(l)).finally(w);
98
- }, Re = (e) => async (n) => {
103
+ return p().then(w).catch((l) => D(l)).finally(F);
104
+ }, ye = (e) => async (n) => {
99
105
  const {
100
106
  conference: s,
101
107
  mediaStream: r,
@@ -103,21 +109,24 @@ const ce = (e) => e.getVideoTracks()[0], ie = 1e6, C = (e) => e * ie, H = C(0.06
103
109
  iceServers: c,
104
110
  contentHint: i,
105
111
  simulcastEncodings: u,
106
- sendEncodings: S,
112
+ degradationPreference: d,
113
+ sendEncodings: f,
107
114
  setRemoteStreams: g,
108
- onBeforeProgressCall: f,
109
- onSuccessProgressCall: d,
110
- onEnterPurgatory: E,
111
- onEnterConference: m,
112
- onFailProgressCall: R,
113
- onFinishProgressCall: T,
114
- onEndedCall: y
115
- } = n, b = U({
115
+ onBeforeProgressCall: m,
116
+ onSuccessProgressCall: M,
117
+ onEnterPurgatory: S,
118
+ onEnterConference: C,
119
+ onFailProgressCall: E,
120
+ onFinishProgressCall: y,
121
+ onEndedCall: _
122
+ } = n, v = x({
116
123
  setRemoteStreams: g,
117
- getRemoteStreams: k(e)
118
- }), O = Q(b);
124
+ getRemoteStreams: V(e)
125
+ }), b = Z(v), p = B({
126
+ degradationPreference: d
127
+ });
119
128
  a("callToServer", n);
120
- const p = async () => (a("startCall"), e.call({
129
+ const O = async () => (a("startCall"), e.call({
121
130
  mediaStream: r,
122
131
  extraHeaders: o,
123
132
  iceServers: c,
@@ -125,28 +134,29 @@ const ce = (e) => e.getVideoTracks()[0], ie = 1e6, C = (e) => e * ie, H = C(0.06
125
134
  sendEncodings: N({
126
135
  mediaStream: r,
127
136
  simulcastEncodings: u,
128
- sendEncodings: S
137
+ sendEncodings: f
129
138
  }),
130
139
  number: s,
131
- ontrack: O
140
+ onAddedTransceiver: p,
141
+ ontrack: b
132
142
  }));
133
- let h = !1, M;
134
- const _ = (a("subscribeEnterConference: onEnterConference", m), E ?? m ? e.onSession("enterRoom", ({ room: l }) => {
135
- a("enterRoom", { _room: l, isSuccessProgressCall: h }), M = l, A(M) ? E && E() : m && m({ isSuccessProgressCall: h });
143
+ let R = !1, h;
144
+ const A = (a("subscribeEnterConference: onEnterConference", C), S ?? C ? e.onSession("enterRoom", ({ room: l }) => {
145
+ a("enterRoom", { _room: l, isSuccessProgressCall: R }), h = l, P(h) ? S && S() : C && C({ isSuccessProgressCall: R });
136
146
  }) : () => {
137
- }), v = (l) => (a("onSuccess"), h = !0, b(), d && d({ isPurgatory: A(M) }), e.onceRaceSession(["ended", "failed"], () => {
138
- _(), y && y();
139
- }), l), B = (l) => {
140
- throw a("onFail"), R && R(), _(), l;
141
- }, w = () => {
142
- a("onFinish"), T && T();
147
+ }), w = (l) => (a("onSuccess"), R = !0, v(), M && M({ isPurgatory: P(h) }), e.onceRaceSession(["ended", "failed"], () => {
148
+ A(), _ && _();
149
+ }), l), D = (l) => {
150
+ throw a("onFail"), E && E(), A(), l;
151
+ }, F = () => {
152
+ a("onFinish"), y && y();
143
153
  };
144
- return a("onBeforeProgressCall"), f && f(s), p().then(v).catch((l) => B(l)).finally(w);
145
- }, D = (e) => {
146
- if (!se(e) && !re(e))
154
+ return a("onBeforeProgressCall"), m && m(s), O().then(w).catch((l) => D(l)).finally(F);
155
+ }, U = (e) => {
156
+ if (!ce(e) && !ie(e))
147
157
  throw e;
148
158
  return { isSuccessful: !1 };
149
- }, Te = (e) => async (n) => {
159
+ }, _e = (e) => async (n) => {
150
160
  const {
151
161
  userAgent: s,
152
162
  sipWebSocketServerURL: r,
@@ -154,9 +164,9 @@ const ce = (e) => e.getVideoTracks()[0], ie = 1e6, C = (e) => e * ie, H = C(0.06
154
164
  remoteAddress: c,
155
165
  displayName: i,
156
166
  name: u,
157
- password: S,
158
- isRegisteredUser: g,
159
- isDisconnectOnFail: f
167
+ password: d,
168
+ isRegisteredUser: f,
169
+ isDisconnectOnFail: g
160
170
  } = n;
161
171
  return a("connectToServer", n), e.connect({
162
172
  userAgent: s,
@@ -164,17 +174,17 @@ const ce = (e) => e.getVideoTracks()[0], ie = 1e6, C = (e) => e * ie, H = C(0.06
164
174
  sipServerUrl: o,
165
175
  remoteAddress: c,
166
176
  displayName: i,
167
- password: S,
177
+ password: d,
168
178
  user: u,
169
- register: g
170
- }).then((d) => (a("connectToServer then"), { ua: d, isSuccessful: !0 })).catch(async (d) => (a("connectToServer catch: error", d), f === !0 ? e.disconnect().then(() => D(d)).catch(() => D(d)) : D(d)));
171
- }, he = (e) => async () => (a("disconnectFromServer"), e.disconnect().then(() => (a("disconnectFromServer: then"), { isSuccessful: !0 })).catch((t) => (a("disconnectFromServer: catch", t), { isSuccessful: !1 }))), L = (e) => {
179
+ register: f
180
+ }).then((m) => (a("connectToServer then"), { ua: m, isSuccessful: !0 })).catch(async (m) => (a("connectToServer catch: error", m), g === !0 ? e.disconnect().then(() => U(m)).catch(() => U(m)) : U(m)));
181
+ }, ve = (e) => async () => (a("disconnectFromServer"), e.disconnect().then(() => (a("disconnectFromServer: then"), { isSuccessful: !0 })).catch((t) => (a("disconnectFromServer: catch", t), { isSuccessful: !1 }))), $ = (e) => {
172
182
  const { url: t, cause: n } = e;
173
183
  let s = t;
174
- return (n === X || n === G) && (s = `${e.message.to.uri.user}@${e.message.to.uri.host}`), s;
184
+ return (n === H || n === W) && (s = `${e.message.to.uri.user}@${e.message.to.uri.host}`), s;
175
185
  };
176
- var q = /* @__PURE__ */ ((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))(q || {});
177
- const Me = (e = new Error()) => {
186
+ var ee = /* @__PURE__ */ ((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))(ee || {});
187
+ const be = (e = new Error()) => {
178
188
  var r;
179
189
  const { cause: t, socket: n } = e;
180
190
  let s = "CONNECT_SERVER_FAILED";
@@ -183,19 +193,19 @@ const Me = (e = new Error()) => {
183
193
  s = "WRONG_USER_OR_PASSWORD";
184
194
  break;
185
195
  }
186
- case X: {
196
+ case H: {
187
197
  s = "BAD_MEDIA_ERROR";
188
198
  break;
189
199
  }
190
- case G: {
200
+ case W: {
191
201
  s = "NOT_FOUND_ERROR";
192
202
  break;
193
203
  }
194
204
  default:
195
- n && ((r = n == null ? void 0 : n._ws) == null ? void 0 : r.readyState) === 3 ? s = "WS_CONNECTION_FAILED" : L(e) && (s = "CONNECT_SERVER_FAILED_BY_LINK");
205
+ n && ((r = n == null ? void 0 : n._ws) == null ? void 0 : r.readyState) === 3 ? s = "WS_CONNECTION_FAILED" : $(e) && (s = "CONNECT_SERVER_FAILED_BY_LINK");
196
206
  }
197
207
  return s;
198
- }, ye = (e) => {
208
+ }, pe = (e) => {
199
209
  let t = "";
200
210
  try {
201
211
  t = JSON.stringify(e);
@@ -203,16 +213,16 @@ const Me = (e = new Error()) => {
203
213
  a("failed to stringify message", n);
204
214
  }
205
215
  return t;
206
- }, _e = (e = new Error()) => {
207
- const { code: t, cause: n, message: s } = e, r = L(e), o = { code: "", cause: "", message: "" };
208
- return typeof s == "object" && s !== null ? o.message = ye(s) : s && (o.message = String(s)), r && (o.link = r), t && (o.code = t), n && (o.cause = n), o;
209
- }, be = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
216
+ }, Oe = (e = new Error()) => {
217
+ const { code: t, cause: n, message: s } = e, r = $(e), o = { code: "", cause: "", message: "" };
218
+ return typeof s == "object" && s !== null ? o.message = pe(s) : s && (o.message = String(s)), r && (o.link = r), t && (o.code = t), n && (o.cause = n), o;
219
+ }, Ae = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
210
220
  __proto__: null,
211
- EErrorTypes: q,
212
- getLinkError: L,
213
- getTypeFromError: Me,
214
- getValuesFromError: _e
215
- }, Symbol.toStringTag, { value: "Module" })), Oe = ({
221
+ EErrorTypes: ee,
222
+ getLinkError: $,
223
+ getTypeFromError: be,
224
+ getValuesFromError: Oe
225
+ }, Symbol.toStringTag, { value: "Module" })), Pe = ({
216
226
  sessionId: e,
217
227
  remoteAddress: t,
218
228
  isMutedAudio: n,
@@ -222,203 +232,217 @@ const Me = (e = new Error()) => {
222
232
  }) => {
223
233
  const c = [], i = n ? "0" : "1", u = s ? "0" : "1";
224
234
  return c.push(`X-Vinteo-Mic-State: ${i}`, `X-Vinteo-MainCam-State: ${u}`), r || c.push("X-Vinteo-Purgatory-Call: yes"), e && c.push(`X-Vinteo-Session: ${e}`), o && c.push("X-Vinteo-Presentation-Call: yes"), t && c.push(`X-Vinteo-Remote: ${t}`), c;
225
- }, pe = "[@*!|]", ve = "_", Ae = (e) => {
235
+ }, Ne = "[@*!|]", Be = "_", Ie = (e) => {
226
236
  let t = e;
227
- return t = t.replaceAll(new RegExp(pe, "g"), ve), t;
228
- }, Ne = ({
237
+ return t = t.replaceAll(new RegExp(Ne, "g"), Be), t;
238
+ }, we = ({
229
239
  appName: e,
230
240
  appVersion: t,
231
241
  browserName: n,
232
242
  browserVersion: s
233
243
  }) => {
234
- const o = `${Ae(e)} ${t}`;
244
+ const o = `${Ie(e)} ${t}`;
235
245
  return `ChromeNew - ${n ? `${n} ${s}, ${o}` : o}`;
236
- }, Pe = ({
246
+ }, De = ({
237
247
  isUnifiedSdpSemantic: e,
238
248
  appVersion: t,
239
249
  browserName: n,
240
250
  browserVersion: s,
241
251
  appName: r
242
- }) => e ? Ne({ appVersion: t, browserName: n, browserVersion: s, appName: r }) : "Chrome", Be = (e) => async () => {
252
+ }) => e ? we({ appVersion: t, browserName: n, browserVersion: s, appName: r }) : "Chrome", Fe = (e) => async () => {
243
253
  if (e.isCallActive)
244
254
  return a("askPermissionToEnableCam"), e.askPermissionToEnableCam();
245
- }, we = (e) => (n) => (a("onMustStopPresentation"), e.onSession("mustStopPresentation", n)), Ie = (e) => (n) => (a("onMoveToSpectators"), e.onSession(Z, n)), De = (e) => (n) => (a("onMoveToParticipants"), e.onSession(ee, n)), Fe = (e) => (n) => (a("onUseLicense"), e.onSession("useLicense", n)), ke = (e) => async ({
255
+ }, ke = (e) => (n) => (a("onMustStopPresentation"), e.onSession("mustStopPresentation", n)), Ue = (e) => (n) => (a("onMoveToSpectators"), e.onSession(se, n)), Le = (e) => (n) => (a("onMoveToParticipants"), e.onSession(re, n)), Ve = (e) => (n) => (a("onUseLicense"), e.onSession("useLicense", n)), xe = (e) => async ({
246
256
  isEnabledCam: n,
247
257
  isEnabledMic: s
248
258
  }) => {
249
259
  if (e.isCallActive)
250
260
  return a("sendMediaState"), e.sendMediaState({ cam: n, mic: s });
251
- }, Ue = (e) => async () => {
261
+ }, $e = (e) => async () => {
252
262
  if (e.isCallActive)
253
263
  return a("sendRefusalToTurnOnCam"), e.sendRefusalToTurnOnCam().catch((n) => {
254
264
  a("sendRefusalToTurnOnCam: error", n);
255
265
  });
256
- }, Le = (e) => async () => {
266
+ }, Xe = (e) => async () => {
257
267
  if (e.isCallActive)
258
268
  return a("sendRefusalToTurnOnMic"), e.sendRefusalToTurnOnMic().catch((n) => {
259
269
  a("sendRefusalToTurnOnMic: error", n);
260
270
  });
261
- }, Ve = (e) => async ({
271
+ }, je = (e) => async ({
262
272
  mediaStream: n,
263
273
  isP2P: s,
264
274
  maxBitrate: r,
265
275
  contentHint: o,
266
276
  simulcastEncodings: c,
267
- sendEncodings: i
268
- }, u) => (a("startPresentation"), e.startPresentation(
269
- n,
270
- {
271
- isP2P: s,
272
- maxBitrate: r,
273
- contentHint: o,
274
- sendEncodings: N({
275
- mediaStream: n,
276
- simulcastEncodings: c,
277
- sendEncodings: i
278
- })
279
- },
280
- u
281
- )), xe = (e) => async ({ isP2P: n = !1 } = {}) => (a("stopShareSipConnector"), e.stopPresentation({
277
+ degradationPreference: i,
278
+ sendEncodings: u
279
+ }, d) => {
280
+ const f = B({
281
+ degradationPreference: i
282
+ });
283
+ return a("startPresentation"), e.startPresentation(
284
+ n,
285
+ {
286
+ isP2P: s,
287
+ maxBitrate: r,
288
+ contentHint: o,
289
+ sendEncodings: N({
290
+ mediaStream: n,
291
+ simulcastEncodings: c,
292
+ sendEncodings: u
293
+ }),
294
+ onAddedTransceiver: f
295
+ },
296
+ d
297
+ );
298
+ }, Ge = (e) => async ({ isP2P: n = !1 } = {}) => (a("stopShareSipConnector"), e.stopPresentation({
282
299
  isP2P: n
283
300
  }).catch((s) => {
284
301
  a(s);
285
- })), $e = (e) => async ({
302
+ })), He = (e) => async ({
286
303
  mediaStream: n,
287
304
  isP2P: s,
288
305
  maxBitrate: r,
289
306
  contentHint: o,
290
307
  simulcastEncodings: c,
291
- sendEncodings: i
292
- }) => (a("updatePresentation"), e.updatePresentation(n, {
293
- isP2P: s,
294
- maxBitrate: r,
295
- contentHint: o,
296
- sendEncodings: N({
297
- mediaStream: n,
298
- simulcastEncodings: c,
299
- sendEncodings: i
300
- })
301
- })), Xe = (e) => (t) => [...t].map((s) => async () => e(s)), Ge = async ({
308
+ degradationPreference: i,
309
+ sendEncodings: u
310
+ }) => {
311
+ const d = B({
312
+ degradationPreference: i
313
+ });
314
+ return a("updatePresentation"), e.updatePresentation(n, {
315
+ isP2P: s,
316
+ maxBitrate: r,
317
+ contentHint: o,
318
+ sendEncodings: N({
319
+ mediaStream: n,
320
+ simulcastEncodings: c,
321
+ sendEncodings: u
322
+ }),
323
+ onAddedTransceiver: d
324
+ });
325
+ }, We = (e) => (t) => [...t].map((s) => async () => e(s)), Ke = async ({
302
326
  accumulatedKeys: e,
303
327
  sendKey: t,
304
328
  canRunTask: n
305
329
  }) => {
306
- const r = Xe(t)(e);
307
- return oe(r, n);
308
- }, He = (e) => (n) => (a("onStartMainCam"), e.onSession("admin-start-main-cam", n)), We = (e) => (n) => (a("onStartMic"), e.onSession("admin-start-mic", n)), je = (e) => (n) => (a("onStopMainCam"), e.onSession("admin-stop-main-cam", n)), Ke = (e) => (n) => (a("onStopMic"), e.onSession("admin-stop-mic", n)), Ye = ({ sipConnector: e }) => {
309
- const t = (m, R) => ({ isSyncForced: T = !1 }) => {
310
- if (T) {
311
- m();
330
+ const r = We(t)(e);
331
+ return ue(r, n);
332
+ }, Ye = (e) => (n) => (a("onStartMainCam"), e.onSession("admin-start-main-cam", n)), ze = (e) => (n) => (a("onStartMic"), e.onSession("admin-start-mic", n)), Qe = (e) => (n) => (a("onStopMainCam"), e.onSession("admin-stop-main-cam", n)), qe = (e) => (n) => (a("onStopMic"), e.onSession("admin-stop-mic", n)), Je = ({ sipConnector: e }) => {
333
+ const t = (S, C) => ({ isSyncForced: E = !1 }) => {
334
+ if (E) {
335
+ S();
312
336
  return;
313
337
  }
314
- R();
315
- }, n = He(e), s = je(e), r = We(e), o = Ke(e);
338
+ C();
339
+ }, n = Ye(e), s = Qe(e), r = ze(e), o = qe(e);
316
340
  let c = () => {
317
341
  }, i = () => {
318
342
  }, u = () => {
319
- }, S = () => {
343
+ }, d = () => {
320
344
  };
321
- const g = ({
322
- onStartMainCamForced: m,
323
- onStartMainCamNotForced: R,
324
- onStopMainCamForced: T,
345
+ const f = ({
346
+ onStartMainCamForced: S,
347
+ onStartMainCamNotForced: C,
348
+ onStopMainCamForced: E,
325
349
  onStopMainCamNotForced: y,
326
- onStartMicForced: b,
327
- onStartMicNotForced: O,
328
- onStopMicForced: p,
329
- onStopMicNotForced: h
350
+ onStartMicForced: _,
351
+ onStartMicNotForced: v,
352
+ onStopMicForced: b,
353
+ onStopMicNotForced: p
330
354
  }) => {
331
- const M = t(
332
- m,
333
- R
355
+ const O = t(
356
+ S,
357
+ C
334
358
  );
335
- c = n(M);
336
- const P = t(
337
- T,
359
+ c = n(O);
360
+ const R = t(
361
+ E,
338
362
  y
339
363
  );
340
- i = s(P);
341
- const _ = t(b, O);
342
- u = r(_);
343
- const v = t(p, h);
344
- S = o(v);
345
- }, f = () => {
346
- c(), i(), u(), S();
364
+ i = s(R);
365
+ const h = t(_, v);
366
+ u = r(h);
367
+ const I = t(b, p);
368
+ d = o(I);
369
+ }, g = () => {
370
+ c(), i(), u(), d();
347
371
  };
348
372
  return {
349
- start: (m) => {
350
- g(m);
373
+ start: (S) => {
374
+ f(S);
351
375
  },
352
376
  stop: () => {
353
- f();
377
+ g();
354
378
  }
355
379
  };
356
- }, dn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
380
+ }, Cn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
357
381
  __proto__: null,
358
- PURGATORY_CONFERENCE_NUMBER: z,
359
- createSyncMediaState: Ye,
360
- error: be,
361
- getExtraHeaders: Oe,
362
- getUserAgent: Pe,
363
- hasPurgatory: A,
364
- resolveAnswerIncomingCall: Ee,
365
- resolveAskPermissionToEnableCam: Be,
366
- resolveCallToServer: Re,
367
- resolveConnectToServer: Te,
368
- resolveDisconnectFromServer: he,
369
- resolveGetRemoteStreams: k,
370
- resolveOnMoveToParticipants: De,
371
- resolveOnMoveToSpectators: Ie,
372
- resolveOnMustStopPresentation: we,
373
- resolveOnUseLicense: Fe,
374
- resolveSendMediaState: ke,
375
- resolveSendRefusalToTurnOnCam: Ue,
376
- resolveSendRefusalToTurnOnMic: Le,
377
- resolveStartPresentation: Ve,
378
- resolveStopShareSipConnector: xe,
379
- resolveUpdatePresentation: $e,
380
- resolveUpdateRemoteStreams: U,
381
- sendDTMFAccumulated: Ge
382
- }, Symbol.toStringTag, { value: "Module" })), ze = (e) => [...e.keys()].map((t) => e.get(t)), Qe = (e, t) => ze(e).find((n) => n.type === t), qe = async (e) => e.getStats().then((t) => {
383
- const n = Qe(t, "codec");
382
+ PURGATORY_CONFERENCE_NUMBER: J,
383
+ createSyncMediaState: Je,
384
+ error: Ae,
385
+ getExtraHeaders: Pe,
386
+ getUserAgent: De,
387
+ hasPurgatory: P,
388
+ resolveAnswerIncomingCall: Me,
389
+ resolveAskPermissionToEnableCam: Fe,
390
+ resolveCallToServer: ye,
391
+ resolveConnectToServer: _e,
392
+ resolveDisconnectFromServer: ve,
393
+ resolveGetRemoteStreams: V,
394
+ resolveOnMoveToParticipants: Le,
395
+ resolveOnMoveToSpectators: Ue,
396
+ resolveOnMustStopPresentation: ke,
397
+ resolveOnUseLicense: Ve,
398
+ resolveSendMediaState: xe,
399
+ resolveSendRefusalToTurnOnCam: $e,
400
+ resolveSendRefusalToTurnOnMic: Xe,
401
+ resolveStartPresentation: je,
402
+ resolveStopShareSipConnector: Ge,
403
+ resolveUpdatePresentation: He,
404
+ resolveUpdateRemoteStreams: x,
405
+ sendDTMFAccumulated: Ke
406
+ }, Symbol.toStringTag, { value: "Module" })), Ze = (e) => [...e.keys()].map((t) => e.get(t)), en = (e, t) => Ze(e).find((n) => n.type === t), nn = async (e) => e.getStats().then((t) => {
407
+ const n = en(t, "codec");
384
408
  return n == null ? void 0 : n.mimeType;
385
- }), Je = (e) => e.find((t) => {
409
+ }), tn = (e) => e.find((t) => {
386
410
  var n;
387
411
  return ((n = t == null ? void 0 : t.track) == null ? void 0 : n.kind) === "video";
388
- }), J = ae(), Ze = async () => J().catch((e) => {
412
+ }), ne = le(), sn = async () => ne().catch((e) => {
389
413
  a("videoSendingBalancer: error", e);
390
- }), en = async (e) => (J.add(e), Ze()), V = async ({
414
+ }), rn = async (e) => (ne.add(e), sn()), X = async ({
391
415
  sender: e,
392
416
  scaleResolutionDownBy: t,
393
417
  maxBitrate: n,
394
418
  onSetParameters: s
395
- }) => en(async () => ne(e, { scaleResolutionDownBy: t, maxBitrate: n }, s)), nn = async ({ sender: e, codec: t }, n) => {
396
- const r = fe(t);
397
- return V({
419
+ }) => rn(async () => oe(e, { scaleResolutionDownBy: t, maxBitrate: n }, s)), on = async ({ sender: e, codec: t }, n) => {
420
+ const r = Ee(t);
421
+ return X({
398
422
  sender: e,
399
423
  maxBitrate: r,
400
424
  onSetParameters: n,
401
425
  scaleResolutionDownBy: 200
402
426
  });
403
- }, F = async ({
427
+ }, L = async ({
404
428
  sender: e,
405
429
  videoTrack: t,
406
430
  codec: n
407
431
  }, s) => {
408
- const c = t.getSettings().width, i = K(c, n);
409
- return V({
432
+ const c = t.getSettings().width, i = Q(c, n);
433
+ return X({
410
434
  sender: e,
411
435
  maxBitrate: i,
412
436
  onSetParameters: s,
413
437
  scaleResolutionDownBy: 1
414
438
  });
415
- }, tn = async ({
439
+ }, an = async ({
416
440
  sender: e,
417
441
  videoTrack: t,
418
442
  resolution: n,
419
443
  codec: s
420
444
  }, r) => {
421
- const [o, c] = n.split("x"), { maxBitrate: i, scaleResolutionDownBy: u } = Y({
445
+ const [o, c] = n.split("x"), { maxBitrate: i, scaleResolutionDownBy: u } = q({
422
446
  videoTrack: t,
423
447
  codec: s,
424
448
  targetSize: {
@@ -426,13 +450,13 @@ const Me = (e = new Error()) => {
426
450
  height: Number(c)
427
451
  }
428
452
  });
429
- return V({
453
+ return X({
430
454
  sender: e,
431
455
  maxBitrate: i,
432
456
  onSetParameters: r,
433
457
  scaleResolutionDownBy: u
434
458
  });
435
- }, sn = async ({
459
+ }, cn = async ({
436
460
  mainCam: e,
437
461
  resolutionMainCam: t,
438
462
  sender: n,
@@ -440,19 +464,19 @@ const Me = (e = new Error()) => {
440
464
  codec: r
441
465
  }, o) => {
442
466
  switch (e) {
443
- case I.PAUSE_MAIN_CAM:
444
- return nn({ sender: n, codec: r }, o);
445
- case I.RESUME_MAIN_CAM:
446
- return F({ sender: n, videoTrack: s, codec: r }, o);
447
- case I.MAX_MAIN_CAM_RESOLUTION:
448
- return t !== void 0 ? tn(
467
+ case k.PAUSE_MAIN_CAM:
468
+ return on({ sender: n, codec: r }, o);
469
+ case k.RESUME_MAIN_CAM:
470
+ return L({ sender: n, videoTrack: s, codec: r }, o);
471
+ case k.MAX_MAIN_CAM_RESOLUTION:
472
+ return t !== void 0 ? an(
449
473
  { sender: n, videoTrack: s, codec: r, resolution: t },
450
474
  o
451
- ) : F({ sender: n, videoTrack: s, codec: r }, o);
475
+ ) : L({ sender: n, videoTrack: s, codec: r }, o);
452
476
  default:
453
- return F({ sender: n, videoTrack: s, codec: r }, o);
477
+ return L({ sender: n, videoTrack: s, codec: r }, o);
454
478
  }
455
- }, x = {
479
+ }, j = {
456
480
  isChanged: !1,
457
481
  parameters: {
458
482
  encodings: [{}],
@@ -461,18 +485,18 @@ const Me = (e = new Error()) => {
461
485
  headerExtensions: [],
462
486
  rtcp: {}
463
487
  }
464
- }, $ = async ({
488
+ }, G = async ({
465
489
  mainCam: e,
466
490
  resolutionMainCam: t,
467
491
  connection: n,
468
492
  onSetParameters: s,
469
493
  ignoreForCodec: r
470
494
  }) => {
471
- const o = n.getSenders(), c = Je(o);
495
+ const o = n.getSenders(), c = tn(o);
472
496
  if (!(c != null && c.track))
473
- return x;
474
- const i = await qe(c);
475
- return W(i, r) ? x : sn(
497
+ return j;
498
+ const i = await nn(c);
499
+ return Y(i, r) ? j : cn(
476
500
  {
477
501
  mainCam: e,
478
502
  resolutionMainCam: t,
@@ -482,7 +506,7 @@ const Me = (e = new Error()) => {
482
506
  },
483
507
  s
484
508
  );
485
- }, mn = (e, {
509
+ }, Tn = (e, {
486
510
  ignoreForCodec: t,
487
511
  onSetParameters: n
488
512
  } = {}) => {
@@ -490,7 +514,7 @@ const Me = (e = new Error()) => {
490
514
  const { connection: u } = e;
491
515
  if (!u)
492
516
  throw new Error("connection is not exist");
493
- return $({
517
+ return G({
494
518
  connection: u,
495
519
  onSetParameters: n,
496
520
  ignoreForCodec: t
@@ -498,13 +522,13 @@ const Me = (e = new Error()) => {
498
522
  };
499
523
  let r = s;
500
524
  const o = async (u) => (r = async () => {
501
- const { mainCam: S, resolutionMainCam: g } = u, { connection: f } = e;
502
- if (!f)
525
+ const { mainCam: d, resolutionMainCam: f } = u, { connection: g } = e;
526
+ if (!g)
503
527
  throw new Error("connection is not exist");
504
- return $({
505
- mainCam: S,
506
- resolutionMainCam: g,
507
- connection: f,
528
+ return G({
529
+ mainCam: d,
530
+ resolutionMainCam: f,
531
+ connection: g,
508
532
  onSetParameters: n,
509
533
  ignoreForCodec: t
510
534
  });
@@ -526,20 +550,20 @@ const Me = (e = new Error()) => {
526
550
  };
527
551
  };
528
552
  export {
529
- I as EEventsMainCAM,
530
- Cn as EEventsMic,
531
- En as EEventsSyncMediaState,
532
- Rn as EUseLicense,
533
- Tn as causes,
534
- hn as constants,
535
- vn as debug,
536
- on as default,
537
- Mn as disableDebug,
538
- yn as enableDebug,
539
- _n as eventNames,
540
- qe as getCodecFromSender,
541
- bn as hasCanceledCallError,
542
- mn as resolveVideoSendingBalancer,
543
- On as setParametersToSender,
544
- dn as tools
553
+ k as EEventsMainCAM,
554
+ hn as EEventsMic,
555
+ Mn as EEventsSyncMediaState,
556
+ yn as EUseLicense,
557
+ _n as causes,
558
+ vn as constants,
559
+ Nn as debug,
560
+ ln as default,
561
+ bn as disableDebug,
562
+ pn as enableDebug,
563
+ On as eventNames,
564
+ nn as getCodecFromSender,
565
+ An as hasCanceledCallError,
566
+ Tn as resolveVideoSendingBalancer,
567
+ te as setParametersToSender,
568
+ Cn as tools
545
569
  };
@@ -6,6 +6,7 @@ declare const resolveAnswerIncomingCall: (sipConnector: SipConnector) => (parame
6
6
  iceServers?: RTCIceServer[];
7
7
  contentHint?: TContentHint;
8
8
  simulcastEncodings?: TSimulcastEncodings;
9
+ degradationPreference?: RTCDegradationPreference;
9
10
  sendEncodings?: RTCRtpEncodingParameters[];
10
11
  setRemoteStreams: (streams: MediaStream[]) => void;
11
12
  onBeforeProgressCall?: (conference?: string) => void;
@@ -7,6 +7,7 @@ declare const resolveCallToServer: (sipConnector: SipConnector) => (parameters:
7
7
  iceServers?: RTCIceServer[];
8
8
  contentHint?: TContentHint;
9
9
  simulcastEncodings?: TSimulcastEncodings;
10
+ degradationPreference?: RTCDegradationPreference;
10
11
  sendEncodings?: RTCRtpEncodingParameters[];
11
12
  setRemoteStreams: (streams: MediaStream[]) => void;
12
13
  onBeforeProgressCall?: (conference: string) => void;
@@ -1,11 +1,12 @@
1
1
  import { default as SipConnector } from '../SipConnector';
2
2
  import { TContentHint, TSimulcastEncodings } from '../types';
3
- declare const resolveStartPresentation: (sipConnector: SipConnector) => ({ mediaStream, isP2P, maxBitrate, contentHint, simulcastEncodings, sendEncodings, }: {
3
+ declare const resolveStartPresentation: (sipConnector: SipConnector) => ({ mediaStream, isP2P, maxBitrate, contentHint, simulcastEncodings, degradationPreference, sendEncodings, }: {
4
4
  mediaStream: MediaStream;
5
5
  isP2P: boolean;
6
6
  maxBitrate?: number;
7
7
  contentHint?: TContentHint;
8
8
  simulcastEncodings?: TSimulcastEncodings;
9
+ degradationPreference?: RTCDegradationPreference;
9
10
  sendEncodings?: RTCRtpEncodingParameters[];
10
11
  }, options?: {
11
12
  callLimit: number;
@@ -1,11 +1,12 @@
1
1
  import { default as SipConnector } from '../SipConnector';
2
2
  import { TContentHint, TSimulcastEncodings } from '../types';
3
- declare const resolveUpdatePresentation: (sipConnector: SipConnector) => ({ mediaStream, isP2P, maxBitrate, contentHint, simulcastEncodings, sendEncodings, }: {
3
+ declare const resolveUpdatePresentation: (sipConnector: SipConnector) => ({ mediaStream, isP2P, maxBitrate, contentHint, simulcastEncodings, degradationPreference, sendEncodings, }: {
4
4
  mediaStream: MediaStream;
5
5
  isP2P: boolean;
6
6
  maxBitrate?: number;
7
7
  contentHint?: TContentHint;
8
8
  simulcastEncodings?: TSimulcastEncodings;
9
+ degradationPreference?: RTCDegradationPreference;
9
10
  sendEncodings?: RTCRtpEncodingParameters[];
10
11
  }) => Promise<MediaStream | void>;
11
12
  export default resolveUpdatePresentation;
@@ -0,0 +1,3 @@
1
+ import { TRtpSendParameters } from '../types';
2
+ declare const resolveUpdateSenderInTransceiver: (parametersTarget: TRtpSendParameters) => (transceiver: RTCRtpTransceiver) => Promise<void>;
3
+ export default resolveUpdateSenderInTransceiver;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sip-connector",
3
- "version": "11.2.0",
3
+ "version": "11.3.0",
4
4
  "description": "Module for connect to Vinteo server",
5
5
  "keywords": [
6
6
  "webrtc",