@flashphoner/websdk 2.0.212 → 2.0.217
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/docTemplate/README.md +1 -1
- package/examples/demo/streaming/conference/conference.html +4 -0
- package/examples/demo/streaming/conference/conference.js +203 -62
- package/examples/demo/streaming/video-chat/video-chat.html +5 -0
- package/flashphoner-no-flash.js +1128 -818
- package/flashphoner-no-flash.min.js +2 -2
- package/flashphoner-no-webrtc.js +1122 -812
- package/flashphoner-no-webrtc.min.js +2 -2
- package/flashphoner-no-wsplayer.js +1128 -818
- package/flashphoner-no-wsplayer.min.js +2 -2
- package/flashphoner-room-api.js +1112 -908
- package/flashphoner-room-api.min.js +2 -2
- package/flashphoner-temasys-flash-websocket-without-adapterjs.js +1129 -814
- package/flashphoner-temasys-flash-websocket.js +1127 -812
- package/flashphoner-temasys-flash-websocket.min.js +1 -1
- package/flashphoner-webrtc-only.js +1122 -817
- package/flashphoner-webrtc-only.min.js +1 -1
- package/flashphoner.js +1134 -819
- package/flashphoner.min.js +2 -2
- package/package.json +1 -1
- package/src/constants.d.ts +792 -1
- package/src/constants.js +790 -704
- package/src/flash-media-provider.js +5 -0
- package/src/flashphoner-core.d.ts +359 -209
- package/src/flashphoner-core.js +98 -29
- package/src/room-module.d.ts +2 -2
- package/src/room-module.js +9 -2
- package/src/temasys-media-provider.js +5 -0
- package/src/util.js +207 -185
- package/src/webrtc-media-provider.js +12 -7
- package/src/websocket-media-provider.js +5 -0
|
@@ -8579,717 +8579,926 @@ function filterStats(result, track, outbound) {
|
|
|
8579
8579
|
* @see Session
|
|
8580
8580
|
*/
|
|
8581
8581
|
|
|
8582
|
-
var
|
|
8583
|
-
/**
|
|
8584
|
-
|
|
8585
|
-
|
|
8586
|
-
|
|
8587
|
-
|
|
8582
|
+
var SESSION_STATUS = Object.freeze({
|
|
8583
|
+
/**
|
|
8584
|
+
* Fires when {@link Session} ws socket opens.
|
|
8585
|
+
* @event CONNECTED
|
|
8586
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8587
|
+
*/
|
|
8588
|
+
CONNECTED: 'CONNECTED',
|
|
8588
8589
|
|
|
8589
|
-
|
|
8590
|
-
|
|
8591
|
-
|
|
8592
|
-
|
|
8593
|
-
|
|
8594
|
-
|
|
8590
|
+
/**
|
|
8591
|
+
* Fires when {@link Session} receives connect ack from REST App.
|
|
8592
|
+
* @event ESTABLISHED
|
|
8593
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8594
|
+
*/
|
|
8595
|
+
ESTABLISHED: 'ESTABLISHED',
|
|
8595
8596
|
|
|
8596
|
-
|
|
8597
|
-
|
|
8598
|
-
|
|
8599
|
-
|
|
8600
|
-
|
|
8601
|
-
|
|
8597
|
+
/**
|
|
8598
|
+
* Fires when {@link Session} disconnects.
|
|
8599
|
+
* @event DISCONNECTED
|
|
8600
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8601
|
+
*/
|
|
8602
|
+
DISCONNECTED: 'DISCONNECTED',
|
|
8602
8603
|
|
|
8603
|
-
|
|
8604
|
-
|
|
8605
|
-
|
|
8606
|
-
|
|
8607
|
-
|
|
8608
|
-
|
|
8604
|
+
/**
|
|
8605
|
+
* Fires if {@link Session} call of rest method error.
|
|
8606
|
+
* @event WARN
|
|
8607
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8608
|
+
*/
|
|
8609
|
+
WARN: 'WARN',
|
|
8609
8610
|
|
|
8610
|
-
|
|
8611
|
-
|
|
8612
|
-
|
|
8613
|
-
|
|
8614
|
-
|
|
8615
|
-
|
|
8616
|
-
|
|
8611
|
+
/**
|
|
8612
|
+
* Fires if {@link Session} connection failed.
|
|
8613
|
+
* Some of the reasons can be network connection failed, REST App failed
|
|
8614
|
+
* @event FAILED
|
|
8615
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8616
|
+
*/
|
|
8617
|
+
FAILED: 'FAILED',
|
|
8617
8618
|
|
|
8618
|
-
|
|
8619
|
-
|
|
8620
|
-
|
|
8621
|
-
|
|
8622
|
-
|
|
8623
|
-
|
|
8619
|
+
/**
|
|
8620
|
+
* Fires wneh {@link Session} receives debug event
|
|
8621
|
+
* @event DEBUG
|
|
8622
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8623
|
+
*/
|
|
8624
|
+
DEBUG: 'DEBUG',
|
|
8624
8625
|
|
|
8625
|
-
|
|
8626
|
-
|
|
8627
|
-
|
|
8628
|
-
|
|
8629
|
-
|
|
8630
|
-
|
|
8631
|
-
|
|
8626
|
+
/**
|
|
8627
|
+
* Fires when {@link Session} receives custom REST App message.
|
|
8628
|
+
*
|
|
8629
|
+
* @event APP_DATA
|
|
8630
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8631
|
+
*/
|
|
8632
|
+
APP_DATA: 'APP_DATA',
|
|
8632
8633
|
|
|
8633
|
-
|
|
8634
|
-
|
|
8635
|
-
|
|
8636
|
-
|
|
8637
|
-
|
|
8638
|
-
|
|
8639
|
-
|
|
8634
|
+
/**
|
|
8635
|
+
* Fires when {@link Session} receives status of sendData operation.
|
|
8636
|
+
*
|
|
8637
|
+
* @event SEND_DATA_STATUS
|
|
8638
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8639
|
+
*/
|
|
8640
|
+
SEND_DATA_STATUS: 'SEND_DATA_STATUS',
|
|
8640
8641
|
|
|
8641
|
-
|
|
8642
|
+
/**
|
|
8643
|
+
* State of newly created {@link Session}.
|
|
8644
|
+
*
|
|
8645
|
+
* @event PENDING
|
|
8646
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8647
|
+
*/
|
|
8648
|
+
PENDING: 'PENDING',
|
|
8642
8649
|
|
|
8643
|
-
|
|
8644
|
-
|
|
8645
|
-
|
|
8646
|
-
|
|
8647
|
-
|
|
8648
|
-
|
|
8649
|
-
|
|
8650
|
+
/**
|
|
8651
|
+
* Fires when {@link Session} registers as sip client.
|
|
8652
|
+
*
|
|
8653
|
+
* @event REGISTERED
|
|
8654
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8655
|
+
*/
|
|
8656
|
+
REGISTERED: 'REGISTERED',
|
|
8650
8657
|
|
|
8651
|
-
|
|
8652
|
-
|
|
8653
|
-
|
|
8654
|
-
|
|
8655
|
-
|
|
8656
|
-
|
|
8657
|
-
|
|
8658
|
+
/**
|
|
8659
|
+
* Fires when {@link Session} unregisters as sip client.
|
|
8660
|
+
*
|
|
8661
|
+
* @event UNREGISTERED
|
|
8662
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8663
|
+
*/
|
|
8664
|
+
UNREGISTERED: 'UNREGISTERED',
|
|
8658
8665
|
|
|
8659
|
-
|
|
8660
|
-
|
|
8666
|
+
/**
|
|
8667
|
+
* Fires when {@link Session} receives an incoming call.
|
|
8668
|
+
*
|
|
8669
|
+
* @event INCOMING_CALL
|
|
8670
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8671
|
+
*/
|
|
8672
|
+
INCOMING_CALL: 'INCOMING_CALL'
|
|
8673
|
+
});
|
|
8661
8674
|
/**
|
|
8662
8675
|
* @namespace Flashphoner.constants.STREAM_STATUS
|
|
8663
8676
|
* @see Stream
|
|
8664
8677
|
*/
|
|
8665
8678
|
|
|
8666
|
-
var
|
|
8667
|
-
|
|
8668
|
-
|
|
8679
|
+
var STREAM_STATUS = Object.freeze({
|
|
8680
|
+
/**
|
|
8681
|
+
* State of newly created {@link Stream}.
|
|
8682
|
+
*
|
|
8683
|
+
* @event NEW
|
|
8684
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8685
|
+
*/
|
|
8686
|
+
NEW: 'NEW',
|
|
8669
8687
|
|
|
8670
|
-
|
|
8671
|
-
|
|
8672
|
-
|
|
8673
|
-
|
|
8674
|
-
|
|
8675
|
-
|
|
8688
|
+
/**
|
|
8689
|
+
* State before {@link Stream} publishing/playing.
|
|
8690
|
+
*
|
|
8691
|
+
* @event PENDING
|
|
8692
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8693
|
+
*/
|
|
8694
|
+
PENDING: 'PENDING',
|
|
8676
8695
|
|
|
8677
|
-
|
|
8678
|
-
|
|
8679
|
-
|
|
8680
|
-
|
|
8681
|
-
|
|
8682
|
-
|
|
8696
|
+
/**
|
|
8697
|
+
* Fires when {@link Stream} starts publishing.
|
|
8698
|
+
* @event PUBLISHING
|
|
8699
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8700
|
+
*/
|
|
8701
|
+
PUBLISHING: 'PUBLISHING',
|
|
8683
8702
|
|
|
8684
|
-
|
|
8685
|
-
|
|
8686
|
-
|
|
8687
|
-
|
|
8688
|
-
|
|
8689
|
-
|
|
8703
|
+
/**
|
|
8704
|
+
* Fires when {@link Stream} starts playing.
|
|
8705
|
+
* @event PLAYING
|
|
8706
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8707
|
+
*/
|
|
8708
|
+
PLAYING: 'PLAYING',
|
|
8690
8709
|
|
|
8691
|
-
|
|
8692
|
-
|
|
8693
|
-
|
|
8694
|
-
|
|
8695
|
-
|
|
8696
|
-
|
|
8710
|
+
/**
|
|
8711
|
+
* Fires if {@link Stream} paused.
|
|
8712
|
+
* @event PAUSED
|
|
8713
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8714
|
+
*/
|
|
8715
|
+
PAUSED: 'PAUSED',
|
|
8697
8716
|
|
|
8698
|
-
|
|
8699
|
-
|
|
8700
|
-
|
|
8701
|
-
|
|
8702
|
-
|
|
8703
|
-
|
|
8717
|
+
/**
|
|
8718
|
+
* Fires if {@link Stream} was unpublished.
|
|
8719
|
+
* @event UNPUBLISHED
|
|
8720
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8721
|
+
*/
|
|
8722
|
+
UNPUBLISHED: 'UNPUBLISHED',
|
|
8704
8723
|
|
|
8705
|
-
|
|
8706
|
-
|
|
8707
|
-
|
|
8708
|
-
|
|
8709
|
-
|
|
8710
|
-
|
|
8724
|
+
/**
|
|
8725
|
+
* Fires if playing {@link Stream} was stopped.
|
|
8726
|
+
* @event STOPPED
|
|
8727
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8728
|
+
*/
|
|
8729
|
+
STOPPED: 'STOPPED',
|
|
8711
8730
|
|
|
8712
|
-
|
|
8713
|
-
|
|
8714
|
-
|
|
8715
|
-
|
|
8716
|
-
|
|
8717
|
-
|
|
8731
|
+
/**
|
|
8732
|
+
* Fires if {@link Stream} failed.
|
|
8733
|
+
* @event FAILED
|
|
8734
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8735
|
+
*/
|
|
8736
|
+
FAILED: 'FAILED',
|
|
8718
8737
|
|
|
8719
|
-
|
|
8720
|
-
|
|
8721
|
-
|
|
8722
|
-
|
|
8723
|
-
|
|
8724
|
-
|
|
8738
|
+
/**
|
|
8739
|
+
* Fires if {@link Stream} playback problem.
|
|
8740
|
+
* @event PLAYBACK_PROBLEM
|
|
8741
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8742
|
+
*/
|
|
8743
|
+
PLAYBACK_PROBLEM: 'PLAYBACK_PROBLEM',
|
|
8725
8744
|
|
|
8726
|
-
|
|
8727
|
-
|
|
8728
|
-
|
|
8729
|
-
|
|
8730
|
-
|
|
8731
|
-
|
|
8732
|
-
*/
|
|
8745
|
+
/**
|
|
8746
|
+
* Fires if playing {@link Stream} picture resizing.
|
|
8747
|
+
* @event RESIZE
|
|
8748
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8749
|
+
*/
|
|
8750
|
+
RESIZE: 'RESIZE',
|
|
8733
8751
|
|
|
8734
|
-
|
|
8735
|
-
|
|
8736
|
-
|
|
8737
|
-
|
|
8738
|
-
|
|
8739
|
-
|
|
8752
|
+
/**
|
|
8753
|
+
* Fires when {@link Stream} snapshot becomes available.
|
|
8754
|
+
* Snapshot is base64 encoded png available through {@link Stream.getInfo}
|
|
8755
|
+
* @event SNAPSHOT_COMPLETE
|
|
8756
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8757
|
+
*/
|
|
8758
|
+
SNAPSHOT_COMPLETE: 'SNAPSHOT_COMPLETE',
|
|
8740
8759
|
|
|
8741
|
-
|
|
8760
|
+
/**
|
|
8761
|
+
* Fires on playing {@link Stream} if bitrate is higher than available network bandwidth.
|
|
8762
|
+
* @event NOT_ENOUGH_BANDWIDTH
|
|
8763
|
+
* @memberof Flashphoner.constants.NOT_ENOUGH_BANDWIDTH
|
|
8764
|
+
*/
|
|
8765
|
+
NOT_ENOUGH_BANDWIDTH: 'NOT_ENOUGH_BANDWIDTH'
|
|
8766
|
+
});
|
|
8742
8767
|
/**
|
|
8743
8768
|
* @namespace Flashphoner.constants.CALL_STATUS
|
|
8744
8769
|
* @see Call
|
|
8745
8770
|
*/
|
|
8746
8771
|
|
|
8747
|
-
var
|
|
8748
|
-
|
|
8749
|
-
|
|
8750
|
-
|
|
8751
|
-
|
|
8752
|
-
|
|
8753
|
-
|
|
8754
|
-
|
|
8755
|
-
|
|
8756
|
-
|
|
8757
|
-
|
|
8758
|
-
|
|
8759
|
-
|
|
8772
|
+
var CALL_STATUS = Object.freeze({
|
|
8773
|
+
/**
|
|
8774
|
+
* State of newly created {@link Call}
|
|
8775
|
+
* @event NEW
|
|
8776
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
8777
|
+
*/
|
|
8778
|
+
NEW: 'NEW',
|
|
8779
|
+
|
|
8780
|
+
/**
|
|
8781
|
+
* The server is ringing to the callee
|
|
8782
|
+
* @event RING
|
|
8783
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
8784
|
+
*/
|
|
8785
|
+
RING: 'RING',
|
|
8786
|
+
RING_MEDIA: 'RING_MEDIA',
|
|
8787
|
+
|
|
8788
|
+
/**
|
|
8789
|
+
* The {@link Call} was put on hold
|
|
8790
|
+
* @event HOLD
|
|
8791
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
8792
|
+
*/
|
|
8793
|
+
HOLD: 'HOLD',
|
|
8794
|
+
|
|
8795
|
+
/**
|
|
8796
|
+
* The {@link Call} is established
|
|
8797
|
+
* @event ESTABLISHED
|
|
8798
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
8799
|
+
*/
|
|
8800
|
+
ESTABLISHED: 'ESTABLISHED',
|
|
8801
|
+
|
|
8802
|
+
/**
|
|
8803
|
+
* The {@link Call} is finished
|
|
8804
|
+
* @event FINISH
|
|
8805
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
8806
|
+
*/
|
|
8807
|
+
FINISH: 'FINISH',
|
|
8808
|
+
|
|
8809
|
+
/**
|
|
8810
|
+
* Callee is busy
|
|
8811
|
+
* @event BUSY
|
|
8812
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
8813
|
+
*/
|
|
8814
|
+
BUSY: 'BUSY',
|
|
8815
|
+
|
|
8816
|
+
/**
|
|
8817
|
+
* SIP session is in progress
|
|
8818
|
+
* @event SESSION_PROGRESS
|
|
8819
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
8820
|
+
*/
|
|
8821
|
+
SESSION_PROGRESS: 'SESSION_PROGRESS',
|
|
8822
|
+
|
|
8823
|
+
/**
|
|
8824
|
+
* The {@link Call} is failed
|
|
8825
|
+
* @event FAILED
|
|
8826
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
8827
|
+
*/
|
|
8828
|
+
FAILED: 'FAILED',
|
|
8829
|
+
|
|
8830
|
+
/**
|
|
8831
|
+
* The {@link Call} state before ringing
|
|
8832
|
+
* @event PENDING
|
|
8833
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
8834
|
+
*/
|
|
8835
|
+
PENDING: 'PENDING',
|
|
8836
|
+
|
|
8837
|
+
/**
|
|
8838
|
+
* The server trying to establish {@link Call}
|
|
8839
|
+
* @event TRYING
|
|
8840
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
8841
|
+
*/
|
|
8842
|
+
TRYING: 'TRYING'
|
|
8843
|
+
});
|
|
8760
8844
|
/**
|
|
8761
8845
|
* @namespace Flashphoner.constants.STREAM_STATUS_INFO
|
|
8762
8846
|
* @see Stream
|
|
8763
8847
|
*/
|
|
8764
8848
|
|
|
8765
|
-
var
|
|
8766
|
-
/**
|
|
8767
|
-
|
|
8768
|
-
|
|
8769
|
-
|
|
8770
|
-
|
|
8771
|
-
|
|
8772
|
-
define(streamStatusInfo, 'FAILED_BY_ICE_ERROR', 'Failed by ICE error');
|
|
8773
|
-
/**
|
|
8774
|
-
* Timeout has been reached during ICE establishment.
|
|
8775
|
-
* @event FAILED_BY_ICE_TIMEOUT
|
|
8776
|
-
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8777
|
-
*/
|
|
8849
|
+
var STREAM_STATUS_INFO = Object.freeze({
|
|
8850
|
+
/**
|
|
8851
|
+
* Indicates general error during ICE negotiation. Usually occurs if client is behind some exotic nat/firewall.
|
|
8852
|
+
* @event FAILED_BY_ICE_ERROR
|
|
8853
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8854
|
+
*/
|
|
8855
|
+
FAILED_BY_ICE_ERROR: 'Failed by ICE error',
|
|
8778
8856
|
|
|
8779
|
-
|
|
8780
|
-
|
|
8781
|
-
|
|
8782
|
-
|
|
8783
|
-
|
|
8784
|
-
|
|
8857
|
+
/**
|
|
8858
|
+
* Timeout has been reached during ICE establishment.
|
|
8859
|
+
* @event FAILED_BY_ICE_TIMEOUT
|
|
8860
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8861
|
+
*/
|
|
8862
|
+
FAILED_BY_ICE_TIMEOUT: 'Failed by ICE timeout',
|
|
8785
8863
|
|
|
8786
|
-
|
|
8787
|
-
|
|
8788
|
-
|
|
8789
|
-
|
|
8790
|
-
|
|
8791
|
-
|
|
8864
|
+
/**
|
|
8865
|
+
* ICE refresh failed on session.
|
|
8866
|
+
* @event FAILED_BY_KEEP_ALIVE
|
|
8867
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8868
|
+
*/
|
|
8869
|
+
FAILED_BY_KEEP_ALIVE: 'Failed by ICE keep alive',
|
|
8792
8870
|
|
|
8793
|
-
|
|
8794
|
-
|
|
8795
|
-
|
|
8796
|
-
|
|
8797
|
-
|
|
8798
|
-
|
|
8871
|
+
/**
|
|
8872
|
+
* DTLS has wrong fingerprint.
|
|
8873
|
+
* @event FAILED_BY_DTLS_FINGERPRINT_ERROR
|
|
8874
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8875
|
+
*/
|
|
8876
|
+
FAILED_BY_DTLS_FINGERPRINT_ERROR: 'Failed by DTLS fingerprint error',
|
|
8799
8877
|
|
|
8800
|
-
|
|
8801
|
-
|
|
8802
|
-
|
|
8803
|
-
|
|
8804
|
-
|
|
8805
|
-
|
|
8878
|
+
/**
|
|
8879
|
+
* Client did not send DTLS packets or packets were lost/corrupted during transmission.
|
|
8880
|
+
* @event FAILED_BY_DTLS_ERROR
|
|
8881
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8882
|
+
*/
|
|
8883
|
+
FAILED_BY_DTLS_ERROR: 'Failed by DTLS error',
|
|
8806
8884
|
|
|
8807
|
-
|
|
8808
|
-
|
|
8809
|
-
|
|
8810
|
-
|
|
8811
|
-
|
|
8812
|
-
|
|
8885
|
+
/**
|
|
8886
|
+
* Indicates general HLS packetizer error, can occur during initialization or packetization (wrong input or out of disk space).
|
|
8887
|
+
* @event FAILED_BY_HLS_WRITER_ERROR
|
|
8888
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8889
|
+
*/
|
|
8890
|
+
FAILED_BY_HLS_WRITER_ERROR: 'Failed by HLS writer error',
|
|
8813
8891
|
|
|
8814
|
-
|
|
8815
|
-
|
|
8816
|
-
|
|
8817
|
-
|
|
8818
|
-
|
|
8819
|
-
|
|
8892
|
+
/**
|
|
8893
|
+
* Indicates general RTMP republishing error, can occur during initialization or rtmp packetization.
|
|
8894
|
+
* @event FAILED_BY_RTMP_WRITER_ERROR
|
|
8895
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8896
|
+
*/
|
|
8897
|
+
FAILED_BY_RTMP_WRITER_ERROR: 'Failed by RTMP writer error',
|
|
8820
8898
|
|
|
8821
|
-
|
|
8822
|
-
|
|
8823
|
-
|
|
8824
|
-
|
|
8825
|
-
|
|
8826
|
-
|
|
8899
|
+
/**
|
|
8900
|
+
* RTP session failed by RTP activity timer.
|
|
8901
|
+
* @event FAILED_BY_RTP_ACTIVITY
|
|
8902
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8903
|
+
*/
|
|
8904
|
+
FAILED_BY_RTP_ACTIVITY: 'Failed by RTP activity',
|
|
8827
8905
|
|
|
8828
|
-
|
|
8829
|
-
|
|
8830
|
-
|
|
8831
|
-
|
|
8832
|
-
|
|
8833
|
-
|
|
8906
|
+
/**
|
|
8907
|
+
* Related session was disconnected.
|
|
8908
|
+
* @event STOPPED_BY_SESSION_DISCONNECT
|
|
8909
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8910
|
+
*/
|
|
8911
|
+
STOPPED_BY_SESSION_DISCONNECT: 'Stopped by session disconnect',
|
|
8834
8912
|
|
|
8835
|
-
|
|
8836
|
-
|
|
8837
|
-
|
|
8838
|
-
|
|
8839
|
-
|
|
8840
|
-
|
|
8913
|
+
/**
|
|
8914
|
+
* Stream was stopped by rest terminate request.
|
|
8915
|
+
* @event STOPPED_BY_REST_TERMINATE
|
|
8916
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8917
|
+
*/
|
|
8918
|
+
STOPPED_BY_REST_TERMINATE: 'Stopped by rest /terminate',
|
|
8841
8919
|
|
|
8842
|
-
|
|
8843
|
-
|
|
8844
|
-
|
|
8845
|
-
|
|
8846
|
-
|
|
8847
|
-
|
|
8920
|
+
/**
|
|
8921
|
+
* Related publisher stopped its stream or lost connection.
|
|
8922
|
+
* @event STOPPED_BY_PUBLISHER_STOP
|
|
8923
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8924
|
+
*/
|
|
8925
|
+
STOPPED_BY_PUBLISHER_STOP: 'Stopped by publisher stop',
|
|
8848
8926
|
|
|
8849
|
-
|
|
8850
|
-
|
|
8851
|
-
|
|
8852
|
-
|
|
8853
|
-
|
|
8854
|
-
|
|
8927
|
+
/**
|
|
8928
|
+
* Stop the media session by user after call was finished or unpublish stream.
|
|
8929
|
+
* @event STOPPED_BY_USER
|
|
8930
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8931
|
+
*/
|
|
8932
|
+
STOPPED_BY_USER: 'Stopped by user',
|
|
8855
8933
|
|
|
8856
|
-
|
|
8857
|
-
|
|
8858
|
-
|
|
8859
|
-
|
|
8860
|
-
|
|
8861
|
-
|
|
8934
|
+
/**
|
|
8935
|
+
* Error occurred on the stream.
|
|
8936
|
+
* @event FAILED_BY_ERROR
|
|
8937
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8938
|
+
*/
|
|
8939
|
+
FAILED_BY_ERROR: 'Failed by error',
|
|
8862
8940
|
|
|
8863
|
-
|
|
8864
|
-
|
|
8865
|
-
|
|
8866
|
-
|
|
8867
|
-
|
|
8868
|
-
|
|
8941
|
+
/**
|
|
8942
|
+
* Indicates that error occurred during media session creation. This might be SDP parsing error, all ports are busy, wrong session related config etc.
|
|
8943
|
+
* @event FAILED_TO_ADD_STREAM_TO_PROXY
|
|
8944
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8945
|
+
*/
|
|
8946
|
+
FAILED_TO_ADD_STREAM_TO_PROXY: 'Failed to add stream to proxy',
|
|
8869
8947
|
|
|
8870
|
-
|
|
8871
|
-
|
|
8872
|
-
|
|
8873
|
-
|
|
8874
|
-
|
|
8875
|
-
|
|
8948
|
+
/**
|
|
8949
|
+
* Stopped shapshot distributor.
|
|
8950
|
+
* @event DISTRIBUTOR_STOPPED
|
|
8951
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8952
|
+
*/
|
|
8953
|
+
DISTRIBUTOR_STOPPED: 'Distributor stopped',
|
|
8876
8954
|
|
|
8877
|
-
|
|
8878
|
-
|
|
8879
|
-
|
|
8880
|
-
|
|
8881
|
-
|
|
8882
|
-
|
|
8955
|
+
/**
|
|
8956
|
+
* Publish stream is not ready, try again later.
|
|
8957
|
+
* @event PUBLISH_STREAM_IS_NOT_READY
|
|
8958
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8959
|
+
*/
|
|
8960
|
+
PUBLISH_STREAM_IS_NOT_READY: 'Publish stream is not ready',
|
|
8883
8961
|
|
|
8884
|
-
|
|
8885
|
-
|
|
8886
|
-
|
|
8887
|
-
|
|
8888
|
-
|
|
8889
|
-
|
|
8962
|
+
/**
|
|
8963
|
+
* Stream with this name is not found, check the correct of the name.
|
|
8964
|
+
* @event STREAM_NOT_FOUND
|
|
8965
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8966
|
+
*/
|
|
8967
|
+
STREAM_NOT_FOUND: 'Stream not found',
|
|
8890
8968
|
|
|
8891
|
-
|
|
8892
|
-
|
|
8893
|
-
|
|
8894
|
-
|
|
8895
|
-
|
|
8896
|
-
|
|
8969
|
+
/**
|
|
8970
|
+
* Server already has a publish stream with the same name, try using different one.
|
|
8971
|
+
* @event STREAM_NAME_ALREADY_IN_USE
|
|
8972
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8973
|
+
*/
|
|
8974
|
+
STREAM_NAME_ALREADY_IN_USE: 'Stream name is already in use',
|
|
8897
8975
|
|
|
8898
|
-
|
|
8899
|
-
|
|
8900
|
-
|
|
8901
|
-
|
|
8902
|
-
|
|
8903
|
-
|
|
8976
|
+
/**
|
|
8977
|
+
* Error indicates that stream object received by server has empty mediaSessionId field.
|
|
8978
|
+
* @event MEDIASESSION_ID_NULL
|
|
8979
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8980
|
+
*/
|
|
8981
|
+
MEDIASESSION_ID_NULL: 'MediaSessionId is null',
|
|
8904
8982
|
|
|
8905
|
-
|
|
8906
|
-
|
|
8907
|
-
|
|
8908
|
-
|
|
8909
|
-
|
|
8910
|
-
|
|
8983
|
+
/**
|
|
8984
|
+
* Published or subscribed sessions used this MediaSessionId.
|
|
8985
|
+
* @event MEDIASESSION_ID_ALREADY_IN_USE
|
|
8986
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8987
|
+
*/
|
|
8988
|
+
MEDIASESSION_ID_ALREADY_IN_USE: 'MediaSessionId is already in use',
|
|
8911
8989
|
|
|
8912
|
-
|
|
8913
|
-
|
|
8914
|
-
|
|
8915
|
-
|
|
8916
|
-
|
|
8917
|
-
|
|
8990
|
+
/**
|
|
8991
|
+
* Session is not initialized or terminated on play ordinary stream.
|
|
8992
|
+
* @event SESSION_NOT_READY
|
|
8993
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
8994
|
+
*/
|
|
8995
|
+
SESSION_NOT_READY: 'Session not ready',
|
|
8918
8996
|
|
|
8919
|
-
|
|
8920
|
-
|
|
8921
|
-
|
|
8922
|
-
|
|
8923
|
-
|
|
8924
|
-
|
|
8997
|
+
/**
|
|
8998
|
+
* Actual session does not exist.
|
|
8999
|
+
* @event SESSION_DOES_NOT_EXIST
|
|
9000
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9001
|
+
*/
|
|
9002
|
+
SESSION_DOES_NOT_EXIST: 'Session does not exist',
|
|
8925
9003
|
|
|
8926
|
-
|
|
8927
|
-
|
|
8928
|
-
|
|
8929
|
-
|
|
8930
|
-
|
|
8931
|
-
|
|
9004
|
+
/**
|
|
9005
|
+
* RTSP has wrong format on play stream, check the RTSP url validity.
|
|
9006
|
+
* @event RTSP_HAS_WRONG_FORMAT
|
|
9007
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9008
|
+
*/
|
|
9009
|
+
RTSP_HAS_WRONG_FORMAT: 'Rtsp has wrong format',
|
|
8932
9010
|
|
|
8933
|
-
|
|
8934
|
-
|
|
8935
|
-
|
|
8936
|
-
|
|
8937
|
-
|
|
8938
|
-
|
|
9011
|
+
/**
|
|
9012
|
+
* Failed to play vod stream, this format is not supported.
|
|
9013
|
+
* @event FILE_HAS_WRONG_FORMAT
|
|
9014
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9015
|
+
*/
|
|
9016
|
+
FILE_HAS_WRONG_FORMAT: 'File has wrong format',
|
|
8939
9017
|
|
|
8940
|
-
|
|
8941
|
-
|
|
8942
|
-
|
|
8943
|
-
|
|
8944
|
-
|
|
8945
|
-
|
|
9018
|
+
/**
|
|
9019
|
+
* Failed to connect to rtsp stream.
|
|
9020
|
+
* @event FAILED_TO_CONNECT_TO_RTSP_STREAM
|
|
9021
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9022
|
+
*/
|
|
9023
|
+
FAILED_TO_CONNECT_TO_RTSP_STREAM: 'Failed to connect to rtsp stream',
|
|
8946
9024
|
|
|
8947
|
-
|
|
8948
|
-
|
|
8949
|
-
|
|
8950
|
-
|
|
8951
|
-
|
|
8952
|
-
|
|
9025
|
+
/**
|
|
9026
|
+
* Rtsp stream is not found, agent received "404-Not Found".
|
|
9027
|
+
* @event RTSP_STREAM_NOT_FOUND
|
|
9028
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9029
|
+
*/
|
|
9030
|
+
RTSP_STREAM_NOT_FOUND: 'Rtsp stream not found',
|
|
8953
9031
|
|
|
8954
|
-
|
|
8955
|
-
|
|
8956
|
-
|
|
8957
|
-
|
|
8958
|
-
|
|
8959
|
-
|
|
9032
|
+
/**
|
|
9033
|
+
* On shutdown RTSP agent.
|
|
9034
|
+
* @event RTSPAGENT_SHUTDOWN
|
|
9035
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9036
|
+
*/
|
|
9037
|
+
RTSPAGENT_SHUTDOWN: 'RtspAgent shutdown',
|
|
8960
9038
|
|
|
8961
|
-
|
|
8962
|
-
|
|
8963
|
-
|
|
8964
|
-
|
|
8965
|
-
|
|
8966
|
-
|
|
9039
|
+
/**
|
|
9040
|
+
* Stream failed
|
|
9041
|
+
* @event STREAM_FAILED
|
|
9042
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9043
|
+
*/
|
|
9044
|
+
STREAM_FAILED: 'Stream failed',
|
|
8967
9045
|
|
|
8968
|
-
|
|
8969
|
-
|
|
8970
|
-
|
|
8971
|
-
|
|
8972
|
-
|
|
8973
|
-
|
|
9046
|
+
/**
|
|
9047
|
+
* No common codecs on setup track, did not found corresponding trackId->mediaPort.
|
|
9048
|
+
* @event NO_COMMON_CODECS
|
|
9049
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9050
|
+
*/
|
|
9051
|
+
NO_COMMON_CODECS: 'No common codecs',
|
|
8974
9052
|
|
|
8975
|
-
|
|
8976
|
-
|
|
8977
|
-
|
|
8978
|
-
|
|
8979
|
-
|
|
8980
|
-
|
|
9053
|
+
/**
|
|
9054
|
+
* Bad referenced rtsp link, check for correct, example: rtsp://user:b@d_password@127.0.0.1/stream.
|
|
9055
|
+
* @event BAD_URI
|
|
9056
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9057
|
+
*/
|
|
9058
|
+
BAD_URI: 'Bad URI',
|
|
8981
9059
|
|
|
8982
|
-
|
|
8983
|
-
|
|
8984
|
-
|
|
8985
|
-
|
|
8986
|
-
|
|
8987
|
-
|
|
9060
|
+
/**
|
|
9061
|
+
* General VOD error, indicates that Exception occurred while reading/processing media file.
|
|
9062
|
+
* @event GOT_EXCEPTION_WHILE_STREAMING_FILE
|
|
9063
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9064
|
+
*/
|
|
9065
|
+
GOT_EXCEPTION_WHILE_STREAMING_FILE: 'Got exception while streaming file',
|
|
8988
9066
|
|
|
8989
|
-
|
|
8990
|
-
|
|
8991
|
-
|
|
8992
|
-
|
|
8993
|
-
|
|
8994
|
-
|
|
9067
|
+
/**
|
|
9068
|
+
* Requested stream shutdown.
|
|
9069
|
+
* @event REQUESTED_STREAM_SHUTDOWN
|
|
9070
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9071
|
+
*/
|
|
9072
|
+
REQUESTED_STREAM_SHUTDOWN: 'Requested stream shutdown',
|
|
8995
9073
|
|
|
8996
|
-
|
|
8997
|
-
|
|
8998
|
-
|
|
8999
|
-
|
|
9000
|
-
|
|
9001
|
-
|
|
9074
|
+
/**
|
|
9075
|
+
* Failed to create movie, file can not be read.
|
|
9076
|
+
* @event FAILED_TO_READ_FILE
|
|
9077
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9078
|
+
*/
|
|
9079
|
+
FAILED_TO_READ_FILE: 'Failed to read file',
|
|
9002
9080
|
|
|
9003
|
-
|
|
9004
|
-
|
|
9005
|
-
|
|
9006
|
-
|
|
9007
|
-
|
|
9008
|
-
|
|
9081
|
+
/**
|
|
9082
|
+
* File does not exist, check filename.
|
|
9083
|
+
* @event FILE_NOT_FOUND
|
|
9084
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9085
|
+
*/
|
|
9086
|
+
FILE_NOT_FOUND: 'File not found',
|
|
9009
9087
|
|
|
9010
|
-
|
|
9011
|
-
|
|
9012
|
-
|
|
9013
|
-
|
|
9014
|
-
|
|
9015
|
-
|
|
9088
|
+
/**
|
|
9089
|
+
* Server failed to establish websocket connection with origin server.
|
|
9090
|
+
* @event FAILED_TO_CONNECT_TO_ORIGIN_STREAM
|
|
9091
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9092
|
+
*/
|
|
9093
|
+
FAILED_TO_CONNECT_TO_ORIGIN_STREAM: 'Failed to connect to origin stream',
|
|
9016
9094
|
|
|
9017
|
-
|
|
9018
|
-
|
|
9019
|
-
|
|
9020
|
-
|
|
9021
|
-
|
|
9022
|
-
|
|
9023
|
-
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9024
|
-
*/
|
|
9095
|
+
/**
|
|
9096
|
+
* CDN stream not found.
|
|
9097
|
+
* @event CDN_STREAM_NOT_FOUND
|
|
9098
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9099
|
+
*/
|
|
9100
|
+
CDN_STREAM_NOT_FOUND: 'CDN stream not found',
|
|
9025
9101
|
|
|
9026
|
-
|
|
9027
|
-
|
|
9028
|
-
|
|
9029
|
-
|
|
9030
|
-
|
|
9031
|
-
|
|
9102
|
+
/**
|
|
9103
|
+
* Indicates that provided URL protocol in stream name is invalid.
|
|
9104
|
+
* Valid: vod://file.mp4
|
|
9105
|
+
* Invalid: dov://file.mp4
|
|
9106
|
+
* @event FAILED_TO_GET_AGENT_STORAGE
|
|
9107
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9108
|
+
*/
|
|
9109
|
+
FAILED_TO_GET_AGENT_STORAGE: 'Failed to get agent storage',
|
|
9032
9110
|
|
|
9033
|
-
|
|
9034
|
-
|
|
9035
|
-
|
|
9036
|
-
|
|
9037
|
-
|
|
9038
|
-
|
|
9111
|
+
/**
|
|
9112
|
+
* Shutdown agent servicing origin stream.
|
|
9113
|
+
* @event AGENT_SERVICING_ORIGIN_STREAM_IS_SHUTTING_DOWN
|
|
9114
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9115
|
+
*/
|
|
9116
|
+
AGENT_SERVICING_ORIGIN_STREAM_IS_SHUTTING_DOWN: 'Agent servicing origin stream is shutting down',
|
|
9039
9117
|
|
|
9040
|
-
|
|
9041
|
-
|
|
9042
|
-
|
|
9043
|
-
|
|
9044
|
-
|
|
9045
|
-
|
|
9118
|
+
/**
|
|
9119
|
+
* Terminated by keep-alive on walk through subscribers.
|
|
9120
|
+
* @event TERMINATED_BY_KEEP_ALIVE
|
|
9121
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9122
|
+
*/
|
|
9123
|
+
TERMINATED_BY_KEEP_ALIVE: 'Terminated by keep-alive',
|
|
9046
9124
|
|
|
9047
|
-
|
|
9048
|
-
|
|
9049
|
-
|
|
9050
|
-
|
|
9051
|
-
|
|
9052
|
-
|
|
9125
|
+
/**
|
|
9126
|
+
* Transcoding required, but disabled in server settings
|
|
9127
|
+
* @event TRANSCODING_REQUIRED_BUT_DISABLED
|
|
9128
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9129
|
+
*/
|
|
9130
|
+
TRANSCODING_REQUIRED_BUT_DISABLED: 'Transcoding required, but disabled',
|
|
9053
9131
|
|
|
9054
|
-
|
|
9055
|
-
|
|
9056
|
-
|
|
9057
|
-
|
|
9058
|
-
|
|
9059
|
-
|
|
9132
|
+
/**
|
|
9133
|
+
* Access restricted by access list
|
|
9134
|
+
* @event RESTRICTED_ACCESS
|
|
9135
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9136
|
+
*/
|
|
9137
|
+
RESTRICTED_ACCESS: 'Restricted access',
|
|
9060
9138
|
|
|
9061
|
-
|
|
9139
|
+
/**
|
|
9140
|
+
* No available transcoders for stream
|
|
9141
|
+
* @event NO_AVAILABLE_TRANSCODERS
|
|
9142
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9143
|
+
*/
|
|
9144
|
+
NO_AVAILABLE_TRANSCODERS: 'No available transcoders'
|
|
9145
|
+
});
|
|
9062
9146
|
/**
|
|
9063
9147
|
* @namespace Flashphoner.constants.CALL_STATUS_INFO
|
|
9064
9148
|
* @see Call
|
|
9065
9149
|
*/
|
|
9066
9150
|
|
|
9067
|
-
var
|
|
9068
|
-
/**
|
|
9069
|
-
|
|
9070
|
-
|
|
9071
|
-
|
|
9072
|
-
|
|
9151
|
+
var CALL_STATUS_INFO = Object.freeze({
|
|
9152
|
+
/**
|
|
9153
|
+
* Normal call hangup.
|
|
9154
|
+
* @event NORMAL_CALL_CLEARING
|
|
9155
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9156
|
+
*/
|
|
9157
|
+
NORMAL_CALL_CLEARING: 'Normal call clearing',
|
|
9073
9158
|
|
|
9074
|
-
|
|
9075
|
-
|
|
9076
|
-
|
|
9077
|
-
|
|
9078
|
-
|
|
9079
|
-
|
|
9159
|
+
/**
|
|
9160
|
+
* Error occurred while creating a session
|
|
9161
|
+
* @event FAILED_BY_SESSION_CREATION
|
|
9162
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9163
|
+
*/
|
|
9164
|
+
FAILED_BY_SESSION_CREATION: 'Failed by session creation',
|
|
9080
9165
|
|
|
9081
|
-
|
|
9082
|
-
|
|
9083
|
-
|
|
9084
|
-
|
|
9085
|
-
|
|
9086
|
-
|
|
9166
|
+
/**
|
|
9167
|
+
* Failed by error during ICE establishment.
|
|
9168
|
+
* @event FAILED_BY_ICE_ERROR
|
|
9169
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9170
|
+
*/
|
|
9171
|
+
FAILED_BY_ICE_ERROR: 'Failed by ICE error',
|
|
9087
9172
|
|
|
9088
|
-
|
|
9089
|
-
|
|
9090
|
-
|
|
9091
|
-
|
|
9092
|
-
|
|
9093
|
-
|
|
9173
|
+
/**
|
|
9174
|
+
* RTP session failed by RTP activity timer.
|
|
9175
|
+
* @event FAILED_BY_RTP_ACTIVITY
|
|
9176
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9177
|
+
*/
|
|
9178
|
+
FAILED_BY_RTP_ACTIVITY: 'Failed by RTP activity',
|
|
9094
9179
|
|
|
9095
|
-
|
|
9096
|
-
|
|
9097
|
-
|
|
9098
|
-
|
|
9099
|
-
|
|
9100
|
-
|
|
9180
|
+
/**
|
|
9181
|
+
* FF writer was failed on RTMP.
|
|
9182
|
+
* @event FAILED_BY_RTMP_WRITER_ERROR
|
|
9183
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9184
|
+
*/
|
|
9185
|
+
FAILED_BY_RTMP_WRITER_ERROR: 'Failed by RTMP writer error',
|
|
9101
9186
|
|
|
9102
|
-
|
|
9103
|
-
|
|
9104
|
-
|
|
9105
|
-
|
|
9106
|
-
|
|
9107
|
-
|
|
9187
|
+
/**
|
|
9188
|
+
* DTLS wrong fingerprint.
|
|
9189
|
+
* @event FAILED_BY_DTLS_FINGERPRINT_ERROR
|
|
9190
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9191
|
+
*/
|
|
9192
|
+
FAILED_BY_DTLS_FINGERPRINT_ERROR: 'Failed by DTLS fingerprint error',
|
|
9108
9193
|
|
|
9109
|
-
|
|
9110
|
-
|
|
9111
|
-
|
|
9112
|
-
|
|
9113
|
-
|
|
9114
|
-
|
|
9194
|
+
/**
|
|
9195
|
+
* No common codecs in sdp
|
|
9196
|
+
* @event NO_COMMON_CODECS
|
|
9197
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9198
|
+
*/
|
|
9199
|
+
NO_COMMON_CODECS: 'No common codecs',
|
|
9115
9200
|
|
|
9116
|
-
|
|
9117
|
-
|
|
9118
|
-
|
|
9119
|
-
|
|
9120
|
-
|
|
9121
|
-
|
|
9201
|
+
/**
|
|
9202
|
+
* Client did not send DTLS packets or packets were lost/corrupted during transmission.
|
|
9203
|
+
* @event FAILED_BY_DTLS_ERROR
|
|
9204
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9205
|
+
*/
|
|
9206
|
+
FAILED_BY_DTLS_ERROR: 'Failed by DTLS error',
|
|
9122
9207
|
|
|
9123
|
-
|
|
9124
|
-
|
|
9125
|
-
|
|
9126
|
-
|
|
9127
|
-
|
|
9128
|
-
|
|
9208
|
+
/**
|
|
9209
|
+
* Error occurred during the call
|
|
9210
|
+
* @event FAILED_BY_ERROR
|
|
9211
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9212
|
+
*/
|
|
9213
|
+
FAILED_BY_ERROR: 'Failed by error',
|
|
9129
9214
|
|
|
9130
|
-
|
|
9215
|
+
/**
|
|
9216
|
+
* Call failed by request timeout
|
|
9217
|
+
* @event FAILED_BY_REQUEST_TIMEOUT
|
|
9218
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9219
|
+
*/
|
|
9220
|
+
FAILED_BY_REQUEST_TIMEOUT: 'Failed by request timeout',
|
|
9221
|
+
|
|
9222
|
+
/**
|
|
9223
|
+
* Transcoding required, but disabled in settings
|
|
9224
|
+
* @event TRANSCODING_REQUIRED_BUT_DISABLED
|
|
9225
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9226
|
+
*/
|
|
9227
|
+
TRANSCODING_REQUIRED_BUT_DISABLED: 'Transcoding required, but disabled'
|
|
9228
|
+
});
|
|
9131
9229
|
/**
|
|
9132
|
-
|
|
9133
|
-
|
|
9134
|
-
|
|
9135
|
-
|
|
9230
|
+
* @namespace Flashphoner.constants.ERROR_INFO
|
|
9231
|
+
*/
|
|
9232
|
+
|
|
9233
|
+
var ERROR_INFO = Object.freeze({
|
|
9234
|
+
/**
|
|
9235
|
+
* Error if none of MediaProviders available
|
|
9236
|
+
* @event NONE_OF_MEDIAPROVIDERS_AVAILABLE
|
|
9237
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9238
|
+
*/
|
|
9239
|
+
NONE_OF_MEDIAPROVIDERS_AVAILABLE: 'None of MediaProviders available',
|
|
9136
9240
|
|
|
9137
|
-
|
|
9241
|
+
/**
|
|
9242
|
+
* Error if none of preferred MediaProviders available
|
|
9243
|
+
* @event NONE_OF_PREFERRED_MEDIAPROVIDERS_AVAILABLE
|
|
9244
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9245
|
+
*/
|
|
9246
|
+
NONE_OF_PREFERRED_MEDIAPROVIDERS_AVAILABLE: 'None of preferred MediaProviders available',
|
|
9247
|
+
|
|
9248
|
+
/**
|
|
9249
|
+
* Error if API is not initialized
|
|
9250
|
+
* @event FLASHPHONER_API_NOT_INITIALIZED
|
|
9251
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9252
|
+
*/
|
|
9253
|
+
FLASHPHONER_API_NOT_INITIALIZED: 'Flashphoner API is not initialized',
|
|
9254
|
+
|
|
9255
|
+
/**
|
|
9256
|
+
* Error if options.urlServer is not specified
|
|
9257
|
+
* @event OPTIONS_URLSERVER_MUST_BE_PROVIDED
|
|
9258
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9259
|
+
*/
|
|
9260
|
+
OPTIONS_URLSERVER_MUST_BE_PROVIDED: 'options.urlServer must be provided',
|
|
9261
|
+
|
|
9262
|
+
/**
|
|
9263
|
+
* Error if session state is not valid
|
|
9264
|
+
* @event INVALID_SESSION_STATE
|
|
9265
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9266
|
+
*/
|
|
9267
|
+
INVALID_SESSION_STATE: 'Invalid session state',
|
|
9268
|
+
|
|
9269
|
+
/**
|
|
9270
|
+
* Error if no options provided
|
|
9271
|
+
* @event OPTIONS_MUST_BE_PROVIDED
|
|
9272
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9273
|
+
*/
|
|
9274
|
+
OPTIONS_MUST_BE_PROVIDED: 'options must be provided',
|
|
9275
|
+
|
|
9276
|
+
/**
|
|
9277
|
+
* Error if call status is not {@link Flashphoner.constants.CALL_STATUS.NEW}
|
|
9278
|
+
* @event INVALID_CALL_STATE
|
|
9279
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9280
|
+
*/
|
|
9281
|
+
INVALID_CALL_STATE: 'Invalid call state',
|
|
9282
|
+
|
|
9283
|
+
/**
|
|
9284
|
+
* Error if event is not specified
|
|
9285
|
+
* @event EVENT_CANT_BE_NULL
|
|
9286
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9287
|
+
*/
|
|
9288
|
+
EVENT_CANT_BE_NULL: 'Event can\'t be null',
|
|
9289
|
+
|
|
9290
|
+
/**
|
|
9291
|
+
* Error if callback is not a valid function
|
|
9292
|
+
* @event CALLBACK_NEEDS_TO_BE_A_VALID_FUNCTION
|
|
9293
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9294
|
+
*/
|
|
9295
|
+
CALLBACK_NEEDS_TO_BE_A_VALID_FUNCTION: 'Callback needs to be a valid function',
|
|
9296
|
+
|
|
9297
|
+
/**
|
|
9298
|
+
* Error if options.name is not specified
|
|
9299
|
+
* @event OPTIONS_NAME_MUST_BE_PROVIDED
|
|
9300
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9301
|
+
*/
|
|
9302
|
+
OPTIONS_NAME_MUST_BE_PROVIDED: 'options.name must be provided',
|
|
9303
|
+
|
|
9304
|
+
/**
|
|
9305
|
+
* Error if number of cams is less than 2 or camera is already used by other application
|
|
9306
|
+
* @event CAN_NOT_SWITCH_CAM
|
|
9307
|
+
* @memberOf Flashphoner.constants.ERROR_INFO
|
|
9308
|
+
*/
|
|
9309
|
+
CAN_NOT_SWITCH_CAM: 'Number of cams is less than 2 or camera is already used by other application',
|
|
9310
|
+
|
|
9311
|
+
/**
|
|
9312
|
+
* Error if number of mics is less than 2 or microphone is already used by other application
|
|
9313
|
+
* @event CAN_NOT_SWITCH_MIC
|
|
9314
|
+
* @memberOf Flashphoner.constants.ERROR_INFO
|
|
9315
|
+
*/
|
|
9316
|
+
CAN_NOT_SWITCH_MIC: 'Number of mics is less than 2 or microphone is already used by other application',
|
|
9317
|
+
|
|
9318
|
+
/**
|
|
9319
|
+
* Local browser error detected
|
|
9320
|
+
* @event LOCAL_ERROR
|
|
9321
|
+
* @memberOf Flashphoner.constants.ERROR_INFO
|
|
9322
|
+
*/
|
|
9323
|
+
LOCAL_ERROR: 'Local error'
|
|
9324
|
+
});
|
|
9138
9325
|
/**
|
|
9139
|
-
*
|
|
9140
|
-
* @
|
|
9141
|
-
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9326
|
+
* Local media devices type
|
|
9327
|
+
* @namespace Flashphoner.constants.MEDIA_DEVICE_KIND
|
|
9142
9328
|
*/
|
|
9143
9329
|
|
|
9144
|
-
|
|
9145
|
-
/**
|
|
9146
|
-
*
|
|
9147
|
-
|
|
9330
|
+
var MEDIA_DEVICE_KIND = Object.freeze({
|
|
9331
|
+
/**
|
|
9332
|
+
* List local media output devices
|
|
9333
|
+
* @see Flashphoner.getMediaDevices
|
|
9334
|
+
* @memberOf Flashphoner.constants.MEDIA_DEVICE_KIND
|
|
9335
|
+
*/
|
|
9336
|
+
OUTPUT: 'output',
|
|
9337
|
+
|
|
9338
|
+
/**
|
|
9339
|
+
* List local media input devices
|
|
9340
|
+
* @see Flashphoner.getMediaDevices
|
|
9341
|
+
* @memberOf Flashphoner.constants.MEDIA_DEVICE_KIND
|
|
9342
|
+
*/
|
|
9343
|
+
INPUT: 'input',
|
|
9148
9344
|
|
|
9149
|
-
|
|
9345
|
+
/**
|
|
9346
|
+
* List local media devices
|
|
9347
|
+
* @see Flashphoner.getMediaDevices
|
|
9348
|
+
* @memberOf Flashphoner.constants.MEDIA_DEVICE_KIND
|
|
9349
|
+
*/
|
|
9350
|
+
ALL: 'all'
|
|
9351
|
+
});
|
|
9150
9352
|
/**
|
|
9151
|
-
*
|
|
9152
|
-
* @
|
|
9153
|
-
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9353
|
+
* WebRTC transport type
|
|
9354
|
+
* @namespace Flashphoner.constants.TRANSPORT_TYPE
|
|
9154
9355
|
*/
|
|
9155
9356
|
|
|
9156
|
-
|
|
9357
|
+
var TRANSPORT_TYPE = Object.freeze({
|
|
9358
|
+
/**
|
|
9359
|
+
* WebRTC RTP traffic goes over UDP (default)
|
|
9360
|
+
* @see Stream
|
|
9361
|
+
* @memberOf Flashphoner.constants.TRANSPORT_TYPE
|
|
9362
|
+
*/
|
|
9363
|
+
UDP: 'UDP',
|
|
9364
|
+
|
|
9365
|
+
/**
|
|
9366
|
+
* WebRTC RTP traffic goes over TCP
|
|
9367
|
+
* @see Stream
|
|
9368
|
+
* @memberOf Flashphoner.constants.TRANSPORT_TYPE
|
|
9369
|
+
*/
|
|
9370
|
+
TCP: 'TCP'
|
|
9371
|
+
});
|
|
9157
9372
|
/**
|
|
9158
|
-
*
|
|
9159
|
-
* @
|
|
9160
|
-
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9373
|
+
* WebRTC connection quality type
|
|
9374
|
+
* @namespace Flashphoner.constants.CONNECTION_QUALITY
|
|
9161
9375
|
*/
|
|
9162
9376
|
|
|
9163
|
-
|
|
9164
|
-
/**
|
|
9165
|
-
|
|
9166
|
-
|
|
9167
|
-
|
|
9168
|
-
|
|
9377
|
+
var CONNECTION_QUALITY = Object.freeze({
|
|
9378
|
+
/**
|
|
9379
|
+
* Channel bandwidth is perfect
|
|
9380
|
+
* @see Stream
|
|
9381
|
+
* @memberOf Flashphoner.constants.CONNECTION_QUALITY
|
|
9382
|
+
*/
|
|
9383
|
+
PERFECT: 'PERFECT',
|
|
9169
9384
|
|
|
9170
|
-
|
|
9171
|
-
|
|
9172
|
-
|
|
9173
|
-
|
|
9174
|
-
|
|
9175
|
-
|
|
9385
|
+
/**
|
|
9386
|
+
* Channel bandwidth is good
|
|
9387
|
+
* @see Stream
|
|
9388
|
+
* @memberOf Flashphoner.constants.CONNECTION_QUALITY
|
|
9389
|
+
*/
|
|
9390
|
+
GOOD: 'GOOD',
|
|
9176
9391
|
|
|
9177
|
-
|
|
9178
|
-
|
|
9179
|
-
|
|
9180
|
-
|
|
9181
|
-
|
|
9182
|
-
|
|
9392
|
+
/**
|
|
9393
|
+
* Channel bandwidth is bad
|
|
9394
|
+
* @see Stream
|
|
9395
|
+
* @memberOf Flashphoner.constants.CONNECTION_QUALITY
|
|
9396
|
+
*/
|
|
9397
|
+
BAD: 'BAD',
|
|
9183
9398
|
|
|
9184
|
-
|
|
9185
|
-
|
|
9186
|
-
|
|
9187
|
-
|
|
9188
|
-
|
|
9189
|
-
|
|
9399
|
+
/**
|
|
9400
|
+
* Channel bandwidth is unknown (initial state)
|
|
9401
|
+
* @see Stream
|
|
9402
|
+
* @memberOf Flashphoner.constants.CONNECTION_QUALITY
|
|
9403
|
+
*/
|
|
9404
|
+
UNKNOWN: 'UNKNOWN',
|
|
9190
9405
|
|
|
9191
|
-
|
|
9406
|
+
/**
|
|
9407
|
+
* Channel bandwidth is updating
|
|
9408
|
+
* @see Stream
|
|
9409
|
+
* @memberOf Flashphoner.constants.CONNECTION_QUALITY
|
|
9410
|
+
*/
|
|
9411
|
+
UPDATE: 'UPDATE'
|
|
9412
|
+
});
|
|
9192
9413
|
/**
|
|
9193
|
-
*
|
|
9194
|
-
* @
|
|
9195
|
-
* @
|
|
9414
|
+
* Websocket signaling stream event
|
|
9415
|
+
* @see Stream
|
|
9416
|
+
* @memberOf Flashphoner.constants
|
|
9196
9417
|
*/
|
|
9197
9418
|
|
|
9198
|
-
|
|
9419
|
+
var STREAM_EVENT = 'STREAM_EVENT';
|
|
9199
9420
|
/**
|
|
9200
|
-
*
|
|
9201
|
-
* @
|
|
9202
|
-
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9421
|
+
* Websocket signaling stream event type
|
|
9422
|
+
* @namespace Flashphoner.constants.STREAM_EVENT_TYPE
|
|
9203
9423
|
*/
|
|
9204
9424
|
|
|
9205
|
-
|
|
9206
|
-
/**
|
|
9207
|
-
|
|
9208
|
-
|
|
9209
|
-
|
|
9210
|
-
|
|
9425
|
+
var STREAM_EVENT_TYPE = Object.freeze({
|
|
9426
|
+
/**
|
|
9427
|
+
* Stream audio is muted
|
|
9428
|
+
* @see Stream
|
|
9429
|
+
* @memberOf Flashphoner.constants.STREAM_EVENT_TYPE
|
|
9430
|
+
*/
|
|
9431
|
+
AUDIO_MUTED: 'audioMuted',
|
|
9211
9432
|
|
|
9212
|
-
|
|
9213
|
-
|
|
9214
|
-
|
|
9215
|
-
|
|
9216
|
-
|
|
9217
|
-
|
|
9433
|
+
/**
|
|
9434
|
+
* Stream audio is unmuted
|
|
9435
|
+
* @see Stream
|
|
9436
|
+
* @memberOf Flashphoner.constants.STREAM_EVENT_TYPE
|
|
9437
|
+
*/
|
|
9438
|
+
AUDIO_UNMUTED: 'audioUnmuted',
|
|
9218
9439
|
|
|
9219
|
-
|
|
9220
|
-
|
|
9221
|
-
|
|
9222
|
-
|
|
9223
|
-
|
|
9224
|
-
|
|
9440
|
+
/**
|
|
9441
|
+
* Stream video is muted
|
|
9442
|
+
* @see Stream
|
|
9443
|
+
* @memberOf Flashphoner.constants.STREAM_EVENT_TYPE
|
|
9444
|
+
*/
|
|
9445
|
+
VIDEO_MUTED: 'videoMuted',
|
|
9225
9446
|
|
|
9226
|
-
|
|
9227
|
-
|
|
9228
|
-
|
|
9229
|
-
|
|
9230
|
-
|
|
9231
|
-
|
|
9447
|
+
/**
|
|
9448
|
+
* Stream videoo is unmuted
|
|
9449
|
+
* @see Stream
|
|
9450
|
+
* @memberOf Flashphoner.constants.STREAM_EVENT_TYPE
|
|
9451
|
+
*/
|
|
9452
|
+
VIDEO_UNMUTED: 'videoUnmuted',
|
|
9232
9453
|
|
|
9233
|
-
|
|
9454
|
+
/**
|
|
9455
|
+
* Data bound to the stream are received
|
|
9456
|
+
* @see Stream
|
|
9457
|
+
* @memberOf Flashphoner.constants.STREAM_EVENT_TYPE
|
|
9458
|
+
*/
|
|
9459
|
+
DATA: 'data'
|
|
9460
|
+
});
|
|
9234
9461
|
/**
|
|
9235
|
-
*
|
|
9236
|
-
* @
|
|
9237
|
-
* @memberOf Flashphoner.constants.ERROR_INFO
|
|
9462
|
+
* WebRTC video content hint type
|
|
9463
|
+
* @namespace Flashphoner.constants.CONTENT_HINT_TYPE
|
|
9238
9464
|
*/
|
|
9239
9465
|
|
|
9240
|
-
|
|
9241
|
-
/**
|
|
9242
|
-
|
|
9243
|
-
|
|
9244
|
-
|
|
9245
|
-
|
|
9466
|
+
var CONTENT_HINT_TYPE = Object.freeze({
|
|
9467
|
+
/**
|
|
9468
|
+
* Video content is motion (webcam case): keep FPS, resolution and bitrate may change
|
|
9469
|
+
* @see Stream
|
|
9470
|
+
* @memberOf Flashphoner.constants.CONTENT_HINT_TYPE
|
|
9471
|
+
*/
|
|
9472
|
+
MOTION: 'motion',
|
|
9246
9473
|
|
|
9247
|
-
|
|
9248
|
-
|
|
9249
|
-
|
|
9250
|
-
|
|
9251
|
-
|
|
9252
|
-
|
|
9253
|
-
define(transportType, 'UDP', 'UDP');
|
|
9254
|
-
define(transportType, 'TCP', 'TCP');
|
|
9255
|
-
var connectionQuality = {};
|
|
9256
|
-
define(connectionQuality, 'PERFECT', 'PERFECT');
|
|
9257
|
-
define(connectionQuality, 'GOOD', 'GOOD');
|
|
9258
|
-
define(connectionQuality, 'BAD', 'BAD');
|
|
9259
|
-
define(connectionQuality, 'UNKNOWN', 'UNKNOWN');
|
|
9260
|
-
define(connectionQuality, 'UPDATE', 'UPDATE');
|
|
9261
|
-
var streamEventType = {};
|
|
9262
|
-
define(streamEventType, 'AUDIO_MUTED', 'audioMuted');
|
|
9263
|
-
define(streamEventType, 'AUDIO_UNMUTED', 'audioUnmuted');
|
|
9264
|
-
define(streamEventType, 'VIDEO_MUTED', 'videoMuted');
|
|
9265
|
-
define(streamEventType, 'VIDEO_UNMUTED', 'videoUnmuted');
|
|
9266
|
-
define(streamEventType, 'DATA', 'data');
|
|
9267
|
-
var contentHintType = {};
|
|
9268
|
-
define(contentHintType, 'MOTION', 'motion');
|
|
9269
|
-
define(contentHintType, 'DETAIL', 'detail');
|
|
9270
|
-
define(contentHintType, 'TEXT', 'text');
|
|
9271
|
-
var constants = {};
|
|
9272
|
-
define(constants, 'SESSION_STATUS', sessionStatus);
|
|
9273
|
-
define(constants, 'STREAM_EVENT_TYPE', streamEventType);
|
|
9274
|
-
define(constants, 'STREAM_EVENT', 'STREAM_EVENT');
|
|
9275
|
-
define(constants, 'STREAM_STATUS', streamStatus);
|
|
9276
|
-
define(constants, 'CALL_STATUS', callStatus);
|
|
9277
|
-
define(constants, 'STREAM_STATUS_INFO', streamStatusInfo);
|
|
9278
|
-
define(constants, 'CALL_STATUS_INFO', callStatusInfo);
|
|
9279
|
-
define(constants, 'ERROR_INFO', errorInfo);
|
|
9280
|
-
define(constants, 'MEDIA_DEVICE_KIND', mediaDeviceKind);
|
|
9281
|
-
define(constants, 'TRANSPORT_TYPE', transportType);
|
|
9282
|
-
define(constants, 'CONNECTION_QUALITY', connectionQuality);
|
|
9283
|
-
define(constants, 'CONTENT_HINT_TYPE', contentHintType); //define helper
|
|
9284
|
-
|
|
9285
|
-
function define(obj, name, value) {
|
|
9286
|
-
Object.defineProperty(obj, name, {
|
|
9287
|
-
value: value,
|
|
9288
|
-
enumerable: true
|
|
9289
|
-
});
|
|
9290
|
-
}
|
|
9474
|
+
/**
|
|
9475
|
+
* Video content is detail (sreen sharing case): keep resolution, bitrate may change, FPS may drop
|
|
9476
|
+
* @see Stream
|
|
9477
|
+
* @memberOf Flashphoner.constants.CONTENT_HINT_TYPE
|
|
9478
|
+
*/
|
|
9479
|
+
DETAIL: 'detail',
|
|
9291
9480
|
|
|
9292
|
-
|
|
9481
|
+
/**
|
|
9482
|
+
* Video content is text (sreen sharing case): keep resolution and bitrate, FPS may drop
|
|
9483
|
+
* @see Stream
|
|
9484
|
+
* @memberOf Flashphoner.constants.CONTENT_HINT_TYPE
|
|
9485
|
+
*/
|
|
9486
|
+
TEXT: 'text'
|
|
9487
|
+
});
|
|
9488
|
+
module.exports = {
|
|
9489
|
+
SESSION_STATUS: SESSION_STATUS,
|
|
9490
|
+
STREAM_STATUS: STREAM_STATUS,
|
|
9491
|
+
CALL_STATUS: CALL_STATUS,
|
|
9492
|
+
STREAM_STATUS_INFO: STREAM_STATUS_INFO,
|
|
9493
|
+
CALL_STATUS_INFO: CALL_STATUS_INFO,
|
|
9494
|
+
ERROR_INFO: ERROR_INFO,
|
|
9495
|
+
MEDIA_DEVICE_KIND: MEDIA_DEVICE_KIND,
|
|
9496
|
+
TRANSPORT_TYPE: TRANSPORT_TYPE,
|
|
9497
|
+
CONNECTION_QUALITY: CONNECTION_QUALITY,
|
|
9498
|
+
STREAM_EVENT: STREAM_EVENT,
|
|
9499
|
+
STREAM_EVENT_TYPE: STREAM_EVENT_TYPE,
|
|
9500
|
+
CONTENT_HINT_TYPE: CONTENT_HINT_TYPE
|
|
9501
|
+
};
|
|
9293
9502
|
|
|
9294
9503
|
},{}],40:[function(require,module,exports){
|
|
9295
9504
|
'use strict';
|
|
@@ -9317,7 +9526,12 @@ var createConnection = function createConnection(options) {
|
|
|
9317
9526
|
var id = options.id;
|
|
9318
9527
|
var authToken = options.authToken;
|
|
9319
9528
|
var display = options.display || options.localDisplay;
|
|
9320
|
-
var flashBufferTime = options.flashBufferTime || 0;
|
|
9529
|
+
var flashBufferTime = options.flashBufferTime || 0; // Set connection logger #WCS-2434
|
|
9530
|
+
|
|
9531
|
+
if (options.logger) {
|
|
9532
|
+
logger = options.logger;
|
|
9533
|
+
}
|
|
9534
|
+
|
|
9321
9535
|
var url = getConnectionUrl(options.mainUrl, options.flashProto, options.flashPort); //todo state from flash instance
|
|
9322
9536
|
|
|
9323
9537
|
var state = function state() {
|
|
@@ -9938,8 +10152,9 @@ var constants = require("./constants");
|
|
|
9938
10152
|
|
|
9939
10153
|
var util = require('./util');
|
|
9940
10154
|
|
|
9941
|
-
var
|
|
10155
|
+
var LoggerObject = require('./util').logger;
|
|
9942
10156
|
|
|
10157
|
+
var coreLogger;
|
|
9943
10158
|
var loggerConf = {
|
|
9944
10159
|
push: false,
|
|
9945
10160
|
severity: "INFO"
|
|
@@ -9987,7 +10202,7 @@ var disableConnectionQualityCalculation;
|
|
|
9987
10202
|
* @param {String=} options.decoderLocation Location of video-worker2.js file
|
|
9988
10203
|
* @param {String=} options.screenSharingExtensionId Chrome screen sharing extension id
|
|
9989
10204
|
* @param {Object=} options.constraints Default local media constraints
|
|
9990
|
-
* @param {Object=} options.logger
|
|
10205
|
+
* @param {Object=} options.logger Core logger options
|
|
9991
10206
|
* @throws {Error} Error if none of MediaProviders available
|
|
9992
10207
|
* @memberof Flashphoner
|
|
9993
10208
|
*/
|
|
@@ -9996,16 +10211,10 @@ var init = function init(options) {
|
|
|
9996
10211
|
if (!initialized) {
|
|
9997
10212
|
if (!options) {
|
|
9998
10213
|
options = {};
|
|
9999
|
-
}
|
|
10000
|
-
|
|
10001
|
-
loggerConf = options.logger || loggerConf;
|
|
10214
|
+
} // init global logger
|
|
10002
10215
|
|
|
10003
|
-
if (options.logger !== null) {
|
|
10004
|
-
loggerConf.enableLogs = true;
|
|
10005
|
-
} // init logger
|
|
10006
10216
|
|
|
10007
|
-
|
|
10008
|
-
logger.init(loggerConf.severity || "INFO", loggerConf.push || false, loggerConf.customLogger, loggerConf.enableLogs);
|
|
10217
|
+
coreLogger = createLogger(options.logger);
|
|
10009
10218
|
var waitingTemasys = false;
|
|
10010
10219
|
|
|
10011
10220
|
try {
|
|
@@ -10026,7 +10235,7 @@ var init = function init(options) {
|
|
|
10026
10235
|
constraints: options.constraints || getDefaultMediaConstraints(),
|
|
10027
10236
|
extensionId: options.screenSharingExtensionId,
|
|
10028
10237
|
audioContext: audioContext,
|
|
10029
|
-
logger:
|
|
10238
|
+
logger: coreLogger,
|
|
10030
10239
|
createMicGainNode: enableGainNode
|
|
10031
10240
|
};
|
|
10032
10241
|
webRtcProvider.configure(webRtcConf);
|
|
@@ -10043,7 +10252,7 @@ var init = function init(options) {
|
|
|
10043
10252
|
var webRtcConf = {
|
|
10044
10253
|
constraints: options.constraints || getDefaultMediaConstraints(),
|
|
10045
10254
|
extensionId: options.screenSharingExtensionId,
|
|
10046
|
-
logger:
|
|
10255
|
+
logger: coreLogger
|
|
10047
10256
|
};
|
|
10048
10257
|
webRtcProvider.configure(webRtcConf); // Just reorder media provider list
|
|
10049
10258
|
|
|
@@ -10071,7 +10280,7 @@ var init = function init(options) {
|
|
|
10071
10280
|
var flashConf = {
|
|
10072
10281
|
constraints: options.constraints || getDefaultMediaConstraints(),
|
|
10073
10282
|
flashMediaProviderSwfLocation: options.flashMediaProviderSwfLocation,
|
|
10074
|
-
logger:
|
|
10283
|
+
logger: coreLogger
|
|
10075
10284
|
};
|
|
10076
10285
|
flashProvider.configure(flashConf);
|
|
10077
10286
|
}
|
|
@@ -10095,7 +10304,7 @@ var init = function init(options) {
|
|
|
10095
10304
|
receiverLocation: options.receiverLocation,
|
|
10096
10305
|
decoderLocation: options.decoderLocation,
|
|
10097
10306
|
audioContext: audioContext,
|
|
10098
|
-
logger:
|
|
10307
|
+
logger: coreLogger
|
|
10099
10308
|
};
|
|
10100
10309
|
websocketProvider.configure(wsConf);
|
|
10101
10310
|
} //check at least 1 provider available
|
|
@@ -10117,7 +10326,7 @@ var init = function init(options) {
|
|
|
10117
10326
|
MediaProvider = _MediaProvider;
|
|
10118
10327
|
}
|
|
10119
10328
|
} else {
|
|
10120
|
-
|
|
10329
|
+
corelogger.warn(LOG_PREFIX, "Preferred media provider is not available.");
|
|
10121
10330
|
}
|
|
10122
10331
|
}
|
|
10123
10332
|
|
|
@@ -10145,7 +10354,7 @@ var init = function init(options) {
|
|
|
10145
10354
|
options.mediaProvidersReadyCallback(Object.keys(MediaProvider));
|
|
10146
10355
|
}
|
|
10147
10356
|
|
|
10148
|
-
|
|
10357
|
+
coreLogger.info(LOG_PREFIX, "Initialized");
|
|
10149
10358
|
initialized = true;
|
|
10150
10359
|
}
|
|
10151
10360
|
};
|
|
@@ -10184,7 +10393,7 @@ var playFirstVideo = function playFirstVideo(display, isLocal, src) {
|
|
|
10184
10393
|
}
|
|
10185
10394
|
};
|
|
10186
10395
|
/**
|
|
10187
|
-
* Get logger
|
|
10396
|
+
* Get core logger
|
|
10188
10397
|
*
|
|
10189
10398
|
* @returns {Object} Logger
|
|
10190
10399
|
* @memberof Flashphoner
|
|
@@ -10195,7 +10404,7 @@ var getLogger = function getLogger() {
|
|
|
10195
10404
|
if (!initialized) {
|
|
10196
10405
|
console.warn("Initialize API first.");
|
|
10197
10406
|
} else {
|
|
10198
|
-
return
|
|
10407
|
+
return coreLogger;
|
|
10199
10408
|
}
|
|
10200
10409
|
};
|
|
10201
10410
|
/**
|
|
@@ -10368,6 +10577,31 @@ var getSessions = function getSessions() {
|
|
|
10368
10577
|
|
|
10369
10578
|
var getSession = function getSession(id) {
|
|
10370
10579
|
return sessions[id];
|
|
10580
|
+
}; // Get logger configuration from options
|
|
10581
|
+
|
|
10582
|
+
|
|
10583
|
+
var getLoggerConf = function getLoggerConf(loggerOptions) {
|
|
10584
|
+
var conf = loggerOptions || loggerConf;
|
|
10585
|
+
|
|
10586
|
+
if (loggerOptions !== null) {
|
|
10587
|
+
conf.enableLogs = true;
|
|
10588
|
+
}
|
|
10589
|
+
|
|
10590
|
+
return conf;
|
|
10591
|
+
}; // Create a new logger object
|
|
10592
|
+
|
|
10593
|
+
|
|
10594
|
+
var createLogger = function createLogger(loggerOptions) {
|
|
10595
|
+
var parentLogger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : coreLogger;
|
|
10596
|
+
var newLogger = parentLogger;
|
|
10597
|
+
|
|
10598
|
+
if (newLogger === undefined || loggerOptions != undefined) {
|
|
10599
|
+
var loggerConf = getLoggerConf(loggerOptions);
|
|
10600
|
+
newLogger = new LoggerObject();
|
|
10601
|
+
newLogger.init(loggerConf.severity || "INFO", loggerConf.push || false, loggerConf.customLogger, loggerConf.enableLogs);
|
|
10602
|
+
}
|
|
10603
|
+
|
|
10604
|
+
return newLogger;
|
|
10371
10605
|
};
|
|
10372
10606
|
/**
|
|
10373
10607
|
* Create new session and connect to server.
|
|
@@ -10387,6 +10621,7 @@ var getSession = function getSession(id) {
|
|
|
10387
10621
|
* @param {Integer=} options.pingInterval Server ping interval in milliseconds [0]
|
|
10388
10622
|
* @param {Integer=} options.receiveProbes A maximum subsequental pings received missing count [0]
|
|
10389
10623
|
* @param {Integer=} options.probesInterval Interval to check subsequental pings received [0]
|
|
10624
|
+
* @param {Object=} options.logger Session logger options
|
|
10390
10625
|
* @returns {Session} Created session
|
|
10391
10626
|
* @throws {Error} Error if API is not initialized
|
|
10392
10627
|
* @throws {TypeError} Error if options.urlServer is not specified
|
|
@@ -10401,8 +10636,12 @@ var createSession = function createSession(options) {
|
|
|
10401
10636
|
|
|
10402
10637
|
if (!options || !options.urlServer) {
|
|
10403
10638
|
throw new TypeError("options.urlServer must be provided");
|
|
10404
|
-
}
|
|
10639
|
+
} // Set session logger #WCS-2434
|
|
10640
|
+
|
|
10405
10641
|
|
|
10642
|
+
var sessionLogger = createLogger(options.logger); // Override logger for all low level operations
|
|
10643
|
+
|
|
10644
|
+
var logger = sessionLogger;
|
|
10406
10645
|
var id_ = uuid_v1();
|
|
10407
10646
|
var sessionStatus = SESSION_STATUS.PENDING;
|
|
10408
10647
|
var urlServer = options.urlServer;
|
|
@@ -10508,7 +10747,7 @@ var createSession = function createSession(options) {
|
|
|
10508
10747
|
if (timeout != undefined && timeout > 0) {
|
|
10509
10748
|
connectionTimeout = setTimeout(function () {
|
|
10510
10749
|
if (wsConnection.readyState == 0) {
|
|
10511
|
-
|
|
10750
|
+
logger.warn(LOG_PREFIX, "WS connection timeout");
|
|
10512
10751
|
wsConnection.close();
|
|
10513
10752
|
}
|
|
10514
10753
|
}, timeout);
|
|
@@ -10532,7 +10771,7 @@ var createSession = function createSession(options) {
|
|
|
10532
10771
|
mediaProviders: Object.keys(MediaProvider),
|
|
10533
10772
|
keepAlive: keepAlive,
|
|
10534
10773
|
authToken: authToken,
|
|
10535
|
-
clientVersion: "2.0.
|
|
10774
|
+
clientVersion: "2.0.217",
|
|
10536
10775
|
clientOSVersion: window.navigator.appVersion,
|
|
10537
10776
|
clientBrowserVersion: window.navigator.userAgent,
|
|
10538
10777
|
msePacketizationVersion: 2,
|
|
@@ -10838,6 +11077,7 @@ var createSession = function createSession(options) {
|
|
|
10838
11077
|
* @param {Array<string>=} options.sipSDP Array of custom SDP params (ex. bandwidth (b=))
|
|
10839
11078
|
* @param {Array<string>=} options.sipHeaders Array of custom SIP headers
|
|
10840
11079
|
* @param {string=} options.videoContentHint Video content hint for browser ('detail' by default to maintain resolution), {@link Flashphoner.constants.CONTENT_HINT_TYPE}
|
|
11080
|
+
* @param {Object=} options.logger Call logger options
|
|
10841
11081
|
* @param {sdpHook} sdpHook The callback that handles sdp from the server
|
|
10842
11082
|
* @returns {Call} Call
|
|
10843
11083
|
* @throws {TypeError} Error if no options provided
|
|
@@ -10850,15 +11090,18 @@ var createSession = function createSession(options) {
|
|
|
10850
11090
|
var createCall = function createCall(options) {
|
|
10851
11091
|
//check session state
|
|
10852
11092
|
if (sessionStatus !== SESSION_STATUS.REGISTERED && sessionStatus !== SESSION_STATUS.ESTABLISHED) {
|
|
10853
|
-
|
|
10854
|
-
throw new Error('Invalid session state');
|
|
11093
|
+
throw new Error('Invalid session state ' + sessionStatus);
|
|
10855
11094
|
} //check options
|
|
10856
11095
|
|
|
10857
11096
|
|
|
10858
11097
|
if (!options) {
|
|
10859
11098
|
throw new TypeError("options must be provided");
|
|
10860
|
-
}
|
|
11099
|
+
} // Set call logger #WCS-2434
|
|
11100
|
+
|
|
11101
|
+
|
|
11102
|
+
var callLogger = createLogger(options.logger, sessionLogger); // Override logger for all low level operations
|
|
10861
11103
|
|
|
11104
|
+
var logger = callLogger;
|
|
10862
11105
|
var login = appKey == 'clickToCallApp' ? '' : cConfig.sipLogin;
|
|
10863
11106
|
var caller_ = options.incoming ? options.caller : login;
|
|
10864
11107
|
var callee_ = options.callee;
|
|
@@ -11004,7 +11247,8 @@ var createSession = function createSession(options) {
|
|
|
11004
11247
|
constraints: constraints,
|
|
11005
11248
|
connectionConfig: mediaOptions,
|
|
11006
11249
|
audioOutputId: audioOutputId,
|
|
11007
|
-
videoContentHint: videoContentHint
|
|
11250
|
+
videoContentHint: videoContentHint,
|
|
11251
|
+
logger: logger
|
|
11008
11252
|
}).then(function (newConnection) {
|
|
11009
11253
|
mediaConnection = newConnection;
|
|
11010
11254
|
return mediaConnection.createOffer({
|
|
@@ -11590,7 +11834,7 @@ var createSession = function createSession(options) {
|
|
|
11590
11834
|
/**
|
|
11591
11835
|
* Get call info
|
|
11592
11836
|
* @returns {string} Info
|
|
11593
|
-
* @memberof
|
|
11837
|
+
* @memberof Call
|
|
11594
11838
|
* @inner
|
|
11595
11839
|
*/
|
|
11596
11840
|
|
|
@@ -11601,7 +11845,7 @@ var createSession = function createSession(options) {
|
|
|
11601
11845
|
/**
|
|
11602
11846
|
* Get stream error info
|
|
11603
11847
|
* @returns {string} Error info
|
|
11604
|
-
* @memberof
|
|
11848
|
+
* @memberof Call
|
|
11605
11849
|
* @inner
|
|
11606
11850
|
*/
|
|
11607
11851
|
|
|
@@ -11609,6 +11853,17 @@ var createSession = function createSession(options) {
|
|
|
11609
11853
|
var getErrorInfo = function getErrorInfo() {
|
|
11610
11854
|
return errorInfo_;
|
|
11611
11855
|
};
|
|
11856
|
+
/**
|
|
11857
|
+
* Get call logger
|
|
11858
|
+
*
|
|
11859
|
+
* @returns {Object} Logger
|
|
11860
|
+
* @memberof Call
|
|
11861
|
+
*/
|
|
11862
|
+
|
|
11863
|
+
|
|
11864
|
+
var getLogger = function getLogger() {
|
|
11865
|
+
return callLogger;
|
|
11866
|
+
};
|
|
11612
11867
|
|
|
11613
11868
|
call.call = call_;
|
|
11614
11869
|
call.answer = answer;
|
|
@@ -11640,6 +11895,7 @@ var createSession = function createSession(options) {
|
|
|
11640
11895
|
call.switchMic = switchMic;
|
|
11641
11896
|
call.switchToScreen = switchToScreen;
|
|
11642
11897
|
call.switchToCam = switchToCam;
|
|
11898
|
+
call.getLogger = getLogger;
|
|
11643
11899
|
calls[id_] = call;
|
|
11644
11900
|
return call;
|
|
11645
11901
|
};
|
|
@@ -11686,6 +11942,7 @@ var createSession = function createSession(options) {
|
|
|
11686
11942
|
* @param {string=} options.useCanvasMediaStream EXPERIMENTAL: when publish bind browser's media stream to the canvas. It can be useful for image filtering
|
|
11687
11943
|
* @param {string=} options.videoContentHint Video content hint for browser ('detail' by default to maintain resolution), {@link Flashphoner.constants.CONTENT_HINT_TYPE}
|
|
11688
11944
|
* @param {Boolean=} options.unmutePlayOnStart Unmute playback on start. May be used after user gesture only, so set 'unmutePlayOnStart: false' for autoplay
|
|
11945
|
+
* @param {Object=} options.logger Stream logger options
|
|
11689
11946
|
* @param {sdpHook} sdpHook The callback that handles sdp from the server
|
|
11690
11947
|
* @returns {Stream} Stream
|
|
11691
11948
|
* @throws {TypeError} Error if no options provided
|
|
@@ -11701,7 +11958,7 @@ var createSession = function createSession(options) {
|
|
|
11701
11958
|
var availableCallbacks = []; //check session state
|
|
11702
11959
|
|
|
11703
11960
|
if (sessionStatus !== SESSION_STATUS.ESTABLISHED) {
|
|
11704
|
-
throw new Error('Invalid session state');
|
|
11961
|
+
throw new Error('Invalid session state ' + sessionStatus);
|
|
11705
11962
|
} //check options
|
|
11706
11963
|
|
|
11707
11964
|
|
|
@@ -11711,8 +11968,12 @@ var createSession = function createSession(options) {
|
|
|
11711
11968
|
|
|
11712
11969
|
if (!options.name) {
|
|
11713
11970
|
throw new TypeError("options.name must be provided");
|
|
11714
|
-
}
|
|
11971
|
+
} // Set stream logger #WCS-2434
|
|
11715
11972
|
|
|
11973
|
+
|
|
11974
|
+
var streamLogger = createLogger(options.logger, sessionLogger); // Override logger for all low level operations
|
|
11975
|
+
|
|
11976
|
+
var logger = streamLogger;
|
|
11716
11977
|
var clientKf = new KalmanFilter();
|
|
11717
11978
|
var serverKf = new KalmanFilter();
|
|
11718
11979
|
var id_ = uuid_v1();
|
|
@@ -11956,7 +12217,7 @@ var createSession = function createSession(options) {
|
|
|
11956
12217
|
logger.debug(LOG_PREFIX, "Play stream " + name_);
|
|
11957
12218
|
|
|
11958
12219
|
if (status_ !== STREAM_STATUS.NEW) {
|
|
11959
|
-
throw new Error("Invalid stream state");
|
|
12220
|
+
throw new Error("Invalid stream state " + status_);
|
|
11960
12221
|
}
|
|
11961
12222
|
|
|
11962
12223
|
status_ = STREAM_STATUS.PENDING; //create mediaProvider connection
|
|
@@ -11975,7 +12236,8 @@ var createSession = function createSession(options) {
|
|
|
11975
12236
|
audioOutputId: audioOutputId,
|
|
11976
12237
|
remoteVideo: remoteVideo,
|
|
11977
12238
|
playoutDelay: playoutDelay,
|
|
11978
|
-
unmutePlayOnStart: unmutePlayOnStart
|
|
12239
|
+
unmutePlayOnStart: unmutePlayOnStart,
|
|
12240
|
+
logger: logger
|
|
11979
12241
|
}, streamRefreshHandlers[id_]).then(function (newConnection) {
|
|
11980
12242
|
mediaConnection = newConnection;
|
|
11981
12243
|
|
|
@@ -12039,7 +12301,7 @@ var createSession = function createSession(options) {
|
|
|
12039
12301
|
logger.debug(LOG_PREFIX, "Publish stream " + name_);
|
|
12040
12302
|
|
|
12041
12303
|
if (status_ !== STREAM_STATUS.NEW) {
|
|
12042
|
-
throw new Error("Invalid stream state");
|
|
12304
|
+
throw new Error("Invalid stream state " + status_);
|
|
12043
12305
|
}
|
|
12044
12306
|
|
|
12045
12307
|
status_ = STREAM_STATUS.PENDING;
|
|
@@ -12073,7 +12335,8 @@ var createSession = function createSession(options) {
|
|
|
12073
12335
|
connectionConfig: mediaOptions,
|
|
12074
12336
|
connectionConstraints: mediaConnectionConstraints,
|
|
12075
12337
|
customStream: constraints && constraints.customStream ? constraints.customStream : false,
|
|
12076
|
-
videoContentHint: videoContentHint
|
|
12338
|
+
videoContentHint: videoContentHint,
|
|
12339
|
+
logger: logger
|
|
12077
12340
|
}).then(function (newConnection) {
|
|
12078
12341
|
mediaConnection = newConnection;
|
|
12079
12342
|
return mediaConnection.createOffer({
|
|
@@ -12703,6 +12966,17 @@ var createSession = function createSession(options) {
|
|
|
12703
12966
|
availableCallbacks.push(promise);
|
|
12704
12967
|
});
|
|
12705
12968
|
};
|
|
12969
|
+
/**
|
|
12970
|
+
* Get stream logger
|
|
12971
|
+
*
|
|
12972
|
+
* @returns {Object} Logger
|
|
12973
|
+
* @memberof Stream
|
|
12974
|
+
*/
|
|
12975
|
+
|
|
12976
|
+
|
|
12977
|
+
var getLogger = function getLogger() {
|
|
12978
|
+
return streamLogger;
|
|
12979
|
+
};
|
|
12706
12980
|
|
|
12707
12981
|
stream.play = play;
|
|
12708
12982
|
stream.publish = publish;
|
|
@@ -12742,6 +13016,7 @@ var createSession = function createSession(options) {
|
|
|
12742
13016
|
stream.switchToScreen = switchToScreen;
|
|
12743
13017
|
stream.switchToCam = switchToCam;
|
|
12744
13018
|
stream.sendData = sendData;
|
|
13019
|
+
stream.getLogger = getLogger;
|
|
12745
13020
|
streams[id_] = stream;
|
|
12746
13021
|
return stream;
|
|
12747
13022
|
};
|
|
@@ -12950,6 +13225,17 @@ var createSession = function createSession(options) {
|
|
|
12950
13225
|
}
|
|
12951
13226
|
|
|
12952
13227
|
return sdp;
|
|
13228
|
+
};
|
|
13229
|
+
/**
|
|
13230
|
+
* Get session logger
|
|
13231
|
+
*
|
|
13232
|
+
* @returns {Object} Logger
|
|
13233
|
+
* @memberof Session
|
|
13234
|
+
*/
|
|
13235
|
+
|
|
13236
|
+
|
|
13237
|
+
var getLogger = function getLogger() {
|
|
13238
|
+
return sessionLogger;
|
|
12953
13239
|
}; //export Session
|
|
12954
13240
|
|
|
12955
13241
|
|
|
@@ -12965,7 +13251,8 @@ var createSession = function createSession(options) {
|
|
|
12965
13251
|
session.submitBugReport = submitBugReport;
|
|
12966
13252
|
session.startDebug = startDebug;
|
|
12967
13253
|
session.stopDebug = stopDebug;
|
|
12968
|
-
session.on = on;
|
|
13254
|
+
session.on = on;
|
|
13255
|
+
session.getLogger = getLogger; //save interface to global map
|
|
12969
13256
|
|
|
12970
13257
|
sessions[id_] = session;
|
|
12971
13258
|
return session;
|
|
@@ -13011,165 +13298,171 @@ function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeo
|
|
|
13011
13298
|
},{}],43:[function(require,module,exports){
|
|
13012
13299
|
'use strict';
|
|
13013
13300
|
|
|
13014
|
-
|
|
13015
|
-
|
|
13016
|
-
|
|
13017
|
-
|
|
13018
|
-
}
|
|
13301
|
+
var isEmptyObject = function isEmptyObject(obj) {
|
|
13302
|
+
for (var name in obj) {
|
|
13303
|
+
return false;
|
|
13304
|
+
}
|
|
13019
13305
|
|
|
13020
|
-
|
|
13021
|
-
|
|
13306
|
+
return true;
|
|
13307
|
+
};
|
|
13308
|
+
/**
|
|
13309
|
+
* Copy values of object own properties to array.
|
|
13310
|
+
*
|
|
13311
|
+
* @param obj
|
|
13312
|
+
* @returns {Array}
|
|
13313
|
+
*/
|
|
13022
13314
|
|
|
13023
|
-
/**
|
|
13024
|
-
* Copy values of object own properties to array.
|
|
13025
|
-
*
|
|
13026
|
-
* @param obj
|
|
13027
|
-
* @returns {Array}
|
|
13028
|
-
*/
|
|
13029
|
-
copyObjectToArray: function copyObjectToArray(obj) {
|
|
13030
|
-
var ret = [];
|
|
13031
13315
|
|
|
13032
|
-
|
|
13033
|
-
|
|
13034
|
-
|
|
13035
|
-
|
|
13316
|
+
var copyObjectToArray = function copyObjectToArray(obj) {
|
|
13317
|
+
var ret = [];
|
|
13318
|
+
|
|
13319
|
+
for (var prop in obj) {
|
|
13320
|
+
if (obj.hasOwnProperty(prop)) {
|
|
13321
|
+
ret.push(obj[prop]);
|
|
13036
13322
|
}
|
|
13323
|
+
}
|
|
13037
13324
|
|
|
13038
|
-
|
|
13039
|
-
|
|
13325
|
+
return ret;
|
|
13326
|
+
};
|
|
13327
|
+
/**
|
|
13328
|
+
* Copy src properties to dst object.
|
|
13329
|
+
* Will overwrite dst prop with src prop in case of dst prop exist.
|
|
13330
|
+
*/
|
|
13040
13331
|
|
|
13041
|
-
|
|
13042
|
-
|
|
13043
|
-
|
|
13044
|
-
|
|
13045
|
-
|
|
13046
|
-
for (var prop in src) {
|
|
13047
|
-
if (src.hasOwnProperty(prop)) {
|
|
13048
|
-
dst[prop] = src[prop];
|
|
13049
|
-
}
|
|
13332
|
+
|
|
13333
|
+
var copyObjectPropsToAnotherObject = function copyObjectPropsToAnotherObject(src, dst) {
|
|
13334
|
+
for (var prop in src) {
|
|
13335
|
+
if (src.hasOwnProperty(prop)) {
|
|
13336
|
+
dst[prop] = src[prop];
|
|
13050
13337
|
}
|
|
13051
|
-
}
|
|
13052
|
-
|
|
13053
|
-
var result = {};
|
|
13338
|
+
}
|
|
13339
|
+
};
|
|
13054
13340
|
|
|
13055
|
-
|
|
13056
|
-
|
|
13057
|
-
* Report types: googComponent, googCandidatePair, googCertificate, googLibjingleSession, googTrack, ssrc
|
|
13058
|
-
*/
|
|
13059
|
-
var gotResult = false;
|
|
13341
|
+
var processRtcStatsReport = function processRtcStatsReport(browser, report) {
|
|
13342
|
+
var result = {};
|
|
13060
13343
|
|
|
13061
|
-
|
|
13062
|
-
|
|
13063
|
-
|
|
13064
|
-
|
|
13065
|
-
|
|
13066
|
-
}
|
|
13344
|
+
if (browser == "chrome") {
|
|
13345
|
+
/**
|
|
13346
|
+
* Report types: googComponent, googCandidatePair, googCertificate, googLibjingleSession, googTrack, ssrc
|
|
13347
|
+
*/
|
|
13348
|
+
var gotResult = false;
|
|
13067
13349
|
|
|
13068
|
-
|
|
13350
|
+
if (report.type && report.type == "googCandidatePair") {
|
|
13351
|
+
//check if this is active pair
|
|
13352
|
+
if (report.googActiveConnection == "true") {
|
|
13069
13353
|
gotResult = true;
|
|
13070
13354
|
}
|
|
13355
|
+
}
|
|
13071
13356
|
|
|
13072
|
-
|
|
13073
|
-
|
|
13074
|
-
|
|
13075
|
-
|
|
13076
|
-
|
|
13357
|
+
if (report.type && report.type == "ssrc") {
|
|
13358
|
+
gotResult = true;
|
|
13359
|
+
}
|
|
13360
|
+
|
|
13361
|
+
if (gotResult) {
|
|
13362
|
+
for (var k in report) {
|
|
13363
|
+
if (report.hasOwnProperty(k)) {
|
|
13364
|
+
result[k] = report[k];
|
|
13077
13365
|
}
|
|
13078
13366
|
}
|
|
13367
|
+
}
|
|
13079
13368
|
|
|
13080
|
-
|
|
13081
|
-
|
|
13082
|
-
|
|
13083
|
-
|
|
13084
|
-
|
|
13085
|
-
|
|
13086
|
-
|
|
13369
|
+
return result;
|
|
13370
|
+
} else if (browser == "firefox") {
|
|
13371
|
+
/**
|
|
13372
|
+
* RTCStatsReport http://mxr.mozilla.org/mozilla-central/source/dom/webidl/RTCStatsReport.webidl
|
|
13373
|
+
*/
|
|
13374
|
+
if (report.type && (report.type == "outboundrtp" || report.type == "inboundrtp") && report.id.indexOf("rtcp") == -1) {
|
|
13375
|
+
result = {};
|
|
13087
13376
|
|
|
13088
|
-
|
|
13089
|
-
|
|
13090
|
-
|
|
13091
|
-
}
|
|
13377
|
+
for (var k in report) {
|
|
13378
|
+
if (report.hasOwnProperty(k)) {
|
|
13379
|
+
result[k] = report[k];
|
|
13092
13380
|
}
|
|
13093
13381
|
}
|
|
13094
|
-
|
|
13095
|
-
return result;
|
|
13096
|
-
} else {
|
|
13097
|
-
return result;
|
|
13098
13382
|
}
|
|
13099
13383
|
|
|
13100
|
-
;
|
|
13384
|
+
return result;
|
|
13385
|
+
} else {
|
|
13386
|
+
return result;
|
|
13387
|
+
}
|
|
13388
|
+
};
|
|
13389
|
+
|
|
13390
|
+
var Browser = {
|
|
13391
|
+
isIE: function isIE() {
|
|
13392
|
+
return (
|
|
13393
|
+
/*@cc_on!@*/
|
|
13394
|
+
false || !!document.documentMode
|
|
13395
|
+
);
|
|
13101
13396
|
},
|
|
13102
|
-
|
|
13103
|
-
|
|
13104
|
-
return (
|
|
13105
|
-
/*@cc_on!@*/
|
|
13106
|
-
false || !!document.documentMode
|
|
13107
|
-
);
|
|
13108
|
-
},
|
|
13109
|
-
isFirefox: function isFirefox() {
|
|
13110
|
-
return typeof InstallTrigger !== 'undefined';
|
|
13111
|
-
},
|
|
13112
|
-
isChrome: function isChrome() {
|
|
13113
|
-
return !!window.chrome && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor) && !/OPR/.test(navigator.userAgent);
|
|
13114
|
-
},
|
|
13115
|
-
isEdge: function isEdge() {
|
|
13116
|
-
return !isIE && !!window.StyleMedia;
|
|
13117
|
-
},
|
|
13118
|
-
isOpera: function isOpera() {
|
|
13119
|
-
return !!window.opr && !!opr.addons || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
|
|
13120
|
-
},
|
|
13121
|
-
isiOS: function isiOS() {
|
|
13122
|
-
return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
|
13123
|
-
},
|
|
13124
|
-
isSafari: function isSafari() {
|
|
13125
|
-
var userAgent = navigator.userAgent.toLowerCase();
|
|
13126
|
-
return /(safari|applewebkit)/i.test(userAgent) && !userAgent.includes("chrome") && !userAgent.includes("android");
|
|
13127
|
-
},
|
|
13128
|
-
isAndroid: function isAndroid() {
|
|
13129
|
-
return navigator.userAgent.toLowerCase().indexOf("android") > -1;
|
|
13130
|
-
},
|
|
13131
|
-
isSafariWebRTC: function isSafariWebRTC() {
|
|
13132
|
-
return navigator.mediaDevices && this.isSafari();
|
|
13133
|
-
},
|
|
13134
|
-
isSamsungBrowser: function isSamsungBrowser() {
|
|
13135
|
-
return /SamsungBrowser/i.test(navigator.userAgent);
|
|
13136
|
-
},
|
|
13137
|
-
isAndroidFirefox: function isAndroidFirefox() {
|
|
13138
|
-
return this.isAndroid() && /Firefox/i.test(navigator.userAgent);
|
|
13139
|
-
}
|
|
13397
|
+
isFirefox: function isFirefox() {
|
|
13398
|
+
return typeof InstallTrigger !== 'undefined';
|
|
13140
13399
|
},
|
|
13141
|
-
|
|
13142
|
-
|
|
13143
|
-
|
|
13144
|
-
|
|
13145
|
-
|
|
13146
|
-
|
|
13147
|
-
|
|
13148
|
-
|
|
13149
|
-
|
|
13150
|
-
|
|
13151
|
-
|
|
13152
|
-
|
|
13400
|
+
isChrome: function isChrome() {
|
|
13401
|
+
return !!window.chrome && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor) && !/OPR/.test(navigator.userAgent);
|
|
13402
|
+
},
|
|
13403
|
+
isEdge: function isEdge() {
|
|
13404
|
+
return !isIE && !!window.StyleMedia;
|
|
13405
|
+
},
|
|
13406
|
+
isOpera: function isOpera() {
|
|
13407
|
+
return !!window.opr && !!opr.addons || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
|
|
13408
|
+
},
|
|
13409
|
+
isiOS: function isiOS() {
|
|
13410
|
+
return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
|
13411
|
+
},
|
|
13412
|
+
isSafari: function isSafari() {
|
|
13413
|
+
var userAgent = navigator.userAgent.toLowerCase();
|
|
13414
|
+
return /(safari|applewebkit)/i.test(userAgent) && !userAgent.includes("chrome") && !userAgent.includes("android");
|
|
13415
|
+
},
|
|
13416
|
+
isAndroid: function isAndroid() {
|
|
13417
|
+
return navigator.userAgent.toLowerCase().indexOf("android") > -1;
|
|
13418
|
+
},
|
|
13419
|
+
isSafariWebRTC: function isSafariWebRTC() {
|
|
13420
|
+
return navigator.mediaDevices && this.isSafari();
|
|
13421
|
+
},
|
|
13422
|
+
isSamsungBrowser: function isSamsungBrowser() {
|
|
13423
|
+
return /SamsungBrowser/i.test(navigator.userAgent);
|
|
13424
|
+
},
|
|
13425
|
+
isAndroidFirefox: function isAndroidFirefox() {
|
|
13426
|
+
return this.isAndroid() && /Firefox/i.test(navigator.userAgent);
|
|
13427
|
+
},
|
|
13428
|
+
isChromiumEdge: function isChromiumEdge() {
|
|
13429
|
+
return /Chrome/i.test(navigator.userAgent) && /Edg/i.test(navigator.userAgent);
|
|
13430
|
+
}
|
|
13431
|
+
};
|
|
13432
|
+
var SDP = {
|
|
13433
|
+
matchPrefix: function matchPrefix(sdp, prefix) {
|
|
13434
|
+
var parts = sdp.trim().split('\n').map(function (line) {
|
|
13435
|
+
return line.trim();
|
|
13436
|
+
});
|
|
13437
|
+
return parts.filter(function (line) {
|
|
13438
|
+
return line.indexOf(prefix) === 0;
|
|
13439
|
+
});
|
|
13440
|
+
},
|
|
13441
|
+
writeFmtp: function writeFmtp(sdp, param, codec) {
|
|
13442
|
+
var sdpArray = sdp.split("\n");
|
|
13443
|
+
var i;
|
|
13153
13444
|
|
|
13154
|
-
|
|
13155
|
-
|
|
13156
|
-
|
|
13157
|
-
|
|
13158
|
-
|
|
13445
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13446
|
+
if (sdpArray[i].search(codec) != -1 && sdpArray[i].indexOf("a=rtpmap") == 0) {
|
|
13447
|
+
sdpArray[i] += "\na=fmtp:" + sdpArray[i].match(/[0-9]+/)[0] + " " + param + "\r";
|
|
13448
|
+
}
|
|
13449
|
+
} //normalize sdp after modifications
|
|
13159
13450
|
|
|
13160
13451
|
|
|
13161
|
-
|
|
13452
|
+
var result = "";
|
|
13162
13453
|
|
|
13163
|
-
|
|
13164
|
-
|
|
13165
|
-
|
|
13166
|
-
}
|
|
13454
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13455
|
+
if (sdpArray[i] != "") {
|
|
13456
|
+
result += sdpArray[i] + "\n";
|
|
13167
13457
|
}
|
|
13168
|
-
|
|
13169
|
-
return result;
|
|
13170
13458
|
}
|
|
13171
|
-
|
|
13172
|
-
|
|
13459
|
+
|
|
13460
|
+
return result;
|
|
13461
|
+
}
|
|
13462
|
+
};
|
|
13463
|
+
|
|
13464
|
+
var logger = function logger() {
|
|
13465
|
+
return {
|
|
13173
13466
|
init: function init(verbosity, enablePushLogs, customLogger, enableLogs) {
|
|
13174
13467
|
switch (verbosity.toUpperCase()) {
|
|
13175
13468
|
case "DEBUG":
|
|
@@ -13350,92 +13643,104 @@ module.exports = {
|
|
|
13350
13643
|
default:
|
|
13351
13644
|
this.verbosity = 2;
|
|
13352
13645
|
}
|
|
13353
|
-
|
|
13354
|
-
;
|
|
13355
13646
|
}
|
|
13356
|
-
}
|
|
13357
|
-
|
|
13358
|
-
if (!codecs.length) return sdp;
|
|
13359
|
-
var sdpArray = sdp.split("\n");
|
|
13360
|
-
var codecsArray = codecs.split(","); //search and delete codecs line
|
|
13647
|
+
};
|
|
13648
|
+
};
|
|
13361
13649
|
|
|
13362
|
-
|
|
13363
|
-
|
|
13650
|
+
var stripCodecs = function stripCodecs(sdp, codecs) {
|
|
13651
|
+
if (!codecs.length) return sdp;
|
|
13652
|
+
var sdpArray = sdp.split("\n");
|
|
13653
|
+
var codecsArray = codecs.split(","); //search and delete codecs line
|
|
13364
13654
|
|
|
13365
|
-
|
|
13366
|
-
|
|
13655
|
+
var pt = [];
|
|
13656
|
+
var i;
|
|
13367
13657
|
|
|
13368
|
-
|
|
13369
|
-
|
|
13370
|
-
|
|
13371
|
-
|
|
13372
|
-
|
|
13373
|
-
|
|
13658
|
+
for (var p = 0; p < codecsArray.length; p++) {
|
|
13659
|
+
console.log("Searching for codec " + codecsArray[p]);
|
|
13660
|
+
|
|
13661
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13662
|
+
if (sdpArray[i].search(new RegExp(codecsArray[p], 'i')) != -1 && sdpArray[i].indexOf("a=rtpmap") == 0) {
|
|
13663
|
+
console.log(codecsArray[p] + " detected");
|
|
13664
|
+
pt.push(sdpArray[i].match(/[0-9]+/)[0]);
|
|
13665
|
+
sdpArray[i] = "";
|
|
13374
13666
|
}
|
|
13375
13667
|
}
|
|
13668
|
+
}
|
|
13376
13669
|
|
|
13377
|
-
|
|
13378
|
-
|
|
13379
|
-
|
|
13380
|
-
|
|
13381
|
-
|
|
13382
|
-
|
|
13383
|
-
}
|
|
13670
|
+
if (pt.length) {
|
|
13671
|
+
//searching for fmtp
|
|
13672
|
+
for (p = 0; p < pt.length; p++) {
|
|
13673
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13674
|
+
if (sdpArray[i].search("a=fmtp:" + pt[p]) != -1 || sdpArray[i].search("a=rtcp-fb:" + pt[p]) != -1) {
|
|
13675
|
+
sdpArray[i] = "";
|
|
13384
13676
|
}
|
|
13385
|
-
}
|
|
13677
|
+
}
|
|
13678
|
+
} //delete entries from m= line
|
|
13386
13679
|
|
|
13387
13680
|
|
|
13388
|
-
|
|
13389
|
-
|
|
13390
|
-
|
|
13391
|
-
|
|
13681
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13682
|
+
if (sdpArray[i].search("m=audio") != -1 || sdpArray[i].search("m=video") != -1) {
|
|
13683
|
+
var mLineSplitted = sdpArray[i].split(" ");
|
|
13684
|
+
var newMLine = "";
|
|
13392
13685
|
|
|
13393
|
-
|
|
13394
|
-
|
|
13395
|
-
|
|
13686
|
+
for (var m = 0; m < mLineSplitted.length; m++) {
|
|
13687
|
+
if (pt.indexOf(mLineSplitted[m].trim()) == -1 || m <= 2) {
|
|
13688
|
+
newMLine += mLineSplitted[m];
|
|
13396
13689
|
|
|
13397
|
-
|
|
13398
|
-
|
|
13399
|
-
}
|
|
13690
|
+
if (m < mLineSplitted.length - 1) {
|
|
13691
|
+
newMLine = newMLine + " ";
|
|
13400
13692
|
}
|
|
13401
13693
|
}
|
|
13402
|
-
|
|
13403
|
-
sdpArray[i] = newMLine;
|
|
13404
13694
|
}
|
|
13695
|
+
|
|
13696
|
+
sdpArray[i] = newMLine;
|
|
13405
13697
|
}
|
|
13406
|
-
}
|
|
13698
|
+
}
|
|
13699
|
+
} //normalize sdp after modifications
|
|
13407
13700
|
|
|
13408
13701
|
|
|
13409
|
-
|
|
13702
|
+
var result = "";
|
|
13410
13703
|
|
|
13411
|
-
|
|
13412
|
-
|
|
13413
|
-
|
|
13414
|
-
}
|
|
13704
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13705
|
+
if (sdpArray[i] != "") {
|
|
13706
|
+
result += sdpArray[i] + "\n";
|
|
13415
13707
|
}
|
|
13708
|
+
}
|
|
13416
13709
|
|
|
13417
|
-
|
|
13418
|
-
|
|
13419
|
-
getCurrentCodecAndSampleRate: function getCurrentCodecAndSampleRate(sdp, mediaType) {
|
|
13420
|
-
var rows = sdp.split("\n");
|
|
13421
|
-
var codecPt;
|
|
13710
|
+
return result;
|
|
13711
|
+
};
|
|
13422
13712
|
|
|
13423
|
-
|
|
13424
|
-
|
|
13425
|
-
|
|
13426
|
-
ret.name = rows[i].split(" ")[1].split("/")[0];
|
|
13427
|
-
ret.sampleRate = rows[i].split(" ")[1].split("/")[1];
|
|
13428
|
-
return ret;
|
|
13429
|
-
} //WCS-2136. WebRTC statistics doesn't work for VP8
|
|
13713
|
+
var getCurrentCodecAndSampleRate = function getCurrentCodecAndSampleRate(sdp, mediaType) {
|
|
13714
|
+
var rows = sdp.split("\n");
|
|
13715
|
+
var codecPt;
|
|
13430
13716
|
|
|
13717
|
+
for (var i = 0; i < rows.length; i++) {
|
|
13718
|
+
if (codecPt && rows[i].indexOf("a=rtpmap:" + codecPt) != -1) {
|
|
13719
|
+
var ret = {};
|
|
13720
|
+
ret.name = rows[i].split(" ")[1].split("/")[0];
|
|
13721
|
+
ret.sampleRate = rows[i].split(" ")[1].split("/")[1];
|
|
13722
|
+
return ret;
|
|
13723
|
+
} //WCS-2136. WebRTC statistics doesn't work for VP8
|
|
13431
13724
|
|
|
13432
|
-
|
|
13433
|
-
|
|
13434
|
-
|
|
13725
|
+
|
|
13726
|
+
if (rows[i].indexOf("m=" + mediaType) != -1) {
|
|
13727
|
+
codecPt = rows[i].split(" ")[3].trim();
|
|
13435
13728
|
}
|
|
13436
13729
|
}
|
|
13437
13730
|
};
|
|
13438
13731
|
|
|
13732
|
+
module.exports = {
|
|
13733
|
+
isEmptyObject: isEmptyObject,
|
|
13734
|
+
copyObjectToArray: copyObjectToArray,
|
|
13735
|
+
copyObjectPropsToAnotherObject: copyObjectPropsToAnotherObject,
|
|
13736
|
+
processRtcStatsReport: processRtcStatsReport,
|
|
13737
|
+
Browser: Browser,
|
|
13738
|
+
SDP: SDP,
|
|
13739
|
+
logger: logger,
|
|
13740
|
+
stripCodecs: stripCodecs,
|
|
13741
|
+
getCurrentCodecAndSampleRate: getCurrentCodecAndSampleRate
|
|
13742
|
+
};
|
|
13743
|
+
|
|
13439
13744
|
},{}],44:[function(require,module,exports){
|
|
13440
13745
|
'use strict';
|
|
13441
13746
|
|
|
@@ -13469,6 +13774,11 @@ var mics = [];
|
|
|
13469
13774
|
|
|
13470
13775
|
var createConnection = function createConnection(options) {
|
|
13471
13776
|
return new Promise(function (resolve, reject) {
|
|
13777
|
+
// Set connection logger #WCS-2434
|
|
13778
|
+
if (options.logger) {
|
|
13779
|
+
logger = options.logger;
|
|
13780
|
+
}
|
|
13781
|
+
|
|
13472
13782
|
var id = options.id;
|
|
13473
13783
|
var connectionConfig = options.connectionConfig || {
|
|
13474
13784
|
"iceServers": []
|
|
@@ -13599,9 +13909,9 @@ var createConnection = function createConnection(options) {
|
|
|
13599
13909
|
function setContentHint(stream, hint) {
|
|
13600
13910
|
stream.getVideoTracks().forEach(function (track) {
|
|
13601
13911
|
if (track.contentHint === undefined) {
|
|
13602
|
-
logger.warn("contentHint unsupported");
|
|
13912
|
+
logger.warn(LOG_PREFIX, "Track contentHint unsupported");
|
|
13603
13913
|
} else {
|
|
13604
|
-
logger.info("Set video track contentHint to " + hint);
|
|
13914
|
+
logger.info(LOG_PREFIX, "Set video track contentHint to " + hint);
|
|
13605
13915
|
track.contentHint = hint;
|
|
13606
13916
|
}
|
|
13607
13917
|
});
|
|
@@ -13638,7 +13948,7 @@ var createConnection = function createConnection(options) {
|
|
|
13638
13948
|
//WCS-2771 add playback delay
|
|
13639
13949
|
connection.getReceivers().forEach(function (track) {
|
|
13640
13950
|
if (track.playoutDelayHint === undefined) {
|
|
13641
|
-
logger.warn("
|
|
13951
|
+
logger.warn(LOG_PREFIX, "Playout delay unsupported");
|
|
13642
13952
|
}
|
|
13643
13953
|
|
|
13644
13954
|
track.playoutDelayHint = playoutDelay;
|
|
@@ -14031,7 +14341,7 @@ var createConnection = function createConnection(options) {
|
|
|
14031
14341
|
localVideo.srcObject.addTrack(audioTrack);
|
|
14032
14342
|
}
|
|
14033
14343
|
|
|
14034
|
-
logger.info("Switch camera to " + cam);
|
|
14344
|
+
logger.info(LOG_PREFIX, "Switch camera to " + cam);
|
|
14035
14345
|
resolve(cam);
|
|
14036
14346
|
})["catch"](function (reason) {
|
|
14037
14347
|
logger.error(LOG_PREFIX, reason);
|
|
@@ -14089,7 +14399,7 @@ var createConnection = function createConnection(options) {
|
|
|
14089
14399
|
localVideo.srcObject.addTrack(videoTrack);
|
|
14090
14400
|
}
|
|
14091
14401
|
|
|
14092
|
-
logger.info("Switch mic to " + mic);
|
|
14402
|
+
logger.info(LOG_PREFIX, "Switch mic to " + mic);
|
|
14093
14403
|
resolve(mic);
|
|
14094
14404
|
})["catch"](function (reason) {
|
|
14095
14405
|
logger.error(LOG_PREFIX, reason);
|
|
@@ -14183,7 +14493,7 @@ var createConnection = function createConnection(options) {
|
|
|
14183
14493
|
localVideo.srcObject.addTrack(currentAudioTrack);
|
|
14184
14494
|
}
|
|
14185
14495
|
});
|
|
14186
|
-
logger.info("Switch to screen");
|
|
14496
|
+
logger.info(LOG_PREFIX, "Switch to screen");
|
|
14187
14497
|
screenShare = true;
|
|
14188
14498
|
resolve();
|
|
14189
14499
|
};
|
|
@@ -14215,7 +14525,7 @@ var createConnection = function createConnection(options) {
|
|
|
14215
14525
|
});
|
|
14216
14526
|
}
|
|
14217
14527
|
|
|
14218
|
-
logger.info("Switch to cam");
|
|
14528
|
+
logger.info(LOG_PREFIX, "Switch to cam");
|
|
14219
14529
|
screenShare = false;
|
|
14220
14530
|
};
|
|
14221
14531
|
|