mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-17 11:28:07 +00:00
ZRTP authentication in popup. Fix PQ icons.
This commit is contained in:
parent
dd39203d47
commit
1c3f507045
28 changed files with 498 additions and 286 deletions
|
|
@ -3693,9 +3693,10 @@ Klik her: <a href="%1">%1</a>
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<extracomment>'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.</extracomment>
|
||||
<translation>Bekræft følgende SAS med peer.</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -3707,12 +3708,19 @@ Klik her: <a href="%1">%1</a>
|
|||
<translation>Din kontakt burde sige:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deny</source>
|
||||
<translation>STOP</translation>
|
||||
<source>Later</source>
|
||||
<extracomment>'Later' : Button label to do something in another time.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>accept</source>
|
||||
<translation>BEKRÆFT</translation>
|
||||
<source>Correct</source>
|
||||
<extracomment>'Correct' : Button label to confirm a code.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>title</source>
|
||||
<extracomment>'Communication security' : Title of popup for ZRTP confirmation.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -3693,9 +3693,10 @@ Klicken Sie hier: <a href="%1">%1</a>
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<extracomment>'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.</extracomment>
|
||||
<translation>Bestätige folgende SAS mit der Gegenstelle.</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -3707,12 +3708,19 @@ Klicken Sie hier: <a href="%1">%1</a>
|
|||
<translation>Ihr Kontakt sollte sagen:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deny</source>
|
||||
<translation>ABLEHNEN</translation>
|
||||
<source>Later</source>
|
||||
<extracomment>'Later' : Button label to do something in another time.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>accept</source>
|
||||
<translation>BESTÄTIGEN</translation>
|
||||
<source>Correct</source>
|
||||
<extracomment>'Correct' : Button label to confirm a code.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>title</source>
|
||||
<extracomment>'Communication security' : Title of popup for ZRTP confirmation.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -3716,10 +3716,11 @@ Click here: <a href="%1">%1</a>
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<translation>Confirm the following SAS with peer.</translation>
|
||||
<extracomment>'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.</extracomment>
|
||||
<translation>To raise the security level, you can check the following codes with your correspondent.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>codeA</source>
|
||||
|
|
@ -3730,12 +3731,19 @@ Click here: <a href="%1">%1</a>
|
|||
<translation>Your contact should say:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deny</source>
|
||||
<translation>DENY</translation>
|
||||
<source>Later</source>
|
||||
<extracomment>'Later' : Button label to do something in another time.</extracomment>
|
||||
<translation>Later</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>accept</source>
|
||||
<translation>CONFIRM</translation>
|
||||
<source>Correct</source>
|
||||
<extracomment>'Correct' : Button label to confirm a code.</extracomment>
|
||||
<translation>Correct</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>title</source>
|
||||
<extracomment>'Communication security' : Title of popup for ZRTP confirmation.</extracomment>
|
||||
<translation>Communication security</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -3693,9 +3693,10 @@ Haga clic aquí: <a href="%1">%1 </a>
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<extracomment>'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.</extracomment>
|
||||
<translation>Confirma la siguiente SAS con el compañero</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -3707,12 +3708,19 @@ Haga clic aquí: <a href="%1">%1 </a>
|
|||
<translation>Su contacto debería decir:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deny</source>
|
||||
<translation>DENEGAR</translation>
|
||||
<source>Later</source>
|
||||
<extracomment>'Later' : Button label to do something in another time.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>accept</source>
|
||||
<translation>CONFIRMAR</translation>
|
||||
<source>Correct</source>
|
||||
<extracomment>'Correct' : Button label to confirm a code.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>title</source>
|
||||
<extracomment>'Communication security' : Title of popup for ZRTP confirmation.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>usernameStatusInvalidCharacters</source>
|
||||
<translation>Caractères invalides détectés (regex : `%1`).</translation>
|
||||
<translation>Caractères invalides détectés (regex : `%1`).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>usernameStatusInvalid</source>
|
||||
|
|
@ -189,7 +189,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>passwordStatusInvalidCharacters</source>
|
||||
<translation>Caractères invalides détectés (regex : `%1`).</translation>
|
||||
<translation>Caractères invalides détectés (regex : `%1`).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>passwordStatusMissingCharacters</source>
|
||||
|
|
@ -1236,7 +1236,7 @@ URL du serveur non configurée.</translation>
|
|||
<message>
|
||||
<source>ephemeralNotInConference!</source>
|
||||
<extracomment>'Ephemeral message is only supported in conference based chat room!'</extracomment>
|
||||
<translation>Les messages éphémères ne sont disponibles que pour une conversation définie en mode conférence !</translation>
|
||||
<translation>Les messages éphémères ne sont disponibles que pour une conversation définie en mode conférence !</translation>
|
||||
<extra-Context>Warning about not being in conference based chat room.</extra-Context>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -2020,7 +2020,7 @@ Cliquez ici : <a href="%1">%1</a>
|
|||
<message>
|
||||
<source>newConferenceScheduleTitle</source>
|
||||
<extracomment>'Would you like to schedule your meeting?' : Ask about setting the meeting as scheduled.</extracomment>
|
||||
<translation>Voulez-vous programmer cette réunion ?</translation>
|
||||
<translation>Voulez-vous programmer cette réunion ?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>newConferenceDate</source>
|
||||
|
|
@ -2600,7 +2600,7 @@ Cliquez ici : <a href="%1">%1</a>
|
|||
</message>
|
||||
<message>
|
||||
<source>serverTooltip</source>
|
||||
<translation>Serveur LDAP. ie : ldap:// pour un serveur local ou ldap://ldap.example.org/</translation>
|
||||
<translation>Serveur LDAP. ie : ldap:// pour un serveur local ou ldap://ldap.example.org/</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>bindDNLabel</source>
|
||||
|
|
@ -3546,7 +3546,7 @@ Cliquez ici : <a href="%1">%1</a>
|
|||
<message>
|
||||
<source>deleteTimeline</source>
|
||||
<extracomment>'Are you sure you want to delete and leave this timeline?'</extracomment>
|
||||
<translation>Êtes-vous certain de vouloir tout effacer et de quitter cette conversation ?</translation>
|
||||
<translation>Êtes-vous certain de vouloir tout effacer et de quitter cette conversation ?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deleteTimelineTooltip</source>
|
||||
|
|
@ -3693,9 +3693,10 @@ Cliquez ici : <a href="%1">%1</a>
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<extracomment>'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.</extracomment>
|
||||
<translation>Confirmez le SAS suivant avec votre interlocuteur.</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -3707,12 +3708,19 @@ Cliquez ici : <a href="%1">%1</a>
|
|||
<translation>Votre interlocuteur devrait dire :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deny</source>
|
||||
<translation>REFUSER</translation>
|
||||
<source>Later</source>
|
||||
<extracomment>'Later' : Button label to do something in another time.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>accept</source>
|
||||
<translation>CONFIRMER</translation>
|
||||
<source>Correct</source>
|
||||
<extracomment>'Correct' : Button label to confirm a code.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>title</source>
|
||||
<extracomment>'Communication security' : Title of popup for ZRTP confirmation.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -3680,9 +3680,10 @@ Kattintson ide: <a href="%1">%1</a>
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<extracomment>'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.</extracomment>
|
||||
<translation>Erősítse meg a következő SAS-t a társsal.</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -3694,12 +3695,19 @@ Kattintson ide: <a href="%1">%1</a>
|
|||
<translation>A kapcsolattartónak el kell mondania:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deny</source>
|
||||
<translation>Letiltás</translation>
|
||||
<source>Later</source>
|
||||
<extracomment>'Later' : Button label to do something in another time.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>accept</source>
|
||||
<translation>Megerősít</translation>
|
||||
<source>Correct</source>
|
||||
<extracomment>'Correct' : Button label to confirm a code.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>title</source>
|
||||
<extracomment>'Communication security' : Title of popup for ZRTP confirmation.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -3693,9 +3693,10 @@ Clicca: <a href="%1">%1</a>
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<extracomment>'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.</extracomment>
|
||||
<translation>Confermare il seguente SAS con la controparte.</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -3707,12 +3708,19 @@ Clicca: <a href="%1">%1</a>
|
|||
<translation>Il tuo contatto dovrebbe dire:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deny</source>
|
||||
<translation>RIFIUTA</translation>
|
||||
<source>Later</source>
|
||||
<extracomment>'Later' : Button label to do something in another time.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>accept</source>
|
||||
<translation>CONFERMA</translation>
|
||||
<source>Correct</source>
|
||||
<extracomment>'Correct' : Button label to confirm a code.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>title</source>
|
||||
<extracomment>'Communication security' : Title of popup for ZRTP confirmation.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -3680,9 +3680,10 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<extracomment>'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.</extracomment>
|
||||
<translation>ピアと次のSASを確認します。</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -3694,12 +3695,19 @@
|
|||
<translation>連絡先の内容は次のとおりです。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deny</source>
|
||||
<translation>拒否</translation>
|
||||
<source>Later</source>
|
||||
<extracomment>'Later' : Button label to do something in another time.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>accept</source>
|
||||
<translation>確認</translation>
|
||||
<source>Correct</source>
|
||||
<extracomment>'Correct' : Button label to confirm a code.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>title</source>
|
||||
<extracomment>'Communication security' : Title of popup for ZRTP confirmation.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -3706,9 +3706,10 @@ Spustelėkite čia: <a href="%1">%1</a>
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<extracomment>'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.</extracomment>
|
||||
<translation>Patvirtinkite šią SAS su kolega.</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -3720,12 +3721,19 @@ Spustelėkite čia: <a href="%1">%1</a>
|
|||
<translation>Jūsų kontaktas turėtų sakyti:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deny</source>
|
||||
<translation>ATMESTI</translation>
|
||||
<source>Later</source>
|
||||
<extracomment>'Later' : Button label to do something in another time.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>accept</source>
|
||||
<translation>PATVIRTINTI</translation>
|
||||
<source>Correct</source>
|
||||
<extracomment>'Correct' : Button label to confirm a code.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>title</source>
|
||||
<extracomment>'Communication security' : Title of popup for ZRTP confirmation.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -2881,7 +2881,7 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
|
|
|||
|
|
@ -3693,9 +3693,10 @@ Clique aqui: <a href="%1">%1 </a>
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<extracomment>'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.</extracomment>
|
||||
<translation>Confirme o seguinte SAS com peer.</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -3707,12 +3708,19 @@ Clique aqui: <a href="%1">%1 </a>
|
|||
<translation>Seu contato deve dizer:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deny</source>
|
||||
<translation>NEGAR</translation>
|
||||
<source>Later</source>
|
||||
<extracomment>'Later' : Button label to do something in another time.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>accept</source>
|
||||
<translation>CONFIRMAR</translation>
|
||||
<source>Correct</source>
|
||||
<extracomment>'Correct' : Button label to confirm a code.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>title</source>
|
||||
<extracomment>'Communication security' : Title of popup for ZRTP confirmation.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -3706,9 +3706,10 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<extracomment>'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.</extracomment>
|
||||
<translation>Подтвердите следующую строку аутентификации с контактом.</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -3720,12 +3721,19 @@
|
|||
<translation>Ваш контакт должен сказать:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deny</source>
|
||||
<translation>ОТКЛОНИТЬ</translation>
|
||||
<source>Later</source>
|
||||
<extracomment>'Later' : Button label to do something in another time.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>accept</source>
|
||||
<translation>ПОДТВЕРДИТЬ</translation>
|
||||
<source>Correct</source>
|
||||
<extracomment>'Correct' : Button label to confirm a code.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>title</source>
|
||||
<extracomment>'Communication security' : Title of popup for ZRTP confirmation.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -3693,9 +3693,10 @@ Klicka här: <a href="%1">%1</a>
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<extracomment>'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.</extracomment>
|
||||
<translation>Bekräfta följande SAS med partner</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -3707,12 +3708,19 @@ Klicka här: <a href="%1">%1</a>
|
|||
<translation>Din kontaktperson bör säga:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deny</source>
|
||||
<translation>FÖRNEKA</translation>
|
||||
<source>Later</source>
|
||||
<extracomment>'Later' : Button label to do something in another time.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>accept</source>
|
||||
<translation>BEKRÄFTA</translation>
|
||||
<source>Correct</source>
|
||||
<extracomment>'Correct' : Button label to confirm a code.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>title</source>
|
||||
<extracomment>'Communication security' : Title of popup for ZRTP confirmation.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -3680,9 +3680,10 @@ Buraya tıklayın: <a href="%1">%1</a>
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<extracomment>'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.</extracomment>
|
||||
<translation>Aşağıdaki kısa yetkilendirme dizgesini eşinizle onaylayın.</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -3694,12 +3695,19 @@ Buraya tıklayın: <a href="%1">%1</a>
|
|||
<translation>Kişiniz şunu söylemeli:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deny</source>
|
||||
<translation>REDDET</translation>
|
||||
<source>Later</source>
|
||||
<extracomment>'Later' : Button label to do something in another time.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>accept</source>
|
||||
<translation>ONAYLA</translation>
|
||||
<source>Correct</source>
|
||||
<extracomment>'Correct' : Button label to confirm a code.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>title</source>
|
||||
<extracomment>'Communication security' : Title of popup for ZRTP confirmation.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -3706,9 +3706,10 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<extracomment>'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.</extracomment>
|
||||
<translation>Підтвердіть такий рядок автентифікації з контактом.</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -3720,12 +3721,19 @@
|
|||
<translation>Ваш контакт повинен сказати:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deny</source>
|
||||
<translation>ВІДХИЛИТИ</translation>
|
||||
<source>Later</source>
|
||||
<extracomment>'Later' : Button label to do something in another time.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>accept</source>
|
||||
<translation>СХВАЛИТИ</translation>
|
||||
<source>Correct</source>
|
||||
<extracomment>'Correct' : Button label to confirm a code.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>title</source>
|
||||
<extracomment>'Communication security' : Title of popup for ZRTP confirmation.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -3680,9 +3680,10 @@
|
|||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ZrtpTokenAuthentication</name>
|
||||
<name>ZrtpTokenAuthenticationDialog</name>
|
||||
<message>
|
||||
<source>confirmSas</source>
|
||||
<extracomment>'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.</extracomment>
|
||||
<translation>与同行确认以下 SAS。</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -3694,12 +3695,19 @@
|
|||
<translation>您的联系人应该说:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deny</source>
|
||||
<translation>否认</translation>
|
||||
<source>Later</source>
|
||||
<extracomment>'Later' : Button label to do something in another time.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>accept</source>
|
||||
<translation>确认</translation>
|
||||
<source>Correct</source>
|
||||
<extracomment>'Correct' : Button label to confirm a code.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>title</source>
|
||||
<extracomment>'Communication security' : Title of popup for ZRTP confirmation.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -349,6 +349,7 @@
|
|||
<file>ui/modules/Linphone/Dialog/OnlineInstallerDialog.qml</file>
|
||||
<file>ui/modules/Linphone/Dialog/SipAddressDialog.qml</file>
|
||||
<file>ui/modules/Linphone/Dialog/MultimediaParametersDialog.qml</file>
|
||||
<file>ui/modules/Linphone/Dialog/ZrtpTokenAuthenticationDialog.qml</file>
|
||||
<file>ui/modules/Linphone/File/FileView.qml</file>
|
||||
<file>ui/modules/Linphone/History/History.qml</file>
|
||||
<file>ui/modules/Linphone/History/History.js</file>
|
||||
|
|
@ -394,6 +395,7 @@
|
|||
<file>ui/modules/Linphone/Styles/Dialog/MultimediaParametersDialogStyle.qml</file>
|
||||
<file>ui/modules/Linphone/Styles/Dialog/OnlineInstallerDialogStyle.qml</file>
|
||||
<file>ui/modules/Linphone/Styles/Dialog/SipAddressDialogStyle.qml</file>
|
||||
<file>ui/modules/Linphone/Styles/Dialog/ZrtpTokenAuthenticationDialogStyle.qml</file>
|
||||
<file>ui/modules/Linphone/Styles/History/HistoryStyle.qml</file>
|
||||
<file>ui/modules/Linphone/Styles/Menus/SipAddressesMenuStyle.qml</file>
|
||||
<file>ui/modules/Linphone/Styles/Menus/IncallMenuStyle.qml</file>
|
||||
|
|
@ -441,7 +443,6 @@
|
|||
<file>ui/views/App/Calls/IncallGrid.qml</file>
|
||||
<file>ui/views/App/Calls/IncomingCall.qml</file>
|
||||
<file>ui/views/App/Calls/WaitingRoom.qml</file>
|
||||
<file>ui/views/App/Calls/ZrtpTokenAuthentication.qml</file>
|
||||
<file>ui/views/App/Dialog/NewConference.qml</file>
|
||||
<file>ui/views/App/Main/Assistant/ActivateAppSipAccountWithEmail.qml</file>
|
||||
<file>ui/views/App/Main/Assistant/ActivateAppSipAccountWithPhoneNumber.qml</file>
|
||||
|
|
|
|||
|
|
@ -61,6 +61,9 @@ CallModel::CallModel (shared_ptr<linphone::Call> call){
|
|||
SettingsModel *settings = coreManager->getSettingsModel();
|
||||
|
||||
connect(this, &CallModel::callIdChanged, this, &CallModel::chatRoomModelChanged);// When the call Id change, the chat room change.
|
||||
connect(this, &CallModel::encryptionChanged, this, &CallModel::securityUpdated);
|
||||
connect(this, &CallModel::isPQZrtpChanged, this, &CallModel::securityUpdated);
|
||||
|
||||
mCall = call;
|
||||
if(mCall)
|
||||
mCall->setData("call-model", *this);
|
||||
|
|
@ -70,6 +73,9 @@ CallModel::CallModel (shared_ptr<linphone::Call> call){
|
|||
connectTo(mCallListener.get());
|
||||
mCall->addListener(mCallListener);
|
||||
auto callParams = mCall->getParams();
|
||||
auto currentParams = mCall->getCurrentParams();
|
||||
if(currentParams)
|
||||
mEncryption = static_cast<CallEncryption>(currentParams->getMediaEncryption());
|
||||
mConferenceVideoLayout = LinphoneEnums::fromLinphone(callParams->getConferenceVideoLayout());
|
||||
if(mConferenceVideoLayout == LinphoneEnums::ConferenceLayoutGrid && !callParams->videoEnabled())
|
||||
mConferenceVideoLayout = LinphoneEnums::ConferenceLayoutAudioOnly;
|
||||
|
|
@ -80,6 +86,7 @@ CallModel::CallModel (shared_ptr<linphone::Call> call){
|
|||
settings->setCameraMode(settings->getActiveSpeakerCameraMode());
|
||||
}else
|
||||
settings->setCameraMode(settings->getCallCameraMode());
|
||||
|
||||
}
|
||||
|
||||
// Deal with auto-answer.
|
||||
|
|
@ -295,6 +302,8 @@ void CallModel::updateStats (const shared_ptr<const linphone::CallStats> &callSt
|
|||
break;
|
||||
|
||||
case linphone::StreamType::Audio:
|
||||
if( callStats)
|
||||
isPQZrtp(callStats->isZrtpKeyAgreementAlgoPostQuantum() ? CallPQStateOn : CallPQStateOff);
|
||||
updateStats(callStats, mAudioStats);
|
||||
updateEncrypionStats(callStats, mEncryptionStats);
|
||||
break;
|
||||
|
|
@ -470,8 +479,10 @@ void CallModel::stopRecording () {
|
|||
// -----------------------------------------------------------------------------
|
||||
|
||||
void CallModel::handleCallEncryptionChanged (const shared_ptr<linphone::Call> &call) {
|
||||
if (call == mCall)
|
||||
emit securityUpdated();
|
||||
if (call == mCall){
|
||||
if(!setEncryption(static_cast<CallEncryption>(mCall->getCurrentParams()->getMediaEncryption())))
|
||||
emit securityUpdated();
|
||||
}
|
||||
}
|
||||
|
||||
void CallModel::handleCallStateChanged (const shared_ptr<linphone::Call> &call, linphone::Call::State state) {
|
||||
|
|
@ -504,6 +515,7 @@ void CallModel::handleCallStateChanged (const shared_ptr<linphone::Call> &call,
|
|||
mPausedByRemote = false;
|
||||
updateConferenceVideoLayout();
|
||||
setCallId(QString::fromStdString(mCall->getCallLog()->getCallId()));
|
||||
updateEncryption();
|
||||
break;
|
||||
}
|
||||
case linphone::Call::State::Connected: getConferenceSharedModel();
|
||||
|
|
@ -1063,19 +1075,33 @@ void CallModel::updateConferenceVideoLayout(){
|
|||
// -----------------------------------------------------------------------------
|
||||
|
||||
CallModel::CallEncryption CallModel::getEncryption () const {
|
||||
if(mCall)
|
||||
return static_cast<CallEncryption>(mCall->getCurrentParams()->getMediaEncryption());
|
||||
else
|
||||
return CallEncryptionNone;
|
||||
return mEncryption;
|
||||
}
|
||||
|
||||
bool CallModel::setEncryption(const CallModel::CallEncryption& encryption){
|
||||
if( encryption != mEncryption){
|
||||
mEncryption = encryption;
|
||||
emit encryptionChanged();
|
||||
return true;
|
||||
}else
|
||||
return false;
|
||||
}
|
||||
|
||||
void CallModel::updateEncryption(){
|
||||
if(mCall){
|
||||
auto currentParams = mCall->getCurrentParams();
|
||||
if( currentParams){
|
||||
setEncryption(static_cast<CallEncryption>(currentParams->getMediaEncryption()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool CallModel::isSecured () const {
|
||||
if(mCall){
|
||||
shared_ptr<const linphone::CallParams> params = mCall->getCurrentParams();
|
||||
linphone::MediaEncryption encryption = params->getMediaEncryption();
|
||||
return (
|
||||
encryption == linphone::MediaEncryption::ZRTP && mCall->getAuthenticationTokenVerified()
|
||||
) || encryption == linphone::MediaEncryption::SRTP || encryption == linphone::MediaEncryption::DTLS;
|
||||
auto encryption = getEncryption();
|
||||
return (encryption == CallEncryptionZrtp && mCall->getAuthenticationTokenVerified())
|
||||
|| encryption == CallEncryptionSrtp
|
||||
|| encryption == CallEncryptionDtls;
|
||||
}else
|
||||
return false;
|
||||
}
|
||||
|
|
@ -1109,16 +1135,16 @@ QString CallModel::getRemoteSas () const {
|
|||
|
||||
QString CallModel::getSecuredString (const shared_ptr<const linphone::CallStats> &callStats) const {
|
||||
if(mCall){
|
||||
switch (mCall->getCurrentParams()->getMediaEncryption()) {
|
||||
case linphone::MediaEncryption::SRTP:
|
||||
switch (getEncryption()) {
|
||||
case CallEncryptionSrtp:
|
||||
return QStringLiteral("SRTP");
|
||||
case linphone::MediaEncryption::ZRTP:
|
||||
return (callStats && callStats->isZrtpKeyAgreementAlgoPostQuantum() || (!callStats && CoreManager::getInstance()->getCore()->getPostQuantumAvailable()) )
|
||||
case CallEncryptionZrtp:
|
||||
return (callStats && callStats->isZrtpKeyAgreementAlgoPostQuantum() || (!callStats && mIsPQZrtp == CallPQStateOn) )
|
||||
? QStringLiteral("Post Quantum ZRTP")
|
||||
: QStringLiteral("ZRTP");
|
||||
case linphone::MediaEncryption::DTLS:
|
||||
case CallEncryptionDtls:
|
||||
return QStringLiteral("DTLS");
|
||||
case linphone::MediaEncryption::None:
|
||||
case CallEncryptionNone:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1245,6 +1271,13 @@ void CallModel::updateEncrypionStats (const shared_ptr<const linphone::CallStats
|
|||
}
|
||||
}
|
||||
|
||||
void CallModel::isPQZrtp(const CallPQState& isPQ){
|
||||
if(mIsPQZrtp != isPQ){
|
||||
mIsPQZrtp = isPQ;
|
||||
emit isPQZrtpChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -85,11 +85,12 @@ class CallModel : public QObject {
|
|||
Q_PROPERTY(QVariantList videoStats READ getVideoStats NOTIFY statsUpdated)
|
||||
Q_PROPERTY(QVariantList encryptionStats READ getEncryptionStats NOTIFY statsUpdated)
|
||||
|
||||
Q_PROPERTY(CallEncryption encryption READ getEncryption NOTIFY securityUpdated)
|
||||
Q_PROPERTY(CallEncryption encryption READ getEncryption WRITE setEncryption NOTIFY encryptionChanged)
|
||||
Q_PROPERTY(bool isSecured READ isSecured NOTIFY securityUpdated)
|
||||
Q_PROPERTY(QString localSas READ getLocalSas NOTIFY securityUpdated)
|
||||
Q_PROPERTY(QString remoteSas READ getRemoteSas NOTIFY securityUpdated)
|
||||
Q_PROPERTY(QString securedString READ getSecuredString NOTIFY securityUpdated)
|
||||
Q_PROPERTY(CallPQState isPQZrtp MEMBER mIsPQZrtp WRITE isPQZrtp NOTIFY isPQZrtpChanged)
|
||||
|
||||
Q_PROPERTY(QString transferAddress READ getTransferAddress WRITE setTransferAddress NOTIFY transferAddressChanged)
|
||||
|
||||
|
|
@ -116,6 +117,13 @@ public:
|
|||
};
|
||||
Q_ENUM(CallEncryption);
|
||||
|
||||
enum CallPQState {
|
||||
CallPQStateNone = 0,
|
||||
CallPQStateOn,
|
||||
CallPQStateOff,
|
||||
};
|
||||
Q_ENUM(CallPQState);
|
||||
|
||||
CallModel (std::shared_ptr<linphone::Call> call);
|
||||
~CallModel ();
|
||||
|
||||
|
|
@ -220,6 +228,8 @@ signals:
|
|||
void statusChanged (CallStatus status);
|
||||
void videoRequested ();
|
||||
void securityUpdated ();
|
||||
void encryptionChanged();
|
||||
void isPQZrtpChanged();
|
||||
void speakerVolumeGainChanged (float volume);
|
||||
void microVolumeGainChanged (float volume);
|
||||
|
||||
|
|
@ -283,6 +293,8 @@ public:
|
|||
bool getSnapshotEnabled() const;
|
||||
|
||||
CallEncryption getEncryption () const;
|
||||
bool setEncryption(const CallModel::CallEncryption& encryption);// true if changed
|
||||
void updateEncryption();
|
||||
bool isSecured () const;
|
||||
|
||||
QString getLocalSas () const;
|
||||
|
|
@ -295,6 +307,7 @@ public:
|
|||
QVariantList getEncryptionStats () const;
|
||||
void updateStats (const std::shared_ptr<const linphone::CallStats> &callStats, QVariantList &statsList);
|
||||
void updateEncrypionStats (const std::shared_ptr<const linphone::CallStats> &callStats, QVariantList &statsList);
|
||||
void isPQZrtp(const CallPQState& isPQ);
|
||||
|
||||
QString iceStateToString (linphone::IceState state) const;
|
||||
|
||||
|
|
@ -312,6 +325,8 @@ private:
|
|||
void connectTo(CallListener * listener);
|
||||
|
||||
bool mIsInConference = false;
|
||||
CallPQState mIsPQZrtp = CallPQStateNone;
|
||||
CallEncryption mEncryption = CallEncryptionNone;
|
||||
|
||||
bool mEndByUser = false;
|
||||
bool mPausedByRemote = false;
|
||||
|
|
|
|||
|
|
@ -330,7 +330,7 @@ Item {
|
|||
hoverEnabled: true
|
||||
acceptedButtons: Qt.NoButton
|
||||
cursorShape: containsMouse ? Qt.PointingHandCursor : Qt.ArrowCursor
|
||||
visible: !iconIsCustom
|
||||
visible: !iconIsCustom && !tooltip.visible
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,165 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Layouts 1.3
|
||||
|
||||
import Common 1.0
|
||||
import Linphone 1.0
|
||||
|
||||
import Linphone.Styles 1.0
|
||||
|
||||
// =============================================================================
|
||||
DialogPlus {
|
||||
id: mainItem
|
||||
|
||||
property var addressSelectedCallback
|
||||
property var chatRoomSelectedCallback
|
||||
|
||||
property var call
|
||||
property alias localSas: localSasText.text
|
||||
property alias remoteSas : remoteSasText.text
|
||||
|
||||
buttons: [
|
||||
TextButtonA {
|
||||
//: 'Later' : Button label to do something in another time.
|
||||
text: qsTr('Later')
|
||||
onClicked: {
|
||||
if(mainItem.call) mainItem.call.verifyAuthenticationToken(false)
|
||||
mainItem.exit(0)
|
||||
}
|
||||
},
|
||||
|
||||
TextButtonC {
|
||||
//: 'Correct' : Button label to confirm a code.
|
||||
text: qsTr('Correct')
|
||||
onClicked: {
|
||||
if(mainItem.call) mainItem.call.verifyAuthenticationToken(true)
|
||||
mainItem.exit(1)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
|
||||
buttonsAlignment: Qt.AlignCenter
|
||||
height: 400
|
||||
width: 350
|
||||
|
||||
radius: 10
|
||||
onCallChanged: if(!call) exit(0)
|
||||
Component.onCompleted: if( !localSas || !remoteSas) mainItem.exit(0)
|
||||
|
||||
ColumnLayout {
|
||||
id:columnLayout
|
||||
// ---------------------------------------------------------------------------
|
||||
anchors.fill: parent
|
||||
Layout.fillWidth: true
|
||||
|
||||
Icon{
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
Layout.bottomMargin: 5
|
||||
icon: mainItem.call.isPQZrtp === CallModel.CallPQStateOn
|
||||
? ZrtpTokenAuthenticationDialogStyle.pqIcon
|
||||
: mainItem.call.isPQZrtp === CallModel.CallPQStateOff
|
||||
? ZrtpTokenAuthenticationDialogStyle.icon
|
||||
: ZrtpTokenAuthenticationDialogStyle.secureIcon
|
||||
iconSize: ZrtpTokenAuthenticationDialogStyle.iconSize
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Main text.
|
||||
// ---------------------------------------------------------------------------
|
||||
Text {
|
||||
Layout.fillWidth: true
|
||||
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
//: 'Communication security' : Title of popup for ZRTP confirmation.
|
||||
text: qsTr('title')
|
||||
|
||||
color: ZrtpTokenAuthenticationDialogStyle.text.colorA
|
||||
wrapMode: Text.WordWrap
|
||||
|
||||
font {
|
||||
bold: true
|
||||
pointSize: ZrtpTokenAuthenticationDialogStyle.text.titlePointSize
|
||||
}
|
||||
}
|
||||
Text {
|
||||
Layout.fillWidth: true
|
||||
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
//: 'To raise the security level, you can check the following codes with your correspondent.' : Explanation to do a security check.
|
||||
text: qsTr('confirmSas')
|
||||
|
||||
color: ZrtpTokenAuthenticationDialogStyle.text.colorA
|
||||
wrapMode: Text.WordWrap
|
||||
|
||||
font.pointSize: ZrtpTokenAuthenticationDialogStyle.text.pointSize
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Rules.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
|
||||
spacing: ZrtpTokenAuthenticationDialogStyle.text.wordsSpacing
|
||||
|
||||
Text {
|
||||
Layout.fillWidth: true
|
||||
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
color: ZrtpTokenAuthenticationDialogStyle.text.colorA
|
||||
font.pointSize: ZrtpTokenAuthenticationDialogStyle.text.pointSize
|
||||
text: qsTr('codeA')
|
||||
}
|
||||
|
||||
Text {
|
||||
id: localSasText
|
||||
Layout.fillWidth: true
|
||||
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
color: ZrtpTokenAuthenticationDialogStyle.text.colorB
|
||||
|
||||
font {
|
||||
bold: true
|
||||
pointSize: ZrtpTokenAuthenticationDialogStyle.text.sasPointSize
|
||||
}
|
||||
|
||||
text: mainItem.call?mainItem.call.localSas:''
|
||||
}
|
||||
|
||||
Text {
|
||||
Layout.fillWidth: true
|
||||
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
color: ZrtpTokenAuthenticationDialogStyle.text.colorA
|
||||
font.pointSize: ZrtpTokenAuthenticationDialogStyle.text.pointSize
|
||||
text: qsTr('codeB')
|
||||
}
|
||||
|
||||
Text {
|
||||
id: remoteSasText
|
||||
Layout.fillWidth: true
|
||||
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
color: ZrtpTokenAuthenticationDialogStyle.text.colorB
|
||||
|
||||
font {
|
||||
bold: true
|
||||
pointSize: ZrtpTokenAuthenticationDialogStyle.text.sasPointSize
|
||||
}
|
||||
|
||||
text: mainItem.call?mainItem.call.remoteSas:''
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
pragma Singleton
|
||||
import QtQml 2.2
|
||||
|
||||
import Units 1.0
|
||||
import ColorsList 1.0
|
||||
|
||||
// =============================================================================
|
||||
|
||||
QtObject {
|
||||
property string sectionName : 'ZrtpTokenAuthenticationDialog'
|
||||
|
||||
property int height: 50
|
||||
property string pqIcon: 'secure_pq_zrtp'
|
||||
property string secureIcon: 'secure_on'
|
||||
property string icon: 'secure_level_2'
|
||||
|
||||
property int iconSize: 60
|
||||
|
||||
property QtObject buttons: QtObject {
|
||||
property int spacing: 10
|
||||
}
|
||||
|
||||
property QtObject text: QtObject {
|
||||
property color colorA: ColorsList.add(sectionName+'_zrtp_text_a', 'j').color
|
||||
property color colorB: ColorsList.add(sectionName+'_zrtp_text_b', 's').color
|
||||
property int pointSize: Units.dp * 10
|
||||
property int titlePointSize: Units.dp * 12
|
||||
property int sasPointSize: Units.dp * 13
|
||||
property int wordsSpacing: 5
|
||||
}
|
||||
}
|
||||
|
|
@ -34,6 +34,8 @@ singleton ContactStyle 1.0 Contact/ContactStyle.qml
|
|||
singleton MultimediaParametersDialogStyle 1.0 Dialog/MultimediaParametersDialogStyle.qml
|
||||
singleton OnlineInstallerDialogStyle 1.0 Dialog/OnlineInstallerDialogStyle.qml
|
||||
singleton SipAddressDialogStyle 1.0 Dialog/SipAddressDialogStyle.qml
|
||||
singleton ZrtpTokenAuthenticationDialogStyle 1.0 Dialog/ZrtpTokenAuthenticationDialogStyle.qml
|
||||
|
||||
|
||||
singleton HistoryStyle 1.0 History/HistoryStyle.qml
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ ContactDescription 1.0 Contact/ContactDescription.qml
|
|||
|
||||
SipAddressDialog 1.0 Dialog/SipAddressDialog.qml
|
||||
MultimediaParametersDialog 1.0 Dialog/MultimediaParametersDialog.qml
|
||||
ZrtpTokenAuthenticationDialog 1.0 Dialog/ZrtpTokenAuthenticationDialog.qml
|
||||
|
||||
FileView 1.0 File/FileView.qml
|
||||
|
||||
|
|
|
|||
|
|
@ -100,12 +100,12 @@ function handleVideoRequested (call) {
|
|||
})
|
||||
}
|
||||
|
||||
function makeReadableSecuredString (securedString) {
|
||||
if (!securedString || !securedString.length) {
|
||||
function makeReadableSecuredString (isSecured, secureString) {
|
||||
if (!isSecured) {
|
||||
return qsTr('callNotSecured')
|
||||
}
|
||||
|
||||
return qsTr('securedStringFormat').replace('%1', securedString)
|
||||
return qsTr('securedStringFormat').replace('%1', secureString)
|
||||
}
|
||||
|
||||
function openCallStatistics () {
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ Rectangle {
|
|||
}
|
||||
onParticipantCountChanged: Qt.callLater(function (){delayMessageBanner.restart()})
|
||||
onIsReadyChanged: Qt.callLater(function (){delayMessageBanner.restart()})
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
color: IncallStyle.backgroundColor
|
||||
|
|
@ -69,6 +70,9 @@ Rectangle {
|
|||
delayMessageBanner.restart()
|
||||
}
|
||||
onVideoRequested: Logic.handleVideoRequested(callModel)
|
||||
onEncryptionChanged: if(!callModel.isSecured && callModel.encryption === CallModel.CallEncryptionZrtp){
|
||||
window.attachVirtualWindow(Utils.buildLinphoneDialogUri('ZrtpTokenAuthenticationDialog'), {call:callModel})
|
||||
}
|
||||
}
|
||||
// ---------------------------------------------------------------------------
|
||||
Rectangle{
|
||||
|
|
@ -293,7 +297,7 @@ Rectangle {
|
|||
anchors.top: featuresRow.bottom
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: zrtp.top
|
||||
anchors.bottom: actionsButtons.top
|
||||
|
||||
anchors.topMargin: 15
|
||||
anchors.bottomMargin: 20
|
||||
|
|
@ -372,23 +376,6 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
}
|
||||
Loader{
|
||||
id: zrtp
|
||||
active: call && !call.isSecured && call.encryption === CallModel.CallEncryptionZrtp
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.bottom: actionsButtons.top
|
||||
anchors.leftMargin: CallStyle.container.margins
|
||||
anchors.rightMargin: CallStyle.container.margins
|
||||
anchors.bottomMargin: CallStyle.container.margins
|
||||
height: active ? implicitHeight : 0
|
||||
sourceComponent:Component{
|
||||
ZrtpTokenAuthentication {
|
||||
call: callModel
|
||||
z: Constants.zPopup
|
||||
onClose: {zrtp.active = false}
|
||||
}
|
||||
}
|
||||
}
|
||||
// -------------------------------------------------------------------------
|
||||
// Action Buttons.
|
||||
// -------------------------------------------------------------------------
|
||||
|
|
@ -406,14 +393,16 @@ Rectangle {
|
|||
backgroundRadius: width/2
|
||||
|
||||
colorSet: callModel.isSecured
|
||||
? SettingsModel.isPostQuantumAvailable && callModel.encryption === CallModel.CallEncryptionZrtp
|
||||
? SettingsModel.isPostQuantumAvailable && callModel.encryption === CallModel.CallEncryptionZrtp && callModel.isPQZrtp == CallModel.CallPQStateOn
|
||||
? IncallStyle.buttons.postQuantumSecure
|
||||
: IncallStyle.buttons.secure
|
||||
: IncallStyle.buttons.unsecure
|
||||
|
||||
onClicked: zrtp.active =(callModel.encryption === CallModel.CallEncryptionZrtp)
|
||||
onClicked: if(callModel.encryption === CallModel.CallEncryptionZrtp){
|
||||
window.attachVirtualWindow(Utils.buildLinphoneDialogUri('ZrtpTokenAuthenticationDialog'), {call:callModel})
|
||||
}
|
||||
|
||||
tooltipText: Logic.makeReadableSecuredString(callModel.securedString)
|
||||
tooltipText: Logic.makeReadableSecuredString(callModel.isSecured, callModel.securedString)
|
||||
}
|
||||
RowLayout{
|
||||
visible: callModel.remoteRecording
|
||||
|
|
|
|||
|
|
@ -83,6 +83,9 @@ Window {
|
|||
onCameraFirstFrameReceived: Logic.handleCameraFirstFrameReceived(width, height)
|
||||
onStatusChanged: Logic.handleStatusChanged (status, conference._fullscreen)
|
||||
onVideoRequested: Logic.handleVideoRequested(callModel)
|
||||
onEncryptionChanged: if(!callModel.isSecured && callModel.encryption === CallModel.CallEncryptionZrtp){
|
||||
window.attachVirtualWindow(Utils.buildLinphoneDialogUri('ZrtpTokenAuthenticationDialog'), {call:callModel})
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
|
@ -259,7 +262,7 @@ Window {
|
|||
anchors.top: featuresRow.bottom
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: zrtp.top
|
||||
anchors.bottom: actionsButtons.top
|
||||
|
||||
anchors.topMargin: window.hideButtons ? 0 : 15
|
||||
anchors.bottomMargin: window.hideButtons ? 0 : 20
|
||||
|
|
@ -336,22 +339,6 @@ Window {
|
|||
// -------------------------------------------------------------------------
|
||||
// Action Buttons.
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
Loader{
|
||||
id: zrtp
|
||||
active: call && !call.isSecured && call.encryption === CallModel.CallEncryptionZrtp
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.bottom: actionsButtons.top
|
||||
anchors.margins: CallStyle.container.margins
|
||||
height: active ? implicitHeight : 0
|
||||
sourceComponent:Component{
|
||||
ZrtpTokenAuthentication {
|
||||
call: callModel
|
||||
z: Constants.zPopup
|
||||
onClose: {zrtp.active = false}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Security
|
||||
ActionButton{
|
||||
id: securityButton
|
||||
|
|
@ -362,13 +349,20 @@ Window {
|
|||
height: IncallStyle.buttons.secure.buttonSize
|
||||
width: height
|
||||
isCustom: true
|
||||
iconIsCustom: ! (callModel.isSecured && SettingsModel.isPostQuantumAvailable && callModel.encryption === CallModel.CallEncryptionZrtp)
|
||||
backgroundRadius: width/2
|
||||
|
||||
colorSet: callModel.isSecured ? IncallStyle.buttons.secure : IncallStyle.buttons.unsecure
|
||||
colorSet: callModel.isSecured
|
||||
? SettingsModel.isPostQuantumAvailable && callModel.encryption === CallModel.CallEncryptionZrtp && callModel.isPQZrtp == CallModel.CallPQStateOn
|
||||
? IncallStyle.buttons.postQuantumSecure
|
||||
: IncallStyle.buttons.secure
|
||||
: IncallStyle.buttons.unsecure
|
||||
|
||||
onClicked: zrtp.active = (callModel.encryption === CallModel.CallEncryptionZrtp)
|
||||
onClicked: if(callModel.encryption === CallModel.CallEncryptionZrtp){
|
||||
window.attachVirtualWindow(Utils.buildLinphoneDialogUri('ZrtpTokenAuthenticationDialog'), {call:callModel})
|
||||
}
|
||||
|
||||
tooltipText: Logic.makeReadableSecuredString(callModel.securedString)
|
||||
tooltipText: Logic.makeReadableSecuredString(callModel.isSecured, callModel.securedString)
|
||||
}
|
||||
RowLayout{
|
||||
visible: callModel && callModel.remoteRecording
|
||||
|
|
|
|||
|
|
@ -1,139 +0,0 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Layouts 1.3
|
||||
|
||||
import Common 1.0
|
||||
import Linphone 1.0
|
||||
|
||||
import App.Styles 1.0
|
||||
|
||||
// =============================================================================
|
||||
Rectangle{
|
||||
id: zrtp
|
||||
property var call
|
||||
property alias localSas: localSasText.text
|
||||
property alias remoteSas : remoteSasText.text
|
||||
|
||||
signal close()
|
||||
color:"transparent"
|
||||
|
||||
implicitWidth: columnLayout.implicitWidth
|
||||
implicitHeight: columnLayout.implicitHeight+CallStyle.container.margins
|
||||
|
||||
radius: 10
|
||||
Component.onCompleted: if( !localSas || !remoteSas) zrtp.close()
|
||||
|
||||
ColumnLayout {
|
||||
id:columnLayout
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
Layout.fillWidth: true
|
||||
anchors.bottom: parent.bottom
|
||||
|
||||
Icon{
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
Layout.bottomMargin: 5
|
||||
visible: SettingsModel.isPostQuantumAvailable
|
||||
icon: CallStyle.zrtpArea.pqIcon
|
||||
iconSize: CallStyle.zrtpArea.iconSize
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Main text.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
Text {
|
||||
Layout.fillWidth: true
|
||||
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
|
||||
text: qsTr('confirmSas')
|
||||
|
||||
color: CallStyle.zrtpArea.text.colorA
|
||||
elide: Text.ElideRight
|
||||
|
||||
font {
|
||||
bold: true
|
||||
pointSize: CallStyle.zrtpArea.text.pointSize
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Rules.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
Row {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
|
||||
spacing: CallStyle.zrtpArea.text.wordsSpacing
|
||||
|
||||
Text {
|
||||
color: CallStyle.zrtpArea.text.colorA
|
||||
font.pointSize: CallStyle.zrtpArea.text.pointSize
|
||||
text: qsTr('codeA')
|
||||
}
|
||||
|
||||
Text {
|
||||
id: localSasText
|
||||
color: CallStyle.zrtpArea.text.colorB
|
||||
|
||||
font {
|
||||
bold: true
|
||||
pointSize: CallStyle.zrtpArea.text.pointSize
|
||||
}
|
||||
|
||||
text: zrtp.call?zrtp.call.localSas:''
|
||||
}
|
||||
|
||||
Text {
|
||||
color: CallStyle.zrtpArea.text.colorA
|
||||
font.pointSize: CallStyle.zrtpArea.text.pointSize
|
||||
text: '-'
|
||||
}
|
||||
|
||||
Text {
|
||||
color: CallStyle.zrtpArea.text.colorA
|
||||
font.pointSize: CallStyle.zrtpArea.text.pointSize
|
||||
text: qsTr('codeB')
|
||||
}
|
||||
|
||||
Text {
|
||||
id: remoteSasText
|
||||
color: CallStyle.zrtpArea.text.colorB
|
||||
|
||||
font {
|
||||
bold: true
|
||||
pointSize: CallStyle.zrtpArea.text.pointSize
|
||||
}
|
||||
|
||||
text: zrtp.call?zrtp.call.remoteSas:''
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Buttons.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
Row {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
|
||||
spacing: CallStyle.zrtpArea.buttons.spacing
|
||||
|
||||
TextButtonA {
|
||||
text: qsTr('deny')
|
||||
onClicked: {
|
||||
zrtp.call.verifyAuthenticationToken(false)
|
||||
zrtp.close()
|
||||
}
|
||||
}
|
||||
|
||||
TextButtonB {
|
||||
text: qsTr('accept')
|
||||
onClicked: {
|
||||
zrtp.call.verifyAuthenticationToken(true)
|
||||
zrtp.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue