omikit-plugin 3.1.5 → 3.1.7
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
CHANGED
|
@@ -361,7 +361,7 @@ We support 2 environments. So you need set correct key in Appdelegate.
|
|
|
361
361
|
- Create OmiKit: OmiKit need userName, password, realm, host to init enviroment. ViHAT Group will provide informations for you. Please contact for my sale:
|
|
362
362
|
|
|
363
363
|
```
|
|
364
|
-
import {
|
|
364
|
+
import { initCallWithUserPassword } from 'omikit-plugin';
|
|
365
365
|
|
|
366
366
|
const loginInfo = {
|
|
367
367
|
userName: userName, //string
|
|
@@ -369,9 +369,9 @@ We support 2 environments. So you need set correct key in Appdelegate.
|
|
|
369
369
|
realm: realm, //string
|
|
370
370
|
isVideo: isVideo, //boolean: true/false
|
|
371
371
|
host: host, //string
|
|
372
|
-
|
|
372
|
+
fcmToken: fcmToken, //string
|
|
373
373
|
};
|
|
374
|
-
const result = await
|
|
374
|
+
const result = await initCallWithUserPassword(loginInfo);
|
|
375
375
|
//result is true then user login successfully.
|
|
376
376
|
```
|
|
377
377
|
|
package/android/build.gradle
CHANGED
|
@@ -104,7 +104,7 @@ dependencies {
|
|
|
104
104
|
// For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
|
|
105
105
|
//noinspection GradleDynamicVersion
|
|
106
106
|
// implementation "com.facebook.react:react-native"
|
|
107
|
-
api 'vn.vihat.omicall:omi-sdk:2.0.
|
|
107
|
+
api 'vn.vihat.omicall:omi-sdk:2.0.43'
|
|
108
108
|
|
|
109
109
|
implementation "com.facebook.react:react-native:+" // From node_modules
|
|
110
110
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
@@ -172,6 +172,11 @@ class OmikitPluginModule(reactContext: ReactApplicationContext?) :
|
|
|
172
172
|
sendEvent(SWITCHBOARD_ANSWER, map)
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
+
override fun onSlowRegister(){
|
|
176
|
+
Log.d("Kds", "MainActivity -> callListener -> onSlowRegister")
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
|
|
175
180
|
override fun onVideoSize(width: Int, height: Int) {
|
|
176
181
|
|
|
177
182
|
}
|
|
@@ -184,7 +189,7 @@ class OmikitPluginModule(reactContext: ReactApplicationContext?) :
|
|
|
184
189
|
|
|
185
190
|
private fun messageCall(type: Int): String {
|
|
186
191
|
return when (type) {
|
|
187
|
-
//
|
|
192
|
+
// 0 -> "INVALID_UUID"
|
|
188
193
|
// 1 -> "INVALID_PHONE_NUMBER"
|
|
189
194
|
// 2 -> "SAME_PHONE_NUMBER_WITH_PHONE_REGISTER"
|
|
190
195
|
// 3 -> "MAX_RETRY"
|
|
@@ -196,14 +201,14 @@ class OmikitPluginModule(reactContext: ReactApplicationContext?) :
|
|
|
196
201
|
// 8 -> "START_CALL_SUCCESS"
|
|
197
202
|
// 9 -> "HAVE_ANOTHER_CALL"
|
|
198
203
|
200 -> "START_CALL_SUCCESS"
|
|
199
|
-
400 -> "
|
|
204
|
+
400 -> "ALREADY_IN_CALL"
|
|
200
205
|
401 -> "INVALID_UUID"
|
|
201
206
|
402 -> "INVALID_PHONE_NUMBER"
|
|
202
207
|
403 -> "CAN_NOT_CALL_YOURSELF"
|
|
203
208
|
404 -> "SWITCHBOARD_NOT_CONNECTED"
|
|
204
209
|
405 -> "PERMISSION_DENIED"
|
|
205
210
|
406 -> "PERMISSION_DENIED"
|
|
206
|
-
407 -> "
|
|
211
|
+
407 -> "SWITCHBOARD_REGISTERING"
|
|
207
212
|
else -> "HAVE_ANOTHER_CALL"
|
|
208
213
|
}
|
|
209
214
|
}
|
|
@@ -290,10 +295,12 @@ class OmikitPluginModule(reactContext: ReactApplicationContext?) :
|
|
|
290
295
|
val host = data.getString("host")
|
|
291
296
|
val isVideo = data.getBoolean("isVideo")
|
|
292
297
|
val firebaseToken = data.getString("fcmToken") as String
|
|
293
|
-
|
|
298
|
+
|
|
299
|
+
Log.d("dataOmi", "INIT_CALL_USER_PASSWORD $userName -- $password --$realm --$isVideo -- $host")
|
|
300
|
+
|
|
294
301
|
withContext(Dispatchers.Default) {
|
|
295
302
|
try {
|
|
296
|
-
if (userName != null && password != null && realm != null
|
|
303
|
+
if (userName != null && password != null && realm != null) {
|
|
297
304
|
OmiClient.register(userName, password, realm , isVideo ?: true, firebaseToken, host)
|
|
298
305
|
}
|
|
299
306
|
} catch (_: Throwable) {
|
|
@@ -380,26 +387,23 @@ class OmikitPluginModule(reactContext: ReactApplicationContext?) :
|
|
|
380
387
|
if (audio == PackageManager.PERMISSION_GRANTED) {
|
|
381
388
|
currentActivity?.runOnUiThread {
|
|
382
389
|
val phoneNumber = data.getString("phoneNumber") as String
|
|
383
|
-
val isVideo = data.getBoolean("isVideo")
|
|
390
|
+
val isVideo = data.getBoolean("isVideo") ?: false ;
|
|
384
391
|
val startCallResult = OmiClient.getInstance(reactApplicationContext!!).startCall(phoneNumber, isVideo)
|
|
385
|
-
Log.d("dataOmi", "startCall ==>> ${startCallResult} ")
|
|
386
|
-
Log.d("dataOmi", "startCall2 ==>> ${startCallResult.value} ")
|
|
387
392
|
var statusCalltemp = startCallResult.value as Int;
|
|
388
393
|
if(startCallResult.value == 200 ){
|
|
389
394
|
statusCalltemp = 8
|
|
390
395
|
}
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
Log.d("OMISDK", "=>> ON START CALL => $map")
|
|
396
|
+
map.putInt("status", statusCalltemp)
|
|
397
|
+
map.putString("_id", "")
|
|
398
|
+
map.putString("message", messageCall(startCallResult.value) as String)
|
|
395
399
|
promise.resolve(map)
|
|
396
400
|
}
|
|
397
401
|
} else {
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
402
|
+
map.putInt("status", 4)
|
|
403
|
+
map.putString("_id", "")
|
|
404
|
+
map.putString("message", messageCall(406) as String)
|
|
405
|
+
Log.d("OMISDK", "=>> ON START CALL FAIL BECAUSE NEED PERMISSION => $map")
|
|
406
|
+
promise.resolve(map)
|
|
403
407
|
}
|
|
404
408
|
}
|
|
405
409
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
//
|
|
2
2
|
// CallUtils.swift
|
|
3
3
|
// OMICall Contact Center
|
|
4
4
|
//
|
|
@@ -38,14 +38,21 @@ class CallManager {
|
|
|
38
38
|
return currentCall
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
func transferCall(_ phoneNumber: String){
|
|
41
|
+
func transferCall(_ phoneNumber: String)-> Bool {
|
|
42
|
+
var result = false;
|
|
42
43
|
do {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
if let callInfo = self.omiLib.getCurrentConfirmCall() {
|
|
45
|
+
dump(callInfo)
|
|
46
|
+
if callInfo.callState != .disconnected {
|
|
47
|
+
callInfo.blindTransferCall(withNumber: phoneNumber);
|
|
48
|
+
result = true
|
|
49
|
+
}
|
|
50
|
+
}
|
|
46
51
|
} catch let error {
|
|
47
52
|
print("ERROR_WHEN_TRANSFER_CALL_IOS: ", error)
|
|
48
53
|
}
|
|
54
|
+
print("calllZiii 2 ==> \(result)")
|
|
55
|
+
return result
|
|
49
56
|
}
|
|
50
57
|
|
|
51
58
|
|
|
@@ -79,6 +86,43 @@ class CallManager {
|
|
|
79
86
|
}
|
|
80
87
|
}
|
|
81
88
|
|
|
89
|
+
func convertDictionaryToJson(dictionary: [String: Any]) -> String? {
|
|
90
|
+
do {
|
|
91
|
+
let jsonData = try JSONSerialization.data(withJSONObject: dictionary, options: [])
|
|
92
|
+
if let jsonString = String(data: jsonData, encoding: .utf8) {
|
|
93
|
+
return jsonString
|
|
94
|
+
}
|
|
95
|
+
} catch {
|
|
96
|
+
print("Error converting dictionary to JSON: \(error.localizedDescription)")
|
|
97
|
+
}
|
|
98
|
+
return nil
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
private func messageCall(type: Int) -> String {
|
|
102
|
+
switch(type){
|
|
103
|
+
case 0:
|
|
104
|
+
return "INVALID_UUID"
|
|
105
|
+
case 1:
|
|
106
|
+
return "INVALID_PHONE_NUMBER"
|
|
107
|
+
case 2:
|
|
108
|
+
return "SAME_PHONE_NUMBER_WITH_PHONE_REGISTER"
|
|
109
|
+
case 3:
|
|
110
|
+
return "MAX_RETRY"
|
|
111
|
+
case 4:
|
|
112
|
+
return "PERMISSION_DENIED"
|
|
113
|
+
case 5:
|
|
114
|
+
return "COULD_NOT_FIND_END_POINT"
|
|
115
|
+
case 6:
|
|
116
|
+
return "REGISTER_ACCOUNT_FAIL"
|
|
117
|
+
case 7:
|
|
118
|
+
return "START_CALL_FAIL"
|
|
119
|
+
case 9:
|
|
120
|
+
return "HAVE_ANOTHER_CALL"
|
|
121
|
+
default:
|
|
122
|
+
return "START_CALL_SUCCESS"
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
82
126
|
private func requestPermission(isVideo: Bool) {
|
|
83
127
|
AVCaptureDevice.requestAccess(for: .audio) { _ in
|
|
84
128
|
// print("request audio")
|
|
@@ -112,7 +156,7 @@ class CallManager {
|
|
|
112
156
|
requestPermission(isVideo: isVideo)
|
|
113
157
|
return true
|
|
114
158
|
}
|
|
115
|
-
|
|
159
|
+
|
|
116
160
|
func showMissedCall() {
|
|
117
161
|
OmiClient.setMissedCall { call in
|
|
118
162
|
UNUserNotificationCenter.current().getNotificationSettings { settings in
|
|
@@ -280,7 +324,7 @@ class CallManager {
|
|
|
280
324
|
guestPhone = call.callerNumber ?? ""
|
|
281
325
|
break
|
|
282
326
|
case OMICallState.disconnected.rawValue:
|
|
283
|
-
tempCallInfo = getCallInfo(call: call)
|
|
327
|
+
tempCallInfo = getCallInfo(call: call)
|
|
284
328
|
if (videoManager != nil) {
|
|
285
329
|
videoManager = nil
|
|
286
330
|
}
|
|
@@ -321,29 +365,60 @@ class CallManager {
|
|
|
321
365
|
|
|
322
366
|
|
|
323
367
|
/// Start call
|
|
324
|
-
func startCall(_ phoneNumber: String, isVideo: Bool, completion: @escaping (_ :
|
|
368
|
+
func startCall(_ phoneNumber: String, isVideo: Bool, completion: @escaping (_ : String) -> Void) {
|
|
325
369
|
let secondsSinceCurrentTime = lastTimeCall.timeIntervalSinceNow
|
|
326
370
|
guestPhone = phoneNumber
|
|
327
371
|
OmiClient.startCall(phoneNumber, isVideo: isVideo) { status in
|
|
328
372
|
DispatchQueue.main.async {
|
|
329
|
-
|
|
373
|
+
let callCurrent = self.omiLib.getCurrentCall()
|
|
374
|
+
var dataToSend: [String: Any] = [
|
|
375
|
+
"status": status.rawValue,
|
|
376
|
+
"_id": "",
|
|
377
|
+
"message": self.messageCall(type: status.rawValue)
|
|
378
|
+
]
|
|
379
|
+
|
|
380
|
+
if(callCurrent != nil){
|
|
381
|
+
dataToSend["_id"] = String(describing: OmiCallModel(omiCall: callCurrent!).uuid)
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
if let jsonString = self.convertDictionaryToJson(dictionary: dataToSend) {
|
|
385
|
+
completion(jsonString)
|
|
386
|
+
} else {
|
|
387
|
+
completion("Conversion to JSON failed")
|
|
388
|
+
}
|
|
389
|
+
return
|
|
330
390
|
}
|
|
331
391
|
}
|
|
332
392
|
}
|
|
333
393
|
|
|
334
394
|
/// Start call
|
|
335
|
-
func startCallWithUuid(_ uuid: String, isVideo: Bool, completion: @escaping (_ :
|
|
395
|
+
func startCallWithUuid(_ uuid: String, isVideo: Bool, completion: @escaping (_ : String) -> Void) {
|
|
336
396
|
let phoneNumber = OmiClient.getPhone(uuid)
|
|
337
397
|
if let phone = phoneNumber {
|
|
338
398
|
guestPhone = phoneNumber ?? ""
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
399
|
+
DispatchQueue.main.async {
|
|
400
|
+
OmiClient.startCall(phone, isVideo: isVideo) { statusCall in
|
|
401
|
+
let callCurrent = self.omiLib.getCurrentCall()
|
|
402
|
+
// completion(status.rawValue)
|
|
403
|
+
var dataToSend: [String: Any] = [
|
|
404
|
+
"status": statusCall.rawValue,
|
|
405
|
+
"_id": "",
|
|
406
|
+
"message": self.messageCall(type: statusCall.rawValue)
|
|
407
|
+
]
|
|
408
|
+
if(callCurrent != nil){
|
|
409
|
+
dataToSend["_id"] = String(describing: OmiCallModel(omiCall: callCurrent!).uuid)
|
|
410
|
+
}
|
|
411
|
+
if let jsonString = self.convertDictionaryToJson(dictionary: dataToSend) {
|
|
412
|
+
completion(jsonString)
|
|
413
|
+
} else {
|
|
414
|
+
completion("Conversion to JSON failed")
|
|
415
|
+
}
|
|
416
|
+
return
|
|
417
|
+
|
|
342
418
|
}
|
|
343
419
|
}
|
|
344
420
|
return
|
|
345
421
|
}
|
|
346
|
-
completion(OMIStartCallStatus.invalidUuid.rawValue)
|
|
347
422
|
}
|
|
348
423
|
|
|
349
424
|
func endAvailableCall() -> [String: Any] {
|
package/omikit-plugin.podspec
CHANGED
|
@@ -12,7 +12,7 @@ Pod::Spec.new do |s|
|
|
|
12
12
|
s.authors = package["author"]
|
|
13
13
|
|
|
14
14
|
s.platforms = { :ios => "11.0" }
|
|
15
|
-
s.source = { :git => "https://github.com/
|
|
15
|
+
s.source = { :git => "https://github.com/VIHATTeam/OMICALL-React-Native-SDK.git", :tag => "#{s.version}" }
|
|
16
16
|
|
|
17
17
|
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
|
18
18
|
|
|
@@ -32,5 +32,5 @@ Pod::Spec.new do |s|
|
|
|
32
32
|
s.dependency "RCTTypeSafety"
|
|
33
33
|
s.dependency "ReactCommon/turbomodule/core"
|
|
34
34
|
end
|
|
35
|
-
s.dependency "OmiKit", '1.5.
|
|
36
|
-
end
|
|
35
|
+
s.dependency "OmiKit", '1.5.84'
|
|
36
|
+
end
|