diff --git a/InCallUI/res/values-bs-rBA/strings.xml b/InCallUI/res/values-bs-rBA/strings.xml
index b64df21..21f4360 100644
--- a/InCallUI/res/values-bs-rBA/strings.xml
+++ b/InCallUI/res/values-bs-rBA/strings.xml
@@ -299,9 +299,7 @@
     <skip />
     <!-- no translation found for default_notification_description (4950807644546509965) -->
     <skip />
-    <!-- no translation found for ringtone_title (835582004693335905) -->
-    <!-- no translation found for ringtone_title (5379026328015343686) -->
-    <skip />
+    <string name="ringtone_title" msgid="835582004693335905">"Melodija zvona telefona"</string>
     <!-- no translation found for vibrate_on_ring_title (5019791043398986665) -->
     <skip />
     <!-- no translation found for preference_category_ringtone (6246687516643676729) -->
diff --git a/InCallUI/res/values/colors.xml b/InCallUI/res/values/colors.xml
index 5e4eeee..99cf7b0 100644
--- a/InCallUI/res/values/colors.xml
+++ b/InCallUI/res/values/colors.xml
@@ -24,8 +24,8 @@
     <!-- Background color of main banner. -->
     <color name="incall_call_banner_background_color">@color/incall_background_color</color>
     <color name="incall_call_banner_text_color">#ffffff</color>
-    <!-- 80% opacity, white -->
-    <color name="incall_call_banner_subtext_color">#ccffffff</color>
+    <!-- 100% opacity, white -->
+    <color name="incall_call_banner_subtext_color">#ffffff</color>
     <color name="incall_banner_secondary_background_color">#f5f5f5</color>
     <color name="incall_banner_secondary_text_color">#333333</color>
 
diff --git a/res/drawable-hdpi/ic_share_white_24dp.png b/res/drawable-hdpi/ic_share_white_24dp.png
new file mode 100644
index 0000000..b09a692
--- /dev/null
+++ b/res/drawable-hdpi/ic_share_white_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_share_white_24dp.png b/res/drawable-mdpi/ic_share_white_24dp.png
new file mode 100644
index 0000000..e944fd7
--- /dev/null
+++ b/res/drawable-mdpi/ic_share_white_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_share_white_24dp.png b/res/drawable-xhdpi/ic_share_white_24dp.png
new file mode 100644
index 0000000..22a8783
--- /dev/null
+++ b/res/drawable-xhdpi/ic_share_white_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_share_white_24dp.png b/res/drawable-xxhdpi/ic_share_white_24dp.png
new file mode 100644
index 0000000..a35b3cd
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_share_white_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_share_white_24dp.png b/res/drawable-xxxhdpi/ic_share_white_24dp.png
new file mode 100644
index 0000000..e351c7b
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_share_white_24dp.png
Binary files differ
diff --git a/res/layout/voicemail_playback_layout.xml b/res/layout/voicemail_playback_layout.xml
index 984a52b..178e888 100644
--- a/res/layout/voicemail_playback_layout.xml
+++ b/res/layout/voicemail_playback_layout.xml
@@ -102,6 +102,19 @@
             android:tint="@color/voicemail_icon_tint"
             android:contentDescription="@string/call_log_trash_voicemail" />
 
+        <Space android:id="@+id/space_before_share_voicemail"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:visibility="gone" />
+
+        <ImageButton android:id="@+id/share_voicemail"
+            style="@style/VoicemailPlaybackLayoutButtonStyle"
+            android:src="@drawable/ic_share_white_24dp"
+            android:tint="@color/voicemail_icon_tint"
+            android:contentDescription="@string/call_log_share_voicemail"
+            android:visibility="gone" />
+
         <Space android:id="@+id/space_before_archive_voicemail"
             android:layout_width="0dp"
             android:layout_height="match_parent"
diff --git a/res/values-bs-rBA/strings.xml b/res/values-bs-rBA/strings.xml
index 405ce3b..bc05f12 100644
--- a/res/values-bs-rBA/strings.xml
+++ b/res/values-bs-rBA/strings.xml
@@ -138,9 +138,7 @@
     <skip />
     <!-- no translation found for action_menu_call_history_description (9018442816219748968) -->
     <skip />
-    <!-- no translation found for action_menu_overflow_description (2303272250613084574) -->
-    <!-- no translation found for action_menu_overflow_description (2295659037509008453) -->
-    <skip />
+    <string name="action_menu_overflow_description" msgid="2303272250613084574">"Više opcija"</string>
     <!-- no translation found for action_menu_dialpad_button (1425910318049008136) -->
     <skip />
     <!-- no translation found for menu_show_outgoing_only (1965570298133301970) -->
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 830af65..b8f8679 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -87,6 +87,9 @@
     <!-- Menu item used to archive a voicemail. [CHAR LIMIT=30] -->
     <string name="call_log_archive_voicemail">Archive voicemail</string>
 
+    <!-- Menu item used to send a voicemail through other applications [CHAR LIMIT=30] -->
+    <string name="call_log_share_voicemail">Share voicemail</string>
+
     <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
     <string name="snackbar_voicemail_deleted">Voicemail deleted</string>
 
diff --git a/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java b/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java
index 0cbe7f2..8c869d1 100644
--- a/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java
+++ b/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java
@@ -275,7 +275,11 @@
     private ImageButton mPlaybackSpeakerphone;
     private ImageButton mDeleteButton;
     private ImageButton mArchiveButton;
+    private ImageButton mShareButton;
+
     private Space mArchiveSpace;
+    private Space mShareSpace;
+
     private TextView mStateText;
     private TextView mPositionText;
     private TextView mTotalDurationText;
@@ -304,6 +308,12 @@
             updateArchiveUI(mVoicemailUri);
             updateArchiveButton(mVoicemailUri);
         }
+
+        if (ObjectFactory.isVoicemailShareEnabled(mContext)) {
+            // Show share button and space before it
+            mShareSpace.setVisibility(View.VISIBLE);
+            mShareButton.setVisibility(View.VISIBLE);
+        }
     }
 
     @Override
@@ -315,7 +325,11 @@
         mPlaybackSpeakerphone = (ImageButton) findViewById(R.id.playback_speakerphone);
         mDeleteButton = (ImageButton) findViewById(R.id.delete_voicemail);
         mArchiveButton =(ImageButton) findViewById(R.id.archive_voicemail);
+        mShareButton = (ImageButton) findViewById(R.id.share_voicemail);
+
         mArchiveSpace = (Space) findViewById(R.id.space_before_archive_voicemail);
+        mShareSpace = (Space) findViewById(R.id.space_before_share_voicemail);
+
         mStateText = (TextView) findViewById(R.id.playback_state_text);
         mPositionText = (TextView) findViewById(R.id.playback_position_text);
         mTotalDurationText = (TextView) findViewById(R.id.total_duration_text);
diff --git a/src/com/android/dialerbind/ObjectFactory.java b/src/com/android/dialerbind/ObjectFactory.java
index 935c9f7..9f75e39 100644
--- a/src/com/android/dialerbind/ObjectFactory.java
+++ b/src/com/android/dialerbind/ObjectFactory.java
@@ -48,6 +48,10 @@
         return false;
     }
 
+    public static boolean isVoicemailShareEnabled(Context context) {
+        return false;
+    }
+
     @Nullable
     public static ExtendedBlockingButtonRenderer newExtendedBlockingButtonRenderer(
             Context context, ExtendedBlockingButtonRenderer.Listener listener) {
