omikit-plugin 3.3.28 → 4.0.1

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 (49) hide show
  1. package/README.md +949 -1223
  2. package/android/build.gradle +1 -1
  3. package/android/src/main/java/com/omikitplugin/FLLocalCameraModule.kt +1 -1
  4. package/android/src/main/java/com/omikitplugin/FLRemoteCameraModule.kt +1 -1
  5. package/android/src/main/java/com/omikitplugin/OmikitPluginModule.kt +277 -325
  6. package/android/src/main/java/com/omikitplugin/constants/constant.kt +2 -1
  7. package/ios/CallProcess/CallManager.swift +45 -35
  8. package/ios/Constant/Constant.swift +1 -0
  9. package/ios/Library/OmikitPlugin.m +75 -1
  10. package/ios/Library/OmikitPlugin.swift +199 -16
  11. package/ios/OmikitPlugin-Protocol.h +161 -0
  12. package/lib/commonjs/NativeOmikitPlugin.js +9 -0
  13. package/lib/commonjs/NativeOmikitPlugin.js.map +1 -0
  14. package/lib/commonjs/index.js +11 -0
  15. package/lib/commonjs/index.js.map +1 -1
  16. package/lib/commonjs/omi_audio_type.js +20 -0
  17. package/lib/commonjs/omi_audio_type.js.map +1 -0
  18. package/lib/commonjs/omi_local_camera.js +12 -2
  19. package/lib/commonjs/omi_local_camera.js.map +1 -1
  20. package/lib/commonjs/omi_remote_camera.js +12 -2
  21. package/lib/commonjs/omi_remote_camera.js.map +1 -1
  22. package/lib/commonjs/omi_start_call_status.js +30 -0
  23. package/lib/commonjs/omi_start_call_status.js.map +1 -1
  24. package/lib/commonjs/omikit.js +110 -16
  25. package/lib/commonjs/omikit.js.map +1 -1
  26. package/lib/module/NativeOmikitPlugin.js +3 -0
  27. package/lib/module/NativeOmikitPlugin.js.map +1 -0
  28. package/lib/module/index.js +1 -0
  29. package/lib/module/index.js.map +1 -1
  30. package/lib/module/omi_audio_type.js +14 -0
  31. package/lib/module/omi_audio_type.js.map +1 -0
  32. package/lib/module/omi_local_camera.js +13 -2
  33. package/lib/module/omi_local_camera.js.map +1 -1
  34. package/lib/module/omi_remote_camera.js +13 -2
  35. package/lib/module/omi_remote_camera.js.map +1 -1
  36. package/lib/module/omi_start_call_status.js +30 -0
  37. package/lib/module/omi_start_call_status.js.map +1 -1
  38. package/lib/module/omikit.js +104 -17
  39. package/lib/module/omikit.js.map +1 -1
  40. package/omikit-plugin.podspec +26 -24
  41. package/package.json +11 -2
  42. package/src/NativeOmikitPlugin.ts +160 -0
  43. package/src/index.tsx +2 -1
  44. package/src/omi_audio_type.tsx +9 -0
  45. package/src/omi_local_camera.tsx +12 -3
  46. package/src/omi_remote_camera.tsx +12 -3
  47. package/src/omi_start_call_status.tsx +29 -10
  48. package/src/omikit.tsx +96 -19
  49. package/src/types/index.d.ts +111 -11
@@ -1,7 +1,18 @@
1
1
  import { NativeModules, requireNativeComponent } from 'react-native';
2
- const FLLocalCamera = NativeModules.FLLocalCameraView;
3
- export const OmiLocalCameraView = requireNativeComponent('FLLocalCameraView');
2
+
3
+ // Camera Views always use Paper (requireNativeComponent) because:
4
+ // - iOS native code doesn't have Fabric ComponentView implementation yet
5
+ // - Paper components work fine even when New Architecture is enabled
6
+ // - This avoids undefined symbol errors (_FLLocalCameraViewCls)
7
+ const OmiLocalCameraViewPaper = requireNativeComponent('FLLocalCameraView');
8
+
9
+ // Export the Paper component
10
+ export const OmiLocalCameraView = OmiLocalCameraViewPaper;
11
+
12
+ // Module name separated from ViewManager name to avoid name collision
13
+ const FLLocalCamera = NativeModules.FLLocalCameraModule || NativeModules.FLLocalCameraView;
4
14
  export function refreshLocalCamera() {
15
+ if (!FLLocalCamera) return Promise.resolve(false);
5
16
  return FLLocalCamera.refresh();
6
17
  }
7
18
  //# 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","OmiLocalCameraViewPaper","OmiLocalCameraView","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;AACA;AACA,MAAMC,uBAAiD,GAAGD,sBAAsB,CAC9E,mBACF,CAAC;;AAED;AACA,OAAO,MAAME,kBAA4C,GAAGD,uBAAuB;;AAEnF;AACA,MAAME,aAAa,GAAGJ,aAAa,CAACK,mBAAmB,IAAIL,aAAa,CAACM,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,18 @@
1
1
  import { NativeModules, requireNativeComponent } from 'react-native';
2
- const FLRemoteCamera = NativeModules.FLRemoteCameraView;
3
- export const OmiRemoteCameraView = requireNativeComponent('FLRemoteCameraView');
2
+
3
+ // Camera Views always use Paper (requireNativeComponent) because:
4
+ // - iOS native code doesn't have Fabric ComponentView implementation yet
5
+ // - Paper components work fine even when New Architecture is enabled
6
+ // - This avoids undefined symbol errors (_FLRemoteCameraViewCls)
7
+ const OmiRemoteCameraViewPaper = requireNativeComponent('FLRemoteCameraView');
8
+
9
+ // Export the Paper component
10
+ export const OmiRemoteCameraView = OmiRemoteCameraViewPaper;
11
+
12
+ // Module name separated from ViewManager name to avoid name collision
13
+ const FLRemoteCamera = NativeModules.FLRemoteCameraModule || NativeModules.FLRemoteCameraView;
4
14
  export function refreshRemoteCamera() {
15
+ if (!FLRemoteCamera) return Promise.resolve(false);
5
16
  return FLRemoteCamera.refresh();
6
17
  }
7
18
  //# 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","OmiRemoteCameraViewPaper","OmiRemoteCameraView","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;AACA;AACA,MAAMC,wBAAkD,GAAGD,sBAAsB,CAC/E,oBACF,CAAC;;AAED;AACA,OAAO,MAAME,mBAA6C,GAAGD,wBAAwB;;AAErF;AACA,MAAME,cAAc,GAAGJ,aAAa,CAACK,oBAAoB,IAAIL,aAAa,CAACM,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,34 @@
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() {
10
- throw new Error(LINKING_ERROR);
7
+ // Runtime detection: Try TurboModule first, fallback to NativeModule
8
+ const isTurboModuleEnabled = global.__turboModuleProxy != null;
9
+ const OmikitPlugin = (() => {
10
+ if (isTurboModuleEnabled) {
11
+ // New Architecture - use TurboModule
12
+ const turboModule = TurboModuleRegistry.get('OmikitPlugin');
13
+ if (turboModule) {
14
+ return turboModule;
15
+ }
11
16
  }
12
- });
13
17
 
14
- // Setup omiEmitter cho iOS và Android
15
- const omiEmitter = Platform.OS === 'ios' ? new NativeEventEmitter(OmikitPlugin) : DeviceEventEmitter;
18
+ // Old Architecture - fallback to NativeModule
19
+ return NativeModules.OmikitPlugin || new Proxy({}, {
20
+ get() {
21
+ throw new Error(LINKING_ERROR);
22
+ }
23
+ });
24
+ })();
25
+
26
+ // Setup omiEmitter for iOS and Android
27
+ // In bridgeless mode, NativeModules is empty — use TurboModule instance instead
28
+ const omiEmitter = Platform.OS === 'ios' ? new NativeEventEmitter(NativeModules.OmikitPlugin ?? OmikitPlugin ?? {
29
+ addListener: () => {},
30
+ removeListeners: () => {}
31
+ }) : DeviceEventEmitter;
16
32
 
17
33
  /**
18
34
  * Starts the Omikit services.
@@ -32,14 +48,18 @@ export function configPushNotification(data) {
32
48
  }
33
49
 
34
50
  /**
35
- * Retrieves the initial call details when start call
51
+ * Retrieves the initial call details when start call
36
52
  * @returns {Promise<any>} A promise containing the initial call details.
37
53
  */
38
54
  export function getInitialCall() {
39
55
  if (Platform.OS == "ios") {
40
- return OmikitPlugin.getInitialCall();
56
+ return OmikitPlugin.getInitialCall({
57
+ counter: 0
58
+ });
41
59
  } else {
42
- return OmikitPlugin.getInitialCall(4);
60
+ return OmikitPlugin.getInitialCall({
61
+ counter: 4
62
+ });
43
63
  }
44
64
  }
45
65
 
@@ -64,7 +84,7 @@ export function initCallWithApiKey(data) {
64
84
  /**
65
85
  * Starts a new call with the given data.
66
86
  * @param {any} data - Call configuration data.
67
- * @returns {Promise<boolean>} A promise that resolves to `true` if the call starts successfully.
87
+ * @returns {Promise<any>} A promise that resolves with call details if successful.
68
88
  */
69
89
  export function startCall(data) {
70
90
  return OmikitPlugin.startCall(data);
@@ -97,7 +117,7 @@ export function endCall() {
97
117
 
98
118
  /**
99
119
  * Toggles the mute status of the microphone.
100
- * @returns {Promise<boolean>} A promise that resolves to `true` if the microphone is muted, `false` otherwise.
120
+ * @returns {Promise<boolean | null>} A promise that resolves to `true` if the microphone is muted, `false` otherwise, or `null` if unavailable.
101
121
  */
102
122
  export function toggleMute() {
103
123
  return OmikitPlugin.toggleMute();
@@ -113,7 +133,7 @@ export function toggleSpeaker() {
113
133
 
114
134
  /**
115
135
  * Toggles the hold call.
116
- * @returns {Promise<boolean>} A promise that resolves to `true` if when hold call success, `false` otherwise.
136
+ * @returns {Promise<void>} A promise that resolves when hold call is toggled.
117
137
  */
118
138
  export function toggleHold() {
119
139
  return OmikitPlugin.toggleHold();
@@ -269,7 +289,9 @@ export function hideSystemNotificationOnly() {
269
289
  return OmikitPlugin.hideSystemNotificationOnly();
270
290
  }
271
291
  export function hideSystemNotificationAndUnregister(reason) {
272
- return OmikitPlugin.hideSystemNotificationAndUnregister(reason);
292
+ return OmikitPlugin.hideSystemNotificationAndUnregister({
293
+ reason
294
+ });
273
295
  }
274
296
  export const OmiCallEvent = {
275
297
  onCallStateChanged: 'CALL_STATE_CHANGED',
@@ -323,7 +345,9 @@ export function checkAndRequestPermissions(isVideo = false) {
323
345
  if (Platform.OS !== 'android') {
324
346
  return Promise.resolve(true);
325
347
  }
326
- return OmikitPlugin.checkAndRequestPermissions(isVideo);
348
+ return OmikitPlugin.checkAndRequestPermissions({
349
+ isVideo
350
+ });
327
351
  }
328
352
 
329
353
  /**
@@ -347,6 +371,69 @@ export function requestPermissionsByCodes(codes) {
347
371
  if (Platform.OS !== 'android') {
348
372
  return Promise.resolve(true);
349
373
  }
350
- return OmikitPlugin.requestPermissionsByCodes(codes);
374
+ return OmikitPlugin.requestPermissionsByCodes({
375
+ codes
376
+ });
377
+ }
378
+
379
+ // MARK: - Getter Functions
380
+
381
+ /**
382
+ * Retrieves user info by phone number.
383
+ * @param {string} phone - The phone number to look up.
384
+ * @returns {Promise<any>} User info object or null.
385
+ */
386
+ export function getUserInfo(phone) {
387
+ return OmikitPlugin.getUserInfo({
388
+ phone
389
+ });
390
+ }
391
+
392
+ /**
393
+ * Retrieves the project ID from OmiClient.
394
+ * @returns {Promise<string | null>} The project ID or null.
395
+ */
396
+ export function getProjectId() {
397
+ return OmikitPlugin.getProjectId();
398
+ }
399
+
400
+ /**
401
+ * Retrieves SIP connection info (user@realm).
402
+ * @returns {Promise<string | null>} SIP info string or null.
403
+ */
404
+ export function getSipInfo() {
405
+ return OmikitPlugin.getSipInfo();
406
+ }
407
+
408
+ /**
409
+ * Retrieves the app ID from OmiClient.
410
+ * @returns {Promise<string | null>} The app ID or null.
411
+ */
412
+ export function getAppId() {
413
+ return OmikitPlugin.getAppId();
414
+ }
415
+
416
+ /**
417
+ * Retrieves the device ID from OmiClient.
418
+ * @returns {Promise<string | null>} The device ID or null.
419
+ */
420
+ export function getDeviceId() {
421
+ return OmikitPlugin.getDeviceId();
422
+ }
423
+
424
+ /**
425
+ * Retrieves the FCM token from OmiClient.
426
+ * @returns {Promise<string | null>} The FCM token or null.
427
+ */
428
+ export function getFcmToken() {
429
+ return OmikitPlugin.getFcmToken();
430
+ }
431
+
432
+ /**
433
+ * Retrieves the VoIP token (iOS only, Android returns null).
434
+ * @returns {Promise<string | null>} The VoIP token or null.
435
+ */
436
+ export function getVoipToken() {
437
+ return OmikitPlugin.getVoipToken();
351
438
  }
352
439
  //# 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","isTurboModuleEnabled","global","__turboModuleProxy","OmikitPlugin","turboModule","get","Proxy","Error","omiEmitter","OS","addListener","removeListeners","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.28",
3
+ "version": "4.0.1",
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
+ }
@@ -1,11 +1,20 @@
1
1
  import type { HostComponent } from 'react-native';
2
2
  import { NativeModules, requireNativeComponent, ViewProps } from 'react-native';
3
3
 
4
- const FLLocalCamera = NativeModules.FLLocalCameraView;
4
+ // Camera Views always use Paper (requireNativeComponent) because:
5
+ // - iOS native code doesn't have Fabric ComponentView implementation yet
6
+ // - Paper components work fine even when New Architecture is enabled
7
+ // - This avoids undefined symbol errors (_FLLocalCameraViewCls)
8
+ const OmiLocalCameraViewPaper: HostComponent<ViewProps> = requireNativeComponent(
9
+ 'FLLocalCameraView'
10
+ );
5
11
 
6
- export const OmiLocalCameraView: HostComponent<ViewProps> =
7
- requireNativeComponent('FLLocalCameraView');
12
+ // Export the Paper component
13
+ export const OmiLocalCameraView: HostComponent<ViewProps> = OmiLocalCameraViewPaper;
8
14
 
15
+ // Module name separated from ViewManager name to avoid name collision
16
+ const FLLocalCamera = NativeModules.FLLocalCameraModule || NativeModules.FLLocalCameraView;
9
17
  export function refreshLocalCamera(): Promise<boolean> {
18
+ if (!FLLocalCamera) return Promise.resolve(false);
10
19
  return FLLocalCamera.refresh();
11
20
  }