diff options
author | Mark Spencer <markster@digium.com> | 2003-06-15 22:53:05 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2003-06-15 22:53:05 +0000 |
commit | b04542e11eb048f7e44caa8275b40804c4fd0ae1 (patch) | |
tree | 796981de2fa3dc67aced5f130b65f3777ee52d04 /channels | |
parent | 226e31d86d90ef282995c35dbdf4adf4edf8f1ea (diff) |
Handle registration setups better when username contains an @
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1093 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rwxr-xr-x | channels/chan_sip.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 77f301b50..87f179f84 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -2613,8 +2613,13 @@ static int transmit_register(struct sip_registry *r, char *cmd, char *auth) ast_log(LOG_DEBUG, "Scheduled a timeout # %d\n", r->timeout); } - snprintf(from, sizeof(from), "<sip:%s@%s>;tag=as%08x", r->username, r->hostname, p->tag); - snprintf(to, sizeof(to), "<sip:%s@%s>", r->username, r->hostname); + if (strchr(r->username, '@')) { + snprintf(from, sizeof(from), "<sip:%s>;tag=as%08x", r->username, p->tag); + snprintf(to, sizeof(to), "<sip:%s>", r->username); + } else { + snprintf(from, sizeof(from), "<sip:%s@%s>;tag=as%08x", r->username, r->hostname, p->tag); + snprintf(to, sizeof(to), "<sip:%s@%s>", r->username, r->hostname); + } snprintf(addr, sizeof(addr), "sip:%s", r->hostname); strncpy(p->uri, addr, sizeof(p->uri) - 1); |