diff --git a/res/res_pjsip_sdp_rtp.c b/res/res_pjsip_sdp_rtp.c
index a8247577437af57869025c64c211fe2a0d2deac6..b66c1aeb8216749d2f9490916825c0876411d2b2 100644
--- a/res/res_pjsip_sdp_rtp.c
+++ b/res/res_pjsip_sdp_rtp.c
@@ -163,6 +163,10 @@ static int rtp_check_timeout(const void *data)
 	ast_log(LOG_NOTICE, "Disconnecting channel '%s' for lack of RTP activity in %d seconds\n",
 		ast_channel_name(chan), elapsed);
 
+	ast_channel_lock(chan);
+	ast_channel_hangupcause_set(chan, AST_CAUSE_REQUESTED_CHAN_UNAVAIL);
+	ast_channel_unlock(chan);
+
 	ast_softhangup(chan, AST_SOFTHANGUP_DEV);
 	ast_channel_unref(chan);