diff options
author | Olle Johansson <oej@edvina.net> | 2007-02-01 19:04:47 +0000 |
---|---|---|
committer | Olle Johansson <oej@edvina.net> | 2007-02-01 19:04:47 +0000 |
commit | 38b87ec4b719210e3b79fb59755b44b9b939acda (patch) | |
tree | 0355f428474ca5192cfc2991c20cb4e6816ca1b3 | |
parent | e88dda8ca9aa1d024f8979395b7b555d10928c2b (diff) |
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
-rw-r--r-- | channels/chan_sip.c | 9 |
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: |