From 38b87ec4b719210e3b79fb59755b44b9b939acda Mon Sep 17 00:00:00 2001
From: Olle Johansson <oej@edvina.net>
Date: Thu, 1 Feb 2007 19:04:47 +0000
Subject: [PATCH] Signal HOLD status to phones that subscribe for status.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@53067 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_sip.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 412ff6783e..983c484827 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -6965,6 +6965,10 @@ static int transmit_state_notify(struct sip_pvt *p, int state, int full, int tim
 		pidfnote = "Unavailable";
 		break;
 	case AST_EXTENSION_ONHOLD:
+		statestring = "confirmed";
+		local_state = NOTIFY_INUSE;
+		pidfstate = "busy";
+		pidfnote = "On hold";
 		break;
 	case AST_EXTENSION_NOT_INUSE:
 	default:
@@ -7060,6 +7064,11 @@ static int transmit_state_notify(struct sip_pvt *p, int state, int full, int tim
 		else
 			ast_build_string(&t, &maxbytes, "<dialog id=\"%s\">\n", p->exten);
 		ast_build_string(&t, &maxbytes, "<state>%s</state>\n", statestring);
+		if (state == AST_EXTENSION_ONHOLD) {
+			ast_build_string(&t, &maxbytes, "<local>\n<target uri=\"%s\">\n"
+			                                "<param pname=\"+sip.rendering\" pvalue=\"no\">\n"
+			                                "</target>\n</local>\n", mto);
+		}
 		ast_build_string(&t, &maxbytes, "</dialog>\n</dialog-info>\n");
 		break;
 	case NONE:
-- 
GitLab