aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authormnicholson <mnicholson@f38db490-d61c-443f-a65b-d21fe96a405b>2011-01-18 21:43:21 +0000
committermnicholson <mnicholson@f38db490-d61c-443f-a65b-d21fe96a405b>2011-01-18 21:43:21 +0000
commit9c842ac5df202230f3620e2195852b852f9c4e9f (patch)
tree2f2632d9bfda232aad07032ceefc8fd8051e5e39 /channels
parent719e197395231343189a9b51dc4765bcbde250b7 (diff)
Merged revisions 302313 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r302313 | mnicholson | 2011-01-18 15:40:03 -0600 (Tue, 18 Jan 2011) | 11 lines Merged revisions 302311 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r302311 | mnicholson | 2011-01-18 15:35:03 -0600 (Tue, 18 Jan 2011) | 4 lines URI encode the user part of the contact header. ABE-2705 ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.8@302314 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 058e602b9..d29fc32d3 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -11065,12 +11065,15 @@ static void extract_uri(struct sip_pvt *p, struct sip_request *req)
/*! \brief Build contact header - the contact header we send out */
static void build_contact(struct sip_pvt *p)
{
+ char tmp[SIPBUFSIZE];
+ char *user = ast_uri_encode(p->exten, tmp, sizeof(tmp), 1);
+
if (p->socket.type == SIP_TRANSPORT_UDP) {
- ast_string_field_build(p, our_contact, "<sip:%s%s%s>", p->exten,
- ast_strlen_zero(p->exten) ? "" : "@", ast_sockaddr_stringify(&p->ourip));
+ ast_string_field_build(p, our_contact, "<sip:%s%s%s>", user,
+ ast_strlen_zero(user) ? "" : "@", ast_sockaddr_stringify(&p->ourip));
} else {
- ast_string_field_build(p, our_contact, "<sip:%s%s%s;transport=%s>", p->exten,
- ast_strlen_zero(p->exten) ? "" : "@", ast_sockaddr_stringify(&p->ourip),
+ ast_string_field_build(p, our_contact, "<sip:%s%s%s;transport=%s>", user,
+ ast_strlen_zero(user) ? "" : "@", ast_sockaddr_stringify(&p->ourip),
get_transport(p->socket.type));
}
}