2017-05-09 5 views
0

Ich baue eine sichere VoIP iOS App mit dem Linphone SDK.Linphone gibt kein ZRTP SAS (Authentifizierungstoken) zurück

ich die Medienverschlüsselung richtig auf, wenn die App gestartet wird:

linphone_core_set_media_encryption(theLinphone.lc, LinphoneMediaEncryptionZRTP)

Und ich versuche das SAS wie folgt abzurufen:

linphone_call_get_authentication_token(Call.current())

Meistens nil. Aber ab und zu gibt es einen hexadezimalen Wert wie 0x35422f6e6f697461

Ich bekomme sogar dieses Protokoll: ortp-message-ZRTP secrets on: SAS is xxxx previously verified no wird "xxxx" die richtige SAS.

Antwort

0

Also habe ich herausgefunden, was los ist.

Ich rief linphone_call_get_authentication_token(Call.current()) sofort nach dem Anrufstatus geändert zu LinphoneCallOutgoingProgress. Alles, was ich tun musste, um es zu beheben, war ein Timer zu starten, der eine Methode alle 1 Sekunde aufruft, wenn sich der Anrufstatus zu LinphoneCallOutgoingProgress ändert, weil es einige Zeit dauert, bis der SAS generiert wird. Hier ist, was bei mir funktioniert hat:

timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { 

    DispatchQueue.main.async { 

     let sas = linphone_call_get_authentication_token(Call.current()) 

     if sas != nil { 

      self!.sasLabel.text = String(cString: sas!) 
      timer.invalidate() 
     } 
    } 
} 
Verwandte Themen