omikit-plugin 3.2.51 → 3.2.53
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/README.md +45 -2
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/omikitplugin/OmikitPluginModule.kt +105 -56
- package/android/src/main/java/com/omikitplugin/constants/constant.kt +2 -0
- package/ios/CallProcess/CallManager.swift +544 -537
- package/ios/Constant/Constant.swift +1 -0
- package/ios/Library/OmikitNotification.m +1 -7
- package/ios/Library/OmikitPlugin.m +79 -64
- package/ios/Library/OmikitPlugin.swift +273 -99
- package/ios/OmikitPlugin.xcodeproj/project.pbxproj +0 -22
- package/lib/commonjs/omi_call_state.js +1 -0
- package/lib/commonjs/omi_call_state.js.map +1 -1
- package/lib/commonjs/omikit.js +12 -1
- package/lib/commonjs/omikit.js.map +1 -1
- package/lib/module/omi_call_state.js +1 -0
- package/lib/module/omi_call_state.js.map +1 -1
- package/lib/module/omikit.js +11 -1
- package/lib/module/omikit.js.map +1 -1
- package/omikit-plugin.podspec +4 -1
- package/package.json +1 -1
- package/src/omi_call_state.tsx +2 -1
- package/src/omikit.tsx +11 -0
- package/src/types/index.d.ts +4 -0
- package/ios/OmikitPlugin.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/ios/OmikitPlugin.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/ios/OmikitPlugin.xcodeproj/project.xcworkspace/xcuserdata/qmacstore.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/OmikitPlugin.xcodeproj/xcuserdata/qmacstore.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
|
@@ -39,6 +39,7 @@ let GET_USER_INFO = "GET_USER_INFO"
|
|
|
39
39
|
let CALL_STATE_CHANGED = "CALL_STATE_CHANGED"
|
|
40
40
|
let SPEAKER = "SPEAKER"
|
|
41
41
|
let MUTED = "MUTED"
|
|
42
|
+
let HOLD = "HOLD"
|
|
42
43
|
let REMOTE_VIDEO_READY = "REMOTE_VIDEO_READY"
|
|
43
44
|
let CLICK_MISSED_CALL = "CLICK_MISSED_CALL"
|
|
44
45
|
let SWITCHBOARD_ANSWER = "SWITCHBOARD_ANSWER"
|
|
@@ -6,13 +6,7 @@
|
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
#import <Foundation/Foundation.h>
|
|
9
|
-
|
|
10
|
-
#if __has_include("omikit_plugin-Swift.h")
|
|
11
|
-
#import "omikit_plugin-Swift.h"
|
|
12
|
-
#else
|
|
13
|
-
#import <omikit_plugin/omikit_plugin-Swift.h>
|
|
14
|
-
#endif
|
|
15
|
-
|
|
9
|
+
#import <OmikitPlugin-Swift.h>
|
|
16
10
|
|
|
17
11
|
@implementation OmikitNotification : NSObject
|
|
18
12
|
+ (void)didRecieve:(NSDictionary*) userInfo{
|
|
@@ -2,107 +2,122 @@
|
|
|
2
2
|
|
|
3
3
|
@interface RCT_EXTERN_MODULE(OmikitPlugin, NSObject)
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
// Start services
|
|
6
|
+
RCT_EXTERN_METHOD(startServices:(RCTPromiseResolveBlock)resolve
|
|
7
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
8
8
|
|
|
9
|
+
// Configure push notification
|
|
9
10
|
RCT_EXTERN_METHOD(configPushNotification:(id)data
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
12
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
// Get initial call
|
|
15
|
+
RCT_EXTERN_METHOD(getInitialCall:(RCTPromiseResolveBlock)resolve
|
|
16
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
16
17
|
|
|
18
|
+
// Initialize call with user password
|
|
17
19
|
RCT_EXTERN_METHOD(initCallWithUserPassword:(id)data
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
21
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
20
22
|
|
|
23
|
+
// Initialize call with API key
|
|
21
24
|
RCT_EXTERN_METHOD(initCallWithApiKey:(id)data
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
26
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
25
27
|
|
|
28
|
+
// Start a call
|
|
26
29
|
RCT_EXTERN_METHOD(startCall:(id)data
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
31
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
29
32
|
|
|
33
|
+
// Start a call with UUID
|
|
30
34
|
RCT_EXTERN_METHOD(startCallWithUuid:(id)data
|
|
31
|
-
|
|
32
|
-
|
|
35
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
36
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
33
37
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
// Join a call
|
|
39
|
+
RCT_EXTERN_METHOD(joinCall:(RCTPromiseResolveBlock)resolve
|
|
40
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
37
41
|
|
|
42
|
+
// End a call
|
|
38
43
|
RCT_EXTERN_METHOD(endCall:(RCTPromiseResolveBlock)resolve
|
|
39
|
-
|
|
44
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
45
|
+
|
|
46
|
+
// Toggle mute
|
|
47
|
+
RCT_EXTERN_METHOD(toggleMute:(RCTPromiseResolveBlock)resolve
|
|
48
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
40
49
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
50
|
+
// Toggle speaker
|
|
51
|
+
RCT_EXTERN_METHOD(toggleSpeaker:(RCTPromiseResolveBlock)resolve
|
|
52
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
44
53
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
54
|
+
// Toggle hold
|
|
55
|
+
RCT_EXTERN_METHOD(toggleHold:(RCTPromiseResolveBlock)resolve
|
|
56
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
48
57
|
|
|
58
|
+
// Send DTMF
|
|
49
59
|
RCT_EXTERN_METHOD(sendDTMF:(id)data
|
|
50
|
-
|
|
51
|
-
|
|
60
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
61
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
52
62
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
63
|
+
// Switch camera
|
|
64
|
+
RCT_EXTERN_METHOD(switchOmiCamera:(RCTPromiseResolveBlock)resolve
|
|
65
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
56
66
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
67
|
+
// Toggle video
|
|
68
|
+
RCT_EXTERN_METHOD(toggleOmiVideo:(RCTPromiseResolveBlock)resolve
|
|
69
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
60
70
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
71
|
+
// Logout
|
|
72
|
+
RCT_EXTERN_METHOD(logout:(RCTPromiseResolveBlock)resolve
|
|
73
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
64
74
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
75
|
+
// Register video event
|
|
76
|
+
RCT_EXTERN_METHOD(registerVideoEvent:(RCTPromiseResolveBlock)resolve
|
|
77
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
68
78
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
79
|
+
// Remove video event
|
|
80
|
+
RCT_EXTERN_METHOD(removeVideoEvent:(RCTPromiseResolveBlock)resolve
|
|
81
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
72
82
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
83
|
+
// Get current user
|
|
84
|
+
RCT_EXTERN_METHOD(getCurrentUser:(RCTPromiseResolveBlock)resolve
|
|
85
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
76
86
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
87
|
+
// Get guest user
|
|
88
|
+
RCT_EXTERN_METHOD(getGuestUser:(RCTPromiseResolveBlock)resolve
|
|
89
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
80
90
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
91
|
+
// Get user info
|
|
92
|
+
RCT_EXTERN_METHOD(getUserInfo:(id)data
|
|
93
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
94
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
84
95
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
96
|
+
// Get audio
|
|
97
|
+
RCT_EXTERN_METHOD(getAudio:(RCTPromiseResolveBlock)resolve
|
|
98
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
88
99
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
100
|
+
// Set audio
|
|
101
|
+
RCT_EXTERN_METHOD(setAudio:(id)data
|
|
102
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
103
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
92
104
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
105
|
+
// Get current audio
|
|
106
|
+
RCT_EXTERN_METHOD(getCurrentAudio:(RCTPromiseResolveBlock)resolve
|
|
107
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
96
108
|
|
|
109
|
+
// Transfer call
|
|
97
110
|
RCT_EXTERN_METHOD(transferCall:(id)data
|
|
98
|
-
|
|
99
|
-
|
|
111
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
112
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
100
113
|
|
|
114
|
+
// Required to run on the main thread
|
|
101
115
|
+ (BOOL)requiresMainQueueSetup
|
|
102
116
|
{
|
|
103
117
|
return YES;
|
|
104
118
|
}
|
|
105
119
|
|
|
120
|
+
// Queue to run methods
|
|
106
121
|
- (dispatch_queue_t)methodQueue {
|
|
107
122
|
return dispatch_get_main_queue();
|
|
108
123
|
}
|
|
@@ -1,116 +1,290 @@
|
|
|
1
|
+
import Foundation
|
|
2
|
+
import React
|
|
3
|
+
import OmiKit
|
|
4
|
+
|
|
1
5
|
@objc(OmikitPlugin)
|
|
2
6
|
public class OmikitPlugin: RCTEventEmitter {
|
|
7
|
+
|
|
8
|
+
@objc public static var instance : OmikitPlugin!
|
|
9
|
+
|
|
10
|
+
public override init() {
|
|
11
|
+
super.init()
|
|
12
|
+
OmikitPlugin.instance = self
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
// MARK: - Service Methods
|
|
17
|
+
@objc(startServices:rejecter:)
|
|
18
|
+
func startServices(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
|
|
19
|
+
CallManager.shareInstance().registerNotificationCenter(showMissedCall: true)
|
|
20
|
+
resolve(true)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@objc(configPushNotification:resolver:rejecter:)
|
|
24
|
+
func configPushNotification(data: Any, resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
|
|
25
|
+
guard let dataOmi = data as? [String: Any] else {
|
|
26
|
+
reject("INVALID_DATA", "Expected a dictionary with push notification data.", nil)
|
|
27
|
+
return
|
|
28
|
+
}
|
|
29
|
+
CallManager.shareInstance().configNotification(data: dataOmi)
|
|
30
|
+
resolve(true)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@objc(getInitialCall:rejecter:)
|
|
35
|
+
func getInitialCall(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
|
|
36
|
+
if let call = CallManager.shareInstance().getAvailableCall() {
|
|
37
|
+
let data: [String: Any] = [
|
|
38
|
+
"callerNumber": call.callerNumber,
|
|
39
|
+
"status": call.lastStatus,
|
|
40
|
+
"muted": call.muted,
|
|
41
|
+
"isVideo": call.isVideo
|
|
42
|
+
]
|
|
43
|
+
resolve(data)
|
|
44
|
+
} else {
|
|
45
|
+
resolve(nil)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// MARK: - Call Methods
|
|
50
|
+
@objc(initCallWithUserPassword:resolver:rejecter:)
|
|
51
|
+
func initCallWithUserPassword(data: Any, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
52
|
+
guard let dataOmi = data as? [String: Any] else {
|
|
53
|
+
reject("INVALID_DATA", "Expected a dictionary with user credentials.", nil)
|
|
54
|
+
return
|
|
55
|
+
}
|
|
56
|
+
let result = CallManager.shareInstance().initWithUserPasswordEndpoint(params: dataOmi)
|
|
57
|
+
resolve(result)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
@objc(initCallWithApiKey:resolver:rejecter:)
|
|
62
|
+
func initCallWithApiKey(data: Any, resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
|
|
63
|
+
guard let dataOmi = data as? [String: Any] else {
|
|
64
|
+
reject("INVALID_DATA", "Expected a dictionary with API key.", nil)
|
|
65
|
+
return
|
|
66
|
+
}
|
|
67
|
+
let result = CallManager.shareInstance().initWithApiKeyEndpoint(params: dataOmi)
|
|
68
|
+
resolve(result)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
@objc(startCall:resolver:rejecter:)
|
|
73
|
+
func startCall(data: Any, resolve: @escaping RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
|
|
74
|
+
guard let dataOmi = data as? [String: Any],
|
|
75
|
+
let phoneNumber = dataOmi["phoneNumber"] as? String else {
|
|
76
|
+
reject("INVALID_DATA", "Expected a dictionary with phone number.", nil)
|
|
77
|
+
return
|
|
78
|
+
}
|
|
3
79
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
super.init()
|
|
8
|
-
OmikitPlugin.instance = self
|
|
80
|
+
let isVideo = dataOmi["isVideo"] as? Bool ?? false
|
|
81
|
+
CallManager.shareInstance().startCall(phoneNumber, isVideo: isVideo) { callResult in
|
|
82
|
+
resolve(callResult)
|
|
9
83
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@objc(startCallWithUuid:resolver:rejecter:)
|
|
87
|
+
func startCallWithUuid(data: Any, resolve: @escaping RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) -> Void {
|
|
88
|
+
if let dataOmi = data as? [String: Any] {
|
|
89
|
+
let uuid = dataOmi["usrUuid"] as! String
|
|
90
|
+
var isVideo = false
|
|
91
|
+
if let isVideoCall = dataOmi["isVideo"] as? Bool {
|
|
92
|
+
isVideo = isVideoCall
|
|
93
|
+
}
|
|
94
|
+
CallManager.shareInstance().startCallWithUuid(uuid, isVideo: isVideo) { callResult in
|
|
95
|
+
resolve(callResult)
|
|
96
|
+
}
|
|
17
97
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
@objc(joinCall:rejecter:)
|
|
101
|
+
func joinCall(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) -> Void {
|
|
102
|
+
CallManager.shareInstance().joinCall()
|
|
103
|
+
resolve(true)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@objc(endCall:rejecter:)
|
|
107
|
+
func endCall(resolve:RCTPromiseResolveBlock, reject:RCTPromiseRejectBlock) -> Void {
|
|
108
|
+
CallManager.shareInstance().endCall()
|
|
109
|
+
resolve(true)
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
@objc(toggleMute:rejecter:)
|
|
113
|
+
func toggleMute(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) -> Void {
|
|
114
|
+
CallManager.shareInstance().toggleMute()
|
|
115
|
+
if let call = CallManager.shareInstance().getAvailableCall() {
|
|
116
|
+
resolve(call.muted)
|
|
21
117
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
118
|
+
sendMuteStatus()
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@objc(toggleSpeaker:rejecter:)
|
|
122
|
+
func toggleSpeaker(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) -> Void {
|
|
123
|
+
CallManager.shareInstance().toogleSpeaker()
|
|
124
|
+
resolve(CallManager.shareInstance().isSpeaker)
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
@objc(toggleHold:rejecter:)
|
|
129
|
+
func toggleHold(resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
|
|
130
|
+
let result = CallManager.shareInstance().toggleHold()
|
|
131
|
+
if let call = CallManager.shareInstance().getAvailableCall() {
|
|
132
|
+
resolve(call.onHold)
|
|
28
133
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
resolve(result)
|
|
134
|
+
sendHoldStatus()
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
@objc(sendDTMF:resolver:rejecter:)
|
|
138
|
+
func sendDTMF(data: Any, resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) -> Void {
|
|
139
|
+
guard let dataOmi = data as? [String: Any],
|
|
140
|
+
let character = dataOmi["character"] as? String else {
|
|
141
|
+
reject("INVALID_DATA", "Expected a dictionary with a 'character' key.", nil)
|
|
142
|
+
return
|
|
39
143
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
144
|
+
|
|
145
|
+
CallManager.shareInstance().sendDTMF(character: character)
|
|
146
|
+
resolve(true)
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
@objc(switchOmiCamera:rejecter:)
|
|
151
|
+
func switchOmiCamera(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) -> Void {
|
|
152
|
+
CallManager.shareInstance().switchCamera()
|
|
153
|
+
resolve(true)
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
@objc(toggleOmiVideo:rejecter:)
|
|
157
|
+
func toggleOmiVideo(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) -> Void {
|
|
158
|
+
CallManager.shareInstance().toggleCamera()
|
|
159
|
+
resolve(true)
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
@objc(logout:rejecter:)
|
|
164
|
+
func logout(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) -> Void {
|
|
165
|
+
CallManager.shareInstance().logout()
|
|
166
|
+
resolve(true)
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
@objc(registerVideoEvent:rejecter:)
|
|
171
|
+
func registerVideoEvent(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) -> Void {
|
|
172
|
+
CallManager.shareInstance().registerVideoEvent()
|
|
173
|
+
resolve(true)
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
@objc(removeVideoEvent:rejecter:)
|
|
177
|
+
func removeVideoEvent(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) -> Void {
|
|
178
|
+
CallManager.shareInstance().removeVideoEvent()
|
|
179
|
+
resolve(true)
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
@objc(getCurrentUser:rejecter:)
|
|
183
|
+
func getCurrentUser(resolve: @escaping RCTPromiseResolveBlock, reject:RCTPromiseRejectBlock) -> Void {
|
|
184
|
+
CallManager.shareInstance().getCurrentUser { user in
|
|
185
|
+
resolve(user)
|
|
50
186
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
CallManager.shareInstance().configNotification(data: dataOmi)
|
|
60
|
-
resolve(true)
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
@objc(getGuestUser:rejecter:)
|
|
190
|
+
func getGuestUser(resolve: @escaping RCTPromiseResolveBlock, reject:RCTPromiseRejectBlock) -> Void {
|
|
191
|
+
CallManager.shareInstance().getGuestUser { user in
|
|
192
|
+
resolve(user)
|
|
61
193
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
CallManager.shareInstance().startCall(phoneNumber, isVideo: isVideo) { callResult in
|
|
73
|
-
resolve(callResult)
|
|
74
|
-
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
@objc(getUserInfor:resolver:rejecter:)
|
|
197
|
+
func getUserInfor(data: Any, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
|
|
198
|
+
guard let phone = data as? String else {
|
|
199
|
+
reject("INVALID_DATA", "Expected a phone number as a string.", nil)
|
|
200
|
+
return
|
|
75
201
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
return
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
CallManager.shareInstance().startCallWithUuid(uuid, isVideo: isVideo) { callResult in
|
|
87
|
-
resolve(callResult)
|
|
88
|
-
}
|
|
202
|
+
|
|
203
|
+
CallManager.shareInstance().getUserInfo(phone: phone) { userInfo in
|
|
204
|
+
if userInfo.isEmpty {
|
|
205
|
+
reject("USER_NOT_FOUND", "User not found for phone number: \(phone)", nil)
|
|
206
|
+
} else {
|
|
207
|
+
resolve(userInfo)
|
|
208
|
+
}
|
|
89
209
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// MARK: - Audio Methods
|
|
213
|
+
@objc(getAudio:rejecter:)
|
|
214
|
+
func getAudio(resolve: @escaping RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
|
|
215
|
+
let audios = CallManager.shareInstance().getAudioOutputs()
|
|
216
|
+
resolve(audios)
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
@objc(setAudio:resolver:rejecter:)
|
|
220
|
+
func setAudio(data: Any, resolve: @escaping RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
|
|
221
|
+
guard let dataOmi = data as? [String: Any],
|
|
222
|
+
let portType = dataOmi["portType"] as? String else {
|
|
223
|
+
reject("INVALID_DATA", "Expected a dictionary with port type.", nil)
|
|
224
|
+
return
|
|
103
225
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
226
|
+
|
|
227
|
+
CallManager.shareInstance().setAudioOutputs(portType: portType)
|
|
228
|
+
resolve(true)
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
@objc(getCurrentAudio:rejecter:)
|
|
233
|
+
func getCurrentAudio(resolve: @escaping RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
|
|
234
|
+
let currentAudio = CallManager.shareInstance().getCurrentAudio()
|
|
235
|
+
resolve(currentAudio)
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
func sendMuteStatus() {
|
|
239
|
+
if let call = CallManager.shareInstance().getAvailableCall() {
|
|
240
|
+
sendEvent(withName: MUTED, body: call.muted)
|
|
110
241
|
}
|
|
242
|
+
}
|
|
111
243
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
244
|
+
func sendHoldStatus() {
|
|
245
|
+
if let call = CallManager.shareInstance().getAvailableCall() {
|
|
246
|
+
sendEvent(withName: HOLD, body: call.onHold)
|
|
115
247
|
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
func sendSpeakerStatus() {
|
|
251
|
+
sendEvent(withName: SPEAKER, body: CallManager.shareInstance().isSpeaker)
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
@objc public func didReceive(data: [String: Any]) {
|
|
255
|
+
if let callerNumber = data["omisdkCallerNumber"] as? String, let isVideo = data["omisdkIsVideo"] as? Bool {
|
|
256
|
+
sendEvent(withName: CLICK_MISSED_CALL, body: [
|
|
257
|
+
"callerNumber": callerNumber,
|
|
258
|
+
"isVideo": isVideo,
|
|
259
|
+
])
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
@objc(transferCall:resolver:rejecter:)
|
|
265
|
+
func transferCall(data: Any, resolve: @escaping RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
|
|
266
|
+
guard let dataOmi = data as? [String: Any],
|
|
267
|
+
let phoneNumber = dataOmi["phoneNumber"] as? String else {
|
|
268
|
+
reject("INVALID_DATA", "Expected a dictionary with phone number.", nil)
|
|
269
|
+
return
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
CallManager.shareInstance().transferCall(phoneNumber)
|
|
273
|
+
resolve(true)
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
public override func supportedEvents() -> [String]! {
|
|
278
|
+
return [
|
|
279
|
+
CALL_STATE_CHANGED,
|
|
280
|
+
MUTED,
|
|
281
|
+
HOLD,
|
|
282
|
+
SPEAKER,
|
|
283
|
+
REMOTE_VIDEO_READY,
|
|
284
|
+
CLICK_MISSED_CALL,
|
|
285
|
+
SWITCHBOARD_ANSWER,
|
|
286
|
+
CALL_QUALITY,
|
|
287
|
+
AUDIO_CHANGE,
|
|
288
|
+
]
|
|
289
|
+
}
|
|
116
290
|
}
|
|
@@ -7,9 +7,6 @@
|
|
|
7
7
|
objects = {
|
|
8
8
|
|
|
9
9
|
/* Begin PBXBuildFile section */
|
|
10
|
-
9893BD1F2D2B961D00B84BE1 /* OmikitNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 9893BD1B2D2B961D00B84BE1 /* OmikitNotification.m */; };
|
|
11
|
-
9893BD202D2B961D00B84BE1 /* OmikitPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 9893BD1C2D2B961D00B84BE1 /* OmikitPlugin.m */; };
|
|
12
|
-
9893BD212D2B961D00B84BE1 /* OmikitPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9893BD1D2D2B961D00B84BE1 /* OmikitPlugin.swift */; };
|
|
13
10
|
C861229629A6239000F012BB /* OmikitPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = C861229529A6239000F012BB /* OmikitPlugin.swift */; };
|
|
14
11
|
F4FF95D7245B92E800C19C63 /* OmikitPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF95D6245B92E800C19C63 /* OmikitPlugin.swift */; };
|
|
15
12
|
/* End PBXBuildFile section */
|
|
@@ -28,10 +25,6 @@
|
|
|
28
25
|
|
|
29
26
|
/* Begin PBXFileReference section */
|
|
30
27
|
134814201AA4EA6300B7C361 /* libOmikitPlugin.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libOmikitPlugin.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
31
|
-
9893BD1A2D2B961D00B84BE1 /* OmikitNotification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OmikitNotification.h; sourceTree = "<group>"; };
|
|
32
|
-
9893BD1B2D2B961D00B84BE1 /* OmikitNotification.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OmikitNotification.m; sourceTree = "<group>"; };
|
|
33
|
-
9893BD1C2D2B961D00B84BE1 /* OmikitPlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OmikitPlugin.m; sourceTree = "<group>"; };
|
|
34
|
-
9893BD1D2D2B961D00B84BE1 /* OmikitPlugin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OmikitPlugin.swift; sourceTree = "<group>"; };
|
|
35
28
|
B3E7B5891CC2AC0600A0062D /* OmikitPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OmikitPlugin.m; sourceTree = "<group>"; };
|
|
36
29
|
C861229529A6239000F012BB /* OmikitPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OmikitPlugin.swift; sourceTree = "<group>"; };
|
|
37
30
|
C8FBCFCE29A5F49600AA4A22 /* CallManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallManager.swift; sourceTree = "<group>"; };
|
|
@@ -66,7 +59,6 @@
|
|
|
66
59
|
58B511D21A9E6C8500147676 = {
|
|
67
60
|
isa = PBXGroup;
|
|
68
61
|
children = (
|
|
69
|
-
9893BD1E2D2B961D00B84BE1 /* Library */,
|
|
70
62
|
C861229529A6239000F012BB /* OmikitPlugin.swift */,
|
|
71
63
|
C8FBCFCD29A5F49600AA4A22 /* CallProcess */,
|
|
72
64
|
C8FBCFD429A5F49600AA4A22 /* Constant */,
|
|
@@ -78,17 +70,6 @@
|
|
|
78
70
|
);
|
|
79
71
|
sourceTree = "<group>";
|
|
80
72
|
};
|
|
81
|
-
9893BD1E2D2B961D00B84BE1 /* Library */ = {
|
|
82
|
-
isa = PBXGroup;
|
|
83
|
-
children = (
|
|
84
|
-
9893BD1A2D2B961D00B84BE1 /* OmikitNotification.h */,
|
|
85
|
-
9893BD1B2D2B961D00B84BE1 /* OmikitNotification.m */,
|
|
86
|
-
9893BD1C2D2B961D00B84BE1 /* OmikitPlugin.m */,
|
|
87
|
-
9893BD1D2D2B961D00B84BE1 /* OmikitPlugin.swift */,
|
|
88
|
-
);
|
|
89
|
-
path = Library;
|
|
90
|
-
sourceTree = "<group>";
|
|
91
|
-
};
|
|
92
73
|
C8FBCFCD29A5F49600AA4A22 /* CallProcess */ = {
|
|
93
74
|
isa = PBXGroup;
|
|
94
75
|
children = (
|
|
@@ -175,9 +156,6 @@
|
|
|
175
156
|
files = (
|
|
176
157
|
F4FF95D7245B92E800C19C63 /* OmikitPlugin.swift in Sources */,
|
|
177
158
|
C861229629A6239000F012BB /* OmikitPlugin.swift in Sources */,
|
|
178
|
-
9893BD1F2D2B961D00B84BE1 /* OmikitNotification.m in Sources */,
|
|
179
|
-
9893BD202D2B961D00B84BE1 /* OmikitPlugin.m in Sources */,
|
|
180
|
-
9893BD212D2B961D00B84BE1 /* OmikitPlugin.swift in Sources */,
|
|
181
159
|
);
|
|
182
160
|
runOnlyForDeploymentPostprocessing = 0;
|
|
183
161
|
};
|
|
@@ -14,5 +14,6 @@ exports.OmiCallState = OmiCallState;
|
|
|
14
14
|
OmiCallState[OmiCallState["connecting"] = 4] = "connecting";
|
|
15
15
|
OmiCallState[OmiCallState["confirmed"] = 5] = "confirmed";
|
|
16
16
|
OmiCallState[OmiCallState["disconnected"] = 6] = "disconnected";
|
|
17
|
+
OmiCallState[OmiCallState["hold"] = 7] = "hold";
|
|
17
18
|
})(OmiCallState || (exports.OmiCallState = OmiCallState = {}));
|
|
18
19
|
//# sourceMappingURL=omi_call_state.js.map
|