aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_sip.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-11-28 04:01:25 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-11-28 04:01:25 +0000
commitb8aeb43ee3e666723ba35a15d51b33c9078d5cca (patch)
tree9f55b0e54497e8b8275fcec353058d0f4d362bd1 /channels/chan_sip.c
parent16f4bff4403d8c11e3dc01a762ae35c34c3d9876 (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-xchannels/chan_sip.c11
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