]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Go off hold when we get an empty reinvite telling us to.
authorJoshua Colp <jcolp@digium.com>
Tue, 10 Feb 2009 18:50:50 +0000 (18:50 +0000)
committerJoshua Colp <jcolp@digium.com>
Tue, 10 Feb 2009 18:50:50 +0000 (18:50 +0000)
(closes issue #14448)
Reported by: frawd
Patches:
      hold_invite_nosdp.patch uploaded by frawd (license 610)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@174644 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 65555369380dc84d6a5085d8ecc36407b6ba437b..8191eb1307016ecf07f5698ab787b6b8b70d1195 100644 (file)
@@ -14521,8 +14521,12 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
                                /* Some devices signal they want to be put off hold by sending a re-invite
                                   *without* an SDP, which is supposed to mean "Go back to your state"
                                   and since they put os on remote hold, we go back to off hold */
-                               if (ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD))
+                               if (ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD)) {
+                                       ast_queue_control(p->owner, AST_CONTROL_UNHOLD);
+                                       /* Activate a re-invite */
+                                       ast_queue_frame(p->owner, &ast_null_frame);
                                        change_hold_state(p, req, FALSE, 0);
+                               }
                        }
                        if (!ast_test_flag(&p->flags[0], SIP_NO_HISTORY)) /* This is a response, note what it was for */
                                append_history(p, "ReInv", "Re-invite received");