diff options
author | oej <oej@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-04-03 20:40:08 +0000 |
---|---|---|
committer | oej <oej@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-04-03 20:40:08 +0000 |
commit | 21b440ded303bef1964c75e22b56c9057cc96b10 (patch) | |
tree | e5495286394b2071c68cb2e56bd784883ea55c98 /channels/chan_sip.c | |
parent | b6040b9871f305bfb4a8b070831e689ac2d3c776 (diff) |
Add tag to NOTIFY headers (imported from 1.2)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@17151 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_sip.c')
-rw-r--r-- | channels/chan_sip.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index ebb57d150..76148cedf 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -5066,12 +5066,16 @@ static void initreqprep(struct sip_request *req, struct sip_pvt *p, int sipmetho ast_string_field_set(p, uri, invite_buf); - /* If there is a VXML URL append it to the SIP URL */ - if (p->options && p->options->vxml_url) { + if (sipmethod == SIP_NOTIFY && !ast_strlen_zero(p->theirtag)) { + /* If this is a NOTIFY, use the From: tag in the subscribe (RFC 3265) */ + snprintf(to, sizeof(to), "<sip:%s>;tag=%s", p->uri, p->theirtag); + } else if (p->options && p->options->vxml_url) { + /* If there is a VXML URL append it to the SIP URL */ snprintf(to, sizeof(to), "<%s>;%s", p->uri, p->options->vxml_url); } else { snprintf(to, sizeof(to), "<%s>", p->uri); } + memset(req, 0, sizeof(struct sip_request)); init_req(req, sipmethod, p->uri); snprintf(tmp, sizeof(tmp), "%d %s", ++p->ocseq, sip_methods[sipmethod].text); |