diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-11-28 04:01:25 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-11-28 04:01:25 +0000 |
commit | b8aeb43ee3e666723ba35a15d51b33c9078d5cca (patch) | |
tree | 9f55b0e54497e8b8275fcec353058d0f4d362bd1 /channels/chan_sip.c | |
parent | 16f4bff4403d8c11e3dc01a762ae35c34c3d9876 (diff) |
Properly build Contact on INVITE when asking for authentication
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1803 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_sip.c')
-rwxr-xr-x | channels/chan_sip.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index d9a37dc97..cefe7abfb 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -3979,6 +3979,17 @@ static int check_user(struct sip_pvt *p, struct sip_request *req, char *cmd, cha memset(calleridname,0,sizeof(calleridname)); get_calleridname(from,calleridname); of = ditch_braces(from); + if (!strlen(p->exten)) { + t = uri; + if (!strncmp(t, "sip:", 4)) + t+= 4; + strncpy(p->exten, t, sizeof(p->exten) - 1); + t = strchr(p->exten, '@'); + if (t) + *t = '\0'; + if (!strlen(p->our_contact)) + build_contact(p); + } if (strncmp(of, "sip:", 4)) { ast_log(LOG_NOTICE, "From address missing 'sip:', using it anyway\n"); } else |