             let pushRule = session.notificationCenter.rule(matching: event, roomState: roomState)
             
             switch event.eventType {
+            case .callInvite:
+                let offer = event.content["offer"] as? [AnyHashable: Any]
+                let sdp = offer?["sdp"] as? String
+                let isVideoCall = sdp?.contains("m=video") ?? false
+                
+                if isVideoCall {
+                    notificationBody = NSString.localizedUserNotificationString(forKey: "VIDEO_CALL_FROM_USER", arguments: [eventSenderName as Any])
+                } else {
+                    notificationBody = NSString.localizedUserNotificationString(forKey: "VOICE_CALL_FROM_USER", arguments: [eventSenderName as Any])
+                }
+                
+                // call notifications should stand out from normal messages, so we don't stack them
+                threadIdentifier = nil
+                self.sendVoipPush(forEvent: event)
             case .roomMessage, .roomEncrypted:
                 if room.isMentionsOnly {
                     // A local notification will be displayed only for highlighted notification.

                    }
                }
                break
            case .callInvite:
                let offer = event.content["offer"] as? [AnyHashable: Any]
                let sdp = offer?["sdp"] as? String
                let isVideoCall = sdp?.contains("m=video") ?? false
                
                if isVideoCall {
                    notificationBody = NSString.localizedUserNotificationString(forKey: "VIDEO_CALL_FROM_USER", arguments: [eventSenderName as Any])
                } else {
                    notificationBody = NSString.localizedUserNotificationString(forKey: "VOICE_CALL_FROM_USER", arguments: [eventSenderName as Any])
                }
                
                // call notifications should stand out from normal messages, so we don't stack them
                threadIdentifier = nil
                self.sendVoipPush(forEvent: event)
            case .roomMember:
                let roomDisplayName = room.summary.displayname
                

            }
            
            //  encrypted
            if event.clear != nil {
                //  already decrypted
                NSLog("[NotificationService] fetchEvent: Event already decrypted.")
