omikit-plugin 3.3.29 → 4.0.2

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.
Files changed (50) hide show
  1. package/README.md +994 -1217
  2. package/android/build.gradle +22 -72
  3. package/android/gradle.properties +4 -4
  4. package/android/src/main/java/com/omikitplugin/FLLocalCameraModule.kt +1 -1
  5. package/android/src/main/java/com/omikitplugin/FLRemoteCameraModule.kt +1 -1
  6. package/android/src/main/java/com/omikitplugin/OmikitPluginModule.kt +326 -356
  7. package/android/src/main/java/com/omikitplugin/constants/constant.kt +2 -1
  8. package/ios/CallProcess/CallManager.swift +45 -35
  9. package/ios/Constant/Constant.swift +1 -0
  10. package/ios/Library/OmikitPlugin.m +75 -1
  11. package/ios/Library/OmikitPlugin.swift +199 -16
  12. package/ios/OmikitPlugin-Protocol.h +161 -0
  13. package/lib/commonjs/NativeOmikitPlugin.js +9 -0
  14. package/lib/commonjs/NativeOmikitPlugin.js.map +1 -0
  15. package/lib/commonjs/index.js +11 -0
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/commonjs/omi_audio_type.js +20 -0
  18. package/lib/commonjs/omi_audio_type.js.map +1 -0
  19. package/lib/commonjs/omi_local_camera.js +18 -2
  20. package/lib/commonjs/omi_local_camera.js.map +1 -1
  21. package/lib/commonjs/omi_remote_camera.js +18 -2
  22. package/lib/commonjs/omi_remote_camera.js.map +1 -1
  23. package/lib/commonjs/omi_start_call_status.js +30 -0
  24. package/lib/commonjs/omi_start_call_status.js.map +1 -1
  25. package/lib/commonjs/omikit.js +125 -14
  26. package/lib/commonjs/omikit.js.map +1 -1
  27. package/lib/module/NativeOmikitPlugin.js +3 -0
  28. package/lib/module/NativeOmikitPlugin.js.map +1 -0
  29. package/lib/module/index.js +1 -0
  30. package/lib/module/index.js.map +1 -1
  31. package/lib/module/omi_audio_type.js +14 -0
  32. package/lib/module/omi_audio_type.js.map +1 -0
  33. package/lib/module/omi_local_camera.js +19 -2
  34. package/lib/module/omi_local_camera.js.map +1 -1
  35. package/lib/module/omi_remote_camera.js +19 -2
  36. package/lib/module/omi_remote_camera.js.map +1 -1
  37. package/lib/module/omi_start_call_status.js +30 -0
  38. package/lib/module/omi_start_call_status.js.map +1 -1
  39. package/lib/module/omikit.js +119 -15
  40. package/lib/module/omikit.js.map +1 -1
  41. package/omikit-plugin.podspec +26 -24
  42. package/package.json +11 -2
  43. package/src/NativeOmikitPlugin.ts +160 -0
  44. package/src/index.tsx +2 -1
  45. package/src/omi_audio_type.tsx +9 -0
  46. package/src/omi_local_camera.tsx +17 -3
  47. package/src/omi_remote_camera.tsx +17 -3
  48. package/src/omi_start_call_status.tsx +29 -10
  49. package/src/omikit.tsx +118 -28
  50. package/src/types/index.d.ts +111 -11
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OmiAudioType"],"sourceRoot":"../../src","sources":["omi_audio_type.tsx"],"mappings":"AAAA;AACA;AACA;AACA,WAAYA,YAAY,0BAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EACJ;EADRA,YAAY,CAAZA,YAAY;EAEJ;EAFRA,YAAY,CAAZA,YAAY;EAGJ;EAHRA,YAAY,CAAZA,YAAY,oCAIJ;EAAA,OAJRA,YAAY;AAAA","ignoreList":[]}
@@ -1,7 +1,24 @@
1
1
  import { NativeModules, requireNativeComponent } from 'react-native';
2
- const FLLocalCamera = NativeModules.FLLocalCameraView;
3
- export const OmiLocalCameraView = requireNativeComponent('FLLocalCameraView');
2
+
3
+ // Safe lazy loading requireNativeComponent can throw in bridgeless mode
4
+ // if the native view is not registered for Fabric
5
+ let _localCameraView = null;
6
+ const getLocalCameraView = () => {
7
+ if (!_localCameraView) {
8
+ _localCameraView = requireNativeComponent('FLLocalCameraView');
9
+ }
10
+ return _localCameraView;
11
+ };
12
+ export const OmiLocalCameraView = new Proxy({}, {
13
+ get(_target, prop) {
14
+ return getLocalCameraView()[prop];
15
+ }
16
+ });
17
+
18
+ // Module name separated from ViewManager name to avoid name collision
19
+ const FLLocalCamera = NativeModules.FLLocalCameraModule || NativeModules.FLLocalCameraView;
4
20
  export function refreshLocalCamera() {
21
+ if (!FLLocalCamera) return Promise.resolve(false);
5
22
  return FLLocalCamera.refresh();
6
23
  }
7
24
  //# sourceMappingURL=omi_local_camera.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","requireNativeComponent","FLLocalCamera","FLLocalCameraView","OmiLocalCameraView","refreshLocalCamera","refresh"],"sourceRoot":"../../src","sources":["omi_local_camera.tsx"],"mappings":"AACA,SAASA,aAAa,EAAEC,sBAAsB,QAAmB,cAAc;AAE/E,MAAMC,aAAa,GAAGF,aAAa,CAACG,iBAAiB;AAErD,OAAO,MAAMC,kBAA4C,GACvDH,sBAAsB,CAAC,mBAAmB,CAAC;AAE7C,OAAO,SAASI,kBAAkBA,CAAA,EAAqB;EACrD,OAAOH,aAAa,CAACI,OAAO,CAAC,CAAC;AAChC","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","requireNativeComponent","_localCameraView","getLocalCameraView","OmiLocalCameraView","Proxy","get","_target","prop","FLLocalCamera","FLLocalCameraModule","FLLocalCameraView","refreshLocalCamera","Promise","resolve","refresh"],"sourceRoot":"../../src","sources":["omi_local_camera.tsx"],"mappings":"AACA,SAASA,aAAa,EAAEC,sBAAsB,QAAmB,cAAc;;AAE/E;AACA;AACA,IAAIC,gBAAiD,GAAG,IAAI;AAC5D,MAAMC,kBAAkB,GAAGA,CAAA,KAAgC;EACzD,IAAI,CAACD,gBAAgB,EAAE;IACrBA,gBAAgB,GAAGD,sBAAsB,CAAC,mBAAmB,CAAC;EAChE;EACA,OAAOC,gBAAgB;AACzB,CAAC;AAED,OAAO,MAAME,kBAAkB,GAAG,IAAIC,KAAK,CAAC,CAAC,CAAC,EAA8B;EAC1EC,GAAGA,CAACC,OAAO,EAAEC,IAAI,EAAE;IACjB,OAAQL,kBAAkB,CAAC,CAAC,CAASK,IAAI,CAAC;EAC5C;AACF,CAAC,CAAC;;AAEF;AACA,MAAMC,aAAa,GAAGT,aAAa,CAACU,mBAAmB,IAAIV,aAAa,CAACW,iBAAiB;AAC1F,OAAO,SAASC,kBAAkBA,CAAA,EAAqB;EACrD,IAAI,CAACH,aAAa,EAAE,OAAOI,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC;EACjD,OAAOL,aAAa,CAACM,OAAO,CAAC,CAAC;AAChC","ignoreList":[]}
@@ -1,7 +1,24 @@
1
1
  import { NativeModules, requireNativeComponent } from 'react-native';
2
- const FLRemoteCamera = NativeModules.FLRemoteCameraView;
3
- export const OmiRemoteCameraView = requireNativeComponent('FLRemoteCameraView');
2
+
3
+ // Safe lazy loading requireNativeComponent can throw in bridgeless mode
4
+ // if the native view is not registered for Fabric
5
+ let _remoteCameraView = null;
6
+ const getRemoteCameraView = () => {
7
+ if (!_remoteCameraView) {
8
+ _remoteCameraView = requireNativeComponent('FLRemoteCameraView');
9
+ }
10
+ return _remoteCameraView;
11
+ };
12
+ export const OmiRemoteCameraView = new Proxy({}, {
13
+ get(_target, prop) {
14
+ return getRemoteCameraView()[prop];
15
+ }
16
+ });
17
+
18
+ // Module name separated from ViewManager name to avoid name collision
19
+ const FLRemoteCamera = NativeModules.FLRemoteCameraModule || NativeModules.FLRemoteCameraView;
4
20
  export function refreshRemoteCamera() {
21
+ if (!FLRemoteCamera) return Promise.resolve(false);
5
22
  return FLRemoteCamera.refresh();
6
23
  }
7
24
  //# sourceMappingURL=omi_remote_camera.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","requireNativeComponent","FLRemoteCamera","FLRemoteCameraView","OmiRemoteCameraView","refreshRemoteCamera","refresh"],"sourceRoot":"../../src","sources":["omi_remote_camera.tsx"],"mappings":"AACA,SAASA,aAAa,EAAEC,sBAAsB,QAAmB,cAAc;AAE/E,MAAMC,cAAc,GAAGF,aAAa,CAACG,kBAAkB;AAEvD,OAAO,MAAMC,mBAA6C,GACxDH,sBAAsB,CAAC,oBAAoB,CAAC;AAE9C,OAAO,SAASI,mBAAmBA,CAAA,EAAqB;EACtD,OAAOH,cAAc,CAACI,OAAO,CAAC,CAAC;AACjC","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","requireNativeComponent","_remoteCameraView","getRemoteCameraView","OmiRemoteCameraView","Proxy","get","_target","prop","FLRemoteCamera","FLRemoteCameraModule","FLRemoteCameraView","refreshRemoteCamera","Promise","resolve","refresh"],"sourceRoot":"../../src","sources":["omi_remote_camera.tsx"],"mappings":"AACA,SAASA,aAAa,EAAEC,sBAAsB,QAAmB,cAAc;;AAE/E;AACA;AACA,IAAIC,iBAAkD,GAAG,IAAI;AAC7D,MAAMC,mBAAmB,GAAGA,CAAA,KAAgC;EAC1D,IAAI,CAACD,iBAAiB,EAAE;IACtBA,iBAAiB,GAAGD,sBAAsB,CAAC,oBAAoB,CAAC;EAClE;EACA,OAAOC,iBAAiB;AAC1B,CAAC;AAED,OAAO,MAAME,mBAAmB,GAAG,IAAIC,KAAK,CAAC,CAAC,CAAC,EAA8B;EAC3EC,GAAGA,CAACC,OAAO,EAAEC,IAAI,EAAE;IACjB,OAAQL,mBAAmB,CAAC,CAAC,CAASK,IAAI,CAAC;EAC7C;AACF,CAAC,CAAC;;AAEF;AACA,MAAMC,cAAc,GAAGT,aAAa,CAACU,oBAAoB,IAAIV,aAAa,CAACW,kBAAkB;AAC7F,OAAO,SAASC,mBAAmBA,CAAA,EAAqB;EACtD,IAAI,CAACH,cAAc,EAAE,OAAOI,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC;EAClD,OAAOL,cAAc,CAACM,OAAO,CAAC,CAAC;AACjC","ignoreList":[]}
@@ -1,14 +1,44 @@
1
+ /**
2
+ * Status codes returned by startCall() function
3
+ * Use these to handle different call initiation results
4
+ */
1
5
  export let OmiStartCallStatus = /*#__PURE__*/function (OmiStartCallStatus) {
6
+ // Validation errors (0-3)
2
7
  OmiStartCallStatus[OmiStartCallStatus["invalidUuid"] = 0] = "invalidUuid";
8
+ // Invalid user UUID
3
9
  OmiStartCallStatus[OmiStartCallStatus["invalidPhoneNumber"] = 1] = "invalidPhoneNumber";
10
+ // Invalid phone number format
4
11
  OmiStartCallStatus[OmiStartCallStatus["samePhoneNumber"] = 2] = "samePhoneNumber";
12
+ // Cannot call same phone number
5
13
  OmiStartCallStatus[OmiStartCallStatus["maxRetry"] = 3] = "maxRetry";
14
+ // Maximum retry attempts reached
15
+ // Permission errors (4, 450-452)
6
16
  OmiStartCallStatus[OmiStartCallStatus["permissionDenied"] = 4] = "permissionDenied";
17
+ // Microphone/Camera permission denied
18
+ OmiStartCallStatus[OmiStartCallStatus["permissionMicrophone"] = 450] = "permissionMicrophone";
19
+ // Microphone permission required (Android 15+)
20
+ OmiStartCallStatus[OmiStartCallStatus["permissionCamera"] = 451] = "permissionCamera";
21
+ // Camera permission required (Android 15+)
22
+ OmiStartCallStatus[OmiStartCallStatus["permissionOverlay"] = 452] = "permissionOverlay";
23
+ // System alert window permission required (Android 15+)
24
+ // Call errors (5-7)
7
25
  OmiStartCallStatus[OmiStartCallStatus["couldNotFindEndpoint"] = 5] = "couldNotFindEndpoint";
26
+ // Could not find endpoint
8
27
  OmiStartCallStatus[OmiStartCallStatus["accountRegisterFailed"] = 6] = "accountRegisterFailed";
28
+ // Account registration failed
9
29
  OmiStartCallStatus[OmiStartCallStatus["startCallFailed"] = 7] = "startCallFailed";
30
+ // Start call failed
31
+ // Success statuses (8, 407)
10
32
  OmiStartCallStatus[OmiStartCallStatus["startCallSuccess"] = 8] = "startCallSuccess";
33
+ // Call initiated successfully (Android)
34
+ OmiStartCallStatus[OmiStartCallStatus["startCallSuccessIOS"] = 407] = "startCallSuccessIOS";
35
+ // Call initiated successfully (iOS)
36
+ // Other errors (9+)
11
37
  OmiStartCallStatus[OmiStartCallStatus["haveAnotherCall"] = 9] = "haveAnotherCall";
38
+ // Already have another call in progress
39
+ OmiStartCallStatus[OmiStartCallStatus["accountTurnOffNumberInternal"] = 10] = "accountTurnOffNumberInternal";
40
+ // Internal number has been deactivated
41
+ OmiStartCallStatus[OmiStartCallStatus["noNetwork"] = 11] = "noNetwork"; // No network connection available
12
42
  return OmiStartCallStatus;
13
43
  }({});
14
44
  //# sourceMappingURL=omi_start_call_status.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["OmiStartCallStatus"],"sourceRoot":"../../src","sources":["omi_start_call_status.tsx"],"mappings":"AAAA,WAAYA,kBAAkB,0BAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["OmiStartCallStatus"],"sourceRoot":"../../src","sources":["omi_start_call_status.tsx"],"mappings":"AAAA;AACA;AACA;AACA;AACA,WAAYA,kBAAkB,0BAAlBA,kBAAkB;EAC5B;EADUA,kBAAkB,CAAlBA,kBAAkB;EAEE;EAFpBA,kBAAkB,CAAlBA,kBAAkB;EAGE;EAHpBA,kBAAkB,CAAlBA,kBAAkB;EAIE;EAJpBA,kBAAkB,CAAlBA,kBAAkB;EAKE;EAE9B;EAPUA,kBAAkB,CAAlBA,kBAAkB;EAQE;EARpBA,kBAAkB,CAAlBA,kBAAkB;EASE;EATpBA,kBAAkB,CAAlBA,kBAAkB;EAUE;EAVpBA,kBAAkB,CAAlBA,kBAAkB;EAWE;EAE9B;EAbUA,kBAAkB,CAAlBA,kBAAkB;EAcE;EAdpBA,kBAAkB,CAAlBA,kBAAkB;EAeE;EAfpBA,kBAAkB,CAAlBA,kBAAkB;EAgBE;EAE9B;EAlBUA,kBAAkB,CAAlBA,kBAAkB;EAmBE;EAnBpBA,kBAAkB,CAAlBA,kBAAkB;EAoBE;EAE9B;EAtBUA,kBAAkB,CAAlBA,kBAAkB;EAuBE;EAvBpBA,kBAAkB,CAAlBA,kBAAkB;EAwBO;EAxBzBA,kBAAkB,CAAlBA,kBAAkB,mCAyBE;EAAA,OAzBpBA,kBAAkB;AAAA","ignoreList":[]}
@@ -1,18 +1,51 @@
1
- import { NativeModules, Platform, NativeEventEmitter, DeviceEventEmitter } from 'react-native';
1
+ import { NativeModules, Platform, NativeEventEmitter, DeviceEventEmitter, TurboModuleRegistry } from 'react-native';
2
2
  const LINKING_ERROR = `The package 'omikit-plugin' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
3
3
  ios: "- You have run 'pod install'\n",
4
4
  default: ''
5
5
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
6
6
 
7
- // Khai báo chính xác Native Module
8
- const OmikitPlugin = NativeModules.OmikitPlugin ? NativeModules.OmikitPlugin : new Proxy({}, {
9
- get() {
7
+ // Resolve native module: TurboModule (New Arch) → NativeModules (Old Arch) → null
8
+ const resolvedModule = (() => {
9
+ try {
10
+ // Try TurboModule first (New Architecture / bridgeless mode)
11
+ const turboModule = TurboModuleRegistry.get('OmikitPlugin');
12
+ if (turboModule) return turboModule;
13
+ } catch (_) {}
14
+
15
+ // Fallback to NativeModules (Old Architecture / bridge mode)
16
+ if (NativeModules.OmikitPlugin) {
17
+ return NativeModules.OmikitPlugin;
18
+ }
19
+ return null;
20
+ })();
21
+
22
+ // Wrap in Proxy that throws LINKING_ERROR only when SDK methods are actually called
23
+ const OmikitPlugin = resolvedModule || new Proxy({}, {
24
+ get(_target, prop) {
25
+ if (prop === 'addListener' || prop === 'removeListeners') {
26
+ return () => {};
27
+ }
10
28
  throw new Error(LINKING_ERROR);
11
29
  }
12
30
  });
13
31
 
14
- // Setup omiEmitter cho iOS Android
15
- const omiEmitter = Platform.OS === 'ios' ? new NativeEventEmitter(OmikitPlugin) : DeviceEventEmitter;
32
+ // Setup omiEmitter safe for Old Arch, New Arch, and bridgeless mode
33
+ const omiEmitter = (() => {
34
+ if (Platform.OS !== 'ios') {
35
+ return DeviceEventEmitter;
36
+ }
37
+ try {
38
+ // Best case: NativeEventEmitter with resolved native module
39
+ if (resolvedModule) {
40
+ return new NativeEventEmitter(resolvedModule);
41
+ }
42
+ // New Arch without interop: NativeEventEmitter without module arg (RN 0.74+)
43
+ return new NativeEventEmitter();
44
+ } catch (_) {
45
+ // Last resort fallback
46
+ return DeviceEventEmitter;
47
+ }
48
+ })();
16
49
 
17
50
  /**
18
51
  * Starts the Omikit services.
@@ -32,14 +65,18 @@ export function configPushNotification(data) {
32
65
  }
33
66
 
34
67
  /**
35
- * Retrieves the initial call details when start call
68
+ * Retrieves the initial call details when start call
36
69
  * @returns {Promise<any>} A promise containing the initial call details.
37
70
  */
38
71
  export function getInitialCall() {
39
72
  if (Platform.OS == "ios") {
40
- return OmikitPlugin.getInitialCall();
73
+ return OmikitPlugin.getInitialCall({
74
+ counter: 0
75
+ });
41
76
  } else {
42
- return OmikitPlugin.getInitialCall(4);
77
+ return OmikitPlugin.getInitialCall({
78
+ counter: 4
79
+ });
43
80
  }
44
81
  }
45
82
 
@@ -64,7 +101,7 @@ export function initCallWithApiKey(data) {
64
101
  /**
65
102
  * Starts a new call with the given data.
66
103
  * @param {any} data - Call configuration data.
67
- * @returns {Promise<boolean>} A promise that resolves to `true` if the call starts successfully.
104
+ * @returns {Promise<any>} A promise that resolves with call details if successful.
68
105
  */
69
106
  export function startCall(data) {
70
107
  return OmikitPlugin.startCall(data);
@@ -97,7 +134,7 @@ export function endCall() {
97
134
 
98
135
  /**
99
136
  * Toggles the mute status of the microphone.
100
- * @returns {Promise<boolean>} A promise that resolves to `true` if the microphone is muted, `false` otherwise.
137
+ * @returns {Promise<boolean | null>} A promise that resolves to `true` if the microphone is muted, `false` otherwise, or `null` if unavailable.
101
138
  */
102
139
  export function toggleMute() {
103
140
  return OmikitPlugin.toggleMute();
@@ -113,7 +150,7 @@ export function toggleSpeaker() {
113
150
 
114
151
  /**
115
152
  * Toggles the hold call.
116
- * @returns {Promise<boolean>} A promise that resolves to `true` if when hold call success, `false` otherwise.
153
+ * @returns {Promise<void>} A promise that resolves when hold call is toggled.
117
154
  */
118
155
  export function toggleHold() {
119
156
  return OmikitPlugin.toggleHold();
@@ -269,7 +306,9 @@ export function hideSystemNotificationOnly() {
269
306
  return OmikitPlugin.hideSystemNotificationOnly();
270
307
  }
271
308
  export function hideSystemNotificationAndUnregister(reason) {
272
- return OmikitPlugin.hideSystemNotificationAndUnregister(reason);
309
+ return OmikitPlugin.hideSystemNotificationAndUnregister({
310
+ reason
311
+ });
273
312
  }
274
313
  export const OmiCallEvent = {
275
314
  onCallStateChanged: 'CALL_STATE_CHANGED',
@@ -323,7 +362,9 @@ export function checkAndRequestPermissions(isVideo = false) {
323
362
  if (Platform.OS !== 'android') {
324
363
  return Promise.resolve(true);
325
364
  }
326
- return OmikitPlugin.checkAndRequestPermissions(isVideo);
365
+ return OmikitPlugin.checkAndRequestPermissions({
366
+ isVideo
367
+ });
327
368
  }
328
369
 
329
370
  /**
@@ -347,6 +388,69 @@ export function requestPermissionsByCodes(codes) {
347
388
  if (Platform.OS !== 'android') {
348
389
  return Promise.resolve(true);
349
390
  }
350
- return OmikitPlugin.requestPermissionsByCodes(codes);
391
+ return OmikitPlugin.requestPermissionsByCodes({
392
+ codes
393
+ });
394
+ }
395
+
396
+ // MARK: - Getter Functions
397
+
398
+ /**
399
+ * Retrieves user info by phone number.
400
+ * @param {string} phone - The phone number to look up.
401
+ * @returns {Promise<any>} User info object or null.
402
+ */
403
+ export function getUserInfo(phone) {
404
+ return OmikitPlugin.getUserInfo({
405
+ phone
406
+ });
407
+ }
408
+
409
+ /**
410
+ * Retrieves the project ID from OmiClient.
411
+ * @returns {Promise<string | null>} The project ID or null.
412
+ */
413
+ export function getProjectId() {
414
+ return OmikitPlugin.getProjectId();
415
+ }
416
+
417
+ /**
418
+ * Retrieves SIP connection info (user@realm).
419
+ * @returns {Promise<string | null>} SIP info string or null.
420
+ */
421
+ export function getSipInfo() {
422
+ return OmikitPlugin.getSipInfo();
423
+ }
424
+
425
+ /**
426
+ * Retrieves the app ID from OmiClient.
427
+ * @returns {Promise<string | null>} The app ID or null.
428
+ */
429
+ export function getAppId() {
430
+ return OmikitPlugin.getAppId();
431
+ }
432
+
433
+ /**
434
+ * Retrieves the device ID from OmiClient.
435
+ * @returns {Promise<string | null>} The device ID or null.
436
+ */
437
+ export function getDeviceId() {
438
+ return OmikitPlugin.getDeviceId();
439
+ }
440
+
441
+ /**
442
+ * Retrieves the FCM token from OmiClient.
443
+ * @returns {Promise<string | null>} The FCM token or null.
444
+ */
445
+ export function getFcmToken() {
446
+ return OmikitPlugin.getFcmToken();
447
+ }
448
+
449
+ /**
450
+ * Retrieves the VoIP token (iOS only, Android returns null).
451
+ * @returns {Promise<string | null>} The VoIP token or null.
452
+ */
453
+ export function getVoipToken() {
454
+ return OmikitPlugin.getVoipToken();
351
455
  }
352
456
  //# sourceMappingURL=omikit.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","NativeEventEmitter","DeviceEventEmitter","LINKING_ERROR","select","ios","default","OmikitPlugin","Proxy","get","Error","omiEmitter","OS","startServices","configPushNotification","data","getInitialCall","initCallWithUserPassword","initCallWithApiKey","startCall","startCallWithUuid","joinCall","endCall","toggleMute","toggleSpeaker","toggleHold","onHold","sendDTMF","switchOmiCamera","toggleOmiVideo","logout","registerVideoEvent","removeVideoEvent","getCurrentUser","getGuestUser","systemAlertWindow","openSystemAlertSetting","getAudio","setAudio","getCurrentAudio","transferCall","rejectCall","dropCall","hideSystemNotificationSafely","hideSystemNotificationOnly","hideSystemNotificationAndUnregister","reason","OmiCallEvent","onCallStateChanged","onSpeaker","onMuted","onRemoteVideoReady","onClickMissedCall","onSwitchboardAnswer","onCallQuality","onAudioChange","onRequestPermissionAndroid","checkCredentials","registerWithOptions","checkPermissionStatus","Promise","resolve","checkAndRequestPermissions","isVideo","requestSystemAlertWindowPermission","requestPermissionsByCodes","codes"],"sourceRoot":"../../src","sources":["omikit.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","Platform","NativeEventEmitter","DeviceEventEmitter","TurboModuleRegistry","LINKING_ERROR","select","ios","default","resolvedModule","turboModule","get","_","OmikitPlugin","Proxy","_target","prop","Error","omiEmitter","OS","startServices","configPushNotification","data","getInitialCall","counter","initCallWithUserPassword","initCallWithApiKey","startCall","startCallWithUuid","joinCall","endCall","toggleMute","toggleSpeaker","toggleHold","onHold","sendDTMF","switchOmiCamera","toggleOmiVideo","logout","registerVideoEvent","removeVideoEvent","getCurrentUser","getGuestUser","systemAlertWindow","openSystemAlertSetting","getAudio","setAudio","getCurrentAudio","transferCall","rejectCall","dropCall","hideSystemNotificationSafely","hideSystemNotificationOnly","hideSystemNotificationAndUnregister","reason","OmiCallEvent","onCallStateChanged","onSpeaker","onMuted","onRemoteVideoReady","onClickMissedCall","onSwitchboardAnswer","onCallQuality","onAudioChange","onRequestPermissionAndroid","checkCredentials","registerWithOptions","checkPermissionStatus","Promise","resolve","checkAndRequestPermissions","isVideo","requestSystemAlertWindowPermission","requestPermissionsByCodes","codes","getUserInfo","phone","getProjectId","getSipInfo","getAppId","getDeviceId","getFcmToken","getVoipToken"],"sourceRoot":"../../src","sources":["omikit.tsx"],"mappings":"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","ignoreList":[]}
@@ -14,49 +14,51 @@ Pod::Spec.new do |s|
14
14
  s.platforms = { :ios => "13.0" }
15
15
  s.source = { :git => "https://github.com/VIHATTeam/OMICALL-React-Native-SDK.git", :tag => "#{s.version}" }
16
16
 
17
- # Chỉ định source files
17
+ # Source files configuration
18
18
  s.source_files = "ios/**/*.{h,m,mm,swift}"
19
19
  s.public_header_files = "ios/**/*.h"
20
20
 
21
- # Đảm bảo hỗ trợ Swift
21
+ # Swift support
22
22
  s.swift_versions = ["5.0"]
23
23
 
24
- # Định nghĩa module để tránh lỗi Swift bridging header
24
+ # Module configuration for Swift bridging
25
25
  s.static_framework = true
26
- s.pod_target_xcconfig = {
27
- "DEFINES_MODULE" => "YES",
28
- "SWIFT_OPTIMIZATION_LEVEL" => "-Onone",
29
- "EXCLUDED_ARCHS[sdk=iphonesimulator*]" => "arm64"
30
- }
31
-
32
- # Xác định module name
33
26
  s.module_name = "OmikitPlugin"
27
+ s.requires_arc = true
34
28
 
35
- # Thêm dependency bắt buộc
29
+ # Dependencies
36
30
  s.dependency "React-Core"
37
-
38
- s.dependency "OmiKit", "1.10.11"
39
-
31
+ s.dependency "OmiKit", "1.10.34"
40
32
 
41
- s.requires_arc = true
33
+ # Base build settings (for both Old and New Architecture)
34
+ base_xcconfig = {
35
+ "DEFINES_MODULE" => "YES",
36
+ # Note: arm64 simulator excluded due to OmiKit binary compatibility
37
+ "EXCLUDED_ARCHS[sdk=iphonesimulator*]" => "arm64"
38
+ }
42
39
 
43
- # Xử riêng cho kiến trúc mới (New Architecture)
40
+ # New Architecture (TurboModule/Fabric) support
44
41
  if ENV['RCT_NEW_ARCH_ENABLED'] == '1'
45
42
  s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1"
46
- s.xcconfig = {
47
- "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
48
- "OTHER_CPLUSPLUSFLAGS" => folly_compiler_flags,
49
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
50
- }
51
- s.pod_target_xcconfig = {
43
+
44
+ # Merge base config with New Architecture config
45
+ new_arch_xcconfig = base_xcconfig.merge({
52
46
  "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
53
47
  "OTHER_CPLUSPLUSFLAGS" => folly_compiler_flags,
54
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
55
- }
48
+ "CLANG_CXX_LANGUAGE_STANDARD" => "c++20"
49
+ })
50
+
51
+ s.xcconfig = new_arch_xcconfig
52
+ s.pod_target_xcconfig = new_arch_xcconfig
53
+
54
+ # New Architecture dependencies
56
55
  s.dependency "React-Codegen"
57
56
  s.dependency "RCT-Folly"
58
57
  s.dependency "RCTRequired"
59
58
  s.dependency "RCTTypeSafety"
60
59
  s.dependency "ReactCommon/turbomodule/core"
60
+ else
61
+ # Old Architecture - use base config only
62
+ s.pod_target_xcconfig = base_xcconfig
61
63
  end
62
64
  end
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omikit-plugin",
3
- "version": "3.3.29",
3
+ "version": "4.0.2",
4
4
  "description": "Omikit Plugin by ViHAT",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -73,7 +73,16 @@
73
73
  },
74
74
  "peerDependencies": {
75
75
  "react": "*",
76
- "react-native": "*"
76
+ "react-native": ">=0.74.0"
77
+ },
78
+ "codegenConfig": {
79
+ "name": "RNOmikitPluginSpec",
80
+ "type": "all",
81
+ "jsSrcsDir": "src",
82
+ "android": {
83
+ "javaPackageName": "com.omikitplugin"
84
+ },
85
+ "ios": {}
77
86
  },
78
87
  "engines": {
79
88
  "node": ">= 16.0.0"
@@ -0,0 +1,160 @@
1
+ import type { TurboModule } from 'react-native';
2
+ import { TurboModuleRegistry } from 'react-native';
3
+
4
+ export interface Spec extends TurboModule {
5
+ // Registration & Authentication (2 methods)
6
+ initCallWithUserPassword(data: {
7
+ userName: string;
8
+ password: string;
9
+ realm: string;
10
+ host?: string;
11
+ isVideo: boolean;
12
+ fcmToken: string;
13
+ projectId?: string;
14
+ isSkipDevices?: boolean;
15
+ }): Promise<boolean>;
16
+
17
+ initCallWithApiKey(data: {
18
+ fullName: string;
19
+ usrUuid: string;
20
+ apiKey: string;
21
+ isVideo: boolean;
22
+ phone: string;
23
+ fcmToken: string;
24
+ projectId?: string;
25
+ }): Promise<boolean>;
26
+
27
+ // Call Control (10 methods)
28
+ startServices(): Promise<boolean>;
29
+
30
+ startCall(data: {
31
+ phoneNumber: string;
32
+ isVideo: boolean;
33
+ }): Promise<{
34
+ status: number;
35
+ message: string;
36
+ _id: string;
37
+ }>;
38
+
39
+ startCallWithUuid(data: {
40
+ usrUuid: string;
41
+ isVideo: boolean;
42
+ }): Promise<boolean>;
43
+
44
+ joinCall(): Promise<boolean>;
45
+ endCall(): Promise<boolean>;
46
+ rejectCall(): Promise<boolean>;
47
+ dropCall(): Promise<boolean>;
48
+
49
+ transferCall(data: {
50
+ phoneNumber: string;
51
+ }): Promise<boolean>;
52
+
53
+ getInitialCall(data: {
54
+ counter: number;
55
+ }): Promise<any>;
56
+
57
+ // Media Control (11 methods)
58
+ toggleMute(): Promise<boolean | null>;
59
+ toggleHold(): Promise<void>;
60
+
61
+ onHold(data: {
62
+ holdStatus: boolean;
63
+ }): Promise<boolean>;
64
+
65
+ toggleSpeaker(): Promise<boolean>;
66
+ toggleOmiVideo(): Promise<boolean>;
67
+ switchOmiCamera(): Promise<boolean>;
68
+ registerVideoEvent(): Promise<boolean>;
69
+ removeVideoEvent(): Promise<boolean>;
70
+
71
+ sendDTMF(data: {
72
+ character: string;
73
+ }): Promise<boolean>;
74
+
75
+ getAudio(): Promise<any>;
76
+ getCurrentAudio(): Promise<any>;
77
+
78
+ setAudio(data: {
79
+ portType: number;
80
+ }): Promise<void>;
81
+
82
+ // User & Info (3 methods)
83
+ getCurrentUser(): Promise<Object | null>;
84
+ getGuestUser(): Promise<Object | null>;
85
+
86
+ getUserInfo(data: {
87
+ phone: string;
88
+ }): Promise<any>;
89
+
90
+ // Notifications (4 methods)
91
+ configPushNotification(data: Object): Promise<any>;
92
+ hideSystemNotificationSafely(): Promise<boolean>;
93
+ hideSystemNotificationOnly(): Promise<boolean>;
94
+
95
+ hideSystemNotificationAndUnregister(data: {
96
+ reason: string;
97
+ }): Promise<boolean>;
98
+
99
+ // Permissions (6 methods)
100
+ checkAndRequestPermissions(data: {
101
+ isVideo: boolean;
102
+ }): Promise<boolean>;
103
+
104
+ checkPermissionStatus(): Promise<any>;
105
+
106
+ requestPermissionsByCodes(data: {
107
+ codes: number[];
108
+ }): Promise<boolean>;
109
+
110
+ systemAlertWindow(): Promise<boolean>;
111
+ requestSystemAlertWindowPermission(): Promise<boolean>;
112
+ openSystemAlertSetting(): Promise<void>;
113
+
114
+ // Advanced Features (4 methods)
115
+ checkCredentials(data: Object): Promise<{
116
+ success: boolean;
117
+ statusCode: number;
118
+ message: string;
119
+ }>;
120
+
121
+ registerWithOptions(data: Object): Promise<{
122
+ success: boolean;
123
+ statusCode: number;
124
+ message: string;
125
+ }>;
126
+
127
+ getKeepAliveStatus(): Promise<any>;
128
+ triggerKeepAlivePing(): Promise<boolean>;
129
+
130
+ // Logout
131
+ logout(): Promise<boolean>;
132
+
133
+ // Getter Functions (6 methods)
134
+ getProjectId(): Promise<string | null>;
135
+ getSipInfo(): Promise<string | null>;
136
+ getAppId(): Promise<string | null>;
137
+ getDeviceId(): Promise<string | null>;
138
+ getFcmToken(): Promise<string | null>;
139
+ getVoipToken(): Promise<string | null>;
140
+
141
+ // Event emitter methods (required for bridgeless mode)
142
+ addListener(eventName: string): void;
143
+ removeListeners(count: number): void;
144
+
145
+ // Constants
146
+ getConstants(): {
147
+ CALL_STATE_CHANGED: string;
148
+ MUTED: string;
149
+ HOLD: string;
150
+ SPEAKER: string;
151
+ REMOTE_VIDEO_READY: string;
152
+ CLICK_MISSED_CALL: string;
153
+ SWITCHBOARD_ANSWER: string;
154
+ CALL_QUALITY: string;
155
+ AUDIO_CHANGE: string;
156
+ REQUEST_PERMISSION: string;
157
+ };
158
+ }
159
+
160
+ export default TurboModuleRegistry.get<Spec>('OmikitPlugin') as Spec | null;
package/src/index.tsx CHANGED
@@ -2,4 +2,5 @@ export * from './omikit';
2
2
  export * from './omi_local_camera';
3
3
  export * from './omi_remote_camera';
4
4
  export * from './omi_call_state';
5
- export * from './omi_start_call_status';
5
+ export * from './omi_start_call_status';
6
+ export * from './omi_audio_type';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Audio output types for setAudio()
3
+ */
4
+ export enum OmiAudioType {
5
+ receiver = 0, // Phone receiver (earpiece)
6
+ speaker = 1, // Phone speaker
7
+ bluetooth = 2, // Bluetooth device
8
+ headphones = 3, // Wired headphones
9
+ }