aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authoroej <oej@f38db490-d61c-443f-a65b-d21fe96a405b>2007-02-01 19:04:47 +0000
committeroej <oej@f38db490-d61c-443f-a65b-d21fe96a405b>2007-02-01 19:04:47 +0000
commit644a534ca06101b53a47e17bb0279b1361ecb5d9 (patch)
tree0355f428474ca5192cfc2991c20cb4e6816ca1b3 /channels
parentae086c682cfe511e1e875074687972d4a72e3777 (diff)
Signal HOLD status to phones that subscribe for status.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@53067 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 412ff6783..983c48482 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: