@wazo/sdk 1.0.0-alpha.2 → 1.0.0-alpha.20
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/README.md +16 -7
- package/dist/wazo-sdk.js +2 -2
- package/esm/__tests__/__voice__/call.test.js +52 -3
- package/esm/api/auth.js +3 -0
- package/esm/checker/checks/webrtc.js +2 -2
- package/esm/domain/CallLog.js +2 -3
- package/esm/domain/Phone/CTIPhone.js +2 -2
- package/esm/domain/Phone/WebRTCPhone.js +59 -57
- package/esm/index.js +3 -1
- package/esm/service/CallApi.js +4 -4
- package/esm/simple/Auth.js +13 -3
- package/esm/simple/Phone.js +5 -5
- package/esm/simple/index.js +2 -1
- package/esm/simple/room/Room.js +2 -2
- package/esm/simple/room/SipRoom.js +2 -2
- package/esm/state-machine/call-state-machine.js +34 -19
- package/esm/state-machine/softphone-state-machine.js +1 -2
- package/esm/state-machine/utils.js +10 -4
- package/esm/types/api/auth.d.ts +3 -0
- package/esm/types/api/auth.d.ts.map +1 -1
- package/esm/types/checker/checks/index.d.ts +1 -1
- package/esm/types/checker/checks/webrtc-transport.d.ts +2 -2
- package/esm/types/checker/checks/webrtc-transport.d.ts.map +1 -1
- package/esm/types/domain/CallLog.d.ts.map +1 -1
- package/esm/types/domain/CallSession.d.ts +3 -3
- package/esm/types/domain/CallSession.d.ts.map +1 -1
- package/esm/types/domain/Phone/CTIPhone.d.ts.map +1 -1
- package/esm/types/domain/Phone/WebRTCPhone.d.ts +22 -22
- package/esm/types/domain/Phone/WebRTCPhone.d.ts.map +1 -1
- package/esm/types/domain/types.d.ts +0 -4
- package/esm/types/domain/types.d.ts.map +1 -1
- package/esm/types/index.d.ts +3 -1
- package/esm/types/index.d.ts.map +1 -1
- package/esm/types/lib/WazoSessionDescriptionHandler.d.ts +3 -3
- package/esm/types/lib/WazoSessionDescriptionHandler.d.ts.map +1 -1
- package/esm/types/service/CallApi.d.ts +5 -5
- package/esm/types/service/CallApi.d.ts.map +1 -1
- package/esm/types/simple/Auth.d.ts +6 -1
- package/esm/types/simple/Auth.d.ts.map +1 -1
- package/esm/types/simple/Phone.d.ts +8 -8
- package/esm/types/simple/Phone.d.ts.map +1 -1
- package/esm/types/simple/index.d.ts +3 -1
- package/esm/types/simple/index.d.ts.map +1 -1
- package/esm/types/state-machine/call-state-machine.d.ts +12 -1
- package/esm/types/state-machine/call-state-machine.d.ts.map +1 -1
- package/esm/types/state-machine/softphone-state-machine.d.ts +1 -2
- package/esm/types/state-machine/softphone-state-machine.d.ts.map +1 -1
- package/esm/types/state-machine/utils.d.ts +1 -1
- package/esm/types/state-machine/utils.d.ts.map +1 -1
- package/esm/types/utils/sdp.d.ts +1 -2
- package/esm/types/utils/sdp.d.ts.map +1 -1
- package/esm/types/utils/update-from.d.ts +1 -1
- package/esm/types/utils/update-from.d.ts.map +1 -1
- package/esm/types/utils/webrtc.d.ts.map +1 -1
- package/esm/types/voice/call.d.ts +15 -3
- package/esm/types/voice/call.d.ts.map +1 -1
- package/esm/types/voice/softphone.d.ts +7 -0
- package/esm/types/voice/softphone.d.ts.map +1 -1
- package/esm/types/web-rtc-client.d.ts +39 -38
- package/esm/types/web-rtc-client.d.ts.map +1 -1
- package/esm/utils/sdp.js +16 -9
- package/esm/utils/update-from.js +2 -2
- package/esm/utils/webrtc.js +10 -4
- package/esm/voice/call.js +86 -28
- package/esm/voice/softphone.js +58 -17
- package/esm/web-rtc-client.js +67 -58
- package/lib/__tests__/__voice__/call.test.js +51 -2
- package/lib/api/auth.js +3 -0
- package/lib/checker/checks/webrtc.js +1 -1
- package/lib/domain/CallLog.js +2 -3
- package/lib/domain/Phone/CTIPhone.js +2 -2
- package/lib/domain/Phone/WebRTCPhone.js +58 -56
- package/lib/index.js +7 -3
- package/lib/service/CallApi.js +2 -2
- package/lib/simple/Auth.js +15 -3
- package/lib/simple/Phone.js +2 -2
- package/lib/simple/index.js +2 -1
- package/lib/simple/room/Room.js +1 -1
- package/lib/simple/room/SipRoom.js +1 -1
- package/lib/state-machine/call-state-machine.js +35 -20
- package/lib/state-machine/softphone-state-machine.js +1 -2
- package/lib/state-machine/utils.js +10 -4
- package/lib/types/api/auth.d.ts +3 -0
- package/lib/types/api/auth.d.ts.map +1 -1
- package/lib/types/checker/checks/index.d.ts +1 -1
- package/lib/types/checker/checks/webrtc-transport.d.ts +2 -2
- package/lib/types/checker/checks/webrtc-transport.d.ts.map +1 -1
- package/lib/types/domain/CallLog.d.ts.map +1 -1
- package/lib/types/domain/CallSession.d.ts +3 -3
- package/lib/types/domain/CallSession.d.ts.map +1 -1
- package/lib/types/domain/Phone/CTIPhone.d.ts.map +1 -1
- package/lib/types/domain/Phone/WebRTCPhone.d.ts +22 -22
- package/lib/types/domain/Phone/WebRTCPhone.d.ts.map +1 -1
- package/lib/types/domain/types.d.ts +0 -4
- package/lib/types/domain/types.d.ts.map +1 -1
- package/lib/types/index.d.ts +3 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/lib/WazoSessionDescriptionHandler.d.ts +3 -3
- package/lib/types/lib/WazoSessionDescriptionHandler.d.ts.map +1 -1
- package/lib/types/service/CallApi.d.ts +5 -5
- package/lib/types/service/CallApi.d.ts.map +1 -1
- package/lib/types/simple/Auth.d.ts +6 -1
- package/lib/types/simple/Auth.d.ts.map +1 -1
- package/lib/types/simple/Phone.d.ts +8 -8
- package/lib/types/simple/Phone.d.ts.map +1 -1
- package/lib/types/simple/index.d.ts +3 -1
- package/lib/types/simple/index.d.ts.map +1 -1
- package/lib/types/state-machine/call-state-machine.d.ts +12 -1
- package/lib/types/state-machine/call-state-machine.d.ts.map +1 -1
- package/lib/types/state-machine/softphone-state-machine.d.ts +1 -2
- package/lib/types/state-machine/softphone-state-machine.d.ts.map +1 -1
- package/lib/types/state-machine/utils.d.ts +1 -1
- package/lib/types/state-machine/utils.d.ts.map +1 -1
- package/lib/types/utils/sdp.d.ts +1 -2
- package/lib/types/utils/sdp.d.ts.map +1 -1
- package/lib/types/utils/update-from.d.ts +1 -1
- package/lib/types/utils/update-from.d.ts.map +1 -1
- package/lib/types/utils/webrtc.d.ts.map +1 -1
- package/lib/types/voice/call.d.ts +15 -3
- package/lib/types/voice/call.d.ts.map +1 -1
- package/lib/types/voice/softphone.d.ts +7 -0
- package/lib/types/voice/softphone.d.ts.map +1 -1
- package/lib/types/web-rtc-client.d.ts +39 -38
- package/lib/types/web-rtc-client.d.ts.map +1 -1
- package/lib/utils/sdp.js +17 -10
- package/lib/utils/update-from.js +2 -2
- package/lib/utils/webrtc.js +11 -4
- package/lib/voice/call.js +89 -27
- package/lib/voice/softphone.js +62 -17
- package/lib/web-rtc-client.js +66 -57
- package/package.json +1 -1
- package/src/__tests__/__voice__/call.test.ts +61 -3
- package/src/api/auth.ts +5 -0
- package/src/checker/checks/webrtc-transport.ts +2 -2
- package/src/checker/checks/webrtc.ts +2 -2
- package/src/domain/CallLog.ts +2 -3
- package/src/domain/CallSession.ts +3 -3
- package/src/domain/Phone/CTIPhone.ts +3 -2
- package/src/domain/Phone/WebRTCPhone.ts +87 -85
- package/src/domain/__tests__/CallSession.test.ts +4 -0
- package/src/domain/types.ts +0 -5
- package/src/index.ts +4 -1
- package/src/lib/WazoSessionDescriptionHandler.ts +3 -3
- package/src/service/CallApi.ts +7 -7
- package/src/simple/Auth.ts +15 -3
- package/src/simple/Phone.ts +11 -11
- package/src/simple/index.ts +2 -1
- package/src/simple/room/Room.ts +3 -3
- package/src/simple/room/SipRoom.ts +3 -3
- package/src/state-machine/call-state-machine.ts +38 -19
- package/src/state-machine/softphone-state-machine.ts +1 -2
- package/src/state-machine/utils.ts +12 -4
- package/src/utils/sdp.ts +18 -11
- package/src/utils/update-from.ts +2 -2
- package/src/utils/webrtc.ts +11 -4
- package/src/voice/call.ts +109 -36
- package/src/voice/softphone.ts +75 -18
- package/src/web-rtc-client.ts +112 -98
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-rtc-client.d.ts","sourceRoot":"","sources":["../../src/web-rtc-client.ts"],"names":[],"mappings":"AAGA,OAAO,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAG5E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAIjE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAStD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAoC,MAAM,gBAAgB,CAAC;AACnG,OAAO,OAAO,MAAM,iBAAiB,CAAC;AAGtC,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,YAAY,EAAoC,
|
|
1
|
+
{"version":3,"file":"web-rtc-client.d.ts","sourceRoot":"","sources":["../../src/web-rtc-client.ts"],"names":[],"mappings":"AAGA,OAAO,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAG5E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAIjE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAStD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAoC,MAAM,gBAAgB,CAAC;AACnG,OAAO,OAAO,MAAM,iBAAiB,CAAC;AAGtC,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,YAAY,EAAoC,OAAO,EAAiB,MAAM,gBAAgB,CAAC;AA4BpJ,eAAO,MAAM,MAAM,UAAuE,CAAC;AAC3F,eAAO,MAAM,eAAe,UAAsD,CAAC;AACnF,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAI/C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC/C,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,YAAY,CAAC;IAErB,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAE7C,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAE5B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAE9B,QAAQ,EAAE,OAAO,CAAC;IAElB,KAAK,EAAE,uBAAuB,GAAG,OAAO,GAAG,SAAS,CAAC;IAErD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAEhD,KAAK,EAAE,uBAAuB,GAAG,OAAO,GAAG,SAAS,CAAC;IAErD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAElC,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAE/C,iBAAiB,EAAE,MAAM,CAAC;IAE1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAElC,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAEpD,iBAAiB,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAEhD,SAAS,EAAE,SAAS,CAAC;IAErB,kBAAkB,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAEtE,WAAW,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAE/D,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErC,YAAY,EAAE,OAAO,CAAC;IAEtB,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE/C,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAEzD,WAAW,EAAE,OAAO,CAAC;IAGrB,aAAa,EAAE,MAAM,CAAC;IAEtB,UAAU,EAAE,MAAM,CAAC;IAEnB,WAAW,EAAE,MAAM,CAAC;IAEpB,YAAY,EAAE,MAAM,CAAC;IAErB,mBAAmB,EAAE,MAAM,CAAC;IAE5B,MAAM,EAAE,MAAM,CAAC;IAEf,SAAS,EAAE,MAAM,CAAC;IAElB,YAAY,EAAE,MAAM,CAAC;IAErB,eAAe,EAAE,MAAM,CAAC;IAExB,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,EAAE,MAAM,CAAC;IAEjB,QAAQ,EAAE,MAAM,CAAC;IAEjB,QAAQ,EAAE,MAAM,CAAC;IAEjB,WAAW,EAAE,MAAM,CAAC;IAEpB,QAAQ,EAAE,MAAM,CAAC;IAEjB,0BAA0B,EAAE,MAAM,CAAC;IAEnC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,cAAc,EAAE,MAAM,CAAC;IAEvB,WAAW,EAAE,MAAM,CAAC;IAEpB,eAAe,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,wBAAwB;IA+DjG,cAAc,CAAC,KAAK,EAAE,WAAW;IAMjC,mBAAmB,CAAC,KAAK,EAAE,sBAAsB;IAKjD,eAAe,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,GAAG,SAAS;IAqDxE,WAAW,IAAI,OAAO;IAItB,YAAY,IAAI,OAAO;IAIvB,YAAY,IAAI,OAAO;IAIvB,SAAS;IAaH,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK;IAkB1B,QAAQ,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAiHxC,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IA8BjE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAkDjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBrB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,UAAQ,EAAE,UAAU,UAAQ,EAAE,OAAO,KAAK,GAAG,OAAO,GAAG,IAAI;IAwFhH,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC3D,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAkClE,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,SAAO,GAAG,IAAI;IAU/D,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAgBvC,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvC,KAAK,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CzC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ5B,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ9B,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAqCvC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQtC,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQvC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,UAAQ,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IA0DrG,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,UAAQ,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IA2CrF,cAAc,CAAC,SAAS,EAAE,MAAM;IAIhC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAIrC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI/C,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAYjD,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAUnD,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAwBhD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IA8B7C,WAAW,CAAC,UAAU,4BAAuB,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,SAAe,GAAG,IAAI;IA0B9F,UAAU,IAAI,eAAe,GAAG,IAAI;IAsBpC,QAAQ,IAAI,cAAc;IAK1B,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAIrC,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAavC,uBAAuB,CAAC,EAAE,EAAE,MAAM;IAUlC,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAuErH,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAQxF,mBAAmB,CAAC,EAAE,EAAE,MAAM;IAoB9B,6BAA6B,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAwD3G,gBAAgB,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS;IAI7C,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,cAAc,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAgB,EAAE,UAAU,UAAQ,EAAE,SAAS,UAAQ,EAAE,UAAU,UAAQ,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAwFxL,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ1E,iBAAiB,CAAC,SAAS,EAAE,MAAM;IAKnC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAIrD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAIrD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAKzC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI/C,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS;IAKtE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAItD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAItD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAK1C,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIhD,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS;IAKvE,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS;IAI7E,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC,YAAY,IAAI,OAAO;IAIvB,cAAc,IAAI,IAAI;IAatB,aAAa,IAAI,IAAI;IAKrB,qBAAqB,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,IAAI;IAI7D,sBAAsB,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,IAAI;IAI9D,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAUnC,mBAAmB,IAAI,IAAI;IAW3B,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAOvC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS;IAIrD,aAAa,IAAI,MAAM,EAAE;IAInB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBpF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIlC,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoBzE,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAMxC,YAAY,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAiBtG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAiBnD,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B1C,SAAS,IAAI,OAAO;IAIpB,oBAAoB,IAAI,qBAAqB,GAAG,OAAO;IAIvD,oBAAoB,CAAC,KAAK,UAAQ,GAAG,qBAAqB,GAAG,OAAO;IAIpE,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC;IAwChC,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IAqB9F,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAyE/B,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,SAAS,UAAO,EAAE,aAAa,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDnH,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,GAAE,WAAW,GAAG,IAAI,GAAG,SAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA6DrG,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAkCtC,gBAAgB,IAAI,IAAI;IAQxB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAwB1C,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAgBnC,oBAAoB,CAAC,KAAK,UAAQ;IAwBlC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAkBtF,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,GAAE,uBAA4B;IA2BlE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,GAAE,uBAA4B;IAmBlE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,oBAAyB;IAa5D,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,iBAAsB;CAc7D"}
|
package/lib/utils/sdp.js
CHANGED
|
@@ -3,12 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getCallDisplayName = exports.getCallNumber = exports.makeURI = exports.replaceLocalIpModifier = exports.
|
|
6
|
+
exports.getCallDisplayName = exports.getCallNumber = exports.makeURI = exports.replaceLocalIpModifier = exports.getSipCallId = exports.addIcesInAllBundles = exports.fixSdp = exports.hasAnActiveVideo = exports.activateVideoModifier = exports.deactivateVideoModifier = exports.getVideoDirection = exports.toggleVideoDirection = exports.fixBundle = exports.isSdpValid = exports.areCandidateValid = exports.parseCandidate = exports.getCandidates = void 0;
|
|
7
7
|
/* eslint-disable no-underscore-dangle */
|
|
8
8
|
const sdp_transform_1 = __importDefault(require("sdp-transform"));
|
|
9
9
|
const user_agent_1 = require("sip.js/lib/api/user-agent");
|
|
10
10
|
const api_1 = require("sip.js/lib/api");
|
|
11
|
-
|
|
11
|
+
const session_dialog_1 = require("sip.js/lib/core/dialogs/session-dialog");
|
|
12
12
|
const getCandidates = (rawSdp) => {
|
|
13
13
|
if (!rawSdp) {
|
|
14
14
|
return [];
|
|
@@ -117,24 +117,31 @@ const addIcesInAllBundles = (sdp) => {
|
|
|
117
117
|
return sdp_transform_1.default.write(parsedSdp);
|
|
118
118
|
};
|
|
119
119
|
exports.addIcesInAllBundles = addIcesInAllBundles;
|
|
120
|
-
const
|
|
120
|
+
const getSipCallId = (sipSession) => {
|
|
121
121
|
if (!sipSession) {
|
|
122
122
|
return '';
|
|
123
123
|
}
|
|
124
|
-
const message = sipSession.message;
|
|
125
|
-
if (message === null || message === void 0 ? void 0 : message.callId) {
|
|
126
|
-
return message.callId.substring(0, exports.SIP_ID_LENGTH);
|
|
127
|
-
}
|
|
128
124
|
// For Inviter
|
|
129
125
|
// @ts-ignore: private
|
|
130
126
|
if (sipSession instanceof api_1.Inviter && sipSession.outgoingRequestMessage) {
|
|
131
127
|
// @ts-ignore: private
|
|
132
|
-
return sipSession.outgoingRequestMessage.callId
|
|
128
|
+
return sipSession.outgoingRequestMessage.callId;
|
|
133
129
|
}
|
|
134
130
|
// For Invitation
|
|
135
|
-
|
|
131
|
+
// @ts-ignore: private
|
|
132
|
+
if (sipSession instanceof api_1.Invitation && sipSession.incomingInviteRequest.message) {
|
|
133
|
+
// @ts-ignore: private
|
|
134
|
+
return sipSession.incomingInviteRequest.message.callId;
|
|
135
|
+
}
|
|
136
|
+
// For EarlyMedia
|
|
137
|
+
// @ts-ignore: private
|
|
138
|
+
if (sipSession instanceof session_dialog_1.SessionDialog) {
|
|
139
|
+
// @ts-ignore: private
|
|
140
|
+
return sipSession.dialogState.callId;
|
|
141
|
+
}
|
|
142
|
+
return sipSession.id;
|
|
136
143
|
};
|
|
137
|
-
exports.
|
|
144
|
+
exports.getSipCallId = getSipCallId;
|
|
138
145
|
// We need to replace 0.0.0.0 to 127.0.0.1 in the sdp to avoid MOH during a createOffer.
|
|
139
146
|
const replaceLocalIpModifier = (description) => Promise.resolve(Object.assign(Object.assign({}, JSON.parse(JSON.stringify(description))), { sdp: description.sdp.replace('c=IN IP4 0.0.0.0', 'c=IN IP4 127.0.0.1') }));
|
|
140
147
|
exports.replaceLocalIpModifier = replaceLocalIpModifier;
|
package/lib/utils/update-from.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
/* eslint-disable no-param-reassign */
|
|
4
|
-
exports.default = ((instance, from) => {
|
|
5
|
-
Object.keys(from)
|
|
4
|
+
exports.default = ((instance, from, attributes = null) => {
|
|
5
|
+
(attributes || Object.keys(from))
|
|
6
6
|
.forEach(key => {
|
|
7
7
|
if ((!instance[key] && from[key])
|
|
8
8
|
|| (typeof instance[key] !== 'undefined' && typeof from[key] !== 'undefined' && instance[key] !== from[key])) {
|
package/lib/utils/webrtc.js
CHANGED
|
@@ -176,12 +176,16 @@ const hasAVideoTrack = (sipCall) => (0, exports.hasALocalVideoTrack)(sipCall) ||
|
|
|
176
176
|
exports.hasAVideoTrack = hasAVideoTrack;
|
|
177
177
|
// eslint-disable-next-line no-unused-vars
|
|
178
178
|
const sessionWantsToDoVideo = (sipCall) => {
|
|
179
|
+
var _a, _b;
|
|
179
180
|
if (!sipCall) {
|
|
180
181
|
return false;
|
|
181
182
|
}
|
|
182
183
|
const { body, } = sipCall.request || sipCall;
|
|
183
184
|
// Sometimes with InviteClientContext the body is in the body attribute ...
|
|
184
185
|
const sdp = typeof body === 'object' && body ? body.body : body;
|
|
186
|
+
if (!sdp) {
|
|
187
|
+
return (_b = (_a = sipCall.sessionDescriptionHandler) === null || _a === void 0 ? void 0 : _a.localMediaStreamConstraints) === null || _b === void 0 ? void 0 : _b.video;
|
|
188
|
+
}
|
|
185
189
|
return (0, sdp_1.hasAnActiveVideo)(sdp);
|
|
186
190
|
};
|
|
187
191
|
exports.sessionWantsToDoVideo = sessionWantsToDoVideo;
|
|
@@ -241,6 +245,9 @@ exports.toggleVideo = toggleVideo;
|
|
|
241
245
|
const isVideoMuted = (sipCall) => {
|
|
242
246
|
const sdh = sipCall.sessionDescriptionHandler;
|
|
243
247
|
const pc = sdh === null || sdh === void 0 ? void 0 : sdh.peerConnection;
|
|
248
|
+
if (!pc) {
|
|
249
|
+
return true;
|
|
250
|
+
}
|
|
244
251
|
if (pc === null || pc === void 0 ? void 0 : pc.getSenders) {
|
|
245
252
|
for (const sender of pc.getSenders()) {
|
|
246
253
|
if (sender && sender.track && sender.track.kind === 'video') {
|
|
@@ -265,7 +272,7 @@ const cleanupStream = (stream) => {
|
|
|
265
272
|
exports.cleanupStream = cleanupStream;
|
|
266
273
|
const setLocalMediaStream = (sipCall, newStream) => {
|
|
267
274
|
logger.info('setting local media stream', {
|
|
268
|
-
id: sipCall
|
|
275
|
+
id: (0, sdp_1.getSipCallId)(sipCall),
|
|
269
276
|
tracks: newStream ? newStream.getTracks() : null,
|
|
270
277
|
});
|
|
271
278
|
if (sipCall.sessionDescriptionHandler) {
|
|
@@ -279,7 +286,7 @@ const updateRemoteStream = (sipCall, allTracks = true) => {
|
|
|
279
286
|
const remoteStream = (0, exports.getRemoteStream)(sipCall);
|
|
280
287
|
const pc = (0, exports.getPeerConnection)(sipCall);
|
|
281
288
|
logger.info('Updating remote stream', {
|
|
282
|
-
id: sipCall
|
|
289
|
+
id: (0, sdp_1.getSipCallId)(sipCall),
|
|
283
290
|
tracks: remoteStream ? remoteStream.getTracks() : null,
|
|
284
291
|
receiverTracks: pc && pc.getReceivers ? pc.getReceivers().map((receiver) => receiver.track) : null,
|
|
285
292
|
});
|
|
@@ -308,12 +315,12 @@ exports.isAudioOnly = isAudioOnly;
|
|
|
308
315
|
const getAudioConstraints = (audio) => { var _a; return (((_a = audio === null || audio === void 0 ? void 0 : audio.deviceId) === null || _a === void 0 ? void 0 : _a.exact) ? audio : true); };
|
|
309
316
|
exports.getAudioConstraints = getAudioConstraints;
|
|
310
317
|
const getVideoConstraints = (video = false) => {
|
|
311
|
-
var _a
|
|
318
|
+
var _a;
|
|
312
319
|
if (!video) {
|
|
313
320
|
return false;
|
|
314
321
|
}
|
|
315
322
|
// @ts-ignore: media constraints
|
|
316
|
-
return ((
|
|
323
|
+
return ((_a = video === null || video === void 0 ? void 0 : video.deviceId) === null || _a === void 0 ? void 0 : _a.exact) ? video : true;
|
|
317
324
|
};
|
|
318
325
|
exports.getVideoConstraints = getVideoConstraints;
|
|
319
326
|
// eslint-disable-next-line no-unused-vars
|
package/lib/voice/call.js
CHANGED
|
@@ -35,21 +35,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.MESSAGE_TRACK_UPDATED = exports.MESSAGE_TYPE_SIGNAL = exports.MESSAGE_TYPE_CHAT = exports.EVENT_CAMERA_DISABLED = exports.EVENT_CAMERA_RESUMED = exports.EVENT_WEB_RTC_STATS = exports.EVENT_SHARE_SCREEN_ENDED = exports.EVENT_SHARE_SCREEN_STARTED = exports.EVENT_SHARE_SCREEN_ENDING = exports.EVENT_REMOVE_STREAM = exports.EVENT_VIDEO_STREAM = exports.EVENT_AUDIO_STREAM = exports.EVENT_TRACK = exports.EVENT_REINVITE = exports.EVENT_CALL_RESUMED = exports.EVENT_CALL_HELD = exports.EVENT_CALL_UN_MUTED = exports.EVENT_CALL_MUTED = exports.EVENT_CALL_ENDED = exports.EVENT_CALL_TERMINATING = exports.EVENT_CALL_REJECTED = exports.EVENT_CALL_ERROR = exports.EVENT_EARLY_MEDIA = exports.EVENT_PROGRESS = exports.EVENT_CALL_CANCELED = exports.
|
|
38
|
+
exports.MESSAGE_TRACK_UPDATED = exports.MESSAGE_TYPE_SIGNAL = exports.MESSAGE_TYPE_CHAT = exports.EVENT_CAMERA_DISABLED = exports.EVENT_CAMERA_RESUMED = exports.EVENT_WEB_RTC_STATS = exports.EVENT_SHARE_SCREEN_ENDED = exports.EVENT_SHARE_SCREEN_STARTED = exports.EVENT_SHARE_SCREEN_ENDING = exports.EVENT_REMOVE_STREAM = exports.EVENT_VIDEO_STREAM = exports.EVENT_AUDIO_STREAM = exports.EVENT_TRACK = exports.EVENT_REINVITE = exports.EVENT_CALL_RESUMED = exports.EVENT_CALL_HELD = exports.EVENT_CALL_UN_MUTED = exports.EVENT_CALL_MUTED = exports.EVENT_CALL_ENDED = exports.EVENT_CALL_TERMINATING = exports.EVENT_CALL_REJECTED = exports.EVENT_CALL_ERROR = exports.EVENT_EARLY_MEDIA = exports.EVENT_PROGRESS = exports.EVENT_CALL_CANCELED = exports.EVENT_CALL_LOCALLY_ACCEPTED = exports.EVENT_CALL_REMOTLY_ACCEPTED = void 0;
|
|
39
39
|
/* eslint-disable no-underscore-dangle */
|
|
40
40
|
const events_1 = require("events");
|
|
41
41
|
const xstate_1 = require("xstate");
|
|
42
|
+
const inviter_1 = require("sip.js/lib/api/inviter");
|
|
42
43
|
const invitation_1 = require("sip.js/lib/api/invitation");
|
|
43
44
|
const session_state_1 = require("sip.js/lib/api/session-state");
|
|
44
45
|
const call_state_machine_1 = __importStar(require("../state-machine/call-state-machine"));
|
|
46
|
+
const new_from_1 = __importDefault(require("../utils/new-from"));
|
|
47
|
+
const update_from_1 = __importDefault(require("../utils/update-from"));
|
|
45
48
|
const IssueReporter_1 = __importDefault(require("../service/IssueReporter"));
|
|
46
|
-
const softphone_1 =
|
|
49
|
+
const softphone_1 = __importDefault(require("./softphone"));
|
|
47
50
|
const sdp_1 = require("../utils/sdp");
|
|
48
51
|
const utils_1 = require("../state-machine/utils");
|
|
49
52
|
const webrtc_1 = require("../utils/webrtc");
|
|
50
53
|
const logger = IssueReporter_1.default.loggerFor('call');
|
|
51
54
|
// Events
|
|
52
|
-
exports.
|
|
55
|
+
exports.EVENT_CALL_REMOTLY_ACCEPTED = 'remotelyAccepted';
|
|
56
|
+
exports.EVENT_CALL_LOCALLY_ACCEPTED = 'locallyAccepted';
|
|
53
57
|
exports.EVENT_CALL_CANCELED = 'canceled';
|
|
54
58
|
exports.EVENT_PROGRESS = 'progress';
|
|
55
59
|
exports.EVENT_EARLY_MEDIA = 'earlyMedia';
|
|
@@ -75,7 +79,11 @@ exports.EVENT_CAMERA_DISABLED = 'onCameraDisabled';
|
|
|
75
79
|
exports.MESSAGE_TYPE_CHAT = 'message/TYPE_CHAT';
|
|
76
80
|
exports.MESSAGE_TYPE_SIGNAL = 'message/TYPE_SIGNAL';
|
|
77
81
|
exports.MESSAGE_TRACK_UPDATED = 'onTrackUpdated';
|
|
82
|
+
const attributesToUpdate = ['apiId', 'talkingToIds', 'creationTime', 'answerTime', 'endTime', 'recording', 'recordingPaused', 'displayName', 'number'];
|
|
78
83
|
class Call extends events_1.EventEmitter {
|
|
84
|
+
static newFrom(call) {
|
|
85
|
+
return (0, new_from_1.default)(call, Call);
|
|
86
|
+
}
|
|
79
87
|
static parseCall(apiCall) {
|
|
80
88
|
const sipCall = {
|
|
81
89
|
id: apiCall.sipCallId,
|
|
@@ -85,28 +93,40 @@ class Call extends events_1.EventEmitter {
|
|
|
85
93
|
remoteIdentity: {
|
|
86
94
|
uri: {
|
|
87
95
|
_normal: {
|
|
88
|
-
user: apiCall.calleeNumber,
|
|
96
|
+
user: apiCall.calleeName || apiCall.calleeNumber,
|
|
89
97
|
},
|
|
90
98
|
},
|
|
91
99
|
},
|
|
92
100
|
// Mock sdk so `hasLocalVideo` will return true.
|
|
93
101
|
sessionDescriptionHandler: {
|
|
94
102
|
localMediaStream: {
|
|
95
|
-
getTracks: () => (apiCall.isVideo ? [{ kind: 'video', readyState: 'live' }] : []),
|
|
103
|
+
getTracks: () => (apiCall.isVideo ? [{ id: 'mocked', kind: 'video', readyState: 'live' }] : []),
|
|
96
104
|
},
|
|
97
105
|
},
|
|
98
106
|
};
|
|
99
107
|
const call = new Call(sipCall, softphone_1.default);
|
|
100
|
-
// call._sendAction(Actions.ES);
|
|
101
108
|
call.apiId = apiCall.id;
|
|
102
|
-
call.
|
|
109
|
+
call.creationTime = new Date(+apiCall.startingTime);
|
|
110
|
+
call.recording = apiCall.isRecording();
|
|
103
111
|
// Update call state
|
|
104
112
|
const snapshot = call.callActor.getSnapshot();
|
|
105
113
|
if (apiCall.isUp()) {
|
|
106
|
-
snapshot.value = {
|
|
114
|
+
snapshot.value = {
|
|
115
|
+
[call_state_machine_1.States.ESTABLISHED]: {
|
|
116
|
+
[call_state_machine_1.EstablishedStates.ONGOING]: {},
|
|
117
|
+
muteState: call_state_machine_1.EstablishedStates.UN_MUTED,
|
|
118
|
+
holdState: call_state_machine_1.EstablishedStates.UN_HELD,
|
|
119
|
+
},
|
|
120
|
+
};
|
|
107
121
|
}
|
|
108
122
|
if (apiCall.muted) {
|
|
109
|
-
snapshot.value = {
|
|
123
|
+
snapshot.value = {
|
|
124
|
+
[call_state_machine_1.States.ESTABLISHED]: {
|
|
125
|
+
[call_state_machine_1.EstablishedStates.ONGOING]: {},
|
|
126
|
+
muteState: call_state_machine_1.EstablishedStates.MUTED,
|
|
127
|
+
holdState: call_state_machine_1.EstablishedStates.UN_HELD,
|
|
128
|
+
},
|
|
129
|
+
};
|
|
110
130
|
}
|
|
111
131
|
if (apiCall.isRinging()) {
|
|
112
132
|
snapshot.value = call_state_machine_1.States.RINGING;
|
|
@@ -122,6 +142,7 @@ class Call extends events_1.EventEmitter {
|
|
|
122
142
|
super();
|
|
123
143
|
this.shouldSendReinvite = false;
|
|
124
144
|
this.recording = false;
|
|
145
|
+
this.recordingPaused = false;
|
|
125
146
|
this.callActor = (0, xstate_1.createActor)(call_state_machine_1.default);
|
|
126
147
|
this.callActor.start();
|
|
127
148
|
this.creationTime = new Date();
|
|
@@ -129,7 +150,6 @@ class Call extends events_1.EventEmitter {
|
|
|
129
150
|
this.sipCall = sipCall;
|
|
130
151
|
this.number = (0, sdp_1.getCallNumber)(sipCall);
|
|
131
152
|
this.displayName = (0, sdp_1.getCallDisplayName)(sipCall);
|
|
132
|
-
this._bindEvents();
|
|
133
153
|
}
|
|
134
154
|
accept() {
|
|
135
155
|
return __awaiter(this, arguments, void 0, function* (options = {}) {
|
|
@@ -141,6 +161,7 @@ class Call extends events_1.EventEmitter {
|
|
|
141
161
|
this.answerTime = new Date();
|
|
142
162
|
return this.phone.client.answer(this.sipCall, options.withCamera).then(() => {
|
|
143
163
|
logger.info('call - accepted', Object.assign({ id: this.id }, options));
|
|
164
|
+
this.emit(exports.EVENT_CALL_LOCALLY_ACCEPTED, this);
|
|
144
165
|
return this.id;
|
|
145
166
|
}).catch(e => {
|
|
146
167
|
logger.error(e);
|
|
@@ -153,16 +174,20 @@ class Call extends events_1.EventEmitter {
|
|
|
153
174
|
return __awaiter(this, void 0, void 0, function* () {
|
|
154
175
|
(0, utils_1.assertCan)(this.callActor, call_state_machine_1.Actions.REJECT);
|
|
155
176
|
logger.info('call - reject', { id: this.id });
|
|
156
|
-
this.
|
|
157
|
-
this.shouldSendReinvite = false;
|
|
158
|
-
return this.hangup();
|
|
177
|
+
return this._terminate();
|
|
159
178
|
});
|
|
160
179
|
}
|
|
161
180
|
hangup() {
|
|
162
181
|
return __awaiter(this, void 0, void 0, function* () {
|
|
163
182
|
(0, utils_1.assertCan)(this.callActor, call_state_machine_1.Actions.HANGUP);
|
|
164
183
|
logger.info('call - hangup', { id: this.id });
|
|
184
|
+
return this._terminate();
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
_terminate() {
|
|
188
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
165
189
|
yield this.phone.client.hangup(this.sipCall);
|
|
190
|
+
this.shouldSendReinvite = false;
|
|
166
191
|
// Remove this call from softphone's calls
|
|
167
192
|
this.phone.onCallTerminated(this);
|
|
168
193
|
return true;
|
|
@@ -261,26 +286,38 @@ class Call extends events_1.EventEmitter {
|
|
|
261
286
|
turnCameraOn() {
|
|
262
287
|
(0, utils_1.assertState)(this.callActor, call_state_machine_1.States.ESTABLISHED);
|
|
263
288
|
logger.info('call - turn camera on', { id: this.id });
|
|
264
|
-
(0, webrtc_1.toggleVideo)(this.sipCall,
|
|
289
|
+
(0, webrtc_1.toggleVideo)(this.sipCall, false);
|
|
265
290
|
this.emit(exports.EVENT_CAMERA_RESUMED);
|
|
266
291
|
}
|
|
267
292
|
turnCameraOff() {
|
|
268
293
|
(0, utils_1.assertState)(this.callActor, call_state_machine_1.States.ESTABLISHED);
|
|
269
294
|
logger.info('call - turn camera off', { id: this.id });
|
|
270
|
-
(0, webrtc_1.toggleVideo)(this.sipCall,
|
|
295
|
+
(0, webrtc_1.toggleVideo)(this.sipCall, true);
|
|
271
296
|
this.emit(exports.EVENT_CAMERA_DISABLED);
|
|
272
297
|
}
|
|
273
298
|
isMuted() {
|
|
274
|
-
return this._hasEstablishedState(call_state_machine_1.EstablishedStates.MUTED);
|
|
299
|
+
return this._hasEstablishedState('muteState', call_state_machine_1.EstablishedStates.MUTED);
|
|
275
300
|
}
|
|
276
301
|
isCameraMuted() {
|
|
277
302
|
return (0, webrtc_1.isVideoMuted)(this.sipCall);
|
|
278
303
|
}
|
|
279
304
|
isHeld() {
|
|
280
|
-
return this._hasEstablishedState(call_state_machine_1.EstablishedStates.HELD);
|
|
305
|
+
return this._hasEstablishedState('holdState', call_state_machine_1.EstablishedStates.HELD);
|
|
306
|
+
}
|
|
307
|
+
isEstablishing() {
|
|
308
|
+
return this.sipCall.state === session_state_1.SessionState.Establishing;
|
|
281
309
|
}
|
|
282
310
|
isEstablished() {
|
|
283
|
-
return call_state_machine_1.States.ESTABLISHED in this.state;
|
|
311
|
+
return typeof this.state === 'object' && call_state_machine_1.States.ESTABLISHED in this.state;
|
|
312
|
+
}
|
|
313
|
+
isRinging() {
|
|
314
|
+
return this.state === call_state_machine_1.States.RINGING;
|
|
315
|
+
}
|
|
316
|
+
isOutgoing() {
|
|
317
|
+
return this.sipCall instanceof inviter_1.Inviter;
|
|
318
|
+
}
|
|
319
|
+
isIncoming() {
|
|
320
|
+
return !this.isOutgoing();
|
|
284
321
|
}
|
|
285
322
|
isConference() {
|
|
286
323
|
var _a;
|
|
@@ -289,7 +326,7 @@ class Call extends events_1.EventEmitter {
|
|
|
289
326
|
transfer(target) {
|
|
290
327
|
(0, utils_1.assertState)(this.callActor, call_state_machine_1.States.ESTABLISHED);
|
|
291
328
|
logger.info('call - transfer', { id: this.id, target });
|
|
292
|
-
this.phone.client.transfer(this.sipCall, target);
|
|
329
|
+
return this.phone.client.transfer(this.sipCall, target);
|
|
293
330
|
}
|
|
294
331
|
atxfer() {
|
|
295
332
|
(0, utils_1.assertState)(this.callActor, call_state_machine_1.States.ESTABLISHED);
|
|
@@ -427,9 +464,14 @@ class Call extends events_1.EventEmitter {
|
|
|
427
464
|
logger.info('call - updrading directly in screensharing mode', { id: this.id, tracks: localStream === null || localStream === void 0 ? void 0 : localStream.getTracks() });
|
|
428
465
|
this._onScreenSharing(localStream, false, desktop);
|
|
429
466
|
}
|
|
467
|
+
onMakeCall() {
|
|
468
|
+
this._bindEvents();
|
|
469
|
+
this._sendAction(call_state_machine_1.Actions.MAKE_CALL);
|
|
470
|
+
}
|
|
430
471
|
onAccepted() {
|
|
472
|
+
this.answerTime = new Date();
|
|
431
473
|
this._sendAction(call_state_machine_1.Actions.REMOTLY_ACCEPTED);
|
|
432
|
-
this.emit(exports.
|
|
474
|
+
this.emit(exports.EVENT_CALL_REMOTLY_ACCEPTED);
|
|
433
475
|
}
|
|
434
476
|
onProgress() {
|
|
435
477
|
this.emit(exports.EVENT_PROGRESS);
|
|
@@ -445,6 +487,7 @@ class Call extends events_1.EventEmitter {
|
|
|
445
487
|
}
|
|
446
488
|
onCallIncoming() {
|
|
447
489
|
this._sendAction(call_state_machine_1.Actions.INCOMING_CALL);
|
|
490
|
+
this._bindEvents();
|
|
448
491
|
}
|
|
449
492
|
onRejected() {
|
|
450
493
|
this.endTime = new Date();
|
|
@@ -466,6 +509,9 @@ class Call extends events_1.EventEmitter {
|
|
|
466
509
|
hasLocalVideo() {
|
|
467
510
|
return (0, webrtc_1.hasLocalVideo)(this.sipCall);
|
|
468
511
|
}
|
|
512
|
+
wantsToDoVideo() {
|
|
513
|
+
return (0, webrtc_1.sessionWantsToDoVideo)(this.sipCall);
|
|
514
|
+
}
|
|
469
515
|
getLocalStream() {
|
|
470
516
|
return (0, webrtc_1.getLocalStream)(this.sipCall);
|
|
471
517
|
}
|
|
@@ -478,23 +524,37 @@ class Call extends events_1.EventEmitter {
|
|
|
478
524
|
isVideoRemotelyHeld() {
|
|
479
525
|
return (0, webrtc_1.isVideoRemotelyHeld)(this.sipCall);
|
|
480
526
|
}
|
|
481
|
-
isRinging() {
|
|
482
|
-
return this.state === call_state_machine_1.States.RINGING;
|
|
483
|
-
}
|
|
484
527
|
onReinvite(request, updatedCalleeName, updatedNumber, hadRemoteVideo) {
|
|
485
528
|
this.emit(exports.EVENT_REINVITE, request, updatedCalleeName, updatedNumber, hadRemoteVideo);
|
|
486
529
|
}
|
|
530
|
+
updateFrom(call) {
|
|
531
|
+
(0, update_from_1.default)(this, call, attributesToUpdate);
|
|
532
|
+
}
|
|
533
|
+
is(otherCall) {
|
|
534
|
+
return otherCall && this.id && this.id === otherCall.id;
|
|
535
|
+
}
|
|
536
|
+
shouldAutoAnswer() {
|
|
537
|
+
var _a;
|
|
538
|
+
return !!((_a = this.sipCall.request) === null || _a === void 0 ? void 0 : _a.getHeader('alert-info'));
|
|
539
|
+
}
|
|
487
540
|
get id() {
|
|
488
|
-
return (0, sdp_1.
|
|
541
|
+
return (0, sdp_1.getSipCallId)(this.sipCall);
|
|
489
542
|
}
|
|
490
543
|
get state() {
|
|
491
544
|
return (0, utils_1.getState)(this.callActor);
|
|
492
545
|
}
|
|
493
|
-
_hasEstablishedState(establishedState) {
|
|
546
|
+
_hasEstablishedState(subState, establishedState) {
|
|
494
547
|
const state = this.state;
|
|
495
|
-
|
|
548
|
+
if (typeof state !== 'object') {
|
|
549
|
+
return false;
|
|
550
|
+
}
|
|
551
|
+
if (!(call_state_machine_1.States.ESTABLISHED in state)) {
|
|
552
|
+
return false;
|
|
553
|
+
}
|
|
554
|
+
return state[call_state_machine_1.States.ESTABLISHED][subState] === establishedState;
|
|
496
555
|
}
|
|
497
556
|
_bindEvents() {
|
|
557
|
+
var _a, _b;
|
|
498
558
|
if (this.sipCall instanceof invitation_1.Invitation) {
|
|
499
559
|
// Monkey patch to know when canceled with the CANCEL message
|
|
500
560
|
const onCancel = this.sipCall._onCancel.bind(this.sipCall);
|
|
@@ -505,7 +565,7 @@ class Call extends events_1.EventEmitter {
|
|
|
505
565
|
this.emit(exports.EVENT_CALL_CANCELED, elsewhere);
|
|
506
566
|
};
|
|
507
567
|
}
|
|
508
|
-
this.sipCall.stateChange.addListener((newState) => {
|
|
568
|
+
(_b = (_a = this.sipCall) === null || _a === void 0 ? void 0 : _a.stateChange) === null || _b === void 0 ? void 0 : _b.addListener((newState) => {
|
|
509
569
|
switch (newState) {
|
|
510
570
|
case session_state_1.SessionState.Terminating:
|
|
511
571
|
logger.info('call - terminating', { id: this.id });
|
|
@@ -630,7 +690,9 @@ class Call extends events_1.EventEmitter {
|
|
|
630
690
|
this.emit(exports.EVENT_SHARE_SCREEN_STARTED, screenStream);
|
|
631
691
|
}
|
|
632
692
|
_sendAction(action) {
|
|
693
|
+
const was = this.state;
|
|
633
694
|
this.callActor.send({ type: action });
|
|
695
|
+
logger.trace('call - send action', { id: this.id, action, was, state: this.state });
|
|
634
696
|
}
|
|
635
697
|
}
|
|
636
698
|
exports.default = Call;
|