2017-05-09 3 views
0

Linphone SDKを使用して安全なVoIP iOSアプリケーションを構築しています。Linphoneがnilを返すZRTP SAS(認証トークン)

私は、メディア暗号化の右のアプリを起動する設定:

linphone_core_set_media_encryption(theLinphone.lc, LinphoneMediaEncryptionZRTP)

そして、私はこのようなSASを取得しようとしています:それはnilを返し

linphone_call_get_authentication_token(Call.current())

ほとんどの時間を。しかし、しばらくの間、16進値を返します。0x35422f6e6f697461

このログには、次のログもあります。 ortp-message-ZRTP secrets on: SAS is xxxx previously verified no "xxxx"正しいSASです。

答えて

0

私は何が起こっていたのか把握しました。

コールの状態がLinphoneCallOutgoingProgressに変更された直後に私はlinphone_call_get_authentication_token(Call.current())に電話していました。それを修正するために私がしなければならなかったのは、コール状態がLinphoneCallOutgoingProgressに変わったときに1秒ごとにメソッドを呼び出すTimerを開始することでした。ここでは私のために働いた:

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() 
     } 
    } 
}