@techsee/techsee-media-service 17.0.0 → 17.2.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/lib/LocalStreamManager.js.map +1 -1
- package/lib/MediaConstants.js.map +1 -1
- package/lib/MediaContracts.js.map +1 -1
- package/lib/MediaPublisher.js.map +1 -1
- package/lib/MediaServiceBase.js.map +1 -1
- package/lib/MediaSession/MediaServer.js.map +1 -1
- package/lib/MediaSession/MediaSessionBase.js.map +1 -1
- package/lib/MediaSession/SessionOpentok.js.map +1 -1
- package/lib/MediaSession/SessionTurn.js.map +1 -1
- package/lib/MediaSession/TurnConstants.js.map +1 -1
- package/lib/MediaSubscriber.js.map +1 -1
- package/lib/MediaUtils/Compatibility.js.map +1 -1
- package/lib/MediaUtils/MediaDomUtils.js.map +1 -1
- package/lib/MediaUtils/MediaTracer.js.map +1 -1
- package/lib/MediaUtils/index.js.map +1 -1
- package/lib/MultiParty/DetectWebRtcService.js.map +1 -1
- package/lib/MultiParty/MediaCapabilitiesService.js.map +1 -1
- package/lib/MultiParty/MediaCapabilitiesUtils.js.map +1 -1
- package/lib/MultiParty/MediaTracer.js.map +1 -1
- package/lib/MultiParty/MultiPartyService.d.ts +1 -0
- package/lib/MultiParty/MultiPartyService.d.ts.map +1 -1
- package/lib/MultiParty/MultiPartyService.js.map +1 -1
- package/lib/MultiParty/MultiPartyServiceFactory.js.map +1 -1
- package/lib/MultiParty/MultipartyServiceEventTypes.js.map +1 -1
- package/lib/MultiParty/index.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts +1 -0
- package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts.map +1 -1
- package/lib/MultiParty/opentok/OpentokMultiPartyService.js +7 -0
- package/lib/MultiParty/opentok/OpentokMultiPartyService.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokPublisher.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokScreenPublisher.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokSubscriber.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokVideoPublisher.js.map +1 -1
- package/lib/MultiParty/opentok/trace.js.map +1 -1
- package/lib/MultiParty/types.js.map +1 -1
- package/lib/MultiParty/utils.js.map +1 -1
- package/lib/TechseeMediaStream.js.map +1 -1
- package/lib/qos/raw-qos.js.map +1 -1
- package/lib/webrtc-ie-shim.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MediaSession/MediaServer.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__importDefault","mod","__esModule","defineProperty","exports","value","MediaServerSession","MediaSessionBase_1","require","MediaConstants_1","openvidu_browser_1","MediaTracer_1","guards_1","bluebird_1","get_1","trace","getMediaTracer","_super","sessionParams","streamFactory","_this","OV","_session","_lastStreamEvents","_credentials","credentials","connect","bind","disconnect","onMediaStreamDestroyed","onPublisherDestroyed","onMediaStreamRenewed","createStreamForPublishing","createMediaPublisher","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","get","connection","connectionId","enumerable","configurable","connectOnly","info","error","Promise","reject","OpenVidu","initSession","initSessionEvents","token","clientRole","_sessionParams","err","sessionDisconnect","resolve","promiseDisconnect","_peerConnections","forEach","peerConnection","push","destroyPeerConnection","all","then","removeSessionEvent","off","removeHandlers","getRemoteTrackStats","mediaTrack","undefined","promises","peerRole","destroyPublisherOnPeerConnection","mediaStream","replaceStreamTracks","Error","initHandlers","on","event","emitEvent","recordingEvents","RECORD_STARTED","RECORD_STOPPED","RECONNECTING","stream","sessionExistsGuard","warn","destroySubscriberOnPeerConnection","has","peerId","subscriber","unsubscribe","unregisterPeersRemoteMediaTracks","publisher","unpublish","localStream","createMediaSubscriber","remoteStream","subscribe","ownPeerId","getMediaStream","getTracks","addRemoteTrackToPeer","registerPeersRemoteTracks","destinationRole","_sessionStreamsManager","getMediaStreamForRole","videoSource","audioSource","track","kind","SessionClientRole","USER","ovParams","publishAudio","publishVideo","ovPublisher","initPublisher","preventDefault","JSON","parse","data","streams","peerType","clientType","SessionClientType","INITIATOR","GUEST","remoteMediaTracks","connectionTimoutPrt","set","reduce","promiseChain","streamEvent","publish","shouldThrow","connected","throwableGuard","MediaSessionBase"],"mappings":"AAAA;;AACA,IAAIA,SAAS,GAAI,UAAQ,SAAKA,SAAd,IAA6B,YAAY;AACrD,MAAIC,cAAa,GAAG,uBAAUC,CAAV,EAAaC,CAAb,EAAgB;AAChCF,IAAAA,cAAa,GAAGG,MAAM,CAACC,cAAP,IACX;AAAEC,MAAAA,SAAS,EAAE;AAAb,iBAA6BC,KAA7B,IAAsC,UAAUL,CAAV,EAAaC,CAAb,EAAgB;AAAED,MAAAA,CAAC,CAACI,SAAF,GAAcH,CAAd;AAAkB,KAD/D,IAEZ,UAAUD,CAAV,EAAaC,CAAb,EAAgB;AAAE,WAAK,IAAIK,CAAT,IAAcL,CAAd;AAAiB,YAAIC,MAAM,CAACK,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCR,CAArC,EAAwCK,CAAxC,CAAJ,EAAgDN,CAAC,CAACM,CAAD,CAAD,GAAOL,CAAC,CAACK,CAAD,CAAR;AAAjE;AAA+E,KAFrG;;AAGA,WAAOP,cAAa,CAACC,CAAD,EAAIC,CAAJ,CAApB;AACH,GALD;;AAMA,SAAO,UAAUD,CAAV,EAAaC,CAAb,EAAgB;AACnBF,IAAAA,cAAa,CAACC,CAAD,EAAIC,CAAJ,CAAb;;AACA,aAASS,EAAT,GAAc;AAAE,WAAKC,WAAL,GAAmBX,CAAnB;AAAuB;;AACvCA,IAAAA,CAAC,CAACO,SAAF,GAAcN,CAAC,KAAK,IAAN,GAAaC,MAAM,CAACU,MAAP,CAAcX,CAAd,CAAb,IAAiCS,EAAE,CAACH,SAAH,GAAeN,CAAC,CAACM,SAAjB,EAA4B,IAAIG,EAAJ,EAA7D,CAAd;AACH,GAJD;AAKH,CAZ2C,EAA5C;;AAaA,IAAIG,eAAe,GAAI,UAAQ,SAAKA,eAAd,IAAkC,UAAUC,GAAV,EAAe;AACnE,SAAQA,GAAG,IAAIA,GAAG,CAACC,UAAZ,GAA0BD,GAA1B,GAAgC;AAAE,eAAWA;AAAb,GAAvC;AACH,CAFD;;AAGAZ,MAAM,CAACc,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAD,OAAO,CAACE,kBAAR,GAA6B,KAAK,CAAlC;;AACA,IAAIC,kBAAkB,GAAGC,OAAO,CAAC,oBAAD,CAAhC;;AACA,IAAIC,gBAAgB,GAAGD,OAAO,CAAC,mBAAD,CAA9B;;AACA,IAAIE,kBAAkB,GAAGF,OAAO,CAAC,2BAAD,CAAhC;;AACA,IAAIG,aAAa,GAAGH,OAAO,CAAC,2BAAD,CAA3B;;AACA,IAAII,QAAQ,GAAGJ,OAAO,CAAC,yCAAD,CAAtB;;AACA,IAAIK,UAAU,GAAGL,OAAO,CAAC,UAAD,CAAxB;;AACA,IAAIM,KAAK,GAAGd,eAAe,CAACQ,OAAO,CAAC,YAAD,CAAR,CAA3B;;AACA,IAAIO,KAAK,GAAGJ,aAAa,CAACK,cAAd,CAA6B,oBAA7B,CAAZ;;AACA,IAAIV,kBAAkB;AAAG;AAAe,UAAUW,MAAV,EAAkB;AACtDhC,EAAAA,SAAS,CAACqB,kBAAD,EAAqBW,MAArB,CAAT;;AACA,WAASX,kBAAT,CAA4BY,aAA5B,EAA2CC,aAA3C,EAA0D;AACtD,QAAIC,KAAK,GAAGH,MAAM,CAACrB,IAAP,CAAY,IAAZ,EAAkBsB,aAAlB,EAAiCC,aAAjC,KAAmD,IAA/D;;AACAC,IAAAA,KAAK,CAACC,EAAN,GAAW,IAAX;AACAD,IAAAA,KAAK,CAACE,QAAN,GAAiB,IAAjB;AACAF,IAAAA,KAAK,CAACG,iBAAN,GAA0B,EAA1B;AACAH,IAAAA,KAAK,CAACI,YAAN,GAAqBN,aAAa,CAACO,WAAnC;AACAL,IAAAA,KAAK,CAACM,OAAN,GAAgBN,KAAK,CAACM,OAAN,CAAcC,IAAd,CAAmBP,KAAnB,CAAhB;AACAA,IAAAA,KAAK,CAACQ,UAAN,GAAmBR,KAAK,CAACQ,UAAN,CAAiBD,IAAjB,CAAsBP,KAAtB,CAAnB;AACAA,IAAAA,KAAK,CAACS,sBAAN,GAA+BT,KAAK,CAACS,sBAAN,CAA6BF,IAA7B,CAAkCP,KAAlC,CAA/B;AACAA,IAAAA,KAAK,CAACU,oBAAN,GAA6BV,KAAK,CAACU,oBAAN,CAA2BH,IAA3B,CAAgCP,KAAhC,CAA7B;AACAA,IAAAA,KAAK,CAACW,oBAAN,GAA6BX,KAAK,CAACW,oBAAN,CAA2BJ,IAA3B,CAAgCP,KAAhC,CAA7B;AACAA,IAAAA,KAAK,CAACY,yBAAN,GAAkCZ,KAAK,CAACY,yBAAN,CAAgCL,IAAhC,CAAqCP,KAArC,CAAlC;AACAA,IAAAA,KAAK,CAACa,oBAAN,GAA6Bb,KAAK,CAACa,oBAAN,CAA2BN,IAA3B,CAAgCP,KAAhC,CAA7B;AACAA,IAAAA,KAAK,CAACc,wBAAN,GAAiCd,KAAK,CAACc,wBAAN,CAA+BP,IAA/B,CAAoCP,KAApC,CAAjC;AACAA,IAAAA,KAAK,CAACe,0BAAN,GAAmCf,KAAK,CAACe,0BAAN,CAAiCR,IAAjC,CAAsCP,KAAtC,CAAnC;AACAA,IAAAA,KAAK,CAACgB,oBAAN,GAA6BhB,KAAK,CAACgB,oBAAN,CAA2BT,IAA3B,CAAgCP,KAAhC,CAA7B;AACAA,IAAAA,KAAK,CAACiB,sBAAN,GAA+BjB,KAAK,CAACiB,sBAAN,CAA6BV,IAA7B,CAAkCP,KAAlC,CAA/B;AACA,WAAOA,KAAP;AACH;;AACD/B,EAAAA,MAAM,CAACc,cAAP,CAAsBG,kBAAkB,CAACZ,SAAzC,EAAoD,WAApD,EAAiE;AAC7D4C,IAAAA,GAAG,EAAE,eAAY;AACb,aAAO,KAAKhB,QAAL,IAAiB,KAAKA,QAAL,CAAciB,UAA/B,GAA4C,KAAKjB,QAAL,CAAciB,UAAd,CAAyBC,YAArE,GAAoF,EAA3F;AACH,KAH4D;AAI7DC,IAAAA,UAAU,EAAE,KAJiD;AAK7DC,IAAAA,YAAY,EAAE;AAL+C,GAAjE;;AAOApC,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6BgC,OAA7B,GAAuC,UAAUiB,WAAV,EAAuB;AAC1D5B,IAAAA,KAAK,CAAC6B,IAAN,CAAW,oBAAX,EAAiC,KAAKpB,YAAtC;;AACA,QAAI,KAAKF,QAAT,EAAmB;AACfP,MAAAA,KAAK,CAAC8B,KAAN,CAAY,wBAAZ;AACA,aAAOhC,UAAU,CAACiC,OAAX,CAAmBC,MAAnB,CAA0B,2DAA1B,CAAP;AACH,KALyD,CAM1D;AACA;AACA;AACA;AACA;;;AACA,SAAK1B,EAAL,GAAU,IAAIX,kBAAkB,CAACsC,QAAvB,EAAV,CAX0D,CAY1D;;AACA,SAAK1B,QAAL,GAAgB,KAAKD,EAAL,CAAQ4B,WAAR,EAAhB;AACA,SAAKC,iBAAL;AACA,WAAO,KAAK5B,QAAL,CACFI,OADE,CACM,KAAKF,YAAL,CAAkB2B,KADxB,EAC+B;AAAEC,MAAAA,UAAU,EAAE,KAAKC,cAAL,CAAoBD;AAAlC,KAD/B,WAEI,UAAUE,GAAV,EAAe;AACtBvC,MAAAA,KAAK,CAAC8B,KAAN,CAAY,4CAAZ,EAA0DS,GAA1D;AACA,YAAMA,GAAN;AACH,KALM,CAAP;AAMH,GArBD;;AAsBAhD,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6B6D,iBAA7B,GAAiD,YAAY;AACzD,QAAI,KAAKjC,QAAT,EAAmB;AACf,aAAO,KAAKA,QAAL,CAAcM,UAAd,CAAyB,IAAzB,CAAP;AACH;AACJ,GAJD;;AAKAtB,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6BkC,UAA7B,GAA0C,YAAY;AAClD,QAAIR,KAAK,GAAG,IAAZ;;AACA,WAAO,IAAIP,UAAU,CAACiC,OAAf,CAAuB,UAAUU,OAAV,EAAmB;AAC7CzC,MAAAA,KAAK,CAAC6B,IAAN,CAAW,4BAAX;AACA,UAAIa,iBAAiB,GAAG,EAAxB;;AACArC,MAAAA,KAAK,CAACsC,gBAAN,CAAuBC,OAAvB,CAA+B,UAAUC,cAAV,EAA0B;AACrDH,QAAAA,iBAAiB,CAACI,IAAlB,CAAuBzC,KAAK,CAAC0C,qBAAN,CAA4BF,cAA5B,CAAvB;AACH,OAFD;;AAGA,aAAO/C,UAAU,CAACiC,OAAX,CAAmBiB,GAAnB,CAAuBN,iBAAvB,EAA0CO,IAA1C,CAA+C,YAAY;AAC9D,YAAI,CAAC5C,KAAK,CAACE,QAAX,EAAqB;AACjBP,UAAAA,KAAK,CAAC6B,IAAN,CAAW,+BAAX;AACAY,UAAAA,OAAO;AACP;AACH;;AACDpC,QAAAA,KAAK,CAAC6C,kBAAN;;AACA7C,QAAAA,KAAK,CAACE,QAAN,CAAeM,UAAf;;AACAR,QAAAA,KAAK,CAACG,iBAAN,GAA0B,EAA1B,CAR8D,CAS9D;AACA;;AACA,eAAOH,KAAK,CAACE,QAAb,CAX8D,CAY9D;AACA;;AACA,eAAOF,KAAK,CAACC,EAAb;AACAmC,QAAAA,OAAO;AACV,OAhBM,CAAP;AAiBH,KAvBM,CAAP;AAwBH,GA1BD;;AA2BAlD,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6BuE,kBAA7B,GAAkD,YAAY;AAC1D,QAAI,CAAC,KAAK3C,QAAV,EAAoB;AAChB;AACH;;AACD,SAAKA,QAAL,CAAc4C,GAAd,CAAkB,mBAAlB;;AACA,SAAK5C,QAAL,CAAc4C,GAAd,CAAkB,eAAlB;;AACA,SAAK5C,QAAL,CAAc4C,GAAd,CAAkB,iBAAlB;;AACA,SAAK5C,QAAL,CAAc4C,GAAd,CAAkB,qBAAlB;;AACA,SAAK5C,QAAL,CAAc4C,GAAd,CAAkB,qBAAlB;;AACA,SAAK5C,QAAL,CAAc4C,GAAd,CAAkB,kBAAlB;;AACA,SAAK5C,QAAL,CAAc4C,GAAd,CAAkB,kBAAlB;;AACA,SAAKb,cAAL,CAAoBc,cAApB,IAAsC,KAAKd,cAAL,CAAoBc,cAApB,EAAtC;AACApD,IAAAA,KAAK,CAAC6B,IAAN,CAAW,wBAAX;AACH,GAbD;;AAcAtC,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6B0E,mBAA7B,GAAmD,UAAUC,UAAV,EAAsB;AACrE;AACA;AACA,WAAOxD,UAAU,CAACiC,OAAX,CAAmBU,OAAnB,CAA2Bc,SAA3B,CAAP;AACH,GAJD;;AAKAhE,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6BmC,sBAA7B,GAAsD,UAAUuB,UAAV,EAAsB;AACxE,QAAIhC,KAAK,GAAG,IAAZ;;AACAL,IAAAA,KAAK,CAAC6B,IAAN,CAAW,wBAAX;AACA,QAAI2B,QAAQ,GAAG,EAAf;;AACA,SAAKb,gBAAL,CAAsBC,OAAtB,CAA8B,UAAUC,cAAV,EAA0B;AACpD,UAAIA,cAAc,CAACY,QAAf,KAA4BpB,UAAhC,EAA4C;AACxCmB,QAAAA,QAAQ,CAACV,IAAT,CAAczC,KAAK,CAACqD,gCAAN,CAAuCb,cAAvC,CAAd;AACH;AACJ,KAJD;;AAKA,WAAO/C,UAAU,CAACiC,OAAX,CAAmBiB,GAAnB,CAAuBQ,QAAvB,EAAiCP,IAAjC,CAAsC,YAAY;AAAE,aAAOjD,KAAK,CAAC6B,IAAN,CAAW,iCAAX,CAAP;AAAuD,KAA3G,CAAP;AACH,GAVD;;AAWAtC,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6BoC,oBAA7B,GAAoD,UAAUU,YAAV,EAAwB;AACxEzB,IAAAA,KAAK,CAAC6B,IAAN,CAAW,sBAAX;;AACA,QAAIgB,cAAc,GAAG,KAAKF,gBAAL,CAAsBpB,GAAtB,CAA0BE,YAA1B,CAArB;;AACA,QAAI,CAACoB,cAAL,EAAqB;AACjB,aAAO/C,UAAU,CAACiC,OAAX,CAAmBU,OAAnB,EAAP;AACH;;AACD,WAAO,KAAKiB,gCAAL,CAAsCb,cAAtC,CAAP;AACH,GAPD;;AAQAtD,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6BqC,oBAA7B,GAAoD,UAAUqB,UAAV,EAAsBsB,WAAtB,EAAmC;AACnF,WAAO7D,UAAU,CAACiC,OAAX,CAAmBU,OAAnB,CAA2Bc,SAA3B,CAAP;AACH,GAFD;;AAGAhE,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6BiF,mBAA7B,GAAmD,UAAUD,WAAV,EAAuB;AACtE,WAAO7D,UAAU,CAACiC,OAAX,CAAmBC,MAAnB,CAA0B,IAAI6B,KAAJ,CAAU,iBAAV,CAA1B,CAAP;AACH,GAFD;;AAGAtE,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6BwD,iBAA7B,GAAiD,YAAY;AACzD,QAAI9B,KAAK,GAAG,IAAZ;;AACA,QAAI,CAAC,KAAKE,QAAV,EAAoB;AAChB;AACH;;AACD,SAAK+B,cAAL,CAAoBwB,YAApB,IAAoC,KAAKxB,cAAL,CAAoBwB,YAApB,EAApC;AACA,SAAKtD,iBAAL,GAAyB,EAAzB;;AACA,SAAKD,QAAL,CAAcwD,EAAd,CAAiB,mBAAjB,EAAsC,KAAK5C,wBAA3C;;AACA,SAAKZ,QAAL,CAAcwD,EAAd,CAAiB,eAAjB,EAAkC,KAAK1C,oBAAvC;;AACA,SAAKd,QAAL,CAAcwD,EAAd,CAAiB,iBAAjB,EAAoC,KAAKzC,sBAAzC;;AACA,SAAKf,QAAL,CAAcwD,EAAd,CAAiB,qBAAjB,EAAwC,KAAK3C,0BAA7C;;AACA,SAAKb,QAAL,CAAcwD,EAAd,CAAiB,kBAAjB,EAAqC,UAAUC,KAAV,EAAiB;AAClDhE,MAAAA,KAAK,CAAC6B,IAAN,CAAW,wBAAX,EAAqCmC,KAArC;;AACA3D,MAAAA,KAAK,CAAC4D,SAAN,CAAgBzE,kBAAkB,CAAC0E,eAAnB,CAAmCC,cAAnD,EAAmEH,KAAnE;AACH,KAHD;;AAIA,SAAKzD,QAAL,CAAcwD,EAAd,CAAiB,kBAAjB,EAAqC,UAAUC,KAAV,EAAiB;AAClDhE,MAAAA,KAAK,CAAC6B,IAAN,CAAW,wBAAX,EAAqCmC,KAArC;;AACA3D,MAAAA,KAAK,CAAC4D,SAAN,CAAgBzE,kBAAkB,CAAC0E,eAAnB,CAAmCE,cAAnD,EAAmEJ,KAAnE;AACH,KAHD;;AAIA,SAAKzD,QAAL,CAAcwD,EAAd,CAAiB,cAAjB,EAAiC,YAAY;AACzC/D,MAAAA,KAAK,CAAC6B,IAAN,CAAW,oBAAX;;AACAxB,MAAAA,KAAK,CAAC4D,SAAN,CAAgBzE,kBAAkB,CAAC0E,eAAnB,CAAmCG,YAAnD;AACH,KAHD;;AAIA,SAAK9D,QAAL,CAAcwD,EAAd,CAAiB,qBAAjB,EAAwC,KAAKlD,UAA7C;AACH,GAxBD;;AAyBAtB,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6B2C,sBAA7B,GAAsD,UAAU0C,KAAV,EAAiB;AACnEhE,IAAAA,KAAK,CAAC6B,IAAN,CAAW,wBAAX,EAAqCmC,KAArC;AACA,QAAIM,MAAM,GAAGN,KAAK,CAACM,MAAnB;;AACA,QAAI,CAAC,KAAKC,kBAAL,CAAwB,KAAxB,CAAD,IAAmC,CAACD,MAAxC,EAAgD;AAC5C;AACH;;AACD,QAAIzB,cAAc,GAAG,KAAKF,gBAAL,CAAsBpB,GAAtB,CAA0B+C,MAAM,CAAC9C,UAAP,CAAkBC,YAA5C,CAArB;;AACA,QAAI,CAACoB,cAAL,EAAqB;AACjB7C,MAAAA,KAAK,CAACwE,IAAN,CAAW,6CAAX;AACA;AACH;;AACD,SAAKC,iCAAL,CAAuC5B,cAAvC,WAA6D,YAAY;AAAE,aAAOU,SAAP;AAAmB,KAA9F;AACH,GAZD;;AAaAhE,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6ByC,0BAA7B,GAA0D,UAAU4C,KAAV,EAAiB;AACvEhE,IAAAA,KAAK,CAAC6B,IAAN,CAAW,4BAAX,EAAyCmC,KAAzC;AACA,QAAIxC,UAAU,GAAGwC,KAAK,CAACxC,UAAvB;;AACA,QAAI,CAAC,KAAK+C,kBAAL,CAAwB,KAAxB,CAAD,IAAmC,CAAC/C,UAAxC,EAAoD;AAChD;AACH;;AACD,QAAI,KAAKmB,gBAAL,CAAsB+B,GAAtB,CAA0BlD,UAAU,CAACC,YAArC,CAAJ,EAAwD;AACpD,UAAIoB,cAAc,GAAG,KAAKF,gBAAL,CAAsBpB,GAAtB,CAA0BC,UAAU,CAACC,YAArC,CAArB;;AACA,WAAKgD,iCAAL,CAAuC5B,cAAvC,WAA6D,YAAY;AAAE,eAAOU,SAAP;AAAmB,OAA9F;AACH;AACJ,GAVD;;AAWAhE,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6BoE,qBAA7B,GAAqD,UAAUF,cAAV,EAA0B;AAC3E7C,IAAAA,KAAK,CAAC6B,IAAN,CAAW,uBAAX;;AACA,SAAKc,gBAAL,WAA6BE,cAAc,CAAC8B,MAA5C;;AACA,WAAO7E,UAAU,CAACiC,OAAX,CAAmBiB,GAAnB,CAAuB,CAC1B,KAAKU,gCAAL,CAAsCb,cAAtC,CAD0B,EAE1B,KAAK4B,iCAAL,CAAuC5B,cAAvC,CAF0B,CAAvB,EAIFI,IAJE,CAIG,YAAY;AAAE,aAAOM,SAAP;AAAmB,KAJpC,WAKI,YAAY;AACnBvD,MAAAA,KAAK,CAACwE,IAAN,CAAW,sDAAX;AACH,KAPM,CAAP;AAQH,GAXD;;AAYAjF,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6B8F,iCAA7B,GAAiE,UAAU5B,cAAV,EAA0B;AACvF7C,IAAAA,KAAK,CAAC6B,IAAN,CAAW,mCAAX,EAAgDgB,cAAhD;;AACA,QAAI,KAAK0B,kBAAL,CAAwB,KAAxB,KAAkC1B,cAAc,CAAC+B,UAArD,EAAiE;AAC7D,WAAKrE,QAAL,CAAcsE,WAAd,CAA0BhC,cAAc,CAAC+B,UAAzC;AACH;;AACD5E,IAAAA,KAAK,CAAC6B,IAAN,CAAW,4EAAX;AACA,WAAO,KAAKiD,gCAAL,CAAsCjC,cAAtC,WACI,YAAY;AAAE,aAAO7C,KAAK,CAACwE,IAAN,CAAW,mDAAX,CAAP;AAAyE,KAD3F,EAEFvB,IAFE,CAEG,YAAY;AAClBjD,MAAAA,KAAK,CAAC6B,IAAN,CAAW,kFAAX;AACAgB,MAAAA,cAAc,CAAC+B,UAAf,GAA4B,IAA5B;AACH,KALM,CAAP;AAMH,GAZD;;AAaArF,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6B+E,gCAA7B,GAAgE,UAAUb,cAAV,EAA0B;AACtF7C,IAAAA,KAAK,CAAC6B,IAAN,CAAW,kCAAX;;AACA,QAAI,KAAK0C,kBAAL,CAAwB,KAAxB,KAAkC1B,cAAc,CAACkC,SAArD,EAAgE;AAC5D/E,MAAAA,KAAK,CAAC6B,IAAN,CAAW,8CAAX;;AACA,WAAKtB,QAAL,CAAcyE,SAAd,CAAwBnC,cAAc,CAACkC,SAAvC;AACH;;AACDlC,IAAAA,cAAc,CAACkC,SAAf,GAA2B,IAA3B;AACAlC,IAAAA,cAAc,CAACoC,WAAf,GAA6B,IAA7B;AACA,WAAOnF,UAAU,CAACiC,OAAX,CAAmBU,OAAnB,EAAP;AACH,GATD;;AAUAlD,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6BuG,qBAA7B,GAAqD,UAAUC,YAAV,EAAwB;AACzE,QAAI9E,KAAK,GAAG,IAAZ;;AACAL,IAAAA,KAAK,CAAC6B,IAAN,CAAW,uBAAX;AACA,WAAO,IAAI/B,UAAU,CAACiC,OAAf,CAAuB,UAAUU,OAAV,EAAmBT,MAAnB,EAA2B;AACrD,UAAI,CAAC3B,KAAK,CAACkE,kBAAN,CAAyB,KAAzB,CAAL,EAAsC;AAClC,eAAOvC,MAAM,CAAC,oBAAD,CAAb;AACH;;AACDhC,MAAAA,KAAK,CAAC6B,IAAN,CAAW,0BAAX;;AACA,UAAI+C,UAAU,GAAGvE,KAAK,CAACE,QAAN,CAAe6E,SAAf,CAAyBD,YAAzB,EAAuC,EAAvC,EAA2C,EAA3C,EAA+C,UAAU5C,GAAV,EAAe;AAC3E,YAAIA,GAAJ,EAAS;AACLvC,UAAAA,KAAK,CAACwE,IAAN,CAAW,2BAAX,EAAwCjC,GAAxC;AACA,iBAAOP,MAAM,CAACO,GAAD,CAAb;AACH;;AACDvC,QAAAA,KAAK,CAAC6B,IAAN,CAAW,gCAAX,EAA6C+C,UAA7C;AACA,eAAOnC,OAAO,CAACmC,UAAD,CAAd;AACH,OAPgB,CAAjB;AAQH,KAbM,CAAP;AAcH,GAjBD;;AAkBArF,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6B0C,oBAA7B,GAAoD,UAAU2C,KAAV,EAAiB;AACjE,QAAI3D,KAAK,GAAG,IAAZ;;AACA,QAAI,CAAC2D,KAAL,EAAY;AACR,aAAOlE,UAAU,CAACiC,OAAX,CAAmBU,OAAnB,EAAP;AACH;;AACDzC,IAAAA,KAAK,CAAC6B,IAAN,CAAW,sBAAX,EAAmCmC,KAAK,CAACM,MAAzC;AACA,QAAIA,MAAM,GAAGN,KAAK,CAACM,MAAnB;AACA,QAAI9C,UAAU,GAAG,CAAC8C,MAAM,IAAI;AAAE9C,MAAAA,UAAU,EAAE;AAAd,KAAX,EAAiCA,UAAlD;;AACA,QAAI,CAAC,KAAK+C,kBAAL,CAAwB,KAAxB,CAAD,IAAmC,CAACD,MAApC,IAA8C9C,UAAU,CAACC,YAAX,KAA4B,KAAK4D,SAAnF,EAA8F;AAC1F,aAAOvF,UAAU,CAACiC,OAAX,CAAmBU,OAAnB,EAAP;AACH;;AACD,QAAI,CAAC,KAAKE,gBAAL,CAAsB+B,GAAtB,CAA0BlD,UAAU,CAACC,YAArC,CAAL,EAAyD;AACrDzB,MAAAA,KAAK,CAACwE,IAAN,CAAW,4EAAX,EAAyFR,KAAzF;;AACA,WAAKxD,iBAAL,CAAuBsC,IAAvB,CAA4BkB,KAA5B;;AACA,aAAOlE,UAAU,CAACiC,OAAX,CAAmBU,OAAnB,EAAP;AACH;;AACD,QAAII,cAAc,GAAG,KAAKF,gBAAL,CAAsBpB,GAAtB,CAA0BC,UAAU,CAACC,YAArC,CAArB;;AACAzB,IAAAA,KAAK,CAAC6B,IAAN,CAAW,wBAAX;AACA,WAAO,KAAKqD,qBAAL,CAA2BZ,MAA3B,EAAmCrB,IAAnC,CAAwC,UAAU2B,UAAV,EAAsB;AACjE/B,MAAAA,cAAc,CAAC+B,UAAf,GAA4BA,UAA5B;AACA5E,MAAAA,KAAK,CAAC6B,IAAN,CAAW,iCAAX,EAA8CgB,cAAc,CAAC+B,UAA7D;AACAA,MAAAA,UAAU,CAACN,MAAX,CACKgB,cADL,GAEKC,SAFL,GAGK3C,OAHL,CAGa,UAAUU,UAAV,EAAsB;AAC/BjD,QAAAA,KAAK,CAACmF,oBAAN,CAA2B3C,cAA3B,EAA2CS,UAA3C;AACH,OALD;AAMA,aAAOjD,KAAK,CAACoF,yBAAN,CAAgC5C,cAAhC,CAAP;AACH,KAVM,CAAP;AAWH,GA7BD;;AA8BAtD,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6BsC,yBAA7B,GAAyD,UAAUyE,eAAV,EAA2B;AAChF,QAAIrF,KAAK,GAAG,IAAZ;;AACAL,IAAAA,KAAK,CAAC6B,IAAN,CAAW,2BAAX;AACA,WAAO,KAAK8D,sBAAL,CACFC,qBADE,CACoBF,eADpB,EAEFzC,IAFE,CAEG,UAAUU,WAAV,EAAuB;AAC7B,UAAIW,MAAM,GAAG;AAAEuB,QAAAA,WAAW,EAAE,IAAf;AAAqBC,QAAAA,WAAW,EAAE;AAAlC,OAAb;;AACA,UAAInC,WAAJ,EAAiB;AACb3D,QAAAA,KAAK,CAAC6B,IAAN,CAAW,mCAAX,EAAgD8B,WAAhD;AACAA,QAAAA,WAAW,CAAC4B,SAAZ,GAAwB3C,OAAxB,CAAgC,UAAUmD,KAAV,EAAiB;AAC7C,cAAIA,KAAK,CAACC,IAAN,KAAe,OAAnB,EAA4B;AACxB1B,YAAAA,MAAM,CAACuB,WAAP,GAAqBE,KAArB;AACH,WAFD,MAGK,IAAIA,KAAK,CAACC,IAAN,KAAe,OAAnB,EAA4B;AAC7B1B,YAAAA,MAAM,CAACwB,WAAP,GAAqBC,KAArB;AACH;AACJ,SAPD;AAQH,OAVD,MAWK,IAAI1F,KAAK,CAACiC,cAAN,CAAqBD,UAArB,KAAoC3C,gBAAgB,CAACuG,iBAAjB,CAAmCC,IAA3E,EAAiF;AAClFlG,QAAAA,KAAK,CAACwE,IAAN,CAAW,6DAAX,EAA0EkB,eAA1E;AACH;;AACD,aAAOpB,MAAP;AACH,KAnBM,CAAP;AAoBH,GAvBD;;AAwBA/E,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6BuC,oBAA7B,GAAoD,UAAUoD,MAAV,EAAkB;AAClE,QAAIjE,KAAK,GAAG,IAAZ;;AACA,QAAI8F,QAAQ,GAAG;AACXN,MAAAA,WAAW,EAAEvB,MAAM,CAACuB,WAAP,GAAqBvB,MAAM,CAACuB,WAA5B,GAA0C,KAD5C;AAEXC,MAAAA,WAAW,EAAExB,MAAM,CAACwB,WAAP,GAAqBxB,MAAM,CAACwB,WAA5B,GAA0C,KAF5C;AAGXM,MAAAA,YAAY,EAAE,CAAC,CAAC9B,MAAM,CAACwB,WAHZ;AAIXO,MAAAA,YAAY,EAAE,CAAC,CAAC/B,MAAM,CAACuB;AAJZ,KAAf;AAMA,WAAO,IAAI/F,UAAU,CAACiC,OAAf,CAAuB,UAAUU,OAAV,EAAmBT,MAAnB,EAA2B;AACrD,UAAIsE,WAAW,GAAGjG,KAAK,CAACC,EAAN,CAASiG,aAAT,CAAuB,EAAvB,EAA2BJ,QAA3B,EAAqC,UAAUrE,KAAV,EAAiB;AACpE,YAAIA,KAAJ,EAAW;AACPE,UAAAA,MAAM,CAACF,KAAD,CAAN;AACA;AACH;;AACDwE,QAAAA,WAAW,CAACvC,EAAZ,CAAe,iBAAf,EAAkC,UAAUC,KAAV,EAAiB;AAC/ChE,UAAAA,KAAK,CAAC6B,IAAN,CAAW,4BAAX,EAAyCmC,KAAzC;AACA,cAAIvC,YAAY,GAAG1B,KAAK,WAAL,CAAciE,KAAd,EAAqB,gCAArB,CAAnB;;AACA3D,UAAAA,KAAK,CAACU,oBAAN,CAA2BU,YAA3B,EAH+C,CAI/C;AACA;;;AACAuC,UAAAA,KAAK,CAACwC,cAAN;AACH,SAPD;AAQA/D,QAAAA,OAAO,CAAC6D,WAAD,CAAP;AACH,OAdiB,CAAlB;AAeH,KAhBM,CAAP;AAiBH,GAzBD;;AA0BA/G,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6BwC,wBAA7B,GAAwD,UAAU6C,KAAV,EAAiB;AACrE,QAAI3D,KAAK,GAAG,IAAZ;;AACAL,IAAAA,KAAK,CAAC6B,IAAN,CAAW,0BAAX,EAAuCmC,KAAvC;AACA,QAAIxC,UAAU,GAAGwC,KAAK,CAACxC,UAAvB;;AACA,QAAI,CAAC,KAAK+C,kBAAL,CAAwB,KAAxB,CAAD,IAAmC,CAAC/C,UAAxC,EAAoD;AAChD;AACH;;AACD,QAAIkE,eAAe,GAAGe,IAAI,CAACC,KAAL,CAAWlF,UAAU,CAACmF,IAAtB,EAA4BtE,UAAlD;AACA,SAAKpB,yBAAL,CAA+ByE,eAA/B,EACKzC,IADL,CACU,UAAU2D,OAAV,EAAmB;AACzB,UAAI/D,cAAc,GAAG;AACjB8B,QAAAA,MAAM,EAAEnD,UAAU,CAACC,YADF;AAEjBgC,QAAAA,QAAQ,EAAEiC,eAFO;AAGjBmB,QAAAA,QAAQ,EAAExG,KAAK,CAACiC,cAAN,CAAqBwE,UAArB,KAAoCpH,gBAAgB,CAACqH,iBAAjB,CAAmCC,SAAvE,GACJtH,gBAAgB,CAACqH,iBAAjB,CAAmCE,KAD/B,GAEJvH,gBAAgB,CAACqH,iBAAjB,CAAmCC,SALxB;AAMjBxF,QAAAA,UAAU,EAAEA,UANK;AAOjBuD,QAAAA,SAAS,EAAE,IAPM;AAQjBH,QAAAA,UAAU,EAAE,IARK;AASjBsC,QAAAA,iBAAiB,EAAE,EATF;AAUjBjC,QAAAA,WAAW,EAAE2B,OAVI;AAWjBO,QAAAA,mBAAmB,EAAE;AAXJ,OAArB;;AAaA,UAAI3F,UAAU,CAACC,YAAX,KAA4BpB,KAAK,CAACgF,SAAlC,IAAgD,CAACuB,OAAO,CAACf,WAAT,IAAwB,CAACe,OAAO,CAACd,WAArF,EAAmG;AAC/F9F,QAAAA,KAAK,CAAC6B,IAAN,CAAW,+CAAX,EAA4DgB,cAA5D;AACA,eAAOA,cAAP;AACH;;AACD,aAAOxC,KAAK,CAACa,oBAAN,CAA2B0F,OAA3B,EAAoC3D,IAApC,CAAyC,UAAU8B,SAAV,EAAqB;AACjElC,QAAAA,cAAc,CAACkC,SAAf,GAA2BA,SAA3B;AACA/E,QAAAA,KAAK,CAAC6B,IAAN,CAAW,4CAAX,EAAyDgB,cAAzD;AACA,eAAOA,cAAP;AACH,OAJM,CAAP;AAKH,KAxBD,EAyBKI,IAzBL,CAyBU,UAAUJ,cAAV,EAA0B;AAChCxC,MAAAA,KAAK,CAACsC,gBAAN,CAAuByE,GAAvB,CAA2BvE,cAAc,CAAC8B,MAA1C,EAAkD9B,cAAlD;;AACA,UAAIrB,UAAU,CAACC,YAAX,KAA4BpB,KAAK,CAACgF,SAAtC,EAAiD;AAC7CrF,QAAAA,KAAK,CAAC6B,IAAN,CAAW,oCAAX;AACA,eAAOxB,KAAK,CAACG,iBAAN,CACF6G,MADE,CACK,UAAUC,YAAV,EAAwBC,WAAxB,EAAqC;AAC7C,iBAAOD,YAAY,CAACrE,IAAb,CAAkB,YAAY;AAAE,mBAAO5C,KAAK,CAACgB,oBAAN,CAA2BkG,WAA3B,CAAP;AAAiD,WAAjF,CAAP;AACH,SAHM,EAGJzH,UAAU,CAACiC,OAAX,CAAmBU,OAAnB,EAHI,EAIFQ,IAJE,CAIG,YAAY;AAClB,cAAIJ,cAAc,CAACkC,SAAnB,EAA8B;AAC1B/E,YAAAA,KAAK,CAAC6B,IAAN,CAAW,8CAAX;AACA,mBAAOxB,KAAK,CAACE,QAAN,CAAeiH,OAAf,CAAuB3E,cAAc,CAACkC,SAAtC,WAAuD,UAAUxC,GAAV,EAAe;AACzEvC,cAAAA,KAAK,CAAC6B,IAAN,CAAW,sBAAX,EAAmCgB,cAAc,CAACkC,SAAlD;;AACA,kBAAIlC,cAAc,CAACkC,SAAnB,EAA8B;AAC1B/E,gBAAAA,KAAK,CAAC6B,IAAN,CAAW,iCAAX;;AACAxB,gBAAAA,KAAK,CAACE,QAAN,CAAeyE,SAAf,CAAyBnC,cAAc,CAACkC,SAAxC;AACH;;AACD,oBAAMxC,GAAN;AACH,aAPM,CAAP;AAQH;;AACD,iBAAOzC,UAAU,CAACiC,OAAX,CAAmBU,OAAnB,EAAP;AACH,SAjBM,CAAP;AAkBH;AACJ,KAhDD,WAiDW,UAAUX,KAAV,EAAiB;AACxB9B,MAAAA,KAAK,CAAC8B,KAAN,CAAY,oCAAZ,EAAkDA,KAAlD;AACH,KAnDD;AAoDH,GA5DD;;AA6DAvC,EAAAA,kBAAkB,CAACZ,SAAnB,CAA6B4F,kBAA7B,GAAkD,UAAUkD,WAAV,EAAuB;AACrE,QAAIA,WAAW,KAAK,KAAK,CAAzB,EAA4B;AAAEA,MAAAA,WAAW,GAAG,IAAd;AAAqB;;AACnD,QAAIC,SAAS,GAAG,CAAC,EAAE,KAAKnH,QAAL,IAAiB,KAAKA,QAAL,CAAciB,UAA/B,IAA6C,KAAKjB,QAAL,CAAciB,UAAd,CAAyBC,YAAxE,CAAjB;AACA,WAAO5B,QAAQ,CAAC8H,cAAT,CAAwBD,SAAxB,EAAmC,qCAAnC,EAA0ED,WAA1E,CAAP;AACH,GAJD;;AAKA,SAAOlI,kBAAP;AACH,CAvXuC,CAuXtCC,kBAAkB,CAACoI,gBAvXmB,CAAxC;;AAwXAvI,OAAO,CAACE,kBAAR,GAA6BA,kBAA7B","file":"MediaServer.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MediaServerSession = void 0;\nvar MediaSessionBase_1 = require(\"./MediaSessionBase\");\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar openvidu_browser_1 = require(\"@techsee/openvidu-browser\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar guards_1 = require(\"@techsee/techsee-common/lib/core/guards\");\nvar bluebird_1 = require(\"bluebird\");\nvar get_1 = __importDefault(require(\"lodash/get\"));\nvar trace = MediaTracer_1.getMediaTracer('MediaServerSession');\nvar MediaServerSession = /** @class */ (function (_super) {\n __extends(MediaServerSession, _super);\n function MediaServerSession(sessionParams, streamFactory) {\n var _this = _super.call(this, sessionParams, streamFactory) || this;\n _this.OV = null;\n _this._session = null;\n _this._lastStreamEvents = [];\n _this._credentials = sessionParams.credentials;\n _this.connect = _this.connect.bind(_this);\n _this.disconnect = _this.disconnect.bind(_this);\n _this.onMediaStreamDestroyed = _this.onMediaStreamDestroyed.bind(_this);\n _this.onPublisherDestroyed = _this.onPublisherDestroyed.bind(_this);\n _this.onMediaStreamRenewed = _this.onMediaStreamRenewed.bind(_this);\n _this.createStreamForPublishing = _this.createStreamForPublishing.bind(_this);\n _this.createMediaPublisher = _this.createMediaPublisher.bind(_this);\n _this.connectionCreatedHandler = _this.connectionCreatedHandler.bind(_this);\n _this.connectionDestroyedHandler = _this.connectionDestroyedHandler.bind(_this);\n _this.streamCreatedHandler = _this.streamCreatedHandler.bind(_this);\n _this.streamDestroyedHandler = _this.streamDestroyedHandler.bind(_this);\n return _this;\n }\n Object.defineProperty(MediaServerSession.prototype, \"ownPeerId\", {\n get: function () {\n return this._session && this._session.connection ? this._session.connection.connectionId : '';\n },\n enumerable: false,\n configurable: true\n });\n MediaServerSession.prototype.connect = function (connectOnly) {\n trace.info('Connect to session', this._credentials);\n if (this._session) {\n trace.error('Session already exists');\n return bluebird_1.Promise.reject('Cannot connect to session while another session is active');\n }\n // const iceServers = this._credentials.ice.map((item: any) => ({\n // urls: item.url,\n // username: item.login,\n // credential: item.password\n // }));\n this.OV = new openvidu_browser_1.OpenVidu();\n // this.OV.setAdvancedConfiguration({ iceServers });\n this._session = this.OV.initSession();\n this.initSessionEvents();\n return this._session\n .connect(this._credentials.token, { clientRole: this._sessionParams.clientRole })\n .catch(function (err) {\n trace.error('Error to connect to session Media Server: ', err);\n throw err;\n });\n };\n MediaServerSession.prototype.sessionDisconnect = function () {\n if (this._session) {\n return this._session.disconnect(true);\n }\n };\n MediaServerSession.prototype.disconnect = function () {\n var _this = this;\n return new bluebird_1.Promise(function (resolve) {\n trace.info('Disconnecting from session');\n var promiseDisconnect = [];\n _this._peerConnections.forEach(function (peerConnection) {\n promiseDisconnect.push(_this.destroyPeerConnection(peerConnection));\n });\n return bluebird_1.Promise.all(promiseDisconnect).then(function () {\n if (!_this._session) {\n trace.info('No active session - resolving');\n resolve();\n return;\n }\n _this.removeSessionEvent();\n _this._session.disconnect();\n _this._lastStreamEvents = [];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete _this._session;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete _this.OV;\n resolve();\n });\n });\n };\n MediaServerSession.prototype.removeSessionEvent = function () {\n if (!this._session) {\n return;\n }\n this._session.off('connectionCreated');\n this._session.off('streamCreated');\n this._session.off('streamDestroyed');\n this._session.off('connectionDestroyed');\n this._session.off('sessionDisconnected');\n this._session.off('recordingStarted');\n this._session.off('recordingStopped');\n this._sessionParams.removeHandlers && this._sessionParams.removeHandlers();\n trace.info('Remove Events Listener');\n };\n MediaServerSession.prototype.getRemoteTrackStats = function (mediaTrack) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore// @ts-ignore\n return bluebird_1.Promise.resolve(undefined);\n };\n MediaServerSession.prototype.onMediaStreamDestroyed = function (clientRole) {\n var _this = this;\n trace.info('onMediaStreamDestroyed');\n var promises = [];\n this._peerConnections.forEach(function (peerConnection) {\n if (peerConnection.peerRole === clientRole) {\n promises.push(_this.destroyPublisherOnPeerConnection(peerConnection));\n }\n });\n return bluebird_1.Promise.all(promises).then(function () { return trace.info('onMediaStreamDestroyed: Success'); });\n };\n MediaServerSession.prototype.onPublisherDestroyed = function (connectionId) {\n trace.info('onPublisherDestroyed');\n var peerConnection = this._peerConnections.get(connectionId);\n if (!peerConnection) {\n return bluebird_1.Promise.resolve();\n }\n return this.destroyPublisherOnPeerConnection(peerConnection);\n };\n MediaServerSession.prototype.onMediaStreamRenewed = function (clientRole, mediaStream) {\n return bluebird_1.Promise.resolve(undefined);\n };\n MediaServerSession.prototype.replaceStreamTracks = function (mediaStream) {\n return bluebird_1.Promise.reject(new Error('Not implemented'));\n };\n MediaServerSession.prototype.initSessionEvents = function () {\n var _this = this;\n if (!this._session) {\n return;\n }\n this._sessionParams.initHandlers && this._sessionParams.initHandlers();\n this._lastStreamEvents = [];\n this._session.on('connectionCreated', this.connectionCreatedHandler);\n this._session.on('streamCreated', this.streamCreatedHandler);\n this._session.on('streamDestroyed', this.streamDestroyedHandler);\n this._session.on('connectionDestroyed', this.connectionDestroyedHandler);\n this._session.on('recordingStarted', function (event) {\n trace.info('recordingStarted event', event);\n _this.emitEvent(MediaSessionBase_1.recordingEvents.RECORD_STARTED, event);\n });\n this._session.on('recordingStopped', function (event) {\n trace.info('recordingStopped event', event);\n _this.emitEvent(MediaSessionBase_1.recordingEvents.RECORD_STOPPED, event);\n });\n this._session.on('reconnecting', function () {\n trace.info('reconnecting event');\n _this.emitEvent(MediaSessionBase_1.recordingEvents.RECONNECTING);\n });\n this._session.on('sessionDisconnected', this.disconnect);\n };\n MediaServerSession.prototype.streamDestroyedHandler = function (event) {\n trace.info('streamDestroyedHandler', event);\n var stream = event.stream;\n if (!this.sessionExistsGuard(false) || !stream) {\n return;\n }\n var peerConnection = this._peerConnections.get(stream.connection.connectionId);\n if (!peerConnection) {\n trace.warn('Peer connection for remote stream not found');\n return;\n }\n this.destroySubscriberOnPeerConnection(peerConnection).catch(function () { return undefined; });\n };\n MediaServerSession.prototype.connectionDestroyedHandler = function (event) {\n trace.info('connectionDestroyedHandler', event);\n var connection = event.connection;\n if (!this.sessionExistsGuard(false) || !connection) {\n return;\n }\n if (this._peerConnections.has(connection.connectionId)) {\n var peerConnection = this._peerConnections.get(connection.connectionId);\n this.destroySubscriberOnPeerConnection(peerConnection).catch(function () { return undefined; });\n }\n };\n MediaServerSession.prototype.destroyPeerConnection = function (peerConnection) {\n trace.info('destroyPeerConnection');\n this._peerConnections.delete(peerConnection.peerId);\n return bluebird_1.Promise.all([\n this.destroyPublisherOnPeerConnection(peerConnection),\n this.destroySubscriberOnPeerConnection(peerConnection)\n ])\n .then(function () { return undefined; })\n .catch(function () {\n trace.warn('destroyPeerConnection - something wrong with destroy');\n });\n };\n MediaServerSession.prototype.destroySubscriberOnPeerConnection = function (peerConnection) {\n trace.info('destroySubscriberOnPeerConnection', peerConnection);\n if (this.sessionExistsGuard(false) && peerConnection.subscriber) {\n this._session.unsubscribe(peerConnection.subscriber);\n }\n trace.info('destroySubscriberOnPeerConnection- before unregisterPeersRemoteMediaTracks');\n return this.unregisterPeersRemoteMediaTracks(peerConnection)\n .catch(function () { return trace.warn('Error removing remote streams from peerConnection'); })\n .then(function () {\n trace.info('destroySubscriberOnPeerConnection- unregisterPeersRemoteMediaTracks successfully');\n peerConnection.subscriber = null;\n });\n };\n MediaServerSession.prototype.destroyPublisherOnPeerConnection = function (peerConnection) {\n trace.info('destroyPublisherOnPeerConnection');\n if (this.sessionExistsGuard(false) && peerConnection.publisher) {\n trace.info('destroyPublisherOnPeerConnection- unpublish!');\n this._session.unpublish(peerConnection.publisher);\n }\n peerConnection.publisher = null;\n peerConnection.localStream = null;\n return bluebird_1.Promise.resolve();\n };\n MediaServerSession.prototype.createMediaSubscriber = function (remoteStream) {\n var _this = this;\n trace.info('createMediaSubscriber');\n return new bluebird_1.Promise(function (resolve, reject) {\n if (!_this.sessionExistsGuard(false)) {\n return reject('Session not exists');\n }\n trace.info('Before create subscriber');\n var subscriber = _this._session.subscribe(remoteStream, '', {}, function (err) {\n if (err) {\n trace.warn('Error creating subscriber', err);\n return reject(err);\n }\n trace.info('create subscriber successfully', subscriber);\n return resolve(subscriber);\n });\n });\n };\n MediaServerSession.prototype.streamCreatedHandler = function (event) {\n var _this = this;\n if (!event) {\n return bluebird_1.Promise.resolve();\n }\n trace.info('streamCreatedHandler', event.stream);\n var stream = event.stream;\n var connection = (stream || { connection: null }).connection;\n if (!this.sessionExistsGuard(false) || !stream || connection.connectionId === this.ownPeerId) {\n return bluebird_1.Promise.resolve();\n }\n if (!this._peerConnections.has(connection.connectionId)) {\n trace.warn('Unexpected case, connection should exist, add to streams to subscribe list', event);\n this._lastStreamEvents.push(event);\n return bluebird_1.Promise.resolve();\n }\n var peerConnection = this._peerConnections.get(connection.connectionId);\n trace.info('Subscribing the stream');\n return this.createMediaSubscriber(stream).then(function (subscriber) {\n peerConnection.subscriber = subscriber;\n trace.info('Registering remote media tracks', peerConnection.subscriber);\n subscriber.stream\n .getMediaStream()\n .getTracks()\n .forEach(function (mediaTrack) {\n _this.addRemoteTrackToPeer(peerConnection, mediaTrack);\n });\n return _this.registerPeersRemoteTracks(peerConnection);\n });\n };\n MediaServerSession.prototype.createStreamForPublishing = function (destinationRole) {\n var _this = this;\n trace.info('createStreamForPublishing');\n return this._sessionStreamsManager\n .getMediaStreamForRole(destinationRole)\n .then(function (mediaStream) {\n var stream = { videoSource: null, audioSource: null };\n if (mediaStream) {\n trace.info('Media stream found for publishing', mediaStream);\n mediaStream.getTracks().forEach(function (track) {\n if (track.kind === 'video') {\n stream.videoSource = track;\n }\n else if (track.kind === 'audio') {\n stream.audioSource = track;\n }\n });\n }\n else if (_this._sessionParams.clientRole === MediaConstants_1.SessionClientRole.USER) {\n trace.warn('No local media was found for publishing to destinationRole:', destinationRole);\n }\n return stream;\n });\n };\n MediaServerSession.prototype.createMediaPublisher = function (stream) {\n var _this = this;\n var ovParams = {\n videoSource: stream.videoSource ? stream.videoSource : false,\n audioSource: stream.audioSource ? stream.audioSource : false,\n publishAudio: !!stream.audioSource,\n publishVideo: !!stream.videoSource\n };\n return new bluebird_1.Promise(function (resolve, reject) {\n var ovPublisher = _this.OV.initPublisher('', ovParams, function (error) {\n if (error) {\n reject(error);\n return;\n }\n ovPublisher.on('streamDestroyed', function (event) {\n trace.info('Publisher stream destroyed', event);\n var connectionId = get_1.default(event, 'stream.connection.connectionId');\n _this.onPublisherDestroyed(connectionId);\n //We preventing the default, in order to prevent stop the stream by OV.\n //We managing streams by ourselves and if we allow OV to close the stream, it cannot be reused.\n event.preventDefault();\n });\n resolve(ovPublisher);\n });\n });\n };\n MediaServerSession.prototype.connectionCreatedHandler = function (event) {\n var _this = this;\n trace.info('connectionCreatedHandler', event);\n var connection = event.connection;\n if (!this.sessionExistsGuard(false) || !connection) {\n return;\n }\n var destinationRole = JSON.parse(connection.data).clientRole;\n this.createStreamForPublishing(destinationRole)\n .then(function (streams) {\n var peerConnection = {\n peerId: connection.connectionId,\n peerRole: destinationRole,\n peerType: _this._sessionParams.clientType === MediaConstants_1.SessionClientType.INITIATOR\n ? MediaConstants_1.SessionClientType.GUEST\n : MediaConstants_1.SessionClientType.INITIATOR,\n connection: connection,\n publisher: null,\n subscriber: null,\n remoteMediaTracks: [],\n localStream: streams,\n connectionTimoutPrt: null\n };\n if (connection.connectionId !== _this.ownPeerId || (!streams.videoSource && !streams.audioSource)) {\n trace.info('Peer connection without publisher was created', peerConnection);\n return peerConnection;\n }\n return _this.createMediaPublisher(streams).then(function (publisher) {\n peerConnection.publisher = publisher;\n trace.info('Peer connection with publisher was created', peerConnection);\n return peerConnection;\n });\n })\n .then(function (peerConnection) {\n _this._peerConnections.set(peerConnection.peerId, peerConnection);\n if (connection.connectionId === _this.ownPeerId) {\n trace.info('Before subscribe the event streams');\n return _this._lastStreamEvents\n .reduce(function (promiseChain, streamEvent) {\n return promiseChain.then(function () { return _this.streamCreatedHandler(streamEvent); });\n }, bluebird_1.Promise.resolve())\n .then(function () {\n if (peerConnection.publisher) {\n trace.info('Starting publish to peerConnection.publisher');\n return _this._session.publish(peerConnection.publisher).catch(function (err) {\n trace.info('Error during publish', peerConnection.publisher);\n if (peerConnection.publisher) {\n trace.info('Error during publish- unpublish');\n _this._session.unpublish(peerConnection.publisher);\n }\n throw err;\n });\n }\n return bluebird_1.Promise.resolve();\n });\n }\n })\n .catch(function (error) {\n trace.error('Error handling new peer connection', error);\n });\n };\n MediaServerSession.prototype.sessionExistsGuard = function (shouldThrow) {\n if (shouldThrow === void 0) { shouldThrow = true; }\n var connected = !!(this._session && this._session.connection && this._session.connection.connectionId);\n return guards_1.throwableGuard(connected, 'There no MediaServer session exists', shouldThrow);\n };\n return MediaServerSession;\n}(MediaSessionBase_1.MediaSessionBase));\nexports.MediaServerSession = MediaServerSession;\n\n//# sourceMappingURL=MediaServer.js.map\n"]}
|
|
1
|
+
{"version":3,"sources":["MediaSession/MediaServer.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__importDefault","mod","__esModule","defineProperty","exports","value","MediaServerSession","MediaSessionBase_1","require","MediaConstants_1","openvidu_browser_1","MediaTracer_1","guards_1","bluebird_1","get_1","trace","getMediaTracer","_super","sessionParams","streamFactory","_this","OV","_session","_lastStreamEvents","_credentials","credentials","connect","bind","disconnect","onMediaStreamDestroyed","onPublisherDestroyed","onMediaStreamRenewed","createStreamForPublishing","createMediaPublisher","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","get","connection","connectionId","enumerable","configurable","connectOnly","info","error","Promise","reject","OpenVidu","initSession","initSessionEvents","token","clientRole","_sessionParams","err","sessionDisconnect","resolve","promiseDisconnect","_peerConnections","forEach","peerConnection","push","destroyPeerConnection","all","then","removeSessionEvent","off","removeHandlers","getRemoteTrackStats","mediaTrack","undefined","promises","peerRole","destroyPublisherOnPeerConnection","mediaStream","replaceStreamTracks","Error","initHandlers","on","event","emitEvent","recordingEvents","RECORD_STARTED","RECORD_STOPPED","RECONNECTING","stream","sessionExistsGuard","warn","destroySubscriberOnPeerConnection","has","peerId","subscriber","unsubscribe","unregisterPeersRemoteMediaTracks","publisher","unpublish","localStream","createMediaSubscriber","remoteStream","subscribe","ownPeerId","getMediaStream","getTracks","addRemoteTrackToPeer","registerPeersRemoteTracks","destinationRole","_sessionStreamsManager","getMediaStreamForRole","videoSource","audioSource","track","kind","SessionClientRole","USER","ovParams","publishAudio","publishVideo","ovPublisher","initPublisher","preventDefault","JSON","parse","data","streams","peerType","clientType","SessionClientType","INITIATOR","GUEST","remoteMediaTracks","connectionTimoutPrt","set","reduce","promiseChain","streamEvent","publish","shouldThrow","connected","throwableGuard","MediaSessionBase"],"mappings":"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","file":"MediaServer.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MediaServerSession = void 0;\nvar MediaSessionBase_1 = require(\"./MediaSessionBase\");\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar openvidu_browser_1 = require(\"@techsee/openvidu-browser\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar guards_1 = require(\"@techsee/techsee-common/lib/core/guards\");\nvar bluebird_1 = require(\"bluebird\");\nvar get_1 = __importDefault(require(\"lodash/get\"));\nvar trace = MediaTracer_1.getMediaTracer('MediaServerSession');\nvar MediaServerSession = /** @class */ (function (_super) {\n __extends(MediaServerSession, _super);\n function MediaServerSession(sessionParams, streamFactory) {\n var _this = _super.call(this, sessionParams, streamFactory) || this;\n _this.OV = null;\n _this._session = null;\n _this._lastStreamEvents = [];\n _this._credentials = sessionParams.credentials;\n _this.connect = _this.connect.bind(_this);\n _this.disconnect = _this.disconnect.bind(_this);\n _this.onMediaStreamDestroyed = _this.onMediaStreamDestroyed.bind(_this);\n _this.onPublisherDestroyed = _this.onPublisherDestroyed.bind(_this);\n _this.onMediaStreamRenewed = _this.onMediaStreamRenewed.bind(_this);\n _this.createStreamForPublishing = _this.createStreamForPublishing.bind(_this);\n _this.createMediaPublisher = _this.createMediaPublisher.bind(_this);\n _this.connectionCreatedHandler = _this.connectionCreatedHandler.bind(_this);\n _this.connectionDestroyedHandler = _this.connectionDestroyedHandler.bind(_this);\n _this.streamCreatedHandler = _this.streamCreatedHandler.bind(_this);\n _this.streamDestroyedHandler = _this.streamDestroyedHandler.bind(_this);\n return _this;\n }\n Object.defineProperty(MediaServerSession.prototype, \"ownPeerId\", {\n get: function () {\n return this._session && this._session.connection ? this._session.connection.connectionId : '';\n },\n enumerable: false,\n configurable: true\n });\n MediaServerSession.prototype.connect = function (connectOnly) {\n trace.info('Connect to session', this._credentials);\n if (this._session) {\n trace.error('Session already exists');\n return bluebird_1.Promise.reject('Cannot connect to session while another session is active');\n }\n // const iceServers = this._credentials.ice.map((item: any) => ({\n // urls: item.url,\n // username: item.login,\n // credential: item.password\n // }));\n this.OV = new openvidu_browser_1.OpenVidu();\n // this.OV.setAdvancedConfiguration({ iceServers });\n this._session = this.OV.initSession();\n this.initSessionEvents();\n return this._session\n .connect(this._credentials.token, { clientRole: this._sessionParams.clientRole })\n .catch(function (err) {\n trace.error('Error to connect to session Media Server: ', err);\n throw err;\n });\n };\n MediaServerSession.prototype.sessionDisconnect = function () {\n if (this._session) {\n return this._session.disconnect(true);\n }\n };\n MediaServerSession.prototype.disconnect = function () {\n var _this = this;\n return new bluebird_1.Promise(function (resolve) {\n trace.info('Disconnecting from session');\n var promiseDisconnect = [];\n _this._peerConnections.forEach(function (peerConnection) {\n promiseDisconnect.push(_this.destroyPeerConnection(peerConnection));\n });\n return bluebird_1.Promise.all(promiseDisconnect).then(function () {\n if (!_this._session) {\n trace.info('No active session - resolving');\n resolve();\n return;\n }\n _this.removeSessionEvent();\n _this._session.disconnect();\n _this._lastStreamEvents = [];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete _this._session;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete _this.OV;\n resolve();\n });\n });\n };\n MediaServerSession.prototype.removeSessionEvent = function () {\n if (!this._session) {\n return;\n }\n this._session.off('connectionCreated');\n this._session.off('streamCreated');\n this._session.off('streamDestroyed');\n this._session.off('connectionDestroyed');\n this._session.off('sessionDisconnected');\n this._session.off('recordingStarted');\n this._session.off('recordingStopped');\n this._sessionParams.removeHandlers && this._sessionParams.removeHandlers();\n trace.info('Remove Events Listener');\n };\n MediaServerSession.prototype.getRemoteTrackStats = function (mediaTrack) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore// @ts-ignore\n return bluebird_1.Promise.resolve(undefined);\n };\n MediaServerSession.prototype.onMediaStreamDestroyed = function (clientRole) {\n var _this = this;\n trace.info('onMediaStreamDestroyed');\n var promises = [];\n this._peerConnections.forEach(function (peerConnection) {\n if (peerConnection.peerRole === clientRole) {\n promises.push(_this.destroyPublisherOnPeerConnection(peerConnection));\n }\n });\n return bluebird_1.Promise.all(promises).then(function () { return trace.info('onMediaStreamDestroyed: Success'); });\n };\n MediaServerSession.prototype.onPublisherDestroyed = function (connectionId) {\n trace.info('onPublisherDestroyed');\n var peerConnection = this._peerConnections.get(connectionId);\n if (!peerConnection) {\n return bluebird_1.Promise.resolve();\n }\n return this.destroyPublisherOnPeerConnection(peerConnection);\n };\n MediaServerSession.prototype.onMediaStreamRenewed = function (clientRole, mediaStream) {\n return bluebird_1.Promise.resolve(undefined);\n };\n MediaServerSession.prototype.replaceStreamTracks = function (mediaStream) {\n return bluebird_1.Promise.reject(new Error('Not implemented'));\n };\n MediaServerSession.prototype.initSessionEvents = function () {\n var _this = this;\n if (!this._session) {\n return;\n }\n this._sessionParams.initHandlers && this._sessionParams.initHandlers();\n this._lastStreamEvents = [];\n this._session.on('connectionCreated', this.connectionCreatedHandler);\n this._session.on('streamCreated', this.streamCreatedHandler);\n this._session.on('streamDestroyed', this.streamDestroyedHandler);\n this._session.on('connectionDestroyed', this.connectionDestroyedHandler);\n this._session.on('recordingStarted', function (event) {\n trace.info('recordingStarted event', event);\n _this.emitEvent(MediaSessionBase_1.recordingEvents.RECORD_STARTED, event);\n });\n this._session.on('recordingStopped', function (event) {\n trace.info('recordingStopped event', event);\n _this.emitEvent(MediaSessionBase_1.recordingEvents.RECORD_STOPPED, event);\n });\n this._session.on('reconnecting', function () {\n trace.info('reconnecting event');\n _this.emitEvent(MediaSessionBase_1.recordingEvents.RECONNECTING);\n });\n this._session.on('sessionDisconnected', this.disconnect);\n };\n MediaServerSession.prototype.streamDestroyedHandler = function (event) {\n trace.info('streamDestroyedHandler', event);\n var stream = event.stream;\n if (!this.sessionExistsGuard(false) || !stream) {\n return;\n }\n var peerConnection = this._peerConnections.get(stream.connection.connectionId);\n if (!peerConnection) {\n trace.warn('Peer connection for remote stream not found');\n return;\n }\n this.destroySubscriberOnPeerConnection(peerConnection).catch(function () { return undefined; });\n };\n MediaServerSession.prototype.connectionDestroyedHandler = function (event) {\n trace.info('connectionDestroyedHandler', event);\n var connection = event.connection;\n if (!this.sessionExistsGuard(false) || !connection) {\n return;\n }\n if (this._peerConnections.has(connection.connectionId)) {\n var peerConnection = this._peerConnections.get(connection.connectionId);\n this.destroySubscriberOnPeerConnection(peerConnection).catch(function () { return undefined; });\n }\n };\n MediaServerSession.prototype.destroyPeerConnection = function (peerConnection) {\n trace.info('destroyPeerConnection');\n this._peerConnections.delete(peerConnection.peerId);\n return bluebird_1.Promise.all([\n this.destroyPublisherOnPeerConnection(peerConnection),\n this.destroySubscriberOnPeerConnection(peerConnection)\n ])\n .then(function () { return undefined; })\n .catch(function () {\n trace.warn('destroyPeerConnection - something wrong with destroy');\n });\n };\n MediaServerSession.prototype.destroySubscriberOnPeerConnection = function (peerConnection) {\n trace.info('destroySubscriberOnPeerConnection', peerConnection);\n if (this.sessionExistsGuard(false) && peerConnection.subscriber) {\n this._session.unsubscribe(peerConnection.subscriber);\n }\n trace.info('destroySubscriberOnPeerConnection- before unregisterPeersRemoteMediaTracks');\n return this.unregisterPeersRemoteMediaTracks(peerConnection)\n .catch(function () { return trace.warn('Error removing remote streams from peerConnection'); })\n .then(function () {\n trace.info('destroySubscriberOnPeerConnection- unregisterPeersRemoteMediaTracks successfully');\n peerConnection.subscriber = null;\n });\n };\n MediaServerSession.prototype.destroyPublisherOnPeerConnection = function (peerConnection) {\n trace.info('destroyPublisherOnPeerConnection');\n if (this.sessionExistsGuard(false) && peerConnection.publisher) {\n trace.info('destroyPublisherOnPeerConnection- unpublish!');\n this._session.unpublish(peerConnection.publisher);\n }\n peerConnection.publisher = null;\n peerConnection.localStream = null;\n return bluebird_1.Promise.resolve();\n };\n MediaServerSession.prototype.createMediaSubscriber = function (remoteStream) {\n var _this = this;\n trace.info('createMediaSubscriber');\n return new bluebird_1.Promise(function (resolve, reject) {\n if (!_this.sessionExistsGuard(false)) {\n return reject('Session not exists');\n }\n trace.info('Before create subscriber');\n var subscriber = _this._session.subscribe(remoteStream, '', {}, function (err) {\n if (err) {\n trace.warn('Error creating subscriber', err);\n return reject(err);\n }\n trace.info('create subscriber successfully', subscriber);\n return resolve(subscriber);\n });\n });\n };\n MediaServerSession.prototype.streamCreatedHandler = function (event) {\n var _this = this;\n if (!event) {\n return bluebird_1.Promise.resolve();\n }\n trace.info('streamCreatedHandler', event.stream);\n var stream = event.stream;\n var connection = (stream || { connection: null }).connection;\n if (!this.sessionExistsGuard(false) || !stream || connection.connectionId === this.ownPeerId) {\n return bluebird_1.Promise.resolve();\n }\n if (!this._peerConnections.has(connection.connectionId)) {\n trace.warn('Unexpected case, connection should exist, add to streams to subscribe list', event);\n this._lastStreamEvents.push(event);\n return bluebird_1.Promise.resolve();\n }\n var peerConnection = this._peerConnections.get(connection.connectionId);\n trace.info('Subscribing the stream');\n return this.createMediaSubscriber(stream).then(function (subscriber) {\n peerConnection.subscriber = subscriber;\n trace.info('Registering remote media tracks', peerConnection.subscriber);\n subscriber.stream\n .getMediaStream()\n .getTracks()\n .forEach(function (mediaTrack) {\n _this.addRemoteTrackToPeer(peerConnection, mediaTrack);\n });\n return _this.registerPeersRemoteTracks(peerConnection);\n });\n };\n MediaServerSession.prototype.createStreamForPublishing = function (destinationRole) {\n var _this = this;\n trace.info('createStreamForPublishing');\n return this._sessionStreamsManager\n .getMediaStreamForRole(destinationRole)\n .then(function (mediaStream) {\n var stream = { videoSource: null, audioSource: null };\n if (mediaStream) {\n trace.info('Media stream found for publishing', mediaStream);\n mediaStream.getTracks().forEach(function (track) {\n if (track.kind === 'video') {\n stream.videoSource = track;\n }\n else if (track.kind === 'audio') {\n stream.audioSource = track;\n }\n });\n }\n else if (_this._sessionParams.clientRole === MediaConstants_1.SessionClientRole.USER) {\n trace.warn('No local media was found for publishing to destinationRole:', destinationRole);\n }\n return stream;\n });\n };\n MediaServerSession.prototype.createMediaPublisher = function (stream) {\n var _this = this;\n var ovParams = {\n videoSource: stream.videoSource ? stream.videoSource : false,\n audioSource: stream.audioSource ? stream.audioSource : false,\n publishAudio: !!stream.audioSource,\n publishVideo: !!stream.videoSource\n };\n return new bluebird_1.Promise(function (resolve, reject) {\n var ovPublisher = _this.OV.initPublisher('', ovParams, function (error) {\n if (error) {\n reject(error);\n return;\n }\n ovPublisher.on('streamDestroyed', function (event) {\n trace.info('Publisher stream destroyed', event);\n var connectionId = get_1.default(event, 'stream.connection.connectionId');\n _this.onPublisherDestroyed(connectionId);\n //We preventing the default, in order to prevent stop the stream by OV.\n //We managing streams by ourselves and if we allow OV to close the stream, it cannot be reused.\n event.preventDefault();\n });\n resolve(ovPublisher);\n });\n });\n };\n MediaServerSession.prototype.connectionCreatedHandler = function (event) {\n var _this = this;\n trace.info('connectionCreatedHandler', event);\n var connection = event.connection;\n if (!this.sessionExistsGuard(false) || !connection) {\n return;\n }\n var destinationRole = JSON.parse(connection.data).clientRole;\n this.createStreamForPublishing(destinationRole)\n .then(function (streams) {\n var peerConnection = {\n peerId: connection.connectionId,\n peerRole: destinationRole,\n peerType: _this._sessionParams.clientType === MediaConstants_1.SessionClientType.INITIATOR\n ? MediaConstants_1.SessionClientType.GUEST\n : MediaConstants_1.SessionClientType.INITIATOR,\n connection: connection,\n publisher: null,\n subscriber: null,\n remoteMediaTracks: [],\n localStream: streams,\n connectionTimoutPrt: null\n };\n if (connection.connectionId !== _this.ownPeerId || (!streams.videoSource && !streams.audioSource)) {\n trace.info('Peer connection without publisher was created', peerConnection);\n return peerConnection;\n }\n return _this.createMediaPublisher(streams).then(function (publisher) {\n peerConnection.publisher = publisher;\n trace.info('Peer connection with publisher was created', peerConnection);\n return peerConnection;\n });\n })\n .then(function (peerConnection) {\n _this._peerConnections.set(peerConnection.peerId, peerConnection);\n if (connection.connectionId === _this.ownPeerId) {\n trace.info('Before subscribe the event streams');\n return _this._lastStreamEvents\n .reduce(function (promiseChain, streamEvent) {\n return promiseChain.then(function () { return _this.streamCreatedHandler(streamEvent); });\n }, bluebird_1.Promise.resolve())\n .then(function () {\n if (peerConnection.publisher) {\n trace.info('Starting publish to peerConnection.publisher');\n return _this._session.publish(peerConnection.publisher).catch(function (err) {\n trace.info('Error during publish', peerConnection.publisher);\n if (peerConnection.publisher) {\n trace.info('Error during publish- unpublish');\n _this._session.unpublish(peerConnection.publisher);\n }\n throw err;\n });\n }\n return bluebird_1.Promise.resolve();\n });\n }\n })\n .catch(function (error) {\n trace.error('Error handling new peer connection', error);\n });\n };\n MediaServerSession.prototype.sessionExistsGuard = function (shouldThrow) {\n if (shouldThrow === void 0) { shouldThrow = true; }\n var connected = !!(this._session && this._session.connection && this._session.connection.connectionId);\n return guards_1.throwableGuard(connected, 'There no MediaServer session exists', shouldThrow);\n };\n return MediaServerSession;\n}(MediaSessionBase_1.MediaSessionBase));\nexports.MediaServerSession = MediaServerSession;\n\n//# sourceMappingURL=MediaServer.js.map\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MediaSession/MediaSessionBase.js"],"names":["Object","defineProperty","exports","value","MediaSessionBase","recordingEvents","MediaConstants_1","require","MediaTracer_1","events_1","trace","getMediaTracer","sessionParams","streamFactory","_sessionParams","_sessionStreamsManager","_emitter","EventEmitter","_peerConnections","Map","prototype","registerEventCallback","event","callback","on","emitEvent","eventArgs","_this","setTimeout","emit","addRemoteTrackToPeer","sourcePeerConnection","mediaTrack","kind","KnownMediaStreamKind","Video","peerRole","SessionClientRole","AGENT","trackType","toLowerCase","Audio","KnownMediaStream","AGENT_AUDIO_STREAM","OBSERVER","OBSERVER_AUDIO_STREAM","USER_AUDIO_STREAM","USER_VIDEO_STREAM","remoteMediaTrack","isRegistered","remoteMediaTracks","push","registerPeersRemoteTracks","info","forEach","addRemoteMediaTrack","then","error","warn","unregisterPeersRemoteMediaTracks","peerConnection","promises","removalPromise","removeMediaTrack","Promise","all","undefined","getPeerConnectionByMediaTrack","peerConnectionOfTrack","remoteTrack","filter","track","id","length"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAD,OAAO,CAACE,gBAAR,GAA2BF,OAAO,CAACG,eAAR,GAA0B,KAAK,CAA1D;;AACA,IAAIC,gBAAgB,GAAGC,OAAO,CAAC,mBAAD,CAA9B;;AACA,IAAIC,aAAa,GAAGD,OAAO,CAAC,2BAAD,CAA3B;;AACA,IAAIE,QAAQ,GAAGF,OAAO,CAAC,QAAD,CAAtB;;AACA,IAAIF,eAAJ;;AACA,CAAC,UAAUA,eAAV,EAA2B;AACxBA,EAAAA,eAAe,CAAC,gBAAD,CAAf,GAAoC,gBAApC;AACAA,EAAAA,eAAe,CAAC,gBAAD,CAAf,GAAoC,gBAApC;AACAA,EAAAA,eAAe,CAAC,cAAD,CAAf,GAAkC,cAAlC;AACH,CAJD,EAIGA,eAAe,GAAGH,OAAO,CAACG,eAAR,KAA4BH,OAAO,CAACG,eAAR,GAA0B,EAAtD,CAJrB;;AAKA,IAAIK,KAAK,GAAGF,aAAa,CAACG,cAAd,CAA6B,kBAA7B,CAAZ;;AACA,IAAIP,gBAAgB;AAAG;AAAe,YAAY;AAC9C,WAASA,gBAAT,CAA0BQ,aAA1B,EAAyCC,aAAzC,EAAwD;AACpD,SAAKC,cAAL,GAAsBF,aAAtB;AACA,SAAKG,sBAAL,GAA8BF,aAA9B;AACA,SAAKG,QAAL,GAAgB,IAAIP,QAAQ,CAACQ,YAAb,EAAhB;AACA,SAAKC,gBAAL,GAAwB,IAAIC,GAAJ,EAAxB;AACH;;AACDf,EAAAA,gBAAgB,CAACgB,SAAjB,CAA2BC,qBAA3B,GAAmD,UAAUC,KAAV,EAAiBC,QAAjB,EAA2B;AAC1E,SAAKP,QAAL,CAAcQ,EAAd,CAAiBF,KAAjB,EAAwBC,QAAxB;AACH,GAFD;;AAGAnB,EAAAA,gBAAgB,CAACgB,SAAjB,CAA2BK,SAA3B,GAAuC,UAAUH,KAAV,EAAiBI,SAAjB,EAA4B;AAC/D,QAAIC,KAAK,GAAG,IAAZ;;AACAC,IAAAA,UAAU,CAAC,YAAY;AACnBD,MAAAA,KAAK,CAACX,QAAN,CAAea,IAAf,CAAoBP,KAApB,EAA2BI,SAA3B;AACH,KAFS,CAAV;AAGH,GALD;;AAMAtB,EAAAA,gBAAgB,CAACgB,SAAjB,CAA2BU,oBAA3B,GAAkD,UAAUC,oBAAV,EAAgCC,UAAhC,EAA4C;AAC1F,QAAIA,UAAU,CAACC,IAAX,KAAoB3B,gBAAgB,CAAC4B,oBAAjB,CAAsCC,KAA1D,IACAJ,oBAAoB,CAACK,QAArB,KAAkC9B,gBAAgB,CAAC+B,iBAAjB,CAAmCC,KADzE,EACgF;AAC5E;AACA;AACH;;AACD,QAAIC,SAAS,GAAG,IAAhB;;AACA,QAAIP,UAAU,CAACC,IAAX,CAAgBO,WAAhB,OAAkClC,gBAAgB,CAAC4B,oBAAjB,CAAsCO,KAA5E,EAAmF;AAC/E,cAAQV,oBAAoB,CAACK,QAA7B;AACI,aAAK9B,gBAAgB,CAAC+B,iBAAjB,CAAmCC,KAAxC;AACIC,UAAAA,SAAS,GAAGjC,gBAAgB,CAACoC,gBAAjB,CAAkCC,kBAA9C;AACA;;AACJ,aAAKrC,gBAAgB,CAAC+B,iBAAjB,CAAmCO,QAAxC;AACIL,UAAAA,SAAS,GAAGjC,gBAAgB,CAACoC,gBAAjB,CAAkCG,qBAA9C;AACA;;AACJ;AACIN,UAAAA,SAAS,GAAGjC,gBAAgB,CAACoC,gBAAjB,CAAkCI,iBAA9C;AACA;AATR;AAWH,KAZD,MAaK;AACDP,MAAAA,SAAS,GAAGjC,gBAAgB,CAACoC,gBAAjB,CAAkCK,iBAA9C;AACH;;AACD,QAAIC,gBAAgB,GAAG;AAAEhB,MAAAA,UAAU,EAAEA,UAAd;AAA0BO,MAAAA,SAAS,EAAEA,SAArC;AAAgDU,MAAAA,YAAY,EAAE;AAA9D,KAAvB;AACAlB,IAAAA,oBAAoB,CAACmB,iBAArB,CAAuCC,IAAvC,CAA4CH,gBAA5C;AACH,GAzBD;;AA0BA5C,EAAAA,gBAAgB,CAACgB,SAAjB,CAA2BgC,yBAA3B,GAAuD,UAAUrB,oBAAV,EAAgC;AACnF,QAAIJ,KAAK,GAAG,IAAZ;;AACAjB,IAAAA,KAAK,CAAC2C,IAAN,CAAW,2BAAX,EAAwCtB,oBAAoB,IAAIA,oBAAoB,CAACmB,iBAArF;AACAnB,IAAAA,oBAAoB,CAACmB,iBAArB,CAAuCI,OAAvC,CAA+C,UAAUN,gBAAV,EAA4B;AACvE,UAAI,CAACA,gBAAgB,CAACC,YAAtB,EAAoC;AAChCvC,QAAAA,KAAK,CAAC2C,IAAN,CAAW,sDAAX,EAAmEL,gBAAnE;;AACArB,QAAAA,KAAK,CAACZ,sBAAN,CACKwC,mBADL,CACyBP,gBADzB,EAEKQ,IAFL,CAEU,YAAY;AAClBR,UAAAA,gBAAgB,CAACC,YAAjB,GAAgC,IAAhC;AACH,SAJD,WAKW,UAAUQ,KAAV,EAAiB;AACxB/C,UAAAA,KAAK,CAACgD,IAAN,CAAW,sDAAX,EAAmED,KAAnE;AACH,SAPD;AAQH;AACJ,KAZD;AAaH,GAhBD;;AAiBArD,EAAAA,gBAAgB,CAACgB,SAAjB,CAA2BuC,gCAA3B,GAA8D,UAAUC,cAAV,EAA0B;AACpF,QAAIjC,KAAK,GAAG,IAAZ;;AACA,QAAIkC,QAAQ,GAAG,EAAf;AACAD,IAAAA,cAAc,CAACV,iBAAf,CAAiCI,OAAjC,CAAyC,UAAUN,gBAAV,EAA4B;AACjE,UAAIc,cAAc,GAAGnC,KAAK,CAACZ,sBAAN,CAChBgD,gBADgB,CACCf,gBAAgB,CAAChB,UADlB,EAEhBwB,IAFgB,CAEX,YAAY;AAAE,eAAQR,gBAAgB,CAACC,YAAjB,GAAgC,KAAxC;AAAiD,OAFpD,WAGV,YAAY;AAAE,eAAOvC,KAAK,CAACgD,IAAN,CAAW,yCAAX,EAAsDV,gBAAtD,CAAP;AAAiF,OAHrF,CAArB;;AAIAa,MAAAA,QAAQ,CAACV,IAAT,CAAcW,cAAd;AACH,KAND;AAOA,WAAOE,OAAO,CAACC,GAAR,CAAYJ,QAAZ,EAAsBL,IAAtB,CAA2B,YAAY;AAAE,aAAOU,SAAP;AAAmB,KAA5D,CAAP;AACH,GAXD;;AAYA9D,EAAAA,gBAAgB,CAACgB,SAAjB,CAA2B+C,6BAA3B,GAA2D,UAAUnC,UAAV,EAAsB;AAC7E,QAAIoC,qBAAqB,GAAG,IAA5B;;AACA,SAAKlD,gBAAL,CAAsBoC,OAAtB,CAA8B,UAAUM,cAAV,EAA0B;AACpD,UAAIQ,qBAAqB,KAAK,IAA9B,EAAoC;AAChC;AACH;;AACD,UAAIC,WAAW,GAAGT,cAAc,CAACV,iBAAf,CAAiCoB,MAAjC,CAAwC,UAAUC,KAAV,EAAiB;AAAE,eAAOA,KAAK,CAACvC,UAAN,CAAiBwC,EAAjB,KAAwBxC,UAAU,CAACwC,EAA1C;AAA+C,OAA1G,CAAlB;;AACA,UAAIH,WAAW,CAACI,MAAZ,KAAuB,CAA3B,EAA8B;AAC1BL,QAAAA,qBAAqB,GAAGR,cAAxB;AACH;AACJ,KARD;;AASA,WAAOQ,qBAAP;AACH,GAZD;;AAaA,SAAOhE,gBAAP;AACH,CArFqC,EAAtC;;AAsFAF,OAAO,CAACE,gBAAR,GAA2BA,gBAA3B","file":"MediaSessionBase.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MediaSessionBase = exports.recordingEvents = void 0;\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar events_1 = require(\"events\");\nvar recordingEvents;\n(function (recordingEvents) {\n recordingEvents[\"RECORD_STARTED\"] = \"RECORD_STARTED\";\n recordingEvents[\"RECORD_STOPPED\"] = \"RECORD_STOPPED\";\n recordingEvents[\"RECONNECTING\"] = \"RECONNECTING\";\n})(recordingEvents = exports.recordingEvents || (exports.recordingEvents = {}));\nvar trace = MediaTracer_1.getMediaTracer('MediaSessionBase');\nvar MediaSessionBase = /** @class */ (function () {\n function MediaSessionBase(sessionParams, streamFactory) {\n this._sessionParams = sessionParams;\n this._sessionStreamsManager = streamFactory;\n this._emitter = new events_1.EventEmitter();\n this._peerConnections = new Map();\n }\n MediaSessionBase.prototype.registerEventCallback = function (event, callback) {\n this._emitter.on(event, callback);\n };\n MediaSessionBase.prototype.emitEvent = function (event, eventArgs) {\n var _this = this;\n setTimeout(function () {\n _this._emitter.emit(event, eventArgs);\n });\n };\n MediaSessionBase.prototype.addRemoteTrackToPeer = function (sourcePeerConnection, mediaTrack) {\n if (mediaTrack.kind === MediaConstants_1.KnownMediaStreamKind.Video &&\n sourcePeerConnection.peerRole === MediaConstants_1.SessionClientRole.AGENT) {\n //Currently We don't support video streams from Agent side\n return;\n }\n var trackType = null;\n if (mediaTrack.kind.toLowerCase() === MediaConstants_1.KnownMediaStreamKind.Audio) {\n switch (sourcePeerConnection.peerRole) {\n case MediaConstants_1.SessionClientRole.AGENT:\n trackType = MediaConstants_1.KnownMediaStream.AGENT_AUDIO_STREAM;\n break;\n case MediaConstants_1.SessionClientRole.OBSERVER:\n trackType = MediaConstants_1.KnownMediaStream.OBSERVER_AUDIO_STREAM;\n break;\n default:\n trackType = MediaConstants_1.KnownMediaStream.USER_AUDIO_STREAM;\n break;\n }\n }\n else {\n trackType = MediaConstants_1.KnownMediaStream.USER_VIDEO_STREAM;\n }\n var remoteMediaTrack = { mediaTrack: mediaTrack, trackType: trackType, isRegistered: false };\n sourcePeerConnection.remoteMediaTracks.push(remoteMediaTrack);\n };\n MediaSessionBase.prototype.registerPeersRemoteTracks = function (sourcePeerConnection) {\n var _this = this;\n trace.info('registerPeersRemoteTracks', sourcePeerConnection && sourcePeerConnection.remoteMediaTracks);\n sourcePeerConnection.remoteMediaTracks.forEach(function (remoteMediaTrack) {\n if (!remoteMediaTrack.isRegistered) {\n trace.info('call addRemoteMediaTrack with the remote media track', remoteMediaTrack);\n _this._sessionStreamsManager\n .addRemoteMediaTrack(remoteMediaTrack)\n .then(function () {\n remoteMediaTrack.isRegistered = true;\n })\n .catch(function (error) {\n trace.warn('Error adding remote media track to available streams', error);\n });\n }\n });\n };\n MediaSessionBase.prototype.unregisterPeersRemoteMediaTracks = function (peerConnection) {\n var _this = this;\n var promises = [];\n peerConnection.remoteMediaTracks.forEach(function (remoteMediaTrack) {\n var removalPromise = _this._sessionStreamsManager\n .removeMediaTrack(remoteMediaTrack.mediaTrack)\n .then(function () { return (remoteMediaTrack.isRegistered = false); })\n .catch(function () { return trace.warn('Error while removing remote media track', remoteMediaTrack); });\n promises.push(removalPromise);\n });\n return Promise.all(promises).then(function () { return undefined; });\n };\n MediaSessionBase.prototype.getPeerConnectionByMediaTrack = function (mediaTrack) {\n var peerConnectionOfTrack = null;\n this._peerConnections.forEach(function (peerConnection) {\n if (peerConnectionOfTrack !== null) {\n return;\n }\n var remoteTrack = peerConnection.remoteMediaTracks.filter(function (track) { return track.mediaTrack.id === mediaTrack.id; });\n if (remoteTrack.length === 1) {\n peerConnectionOfTrack = peerConnection;\n }\n });\n return peerConnectionOfTrack;\n };\n return MediaSessionBase;\n}());\nexports.MediaSessionBase = MediaSessionBase;\n\n//# sourceMappingURL=MediaSessionBase.js.map\n"]}
|
|
1
|
+
{"version":3,"sources":["MediaSession/MediaSessionBase.js"],"names":["Object","defineProperty","exports","value","MediaSessionBase","recordingEvents","MediaConstants_1","require","MediaTracer_1","events_1","trace","getMediaTracer","sessionParams","streamFactory","_sessionParams","_sessionStreamsManager","_emitter","EventEmitter","_peerConnections","Map","prototype","registerEventCallback","event","callback","on","emitEvent","eventArgs","_this","setTimeout","emit","addRemoteTrackToPeer","sourcePeerConnection","mediaTrack","kind","KnownMediaStreamKind","Video","peerRole","SessionClientRole","AGENT","trackType","toLowerCase","Audio","KnownMediaStream","AGENT_AUDIO_STREAM","OBSERVER","OBSERVER_AUDIO_STREAM","USER_AUDIO_STREAM","USER_VIDEO_STREAM","remoteMediaTrack","isRegistered","remoteMediaTracks","push","registerPeersRemoteTracks","info","forEach","addRemoteMediaTrack","then","error","warn","unregisterPeersRemoteMediaTracks","peerConnection","promises","removalPromise","removeMediaTrack","Promise","all","undefined","getPeerConnectionByMediaTrack","peerConnectionOfTrack","remoteTrack","filter","track","id","length"],"mappings":"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","file":"MediaSessionBase.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MediaSessionBase = exports.recordingEvents = void 0;\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar events_1 = require(\"events\");\nvar recordingEvents;\n(function (recordingEvents) {\n recordingEvents[\"RECORD_STARTED\"] = \"RECORD_STARTED\";\n recordingEvents[\"RECORD_STOPPED\"] = \"RECORD_STOPPED\";\n recordingEvents[\"RECONNECTING\"] = \"RECONNECTING\";\n})(recordingEvents = exports.recordingEvents || (exports.recordingEvents = {}));\nvar trace = MediaTracer_1.getMediaTracer('MediaSessionBase');\nvar MediaSessionBase = /** @class */ (function () {\n function MediaSessionBase(sessionParams, streamFactory) {\n this._sessionParams = sessionParams;\n this._sessionStreamsManager = streamFactory;\n this._emitter = new events_1.EventEmitter();\n this._peerConnections = new Map();\n }\n MediaSessionBase.prototype.registerEventCallback = function (event, callback) {\n this._emitter.on(event, callback);\n };\n MediaSessionBase.prototype.emitEvent = function (event, eventArgs) {\n var _this = this;\n setTimeout(function () {\n _this._emitter.emit(event, eventArgs);\n });\n };\n MediaSessionBase.prototype.addRemoteTrackToPeer = function (sourcePeerConnection, mediaTrack) {\n if (mediaTrack.kind === MediaConstants_1.KnownMediaStreamKind.Video &&\n sourcePeerConnection.peerRole === MediaConstants_1.SessionClientRole.AGENT) {\n //Currently We don't support video streams from Agent side\n return;\n }\n var trackType = null;\n if (mediaTrack.kind.toLowerCase() === MediaConstants_1.KnownMediaStreamKind.Audio) {\n switch (sourcePeerConnection.peerRole) {\n case MediaConstants_1.SessionClientRole.AGENT:\n trackType = MediaConstants_1.KnownMediaStream.AGENT_AUDIO_STREAM;\n break;\n case MediaConstants_1.SessionClientRole.OBSERVER:\n trackType = MediaConstants_1.KnownMediaStream.OBSERVER_AUDIO_STREAM;\n break;\n default:\n trackType = MediaConstants_1.KnownMediaStream.USER_AUDIO_STREAM;\n break;\n }\n }\n else {\n trackType = MediaConstants_1.KnownMediaStream.USER_VIDEO_STREAM;\n }\n var remoteMediaTrack = { mediaTrack: mediaTrack, trackType: trackType, isRegistered: false };\n sourcePeerConnection.remoteMediaTracks.push(remoteMediaTrack);\n };\n MediaSessionBase.prototype.registerPeersRemoteTracks = function (sourcePeerConnection) {\n var _this = this;\n trace.info('registerPeersRemoteTracks', sourcePeerConnection && sourcePeerConnection.remoteMediaTracks);\n sourcePeerConnection.remoteMediaTracks.forEach(function (remoteMediaTrack) {\n if (!remoteMediaTrack.isRegistered) {\n trace.info('call addRemoteMediaTrack with the remote media track', remoteMediaTrack);\n _this._sessionStreamsManager\n .addRemoteMediaTrack(remoteMediaTrack)\n .then(function () {\n remoteMediaTrack.isRegistered = true;\n })\n .catch(function (error) {\n trace.warn('Error adding remote media track to available streams', error);\n });\n }\n });\n };\n MediaSessionBase.prototype.unregisterPeersRemoteMediaTracks = function (peerConnection) {\n var _this = this;\n var promises = [];\n peerConnection.remoteMediaTracks.forEach(function (remoteMediaTrack) {\n var removalPromise = _this._sessionStreamsManager\n .removeMediaTrack(remoteMediaTrack.mediaTrack)\n .then(function () { return (remoteMediaTrack.isRegistered = false); })\n .catch(function () { return trace.warn('Error while removing remote media track', remoteMediaTrack); });\n promises.push(removalPromise);\n });\n return Promise.all(promises).then(function () { return undefined; });\n };\n MediaSessionBase.prototype.getPeerConnectionByMediaTrack = function (mediaTrack) {\n var peerConnectionOfTrack = null;\n this._peerConnections.forEach(function (peerConnection) {\n if (peerConnectionOfTrack !== null) {\n return;\n }\n var remoteTrack = peerConnection.remoteMediaTracks.filter(function (track) { return track.mediaTrack.id === mediaTrack.id; });\n if (remoteTrack.length === 1) {\n peerConnectionOfTrack = peerConnection;\n }\n });\n return peerConnectionOfTrack;\n };\n return MediaSessionBase;\n}());\nexports.MediaSessionBase = MediaSessionBase;\n\n//# sourceMappingURL=MediaSessionBase.js.map\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MediaSession/SessionOpentok.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","defineProperty","exports","value","OpentokSession","MediaConstants_1","require","guards_1","MediaSessionBase_1","MediaTracer_1","trace","getMediaTracer","_super","sessionParams","streamFactory","_this","_lastStreamEvents","_session","_credentials","credentials","connect","bind","disconnect","onMediaStreamDestroyed","onMediaStreamRenewed","createStreamForPublishing","createMediaPublisher","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","get","sessionId","enumerable","configurable","connection","connectionId","sessionDisconnect","info","error","Promise","reject","resolve","handleError","off","_a","_sessionParams","apiKey","window","OTSESSION","OT","initSession","on","event","emitEvent","recordingEvents","RECORD_STARTED","RECORD_STOPPED","connectHandler","token","currentSession","_peerConnections","forEach","peerConnection","destroyPeerConnection","clientRole","promises","peerRole","push","destroyPublisherOnPeerConnection","all","then","undefined","mediaStream","replaceStreamTracks","Error","getRemoteTrackStats","mediaTrack","peerConnectionOfTrack","getPeerConnectionByMediaTrack","subscriber","getStats","stats","warn","trackId","id","trackStats","sessionExistsGuard","destinationRole","JSON","parse","data","ownPeerId","streams","peerId","peerType","clientType","SessionClientType","INITIATOR","GUEST","publisher","remoteMediaTracks","localStream","connectionTimoutPrt","videoSource","audioSource","set","reduce","promiseChain","streamEvent","publish","has","stream","createMediaSubscriber","destroySubscriberOnPeerConnection","shouldCreateStream","_sessionStreamsManager","getMediaStreamForRole","getTracks","track","kind","SessionClientRole","USER","otParams","publishAudio","publishVideo","showControls","insertDefaultUI","otPublisher","initPublisher","preventDefault","element","muted","hasAudio","unpublish","remoteStream","subscribe","err","otMediaStream","srcObject","addRemoteTrackToPeer","registerPeersRemoteTracks","unsubscribe","shouldThrow","connected","throwableGuard","MediaSessionBase"],"mappings":"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","file":"SessionOpentok.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpentokSession = void 0;\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar guards_1 = require(\"@techsee/techsee-common/lib/core/guards\");\nvar MediaSessionBase_1 = require(\"./MediaSessionBase\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar trace = MediaTracer_1.getMediaTracer('OpentokSession');\n//Currently this version supports subscribing only. Publishing will be implemented as needed.\nvar OpentokSession = /** @class */ (function (_super) {\n __extends(OpentokSession, _super);\n function OpentokSession(sessionParams, streamFactory) {\n var _this = _super.call(this, sessionParams, streamFactory) || this;\n _this._lastStreamEvents = [];\n _this._session = null;\n _this._credentials = sessionParams.credentials;\n _this.connect = _this.connect.bind(_this);\n _this.disconnect = _this.disconnect.bind(_this);\n _this.onMediaStreamDestroyed = _this.onMediaStreamDestroyed.bind(_this);\n _this.onMediaStreamRenewed = _this.onMediaStreamRenewed.bind(_this);\n _this.createStreamForPublishing = _this.createStreamForPublishing.bind(_this);\n _this.createMediaPublisher = _this.createMediaPublisher.bind(_this);\n _this.connectionCreatedHandler = _this.connectionCreatedHandler.bind(_this);\n _this.connectionDestroyedHandler = _this.connectionDestroyedHandler.bind(_this);\n _this.streamCreatedHandler = _this.streamCreatedHandler.bind(_this);\n _this.streamDestroyedHandler = _this.streamDestroyedHandler.bind(_this);\n return _this;\n }\n Object.defineProperty(OpentokSession.prototype, \"id\", {\n get: function () {\n return this._session && this._session.sessionId ? this._session.sessionId : '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(OpentokSession.prototype, \"ownPeerId\", {\n get: function () {\n return this._session && this._session.connection ? this._session.connection.connectionId : '';\n },\n enumerable: false,\n configurable: true\n });\n OpentokSession.prototype.sessionDisconnect = function () {\n if (this._session) {\n this._session.disconnect();\n }\n };\n OpentokSession.prototype.connect = function () {\n var _this = this;\n trace.info('Connect to session', this._credentials);\n if (this._session) {\n trace.error('Session already exists');\n return Promise.reject('Cannot connect to session while another session is active');\n }\n return new Promise(function (resolve, reject) {\n var handleError = function (error) {\n _this._session && _this._session.off();\n _this._session = null;\n trace.error('handleConnect error:', error);\n reject(error);\n };\n var _a = _this._sessionParams.credentials, apiKey = _a.apiKey, sessionId = _a.sessionId;\n _this._session = window.OTSESSION = window.OT.initSession(apiKey, sessionId);\n _this._lastStreamEvents = [];\n _this._session.on('connectionCreated', _this.connectionCreatedHandler);\n _this._session.on('connectionDestroyed', _this.connectionDestroyedHandler);\n _this._session.on('streamCreated', _this.streamCreatedHandler);\n _this._session.on('streamDestroyed', _this.streamDestroyedHandler);\n _this._session.on('archiveStarted', function (event) {\n trace.info('archiveStarted event', event);\n _this.emitEvent(MediaSessionBase_1.recordingEvents.RECORD_STARTED, event);\n });\n _this._session.on('archiveStopped', function (event) {\n trace.info('archiveStopped event', event);\n _this.emitEvent(MediaSessionBase_1.recordingEvents.RECORD_STOPPED, event);\n });\n var connectHandler = function (error) {\n if (error) {\n handleError(error);\n return;\n }\n resolve();\n };\n _this._session.connect(_this._credentials.token, connectHandler);\n });\n };\n OpentokSession.prototype.disconnect = function () {\n var _this = this;\n return new Promise(function (resolve) {\n trace.info('Disconnecting from session');\n var currentSession = _this._session;\n _this._session = null;\n _this._peerConnections.forEach(function (peerConnection) {\n _this.destroyPeerConnection(peerConnection);\n });\n if (!currentSession) {\n trace.info('No active session - resolving');\n resolve();\n return;\n }\n currentSession.off();\n currentSession.disconnect();\n _this._lastStreamEvents = [];\n trace.info('Disconnection from session completed');\n resolve();\n });\n };\n OpentokSession.prototype.onMediaStreamDestroyed = function (clientRole) {\n var _this = this;\n var promises = [];\n this._peerConnections.forEach(function (peerConnection) {\n if (peerConnection.peerRole === clientRole) {\n promises.push(_this.destroyPublisherOnPeerConnection(peerConnection));\n }\n });\n return Promise.all(promises).then(function () { return undefined; });\n };\n OpentokSession.prototype.onMediaStreamRenewed = function (clientRole, mediaStream) {\n //TODO - Alex: need to implement adding new tracks to peer connection and forcing negotiation (in OT API)\n return Promise.resolve();\n };\n OpentokSession.prototype.replaceStreamTracks = function (mediaStream) {\n return Promise.reject(new Error('Not implemented'));\n };\n OpentokSession.prototype.getRemoteTrackStats = function (mediaTrack) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var peerConnectionOfTrack = _this.getPeerConnectionByMediaTrack(mediaTrack);\n if (!peerConnectionOfTrack || !peerConnectionOfTrack.subscriber) {\n reject(new Error('Cannot find peer or subscriber for getting stats'));\n return;\n }\n //https://tokbox.com/developer/sdks/js/reference/Subscriber.html#getStats\n peerConnectionOfTrack.subscriber.getStats(function (error, stats) {\n if (error) {\n trace.warn('Error getting stats', error);\n resolve({ trackId: mediaTrack.id, trackStats: {} });\n return;\n }\n resolve({ trackId: mediaTrack.id, trackStats: stats });\n });\n });\n };\n //#region OpenTok Events Handlers\n OpentokSession.prototype.connectionCreatedHandler = function (event) {\n var _this = this;\n trace.info('connectionCreatedHandler', event);\n var connection = event.connection;\n if (!this.sessionExistsGuard(false) || !connection) {\n return;\n }\n var destinationRole = JSON.parse(connection.data).clientRole;\n this.createStreamForPublishing(destinationRole, connection.connectionId === this.ownPeerId)\n .then(function (streams) {\n var peerConnection = {\n peerId: connection.connectionId,\n peerRole: destinationRole,\n peerType: _this._sessionParams.clientType === MediaConstants_1.SessionClientType.INITIATOR\n ? MediaConstants_1.SessionClientType.GUEST\n : MediaConstants_1.SessionClientType.INITIATOR,\n connection: connection,\n publisher: null,\n subscriber: null,\n remoteMediaTracks: [],\n localStream: streams,\n connectionTimoutPrt: null\n };\n if (connection.connectionId !== _this.ownPeerId || (!streams.videoSource && !streams.audioSource)) {\n trace.info('Peer connection without publisher was created', peerConnection);\n return peerConnection;\n }\n return _this.createMediaPublisher(streams).then(function (publisher) {\n peerConnection.publisher = publisher;\n trace.info('Peer connection with publisher was created', peerConnection);\n return peerConnection;\n });\n })\n .then(function (peerConnection) {\n _this._peerConnections.set(peerConnection.peerId, peerConnection);\n if (connection.connectionId === _this.ownPeerId) {\n trace.info('Before subscribe the event streams');\n /*\n When publisher connect after others participants,\n make sure the publisher will not loose their stream to subscribe\n */\n return _this._lastStreamEvents\n .reduce(function (promiseChain, streamEvent) {\n return promiseChain.then(function () { return _this.streamCreatedHandler(streamEvent); });\n }, Promise.resolve())\n .then(function () {\n if (peerConnection.publisher) {\n return new Promise(function (resolve, reject) {\n trace.info('Starting publish to peerConnection.publisher');\n _this._session.publish(peerConnection.publisher, function (error) {\n if (error) {\n trace.error(\"Publish to peerConnection error \" + error);\n return reject(error);\n }\n trace.info('Publish to peerConnection success');\n return resolve();\n });\n });\n }\n return Promise.resolve();\n });\n }\n })\n .catch(function (error) {\n //Need to handle fail cases during reliability\n trace.error(\"Error handling new peer connection: \" + error);\n });\n };\n OpentokSession.prototype.connectionDestroyedHandler = function (event) {\n trace.info('connectionDestroyedHandler', event);\n var connection = event.connection;\n if (!this.sessionExistsGuard(false) || !connection) {\n return;\n }\n if (this._peerConnections.has(connection.connectionId)) {\n this.destroyPeerConnection(this._peerConnections.get(connection.connectionId));\n }\n };\n OpentokSession.prototype.streamCreatedHandler = function (event) {\n trace.info('streamCreatedHandler', event.stream);\n var stream = event.stream;\n var connection = (stream || { connection: null }).connection;\n if (!this.sessionExistsGuard(false) || !stream || connection.connectionId === this.ownPeerId) {\n return;\n }\n if (!this._peerConnections.has(connection.connectionId)) {\n trace.warn('Unexpected case, connection should exist on this stage');\n this._lastStreamEvents.push(event);\n return;\n }\n var peerConnection = this._peerConnections.get(connection.connectionId);\n trace.info('Subscribing the stream');\n this.createMediaSubscriber(stream).then(function (subscriber) {\n peerConnection.subscriber = subscriber;\n });\n };\n OpentokSession.prototype.streamDestroyedHandler = function (event) {\n trace.info('streamDestroyedHandler', event);\n var stream = event.stream;\n if (!this.sessionExistsGuard(false) || !stream) {\n return;\n }\n var peerConnection = this._peerConnections.get(stream.connection.connectionId);\n if (!peerConnection) {\n trace.warn('Peer connection for remote stream not found');\n return;\n }\n this.destroySubscriberOnPeerConnection(peerConnection).catch(function () {\n return trace.warn('Error destroying subscriber on stream destroy');\n });\n };\n //#endregion\n //#region PeerConnection\n OpentokSession.prototype.destroyPeerConnection = function (peerConnection) {\n this._peerConnections.delete(peerConnection.peerId);\n this.destroyPublisherOnPeerConnection(peerConnection).catch(function () {\n return trace.warn('Error destroying publisher on peer destroy');\n });\n this.destroySubscriberOnPeerConnection(peerConnection).catch(function () {\n return trace.warn('Error destroying subscriber on peer destroy');\n });\n };\n //#endregion\n //#region Publisher\n OpentokSession.prototype.createStreamForPublishing = function (destinationRole, shouldCreateStream) {\n var _this = this;\n trace.info('createStreamForPublishing');\n var stream = { videoSource: null, audioSource: null };\n if (!shouldCreateStream) {\n trace.info(\"createStreamForPublishing - destinationRole: \" + destinationRole + \" not supposed to create a stream\");\n return Promise.resolve(stream);\n }\n return this._sessionStreamsManager\n .getMediaStreamForRole(destinationRole)\n .then(function (mediaStream) {\n if (mediaStream) {\n trace.info('Media stream found for publishing', mediaStream);\n mediaStream.getTracks().forEach(function (track) {\n if (track.kind === 'video') {\n stream.videoSource = track;\n }\n else if (track.kind === 'audio') {\n stream.audioSource = track;\n }\n });\n }\n else if (_this._sessionParams.clientRole === MediaConstants_1.SessionClientRole.USER) {\n trace.warn('No local media was found for publishing to destinationRole:', destinationRole);\n }\n return stream;\n });\n };\n OpentokSession.prototype.createMediaPublisher = function (stream) {\n var otParams = {\n videoSource: stream.videoSource ? stream.videoSource : false,\n audioSource: stream.audioSource ? stream.audioSource : false,\n publishAudio: !!stream.audioSource,\n publishVideo: !!stream.videoSource,\n showControls: false,\n insertDefaultUI: false\n };\n return new Promise(function (resolve, reject) {\n var otPublisher = window.OT.initPublisher(undefined, otParams, function (error) {\n if (error) {\n reject(error);\n return;\n }\n otPublisher.on('streamDestroyed', function (event) {\n trace.info('Publisher stream destroyed', event);\n //We preventing the default, in order to prevent stop the stream by OT.\n //We managing streams by ourselves and if we allow OT to close the stream, it cannot be reused.\n event.preventDefault();\n });\n otPublisher.on('videoElementCreated', function (event) {\n event.element.muted = true;\n });\n otPublisher.on('streamCreated', function (event) {\n trace.info('publisher stream created', event, otPublisher.stream.hasAudio);\n });\n resolve(otPublisher);\n });\n });\n };\n OpentokSession.prototype.destroyPublisherOnPeerConnection = function (peerConnection) {\n if (this.sessionExistsGuard(false) && peerConnection.publisher) {\n this._session.unpublish(peerConnection.publisher);\n }\n peerConnection.publisher = null;\n peerConnection.localStream = null;\n return Promise.resolve();\n };\n //#endregion\n //#region Subscriber\n OpentokSession.prototype.createMediaSubscriber = function (remoteStream) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n if (!_this.sessionExistsGuard(false)) {\n reject('Session not exists');\n return;\n }\n var subscriber = _this._session.subscribe(remoteStream, null, { insertDefaultUI: false }, function (err) {\n if (err) {\n trace.warn('Error creating subscriber', err);\n reject(err);\n return;\n }\n subscriber.on('videoElementCreated', function (event) {\n var element = event.element;\n var peerConnection = _this._peerConnections.get(remoteStream.connection.connectionId);\n var otMediaStream = element.srcObject;\n peerConnection.subscriber = subscriber;\n if (!otMediaStream) {\n trace.warn('MediaStream not found in OT video element');\n return;\n }\n trace.info('Registering remote media tracks', peerConnection.subscriber, otMediaStream);\n otMediaStream.getTracks().forEach(function (mediaTrack) {\n _this.addRemoteTrackToPeer(peerConnection, mediaTrack);\n });\n _this.registerPeersRemoteTracks(peerConnection);\n });\n resolve(subscriber);\n });\n });\n };\n OpentokSession.prototype.destroySubscriberOnPeerConnection = function (peerConnection) {\n if (this.sessionExistsGuard(false) && peerConnection.subscriber) {\n this._session.unsubscribe(peerConnection.subscriber);\n }\n peerConnection.subscriber = null;\n return Promise.resolve();\n /**\n REMARK- opentok provide the same media track id for all participates.\n when we unregister the media track we check by the id which is the same for all.\n **/\n // return this.unregisterPeersRemoteMediaTracks(peerConnection)\n // .catch(() => trace.warn('Error removing remote streams from peerConnection'))\n // .then(() => {\n // peerConnection.subscriber = null;\n // });\n };\n //#endregion\n OpentokSession.prototype.sessionExistsGuard = function (shouldThrow) {\n if (shouldThrow === void 0) { shouldThrow = true; }\n var connected = !!(this._session && this._session.connection && this._session.connection.connectionId);\n return guards_1.throwableGuard(connected, 'There no OpenTok session exists', shouldThrow);\n };\n return OpentokSession;\n}(MediaSessionBase_1.MediaSessionBase));\nexports.OpentokSession = OpentokSession;\n\n//# sourceMappingURL=SessionOpentok.js.map\n"]}
|
|
1
|
+
{"version":3,"sources":["MediaSession/SessionOpentok.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","defineProperty","exports","value","OpentokSession","MediaConstants_1","require","guards_1","MediaSessionBase_1","MediaTracer_1","trace","getMediaTracer","_super","sessionParams","streamFactory","_this","_lastStreamEvents","_session","_credentials","credentials","connect","bind","disconnect","onMediaStreamDestroyed","onMediaStreamRenewed","createStreamForPublishing","createMediaPublisher","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","get","sessionId","enumerable","configurable","connection","connectionId","sessionDisconnect","info","error","Promise","reject","resolve","handleError","off","_a","_sessionParams","apiKey","window","OTSESSION","OT","initSession","on","event","emitEvent","recordingEvents","RECORD_STARTED","RECORD_STOPPED","connectHandler","token","currentSession","_peerConnections","forEach","peerConnection","destroyPeerConnection","clientRole","promises","peerRole","push","destroyPublisherOnPeerConnection","all","then","undefined","mediaStream","replaceStreamTracks","Error","getRemoteTrackStats","mediaTrack","peerConnectionOfTrack","getPeerConnectionByMediaTrack","subscriber","getStats","stats","warn","trackId","id","trackStats","sessionExistsGuard","destinationRole","JSON","parse","data","ownPeerId","streams","peerId","peerType","clientType","SessionClientType","INITIATOR","GUEST","publisher","remoteMediaTracks","localStream","connectionTimoutPrt","videoSource","audioSource","set","reduce","promiseChain","streamEvent","publish","has","stream","createMediaSubscriber","destroySubscriberOnPeerConnection","shouldCreateStream","_sessionStreamsManager","getMediaStreamForRole","getTracks","track","kind","SessionClientRole","USER","otParams","publishAudio","publishVideo","showControls","insertDefaultUI","otPublisher","initPublisher","preventDefault","element","muted","hasAudio","unpublish","remoteStream","subscribe","err","otMediaStream","srcObject","addRemoteTrackToPeer","registerPeersRemoteTracks","unsubscribe","shouldThrow","connected","throwableGuard","MediaSessionBase"],"mappings":"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","file":"SessionOpentok.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpentokSession = void 0;\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar guards_1 = require(\"@techsee/techsee-common/lib/core/guards\");\nvar MediaSessionBase_1 = require(\"./MediaSessionBase\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar trace = MediaTracer_1.getMediaTracer('OpentokSession');\n//Currently this version supports subscribing only. Publishing will be implemented as needed.\nvar OpentokSession = /** @class */ (function (_super) {\n __extends(OpentokSession, _super);\n function OpentokSession(sessionParams, streamFactory) {\n var _this = _super.call(this, sessionParams, streamFactory) || this;\n _this._lastStreamEvents = [];\n _this._session = null;\n _this._credentials = sessionParams.credentials;\n _this.connect = _this.connect.bind(_this);\n _this.disconnect = _this.disconnect.bind(_this);\n _this.onMediaStreamDestroyed = _this.onMediaStreamDestroyed.bind(_this);\n _this.onMediaStreamRenewed = _this.onMediaStreamRenewed.bind(_this);\n _this.createStreamForPublishing = _this.createStreamForPublishing.bind(_this);\n _this.createMediaPublisher = _this.createMediaPublisher.bind(_this);\n _this.connectionCreatedHandler = _this.connectionCreatedHandler.bind(_this);\n _this.connectionDestroyedHandler = _this.connectionDestroyedHandler.bind(_this);\n _this.streamCreatedHandler = _this.streamCreatedHandler.bind(_this);\n _this.streamDestroyedHandler = _this.streamDestroyedHandler.bind(_this);\n return _this;\n }\n Object.defineProperty(OpentokSession.prototype, \"id\", {\n get: function () {\n return this._session && this._session.sessionId ? this._session.sessionId : '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(OpentokSession.prototype, \"ownPeerId\", {\n get: function () {\n return this._session && this._session.connection ? this._session.connection.connectionId : '';\n },\n enumerable: false,\n configurable: true\n });\n OpentokSession.prototype.sessionDisconnect = function () {\n if (this._session) {\n this._session.disconnect();\n }\n };\n OpentokSession.prototype.connect = function () {\n var _this = this;\n trace.info('Connect to session', this._credentials);\n if (this._session) {\n trace.error('Session already exists');\n return Promise.reject('Cannot connect to session while another session is active');\n }\n return new Promise(function (resolve, reject) {\n var handleError = function (error) {\n _this._session && _this._session.off();\n _this._session = null;\n trace.error('handleConnect error:', error);\n reject(error);\n };\n var _a = _this._sessionParams.credentials, apiKey = _a.apiKey, sessionId = _a.sessionId;\n _this._session = window.OTSESSION = window.OT.initSession(apiKey, sessionId);\n _this._lastStreamEvents = [];\n _this._session.on('connectionCreated', _this.connectionCreatedHandler);\n _this._session.on('connectionDestroyed', _this.connectionDestroyedHandler);\n _this._session.on('streamCreated', _this.streamCreatedHandler);\n _this._session.on('streamDestroyed', _this.streamDestroyedHandler);\n _this._session.on('archiveStarted', function (event) {\n trace.info('archiveStarted event', event);\n _this.emitEvent(MediaSessionBase_1.recordingEvents.RECORD_STARTED, event);\n });\n _this._session.on('archiveStopped', function (event) {\n trace.info('archiveStopped event', event);\n _this.emitEvent(MediaSessionBase_1.recordingEvents.RECORD_STOPPED, event);\n });\n var connectHandler = function (error) {\n if (error) {\n handleError(error);\n return;\n }\n resolve();\n };\n _this._session.connect(_this._credentials.token, connectHandler);\n });\n };\n OpentokSession.prototype.disconnect = function () {\n var _this = this;\n return new Promise(function (resolve) {\n trace.info('Disconnecting from session');\n var currentSession = _this._session;\n _this._session = null;\n _this._peerConnections.forEach(function (peerConnection) {\n _this.destroyPeerConnection(peerConnection);\n });\n if (!currentSession) {\n trace.info('No active session - resolving');\n resolve();\n return;\n }\n currentSession.off();\n currentSession.disconnect();\n _this._lastStreamEvents = [];\n trace.info('Disconnection from session completed');\n resolve();\n });\n };\n OpentokSession.prototype.onMediaStreamDestroyed = function (clientRole) {\n var _this = this;\n var promises = [];\n this._peerConnections.forEach(function (peerConnection) {\n if (peerConnection.peerRole === clientRole) {\n promises.push(_this.destroyPublisherOnPeerConnection(peerConnection));\n }\n });\n return Promise.all(promises).then(function () { return undefined; });\n };\n OpentokSession.prototype.onMediaStreamRenewed = function (clientRole, mediaStream) {\n //TODO - Alex: need to implement adding new tracks to peer connection and forcing negotiation (in OT API)\n return Promise.resolve();\n };\n OpentokSession.prototype.replaceStreamTracks = function (mediaStream) {\n return Promise.reject(new Error('Not implemented'));\n };\n OpentokSession.prototype.getRemoteTrackStats = function (mediaTrack) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var peerConnectionOfTrack = _this.getPeerConnectionByMediaTrack(mediaTrack);\n if (!peerConnectionOfTrack || !peerConnectionOfTrack.subscriber) {\n reject(new Error('Cannot find peer or subscriber for getting stats'));\n return;\n }\n //https://tokbox.com/developer/sdks/js/reference/Subscriber.html#getStats\n peerConnectionOfTrack.subscriber.getStats(function (error, stats) {\n if (error) {\n trace.warn('Error getting stats', error);\n resolve({ trackId: mediaTrack.id, trackStats: {} });\n return;\n }\n resolve({ trackId: mediaTrack.id, trackStats: stats });\n });\n });\n };\n //#region OpenTok Events Handlers\n OpentokSession.prototype.connectionCreatedHandler = function (event) {\n var _this = this;\n trace.info('connectionCreatedHandler', event);\n var connection = event.connection;\n if (!this.sessionExistsGuard(false) || !connection) {\n return;\n }\n var destinationRole = JSON.parse(connection.data).clientRole;\n this.createStreamForPublishing(destinationRole, connection.connectionId === this.ownPeerId)\n .then(function (streams) {\n var peerConnection = {\n peerId: connection.connectionId,\n peerRole: destinationRole,\n peerType: _this._sessionParams.clientType === MediaConstants_1.SessionClientType.INITIATOR\n ? MediaConstants_1.SessionClientType.GUEST\n : MediaConstants_1.SessionClientType.INITIATOR,\n connection: connection,\n publisher: null,\n subscriber: null,\n remoteMediaTracks: [],\n localStream: streams,\n connectionTimoutPrt: null\n };\n if (connection.connectionId !== _this.ownPeerId || (!streams.videoSource && !streams.audioSource)) {\n trace.info('Peer connection without publisher was created', peerConnection);\n return peerConnection;\n }\n return _this.createMediaPublisher(streams).then(function (publisher) {\n peerConnection.publisher = publisher;\n trace.info('Peer connection with publisher was created', peerConnection);\n return peerConnection;\n });\n })\n .then(function (peerConnection) {\n _this._peerConnections.set(peerConnection.peerId, peerConnection);\n if (connection.connectionId === _this.ownPeerId) {\n trace.info('Before subscribe the event streams');\n /*\n When publisher connect after others participants,\n make sure the publisher will not loose their stream to subscribe\n */\n return _this._lastStreamEvents\n .reduce(function (promiseChain, streamEvent) {\n return promiseChain.then(function () { return _this.streamCreatedHandler(streamEvent); });\n }, Promise.resolve())\n .then(function () {\n if (peerConnection.publisher) {\n return new Promise(function (resolve, reject) {\n trace.info('Starting publish to peerConnection.publisher');\n _this._session.publish(peerConnection.publisher, function (error) {\n if (error) {\n trace.error(\"Publish to peerConnection error \" + error);\n return reject(error);\n }\n trace.info('Publish to peerConnection success');\n return resolve();\n });\n });\n }\n return Promise.resolve();\n });\n }\n })\n .catch(function (error) {\n //Need to handle fail cases during reliability\n trace.error(\"Error handling new peer connection: \" + error);\n });\n };\n OpentokSession.prototype.connectionDestroyedHandler = function (event) {\n trace.info('connectionDestroyedHandler', event);\n var connection = event.connection;\n if (!this.sessionExistsGuard(false) || !connection) {\n return;\n }\n if (this._peerConnections.has(connection.connectionId)) {\n this.destroyPeerConnection(this._peerConnections.get(connection.connectionId));\n }\n };\n OpentokSession.prototype.streamCreatedHandler = function (event) {\n trace.info('streamCreatedHandler', event.stream);\n var stream = event.stream;\n var connection = (stream || { connection: null }).connection;\n if (!this.sessionExistsGuard(false) || !stream || connection.connectionId === this.ownPeerId) {\n return;\n }\n if (!this._peerConnections.has(connection.connectionId)) {\n trace.warn('Unexpected case, connection should exist on this stage');\n this._lastStreamEvents.push(event);\n return;\n }\n var peerConnection = this._peerConnections.get(connection.connectionId);\n trace.info('Subscribing the stream');\n this.createMediaSubscriber(stream).then(function (subscriber) {\n peerConnection.subscriber = subscriber;\n });\n };\n OpentokSession.prototype.streamDestroyedHandler = function (event) {\n trace.info('streamDestroyedHandler', event);\n var stream = event.stream;\n if (!this.sessionExistsGuard(false) || !stream) {\n return;\n }\n var peerConnection = this._peerConnections.get(stream.connection.connectionId);\n if (!peerConnection) {\n trace.warn('Peer connection for remote stream not found');\n return;\n }\n this.destroySubscriberOnPeerConnection(peerConnection).catch(function () {\n return trace.warn('Error destroying subscriber on stream destroy');\n });\n };\n //#endregion\n //#region PeerConnection\n OpentokSession.prototype.destroyPeerConnection = function (peerConnection) {\n this._peerConnections.delete(peerConnection.peerId);\n this.destroyPublisherOnPeerConnection(peerConnection).catch(function () {\n return trace.warn('Error destroying publisher on peer destroy');\n });\n this.destroySubscriberOnPeerConnection(peerConnection).catch(function () {\n return trace.warn('Error destroying subscriber on peer destroy');\n });\n };\n //#endregion\n //#region Publisher\n OpentokSession.prototype.createStreamForPublishing = function (destinationRole, shouldCreateStream) {\n var _this = this;\n trace.info('createStreamForPublishing');\n var stream = { videoSource: null, audioSource: null };\n if (!shouldCreateStream) {\n trace.info(\"createStreamForPublishing - destinationRole: \" + destinationRole + \" not supposed to create a stream\");\n return Promise.resolve(stream);\n }\n return this._sessionStreamsManager\n .getMediaStreamForRole(destinationRole)\n .then(function (mediaStream) {\n if (mediaStream) {\n trace.info('Media stream found for publishing', mediaStream);\n mediaStream.getTracks().forEach(function (track) {\n if (track.kind === 'video') {\n stream.videoSource = track;\n }\n else if (track.kind === 'audio') {\n stream.audioSource = track;\n }\n });\n }\n else if (_this._sessionParams.clientRole === MediaConstants_1.SessionClientRole.USER) {\n trace.warn('No local media was found for publishing to destinationRole:', destinationRole);\n }\n return stream;\n });\n };\n OpentokSession.prototype.createMediaPublisher = function (stream) {\n var otParams = {\n videoSource: stream.videoSource ? stream.videoSource : false,\n audioSource: stream.audioSource ? stream.audioSource : false,\n publishAudio: !!stream.audioSource,\n publishVideo: !!stream.videoSource,\n showControls: false,\n insertDefaultUI: false\n };\n return new Promise(function (resolve, reject) {\n var otPublisher = window.OT.initPublisher(undefined, otParams, function (error) {\n if (error) {\n reject(error);\n return;\n }\n otPublisher.on('streamDestroyed', function (event) {\n trace.info('Publisher stream destroyed', event);\n //We preventing the default, in order to prevent stop the stream by OT.\n //We managing streams by ourselves and if we allow OT to close the stream, it cannot be reused.\n event.preventDefault();\n });\n otPublisher.on('videoElementCreated', function (event) {\n event.element.muted = true;\n });\n otPublisher.on('streamCreated', function (event) {\n trace.info('publisher stream created', event, otPublisher.stream.hasAudio);\n });\n resolve(otPublisher);\n });\n });\n };\n OpentokSession.prototype.destroyPublisherOnPeerConnection = function (peerConnection) {\n if (this.sessionExistsGuard(false) && peerConnection.publisher) {\n this._session.unpublish(peerConnection.publisher);\n }\n peerConnection.publisher = null;\n peerConnection.localStream = null;\n return Promise.resolve();\n };\n //#endregion\n //#region Subscriber\n OpentokSession.prototype.createMediaSubscriber = function (remoteStream) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n if (!_this.sessionExistsGuard(false)) {\n reject('Session not exists');\n return;\n }\n var subscriber = _this._session.subscribe(remoteStream, null, { insertDefaultUI: false }, function (err) {\n if (err) {\n trace.warn('Error creating subscriber', err);\n reject(err);\n return;\n }\n subscriber.on('videoElementCreated', function (event) {\n var element = event.element;\n var peerConnection = _this._peerConnections.get(remoteStream.connection.connectionId);\n var otMediaStream = element.srcObject;\n peerConnection.subscriber = subscriber;\n if (!otMediaStream) {\n trace.warn('MediaStream not found in OT video element');\n return;\n }\n trace.info('Registering remote media tracks', peerConnection.subscriber, otMediaStream);\n otMediaStream.getTracks().forEach(function (mediaTrack) {\n _this.addRemoteTrackToPeer(peerConnection, mediaTrack);\n });\n _this.registerPeersRemoteTracks(peerConnection);\n });\n resolve(subscriber);\n });\n });\n };\n OpentokSession.prototype.destroySubscriberOnPeerConnection = function (peerConnection) {\n if (this.sessionExistsGuard(false) && peerConnection.subscriber) {\n this._session.unsubscribe(peerConnection.subscriber);\n }\n peerConnection.subscriber = null;\n return Promise.resolve();\n /**\n REMARK- opentok provide the same media track id for all participates.\n when we unregister the media track we check by the id which is the same for all.\n **/\n // return this.unregisterPeersRemoteMediaTracks(peerConnection)\n // .catch(() => trace.warn('Error removing remote streams from peerConnection'))\n // .then(() => {\n // peerConnection.subscriber = null;\n // });\n };\n //#endregion\n OpentokSession.prototype.sessionExistsGuard = function (shouldThrow) {\n if (shouldThrow === void 0) { shouldThrow = true; }\n var connected = !!(this._session && this._session.connection && this._session.connection.connectionId);\n return guards_1.throwableGuard(connected, 'There no OpenTok session exists', shouldThrow);\n };\n return OpentokSession;\n}(MediaSessionBase_1.MediaSessionBase));\nexports.OpentokSession = OpentokSession;\n\n//# sourceMappingURL=SessionOpentok.js.map\n"]}
|