diff --git a/translations/lrc_ar.ts b/translations/lrc_ar.ts
index 7a2b6db821ca1487b18da8614514f770a7eab919..fe2c9af92843bdc88b33648fa0ee075927dfc0ad 100644
--- a/translations/lrc_ar.ts
+++ b/translations/lrc_ar.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>ملف</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_bg.ts b/translations/lrc_bg.ts
index ea123a133c3c40d829a2c67af342177d80221b8f..b396b55c07d2d31c3b0b3f70e7bd8e55621c2294 100644
--- a/translations/lrc_bg.ts
+++ b/translations/lrc_bg.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>ФАЙЛ</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_ca.ts b/translations/lrc_ca.ts
index fdf7e77461b2d42d67087d5b095c58d0c0d7352f..124a512930764f6d979f933747f42d1bf44f1c85 100644
--- a/translations/lrc_ca.ts
+++ b/translations/lrc_ca.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_cs_CZ.ts b/translations/lrc_cs_CZ.ts
index 4aee58592e2f6775fb490527a3ae0ae7fa23bd12..da9ce4ff06fd0de03362be2808f336fabc6e31de 100644
--- a/translations/lrc_cs_CZ.ts
+++ b/translations/lrc_cs_CZ.ts
@@ -1381,50 +1381,50 @@
         <translation>Sbírka profilů peerů</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>SOUBOR</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_da_DK.ts b/translations/lrc_da_DK.ts
index 03b8b7c968fda2c5d4be84930b8aca1caf6f26fe..c5d3784431f395ddf4bb6574d7d9c6231d9571c7 100644
--- a/translations/lrc_da_DK.ts
+++ b/translations/lrc_da_DK.ts
@@ -1381,50 +1381,50 @@
         <translation>Partners Profil-samling</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>Invitation modtaget</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>Kontakt tilføjet</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>Invitation accepteret</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>📞 Udgående opkald</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>📞 Indgående opkald</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>📞 Udgående opkald - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>📞 Indgående opkald - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation>🕽 Mistede udgående opkald</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>🕽 Misteede indgående opkald</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>FILE</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_de.ts b/translations/lrc_de.ts
index d99dcdb876ff1b94184e2c8fe6c0c0ff5f1af0ec..686ec9b2522b57618ffc8c8dfc831d0c5595fbbb 100644
--- a/translations/lrc_de.ts
+++ b/translations/lrc_de.ts
@@ -1381,50 +1381,50 @@
         <translation>Sammlung der Teilnehmerprofile</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>Einladung erhalten</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>Kontakt hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>Einladung angenommen</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>📞 Ausgehender Anruf</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>📞 Eingehender Anruf</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>📞 Ausgehender Anruf - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>📞 Eingehender Anruf - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation>🕽 Verpasster ausgehender Anruf</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>🕽 Verpasster eingehender Anruf</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>DATEI</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_de_DE.ts b/translations/lrc_de_DE.ts
index 38e64283daaadefbf0652e256774d6ffd4853248..91472077d3bc2825c4106ca23f4469778961c41a 100644
--- a/translations/lrc_de_DE.ts
+++ b/translations/lrc_de_DE.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>DATEI</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_el.ts b/translations/lrc_el.ts
index 5fabc1e92f50708e4ba8977b561ab757cf76a619..2ca4498ae9b1d1d6299f3435ad4b6bfc397a97c8 100644
--- a/translations/lrc_el.ts
+++ b/translations/lrc_el.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_en.ts b/translations/lrc_en.ts
index 804e7635d4c7da8b996f8d56f7e1f1968a575717..12899ae21a59f45fa912aec04e143f1036b68d86 100644
--- a/translations/lrc_en.ts
+++ b/translations/lrc_en.ts
@@ -1383,50 +1383,50 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1486,6 +1486,37 @@
         <translation type="unfinished"></translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_en_GB.ts b/translations/lrc_en_GB.ts
index 37d06858d1aa6055a8bc3d29f2f4d8df5e1dae7f..ef7b38312d4305338ea81f348dc4ef04f3f438f9 100644
--- a/translations/lrc_en_GB.ts
+++ b/translations/lrc_en_GB.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_eo.ts b/translations/lrc_eo.ts
index c69a5d48862db710987e12418ca0f831a26294b6..132b22e4bcbc8dad84ec74561780d75370efd452 100644
--- a/translations/lrc_eo.ts
+++ b/translations/lrc_eo.ts
@@ -1381,50 +1381,50 @@
         <translation>Kolekto de Samtavolanaj Profiloj</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>DOSIERO</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_es.ts b/translations/lrc_es.ts
index ebc9b943c80eafbd2a1f116b13c522c3a069e4ba..3fa00b28a7c707f8c212d5bff94c402cdd445b9e 100644
--- a/translations/lrc_es.ts
+++ b/translations/lrc_es.ts
@@ -1381,50 +1381,50 @@
         <translation>Colección de perfiles de pares</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>Invitación recibida</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>Contacto añadido</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>Invitación aceptada</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>📞 Llamada saliente</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>📞 Llamada entrante</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>📞 Llamada saliente - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>📞 Llamada entrante - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation>🕽 Llamada saliente perdida</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>🕽 Llamada entrante perdida</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>ARCHIVO</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_es_AR.ts b/translations/lrc_es_AR.ts
index f02eb169ad223b19414de76e1ca86a864c5c9c6e..155d2f31de1b6e1c254f0ae2733c157b044e68fd 100644
--- a/translations/lrc_es_AR.ts
+++ b/translations/lrc_es_AR.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>Invitación recibida</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>Contacto añadido</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>Invitación aceptada</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_et_EE.ts b/translations/lrc_et_EE.ts
index b25adc531c64a9554dd1a71769463c2db9192a37..8676bad99566f895738b5ed3b85b086394531116 100644
--- a/translations/lrc_et_EE.ts
+++ b/translations/lrc_et_EE.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_eu.ts b/translations/lrc_eu.ts
index a8a032376324b34b9b6eaaf34be0e85be043f052..f69dc94b1d86002bbe29cd68b99683ad778636ca 100644
--- a/translations/lrc_eu.ts
+++ b/translations/lrc_eu.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_fa_IR.ts b/translations/lrc_fa_IR.ts
index 005f9f0d8ef42f7abfa24b8c7d4506829e5d3c92..eec95fbcb304ad4a24965ef27cc7907d7b3d0746 100644
--- a/translations/lrc_fa_IR.ts
+++ b/translations/lrc_fa_IR.ts
@@ -1381,50 +1381,50 @@
         <translation>مجموعه پروفیل های همکار</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>دعوت نامه دریافت شد</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>مخاطب افزوده شد</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>دعوت پذیرفته شد</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>📞 تماس خروجی</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>📞 تماس ورودی</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>📞 تماس خروجی -</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>📞 تماس ورودی -</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation>🕽  تماس تلفنی رد شد</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>🕽 تماس تلفنی رد شد</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>فایل</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_fi.ts b/translations/lrc_fi.ts
index 5a329268ea4d774c1bb7245c8ef3de8c4d3a78ed..1699fc39c09383200573051e3ada17212e9ba791 100644
--- a/translations/lrc_fi.ts
+++ b/translations/lrc_fi.ts
@@ -1382,50 +1382,50 @@ Virhe</translation>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1485,6 +1485,37 @@ Virhe</translation>
         <translation>TIEDOSTO</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_fr.ts b/translations/lrc_fr.ts
index 93c50f4285cc6c2963e5e6c21cd7607c9b4f1fdb..d83153d0428d0e9fc4050f93ac42953820be022f 100644
--- a/translations/lrc_fr.ts
+++ b/translations/lrc_fr.ts
@@ -1381,50 +1381,50 @@
         <translation>Liste des profils paires</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>Invitation reçue</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>Contact ajouté</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>Invitation acceptée</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>ð Appel sortant</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>ð Appel entrant</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>ð Appel sortant -</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>ð Appel entrant -</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation>🕽 Appel sortant raté</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>🕽 Appels entrants ratés</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>FICHIER</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_fr_CA.ts b/translations/lrc_fr_CA.ts
index c661f3c6c343b0f70cb006965ad29f68ca7dab7e..99625c00d42753b5908e3af42219f8b0215503f3 100644
--- a/translations/lrc_fr_CA.ts
+++ b/translations/lrc_fr_CA.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_fr_CH.ts b/translations/lrc_fr_CH.ts
index 7d29702772742d5aa44106d6ad876feddaccdfc2..c24e2bb3bd392c7c9ce27cadb9aaf35281f5feb7 100644
--- a/translations/lrc_fr_CH.ts
+++ b/translations/lrc_fr_CH.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_fr_FR.ts b/translations/lrc_fr_FR.ts
index 96fd16924f7be122dec87c00d571193f05237341..17f7783ffa9e8d4e61bb9515c3e363b710686f69 100644
--- a/translations/lrc_fr_FR.ts
+++ b/translations/lrc_fr_FR.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_he.ts b/translations/lrc_he.ts
index 010879f4634cbcfdf46a4ebcee7bbcd59e2f6b58..ebd2fd53dfaf63b16370506c11887d5cacc007fe 100644
--- a/translations/lrc_he.ts
+++ b/translations/lrc_he.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_hi_IN.ts b/translations/lrc_hi_IN.ts
index f789cdb7f506dbfa1770b2f6c58af601ab43c784..31f02128a9b10716c2ff50bcfe757ef4c72c9d6f 100644
--- a/translations/lrc_hi_IN.ts
+++ b/translations/lrc_hi_IN.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_hr.ts b/translations/lrc_hr.ts
index 65df02b09967ac2fcdf03748a23cde46b2568b1a..4c98d1a27c0731444788b955265304050e0137e1 100644
--- a/translations/lrc_hr.ts
+++ b/translations/lrc_hr.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>DATOTEKA</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_hu.ts b/translations/lrc_hu.ts
index 583213cf8562cce8c68c3a4e7758146fa2e02227..13eff57e2ec5e4c7821b77622cc01972172d1224 100644
--- a/translations/lrc_hu.ts
+++ b/translations/lrc_hu.ts
@@ -1381,50 +1381,50 @@
         <translation>Peer profilgyűjtemény</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>Meghívó érkezett</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>Kapcsolat hozzáadva</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>Meghívó elfogadva</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>📞 Kimenő hívás</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>ð Bejövő hívás</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>📞 Kimenő hívás - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>ð Bejövő hívás - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation>🕽 Nem fogadott kimenő hívás</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>🕽 Nem fogadott bejövő hívás</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>FÁJL</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_id.ts b/translations/lrc_id.ts
index 1e28b91296754ef304975997702046c17d91a8df..7cbbc16e87e4b587813b9fcead710596fa89a3d1 100644
--- a/translations/lrc_id.ts
+++ b/translations/lrc_id.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_it.ts b/translations/lrc_it.ts
index a2d95cad98a86c67f43968954fca0715e4ce61ea..8158640c67584e399222d293bda414dfc461c0f3 100644
--- a/translations/lrc_it.ts
+++ b/translations/lrc_it.ts
@@ -1381,50 +1381,50 @@
         <translation>Elenco dei profili peer</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>FILE</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_it_IT.ts b/translations/lrc_it_IT.ts
index ccd0724ccaa59264bd6edb3f2c91d44b717360dc..66b427fc5ab8b1c4f6171e8e7c1e966f526ea9b6 100644
--- a/translations/lrc_it_IT.ts
+++ b/translations/lrc_it_IT.ts
@@ -1381,50 +1381,50 @@
         <translation>Collezione profili dei peer</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>FILE</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_ja.ts b/translations/lrc_ja.ts
index 10bd6fc62cf78110b39e9401d96976b4f44bac4e..df33a192409760f78fc32b91885f3e2e3af49408 100644
--- a/translations/lrc_ja.ts
+++ b/translations/lrc_ja.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_ko_KR.ts b/translations/lrc_ko_KR.ts
index 6bdaab18cae38fd9d169c5047d8af8268efb8e19..e875845ec867c9b36f9ae7fa819197598a451d35 100644
--- a/translations/lrc_ko_KR.ts
+++ b/translations/lrc_ko_KR.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_lt.ts b/translations/lrc_lt.ts
index d7a0f768548e5749f247472efa6934b95f66e1ef..a1e1566f9e13c9494cf042cb62f132f311ca494f 100644
--- a/translations/lrc_lt.ts
+++ b/translations/lrc_lt.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>Kontaktas pridėtas</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>Pakvietimas priimtas</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>📞 Išsiunčiamasis skambutis</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>📞 Gaunamasis skambutis</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>📞 Išsiunčiamasis skambutis - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>📞 Gaunamasis skambutis - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>🕽 Praleistas gaunamasis skambutis</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>FAILAS</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_ms.ts b/translations/lrc_ms.ts
index f6a532136336fcaaa1fbe283e51b3ea6b7ee08ec..c966deed35f50b540074d5a08fa91a6f7043c040 100644
--- a/translations/lrc_ms.ts
+++ b/translations/lrc_ms.ts
@@ -1382,50 +1382,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1485,6 +1485,37 @@
         <translation>FAIL</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_nb.ts b/translations/lrc_nb.ts
index 30fe326baef0035f2952b96f578fdc6ce3c00017..3d4ee63285dc4650e354295b9811915ff8b4b95e 100644
--- a/translations/lrc_nb.ts
+++ b/translations/lrc_nb.ts
@@ -1381,50 +1381,50 @@
         <translation>Samling av likemannsprofiler</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>Invitasjon mottatt</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>Kontakt lagt til</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>Invitasjon godtatt</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>📞 Utgående anrop</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>📞 Innkommende anrop</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>📞 Utgående anrop - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>📞 Innkommende anrop - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation>🕽 Ubesvart utgående anrop</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>🕽 Tapt innkommende anrop</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>FIL</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_nl.ts b/translations/lrc_nl.ts
index fb4b5e2e6d596fe051c77c3ee3c5de43f45dca0b..9171cfab44ebf02ca0f80f13020c82c5c66e04ea 100644
--- a/translations/lrc_nl.ts
+++ b/translations/lrc_nl.ts
@@ -1381,50 +1381,50 @@
         <translation>Peerprofielverzameling</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>Uitnodiging ontvangen</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>Contact toegevoegd</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>Uitnodiging aanvaard</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>ð Uitgaande oproep</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>ð Inkomende oproep</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>ð Uitgaande oproep -</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>ð Inkomende oproep -</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation>ð½ Gemiste uitgaande oproep</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>ð½ Gemiste inkomende oproep</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>BESTAND</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_nl_BE.ts b/translations/lrc_nl_BE.ts
index d491f3798f5a92f420ad57c372028004874c1a7d..45518d02da74c084d5463a5ce2578a03ed4c0381 100644
--- a/translations/lrc_nl_BE.ts
+++ b/translations/lrc_nl_BE.ts
@@ -1381,50 +1381,50 @@
         <translation>Peerprofielverzameling</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>Uitnodiging ontvangen</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>Contact toegevoegd</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>Uitnodiging aanvaard</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>📞 Uitgaanden oproep</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>📞 Inkomenden oproep</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>📞 Uitgaanden oproep - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>📞 Inkomenden oproep - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation>🕽 Gemisten uitgaanden oproep</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>🕽 Gemisten inkomenden oproep</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>BESTAND</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_nl_NL.ts b/translations/lrc_nl_NL.ts
index 4dfb714e3e51fc53cbc38e50690f224bcdd5cd5d..f749855ddc58852ed1c7fad9a6b2cbecc1306c11 100644
--- a/translations/lrc_nl_NL.ts
+++ b/translations/lrc_nl_NL.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_pa.ts b/translations/lrc_pa.ts
index 69b6cbc6073846a7edf450ed79804002bb14f0c9..7a92d57bbe20a53ba4706a2f57f87ce8010ae465 100644
--- a/translations/lrc_pa.ts
+++ b/translations/lrc_pa.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_pl.ts b/translations/lrc_pl.ts
index 53280d372baaa8e20d9a8aecd5cf3330e143eb2f..f03062c0b279e4c066a67c8b9463f527be136a40 100644
--- a/translations/lrc_pl.ts
+++ b/translations/lrc_pl.ts
@@ -1381,50 +1381,50 @@
         <translation>Kolekcja profil peer</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>Otrzymano zaproszenie</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>Kontakt dodany</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>Zaakceptowano zaproszenie</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>ð Połączenie wychodzące</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>ð Połączenie przychodzące</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>ð Połączenie wychodzące -</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>ð Połączenie przychodzące -</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation>🕽 Nieodebrane połączenie wychodzące</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>🕽 Nieodebrane połączenia przychodzące</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>PLIK</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_pt.ts b/translations/lrc_pt.ts
index a5306b73cf5d9d39c329317cb3b806660acaa336..0ab46c9503a3b8bccab5ae76fdfd46f74c68ead2 100644
--- a/translations/lrc_pt.ts
+++ b/translations/lrc_pt.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_pt_BR.ts b/translations/lrc_pt_BR.ts
index 71aa5a04ff88bd66c72a028486d74ffe9afdb790..4376065c7182ede264db9ea8a4193dc69bb2794b 100644
--- a/translations/lrc_pt_BR.ts
+++ b/translations/lrc_pt_BR.ts
@@ -1381,50 +1381,50 @@
         <translation>Coleção de Perfis de pares</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>Convite recebido</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>Contato adicionado</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>Convite aceito</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>📞 Chamada efetuada</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>📞 Chamada recebida</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>📞 Chamada efetuada - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>📞 Chamada recebida - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation>🕽 Chamada efetuada não atendida</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>🕽 Chamada recebida não atendida</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>ARQUIVO</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_ro.ts b/translations/lrc_ro.ts
index 2a140f3ef0c7d1bb605fd6ba490eda5ed784e0cf..f795d8b4e6070c74afa747f399a56dd614d0dac8 100644
--- a/translations/lrc_ro.ts
+++ b/translations/lrc_ro.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_ru.ts b/translations/lrc_ru.ts
index 581255244100be845eafe53c3612870d29dab6c9..f1c35d37870eb6a2beac3e11fdc20770502cf626 100644
--- a/translations/lrc_ru.ts
+++ b/translations/lrc_ru.ts
@@ -1381,50 +1381,50 @@
         <translation>Коллекция профилей участников</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>Получено приглашение</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>Контакт добавлен</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>Приглашение принято</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>📞 Исходящий вызов</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>📞 Входящий вызов</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>📞 Исходящий вызов - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>📞 Входящий вызов - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation>🕽 Непринятый исходящий вызов</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>🕽 Пропущенный входящий вызов</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>ФАЙЛ</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_ru_RU.ts b/translations/lrc_ru_RU.ts
index 3677bef67535eb13b82404b422367352d1fa686b..b15479da082ed3b01c6ce7830a4aacbb4c316161 100644
--- a/translations/lrc_ru_RU.ts
+++ b/translations/lrc_ru_RU.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>ФАЙЛ</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_sk_SK.ts b/translations/lrc_sk_SK.ts
index 3fe553fe559068627dfc8e4b1d039ac0c42fa9f1..7c477314bb5e459d9983def290b010a05ca317b7 100644
--- a/translations/lrc_sk_SK.ts
+++ b/translations/lrc_sk_SK.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_sl.ts b/translations/lrc_sl.ts
index 67e2e22aa8518c4749c00096b509289bdcbfa4d3..11345f2d5d13c481000d1f4a89d48a16652e50d3 100644
--- a/translations/lrc_sl.ts
+++ b/translations/lrc_sl.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>DATOTEKA</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_sq_AL.ts b/translations/lrc_sq_AL.ts
index a259185093e4ebba1c03497cbd5a11270d76fc0c..c6943d33b0f2d144f7d46f2fbb4f774f3d84d82e 100644
--- a/translations/lrc_sq_AL.ts
+++ b/translations/lrc_sq_AL.ts
@@ -1381,50 +1381,50 @@
         <translation>Koleksion Profilesh Personash</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>Ftesa u mor</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>Kontakti u shtua</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>Ftesa u pranua</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>Thirrje ikëse ð</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>Tirrje ardhëse ð</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>Thirrje ikëse ð - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>Tirrje ardhëse ð - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation>Thirrje ikëse të humbura 🕽</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>Thirrje ardhëse të humbura 🕽</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>KARTELË</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_sv.ts b/translations/lrc_sv.ts
index 8017f7737a461bf4cf4dca3da29278d1eef9ce33..569f7d67f75086b583ba8af5c1a5daabba3280ac 100644
--- a/translations/lrc_sv.ts
+++ b/translations/lrc_sv.ts
@@ -1381,50 +1381,50 @@
         <translation>Deltagarprofilsamling</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>Inbjudan mottagen</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>Kontakt tillagt</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>Inbjudan accepterad</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>📞 Utgående samtal</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>📞 Inkommande samtal</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>📞 Utgående samtal - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>📞 Inkommande samtal - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation>🕽 Missat utgående samtal</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>🕽 Missat inkommande samtal</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>FIL</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_tr.ts b/translations/lrc_tr.ts
index 30e9cb089767253d80e45a7f1a0a35d23a9e9aa4..eca9ac241f8222295dbd44a1b083e1455292cd67 100644
--- a/translations/lrc_tr.ts
+++ b/translations/lrc_tr.ts
@@ -1381,50 +1381,50 @@
         <translation>Eş Profil Koleksiyonları</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>DOSYA</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_uk.ts b/translations/lrc_uk.ts
index baa183b8a7d32b0c29566c78569f718693ed40a4..279ae22162ef99ee27c07a53a53b891c49de359e 100644
--- a/translations/lrc_uk.ts
+++ b/translations/lrc_uk.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>ФАЙЛ</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_zh.ts b/translations/lrc_zh.ts
index f4ac85c3d309bac1ddd8cfc5625fee14f865d5bb..8dd4df1e86a2ed7f2db8f85ef53f6a88272e8316 100644
--- a/translations/lrc_zh.ts
+++ b/translations/lrc_zh.ts
@@ -1381,50 +1381,50 @@
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_zh_CN.ts b/translations/lrc_zh_CN.ts
index cf6400830b8f3dcd0f28c98294fb6d5d65d13cdf..1b7fe9dc62db892441e576d888be9182e1f9a546 100644
--- a/translations/lrc_zh_CN.ts
+++ b/translations/lrc_zh_CN.ts
@@ -1381,50 +1381,50 @@
         <translation>节点资料集</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation type="unfinished"/>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>文件</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>
diff --git a/translations/lrc_zh_TW.ts b/translations/lrc_zh_TW.ts
index 0e820fbf6b2e0afe9a2f3e85208bdf960b487b51..2a4d439fbe4ef34391d8f67afe2ea7fda49fc7fa 100644
--- a/translations/lrc_zh_TW.ts
+++ b/translations/lrc_zh_TW.ts
@@ -1381,50 +1381,50 @@
         <translation>對方的基本資料收集</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1240"/>
-        <location filename="../src/conversationmodel.cpp" line="1606"/>
-        <location filename="../src/conversationmodel.cpp" line="1858"/>
+        <location filename="../src/conversationmodel.cpp" line="1250"/>
+        <location filename="../src/conversationmodel.cpp" line="1616"/>
+        <location filename="../src/conversationmodel.cpp" line="1868"/>
         <source>Invitation received</source>
         <translation>已收到邀請</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1241"/>
+        <location filename="../src/conversationmodel.cpp" line="1251"/>
         <source>Contact added</source>
         <translation>已新增聯絡人</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1276"/>
-        <location filename="../src/conversationmodel.cpp" line="1283"/>
+        <location filename="../src/conversationmodel.cpp" line="1286"/>
+        <location filename="../src/conversationmodel.cpp" line="1293"/>
         <source>Invitation accepted</source>
         <translation>已接受邀請</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1492"/>
+        <location filename="../src/conversationmodel.cpp" line="1502"/>
         <source>📞 Outgoing call</source>
         <translation>📞 撥出電話</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1494"/>
+        <location filename="../src/conversationmodel.cpp" line="1504"/>
         <source>📞 Incoming call</source>
         <translation>📞 來電</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1507"/>
+        <location filename="../src/conversationmodel.cpp" line="1517"/>
         <source>📞 Outgoing call - </source>
         <translation>📞 撥出電話 - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1510"/>
+        <location filename="../src/conversationmodel.cpp" line="1520"/>
         <source>📞 Incoming call - </source>
         <translation>📞 來電 - </translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1514"/>
+        <location filename="../src/conversationmodel.cpp" line="1524"/>
         <source>🕽 Missed outgoing call</source>
         <translation>🕽 未接去電</translation>
     </message>
     <message>
-        <location filename="../src/conversationmodel.cpp" line="1516"/>
+        <location filename="../src/conversationmodel.cpp" line="1526"/>
         <source>🕽 Missed incoming call</source>
         <translation>🕽 未接來電</translation>
     </message>
@@ -1484,6 +1484,37 @@
         <translation>檔案</translation>
     </message>
 </context>
+<context>
+    <name>lrc::ContactModelPimpl</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="380"/>
+        <source>Searching…</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="741"/>
+        <source>Invalid ringID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="744"/>
+        <source>Not found</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="747"/>
+        <source>Couldn&apos;t lookup…</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>lrc::api::ContactModel</name>
+    <message>
+        <location filename="../src/contactmodel.cpp" line="359"/>
+        <source>Bad URI scheme</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>media::RecordingModel</name>
     <message>