voice-react-native-sdk 1.6.2-fork.4
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/LICENSE +206 -0
- package/README.md +179 -0
- package/android/build.gradle +113 -0
- package/android/gradle.properties +29 -0
- package/android/src/main/AndroidManifest.xml +30 -0
- package/android/src/main/java/com/twiliovoicereactnative/AudioSwitchManager.java +141 -0
- package/android/src/main/java/com/twiliovoicereactnative/CallListenerProxy.java +186 -0
- package/android/src/main/java/com/twiliovoicereactnative/CallMessageListenerProxy.java +103 -0
- package/android/src/main/java/com/twiliovoicereactnative/CallRecordDatabase.java +183 -0
- package/android/src/main/java/com/twiliovoicereactnative/CommonConstants.java +195 -0
- package/android/src/main/java/com/twiliovoicereactnative/ConfigurationProperties.java +41 -0
- package/android/src/main/java/com/twiliovoicereactnative/Constants.java +23 -0
- package/android/src/main/java/com/twiliovoicereactnative/ExpoActivityLifecycleListener.java +27 -0
- package/android/src/main/java/com/twiliovoicereactnative/ExpoApplicationLifecycleListener.java +14 -0
- package/android/src/main/java/com/twiliovoicereactnative/ExpoModule.kt +36 -0
- package/android/src/main/java/com/twiliovoicereactnative/ExpoPackage.java +20 -0
- package/android/src/main/java/com/twiliovoicereactnative/JSEventEmitter.java +98 -0
- package/android/src/main/java/com/twiliovoicereactnative/MediaPlayerManager.java +58 -0
- package/android/src/main/java/com/twiliovoicereactnative/NotificationUtility.java +363 -0
- package/android/src/main/java/com/twiliovoicereactnative/ReactNativeArgumentsSerializer.java +276 -0
- package/android/src/main/java/com/twiliovoicereactnative/SDKLog.java +74 -0
- package/android/src/main/java/com/twiliovoicereactnative/StatsListenerProxy.java +178 -0
- package/android/src/main/java/com/twiliovoicereactnative/TwilioVoiceReactNativeModule.java +778 -0
- package/android/src/main/java/com/twiliovoicereactnative/TwilioVoiceReactNativePackage.java +28 -0
- package/android/src/main/java/com/twiliovoicereactnative/VoiceActivityProxy.java +101 -0
- package/android/src/main/java/com/twiliovoicereactnative/VoiceApplicationProxy.java +133 -0
- package/android/src/main/java/com/twiliovoicereactnative/VoiceFirebaseMessagingService.java +88 -0
- package/android/src/main/java/com/twiliovoicereactnative/VoiceService.java +403 -0
- package/android/src/main/res/drawable/answered_call_small_icon.png +0 -0
- package/android/src/main/res/drawable/ic_launcher_round.png +0 -0
- package/android/src/main/res/drawable/ic_launcher_sdk.png +0 -0
- package/android/src/main/res/drawable/incoming_call_small_icon.png +0 -0
- package/android/src/main/res/drawable/outgoing_call_small_icon.png +0 -0
- package/android/src/main/res/raw/disconnect.wav +0 -0
- package/android/src/main/res/raw/incoming.wav +0 -0
- package/android/src/main/res/raw/outgoing.wav +0 -0
- package/android/src/main/res/raw/ringtone.wav +0 -0
- package/android/src/main/res/raw/silent.wav +0 -0
- package/android/src/main/res/values/colors.xml +11 -0
- package/android/src/main/res/values/config.xml +5 -0
- package/android/src/main/res/values/dimens.xml +7 -0
- package/android/src/main/res/values/strings.xml +25 -0
- package/android/src/main/res/values/styles.xml +10 -0
- package/android/src/main/res/values-night/colors.xml +11 -0
- package/expo-config-plugin/android.js +191 -0
- package/expo-config-plugin/ios.js +22 -0
- package/expo-module.config.json +6 -0
- package/ios/TwilioVoicePushRegistry.h +19 -0
- package/ios/TwilioVoicePushRegistry.m +72 -0
- package/ios/TwilioVoiceReactNative+CallInvite.m +56 -0
- package/ios/TwilioVoiceReactNative+CallKit.m +533 -0
- package/ios/TwilioVoiceReactNative+CallMessage.m +81 -0
- package/ios/TwilioVoiceReactNative.h +74 -0
- package/ios/TwilioVoiceReactNative.m +1046 -0
- package/ios/TwilioVoiceReactNative.xcodeproj/project.pbxproj +328 -0
- package/ios/TwilioVoiceReactNativeConstants.h +200 -0
- package/ios/Utilities/TwilioVoiceStatsReport.h +175 -0
- package/lib/commonjs/AudioDevice.js +101 -0
- package/lib/commonjs/AudioDevice.js.map +1 -0
- package/lib/commonjs/Call.js +765 -0
- package/lib/commonjs/Call.js.map +1 -0
- package/lib/commonjs/CallInvite.js +452 -0
- package/lib/commonjs/CallInvite.js.map +1 -0
- package/lib/commonjs/CallMessage/CallMessage.js +54 -0
- package/lib/commonjs/CallMessage/CallMessage.js.map +1 -0
- package/lib/commonjs/CallMessage/IncomingCallMessage.js +120 -0
- package/lib/commonjs/CallMessage/IncomingCallMessage.js.map +1 -0
- package/lib/commonjs/CallMessage/OutgoingCallMessage.js +148 -0
- package/lib/commonjs/CallMessage/OutgoingCallMessage.js.map +1 -0
- package/lib/commonjs/ExpoModule.js +69 -0
- package/lib/commonjs/ExpoModule.js.map +1 -0
- package/lib/commonjs/Voice.js +611 -0
- package/lib/commonjs/Voice.js.map +1 -0
- package/lib/commonjs/common.js +26 -0
- package/lib/commonjs/common.js.map +1 -0
- package/lib/commonjs/constants.js +158 -0
- package/lib/commonjs/constants.js.map +1 -0
- package/lib/commonjs/error/InvalidArgumentError.js +32 -0
- package/lib/commonjs/error/InvalidArgumentError.js.map +1 -0
- package/lib/commonjs/error/InvalidStateError.js +33 -0
- package/lib/commonjs/error/InvalidStateError.js.map +1 -0
- package/lib/commonjs/error/TwilioError.js +38 -0
- package/lib/commonjs/error/TwilioError.js.map +1 -0
- package/lib/commonjs/error/UnsupportedPlatformError.js +33 -0
- package/lib/commonjs/error/UnsupportedPlatformError.js.map +1 -0
- package/lib/commonjs/error/generated.js +2343 -0
- package/lib/commonjs/error/generated.js.map +1 -0
- package/lib/commonjs/error/index.js +112 -0
- package/lib/commonjs/error/index.js.map +1 -0
- package/lib/commonjs/error/utility.js +37 -0
- package/lib/commonjs/error/utility.js.map +1 -0
- package/lib/commonjs/index.js +95 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/type/AudioDevice.js +6 -0
- package/lib/commonjs/type/AudioDevice.js.map +1 -0
- package/lib/commonjs/type/Call.js +6 -0
- package/lib/commonjs/type/Call.js.map +1 -0
- package/lib/commonjs/type/CallInvite.js +6 -0
- package/lib/commonjs/type/CallInvite.js.map +1 -0
- package/lib/commonjs/type/CallKit.js +30 -0
- package/lib/commonjs/type/CallKit.js.map +1 -0
- package/lib/commonjs/type/CallMessage.js +6 -0
- package/lib/commonjs/type/CallMessage.js.map +1 -0
- package/lib/commonjs/type/Error.js +6 -0
- package/lib/commonjs/type/Error.js.map +1 -0
- package/lib/commonjs/type/NativeModule.js +6 -0
- package/lib/commonjs/type/NativeModule.js.map +1 -0
- package/lib/commonjs/type/RTCStats.js +29 -0
- package/lib/commonjs/type/RTCStats.js.map +1 -0
- package/lib/commonjs/type/Voice.js +6 -0
- package/lib/commonjs/type/Voice.js.map +1 -0
- package/lib/commonjs/type/common.js +2 -0
- package/lib/commonjs/type/common.js.map +1 -0
- package/lib/module/AudioDevice.js +97 -0
- package/lib/module/AudioDevice.js.map +1 -0
- package/lib/module/Call.js +766 -0
- package/lib/module/Call.js.map +1 -0
- package/lib/module/CallInvite.js +450 -0
- package/lib/module/CallInvite.js.map +1 -0
- package/lib/module/CallMessage/CallMessage.js +51 -0
- package/lib/module/CallMessage/CallMessage.js.map +1 -0
- package/lib/module/CallMessage/IncomingCallMessage.js +116 -0
- package/lib/module/CallMessage/IncomingCallMessage.js.map +1 -0
- package/lib/module/CallMessage/OutgoingCallMessage.js +154 -0
- package/lib/module/CallMessage/OutgoingCallMessage.js.map +1 -0
- package/lib/module/ExpoModule.js +58 -0
- package/lib/module/ExpoModule.js.map +1 -0
- package/lib/module/Voice.js +598 -0
- package/lib/module/Voice.js.map +1 -0
- package/lib/module/common.js +11 -0
- package/lib/module/common.js.map +1 -0
- package/lib/module/constants.js +151 -0
- package/lib/module/constants.js.map +1 -0
- package/lib/module/error/InvalidArgumentError.js +23 -0
- package/lib/module/error/InvalidArgumentError.js.map +1 -0
- package/lib/module/error/InvalidStateError.js +24 -0
- package/lib/module/error/InvalidStateError.js.map +1 -0
- package/lib/module/error/TwilioError.js +29 -0
- package/lib/module/error/TwilioError.js.map +1 -0
- package/lib/module/error/UnsupportedPlatformError.js +24 -0
- package/lib/module/error/UnsupportedPlatformError.js.map +1 -0
- package/lib/module/error/generated.js +2315 -0
- package/lib/module/error/generated.js.map +1 -0
- package/lib/module/error/index.js +6 -0
- package/lib/module/error/index.js.map +1 -0
- package/lib/module/error/utility.js +27 -0
- package/lib/module/error/utility.js.map +1 -0
- package/lib/module/index.js +23 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/type/AudioDevice.js +2 -0
- package/lib/module/type/AudioDevice.js.map +1 -0
- package/lib/module/type/Call.js +2 -0
- package/lib/module/type/Call.js.map +1 -0
- package/lib/module/type/CallInvite.js +2 -0
- package/lib/module/type/CallInvite.js.map +1 -0
- package/lib/module/type/CallKit.js +22 -0
- package/lib/module/type/CallKit.js.map +1 -0
- package/lib/module/type/CallMessage.js +2 -0
- package/lib/module/type/CallMessage.js.map +1 -0
- package/lib/module/type/Error.js +2 -0
- package/lib/module/type/Error.js.map +1 -0
- package/lib/module/type/NativeModule.js +2 -0
- package/lib/module/type/NativeModule.js.map +1 -0
- package/lib/module/type/RTCStats.js +21 -0
- package/lib/module/type/RTCStats.js.map +1 -0
- package/lib/module/type/Voice.js +2 -0
- package/lib/module/type/Voice.js.map +1 -0
- package/lib/module/type/common.js +2 -0
- package/lib/module/type/common.js.map +1 -0
- package/lib/typescript/AudioDevice.d.ts +74 -0
- package/lib/typescript/Call.d.ts +874 -0
- package/lib/typescript/CallInvite.d.ts +484 -0
- package/lib/typescript/CallMessage/CallMessage.d.ts +53 -0
- package/lib/typescript/CallMessage/IncomingCallMessage.d.ts +75 -0
- package/lib/typescript/CallMessage/OutgoingCallMessage.d.ts +198 -0
- package/lib/typescript/ExpoModule.d.ts +13 -0
- package/lib/typescript/Voice.d.ts +620 -0
- package/lib/typescript/common.d.ts +11 -0
- package/lib/typescript/constants.d.ts +148 -0
- package/lib/typescript/error/InvalidArgumentError.d.ts +11 -0
- package/lib/typescript/error/InvalidStateError.d.ts +12 -0
- package/lib/typescript/error/TwilioError.d.ts +14 -0
- package/lib/typescript/error/UnsupportedPlatformError.d.ts +12 -0
- package/lib/typescript/error/generated.d.ts +1558 -0
- package/lib/typescript/error/index.d.ts +5 -0
- package/lib/typescript/error/utility.d.ts +12 -0
- package/lib/typescript/index.d.ts +18 -0
- package/lib/typescript/type/AudioDevice.d.ts +15 -0
- package/lib/typescript/type/Call.d.ts +59 -0
- package/lib/typescript/type/CallInvite.d.ts +40 -0
- package/lib/typescript/type/CallKit.d.ts +60 -0
- package/lib/typescript/type/CallMessage.d.ts +20 -0
- package/lib/typescript/type/Error.d.ts +9 -0
- package/lib/typescript/type/NativeModule.d.ts +59 -0
- package/lib/typescript/type/RTCStats.d.ts +91 -0
- package/lib/typescript/type/Voice.d.ts +16 -0
- package/lib/typescript/type/common.d.ts +15 -0
- package/package.json +167 -0
- package/src/AudioDevice.tsx +88 -0
- package/src/Call.tsx +1343 -0
- package/src/CallInvite.tsx +757 -0
- package/src/CallMessage/CallMessage.ts +83 -0
- package/src/CallMessage/IncomingCallMessage.ts +104 -0
- package/src/CallMessage/OutgoingCallMessage.ts +308 -0
- package/src/ExpoModule.ts +59 -0
- package/src/Voice.tsx +1010 -0
- package/src/common.ts +16 -0
- package/src/constants.ts +193 -0
- package/src/error/InvalidArgumentError.ts +19 -0
- package/src/error/InvalidStateError.ts +19 -0
- package/src/error/TwilioError.ts +22 -0
- package/src/error/UnsupportedPlatformError.ts +19 -0
- package/src/error/generated.ts +2277 -0
- package/src/error/index.ts +18 -0
- package/src/error/utility.ts +36 -0
- package/src/index.tsx +24 -0
- package/src/type/AudioDevice.ts +18 -0
- package/src/type/Call.ts +102 -0
- package/src/type/CallInvite.ts +59 -0
- package/src/type/CallKit.ts +61 -0
- package/src/type/CallMessage.ts +31 -0
- package/src/type/Error.ts +11 -0
- package/src/type/NativeModule.ts +93 -0
- package/src/type/RTCStats.ts +99 -0
- package/src/type/Voice.ts +31 -0
- package/src/type/common.ts +16 -0
- package/twilio-voice-react-native.podspec +22 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
package com.twiliovoicereactnative;
|
|
2
|
+
|
|
3
|
+
import android.util.Log;
|
|
4
|
+
|
|
5
|
+
import java.io.IOException;
|
|
6
|
+
import java.io.OutputStream;
|
|
7
|
+
import java.io.PrintStream;
|
|
8
|
+
import java.nio.charset.Charset;
|
|
9
|
+
import java.util.Vector;
|
|
10
|
+
|
|
11
|
+
class SDKLog extends OutputStream {
|
|
12
|
+
private final String logTag;
|
|
13
|
+
private final Vector<Character> logInfoBuffer = new Vector<>();
|
|
14
|
+
public SDKLog(Class<?> clazz) {
|
|
15
|
+
logTag = clazz.getSimpleName();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public void debug(final String message) {
|
|
19
|
+
if (BuildConfig.DEBUG) {
|
|
20
|
+
Log.d(logTag, message);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public void log(final String message) {
|
|
25
|
+
Log.i(logTag, message);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public void warning(final String message) {
|
|
29
|
+
try {
|
|
30
|
+
write(message.getBytes());
|
|
31
|
+
flush();
|
|
32
|
+
} catch (Exception ignore) {}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public void error(final String message) {
|
|
36
|
+
Log.e(logTag, message);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public void warning(final Exception e, final String message) {
|
|
40
|
+
PrintStream printStream = new PrintStream(this);
|
|
41
|
+
printStream.println(message);
|
|
42
|
+
e.printStackTrace(printStream);
|
|
43
|
+
printStream.flush();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@Override
|
|
47
|
+
public synchronized void write(int i) throws IOException {
|
|
48
|
+
logInfoBuffer.add((char)i);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@Override
|
|
52
|
+
public synchronized void write(byte[] b) throws IOException {
|
|
53
|
+
for (char c: (new String(b, Charset.defaultCharset()).toCharArray())) {
|
|
54
|
+
logInfoBuffer.add(c);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@Override
|
|
59
|
+
public void write(byte[] b, int off, int len) throws IOException {
|
|
60
|
+
for (char c: (new String(b, off, len, Charset.defaultCharset()).toCharArray())) {
|
|
61
|
+
logInfoBuffer.add(c);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@Override
|
|
66
|
+
public synchronized void flush() throws IOException {
|
|
67
|
+
char [] output = new char[logInfoBuffer.size()];
|
|
68
|
+
for (int i = 0; i < logInfoBuffer.size(); ++i) {
|
|
69
|
+
output[i] = logInfoBuffer.get(i);
|
|
70
|
+
}
|
|
71
|
+
logInfoBuffer.clear();
|
|
72
|
+
Log.w(logTag, String.valueOf(output));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
package com.twiliovoicereactnative;
|
|
2
|
+
|
|
3
|
+
import java.util.List;
|
|
4
|
+
import java.util.Vector;
|
|
5
|
+
|
|
6
|
+
import android.content.Context;
|
|
7
|
+
import android.util.Pair;
|
|
8
|
+
|
|
9
|
+
import androidx.annotation.NonNull;
|
|
10
|
+
|
|
11
|
+
import org.json.JSONException;
|
|
12
|
+
|
|
13
|
+
import com.facebook.react.bridge.Arguments;
|
|
14
|
+
import com.facebook.react.bridge.Promise;
|
|
15
|
+
import com.facebook.react.bridge.WritableArray;
|
|
16
|
+
import com.facebook.react.bridge.WritableMap;
|
|
17
|
+
import com.twilio.voice.IceCandidatePairState;
|
|
18
|
+
import com.twilio.voice.IceCandidatePairStats;
|
|
19
|
+
import com.twilio.voice.IceCandidateStats;
|
|
20
|
+
import com.twilio.voice.LocalAudioTrackStats;
|
|
21
|
+
import com.twilio.voice.RemoteAudioTrackStats;
|
|
22
|
+
import com.twilio.voice.StatsListener;
|
|
23
|
+
import com.twilio.voice.StatsReport;
|
|
24
|
+
|
|
25
|
+
import static com.twiliovoicereactnative.JSEventEmitter.constructJSArray;
|
|
26
|
+
import static com.twiliovoicereactnative.JSEventEmitter.constructJSMap;
|
|
27
|
+
|
|
28
|
+
class StatsListenerProxy implements StatsListener {
|
|
29
|
+
private final Promise promise;
|
|
30
|
+
|
|
31
|
+
public StatsListenerProxy(String uuid, Context context, Promise promise) {
|
|
32
|
+
this.promise = promise;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@Override
|
|
36
|
+
public void onStats(@NonNull List<StatsReport> statsReports) {
|
|
37
|
+
try {
|
|
38
|
+
WritableArray statsReportsArray = Arguments.createArray();
|
|
39
|
+
for(StatsReport statsReport: statsReports) {
|
|
40
|
+
statsReportsArray.pushMap(
|
|
41
|
+
constructJSMap(
|
|
42
|
+
new Pair<>(CommonConstants.PeerConnectionId, statsReport.getPeerConnectionId()),
|
|
43
|
+
new Pair<>(
|
|
44
|
+
CommonConstants.LocalAudioTrackStats,
|
|
45
|
+
constructJSArray(jsonWithLocalAudioTrackStats(statsReport.getLocalAudioTrackStats()))),
|
|
46
|
+
new Pair<>(
|
|
47
|
+
CommonConstants.RemoteAudioTrackStats,
|
|
48
|
+
constructJSArray(jsonWithRemoteAudioTrackStats(statsReport.getRemoteAudioTrackStats()))),
|
|
49
|
+
new Pair<>(
|
|
50
|
+
CommonConstants.IceCandidatePairStats,
|
|
51
|
+
constructJSArray(jsonWithIceCandidatePairStats(statsReport.getIceCandidatePairStats()))),
|
|
52
|
+
new Pair<>(
|
|
53
|
+
CommonConstants.IceCandidateStats,
|
|
54
|
+
constructJSArray(jsonWithIceCandidateStats(statsReport.getIceCandidateStats())))));
|
|
55
|
+
}
|
|
56
|
+
promise.resolve(statsReportsArray);
|
|
57
|
+
} catch (JSONException e) {
|
|
58
|
+
promise.reject(StatsListenerProxy.class.getSimpleName(), e.getMessage());
|
|
59
|
+
e.printStackTrace();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
private Object[] jsonWithLocalAudioTrackStats(List<LocalAudioTrackStats> audioTrackStatsList) throws JSONException {
|
|
64
|
+
Vector<WritableMap> mapList = new Vector<>();
|
|
65
|
+
for (LocalAudioTrackStats localAudioTrackStats: audioTrackStatsList) {
|
|
66
|
+
mapList.add(
|
|
67
|
+
constructJSMap(
|
|
68
|
+
// Base track stats
|
|
69
|
+
new Pair<>(CommonConstants.Codec, localAudioTrackStats.codec),
|
|
70
|
+
new Pair<>(CommonConstants.PacketsLost, localAudioTrackStats.packetsLost),
|
|
71
|
+
new Pair<>(CommonConstants.Ssrc, localAudioTrackStats.ssrc),
|
|
72
|
+
new Pair<>(CommonConstants.Timestamp, localAudioTrackStats.timestamp),
|
|
73
|
+
new Pair<>(CommonConstants.TrackId, localAudioTrackStats.trackId),
|
|
74
|
+
// Local track stats
|
|
75
|
+
new Pair<>(CommonConstants.BytesSent, localAudioTrackStats.bytesSent),
|
|
76
|
+
new Pair<>(CommonConstants.PacketsSent, localAudioTrackStats.packetsSent),
|
|
77
|
+
new Pair<>(CommonConstants.RoundTripTime, localAudioTrackStats.roundTripTime),
|
|
78
|
+
// Local audio track stats
|
|
79
|
+
new Pair<>(CommonConstants.AudioLevel, localAudioTrackStats.audioLevel),
|
|
80
|
+
new Pair<>(CommonConstants.Jitter, localAudioTrackStats.jitter)));
|
|
81
|
+
}
|
|
82
|
+
return mapList.toArray();
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
private Object[] jsonWithRemoteAudioTrackStats(List<RemoteAudioTrackStats> audioTrackStatsList) throws JSONException {
|
|
86
|
+
Vector<WritableMap> mapList = new Vector<>();
|
|
87
|
+
for (RemoteAudioTrackStats remoteAudioTrackStats: audioTrackStatsList) {
|
|
88
|
+
mapList.add(
|
|
89
|
+
constructJSMap(
|
|
90
|
+
// Base track stats
|
|
91
|
+
new Pair<>(CommonConstants.Codec, remoteAudioTrackStats.codec),
|
|
92
|
+
new Pair<>(CommonConstants.PacketsLost, remoteAudioTrackStats.packetsLost),
|
|
93
|
+
new Pair<>(CommonConstants.Ssrc, remoteAudioTrackStats.ssrc),
|
|
94
|
+
new Pair<>(CommonConstants.Timestamp, remoteAudioTrackStats.timestamp),
|
|
95
|
+
new Pair<>(CommonConstants.TrackId, remoteAudioTrackStats.trackId),
|
|
96
|
+
// Remote track stats
|
|
97
|
+
new Pair<>(CommonConstants.BytesReceived, remoteAudioTrackStats.bytesReceived),
|
|
98
|
+
new Pair<>(CommonConstants.PacketsReceived, remoteAudioTrackStats.packetsReceived),
|
|
99
|
+
// Remote audio track stats
|
|
100
|
+
new Pair<>(CommonConstants.AudioLevel, remoteAudioTrackStats.audioLevel),
|
|
101
|
+
new Pair<>(CommonConstants.Jitter, remoteAudioTrackStats.jitter),
|
|
102
|
+
new Pair<>(CommonConstants.Mos, remoteAudioTrackStats.mos)));
|
|
103
|
+
}
|
|
104
|
+
return mapList.toArray();
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
private Object[] jsonWithIceCandidatePairStats(List<IceCandidatePairStats> iceCandidatePairStatsList) throws JSONException {
|
|
108
|
+
Vector<WritableMap> mapList = new Vector<>();
|
|
109
|
+
for (IceCandidatePairStats iceCandidatePairStats: iceCandidatePairStatsList) {
|
|
110
|
+
mapList.add(
|
|
111
|
+
constructJSMap(
|
|
112
|
+
new Pair<>(CommonConstants.ActiveCandidatePair, iceCandidatePairStats.activeCandidatePair),
|
|
113
|
+
new Pair<>(CommonConstants.AvailableIncomingBitrate, iceCandidatePairStats.availableIncomingBitrate),
|
|
114
|
+
new Pair<>(CommonConstants.AvailableOutgoingBitrate, iceCandidatePairStats.availableOutgoingBitrate),
|
|
115
|
+
new Pair<>(CommonConstants.BytesReceived, iceCandidatePairStats.bytesReceived),
|
|
116
|
+
new Pair<>(CommonConstants.BytesSent, iceCandidatePairStats.bytesSent),
|
|
117
|
+
new Pair<>(CommonConstants.ConsentRequestsReceived, iceCandidatePairStats.consentRequestsReceived),
|
|
118
|
+
new Pair<>(CommonConstants.ConsentRequestsSent, iceCandidatePairStats.consentRequestsSent),
|
|
119
|
+
new Pair<>(CommonConstants.ConsentResponsesReceived, iceCandidatePairStats.consentResponsesReceived),
|
|
120
|
+
new Pair<>(CommonConstants.ConsentResponsesSent, iceCandidatePairStats.consentResponsesSent),
|
|
121
|
+
new Pair<>(CommonConstants.CurrentRoundTripTime, iceCandidatePairStats.currentRoundTripTime),
|
|
122
|
+
new Pair<>(CommonConstants.LocalCandidateId, iceCandidatePairStats.localCandidateId),
|
|
123
|
+
new Pair<>(CommonConstants.LocalCandidateIp, iceCandidatePairStats.localCandidateIp),
|
|
124
|
+
new Pair<>(CommonConstants.Nominated, iceCandidatePairStats.nominated),
|
|
125
|
+
new Pair<>(CommonConstants.Priority, iceCandidatePairStats.priority),
|
|
126
|
+
new Pair<>(CommonConstants.Readable, iceCandidatePairStats.readable),
|
|
127
|
+
new Pair<>(CommonConstants.RelayProtocol, iceCandidatePairStats.relayProtocol),
|
|
128
|
+
new Pair<>(CommonConstants.RemoteCandidateId, iceCandidatePairStats.remoteCandidateId),
|
|
129
|
+
new Pair<>(CommonConstants.RemoteCandidateIp, iceCandidatePairStats.remoteCandidateIp),
|
|
130
|
+
new Pair<>(CommonConstants.RequestsReceived, iceCandidatePairStats.requestsReceived),
|
|
131
|
+
new Pair<>(CommonConstants.RequestsSent, iceCandidatePairStats.requestsSent),
|
|
132
|
+
new Pair<>(CommonConstants.ResponsesReceived, iceCandidatePairStats.responsesReceived),
|
|
133
|
+
new Pair<>(CommonConstants.ResponsesSent, iceCandidatePairStats.responsesSent),
|
|
134
|
+
new Pair<>(CommonConstants.RetransmissionsReceived, iceCandidatePairStats.retransmissionsReceived),
|
|
135
|
+
new Pair<>(CommonConstants.RetransmissionsSent, iceCandidatePairStats.retransmissionsSent),
|
|
136
|
+
new Pair<>(CommonConstants.State, stringWithIceCandidatePairState(iceCandidatePairStats.state)),
|
|
137
|
+
new Pair<>(CommonConstants.TotalRoundTripTime, iceCandidatePairStats.totalRoundTripTime),
|
|
138
|
+
new Pair<>(CommonConstants.TransportId, iceCandidatePairStats.transportId),
|
|
139
|
+
new Pair<>(CommonConstants.Writeable, iceCandidatePairStats.writeable)));
|
|
140
|
+
}
|
|
141
|
+
return mapList.toArray();
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
private Object[] jsonWithIceCandidateStats(List<IceCandidateStats> iceCandidateStatsList) throws JSONException {
|
|
145
|
+
Vector<WritableMap> mapList = new Vector<>();
|
|
146
|
+
for (IceCandidateStats iceCandidateStats: iceCandidateStatsList) {
|
|
147
|
+
mapList.add(
|
|
148
|
+
constructJSMap(
|
|
149
|
+
new Pair<>(CommonConstants.CandidateType, iceCandidateStats.candidateType),
|
|
150
|
+
new Pair<>(CommonConstants.Deleted, iceCandidateStats.deleted),
|
|
151
|
+
new Pair<>(CommonConstants.Ip, iceCandidateStats.ip),
|
|
152
|
+
new Pair<>(CommonConstants.IsRemote, iceCandidateStats.isRemote),
|
|
153
|
+
new Pair<>(CommonConstants.Port, iceCandidateStats.port),
|
|
154
|
+
new Pair<>(CommonConstants.Priority, iceCandidateStats.priority),
|
|
155
|
+
new Pair<>(CommonConstants.Protocol, iceCandidateStats.protocol),
|
|
156
|
+
new Pair<>(CommonConstants.TransportId, iceCandidateStats.transportId),
|
|
157
|
+
new Pair<>(CommonConstants.Url, iceCandidateStats.url)));
|
|
158
|
+
}
|
|
159
|
+
return mapList.toArray();
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
private String stringWithIceCandidatePairState(IceCandidatePairState state) {
|
|
163
|
+
switch (state) {
|
|
164
|
+
case STATE_FAILED:
|
|
165
|
+
return CommonConstants.StateFailed;
|
|
166
|
+
case STATE_FROZEN:
|
|
167
|
+
return CommonConstants.StateFrozen;
|
|
168
|
+
case STATE_IN_PROGRESS:
|
|
169
|
+
return CommonConstants.StateInProgress;
|
|
170
|
+
case STATE_SUCCEEDED:
|
|
171
|
+
return CommonConstants.StateSucceeded;
|
|
172
|
+
case STATE_WAITING:
|
|
173
|
+
return CommonConstants.StateWaiting;
|
|
174
|
+
default:
|
|
175
|
+
return CommonConstants.StateUnknown;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|