omikit-plugin 3.2.50 → 3.2.52
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 +29 -2
- package/android/build.gradle +1 -1
- package/android/gradle.properties +2 -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 +258 -202
- 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 +10 -0
- 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 +9 -0
- package/lib/module/omikit.js.map +1 -1
- package/omikit-plugin.podspec +8 -1
- package/package.json +1 -1
- package/src/omi_call_state.tsx +2 -1
- package/src/omikit.tsx +10 -0
- package/src/types/index.d.ts +3 -0
|
@@ -4,231 +4,287 @@ import OmiKit
|
|
|
4
4
|
|
|
5
5
|
@objc(OmikitPlugin)
|
|
6
6
|
public class OmikitPlugin: RCTEventEmitter {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
|
13
28
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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)
|
|
19
46
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
|
27
55
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
resolve(data)
|
|
39
|
-
return
|
|
40
|
-
}
|
|
41
|
-
resolve(nil)
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
@objc(initCallWithUserPassword:withResolver:withRejecter:)
|
|
45
|
-
func initCallWithUserPassword(data: Any, resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) -> Void {
|
|
46
|
-
if let dataOmi = data as? [String: Any] {
|
|
47
|
-
let result = CallManager.shareInstance().initWithUserPasswordEndpoint(params: dataOmi)
|
|
48
|
-
resolve(result)
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
@objc(initCallWithApiKey:withResolver:withRejecter:)
|
|
53
|
-
func initCallWithApiKey(data: Any, resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) -> Void {
|
|
54
|
-
if let dataOmi = data as? [String: Any] {
|
|
55
|
-
let result = CallManager.shareInstance().initWithApiKeyEndpoint(params: dataOmi)
|
|
56
|
-
resolve(result)
|
|
57
|
-
}
|
|
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
|
|
58
66
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
resolve(callResult)
|
|
71
|
-
}
|
|
72
|
-
}
|
|
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
|
|
73
78
|
}
|
|
74
79
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
let uuid = dataOmi["usrUuid"] as! String
|
|
79
|
-
var isVideo = false
|
|
80
|
-
if let isVideoCall = dataOmi["isVideo"] as? Bool {
|
|
81
|
-
isVideo = isVideoCall
|
|
82
|
-
}
|
|
83
|
-
CallManager.shareInstance().startCallWithUuid(uuid, isVideo: isVideo) { callResult in
|
|
84
|
-
resolve(callResult)
|
|
85
|
-
}
|
|
86
|
-
}
|
|
80
|
+
let isVideo = dataOmi["isVideo"] as? Bool ?? false
|
|
81
|
+
CallManager.shareInstance().startCall(phoneNumber, isVideo: isVideo) { callResult in
|
|
82
|
+
resolve(callResult)
|
|
87
83
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
+
}
|
|
93
97
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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)
|
|
99
117
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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)
|
|
108
133
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
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
|
|
114
143
|
}
|
|
115
144
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
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)
|
|
122
186
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
@objc(getGuestUser:rejecter:)
|
|
190
|
+
func getGuestUser(resolve: @escaping RCTPromiseResolveBlock, reject:RCTPromiseRejectBlock) -> Void {
|
|
191
|
+
CallManager.shareInstance().getGuestUser { user in
|
|
192
|
+
resolve(user)
|
|
128
193
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
|
134
201
|
}
|
|
135
202
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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
|
+
}
|
|
140
209
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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
|
|
146
225
|
}
|
|
147
226
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
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)
|
|
159
241
|
}
|
|
242
|
+
}
|
|
160
243
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
resolve(user)
|
|
165
|
-
}
|
|
244
|
+
func sendHoldStatus() {
|
|
245
|
+
if let call = CallManager.shareInstance().getAvailableCall() {
|
|
246
|
+
sendEvent(withName: HOLD, body: call.onHold)
|
|
166
247
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
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
|
+
])
|
|
173
260
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
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
|
|
179
270
|
}
|
|
180
271
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
func sendSpeakerStatus() {
|
|
202
|
-
sendEvent(withName: SPEAKER, body: CallManager.shareInstance().isSpeaker)
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
@objc public func didReceive(data: [String: Any]) {
|
|
206
|
-
if let callerNumber = data["omisdkCallerNumber"] as? String, let isVideo = data["omisdkIsVideo"] as? Bool {
|
|
207
|
-
sendEvent(withName: CLICK_MISSED_CALL, body: [
|
|
208
|
-
"callerNumber": callerNumber,
|
|
209
|
-
"isVideo": isVideo,
|
|
210
|
-
])
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
@objc(transferCall:withResolver:withRejecter:)
|
|
215
|
-
func transferCall(data: Any, resolve: @escaping RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) -> Void {
|
|
216
|
-
if let dataOmi = data as? [String: Any] {
|
|
217
|
-
let phoneNumber = dataOmi["phoneNumber"] as! String
|
|
218
|
-
CallManager.shareInstance().transferCall(phoneNumber)
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
public override func supportedEvents() -> [String]! {
|
|
223
|
-
return [
|
|
224
|
-
CALL_STATE_CHANGED,
|
|
225
|
-
MUTED,
|
|
226
|
-
SPEAKER,
|
|
227
|
-
REMOTE_VIDEO_READY,
|
|
228
|
-
CLICK_MISSED_CALL,
|
|
229
|
-
SWITCHBOARD_ANSWER,
|
|
230
|
-
CALL_QUALITY,
|
|
231
|
-
AUDIO_CHANGE,
|
|
232
|
-
]
|
|
233
|
-
}
|
|
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
|
+
}
|
|
234
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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OmiCallState","exports"],"sourceRoot":"../../src","sources":["omi_call_state.tsx"],"mappings":";;;;;;IAAYA,YAAY;AAAAC,OAAA,CAAAD,YAAA,GAAAA,YAAA;AAAA,WAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;AAAA,GAAZA,YAAY,KAAAC,OAAA,CAAAD,YAAA,GAAZA,YAAY"}
|
|
1
|
+
{"version":3,"names":["OmiCallState","exports"],"sourceRoot":"../../src","sources":["omi_call_state.tsx"],"mappings":";;;;;;IAAYA,YAAY;AAAAC,OAAA,CAAAD,YAAA,GAAAA,YAAA;AAAA,WAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;AAAA,GAAZA,YAAY,KAAAC,OAAA,CAAAD,YAAA,GAAZA,YAAY"}
|
package/lib/commonjs/omikit.js
CHANGED
|
@@ -27,6 +27,7 @@ exports.startCallWithUuid = startCallWithUuid;
|
|
|
27
27
|
exports.startServices = startServices;
|
|
28
28
|
exports.switchOmiCamera = switchOmiCamera;
|
|
29
29
|
exports.systemAlertWindow = systemAlertWindow;
|
|
30
|
+
exports.toggleHold = toggleHold;
|
|
30
31
|
exports.toggleMute = toggleMute;
|
|
31
32
|
exports.toggleOmiVideo = toggleOmiVideo;
|
|
32
33
|
exports.toggleSpeaker = toggleSpeaker;
|
|
@@ -139,6 +140,14 @@ function toggleSpeaker() {
|
|
|
139
140
|
return OmikitPlugin.toggleSpeaker();
|
|
140
141
|
}
|
|
141
142
|
|
|
143
|
+
/**
|
|
144
|
+
* Toggles the hold call.
|
|
145
|
+
* @returns {Promise<boolean>} A promise that resolves to `true` if when hold call success, `false` otherwise.
|
|
146
|
+
*/
|
|
147
|
+
function toggleHold() {
|
|
148
|
+
return OmikitPlugin.toggleHold();
|
|
149
|
+
}
|
|
150
|
+
|
|
142
151
|
/**
|
|
143
152
|
* Places the call on hold or resumes it.
|
|
144
153
|
* @param {any} data - Data related to the hold action.
|
|
@@ -268,6 +277,7 @@ const OmiCallEvent = {
|
|
|
268
277
|
onCallStateChanged: 'CALL_STATE_CHANGED',
|
|
269
278
|
onSpeaker: 'SPEAKER',
|
|
270
279
|
onMuted: 'MUTED',
|
|
280
|
+
onHold: "HOLD",
|
|
271
281
|
onRemoteVideoReady: 'REMOTE_VIDEO_READY',
|
|
272
282
|
onClickMissedCall: 'CLICK_MISSED_CALL',
|
|
273
283
|
onSwitchboardAnswer: 'SWITCHBOARD_ANSWER',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","OmikitPlugin","NativeModules","Proxy","get","Error","startServices","configPushNotification","data","getInitialCall","OS","initCallWithUserPassword","initCallWithApiKey","startCall","startCallWithUuid","joinCall","endCall","toggleMute","toggleSpeaker","onHold","sendDTMF","switchOmiCamera","toggleOmiVideo","logout","registerVideoEvent","removeVideoEvent","getCurrentUser","getGuestUser","systemAlertWindow","openSystemAlertSetting","getAudio","setAudio","getCurrentAudio","transferCall","omiEmitter","NativeEventEmitter","exports","OmiCallEvent","onCallStateChanged","onSpeaker","onMuted","onRemoteVideoReady","onClickMissedCall","onSwitchboardAnswer","onCallQuality","onAudioChange"],"sourceRoot":"../../src","sources":["omikit.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","OmikitPlugin","NativeModules","Proxy","get","Error","startServices","configPushNotification","data","getInitialCall","OS","initCallWithUserPassword","initCallWithApiKey","startCall","startCallWithUuid","joinCall","endCall","toggleMute","toggleSpeaker","toggleHold","onHold","sendDTMF","switchOmiCamera","toggleOmiVideo","logout","registerVideoEvent","removeVideoEvent","getCurrentUser","getGuestUser","systemAlertWindow","openSystemAlertSetting","getAudio","setAudio","getCurrentAudio","transferCall","omiEmitter","NativeEventEmitter","exports","OmiCallEvent","onCallStateChanged","onSpeaker","onMuted","onRemoteVideoReady","onClickMissedCall","onSwitchboardAnswer","onCallQuality","onAudioChange"],"sourceRoot":"../../src","sources":["omikit.tsx"],"mappings":"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"}
|
|
@@ -7,5 +7,6 @@ export let OmiCallState;
|
|
|
7
7
|
OmiCallState[OmiCallState["connecting"] = 4] = "connecting";
|
|
8
8
|
OmiCallState[OmiCallState["confirmed"] = 5] = "confirmed";
|
|
9
9
|
OmiCallState[OmiCallState["disconnected"] = 6] = "disconnected";
|
|
10
|
+
OmiCallState[OmiCallState["hold"] = 7] = "hold";
|
|
10
11
|
})(OmiCallState || (OmiCallState = {}));
|
|
11
12
|
//# sourceMappingURL=omi_call_state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OmiCallState"],"sourceRoot":"../../src","sources":["omi_call_state.tsx"],"mappings":"AAAA,WAAYA,YAAY;
|
|
1
|
+
{"version":3,"names":["OmiCallState"],"sourceRoot":"../../src","sources":["omi_call_state.tsx"],"mappings":"AAAA,WAAYA,YAAY;AASvB,WATWA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;AAAA,GAAZA,YAAY,KAAZA,YAAY"}
|
package/lib/module/omikit.js
CHANGED
|
@@ -106,6 +106,14 @@ export function toggleSpeaker() {
|
|
|
106
106
|
return OmikitPlugin.toggleSpeaker();
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
+
/**
|
|
110
|
+
* Toggles the hold call.
|
|
111
|
+
* @returns {Promise<boolean>} A promise that resolves to `true` if when hold call success, `false` otherwise.
|
|
112
|
+
*/
|
|
113
|
+
export function toggleHold() {
|
|
114
|
+
return OmikitPlugin.toggleHold();
|
|
115
|
+
}
|
|
116
|
+
|
|
109
117
|
/**
|
|
110
118
|
* Places the call on hold or resumes it.
|
|
111
119
|
* @param {any} data - Data related to the hold action.
|
|
@@ -234,6 +242,7 @@ export const OmiCallEvent = {
|
|
|
234
242
|
onCallStateChanged: 'CALL_STATE_CHANGED',
|
|
235
243
|
onSpeaker: 'SPEAKER',
|
|
236
244
|
onMuted: 'MUTED',
|
|
245
|
+
onHold: "HOLD",
|
|
237
246
|
onRemoteVideoReady: 'REMOTE_VIDEO_READY',
|
|
238
247
|
onClickMissedCall: 'CLICK_MISSED_CALL',
|
|
239
248
|
onSwitchboardAnswer: 'SWITCHBOARD_ANSWER',
|