omikit-plugin 3.0.3 → 3.0.4
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.
|
@@ -21,7 +21,7 @@ class CallManager {
|
|
|
21
21
|
private var guestPhone : String = ""
|
|
22
22
|
private var lastStatusCall : String?
|
|
23
23
|
private var tempCallInfo : [String: Any]?
|
|
24
|
-
|
|
24
|
+
private var lastTimeCall : Date = Date()
|
|
25
25
|
/// Get instance
|
|
26
26
|
static func shareInstance() -> CallManager {
|
|
27
27
|
if (instance == nil) {
|
|
@@ -79,7 +79,7 @@ class CallManager {
|
|
|
79
79
|
|
|
80
80
|
func initWithUserPasswordEndpoint(params: [String: Any]) -> Bool {
|
|
81
81
|
if let userName = params["userName"] as? String, let password = params["password"] as? String, let realm = params["realm"] as? String {
|
|
82
|
-
OmiClient.initWithUsername(userName, password: password, realm: realm)
|
|
82
|
+
OmiClient.initWithUsername(userName, password: password, realm: realm, proxy: "")
|
|
83
83
|
}
|
|
84
84
|
let isVideo = (params["isVideo"] as? Bool) ?? true
|
|
85
85
|
requestPermission(isVideo: isVideo)
|
|
@@ -309,7 +309,7 @@ class CallManager {
|
|
|
309
309
|
}
|
|
310
310
|
|
|
311
311
|
if (callState != OMICallState.disconnected.rawValue) {
|
|
312
|
-
|
|
312
|
+
OmikitPlugin.instance?.sendEvent(withName: CALL_STATE_CHANGED, body: dataToSend)
|
|
313
313
|
}
|
|
314
314
|
|
|
315
315
|
switch (callState) {
|
|
@@ -319,7 +319,7 @@ class CallManager {
|
|
|
319
319
|
}
|
|
320
320
|
isSpeaker = call.isVideo
|
|
321
321
|
lastStatusCall = "answered"
|
|
322
|
-
|
|
322
|
+
OmikitPlugin.instance.sendMuteStatus()
|
|
323
323
|
break
|
|
324
324
|
case OMICallState.incoming.rawValue:
|
|
325
325
|
guestPhone = call.callerNumber ?? ""
|
|
@@ -332,10 +332,10 @@ class CallManager {
|
|
|
332
332
|
lastStatusCall = nil
|
|
333
333
|
guestPhone = ""
|
|
334
334
|
var combinedDictionary: [String: Any] = dataToSend
|
|
335
|
-
if (tempCallInfo
|
|
336
|
-
combinedDictionary.merge(tempCallInfo, uniquingKeysWith: { (_, new) in new })
|
|
335
|
+
if (tempCallInfo != nil && tempCallInfo?.count ?? 0 > 0) {
|
|
336
|
+
combinedDictionary.merge(tempCallInfo ?? [:], uniquingKeysWith: { (_, new) in new })
|
|
337
337
|
}
|
|
338
|
-
|
|
338
|
+
OmikitPlugin.instance?.sendEvent(withName: CALL_STATE_CHANGED, body: combinedDictionary )
|
|
339
339
|
lastTimeCall = Date()
|
|
340
340
|
tempCallInfo = [:]
|
|
341
341
|
break
|
|
@@ -367,6 +367,7 @@ class CallManager {
|
|
|
367
367
|
|
|
368
368
|
/// Start call
|
|
369
369
|
func startCall(_ phoneNumber: String, isVideo: Bool, completion: @escaping (_ : Int) -> Void) {
|
|
370
|
+
let secondsSinceCurrentTime = lastTimeCall.timeIntervalSinceNow
|
|
370
371
|
guestPhone = phoneNumber
|
|
371
372
|
OmiClient.startCall(phoneNumber, isVideo: isVideo) { status in
|
|
372
373
|
DispatchQueue.main.async {
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import Foundation
|
|
2
|
+
import AVFoundation
|
|
3
|
+
import SwiftUI
|
|
4
|
+
import OmiKit
|
|
5
|
+
|
|
6
|
+
public class OmiUtils {
|
|
7
|
+
|
|
8
|
+
static private var instance: OmiUtils? = nil // Instance
|
|
9
|
+
|
|
10
|
+
static func shareInstance() -> OmiUtils {
|
|
11
|
+
if (instance == nil) {
|
|
12
|
+
instance = OmiUtils()
|
|
13
|
+
}
|
|
14
|
+
return instance!
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
func convertDictionaryToJson(dictionary: [String: Any]) -> String? {
|
|
18
|
+
do {
|
|
19
|
+
let jsonData = try JSONSerialization.data(withJSONObject: dictionary, options: [])
|
|
20
|
+
if let jsonString = String(data: jsonData, encoding: .utf8) {
|
|
21
|
+
return jsonString
|
|
22
|
+
}
|
|
23
|
+
} catch {
|
|
24
|
+
print("Error converting dictionary to JSON: \(error)")
|
|
25
|
+
}
|
|
26
|
+
return nil
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
func messageCall(type: Int) -> String {
|
|
30
|
+
switch(type){
|
|
31
|
+
case 0:
|
|
32
|
+
return "INVALID_UUID"
|
|
33
|
+
case 1:
|
|
34
|
+
return "INVALID_PHONE_NUMBER"
|
|
35
|
+
case 2:
|
|
36
|
+
return "SAME_PHONE_NUMBER_WITH_PHONE_REGISTER"
|
|
37
|
+
case 3:
|
|
38
|
+
return "MAX_RETRY"
|
|
39
|
+
case 4:
|
|
40
|
+
return "PERMISSION_DENIED"
|
|
41
|
+
case 5:
|
|
42
|
+
return "COULD_NOT_FIND_END_POINT"
|
|
43
|
+
case 6:
|
|
44
|
+
return "REGISTER_ACCOUNT_FAIL"
|
|
45
|
+
case 7:
|
|
46
|
+
return "START_CALL_FAIL"
|
|
47
|
+
case 9:
|
|
48
|
+
return "HAVE_ANOTHER_CALL"
|
|
49
|
+
default:
|
|
50
|
+
return "START_CALL_SUCCESS"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import Foundation
|
|
2
|
+
import OmiKit
|
|
3
|
+
|
|
4
|
+
struct OmiCallModel: Hashable {
|
|
5
|
+
var callId: Int
|
|
6
|
+
var incoming: Bool = false
|
|
7
|
+
var callState: Int = 0
|
|
8
|
+
var callerNumber: String
|
|
9
|
+
var isVideo: Bool = false
|
|
10
|
+
var omiId: String
|
|
11
|
+
var uuid: String
|
|
12
|
+
var callerName: String
|
|
13
|
+
var muted: Bool = false
|
|
14
|
+
var speaker: Bool = false
|
|
15
|
+
var onHold: Bool = false
|
|
16
|
+
var numberToCall: String
|
|
17
|
+
var connected: Bool
|
|
18
|
+
var totalMBsUsed: Double = 0.0
|
|
19
|
+
var mos: Double = 0.0
|
|
20
|
+
var latency: Double = 0.0
|
|
21
|
+
var jitter: Double = 0.0
|
|
22
|
+
var ppl: Double = 0.0
|
|
23
|
+
|
|
24
|
+
init(omiCall: OmiCallModel){
|
|
25
|
+
self.callId = omiCall.callId
|
|
26
|
+
self.incoming = omiCall.incoming
|
|
27
|
+
self.callState = omiCall.callState
|
|
28
|
+
self.callerNumber = omiCall.callerNumber
|
|
29
|
+
self.isVideo = omiCall.isVideo
|
|
30
|
+
self.omiId = omiCall.omiId
|
|
31
|
+
self.uuid = omiCall.uuid
|
|
32
|
+
self.callerName = omiCall.callerName
|
|
33
|
+
self.muted = omiCall.muted
|
|
34
|
+
self.speaker = omiCall.speaker
|
|
35
|
+
self.onHold = omiCall.onHold
|
|
36
|
+
self.numberToCall = omiCall.numberToCall
|
|
37
|
+
self.connected = omiCall.connected
|
|
38
|
+
self.totalMBsUsed = omiCall.totalMBsUsed
|
|
39
|
+
self.mos = omiCall.mos
|
|
40
|
+
self.latency = omiCall.latency
|
|
41
|
+
self.jitter = omiCall.jitter
|
|
42
|
+
self.ppl = omiCall.ppl
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
init(omiCall: OMICall){
|
|
46
|
+
self.callId = omiCall.callId
|
|
47
|
+
self.incoming = omiCall.isIncoming
|
|
48
|
+
self.callState = omiCall.callState.rawValue ?? 0
|
|
49
|
+
self.callerNumber = omiCall.callerNumber ?? ""
|
|
50
|
+
self.isVideo = omiCall.isVideo
|
|
51
|
+
self.omiId = omiCall.omiId ?? ""
|
|
52
|
+
self.uuid = omiCall.uuid.uuidString
|
|
53
|
+
self.callerName = omiCall.callerName ?? ""
|
|
54
|
+
self.muted = omiCall.muted
|
|
55
|
+
self.speaker = omiCall.speaker
|
|
56
|
+
self.onHold = omiCall.onHold
|
|
57
|
+
self.numberToCall = omiCall.numberToCall
|
|
58
|
+
self.connected = omiCall.connected
|
|
59
|
+
self.totalMBsUsed = Double(omiCall.totalMBsUsed)
|
|
60
|
+
self.mos = Double(omiCall.mos)
|
|
61
|
+
self.latency = Double(omiCall.latency)
|
|
62
|
+
self.jitter = Double(omiCall.jitter)
|
|
63
|
+
self.ppl = Double(omiCall.ppl)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
import Foundation
|
|
3
|
+
import SwiftUI
|
|
4
|
+
|
|
5
|
+
class StartCalModel {
|
|
6
|
+
var status: Int = 0
|
|
7
|
+
var callInfo: OmiCallModel?
|
|
8
|
+
var message: String?
|
|
9
|
+
|
|
10
|
+
init(status: Int, callInfo: OmiCallModel, message:String) {
|
|
11
|
+
self.status = status
|
|
12
|
+
self.callInfo = callInfo
|
|
13
|
+
self.message = message
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
}
|