channels/chan_sip: Set cause code to 44 on RTP timeout
authorMatt Jordan <mjordan@digium.com>
Tue, 13 Oct 2015 19:13:54 +0000 (14:13 -0500)
committerMatt Jordan <mjordan@digium.com>
Tue, 13 Oct 2015 19:27:57 +0000 (14:27 -0500)
To quote Olle:

"When issuing a hangup due to RTP timeouts the cause code is not set. I have
selected 44 based on Cisco's implementation..."

ASTERISK-25135 #close
Reported by: Olle Johansson
patches:
  rtp-timeout-cause-1.8.diff uploaded by Olle Johansson (License 5267)

Change-Id: Ia62100c55077d77901caee0bcae299f8dc7375fc

channels/chan_sip.c

index 349042c..3fdc3ca 100644 (file)
@@ -28811,7 +28811,8 @@ static int check_rtp_timeout(struct sip_pvt *dialog, time_t t)
                                        ast_channel_name(dialog->owner), (long) (t - dialog->lastrtprx));
                                send_session_timeout(dialog->owner, "RTPTimeout");
 
-                               /* Issue a softhangup */
+                               /* Issue a softhangup - cause 44 (as used by Cisco for RTP timeouts) */
+                               ast_channel_hangupcause_set(dialog->owner, AST_CAUSE_REQUESTED_CHAN_UNAVAIL);
                                ast_softhangup_nolock(dialog->owner, AST_SOFTHANGUP_DEV);
                                ast_channel_unlock(dialog->owner);
                                /* forget the timeouts for this call, since a hangup