filter other call messages

pull/560/head
ryanzhao 4 years ago
parent bcf0ecfb69
commit 18a9768167

@ -277,12 +277,15 @@ extension MessageReceiver {
switch message.kind! { switch message.kind! {
case .preOffer: case .preOffer:
print("[Calls] Received pre-offer message.") print("[Calls] Received pre-offer message.")
let currentSession = getWebRTCSession() if getWebRTCSession().uuid != message.uuid! {
if currentSession.uuid != message.uuid! {
// TODO: Call in progress, put the new call on hold/reject // TODO: Call in progress, put the new call on hold/reject
} }
case .offer: case .offer:
print("[Calls] Received offer message.") print("[Calls] Received offer message.")
if getWebRTCSession().uuid != message.uuid! {
// TODO: Call in progress, put the new call on hold/reject
return
}
let storage = SNMessagingKitConfiguration.shared.storage let storage = SNMessagingKitConfiguration.shared.storage
let transaction = transaction as! YapDatabaseReadWriteTransaction let transaction = transaction as! YapDatabaseReadWriteTransaction
if let threadID = storage.getOrCreateThread(for: message.sender!, groupPublicKey: message.groupPublicKey, openGroupID: nil, using: transaction), if let threadID = storage.getOrCreateThread(for: message.sender!, groupPublicKey: message.groupPublicKey, openGroupID: nil, using: transaction),
@ -296,11 +299,13 @@ extension MessageReceiver {
handleOfferCallMessage?(message) handleOfferCallMessage?(message)
case .answer: case .answer:
print("[Calls] Received answer message.") print("[Calls] Received answer message.")
guard getWebRTCSession().uuid == message.uuid! else { return }
let sdp = RTCSessionDescription(type: .answer, sdp: message.sdps![0]) let sdp = RTCSessionDescription(type: .answer, sdp: message.sdps![0])
getWebRTCSession().handleRemoteSDP(sdp, from: message.sender!) getWebRTCSession().handleRemoteSDP(sdp, from: message.sender!)
handleAnswerCallMessage?(message) handleAnswerCallMessage?(message)
case .provisionalAnswer: break // TODO: Implement case .provisionalAnswer: break // TODO: Implement
case let .iceCandidates(sdpMLineIndexes, sdpMids): case let .iceCandidates(sdpMLineIndexes, sdpMids):
guard getWebRTCSession().uuid == message.uuid! else { return }
var candidates: [RTCIceCandidate] = [] var candidates: [RTCIceCandidate] = []
let sdps = message.sdps! let sdps = message.sdps!
for i in 0..<sdps.count { for i in 0..<sdps.count {
@ -313,6 +318,7 @@ extension MessageReceiver {
getWebRTCSession().handleICECandidates(candidates) getWebRTCSession().handleICECandidates(candidates)
case .endCall: case .endCall:
print("[Calls] Received end call message.") print("[Calls] Received end call message.")
guard getWebRTCSession().uuid == message.uuid! else { return }
handleEndCallMessage?(message) handleEndCallMessage?(message)
} }
} }

Loading…
Cancel
Save