@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
package/flashphoner-no-flash.js
CHANGED
|
@@ -8831,717 +8831,926 @@ exports['WSPlayer'] = WSPlayer;
|
|
|
8831
8831
|
* @see Session
|
|
8832
8832
|
*/
|
|
8833
8833
|
|
|
8834
|
-
var
|
|
8835
|
-
/**
|
|
8836
|
-
|
|
8837
|
-
|
|
8838
|
-
|
|
8839
|
-
|
|
8834
|
+
var SESSION_STATUS = Object.freeze({
|
|
8835
|
+
/**
|
|
8836
|
+
* Fires when {@link Session} ws socket opens.
|
|
8837
|
+
* @event CONNECTED
|
|
8838
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8839
|
+
*/
|
|
8840
|
+
CONNECTED: 'CONNECTED',
|
|
8840
8841
|
|
|
8841
|
-
|
|
8842
|
-
|
|
8843
|
-
|
|
8844
|
-
|
|
8845
|
-
|
|
8846
|
-
|
|
8842
|
+
/**
|
|
8843
|
+
* Fires when {@link Session} receives connect ack from REST App.
|
|
8844
|
+
* @event ESTABLISHED
|
|
8845
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8846
|
+
*/
|
|
8847
|
+
ESTABLISHED: 'ESTABLISHED',
|
|
8847
8848
|
|
|
8848
|
-
|
|
8849
|
-
|
|
8850
|
-
|
|
8851
|
-
|
|
8852
|
-
|
|
8853
|
-
|
|
8849
|
+
/**
|
|
8850
|
+
* Fires when {@link Session} disconnects.
|
|
8851
|
+
* @event DISCONNECTED
|
|
8852
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8853
|
+
*/
|
|
8854
|
+
DISCONNECTED: 'DISCONNECTED',
|
|
8854
8855
|
|
|
8855
|
-
|
|
8856
|
-
|
|
8857
|
-
|
|
8858
|
-
|
|
8859
|
-
|
|
8860
|
-
|
|
8856
|
+
/**
|
|
8857
|
+
* Fires if {@link Session} call of rest method error.
|
|
8858
|
+
* @event WARN
|
|
8859
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8860
|
+
*/
|
|
8861
|
+
WARN: 'WARN',
|
|
8861
8862
|
|
|
8862
|
-
|
|
8863
|
-
|
|
8864
|
-
|
|
8865
|
-
|
|
8866
|
-
|
|
8867
|
-
|
|
8868
|
-
|
|
8863
|
+
/**
|
|
8864
|
+
* Fires if {@link Session} connection failed.
|
|
8865
|
+
* Some of the reasons can be network connection failed, REST App failed
|
|
8866
|
+
* @event FAILED
|
|
8867
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8868
|
+
*/
|
|
8869
|
+
FAILED: 'FAILED',
|
|
8869
8870
|
|
|
8870
|
-
|
|
8871
|
-
|
|
8872
|
-
|
|
8873
|
-
|
|
8874
|
-
|
|
8875
|
-
|
|
8871
|
+
/**
|
|
8872
|
+
* Fires wneh {@link Session} receives debug event
|
|
8873
|
+
* @event DEBUG
|
|
8874
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8875
|
+
*/
|
|
8876
|
+
DEBUG: 'DEBUG',
|
|
8876
8877
|
|
|
8877
|
-
|
|
8878
|
-
|
|
8879
|
-
|
|
8880
|
-
|
|
8881
|
-
|
|
8882
|
-
|
|
8883
|
-
|
|
8878
|
+
/**
|
|
8879
|
+
* Fires when {@link Session} receives custom REST App message.
|
|
8880
|
+
*
|
|
8881
|
+
* @event APP_DATA
|
|
8882
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8883
|
+
*/
|
|
8884
|
+
APP_DATA: 'APP_DATA',
|
|
8884
8885
|
|
|
8885
|
-
|
|
8886
|
-
|
|
8887
|
-
|
|
8888
|
-
|
|
8889
|
-
|
|
8890
|
-
|
|
8891
|
-
|
|
8886
|
+
/**
|
|
8887
|
+
* Fires when {@link Session} receives status of sendData operation.
|
|
8888
|
+
*
|
|
8889
|
+
* @event SEND_DATA_STATUS
|
|
8890
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8891
|
+
*/
|
|
8892
|
+
SEND_DATA_STATUS: 'SEND_DATA_STATUS',
|
|
8892
8893
|
|
|
8893
|
-
|
|
8894
|
+
/**
|
|
8895
|
+
* State of newly created {@link Session}.
|
|
8896
|
+
*
|
|
8897
|
+
* @event PENDING
|
|
8898
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8899
|
+
*/
|
|
8900
|
+
PENDING: 'PENDING',
|
|
8894
8901
|
|
|
8895
|
-
|
|
8896
|
-
|
|
8897
|
-
|
|
8898
|
-
|
|
8899
|
-
|
|
8900
|
-
|
|
8901
|
-
|
|
8902
|
+
/**
|
|
8903
|
+
* Fires when {@link Session} registers as sip client.
|
|
8904
|
+
*
|
|
8905
|
+
* @event REGISTERED
|
|
8906
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8907
|
+
*/
|
|
8908
|
+
REGISTERED: 'REGISTERED',
|
|
8902
8909
|
|
|
8903
|
-
|
|
8904
|
-
|
|
8905
|
-
|
|
8906
|
-
|
|
8907
|
-
|
|
8908
|
-
|
|
8909
|
-
|
|
8910
|
+
/**
|
|
8911
|
+
* Fires when {@link Session} unregisters as sip client.
|
|
8912
|
+
*
|
|
8913
|
+
* @event UNREGISTERED
|
|
8914
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8915
|
+
*/
|
|
8916
|
+
UNREGISTERED: 'UNREGISTERED',
|
|
8910
8917
|
|
|
8911
|
-
|
|
8912
|
-
|
|
8918
|
+
/**
|
|
8919
|
+
* Fires when {@link Session} receives an incoming call.
|
|
8920
|
+
*
|
|
8921
|
+
* @event INCOMING_CALL
|
|
8922
|
+
* @memberof Flashphoner.constants.SESSION_STATUS
|
|
8923
|
+
*/
|
|
8924
|
+
INCOMING_CALL: 'INCOMING_CALL'
|
|
8925
|
+
});
|
|
8913
8926
|
/**
|
|
8914
8927
|
* @namespace Flashphoner.constants.STREAM_STATUS
|
|
8915
8928
|
* @see Stream
|
|
8916
8929
|
*/
|
|
8917
8930
|
|
|
8918
|
-
var
|
|
8919
|
-
|
|
8920
|
-
|
|
8931
|
+
var STREAM_STATUS = Object.freeze({
|
|
8932
|
+
/**
|
|
8933
|
+
* State of newly created {@link Stream}.
|
|
8934
|
+
*
|
|
8935
|
+
* @event NEW
|
|
8936
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8937
|
+
*/
|
|
8938
|
+
NEW: 'NEW',
|
|
8921
8939
|
|
|
8922
|
-
|
|
8923
|
-
|
|
8924
|
-
|
|
8925
|
-
|
|
8926
|
-
|
|
8927
|
-
|
|
8940
|
+
/**
|
|
8941
|
+
* State before {@link Stream} publishing/playing.
|
|
8942
|
+
*
|
|
8943
|
+
* @event PENDING
|
|
8944
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8945
|
+
*/
|
|
8946
|
+
PENDING: 'PENDING',
|
|
8928
8947
|
|
|
8929
|
-
|
|
8930
|
-
|
|
8931
|
-
|
|
8932
|
-
|
|
8933
|
-
|
|
8934
|
-
|
|
8948
|
+
/**
|
|
8949
|
+
* Fires when {@link Stream} starts publishing.
|
|
8950
|
+
* @event PUBLISHING
|
|
8951
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8952
|
+
*/
|
|
8953
|
+
PUBLISHING: 'PUBLISHING',
|
|
8935
8954
|
|
|
8936
|
-
|
|
8937
|
-
|
|
8938
|
-
|
|
8939
|
-
|
|
8940
|
-
|
|
8941
|
-
|
|
8955
|
+
/**
|
|
8956
|
+
* Fires when {@link Stream} starts playing.
|
|
8957
|
+
* @event PLAYING
|
|
8958
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8959
|
+
*/
|
|
8960
|
+
PLAYING: 'PLAYING',
|
|
8942
8961
|
|
|
8943
|
-
|
|
8944
|
-
|
|
8945
|
-
|
|
8946
|
-
|
|
8947
|
-
|
|
8948
|
-
|
|
8962
|
+
/**
|
|
8963
|
+
* Fires if {@link Stream} paused.
|
|
8964
|
+
* @event PAUSED
|
|
8965
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8966
|
+
*/
|
|
8967
|
+
PAUSED: 'PAUSED',
|
|
8949
8968
|
|
|
8950
|
-
|
|
8951
|
-
|
|
8952
|
-
|
|
8953
|
-
|
|
8954
|
-
|
|
8955
|
-
|
|
8969
|
+
/**
|
|
8970
|
+
* Fires if {@link Stream} was unpublished.
|
|
8971
|
+
* @event UNPUBLISHED
|
|
8972
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8973
|
+
*/
|
|
8974
|
+
UNPUBLISHED: 'UNPUBLISHED',
|
|
8956
8975
|
|
|
8957
|
-
|
|
8958
|
-
|
|
8959
|
-
|
|
8960
|
-
|
|
8961
|
-
|
|
8962
|
-
|
|
8976
|
+
/**
|
|
8977
|
+
* Fires if playing {@link Stream} was stopped.
|
|
8978
|
+
* @event STOPPED
|
|
8979
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8980
|
+
*/
|
|
8981
|
+
STOPPED: 'STOPPED',
|
|
8963
8982
|
|
|
8964
|
-
|
|
8965
|
-
|
|
8966
|
-
|
|
8967
|
-
|
|
8968
|
-
|
|
8969
|
-
|
|
8983
|
+
/**
|
|
8984
|
+
* Fires if {@link Stream} failed.
|
|
8985
|
+
* @event FAILED
|
|
8986
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8987
|
+
*/
|
|
8988
|
+
FAILED: 'FAILED',
|
|
8970
8989
|
|
|
8971
|
-
|
|
8972
|
-
|
|
8973
|
-
|
|
8974
|
-
|
|
8975
|
-
|
|
8976
|
-
|
|
8990
|
+
/**
|
|
8991
|
+
* Fires if {@link Stream} playback problem.
|
|
8992
|
+
* @event PLAYBACK_PROBLEM
|
|
8993
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
8994
|
+
*/
|
|
8995
|
+
PLAYBACK_PROBLEM: 'PLAYBACK_PROBLEM',
|
|
8977
8996
|
|
|
8978
|
-
|
|
8979
|
-
|
|
8980
|
-
|
|
8981
|
-
|
|
8982
|
-
|
|
8983
|
-
|
|
8984
|
-
*/
|
|
8997
|
+
/**
|
|
8998
|
+
* Fires if playing {@link Stream} picture resizing.
|
|
8999
|
+
* @event RESIZE
|
|
9000
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
9001
|
+
*/
|
|
9002
|
+
RESIZE: 'RESIZE',
|
|
8985
9003
|
|
|
8986
|
-
|
|
8987
|
-
|
|
8988
|
-
|
|
8989
|
-
|
|
8990
|
-
|
|
8991
|
-
|
|
9004
|
+
/**
|
|
9005
|
+
* Fires when {@link Stream} snapshot becomes available.
|
|
9006
|
+
* Snapshot is base64 encoded png available through {@link Stream.getInfo}
|
|
9007
|
+
* @event SNAPSHOT_COMPLETE
|
|
9008
|
+
* @memberof Flashphoner.constants.STREAM_STATUS
|
|
9009
|
+
*/
|
|
9010
|
+
SNAPSHOT_COMPLETE: 'SNAPSHOT_COMPLETE',
|
|
8992
9011
|
|
|
8993
|
-
|
|
9012
|
+
/**
|
|
9013
|
+
* Fires on playing {@link Stream} if bitrate is higher than available network bandwidth.
|
|
9014
|
+
* @event NOT_ENOUGH_BANDWIDTH
|
|
9015
|
+
* @memberof Flashphoner.constants.NOT_ENOUGH_BANDWIDTH
|
|
9016
|
+
*/
|
|
9017
|
+
NOT_ENOUGH_BANDWIDTH: 'NOT_ENOUGH_BANDWIDTH'
|
|
9018
|
+
});
|
|
8994
9019
|
/**
|
|
8995
9020
|
* @namespace Flashphoner.constants.CALL_STATUS
|
|
8996
9021
|
* @see Call
|
|
8997
9022
|
*/
|
|
8998
9023
|
|
|
8999
|
-
var
|
|
9000
|
-
|
|
9001
|
-
|
|
9002
|
-
|
|
9003
|
-
|
|
9004
|
-
|
|
9005
|
-
|
|
9006
|
-
|
|
9007
|
-
|
|
9008
|
-
|
|
9009
|
-
|
|
9010
|
-
|
|
9011
|
-
|
|
9024
|
+
var CALL_STATUS = Object.freeze({
|
|
9025
|
+
/**
|
|
9026
|
+
* State of newly created {@link Call}
|
|
9027
|
+
* @event NEW
|
|
9028
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
9029
|
+
*/
|
|
9030
|
+
NEW: 'NEW',
|
|
9031
|
+
|
|
9032
|
+
/**
|
|
9033
|
+
* The server is ringing to the callee
|
|
9034
|
+
* @event RING
|
|
9035
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
9036
|
+
*/
|
|
9037
|
+
RING: 'RING',
|
|
9038
|
+
RING_MEDIA: 'RING_MEDIA',
|
|
9039
|
+
|
|
9040
|
+
/**
|
|
9041
|
+
* The {@link Call} was put on hold
|
|
9042
|
+
* @event HOLD
|
|
9043
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
9044
|
+
*/
|
|
9045
|
+
HOLD: 'HOLD',
|
|
9046
|
+
|
|
9047
|
+
/**
|
|
9048
|
+
* The {@link Call} is established
|
|
9049
|
+
* @event ESTABLISHED
|
|
9050
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
9051
|
+
*/
|
|
9052
|
+
ESTABLISHED: 'ESTABLISHED',
|
|
9053
|
+
|
|
9054
|
+
/**
|
|
9055
|
+
* The {@link Call} is finished
|
|
9056
|
+
* @event FINISH
|
|
9057
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
9058
|
+
*/
|
|
9059
|
+
FINISH: 'FINISH',
|
|
9060
|
+
|
|
9061
|
+
/**
|
|
9062
|
+
* Callee is busy
|
|
9063
|
+
* @event BUSY
|
|
9064
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
9065
|
+
*/
|
|
9066
|
+
BUSY: 'BUSY',
|
|
9067
|
+
|
|
9068
|
+
/**
|
|
9069
|
+
* SIP session is in progress
|
|
9070
|
+
* @event SESSION_PROGRESS
|
|
9071
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
9072
|
+
*/
|
|
9073
|
+
SESSION_PROGRESS: 'SESSION_PROGRESS',
|
|
9074
|
+
|
|
9075
|
+
/**
|
|
9076
|
+
* The {@link Call} is failed
|
|
9077
|
+
* @event FAILED
|
|
9078
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
9079
|
+
*/
|
|
9080
|
+
FAILED: 'FAILED',
|
|
9081
|
+
|
|
9082
|
+
/**
|
|
9083
|
+
* The {@link Call} state before ringing
|
|
9084
|
+
* @event PENDING
|
|
9085
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
9086
|
+
*/
|
|
9087
|
+
PENDING: 'PENDING',
|
|
9088
|
+
|
|
9089
|
+
/**
|
|
9090
|
+
* The server trying to establish {@link Call}
|
|
9091
|
+
* @event TRYING
|
|
9092
|
+
* @memberof Flashphoner.constants.CALL_STATUS
|
|
9093
|
+
*/
|
|
9094
|
+
TRYING: 'TRYING'
|
|
9095
|
+
});
|
|
9012
9096
|
/**
|
|
9013
9097
|
* @namespace Flashphoner.constants.STREAM_STATUS_INFO
|
|
9014
9098
|
* @see Stream
|
|
9015
9099
|
*/
|
|
9016
9100
|
|
|
9017
|
-
var
|
|
9018
|
-
/**
|
|
9019
|
-
|
|
9020
|
-
|
|
9021
|
-
|
|
9022
|
-
|
|
9023
|
-
|
|
9024
|
-
define(streamStatusInfo, 'FAILED_BY_ICE_ERROR', 'Failed by ICE error');
|
|
9025
|
-
/**
|
|
9026
|
-
* Timeout has been reached during ICE establishment.
|
|
9027
|
-
* @event FAILED_BY_ICE_TIMEOUT
|
|
9028
|
-
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9029
|
-
*/
|
|
9101
|
+
var STREAM_STATUS_INFO = Object.freeze({
|
|
9102
|
+
/**
|
|
9103
|
+
* Indicates general error during ICE negotiation. Usually occurs if client is behind some exotic nat/firewall.
|
|
9104
|
+
* @event FAILED_BY_ICE_ERROR
|
|
9105
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9106
|
+
*/
|
|
9107
|
+
FAILED_BY_ICE_ERROR: 'Failed by ICE error',
|
|
9030
9108
|
|
|
9031
|
-
|
|
9032
|
-
|
|
9033
|
-
|
|
9034
|
-
|
|
9035
|
-
|
|
9036
|
-
|
|
9109
|
+
/**
|
|
9110
|
+
* Timeout has been reached during ICE establishment.
|
|
9111
|
+
* @event FAILED_BY_ICE_TIMEOUT
|
|
9112
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9113
|
+
*/
|
|
9114
|
+
FAILED_BY_ICE_TIMEOUT: 'Failed by ICE timeout',
|
|
9037
9115
|
|
|
9038
|
-
|
|
9039
|
-
|
|
9040
|
-
|
|
9041
|
-
|
|
9042
|
-
|
|
9043
|
-
|
|
9116
|
+
/**
|
|
9117
|
+
* ICE refresh failed on session.
|
|
9118
|
+
* @event FAILED_BY_KEEP_ALIVE
|
|
9119
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9120
|
+
*/
|
|
9121
|
+
FAILED_BY_KEEP_ALIVE: 'Failed by ICE keep alive',
|
|
9044
9122
|
|
|
9045
|
-
|
|
9046
|
-
|
|
9047
|
-
|
|
9048
|
-
|
|
9049
|
-
|
|
9050
|
-
|
|
9123
|
+
/**
|
|
9124
|
+
* DTLS has wrong fingerprint.
|
|
9125
|
+
* @event FAILED_BY_DTLS_FINGERPRINT_ERROR
|
|
9126
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9127
|
+
*/
|
|
9128
|
+
FAILED_BY_DTLS_FINGERPRINT_ERROR: 'Failed by DTLS fingerprint error',
|
|
9051
9129
|
|
|
9052
|
-
|
|
9053
|
-
|
|
9054
|
-
|
|
9055
|
-
|
|
9056
|
-
|
|
9057
|
-
|
|
9130
|
+
/**
|
|
9131
|
+
* Client did not send DTLS packets or packets were lost/corrupted during transmission.
|
|
9132
|
+
* @event FAILED_BY_DTLS_ERROR
|
|
9133
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9134
|
+
*/
|
|
9135
|
+
FAILED_BY_DTLS_ERROR: 'Failed by DTLS error',
|
|
9058
9136
|
|
|
9059
|
-
|
|
9060
|
-
|
|
9061
|
-
|
|
9062
|
-
|
|
9063
|
-
|
|
9064
|
-
|
|
9137
|
+
/**
|
|
9138
|
+
* Indicates general HLS packetizer error, can occur during initialization or packetization (wrong input or out of disk space).
|
|
9139
|
+
* @event FAILED_BY_HLS_WRITER_ERROR
|
|
9140
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9141
|
+
*/
|
|
9142
|
+
FAILED_BY_HLS_WRITER_ERROR: 'Failed by HLS writer error',
|
|
9065
9143
|
|
|
9066
|
-
|
|
9067
|
-
|
|
9068
|
-
|
|
9069
|
-
|
|
9070
|
-
|
|
9071
|
-
|
|
9144
|
+
/**
|
|
9145
|
+
* Indicates general RTMP republishing error, can occur during initialization or rtmp packetization.
|
|
9146
|
+
* @event FAILED_BY_RTMP_WRITER_ERROR
|
|
9147
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9148
|
+
*/
|
|
9149
|
+
FAILED_BY_RTMP_WRITER_ERROR: 'Failed by RTMP writer error',
|
|
9072
9150
|
|
|
9073
|
-
|
|
9074
|
-
|
|
9075
|
-
|
|
9076
|
-
|
|
9077
|
-
|
|
9078
|
-
|
|
9151
|
+
/**
|
|
9152
|
+
* RTP session failed by RTP activity timer.
|
|
9153
|
+
* @event FAILED_BY_RTP_ACTIVITY
|
|
9154
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9155
|
+
*/
|
|
9156
|
+
FAILED_BY_RTP_ACTIVITY: 'Failed by RTP activity',
|
|
9079
9157
|
|
|
9080
|
-
|
|
9081
|
-
|
|
9082
|
-
|
|
9083
|
-
|
|
9084
|
-
|
|
9085
|
-
|
|
9158
|
+
/**
|
|
9159
|
+
* Related session was disconnected.
|
|
9160
|
+
* @event STOPPED_BY_SESSION_DISCONNECT
|
|
9161
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9162
|
+
*/
|
|
9163
|
+
STOPPED_BY_SESSION_DISCONNECT: 'Stopped by session disconnect',
|
|
9086
9164
|
|
|
9087
|
-
|
|
9088
|
-
|
|
9089
|
-
|
|
9090
|
-
|
|
9091
|
-
|
|
9092
|
-
|
|
9165
|
+
/**
|
|
9166
|
+
* Stream was stopped by rest terminate request.
|
|
9167
|
+
* @event STOPPED_BY_REST_TERMINATE
|
|
9168
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9169
|
+
*/
|
|
9170
|
+
STOPPED_BY_REST_TERMINATE: 'Stopped by rest /terminate',
|
|
9093
9171
|
|
|
9094
|
-
|
|
9095
|
-
|
|
9096
|
-
|
|
9097
|
-
|
|
9098
|
-
|
|
9099
|
-
|
|
9172
|
+
/**
|
|
9173
|
+
* Related publisher stopped its stream or lost connection.
|
|
9174
|
+
* @event STOPPED_BY_PUBLISHER_STOP
|
|
9175
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9176
|
+
*/
|
|
9177
|
+
STOPPED_BY_PUBLISHER_STOP: 'Stopped by publisher stop',
|
|
9100
9178
|
|
|
9101
|
-
|
|
9102
|
-
|
|
9103
|
-
|
|
9104
|
-
|
|
9105
|
-
|
|
9106
|
-
|
|
9179
|
+
/**
|
|
9180
|
+
* Stop the media session by user after call was finished or unpublish stream.
|
|
9181
|
+
* @event STOPPED_BY_USER
|
|
9182
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9183
|
+
*/
|
|
9184
|
+
STOPPED_BY_USER: 'Stopped by user',
|
|
9107
9185
|
|
|
9108
|
-
|
|
9109
|
-
|
|
9110
|
-
|
|
9111
|
-
|
|
9112
|
-
|
|
9113
|
-
|
|
9186
|
+
/**
|
|
9187
|
+
* Error occurred on the stream.
|
|
9188
|
+
* @event FAILED_BY_ERROR
|
|
9189
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9190
|
+
*/
|
|
9191
|
+
FAILED_BY_ERROR: 'Failed by error',
|
|
9114
9192
|
|
|
9115
|
-
|
|
9116
|
-
|
|
9117
|
-
|
|
9118
|
-
|
|
9119
|
-
|
|
9120
|
-
|
|
9193
|
+
/**
|
|
9194
|
+
* Indicates that error occurred during media session creation. This might be SDP parsing error, all ports are busy, wrong session related config etc.
|
|
9195
|
+
* @event FAILED_TO_ADD_STREAM_TO_PROXY
|
|
9196
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9197
|
+
*/
|
|
9198
|
+
FAILED_TO_ADD_STREAM_TO_PROXY: 'Failed to add stream to proxy',
|
|
9121
9199
|
|
|
9122
|
-
|
|
9123
|
-
|
|
9124
|
-
|
|
9125
|
-
|
|
9126
|
-
|
|
9127
|
-
|
|
9200
|
+
/**
|
|
9201
|
+
* Stopped shapshot distributor.
|
|
9202
|
+
* @event DISTRIBUTOR_STOPPED
|
|
9203
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9204
|
+
*/
|
|
9205
|
+
DISTRIBUTOR_STOPPED: 'Distributor stopped',
|
|
9128
9206
|
|
|
9129
|
-
|
|
9130
|
-
|
|
9131
|
-
|
|
9132
|
-
|
|
9133
|
-
|
|
9134
|
-
|
|
9207
|
+
/**
|
|
9208
|
+
* Publish stream is not ready, try again later.
|
|
9209
|
+
* @event PUBLISH_STREAM_IS_NOT_READY
|
|
9210
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9211
|
+
*/
|
|
9212
|
+
PUBLISH_STREAM_IS_NOT_READY: 'Publish stream is not ready',
|
|
9135
9213
|
|
|
9136
|
-
|
|
9137
|
-
|
|
9138
|
-
|
|
9139
|
-
|
|
9140
|
-
|
|
9141
|
-
|
|
9214
|
+
/**
|
|
9215
|
+
* Stream with this name is not found, check the correct of the name.
|
|
9216
|
+
* @event STREAM_NOT_FOUND
|
|
9217
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9218
|
+
*/
|
|
9219
|
+
STREAM_NOT_FOUND: 'Stream not found',
|
|
9142
9220
|
|
|
9143
|
-
|
|
9144
|
-
|
|
9145
|
-
|
|
9146
|
-
|
|
9147
|
-
|
|
9148
|
-
|
|
9221
|
+
/**
|
|
9222
|
+
* Server already has a publish stream with the same name, try using different one.
|
|
9223
|
+
* @event STREAM_NAME_ALREADY_IN_USE
|
|
9224
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9225
|
+
*/
|
|
9226
|
+
STREAM_NAME_ALREADY_IN_USE: 'Stream name is already in use',
|
|
9149
9227
|
|
|
9150
|
-
|
|
9151
|
-
|
|
9152
|
-
|
|
9153
|
-
|
|
9154
|
-
|
|
9155
|
-
|
|
9228
|
+
/**
|
|
9229
|
+
* Error indicates that stream object received by server has empty mediaSessionId field.
|
|
9230
|
+
* @event MEDIASESSION_ID_NULL
|
|
9231
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9232
|
+
*/
|
|
9233
|
+
MEDIASESSION_ID_NULL: 'MediaSessionId is null',
|
|
9156
9234
|
|
|
9157
|
-
|
|
9158
|
-
|
|
9159
|
-
|
|
9160
|
-
|
|
9161
|
-
|
|
9162
|
-
|
|
9235
|
+
/**
|
|
9236
|
+
* Published or subscribed sessions used this MediaSessionId.
|
|
9237
|
+
* @event MEDIASESSION_ID_ALREADY_IN_USE
|
|
9238
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9239
|
+
*/
|
|
9240
|
+
MEDIASESSION_ID_ALREADY_IN_USE: 'MediaSessionId is already in use',
|
|
9163
9241
|
|
|
9164
|
-
|
|
9165
|
-
|
|
9166
|
-
|
|
9167
|
-
|
|
9168
|
-
|
|
9169
|
-
|
|
9242
|
+
/**
|
|
9243
|
+
* Session is not initialized or terminated on play ordinary stream.
|
|
9244
|
+
* @event SESSION_NOT_READY
|
|
9245
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9246
|
+
*/
|
|
9247
|
+
SESSION_NOT_READY: 'Session not ready',
|
|
9170
9248
|
|
|
9171
|
-
|
|
9172
|
-
|
|
9173
|
-
|
|
9174
|
-
|
|
9175
|
-
|
|
9176
|
-
|
|
9249
|
+
/**
|
|
9250
|
+
* Actual session does not exist.
|
|
9251
|
+
* @event SESSION_DOES_NOT_EXIST
|
|
9252
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9253
|
+
*/
|
|
9254
|
+
SESSION_DOES_NOT_EXIST: 'Session does not exist',
|
|
9177
9255
|
|
|
9178
|
-
|
|
9179
|
-
|
|
9180
|
-
|
|
9181
|
-
|
|
9182
|
-
|
|
9183
|
-
|
|
9256
|
+
/**
|
|
9257
|
+
* RTSP has wrong format on play stream, check the RTSP url validity.
|
|
9258
|
+
* @event RTSP_HAS_WRONG_FORMAT
|
|
9259
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9260
|
+
*/
|
|
9261
|
+
RTSP_HAS_WRONG_FORMAT: 'Rtsp has wrong format',
|
|
9184
9262
|
|
|
9185
|
-
|
|
9186
|
-
|
|
9187
|
-
|
|
9188
|
-
|
|
9189
|
-
|
|
9190
|
-
|
|
9263
|
+
/**
|
|
9264
|
+
* Failed to play vod stream, this format is not supported.
|
|
9265
|
+
* @event FILE_HAS_WRONG_FORMAT
|
|
9266
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9267
|
+
*/
|
|
9268
|
+
FILE_HAS_WRONG_FORMAT: 'File has wrong format',
|
|
9191
9269
|
|
|
9192
|
-
|
|
9193
|
-
|
|
9194
|
-
|
|
9195
|
-
|
|
9196
|
-
|
|
9197
|
-
|
|
9270
|
+
/**
|
|
9271
|
+
* Failed to connect to rtsp stream.
|
|
9272
|
+
* @event FAILED_TO_CONNECT_TO_RTSP_STREAM
|
|
9273
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9274
|
+
*/
|
|
9275
|
+
FAILED_TO_CONNECT_TO_RTSP_STREAM: 'Failed to connect to rtsp stream',
|
|
9198
9276
|
|
|
9199
|
-
|
|
9200
|
-
|
|
9201
|
-
|
|
9202
|
-
|
|
9203
|
-
|
|
9204
|
-
|
|
9277
|
+
/**
|
|
9278
|
+
* Rtsp stream is not found, agent received "404-Not Found".
|
|
9279
|
+
* @event RTSP_STREAM_NOT_FOUND
|
|
9280
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9281
|
+
*/
|
|
9282
|
+
RTSP_STREAM_NOT_FOUND: 'Rtsp stream not found',
|
|
9205
9283
|
|
|
9206
|
-
|
|
9207
|
-
|
|
9208
|
-
|
|
9209
|
-
|
|
9210
|
-
|
|
9211
|
-
|
|
9284
|
+
/**
|
|
9285
|
+
* On shutdown RTSP agent.
|
|
9286
|
+
* @event RTSPAGENT_SHUTDOWN
|
|
9287
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9288
|
+
*/
|
|
9289
|
+
RTSPAGENT_SHUTDOWN: 'RtspAgent shutdown',
|
|
9212
9290
|
|
|
9213
|
-
|
|
9214
|
-
|
|
9215
|
-
|
|
9216
|
-
|
|
9217
|
-
|
|
9218
|
-
|
|
9291
|
+
/**
|
|
9292
|
+
* Stream failed
|
|
9293
|
+
* @event STREAM_FAILED
|
|
9294
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9295
|
+
*/
|
|
9296
|
+
STREAM_FAILED: 'Stream failed',
|
|
9219
9297
|
|
|
9220
|
-
|
|
9221
|
-
|
|
9222
|
-
|
|
9223
|
-
|
|
9224
|
-
|
|
9225
|
-
|
|
9298
|
+
/**
|
|
9299
|
+
* No common codecs on setup track, did not found corresponding trackId->mediaPort.
|
|
9300
|
+
* @event NO_COMMON_CODECS
|
|
9301
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9302
|
+
*/
|
|
9303
|
+
NO_COMMON_CODECS: 'No common codecs',
|
|
9226
9304
|
|
|
9227
|
-
|
|
9228
|
-
|
|
9229
|
-
|
|
9230
|
-
|
|
9231
|
-
|
|
9232
|
-
|
|
9305
|
+
/**
|
|
9306
|
+
* Bad referenced rtsp link, check for correct, example: rtsp://user:b@d_password@127.0.0.1/stream.
|
|
9307
|
+
* @event BAD_URI
|
|
9308
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9309
|
+
*/
|
|
9310
|
+
BAD_URI: 'Bad URI',
|
|
9233
9311
|
|
|
9234
|
-
|
|
9235
|
-
|
|
9236
|
-
|
|
9237
|
-
|
|
9238
|
-
|
|
9239
|
-
|
|
9312
|
+
/**
|
|
9313
|
+
* General VOD error, indicates that Exception occurred while reading/processing media file.
|
|
9314
|
+
* @event GOT_EXCEPTION_WHILE_STREAMING_FILE
|
|
9315
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9316
|
+
*/
|
|
9317
|
+
GOT_EXCEPTION_WHILE_STREAMING_FILE: 'Got exception while streaming file',
|
|
9240
9318
|
|
|
9241
|
-
|
|
9242
|
-
|
|
9243
|
-
|
|
9244
|
-
|
|
9245
|
-
|
|
9246
|
-
|
|
9319
|
+
/**
|
|
9320
|
+
* Requested stream shutdown.
|
|
9321
|
+
* @event REQUESTED_STREAM_SHUTDOWN
|
|
9322
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9323
|
+
*/
|
|
9324
|
+
REQUESTED_STREAM_SHUTDOWN: 'Requested stream shutdown',
|
|
9247
9325
|
|
|
9248
|
-
|
|
9249
|
-
|
|
9250
|
-
|
|
9251
|
-
|
|
9252
|
-
|
|
9253
|
-
|
|
9326
|
+
/**
|
|
9327
|
+
* Failed to create movie, file can not be read.
|
|
9328
|
+
* @event FAILED_TO_READ_FILE
|
|
9329
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9330
|
+
*/
|
|
9331
|
+
FAILED_TO_READ_FILE: 'Failed to read file',
|
|
9254
9332
|
|
|
9255
|
-
|
|
9256
|
-
|
|
9257
|
-
|
|
9258
|
-
|
|
9259
|
-
|
|
9260
|
-
|
|
9333
|
+
/**
|
|
9334
|
+
* File does not exist, check filename.
|
|
9335
|
+
* @event FILE_NOT_FOUND
|
|
9336
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9337
|
+
*/
|
|
9338
|
+
FILE_NOT_FOUND: 'File not found',
|
|
9261
9339
|
|
|
9262
|
-
|
|
9263
|
-
|
|
9264
|
-
|
|
9265
|
-
|
|
9266
|
-
|
|
9267
|
-
|
|
9340
|
+
/**
|
|
9341
|
+
* Server failed to establish websocket connection with origin server.
|
|
9342
|
+
* @event FAILED_TO_CONNECT_TO_ORIGIN_STREAM
|
|
9343
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9344
|
+
*/
|
|
9345
|
+
FAILED_TO_CONNECT_TO_ORIGIN_STREAM: 'Failed to connect to origin stream',
|
|
9268
9346
|
|
|
9269
|
-
|
|
9270
|
-
|
|
9271
|
-
|
|
9272
|
-
|
|
9273
|
-
|
|
9274
|
-
|
|
9275
|
-
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9276
|
-
*/
|
|
9347
|
+
/**
|
|
9348
|
+
* CDN stream not found.
|
|
9349
|
+
* @event CDN_STREAM_NOT_FOUND
|
|
9350
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9351
|
+
*/
|
|
9352
|
+
CDN_STREAM_NOT_FOUND: 'CDN stream not found',
|
|
9277
9353
|
|
|
9278
|
-
|
|
9279
|
-
|
|
9280
|
-
|
|
9281
|
-
|
|
9282
|
-
|
|
9283
|
-
|
|
9354
|
+
/**
|
|
9355
|
+
* Indicates that provided URL protocol in stream name is invalid.
|
|
9356
|
+
* Valid: vod://file.mp4
|
|
9357
|
+
* Invalid: dov://file.mp4
|
|
9358
|
+
* @event FAILED_TO_GET_AGENT_STORAGE
|
|
9359
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9360
|
+
*/
|
|
9361
|
+
FAILED_TO_GET_AGENT_STORAGE: 'Failed to get agent storage',
|
|
9284
9362
|
|
|
9285
|
-
|
|
9286
|
-
|
|
9287
|
-
|
|
9288
|
-
|
|
9289
|
-
|
|
9290
|
-
|
|
9363
|
+
/**
|
|
9364
|
+
* Shutdown agent servicing origin stream.
|
|
9365
|
+
* @event AGENT_SERVICING_ORIGIN_STREAM_IS_SHUTTING_DOWN
|
|
9366
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9367
|
+
*/
|
|
9368
|
+
AGENT_SERVICING_ORIGIN_STREAM_IS_SHUTTING_DOWN: 'Agent servicing origin stream is shutting down',
|
|
9291
9369
|
|
|
9292
|
-
|
|
9293
|
-
|
|
9294
|
-
|
|
9295
|
-
|
|
9296
|
-
|
|
9297
|
-
|
|
9370
|
+
/**
|
|
9371
|
+
* Terminated by keep-alive on walk through subscribers.
|
|
9372
|
+
* @event TERMINATED_BY_KEEP_ALIVE
|
|
9373
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9374
|
+
*/
|
|
9375
|
+
TERMINATED_BY_KEEP_ALIVE: 'Terminated by keep-alive',
|
|
9298
9376
|
|
|
9299
|
-
|
|
9300
|
-
|
|
9301
|
-
|
|
9302
|
-
|
|
9303
|
-
|
|
9304
|
-
|
|
9377
|
+
/**
|
|
9378
|
+
* Transcoding required, but disabled in server settings
|
|
9379
|
+
* @event TRANSCODING_REQUIRED_BUT_DISABLED
|
|
9380
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9381
|
+
*/
|
|
9382
|
+
TRANSCODING_REQUIRED_BUT_DISABLED: 'Transcoding required, but disabled',
|
|
9305
9383
|
|
|
9306
|
-
|
|
9307
|
-
|
|
9308
|
-
|
|
9309
|
-
|
|
9310
|
-
|
|
9311
|
-
|
|
9384
|
+
/**
|
|
9385
|
+
* Access restricted by access list
|
|
9386
|
+
* @event RESTRICTED_ACCESS
|
|
9387
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9388
|
+
*/
|
|
9389
|
+
RESTRICTED_ACCESS: 'Restricted access',
|
|
9312
9390
|
|
|
9313
|
-
|
|
9391
|
+
/**
|
|
9392
|
+
* No available transcoders for stream
|
|
9393
|
+
* @event NO_AVAILABLE_TRANSCODERS
|
|
9394
|
+
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
|
|
9395
|
+
*/
|
|
9396
|
+
NO_AVAILABLE_TRANSCODERS: 'No available transcoders'
|
|
9397
|
+
});
|
|
9314
9398
|
/**
|
|
9315
9399
|
* @namespace Flashphoner.constants.CALL_STATUS_INFO
|
|
9316
9400
|
* @see Call
|
|
9317
9401
|
*/
|
|
9318
9402
|
|
|
9319
|
-
var
|
|
9320
|
-
/**
|
|
9321
|
-
|
|
9322
|
-
|
|
9323
|
-
|
|
9324
|
-
|
|
9403
|
+
var CALL_STATUS_INFO = Object.freeze({
|
|
9404
|
+
/**
|
|
9405
|
+
* Normal call hangup.
|
|
9406
|
+
* @event NORMAL_CALL_CLEARING
|
|
9407
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9408
|
+
*/
|
|
9409
|
+
NORMAL_CALL_CLEARING: 'Normal call clearing',
|
|
9325
9410
|
|
|
9326
|
-
|
|
9327
|
-
|
|
9328
|
-
|
|
9329
|
-
|
|
9330
|
-
|
|
9331
|
-
|
|
9411
|
+
/**
|
|
9412
|
+
* Error occurred while creating a session
|
|
9413
|
+
* @event FAILED_BY_SESSION_CREATION
|
|
9414
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9415
|
+
*/
|
|
9416
|
+
FAILED_BY_SESSION_CREATION: 'Failed by session creation',
|
|
9332
9417
|
|
|
9333
|
-
|
|
9334
|
-
|
|
9335
|
-
|
|
9336
|
-
|
|
9337
|
-
|
|
9338
|
-
|
|
9418
|
+
/**
|
|
9419
|
+
* Failed by error during ICE establishment.
|
|
9420
|
+
* @event FAILED_BY_ICE_ERROR
|
|
9421
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9422
|
+
*/
|
|
9423
|
+
FAILED_BY_ICE_ERROR: 'Failed by ICE error',
|
|
9339
9424
|
|
|
9340
|
-
|
|
9341
|
-
|
|
9342
|
-
|
|
9343
|
-
|
|
9344
|
-
|
|
9345
|
-
|
|
9425
|
+
/**
|
|
9426
|
+
* RTP session failed by RTP activity timer.
|
|
9427
|
+
* @event FAILED_BY_RTP_ACTIVITY
|
|
9428
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9429
|
+
*/
|
|
9430
|
+
FAILED_BY_RTP_ACTIVITY: 'Failed by RTP activity',
|
|
9346
9431
|
|
|
9347
|
-
|
|
9348
|
-
|
|
9349
|
-
|
|
9350
|
-
|
|
9351
|
-
|
|
9352
|
-
|
|
9432
|
+
/**
|
|
9433
|
+
* FF writer was failed on RTMP.
|
|
9434
|
+
* @event FAILED_BY_RTMP_WRITER_ERROR
|
|
9435
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9436
|
+
*/
|
|
9437
|
+
FAILED_BY_RTMP_WRITER_ERROR: 'Failed by RTMP writer error',
|
|
9353
9438
|
|
|
9354
|
-
|
|
9355
|
-
|
|
9356
|
-
|
|
9357
|
-
|
|
9358
|
-
|
|
9359
|
-
|
|
9439
|
+
/**
|
|
9440
|
+
* DTLS wrong fingerprint.
|
|
9441
|
+
* @event FAILED_BY_DTLS_FINGERPRINT_ERROR
|
|
9442
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9443
|
+
*/
|
|
9444
|
+
FAILED_BY_DTLS_FINGERPRINT_ERROR: 'Failed by DTLS fingerprint error',
|
|
9360
9445
|
|
|
9361
|
-
|
|
9362
|
-
|
|
9363
|
-
|
|
9364
|
-
|
|
9365
|
-
|
|
9366
|
-
|
|
9446
|
+
/**
|
|
9447
|
+
* No common codecs in sdp
|
|
9448
|
+
* @event NO_COMMON_CODECS
|
|
9449
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9450
|
+
*/
|
|
9451
|
+
NO_COMMON_CODECS: 'No common codecs',
|
|
9367
9452
|
|
|
9368
|
-
|
|
9369
|
-
|
|
9370
|
-
|
|
9371
|
-
|
|
9372
|
-
|
|
9373
|
-
|
|
9453
|
+
/**
|
|
9454
|
+
* Client did not send DTLS packets or packets were lost/corrupted during transmission.
|
|
9455
|
+
* @event FAILED_BY_DTLS_ERROR
|
|
9456
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9457
|
+
*/
|
|
9458
|
+
FAILED_BY_DTLS_ERROR: 'Failed by DTLS error',
|
|
9374
9459
|
|
|
9375
|
-
|
|
9376
|
-
|
|
9377
|
-
|
|
9378
|
-
|
|
9379
|
-
|
|
9380
|
-
|
|
9460
|
+
/**
|
|
9461
|
+
* Error occurred during the call
|
|
9462
|
+
* @event FAILED_BY_ERROR
|
|
9463
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9464
|
+
*/
|
|
9465
|
+
FAILED_BY_ERROR: 'Failed by error',
|
|
9381
9466
|
|
|
9382
|
-
|
|
9467
|
+
/**
|
|
9468
|
+
* Call failed by request timeout
|
|
9469
|
+
* @event FAILED_BY_REQUEST_TIMEOUT
|
|
9470
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9471
|
+
*/
|
|
9472
|
+
FAILED_BY_REQUEST_TIMEOUT: 'Failed by request timeout',
|
|
9473
|
+
|
|
9474
|
+
/**
|
|
9475
|
+
* Transcoding required, but disabled in settings
|
|
9476
|
+
* @event TRANSCODING_REQUIRED_BUT_DISABLED
|
|
9477
|
+
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9478
|
+
*/
|
|
9479
|
+
TRANSCODING_REQUIRED_BUT_DISABLED: 'Transcoding required, but disabled'
|
|
9480
|
+
});
|
|
9383
9481
|
/**
|
|
9384
|
-
|
|
9385
|
-
|
|
9386
|
-
|
|
9387
|
-
|
|
9482
|
+
* @namespace Flashphoner.constants.ERROR_INFO
|
|
9483
|
+
*/
|
|
9484
|
+
|
|
9485
|
+
var ERROR_INFO = Object.freeze({
|
|
9486
|
+
/**
|
|
9487
|
+
* Error if none of MediaProviders available
|
|
9488
|
+
* @event NONE_OF_MEDIAPROVIDERS_AVAILABLE
|
|
9489
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9490
|
+
*/
|
|
9491
|
+
NONE_OF_MEDIAPROVIDERS_AVAILABLE: 'None of MediaProviders available',
|
|
9388
9492
|
|
|
9389
|
-
|
|
9493
|
+
/**
|
|
9494
|
+
* Error if none of preferred MediaProviders available
|
|
9495
|
+
* @event NONE_OF_PREFERRED_MEDIAPROVIDERS_AVAILABLE
|
|
9496
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9497
|
+
*/
|
|
9498
|
+
NONE_OF_PREFERRED_MEDIAPROVIDERS_AVAILABLE: 'None of preferred MediaProviders available',
|
|
9499
|
+
|
|
9500
|
+
/**
|
|
9501
|
+
* Error if API is not initialized
|
|
9502
|
+
* @event FLASHPHONER_API_NOT_INITIALIZED
|
|
9503
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9504
|
+
*/
|
|
9505
|
+
FLASHPHONER_API_NOT_INITIALIZED: 'Flashphoner API is not initialized',
|
|
9506
|
+
|
|
9507
|
+
/**
|
|
9508
|
+
* Error if options.urlServer is not specified
|
|
9509
|
+
* @event OPTIONS_URLSERVER_MUST_BE_PROVIDED
|
|
9510
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9511
|
+
*/
|
|
9512
|
+
OPTIONS_URLSERVER_MUST_BE_PROVIDED: 'options.urlServer must be provided',
|
|
9513
|
+
|
|
9514
|
+
/**
|
|
9515
|
+
* Error if session state is not valid
|
|
9516
|
+
* @event INVALID_SESSION_STATE
|
|
9517
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9518
|
+
*/
|
|
9519
|
+
INVALID_SESSION_STATE: 'Invalid session state',
|
|
9520
|
+
|
|
9521
|
+
/**
|
|
9522
|
+
* Error if no options provided
|
|
9523
|
+
* @event OPTIONS_MUST_BE_PROVIDED
|
|
9524
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9525
|
+
*/
|
|
9526
|
+
OPTIONS_MUST_BE_PROVIDED: 'options must be provided',
|
|
9527
|
+
|
|
9528
|
+
/**
|
|
9529
|
+
* Error if call status is not {@link Flashphoner.constants.CALL_STATUS.NEW}
|
|
9530
|
+
* @event INVALID_CALL_STATE
|
|
9531
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9532
|
+
*/
|
|
9533
|
+
INVALID_CALL_STATE: 'Invalid call state',
|
|
9534
|
+
|
|
9535
|
+
/**
|
|
9536
|
+
* Error if event is not specified
|
|
9537
|
+
* @event EVENT_CANT_BE_NULL
|
|
9538
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9539
|
+
*/
|
|
9540
|
+
EVENT_CANT_BE_NULL: 'Event can\'t be null',
|
|
9541
|
+
|
|
9542
|
+
/**
|
|
9543
|
+
* Error if callback is not a valid function
|
|
9544
|
+
* @event CALLBACK_NEEDS_TO_BE_A_VALID_FUNCTION
|
|
9545
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9546
|
+
*/
|
|
9547
|
+
CALLBACK_NEEDS_TO_BE_A_VALID_FUNCTION: 'Callback needs to be a valid function',
|
|
9548
|
+
|
|
9549
|
+
/**
|
|
9550
|
+
* Error if options.name is not specified
|
|
9551
|
+
* @event OPTIONS_NAME_MUST_BE_PROVIDED
|
|
9552
|
+
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9553
|
+
*/
|
|
9554
|
+
OPTIONS_NAME_MUST_BE_PROVIDED: 'options.name must be provided',
|
|
9555
|
+
|
|
9556
|
+
/**
|
|
9557
|
+
* Error if number of cams is less than 2 or camera is already used by other application
|
|
9558
|
+
* @event CAN_NOT_SWITCH_CAM
|
|
9559
|
+
* @memberOf Flashphoner.constants.ERROR_INFO
|
|
9560
|
+
*/
|
|
9561
|
+
CAN_NOT_SWITCH_CAM: 'Number of cams is less than 2 or camera is already used by other application',
|
|
9562
|
+
|
|
9563
|
+
/**
|
|
9564
|
+
* Error if number of mics is less than 2 or microphone is already used by other application
|
|
9565
|
+
* @event CAN_NOT_SWITCH_MIC
|
|
9566
|
+
* @memberOf Flashphoner.constants.ERROR_INFO
|
|
9567
|
+
*/
|
|
9568
|
+
CAN_NOT_SWITCH_MIC: 'Number of mics is less than 2 or microphone is already used by other application',
|
|
9569
|
+
|
|
9570
|
+
/**
|
|
9571
|
+
* Local browser error detected
|
|
9572
|
+
* @event LOCAL_ERROR
|
|
9573
|
+
* @memberOf Flashphoner.constants.ERROR_INFO
|
|
9574
|
+
*/
|
|
9575
|
+
LOCAL_ERROR: 'Local error'
|
|
9576
|
+
});
|
|
9390
9577
|
/**
|
|
9391
|
-
*
|
|
9392
|
-
* @
|
|
9393
|
-
* @memberof Flashphoner.constants.CALL_STATUS_INFO
|
|
9578
|
+
* Local media devices type
|
|
9579
|
+
* @namespace Flashphoner.constants.MEDIA_DEVICE_KIND
|
|
9394
9580
|
*/
|
|
9395
9581
|
|
|
9396
|
-
|
|
9397
|
-
/**
|
|
9398
|
-
*
|
|
9399
|
-
|
|
9582
|
+
var MEDIA_DEVICE_KIND = Object.freeze({
|
|
9583
|
+
/**
|
|
9584
|
+
* List local media output devices
|
|
9585
|
+
* @see Flashphoner.getMediaDevices
|
|
9586
|
+
* @memberOf Flashphoner.constants.MEDIA_DEVICE_KIND
|
|
9587
|
+
*/
|
|
9588
|
+
OUTPUT: 'output',
|
|
9589
|
+
|
|
9590
|
+
/**
|
|
9591
|
+
* List local media input devices
|
|
9592
|
+
* @see Flashphoner.getMediaDevices
|
|
9593
|
+
* @memberOf Flashphoner.constants.MEDIA_DEVICE_KIND
|
|
9594
|
+
*/
|
|
9595
|
+
INPUT: 'input',
|
|
9400
9596
|
|
|
9401
|
-
|
|
9597
|
+
/**
|
|
9598
|
+
* List local media devices
|
|
9599
|
+
* @see Flashphoner.getMediaDevices
|
|
9600
|
+
* @memberOf Flashphoner.constants.MEDIA_DEVICE_KIND
|
|
9601
|
+
*/
|
|
9602
|
+
ALL: 'all'
|
|
9603
|
+
});
|
|
9402
9604
|
/**
|
|
9403
|
-
*
|
|
9404
|
-
* @
|
|
9405
|
-
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9605
|
+
* WebRTC transport type
|
|
9606
|
+
* @namespace Flashphoner.constants.TRANSPORT_TYPE
|
|
9406
9607
|
*/
|
|
9407
9608
|
|
|
9408
|
-
|
|
9609
|
+
var TRANSPORT_TYPE = Object.freeze({
|
|
9610
|
+
/**
|
|
9611
|
+
* WebRTC RTP traffic goes over UDP (default)
|
|
9612
|
+
* @see Stream
|
|
9613
|
+
* @memberOf Flashphoner.constants.TRANSPORT_TYPE
|
|
9614
|
+
*/
|
|
9615
|
+
UDP: 'UDP',
|
|
9616
|
+
|
|
9617
|
+
/**
|
|
9618
|
+
* WebRTC RTP traffic goes over TCP
|
|
9619
|
+
* @see Stream
|
|
9620
|
+
* @memberOf Flashphoner.constants.TRANSPORT_TYPE
|
|
9621
|
+
*/
|
|
9622
|
+
TCP: 'TCP'
|
|
9623
|
+
});
|
|
9409
9624
|
/**
|
|
9410
|
-
*
|
|
9411
|
-
* @
|
|
9412
|
-
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9625
|
+
* WebRTC connection quality type
|
|
9626
|
+
* @namespace Flashphoner.constants.CONNECTION_QUALITY
|
|
9413
9627
|
*/
|
|
9414
9628
|
|
|
9415
|
-
|
|
9416
|
-
/**
|
|
9417
|
-
|
|
9418
|
-
|
|
9419
|
-
|
|
9420
|
-
|
|
9629
|
+
var CONNECTION_QUALITY = Object.freeze({
|
|
9630
|
+
/**
|
|
9631
|
+
* Channel bandwidth is perfect
|
|
9632
|
+
* @see Stream
|
|
9633
|
+
* @memberOf Flashphoner.constants.CONNECTION_QUALITY
|
|
9634
|
+
*/
|
|
9635
|
+
PERFECT: 'PERFECT',
|
|
9421
9636
|
|
|
9422
|
-
|
|
9423
|
-
|
|
9424
|
-
|
|
9425
|
-
|
|
9426
|
-
|
|
9427
|
-
|
|
9637
|
+
/**
|
|
9638
|
+
* Channel bandwidth is good
|
|
9639
|
+
* @see Stream
|
|
9640
|
+
* @memberOf Flashphoner.constants.CONNECTION_QUALITY
|
|
9641
|
+
*/
|
|
9642
|
+
GOOD: 'GOOD',
|
|
9428
9643
|
|
|
9429
|
-
|
|
9430
|
-
|
|
9431
|
-
|
|
9432
|
-
|
|
9433
|
-
|
|
9434
|
-
|
|
9644
|
+
/**
|
|
9645
|
+
* Channel bandwidth is bad
|
|
9646
|
+
* @see Stream
|
|
9647
|
+
* @memberOf Flashphoner.constants.CONNECTION_QUALITY
|
|
9648
|
+
*/
|
|
9649
|
+
BAD: 'BAD',
|
|
9435
9650
|
|
|
9436
|
-
|
|
9437
|
-
|
|
9438
|
-
|
|
9439
|
-
|
|
9440
|
-
|
|
9441
|
-
|
|
9651
|
+
/**
|
|
9652
|
+
* Channel bandwidth is unknown (initial state)
|
|
9653
|
+
* @see Stream
|
|
9654
|
+
* @memberOf Flashphoner.constants.CONNECTION_QUALITY
|
|
9655
|
+
*/
|
|
9656
|
+
UNKNOWN: 'UNKNOWN',
|
|
9442
9657
|
|
|
9443
|
-
|
|
9658
|
+
/**
|
|
9659
|
+
* Channel bandwidth is updating
|
|
9660
|
+
* @see Stream
|
|
9661
|
+
* @memberOf Flashphoner.constants.CONNECTION_QUALITY
|
|
9662
|
+
*/
|
|
9663
|
+
UPDATE: 'UPDATE'
|
|
9664
|
+
});
|
|
9444
9665
|
/**
|
|
9445
|
-
*
|
|
9446
|
-
* @
|
|
9447
|
-
* @
|
|
9666
|
+
* Websocket signaling stream event
|
|
9667
|
+
* @see Stream
|
|
9668
|
+
* @memberOf Flashphoner.constants
|
|
9448
9669
|
*/
|
|
9449
9670
|
|
|
9450
|
-
|
|
9671
|
+
var STREAM_EVENT = 'STREAM_EVENT';
|
|
9451
9672
|
/**
|
|
9452
|
-
*
|
|
9453
|
-
* @
|
|
9454
|
-
* @memberof Flashphoner.constants.ERROR_INFO
|
|
9673
|
+
* Websocket signaling stream event type
|
|
9674
|
+
* @namespace Flashphoner.constants.STREAM_EVENT_TYPE
|
|
9455
9675
|
*/
|
|
9456
9676
|
|
|
9457
|
-
|
|
9458
|
-
/**
|
|
9459
|
-
|
|
9460
|
-
|
|
9461
|
-
|
|
9462
|
-
|
|
9677
|
+
var STREAM_EVENT_TYPE = Object.freeze({
|
|
9678
|
+
/**
|
|
9679
|
+
* Stream audio is muted
|
|
9680
|
+
* @see Stream
|
|
9681
|
+
* @memberOf Flashphoner.constants.STREAM_EVENT_TYPE
|
|
9682
|
+
*/
|
|
9683
|
+
AUDIO_MUTED: 'audioMuted',
|
|
9463
9684
|
|
|
9464
|
-
|
|
9465
|
-
|
|
9466
|
-
|
|
9467
|
-
|
|
9468
|
-
|
|
9469
|
-
|
|
9685
|
+
/**
|
|
9686
|
+
* Stream audio is unmuted
|
|
9687
|
+
* @see Stream
|
|
9688
|
+
* @memberOf Flashphoner.constants.STREAM_EVENT_TYPE
|
|
9689
|
+
*/
|
|
9690
|
+
AUDIO_UNMUTED: 'audioUnmuted',
|
|
9470
9691
|
|
|
9471
|
-
|
|
9472
|
-
|
|
9473
|
-
|
|
9474
|
-
|
|
9475
|
-
|
|
9476
|
-
|
|
9692
|
+
/**
|
|
9693
|
+
* Stream video is muted
|
|
9694
|
+
* @see Stream
|
|
9695
|
+
* @memberOf Flashphoner.constants.STREAM_EVENT_TYPE
|
|
9696
|
+
*/
|
|
9697
|
+
VIDEO_MUTED: 'videoMuted',
|
|
9477
9698
|
|
|
9478
|
-
|
|
9479
|
-
|
|
9480
|
-
|
|
9481
|
-
|
|
9482
|
-
|
|
9483
|
-
|
|
9699
|
+
/**
|
|
9700
|
+
* Stream videoo is unmuted
|
|
9701
|
+
* @see Stream
|
|
9702
|
+
* @memberOf Flashphoner.constants.STREAM_EVENT_TYPE
|
|
9703
|
+
*/
|
|
9704
|
+
VIDEO_UNMUTED: 'videoUnmuted',
|
|
9484
9705
|
|
|
9485
|
-
|
|
9706
|
+
/**
|
|
9707
|
+
* Data bound to the stream are received
|
|
9708
|
+
* @see Stream
|
|
9709
|
+
* @memberOf Flashphoner.constants.STREAM_EVENT_TYPE
|
|
9710
|
+
*/
|
|
9711
|
+
DATA: 'data'
|
|
9712
|
+
});
|
|
9486
9713
|
/**
|
|
9487
|
-
*
|
|
9488
|
-
* @
|
|
9489
|
-
* @memberOf Flashphoner.constants.ERROR_INFO
|
|
9714
|
+
* WebRTC video content hint type
|
|
9715
|
+
* @namespace Flashphoner.constants.CONTENT_HINT_TYPE
|
|
9490
9716
|
*/
|
|
9491
9717
|
|
|
9492
|
-
|
|
9493
|
-
/**
|
|
9494
|
-
|
|
9495
|
-
|
|
9496
|
-
|
|
9497
|
-
|
|
9718
|
+
var CONTENT_HINT_TYPE = Object.freeze({
|
|
9719
|
+
/**
|
|
9720
|
+
* Video content is motion (webcam case): keep FPS, resolution and bitrate may change
|
|
9721
|
+
* @see Stream
|
|
9722
|
+
* @memberOf Flashphoner.constants.CONTENT_HINT_TYPE
|
|
9723
|
+
*/
|
|
9724
|
+
MOTION: 'motion',
|
|
9498
9725
|
|
|
9499
|
-
|
|
9500
|
-
|
|
9501
|
-
|
|
9502
|
-
|
|
9503
|
-
|
|
9504
|
-
|
|
9505
|
-
define(transportType, 'UDP', 'UDP');
|
|
9506
|
-
define(transportType, 'TCP', 'TCP');
|
|
9507
|
-
var connectionQuality = {};
|
|
9508
|
-
define(connectionQuality, 'PERFECT', 'PERFECT');
|
|
9509
|
-
define(connectionQuality, 'GOOD', 'GOOD');
|
|
9510
|
-
define(connectionQuality, 'BAD', 'BAD');
|
|
9511
|
-
define(connectionQuality, 'UNKNOWN', 'UNKNOWN');
|
|
9512
|
-
define(connectionQuality, 'UPDATE', 'UPDATE');
|
|
9513
|
-
var streamEventType = {};
|
|
9514
|
-
define(streamEventType, 'AUDIO_MUTED', 'audioMuted');
|
|
9515
|
-
define(streamEventType, 'AUDIO_UNMUTED', 'audioUnmuted');
|
|
9516
|
-
define(streamEventType, 'VIDEO_MUTED', 'videoMuted');
|
|
9517
|
-
define(streamEventType, 'VIDEO_UNMUTED', 'videoUnmuted');
|
|
9518
|
-
define(streamEventType, 'DATA', 'data');
|
|
9519
|
-
var contentHintType = {};
|
|
9520
|
-
define(contentHintType, 'MOTION', 'motion');
|
|
9521
|
-
define(contentHintType, 'DETAIL', 'detail');
|
|
9522
|
-
define(contentHintType, 'TEXT', 'text');
|
|
9523
|
-
var constants = {};
|
|
9524
|
-
define(constants, 'SESSION_STATUS', sessionStatus);
|
|
9525
|
-
define(constants, 'STREAM_EVENT_TYPE', streamEventType);
|
|
9526
|
-
define(constants, 'STREAM_EVENT', 'STREAM_EVENT');
|
|
9527
|
-
define(constants, 'STREAM_STATUS', streamStatus);
|
|
9528
|
-
define(constants, 'CALL_STATUS', callStatus);
|
|
9529
|
-
define(constants, 'STREAM_STATUS_INFO', streamStatusInfo);
|
|
9530
|
-
define(constants, 'CALL_STATUS_INFO', callStatusInfo);
|
|
9531
|
-
define(constants, 'ERROR_INFO', errorInfo);
|
|
9532
|
-
define(constants, 'MEDIA_DEVICE_KIND', mediaDeviceKind);
|
|
9533
|
-
define(constants, 'TRANSPORT_TYPE', transportType);
|
|
9534
|
-
define(constants, 'CONNECTION_QUALITY', connectionQuality);
|
|
9535
|
-
define(constants, 'CONTENT_HINT_TYPE', contentHintType); //define helper
|
|
9536
|
-
|
|
9537
|
-
function define(obj, name, value) {
|
|
9538
|
-
Object.defineProperty(obj, name, {
|
|
9539
|
-
value: value,
|
|
9540
|
-
enumerable: true
|
|
9541
|
-
});
|
|
9542
|
-
}
|
|
9726
|
+
/**
|
|
9727
|
+
* Video content is detail (sreen sharing case): keep resolution, bitrate may change, FPS may drop
|
|
9728
|
+
* @see Stream
|
|
9729
|
+
* @memberOf Flashphoner.constants.CONTENT_HINT_TYPE
|
|
9730
|
+
*/
|
|
9731
|
+
DETAIL: 'detail',
|
|
9543
9732
|
|
|
9544
|
-
|
|
9733
|
+
/**
|
|
9734
|
+
* Video content is text (sreen sharing case): keep resolution and bitrate, FPS may drop
|
|
9735
|
+
* @see Stream
|
|
9736
|
+
* @memberOf Flashphoner.constants.CONTENT_HINT_TYPE
|
|
9737
|
+
*/
|
|
9738
|
+
TEXT: 'text'
|
|
9739
|
+
});
|
|
9740
|
+
module.exports = {
|
|
9741
|
+
SESSION_STATUS: SESSION_STATUS,
|
|
9742
|
+
STREAM_STATUS: STREAM_STATUS,
|
|
9743
|
+
CALL_STATUS: CALL_STATUS,
|
|
9744
|
+
STREAM_STATUS_INFO: STREAM_STATUS_INFO,
|
|
9745
|
+
CALL_STATUS_INFO: CALL_STATUS_INFO,
|
|
9746
|
+
ERROR_INFO: ERROR_INFO,
|
|
9747
|
+
MEDIA_DEVICE_KIND: MEDIA_DEVICE_KIND,
|
|
9748
|
+
TRANSPORT_TYPE: TRANSPORT_TYPE,
|
|
9749
|
+
CONNECTION_QUALITY: CONNECTION_QUALITY,
|
|
9750
|
+
STREAM_EVENT: STREAM_EVENT,
|
|
9751
|
+
STREAM_EVENT_TYPE: STREAM_EVENT_TYPE,
|
|
9752
|
+
CONTENT_HINT_TYPE: CONTENT_HINT_TYPE
|
|
9753
|
+
};
|
|
9545
9754
|
|
|
9546
9755
|
},{}],40:[function(require,module,exports){
|
|
9547
9756
|
'use strict';
|
|
@@ -9555,8 +9764,9 @@ var constants = require("./constants");
|
|
|
9555
9764
|
|
|
9556
9765
|
var util = require('./util');
|
|
9557
9766
|
|
|
9558
|
-
var
|
|
9767
|
+
var LoggerObject = require('./util').logger;
|
|
9559
9768
|
|
|
9769
|
+
var coreLogger;
|
|
9560
9770
|
var loggerConf = {
|
|
9561
9771
|
push: false,
|
|
9562
9772
|
severity: "INFO"
|
|
@@ -9604,7 +9814,7 @@ var disableConnectionQualityCalculation;
|
|
|
9604
9814
|
* @param {String=} options.decoderLocation Location of video-worker2.js file
|
|
9605
9815
|
* @param {String=} options.screenSharingExtensionId Chrome screen sharing extension id
|
|
9606
9816
|
* @param {Object=} options.constraints Default local media constraints
|
|
9607
|
-
* @param {Object=} options.logger
|
|
9817
|
+
* @param {Object=} options.logger Core logger options
|
|
9608
9818
|
* @throws {Error} Error if none of MediaProviders available
|
|
9609
9819
|
* @memberof Flashphoner
|
|
9610
9820
|
*/
|
|
@@ -9613,16 +9823,10 @@ var init = function init(options) {
|
|
|
9613
9823
|
if (!initialized) {
|
|
9614
9824
|
if (!options) {
|
|
9615
9825
|
options = {};
|
|
9616
|
-
}
|
|
9826
|
+
} // init global logger
|
|
9617
9827
|
|
|
9618
|
-
loggerConf = options.logger || loggerConf;
|
|
9619
9828
|
|
|
9620
|
-
|
|
9621
|
-
loggerConf.enableLogs = true;
|
|
9622
|
-
} // init logger
|
|
9623
|
-
|
|
9624
|
-
|
|
9625
|
-
logger.init(loggerConf.severity || "INFO", loggerConf.push || false, loggerConf.customLogger, loggerConf.enableLogs);
|
|
9829
|
+
coreLogger = createLogger(options.logger);
|
|
9626
9830
|
var waitingTemasys = false;
|
|
9627
9831
|
|
|
9628
9832
|
try {
|
|
@@ -9643,7 +9847,7 @@ var init = function init(options) {
|
|
|
9643
9847
|
constraints: options.constraints || getDefaultMediaConstraints(),
|
|
9644
9848
|
extensionId: options.screenSharingExtensionId,
|
|
9645
9849
|
audioContext: audioContext,
|
|
9646
|
-
logger:
|
|
9850
|
+
logger: coreLogger,
|
|
9647
9851
|
createMicGainNode: enableGainNode
|
|
9648
9852
|
};
|
|
9649
9853
|
webRtcProvider.configure(webRtcConf);
|
|
@@ -9660,7 +9864,7 @@ var init = function init(options) {
|
|
|
9660
9864
|
var webRtcConf = {
|
|
9661
9865
|
constraints: options.constraints || getDefaultMediaConstraints(),
|
|
9662
9866
|
extensionId: options.screenSharingExtensionId,
|
|
9663
|
-
logger:
|
|
9867
|
+
logger: coreLogger
|
|
9664
9868
|
};
|
|
9665
9869
|
webRtcProvider.configure(webRtcConf); // Just reorder media provider list
|
|
9666
9870
|
|
|
@@ -9688,7 +9892,7 @@ var init = function init(options) {
|
|
|
9688
9892
|
var flashConf = {
|
|
9689
9893
|
constraints: options.constraints || getDefaultMediaConstraints(),
|
|
9690
9894
|
flashMediaProviderSwfLocation: options.flashMediaProviderSwfLocation,
|
|
9691
|
-
logger:
|
|
9895
|
+
logger: coreLogger
|
|
9692
9896
|
};
|
|
9693
9897
|
flashProvider.configure(flashConf);
|
|
9694
9898
|
}
|
|
@@ -9712,7 +9916,7 @@ var init = function init(options) {
|
|
|
9712
9916
|
receiverLocation: options.receiverLocation,
|
|
9713
9917
|
decoderLocation: options.decoderLocation,
|
|
9714
9918
|
audioContext: audioContext,
|
|
9715
|
-
logger:
|
|
9919
|
+
logger: coreLogger
|
|
9716
9920
|
};
|
|
9717
9921
|
websocketProvider.configure(wsConf);
|
|
9718
9922
|
} //check at least 1 provider available
|
|
@@ -9734,7 +9938,7 @@ var init = function init(options) {
|
|
|
9734
9938
|
MediaProvider = _MediaProvider;
|
|
9735
9939
|
}
|
|
9736
9940
|
} else {
|
|
9737
|
-
|
|
9941
|
+
corelogger.warn(LOG_PREFIX, "Preferred media provider is not available.");
|
|
9738
9942
|
}
|
|
9739
9943
|
}
|
|
9740
9944
|
|
|
@@ -9762,7 +9966,7 @@ var init = function init(options) {
|
|
|
9762
9966
|
options.mediaProvidersReadyCallback(Object.keys(MediaProvider));
|
|
9763
9967
|
}
|
|
9764
9968
|
|
|
9765
|
-
|
|
9969
|
+
coreLogger.info(LOG_PREFIX, "Initialized");
|
|
9766
9970
|
initialized = true;
|
|
9767
9971
|
}
|
|
9768
9972
|
};
|
|
@@ -9801,7 +10005,7 @@ var playFirstVideo = function playFirstVideo(display, isLocal, src) {
|
|
|
9801
10005
|
}
|
|
9802
10006
|
};
|
|
9803
10007
|
/**
|
|
9804
|
-
* Get logger
|
|
10008
|
+
* Get core logger
|
|
9805
10009
|
*
|
|
9806
10010
|
* @returns {Object} Logger
|
|
9807
10011
|
* @memberof Flashphoner
|
|
@@ -9812,7 +10016,7 @@ var getLogger = function getLogger() {
|
|
|
9812
10016
|
if (!initialized) {
|
|
9813
10017
|
console.warn("Initialize API first.");
|
|
9814
10018
|
} else {
|
|
9815
|
-
return
|
|
10019
|
+
return coreLogger;
|
|
9816
10020
|
}
|
|
9817
10021
|
};
|
|
9818
10022
|
/**
|
|
@@ -9985,6 +10189,31 @@ var getSessions = function getSessions() {
|
|
|
9985
10189
|
|
|
9986
10190
|
var getSession = function getSession(id) {
|
|
9987
10191
|
return sessions[id];
|
|
10192
|
+
}; // Get logger configuration from options
|
|
10193
|
+
|
|
10194
|
+
|
|
10195
|
+
var getLoggerConf = function getLoggerConf(loggerOptions) {
|
|
10196
|
+
var conf = loggerOptions || loggerConf;
|
|
10197
|
+
|
|
10198
|
+
if (loggerOptions !== null) {
|
|
10199
|
+
conf.enableLogs = true;
|
|
10200
|
+
}
|
|
10201
|
+
|
|
10202
|
+
return conf;
|
|
10203
|
+
}; // Create a new logger object
|
|
10204
|
+
|
|
10205
|
+
|
|
10206
|
+
var createLogger = function createLogger(loggerOptions) {
|
|
10207
|
+
var parentLogger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : coreLogger;
|
|
10208
|
+
var newLogger = parentLogger;
|
|
10209
|
+
|
|
10210
|
+
if (newLogger === undefined || loggerOptions != undefined) {
|
|
10211
|
+
var loggerConf = getLoggerConf(loggerOptions);
|
|
10212
|
+
newLogger = new LoggerObject();
|
|
10213
|
+
newLogger.init(loggerConf.severity || "INFO", loggerConf.push || false, loggerConf.customLogger, loggerConf.enableLogs);
|
|
10214
|
+
}
|
|
10215
|
+
|
|
10216
|
+
return newLogger;
|
|
9988
10217
|
};
|
|
9989
10218
|
/**
|
|
9990
10219
|
* Create new session and connect to server.
|
|
@@ -10004,6 +10233,7 @@ var getSession = function getSession(id) {
|
|
|
10004
10233
|
* @param {Integer=} options.pingInterval Server ping interval in milliseconds [0]
|
|
10005
10234
|
* @param {Integer=} options.receiveProbes A maximum subsequental pings received missing count [0]
|
|
10006
10235
|
* @param {Integer=} options.probesInterval Interval to check subsequental pings received [0]
|
|
10236
|
+
* @param {Object=} options.logger Session logger options
|
|
10007
10237
|
* @returns {Session} Created session
|
|
10008
10238
|
* @throws {Error} Error if API is not initialized
|
|
10009
10239
|
* @throws {TypeError} Error if options.urlServer is not specified
|
|
@@ -10018,8 +10248,12 @@ var createSession = function createSession(options) {
|
|
|
10018
10248
|
|
|
10019
10249
|
if (!options || !options.urlServer) {
|
|
10020
10250
|
throw new TypeError("options.urlServer must be provided");
|
|
10021
|
-
}
|
|
10251
|
+
} // Set session logger #WCS-2434
|
|
10022
10252
|
|
|
10253
|
+
|
|
10254
|
+
var sessionLogger = createLogger(options.logger); // Override logger for all low level operations
|
|
10255
|
+
|
|
10256
|
+
var logger = sessionLogger;
|
|
10023
10257
|
var id_ = uuid_v1();
|
|
10024
10258
|
var sessionStatus = SESSION_STATUS.PENDING;
|
|
10025
10259
|
var urlServer = options.urlServer;
|
|
@@ -10125,7 +10359,7 @@ var createSession = function createSession(options) {
|
|
|
10125
10359
|
if (timeout != undefined && timeout > 0) {
|
|
10126
10360
|
connectionTimeout = setTimeout(function () {
|
|
10127
10361
|
if (wsConnection.readyState == 0) {
|
|
10128
|
-
|
|
10362
|
+
logger.warn(LOG_PREFIX, "WS connection timeout");
|
|
10129
10363
|
wsConnection.close();
|
|
10130
10364
|
}
|
|
10131
10365
|
}, timeout);
|
|
@@ -10149,7 +10383,7 @@ var createSession = function createSession(options) {
|
|
|
10149
10383
|
mediaProviders: Object.keys(MediaProvider),
|
|
10150
10384
|
keepAlive: keepAlive,
|
|
10151
10385
|
authToken: authToken,
|
|
10152
|
-
clientVersion: "2.0.
|
|
10386
|
+
clientVersion: "2.0.217",
|
|
10153
10387
|
clientOSVersion: window.navigator.appVersion,
|
|
10154
10388
|
clientBrowserVersion: window.navigator.userAgent,
|
|
10155
10389
|
msePacketizationVersion: 2,
|
|
@@ -10455,6 +10689,7 @@ var createSession = function createSession(options) {
|
|
|
10455
10689
|
* @param {Array<string>=} options.sipSDP Array of custom SDP params (ex. bandwidth (b=))
|
|
10456
10690
|
* @param {Array<string>=} options.sipHeaders Array of custom SIP headers
|
|
10457
10691
|
* @param {string=} options.videoContentHint Video content hint for browser ('detail' by default to maintain resolution), {@link Flashphoner.constants.CONTENT_HINT_TYPE}
|
|
10692
|
+
* @param {Object=} options.logger Call logger options
|
|
10458
10693
|
* @param {sdpHook} sdpHook The callback that handles sdp from the server
|
|
10459
10694
|
* @returns {Call} Call
|
|
10460
10695
|
* @throws {TypeError} Error if no options provided
|
|
@@ -10467,15 +10702,18 @@ var createSession = function createSession(options) {
|
|
|
10467
10702
|
var createCall = function createCall(options) {
|
|
10468
10703
|
//check session state
|
|
10469
10704
|
if (sessionStatus !== SESSION_STATUS.REGISTERED && sessionStatus !== SESSION_STATUS.ESTABLISHED) {
|
|
10470
|
-
|
|
10471
|
-
throw new Error('Invalid session state');
|
|
10705
|
+
throw new Error('Invalid session state ' + sessionStatus);
|
|
10472
10706
|
} //check options
|
|
10473
10707
|
|
|
10474
10708
|
|
|
10475
10709
|
if (!options) {
|
|
10476
10710
|
throw new TypeError("options must be provided");
|
|
10477
|
-
}
|
|
10711
|
+
} // Set call logger #WCS-2434
|
|
10712
|
+
|
|
10478
10713
|
|
|
10714
|
+
var callLogger = createLogger(options.logger, sessionLogger); // Override logger for all low level operations
|
|
10715
|
+
|
|
10716
|
+
var logger = callLogger;
|
|
10479
10717
|
var login = appKey == 'clickToCallApp' ? '' : cConfig.sipLogin;
|
|
10480
10718
|
var caller_ = options.incoming ? options.caller : login;
|
|
10481
10719
|
var callee_ = options.callee;
|
|
@@ -10621,7 +10859,8 @@ var createSession = function createSession(options) {
|
|
|
10621
10859
|
constraints: constraints,
|
|
10622
10860
|
connectionConfig: mediaOptions,
|
|
10623
10861
|
audioOutputId: audioOutputId,
|
|
10624
|
-
videoContentHint: videoContentHint
|
|
10862
|
+
videoContentHint: videoContentHint,
|
|
10863
|
+
logger: logger
|
|
10625
10864
|
}).then(function (newConnection) {
|
|
10626
10865
|
mediaConnection = newConnection;
|
|
10627
10866
|
return mediaConnection.createOffer({
|
|
@@ -11207,7 +11446,7 @@ var createSession = function createSession(options) {
|
|
|
11207
11446
|
/**
|
|
11208
11447
|
* Get call info
|
|
11209
11448
|
* @returns {string} Info
|
|
11210
|
-
* @memberof
|
|
11449
|
+
* @memberof Call
|
|
11211
11450
|
* @inner
|
|
11212
11451
|
*/
|
|
11213
11452
|
|
|
@@ -11218,7 +11457,7 @@ var createSession = function createSession(options) {
|
|
|
11218
11457
|
/**
|
|
11219
11458
|
* Get stream error info
|
|
11220
11459
|
* @returns {string} Error info
|
|
11221
|
-
* @memberof
|
|
11460
|
+
* @memberof Call
|
|
11222
11461
|
* @inner
|
|
11223
11462
|
*/
|
|
11224
11463
|
|
|
@@ -11226,6 +11465,17 @@ var createSession = function createSession(options) {
|
|
|
11226
11465
|
var getErrorInfo = function getErrorInfo() {
|
|
11227
11466
|
return errorInfo_;
|
|
11228
11467
|
};
|
|
11468
|
+
/**
|
|
11469
|
+
* Get call logger
|
|
11470
|
+
*
|
|
11471
|
+
* @returns {Object} Logger
|
|
11472
|
+
* @memberof Call
|
|
11473
|
+
*/
|
|
11474
|
+
|
|
11475
|
+
|
|
11476
|
+
var getLogger = function getLogger() {
|
|
11477
|
+
return callLogger;
|
|
11478
|
+
};
|
|
11229
11479
|
|
|
11230
11480
|
call.call = call_;
|
|
11231
11481
|
call.answer = answer;
|
|
@@ -11257,6 +11507,7 @@ var createSession = function createSession(options) {
|
|
|
11257
11507
|
call.switchMic = switchMic;
|
|
11258
11508
|
call.switchToScreen = switchToScreen;
|
|
11259
11509
|
call.switchToCam = switchToCam;
|
|
11510
|
+
call.getLogger = getLogger;
|
|
11260
11511
|
calls[id_] = call;
|
|
11261
11512
|
return call;
|
|
11262
11513
|
};
|
|
@@ -11303,6 +11554,7 @@ var createSession = function createSession(options) {
|
|
|
11303
11554
|
* @param {string=} options.useCanvasMediaStream EXPERIMENTAL: when publish bind browser's media stream to the canvas. It can be useful for image filtering
|
|
11304
11555
|
* @param {string=} options.videoContentHint Video content hint for browser ('detail' by default to maintain resolution), {@link Flashphoner.constants.CONTENT_HINT_TYPE}
|
|
11305
11556
|
* @param {Boolean=} options.unmutePlayOnStart Unmute playback on start. May be used after user gesture only, so set 'unmutePlayOnStart: false' for autoplay
|
|
11557
|
+
* @param {Object=} options.logger Stream logger options
|
|
11306
11558
|
* @param {sdpHook} sdpHook The callback that handles sdp from the server
|
|
11307
11559
|
* @returns {Stream} Stream
|
|
11308
11560
|
* @throws {TypeError} Error if no options provided
|
|
@@ -11318,7 +11570,7 @@ var createSession = function createSession(options) {
|
|
|
11318
11570
|
var availableCallbacks = []; //check session state
|
|
11319
11571
|
|
|
11320
11572
|
if (sessionStatus !== SESSION_STATUS.ESTABLISHED) {
|
|
11321
|
-
throw new Error('Invalid session state');
|
|
11573
|
+
throw new Error('Invalid session state ' + sessionStatus);
|
|
11322
11574
|
} //check options
|
|
11323
11575
|
|
|
11324
11576
|
|
|
@@ -11328,8 +11580,12 @@ var createSession = function createSession(options) {
|
|
|
11328
11580
|
|
|
11329
11581
|
if (!options.name) {
|
|
11330
11582
|
throw new TypeError("options.name must be provided");
|
|
11331
|
-
}
|
|
11583
|
+
} // Set stream logger #WCS-2434
|
|
11584
|
+
|
|
11332
11585
|
|
|
11586
|
+
var streamLogger = createLogger(options.logger, sessionLogger); // Override logger for all low level operations
|
|
11587
|
+
|
|
11588
|
+
var logger = streamLogger;
|
|
11333
11589
|
var clientKf = new KalmanFilter();
|
|
11334
11590
|
var serverKf = new KalmanFilter();
|
|
11335
11591
|
var id_ = uuid_v1();
|
|
@@ -11573,7 +11829,7 @@ var createSession = function createSession(options) {
|
|
|
11573
11829
|
logger.debug(LOG_PREFIX, "Play stream " + name_);
|
|
11574
11830
|
|
|
11575
11831
|
if (status_ !== STREAM_STATUS.NEW) {
|
|
11576
|
-
throw new Error("Invalid stream state");
|
|
11832
|
+
throw new Error("Invalid stream state " + status_);
|
|
11577
11833
|
}
|
|
11578
11834
|
|
|
11579
11835
|
status_ = STREAM_STATUS.PENDING; //create mediaProvider connection
|
|
@@ -11592,7 +11848,8 @@ var createSession = function createSession(options) {
|
|
|
11592
11848
|
audioOutputId: audioOutputId,
|
|
11593
11849
|
remoteVideo: remoteVideo,
|
|
11594
11850
|
playoutDelay: playoutDelay,
|
|
11595
|
-
unmutePlayOnStart: unmutePlayOnStart
|
|
11851
|
+
unmutePlayOnStart: unmutePlayOnStart,
|
|
11852
|
+
logger: logger
|
|
11596
11853
|
}, streamRefreshHandlers[id_]).then(function (newConnection) {
|
|
11597
11854
|
mediaConnection = newConnection;
|
|
11598
11855
|
|
|
@@ -11656,7 +11913,7 @@ var createSession = function createSession(options) {
|
|
|
11656
11913
|
logger.debug(LOG_PREFIX, "Publish stream " + name_);
|
|
11657
11914
|
|
|
11658
11915
|
if (status_ !== STREAM_STATUS.NEW) {
|
|
11659
|
-
throw new Error("Invalid stream state");
|
|
11916
|
+
throw new Error("Invalid stream state " + status_);
|
|
11660
11917
|
}
|
|
11661
11918
|
|
|
11662
11919
|
status_ = STREAM_STATUS.PENDING;
|
|
@@ -11690,7 +11947,8 @@ var createSession = function createSession(options) {
|
|
|
11690
11947
|
connectionConfig: mediaOptions,
|
|
11691
11948
|
connectionConstraints: mediaConnectionConstraints,
|
|
11692
11949
|
customStream: constraints && constraints.customStream ? constraints.customStream : false,
|
|
11693
|
-
videoContentHint: videoContentHint
|
|
11950
|
+
videoContentHint: videoContentHint,
|
|
11951
|
+
logger: logger
|
|
11694
11952
|
}).then(function (newConnection) {
|
|
11695
11953
|
mediaConnection = newConnection;
|
|
11696
11954
|
return mediaConnection.createOffer({
|
|
@@ -12320,6 +12578,17 @@ var createSession = function createSession(options) {
|
|
|
12320
12578
|
availableCallbacks.push(promise);
|
|
12321
12579
|
});
|
|
12322
12580
|
};
|
|
12581
|
+
/**
|
|
12582
|
+
* Get stream logger
|
|
12583
|
+
*
|
|
12584
|
+
* @returns {Object} Logger
|
|
12585
|
+
* @memberof Stream
|
|
12586
|
+
*/
|
|
12587
|
+
|
|
12588
|
+
|
|
12589
|
+
var getLogger = function getLogger() {
|
|
12590
|
+
return streamLogger;
|
|
12591
|
+
};
|
|
12323
12592
|
|
|
12324
12593
|
stream.play = play;
|
|
12325
12594
|
stream.publish = publish;
|
|
@@ -12359,6 +12628,7 @@ var createSession = function createSession(options) {
|
|
|
12359
12628
|
stream.switchToScreen = switchToScreen;
|
|
12360
12629
|
stream.switchToCam = switchToCam;
|
|
12361
12630
|
stream.sendData = sendData;
|
|
12631
|
+
stream.getLogger = getLogger;
|
|
12362
12632
|
streams[id_] = stream;
|
|
12363
12633
|
return stream;
|
|
12364
12634
|
};
|
|
@@ -12567,6 +12837,17 @@ var createSession = function createSession(options) {
|
|
|
12567
12837
|
}
|
|
12568
12838
|
|
|
12569
12839
|
return sdp;
|
|
12840
|
+
};
|
|
12841
|
+
/**
|
|
12842
|
+
* Get session logger
|
|
12843
|
+
*
|
|
12844
|
+
* @returns {Object} Logger
|
|
12845
|
+
* @memberof Session
|
|
12846
|
+
*/
|
|
12847
|
+
|
|
12848
|
+
|
|
12849
|
+
var getLogger = function getLogger() {
|
|
12850
|
+
return sessionLogger;
|
|
12570
12851
|
}; //export Session
|
|
12571
12852
|
|
|
12572
12853
|
|
|
@@ -12582,7 +12863,8 @@ var createSession = function createSession(options) {
|
|
|
12582
12863
|
session.submitBugReport = submitBugReport;
|
|
12583
12864
|
session.startDebug = startDebug;
|
|
12584
12865
|
session.stopDebug = stopDebug;
|
|
12585
|
-
session.on = on;
|
|
12866
|
+
session.on = on;
|
|
12867
|
+
session.getLogger = getLogger; //save interface to global map
|
|
12586
12868
|
|
|
12587
12869
|
sessions[id_] = session;
|
|
12588
12870
|
return session;
|
|
@@ -12628,165 +12910,171 @@ function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeo
|
|
|
12628
12910
|
},{}],42:[function(require,module,exports){
|
|
12629
12911
|
'use strict';
|
|
12630
12912
|
|
|
12631
|
-
|
|
12632
|
-
|
|
12633
|
-
|
|
12634
|
-
|
|
12635
|
-
}
|
|
12913
|
+
var isEmptyObject = function isEmptyObject(obj) {
|
|
12914
|
+
for (var name in obj) {
|
|
12915
|
+
return false;
|
|
12916
|
+
}
|
|
12636
12917
|
|
|
12637
|
-
|
|
12638
|
-
|
|
12918
|
+
return true;
|
|
12919
|
+
};
|
|
12920
|
+
/**
|
|
12921
|
+
* Copy values of object own properties to array.
|
|
12922
|
+
*
|
|
12923
|
+
* @param obj
|
|
12924
|
+
* @returns {Array}
|
|
12925
|
+
*/
|
|
12639
12926
|
|
|
12640
|
-
/**
|
|
12641
|
-
* Copy values of object own properties to array.
|
|
12642
|
-
*
|
|
12643
|
-
* @param obj
|
|
12644
|
-
* @returns {Array}
|
|
12645
|
-
*/
|
|
12646
|
-
copyObjectToArray: function copyObjectToArray(obj) {
|
|
12647
|
-
var ret = [];
|
|
12648
12927
|
|
|
12649
|
-
|
|
12650
|
-
|
|
12651
|
-
|
|
12652
|
-
|
|
12928
|
+
var copyObjectToArray = function copyObjectToArray(obj) {
|
|
12929
|
+
var ret = [];
|
|
12930
|
+
|
|
12931
|
+
for (var prop in obj) {
|
|
12932
|
+
if (obj.hasOwnProperty(prop)) {
|
|
12933
|
+
ret.push(obj[prop]);
|
|
12653
12934
|
}
|
|
12935
|
+
}
|
|
12654
12936
|
|
|
12655
|
-
|
|
12656
|
-
|
|
12937
|
+
return ret;
|
|
12938
|
+
};
|
|
12939
|
+
/**
|
|
12940
|
+
* Copy src properties to dst object.
|
|
12941
|
+
* Will overwrite dst prop with src prop in case of dst prop exist.
|
|
12942
|
+
*/
|
|
12657
12943
|
|
|
12658
|
-
|
|
12659
|
-
|
|
12660
|
-
|
|
12661
|
-
|
|
12662
|
-
|
|
12663
|
-
for (var prop in src) {
|
|
12664
|
-
if (src.hasOwnProperty(prop)) {
|
|
12665
|
-
dst[prop] = src[prop];
|
|
12666
|
-
}
|
|
12944
|
+
|
|
12945
|
+
var copyObjectPropsToAnotherObject = function copyObjectPropsToAnotherObject(src, dst) {
|
|
12946
|
+
for (var prop in src) {
|
|
12947
|
+
if (src.hasOwnProperty(prop)) {
|
|
12948
|
+
dst[prop] = src[prop];
|
|
12667
12949
|
}
|
|
12668
|
-
}
|
|
12669
|
-
|
|
12670
|
-
var result = {};
|
|
12950
|
+
}
|
|
12951
|
+
};
|
|
12671
12952
|
|
|
12672
|
-
|
|
12673
|
-
|
|
12674
|
-
* Report types: googComponent, googCandidatePair, googCertificate, googLibjingleSession, googTrack, ssrc
|
|
12675
|
-
*/
|
|
12676
|
-
var gotResult = false;
|
|
12953
|
+
var processRtcStatsReport = function processRtcStatsReport(browser, report) {
|
|
12954
|
+
var result = {};
|
|
12677
12955
|
|
|
12678
|
-
|
|
12679
|
-
|
|
12680
|
-
|
|
12681
|
-
|
|
12682
|
-
|
|
12683
|
-
}
|
|
12956
|
+
if (browser == "chrome") {
|
|
12957
|
+
/**
|
|
12958
|
+
* Report types: googComponent, googCandidatePair, googCertificate, googLibjingleSession, googTrack, ssrc
|
|
12959
|
+
*/
|
|
12960
|
+
var gotResult = false;
|
|
12684
12961
|
|
|
12685
|
-
|
|
12962
|
+
if (report.type && report.type == "googCandidatePair") {
|
|
12963
|
+
//check if this is active pair
|
|
12964
|
+
if (report.googActiveConnection == "true") {
|
|
12686
12965
|
gotResult = true;
|
|
12687
12966
|
}
|
|
12967
|
+
}
|
|
12688
12968
|
|
|
12689
|
-
|
|
12690
|
-
|
|
12691
|
-
|
|
12692
|
-
|
|
12693
|
-
|
|
12969
|
+
if (report.type && report.type == "ssrc") {
|
|
12970
|
+
gotResult = true;
|
|
12971
|
+
}
|
|
12972
|
+
|
|
12973
|
+
if (gotResult) {
|
|
12974
|
+
for (var k in report) {
|
|
12975
|
+
if (report.hasOwnProperty(k)) {
|
|
12976
|
+
result[k] = report[k];
|
|
12694
12977
|
}
|
|
12695
12978
|
}
|
|
12979
|
+
}
|
|
12696
12980
|
|
|
12697
|
-
|
|
12698
|
-
|
|
12699
|
-
|
|
12700
|
-
|
|
12701
|
-
|
|
12702
|
-
|
|
12703
|
-
|
|
12981
|
+
return result;
|
|
12982
|
+
} else if (browser == "firefox") {
|
|
12983
|
+
/**
|
|
12984
|
+
* RTCStatsReport http://mxr.mozilla.org/mozilla-central/source/dom/webidl/RTCStatsReport.webidl
|
|
12985
|
+
*/
|
|
12986
|
+
if (report.type && (report.type == "outboundrtp" || report.type == "inboundrtp") && report.id.indexOf("rtcp") == -1) {
|
|
12987
|
+
result = {};
|
|
12704
12988
|
|
|
12705
|
-
|
|
12706
|
-
|
|
12707
|
-
|
|
12708
|
-
}
|
|
12989
|
+
for (var k in report) {
|
|
12990
|
+
if (report.hasOwnProperty(k)) {
|
|
12991
|
+
result[k] = report[k];
|
|
12709
12992
|
}
|
|
12710
12993
|
}
|
|
12711
|
-
|
|
12712
|
-
return result;
|
|
12713
|
-
} else {
|
|
12714
|
-
return result;
|
|
12715
12994
|
}
|
|
12716
12995
|
|
|
12717
|
-
;
|
|
12996
|
+
return result;
|
|
12997
|
+
} else {
|
|
12998
|
+
return result;
|
|
12999
|
+
}
|
|
13000
|
+
};
|
|
13001
|
+
|
|
13002
|
+
var Browser = {
|
|
13003
|
+
isIE: function isIE() {
|
|
13004
|
+
return (
|
|
13005
|
+
/*@cc_on!@*/
|
|
13006
|
+
false || !!document.documentMode
|
|
13007
|
+
);
|
|
12718
13008
|
},
|
|
12719
|
-
|
|
12720
|
-
|
|
12721
|
-
return (
|
|
12722
|
-
/*@cc_on!@*/
|
|
12723
|
-
false || !!document.documentMode
|
|
12724
|
-
);
|
|
12725
|
-
},
|
|
12726
|
-
isFirefox: function isFirefox() {
|
|
12727
|
-
return typeof InstallTrigger !== 'undefined';
|
|
12728
|
-
},
|
|
12729
|
-
isChrome: function isChrome() {
|
|
12730
|
-
return !!window.chrome && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor) && !/OPR/.test(navigator.userAgent);
|
|
12731
|
-
},
|
|
12732
|
-
isEdge: function isEdge() {
|
|
12733
|
-
return !isIE && !!window.StyleMedia;
|
|
12734
|
-
},
|
|
12735
|
-
isOpera: function isOpera() {
|
|
12736
|
-
return !!window.opr && !!opr.addons || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
|
|
12737
|
-
},
|
|
12738
|
-
isiOS: function isiOS() {
|
|
12739
|
-
return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
|
12740
|
-
},
|
|
12741
|
-
isSafari: function isSafari() {
|
|
12742
|
-
var userAgent = navigator.userAgent.toLowerCase();
|
|
12743
|
-
return /(safari|applewebkit)/i.test(userAgent) && !userAgent.includes("chrome") && !userAgent.includes("android");
|
|
12744
|
-
},
|
|
12745
|
-
isAndroid: function isAndroid() {
|
|
12746
|
-
return navigator.userAgent.toLowerCase().indexOf("android") > -1;
|
|
12747
|
-
},
|
|
12748
|
-
isSafariWebRTC: function isSafariWebRTC() {
|
|
12749
|
-
return navigator.mediaDevices && this.isSafari();
|
|
12750
|
-
},
|
|
12751
|
-
isSamsungBrowser: function isSamsungBrowser() {
|
|
12752
|
-
return /SamsungBrowser/i.test(navigator.userAgent);
|
|
12753
|
-
},
|
|
12754
|
-
isAndroidFirefox: function isAndroidFirefox() {
|
|
12755
|
-
return this.isAndroid() && /Firefox/i.test(navigator.userAgent);
|
|
12756
|
-
}
|
|
13009
|
+
isFirefox: function isFirefox() {
|
|
13010
|
+
return typeof InstallTrigger !== 'undefined';
|
|
12757
13011
|
},
|
|
12758
|
-
|
|
12759
|
-
|
|
12760
|
-
|
|
12761
|
-
|
|
12762
|
-
|
|
12763
|
-
|
|
12764
|
-
|
|
12765
|
-
|
|
12766
|
-
|
|
12767
|
-
|
|
12768
|
-
|
|
12769
|
-
|
|
13012
|
+
isChrome: function isChrome() {
|
|
13013
|
+
return !!window.chrome && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor) && !/OPR/.test(navigator.userAgent);
|
|
13014
|
+
},
|
|
13015
|
+
isEdge: function isEdge() {
|
|
13016
|
+
return !isIE && !!window.StyleMedia;
|
|
13017
|
+
},
|
|
13018
|
+
isOpera: function isOpera() {
|
|
13019
|
+
return !!window.opr && !!opr.addons || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
|
|
13020
|
+
},
|
|
13021
|
+
isiOS: function isiOS() {
|
|
13022
|
+
return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
|
13023
|
+
},
|
|
13024
|
+
isSafari: function isSafari() {
|
|
13025
|
+
var userAgent = navigator.userAgent.toLowerCase();
|
|
13026
|
+
return /(safari|applewebkit)/i.test(userAgent) && !userAgent.includes("chrome") && !userAgent.includes("android");
|
|
13027
|
+
},
|
|
13028
|
+
isAndroid: function isAndroid() {
|
|
13029
|
+
return navigator.userAgent.toLowerCase().indexOf("android") > -1;
|
|
13030
|
+
},
|
|
13031
|
+
isSafariWebRTC: function isSafariWebRTC() {
|
|
13032
|
+
return navigator.mediaDevices && this.isSafari();
|
|
13033
|
+
},
|
|
13034
|
+
isSamsungBrowser: function isSamsungBrowser() {
|
|
13035
|
+
return /SamsungBrowser/i.test(navigator.userAgent);
|
|
13036
|
+
},
|
|
13037
|
+
isAndroidFirefox: function isAndroidFirefox() {
|
|
13038
|
+
return this.isAndroid() && /Firefox/i.test(navigator.userAgent);
|
|
13039
|
+
},
|
|
13040
|
+
isChromiumEdge: function isChromiumEdge() {
|
|
13041
|
+
return /Chrome/i.test(navigator.userAgent) && /Edg/i.test(navigator.userAgent);
|
|
13042
|
+
}
|
|
13043
|
+
};
|
|
13044
|
+
var SDP = {
|
|
13045
|
+
matchPrefix: function matchPrefix(sdp, prefix) {
|
|
13046
|
+
var parts = sdp.trim().split('\n').map(function (line) {
|
|
13047
|
+
return line.trim();
|
|
13048
|
+
});
|
|
13049
|
+
return parts.filter(function (line) {
|
|
13050
|
+
return line.indexOf(prefix) === 0;
|
|
13051
|
+
});
|
|
13052
|
+
},
|
|
13053
|
+
writeFmtp: function writeFmtp(sdp, param, codec) {
|
|
13054
|
+
var sdpArray = sdp.split("\n");
|
|
13055
|
+
var i;
|
|
12770
13056
|
|
|
12771
|
-
|
|
12772
|
-
|
|
12773
|
-
|
|
12774
|
-
|
|
12775
|
-
|
|
13057
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13058
|
+
if (sdpArray[i].search(codec) != -1 && sdpArray[i].indexOf("a=rtpmap") == 0) {
|
|
13059
|
+
sdpArray[i] += "\na=fmtp:" + sdpArray[i].match(/[0-9]+/)[0] + " " + param + "\r";
|
|
13060
|
+
}
|
|
13061
|
+
} //normalize sdp after modifications
|
|
12776
13062
|
|
|
12777
13063
|
|
|
12778
|
-
|
|
13064
|
+
var result = "";
|
|
12779
13065
|
|
|
12780
|
-
|
|
12781
|
-
|
|
12782
|
-
|
|
12783
|
-
}
|
|
13066
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13067
|
+
if (sdpArray[i] != "") {
|
|
13068
|
+
result += sdpArray[i] + "\n";
|
|
12784
13069
|
}
|
|
12785
|
-
|
|
12786
|
-
return result;
|
|
12787
13070
|
}
|
|
12788
|
-
|
|
12789
|
-
|
|
13071
|
+
|
|
13072
|
+
return result;
|
|
13073
|
+
}
|
|
13074
|
+
};
|
|
13075
|
+
|
|
13076
|
+
var logger = function logger() {
|
|
13077
|
+
return {
|
|
12790
13078
|
init: function init(verbosity, enablePushLogs, customLogger, enableLogs) {
|
|
12791
13079
|
switch (verbosity.toUpperCase()) {
|
|
12792
13080
|
case "DEBUG":
|
|
@@ -12967,92 +13255,104 @@ module.exports = {
|
|
|
12967
13255
|
default:
|
|
12968
13256
|
this.verbosity = 2;
|
|
12969
13257
|
}
|
|
12970
|
-
|
|
12971
|
-
;
|
|
12972
13258
|
}
|
|
12973
|
-
}
|
|
12974
|
-
|
|
12975
|
-
if (!codecs.length) return sdp;
|
|
12976
|
-
var sdpArray = sdp.split("\n");
|
|
12977
|
-
var codecsArray = codecs.split(","); //search and delete codecs line
|
|
13259
|
+
};
|
|
13260
|
+
};
|
|
12978
13261
|
|
|
12979
|
-
|
|
12980
|
-
|
|
13262
|
+
var stripCodecs = function stripCodecs(sdp, codecs) {
|
|
13263
|
+
if (!codecs.length) return sdp;
|
|
13264
|
+
var sdpArray = sdp.split("\n");
|
|
13265
|
+
var codecsArray = codecs.split(","); //search and delete codecs line
|
|
12981
13266
|
|
|
12982
|
-
|
|
12983
|
-
|
|
13267
|
+
var pt = [];
|
|
13268
|
+
var i;
|
|
12984
13269
|
|
|
12985
|
-
|
|
12986
|
-
|
|
12987
|
-
|
|
12988
|
-
|
|
12989
|
-
|
|
12990
|
-
|
|
13270
|
+
for (var p = 0; p < codecsArray.length; p++) {
|
|
13271
|
+
console.log("Searching for codec " + codecsArray[p]);
|
|
13272
|
+
|
|
13273
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13274
|
+
if (sdpArray[i].search(new RegExp(codecsArray[p], 'i')) != -1 && sdpArray[i].indexOf("a=rtpmap") == 0) {
|
|
13275
|
+
console.log(codecsArray[p] + " detected");
|
|
13276
|
+
pt.push(sdpArray[i].match(/[0-9]+/)[0]);
|
|
13277
|
+
sdpArray[i] = "";
|
|
12991
13278
|
}
|
|
12992
13279
|
}
|
|
13280
|
+
}
|
|
12993
13281
|
|
|
12994
|
-
|
|
12995
|
-
|
|
12996
|
-
|
|
12997
|
-
|
|
12998
|
-
|
|
12999
|
-
|
|
13000
|
-
}
|
|
13282
|
+
if (pt.length) {
|
|
13283
|
+
//searching for fmtp
|
|
13284
|
+
for (p = 0; p < pt.length; p++) {
|
|
13285
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13286
|
+
if (sdpArray[i].search("a=fmtp:" + pt[p]) != -1 || sdpArray[i].search("a=rtcp-fb:" + pt[p]) != -1) {
|
|
13287
|
+
sdpArray[i] = "";
|
|
13001
13288
|
}
|
|
13002
|
-
}
|
|
13289
|
+
}
|
|
13290
|
+
} //delete entries from m= line
|
|
13003
13291
|
|
|
13004
13292
|
|
|
13005
|
-
|
|
13006
|
-
|
|
13007
|
-
|
|
13008
|
-
|
|
13293
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13294
|
+
if (sdpArray[i].search("m=audio") != -1 || sdpArray[i].search("m=video") != -1) {
|
|
13295
|
+
var mLineSplitted = sdpArray[i].split(" ");
|
|
13296
|
+
var newMLine = "";
|
|
13009
13297
|
|
|
13010
|
-
|
|
13011
|
-
|
|
13012
|
-
|
|
13298
|
+
for (var m = 0; m < mLineSplitted.length; m++) {
|
|
13299
|
+
if (pt.indexOf(mLineSplitted[m].trim()) == -1 || m <= 2) {
|
|
13300
|
+
newMLine += mLineSplitted[m];
|
|
13013
13301
|
|
|
13014
|
-
|
|
13015
|
-
|
|
13016
|
-
}
|
|
13302
|
+
if (m < mLineSplitted.length - 1) {
|
|
13303
|
+
newMLine = newMLine + " ";
|
|
13017
13304
|
}
|
|
13018
13305
|
}
|
|
13019
|
-
|
|
13020
|
-
sdpArray[i] = newMLine;
|
|
13021
13306
|
}
|
|
13307
|
+
|
|
13308
|
+
sdpArray[i] = newMLine;
|
|
13022
13309
|
}
|
|
13023
|
-
}
|
|
13310
|
+
}
|
|
13311
|
+
} //normalize sdp after modifications
|
|
13024
13312
|
|
|
13025
13313
|
|
|
13026
|
-
|
|
13314
|
+
var result = "";
|
|
13027
13315
|
|
|
13028
|
-
|
|
13029
|
-
|
|
13030
|
-
|
|
13031
|
-
}
|
|
13316
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13317
|
+
if (sdpArray[i] != "") {
|
|
13318
|
+
result += sdpArray[i] + "\n";
|
|
13032
13319
|
}
|
|
13320
|
+
}
|
|
13033
13321
|
|
|
13034
|
-
|
|
13035
|
-
|
|
13036
|
-
getCurrentCodecAndSampleRate: function getCurrentCodecAndSampleRate(sdp, mediaType) {
|
|
13037
|
-
var rows = sdp.split("\n");
|
|
13038
|
-
var codecPt;
|
|
13322
|
+
return result;
|
|
13323
|
+
};
|
|
13039
13324
|
|
|
13040
|
-
|
|
13041
|
-
|
|
13042
|
-
|
|
13043
|
-
ret.name = rows[i].split(" ")[1].split("/")[0];
|
|
13044
|
-
ret.sampleRate = rows[i].split(" ")[1].split("/")[1];
|
|
13045
|
-
return ret;
|
|
13046
|
-
} //WCS-2136. WebRTC statistics doesn't work for VP8
|
|
13325
|
+
var getCurrentCodecAndSampleRate = function getCurrentCodecAndSampleRate(sdp, mediaType) {
|
|
13326
|
+
var rows = sdp.split("\n");
|
|
13327
|
+
var codecPt;
|
|
13047
13328
|
|
|
13329
|
+
for (var i = 0; i < rows.length; i++) {
|
|
13330
|
+
if (codecPt && rows[i].indexOf("a=rtpmap:" + codecPt) != -1) {
|
|
13331
|
+
var ret = {};
|
|
13332
|
+
ret.name = rows[i].split(" ")[1].split("/")[0];
|
|
13333
|
+
ret.sampleRate = rows[i].split(" ")[1].split("/")[1];
|
|
13334
|
+
return ret;
|
|
13335
|
+
} //WCS-2136. WebRTC statistics doesn't work for VP8
|
|
13048
13336
|
|
|
13049
|
-
|
|
13050
|
-
|
|
13051
|
-
|
|
13337
|
+
|
|
13338
|
+
if (rows[i].indexOf("m=" + mediaType) != -1) {
|
|
13339
|
+
codecPt = rows[i].split(" ")[3].trim();
|
|
13052
13340
|
}
|
|
13053
13341
|
}
|
|
13054
13342
|
};
|
|
13055
13343
|
|
|
13344
|
+
module.exports = {
|
|
13345
|
+
isEmptyObject: isEmptyObject,
|
|
13346
|
+
copyObjectToArray: copyObjectToArray,
|
|
13347
|
+
copyObjectPropsToAnotherObject: copyObjectPropsToAnotherObject,
|
|
13348
|
+
processRtcStatsReport: processRtcStatsReport,
|
|
13349
|
+
Browser: Browser,
|
|
13350
|
+
SDP: SDP,
|
|
13351
|
+
logger: logger,
|
|
13352
|
+
stripCodecs: stripCodecs,
|
|
13353
|
+
getCurrentCodecAndSampleRate: getCurrentCodecAndSampleRate
|
|
13354
|
+
};
|
|
13355
|
+
|
|
13056
13356
|
},{}],43:[function(require,module,exports){
|
|
13057
13357
|
'use strict';
|
|
13058
13358
|
|
|
@@ -13086,6 +13386,11 @@ var mics = [];
|
|
|
13086
13386
|
|
|
13087
13387
|
var createConnection = function createConnection(options) {
|
|
13088
13388
|
return new Promise(function (resolve, reject) {
|
|
13389
|
+
// Set connection logger #WCS-2434
|
|
13390
|
+
if (options.logger) {
|
|
13391
|
+
logger = options.logger;
|
|
13392
|
+
}
|
|
13393
|
+
|
|
13089
13394
|
var id = options.id;
|
|
13090
13395
|
var connectionConfig = options.connectionConfig || {
|
|
13091
13396
|
"iceServers": []
|
|
@@ -13216,9 +13521,9 @@ var createConnection = function createConnection(options) {
|
|
|
13216
13521
|
function setContentHint(stream, hint) {
|
|
13217
13522
|
stream.getVideoTracks().forEach(function (track) {
|
|
13218
13523
|
if (track.contentHint === undefined) {
|
|
13219
|
-
logger.warn("contentHint unsupported");
|
|
13524
|
+
logger.warn(LOG_PREFIX, "Track contentHint unsupported");
|
|
13220
13525
|
} else {
|
|
13221
|
-
logger.info("Set video track contentHint to " + hint);
|
|
13526
|
+
logger.info(LOG_PREFIX, "Set video track contentHint to " + hint);
|
|
13222
13527
|
track.contentHint = hint;
|
|
13223
13528
|
}
|
|
13224
13529
|
});
|
|
@@ -13255,7 +13560,7 @@ var createConnection = function createConnection(options) {
|
|
|
13255
13560
|
//WCS-2771 add playback delay
|
|
13256
13561
|
connection.getReceivers().forEach(function (track) {
|
|
13257
13562
|
if (track.playoutDelayHint === undefined) {
|
|
13258
|
-
logger.warn("
|
|
13563
|
+
logger.warn(LOG_PREFIX, "Playout delay unsupported");
|
|
13259
13564
|
}
|
|
13260
13565
|
|
|
13261
13566
|
track.playoutDelayHint = playoutDelay;
|
|
@@ -13648,7 +13953,7 @@ var createConnection = function createConnection(options) {
|
|
|
13648
13953
|
localVideo.srcObject.addTrack(audioTrack);
|
|
13649
13954
|
}
|
|
13650
13955
|
|
|
13651
|
-
logger.info("Switch camera to " + cam);
|
|
13956
|
+
logger.info(LOG_PREFIX, "Switch camera to " + cam);
|
|
13652
13957
|
resolve(cam);
|
|
13653
13958
|
})["catch"](function (reason) {
|
|
13654
13959
|
logger.error(LOG_PREFIX, reason);
|
|
@@ -13706,7 +14011,7 @@ var createConnection = function createConnection(options) {
|
|
|
13706
14011
|
localVideo.srcObject.addTrack(videoTrack);
|
|
13707
14012
|
}
|
|
13708
14013
|
|
|
13709
|
-
logger.info("Switch mic to " + mic);
|
|
14014
|
+
logger.info(LOG_PREFIX, "Switch mic to " + mic);
|
|
13710
14015
|
resolve(mic);
|
|
13711
14016
|
})["catch"](function (reason) {
|
|
13712
14017
|
logger.error(LOG_PREFIX, reason);
|
|
@@ -13800,7 +14105,7 @@ var createConnection = function createConnection(options) {
|
|
|
13800
14105
|
localVideo.srcObject.addTrack(currentAudioTrack);
|
|
13801
14106
|
}
|
|
13802
14107
|
});
|
|
13803
|
-
logger.info("Switch to screen");
|
|
14108
|
+
logger.info(LOG_PREFIX, "Switch to screen");
|
|
13804
14109
|
screenShare = true;
|
|
13805
14110
|
resolve();
|
|
13806
14111
|
};
|
|
@@ -13832,7 +14137,7 @@ var createConnection = function createConnection(options) {
|
|
|
13832
14137
|
});
|
|
13833
14138
|
}
|
|
13834
14139
|
|
|
13835
|
-
logger.info("Switch to cam");
|
|
14140
|
+
logger.info(LOG_PREFIX, "Switch to cam");
|
|
13836
14141
|
screenShare = false;
|
|
13837
14142
|
};
|
|
13838
14143
|
|
|
@@ -14704,7 +15009,12 @@ var audioContext;
|
|
|
14704
15009
|
var createConnection = function createConnection(options, handlers) {
|
|
14705
15010
|
return new Promise(function (resolve, reject) {
|
|
14706
15011
|
var id = options.id;
|
|
14707
|
-
var display = options.display;
|
|
15012
|
+
var display = options.display; // Set connection logger #WCS-2434
|
|
15013
|
+
|
|
15014
|
+
if (options.logger) {
|
|
15015
|
+
logger = options.logger;
|
|
15016
|
+
}
|
|
15017
|
+
|
|
14708
15018
|
var canvas = document.createElement("canvas");
|
|
14709
15019
|
display.appendChild(canvas);
|
|
14710
15020
|
canvas.id = id;
|