diff --git a/src/call.cpp b/src/call.cpp
index e13752e3d7716fbbc4a13a408ee3fb8de315d81c..087ab14c98b3f9a18f212b835708c26bd2b78a94 100644
--- a/src/call.cpp
+++ b/src/call.cpp
@@ -2184,6 +2184,8 @@ QVariant Call::roleData(int role) const
       case static_cast<int>(Ring::Role::Number):
       case static_cast<int>(Call::Role::Number):
          return peerContactMethod()->getBestId();
+      case static_cast<int>(Ring::Role::URI):
+         return peerContactMethod()->uri();
       case Qt::DecorationRole:
          return GlobalInstances::pixmapManipulator().decorationRole(this);
       case static_cast<int>(Call::Role::Direction):
diff --git a/src/contactmethod.cpp b/src/contactmethod.cpp
index 96ff35e47cdb37d19ed2fb14de3a5b26fa65685b..b588574bdd30937a2229965e7427305eceaaaf87 100644
--- a/src/contactmethod.cpp
+++ b/src/contactmethod.cpp
@@ -552,6 +552,7 @@ QVariant ContactMethod::roleData(int role) const
       case Qt::ToolTipRole:
          cat = presenceMessage();
          break;
+      case static_cast<int>(Ring::Role::URI):
       case static_cast<int>(Role::Uri):
          cat = uri();
          break;
diff --git a/src/itemdataroles.h b/src/itemdataroles.h
index c3dd13433c4e1b1f3132005ee3e0d59f46077838..3b5331ea835e4724dd727a63e4dbf6e25fd5d3b0 100644
--- a/src/itemdataroles.h
+++ b/src/itemdataroles.h
@@ -48,6 +48,7 @@ enum class Role
     DropState          ,
     IsPresent          ,
     UnreadTextMessageCount,
+    URI                ,
     UserRole           = Qt::UserRole + 100  // this should always be the last role in the list
 };