'didStartRinging' delegate method not working

I am using Sendbird to place 1-1 calls in my SwiftUI app. For some reason no matter what I do I can’t get the ‘didStartRinging’ delegate method to be called. I’m using two physical iPad’s to test on. The use case for this app is that it will always be in the foreground, so no need to register VoIP notifications. I am able to use SendBirdCall.dial just fine. In the dashboard it shows that the call was created correctly, with the callee and caller id’s both correct. However ‘didStartRinging’ never gets fired. I’m also making sure that the user is authenticated before setting SendBirdCall.addDelegate(self, identifier: UUID().uuidString) I’ve also made sure that the class that’s in is only initialized once. Here is what that class looks like

class SendbirdCallsManager: SendBirdCallDelegate {
    static let shared = SendbirdCallsManager()
    
    @Published private(set) var incomingCallsByCallID: [String: DirectCall] = [:]
    
    init() {
        SendBirdCall.addDelegate(self, identifier: UUID().uuidString)
    }
    
    func didStartRinging(_ call: DirectCall) {
        self.incomingCallsByCallID[call.callId] = call
    }
    
    func lookupCall(for callID: String) -> DirectCall? {
        return incomingCallsByCallID[callID]
    }
    
    func removeCall(for callID: String) {
        incomingCallsByCallID.removeValue(forKey: callID)
    }
}

Any help would be appreciated because this has been a headache.

Hello @Drew , Thanks for reaching out!

Actually, we do require that you implement either VoIP or Remote Push Notifications in order to receive calls. We do not maintain an active websocket connection all the time, so you need to have push notifications to receive new incoming calls.

If you do not want to use push notifications, your other choice is to manage the incoming calls yourself(have the call’s information like call id sent to the callee through your own system), and retrieve the call at the callee’s app by calling SendBirdCall.retrieveMissedDirectCalls. This method will return any incoming calls that haven’t been received via push notification.

Please let me know if you have any more questions :slight_smile: