diff options
author | dvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-10-09 17:55:50 +0000 |
---|---|---|
committer | dvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-10-09 17:55:50 +0000 |
commit | 5d87c8ee0405091c858977f7185e8c429bbd2639 (patch) | |
tree | db62aa667ce21c0e5f87908ab968c433e6104da2 /channels | |
parent | 5ba22e826e2a9db392e61d1faa0a12df24eee4af (diff) |
Merged revisions 223206 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r223206 | dvossel | 2009-10-09 12:53:37 -0500 (Fri, 09 Oct 2009) | 16 lines
Merged revisions 223205 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r223205 | dvossel | 2009-10-09 12:52:35 -0500 (Fri, 09 Oct 2009) | 10 lines
fixes sip registration using authuser in user.conf
(closes issue #14954)
Reported by: tornblad
Tested by: mmichelson, tornblad, dvossel
........
................
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@223208 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_sip.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 63d6c6d1e..ac7200408 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -24420,6 +24420,7 @@ static int reload_config(enum channelreloadreason reason) const char *username = ast_variable_retrieve(ucfg, cat, "username"); const char *secret = ast_variable_retrieve(ucfg, cat, "secret"); const char *contact = ast_variable_retrieve(ucfg, cat, "contact"); + const char *authuser = ast_variable_retrieve(ucfg, cat, "authuser"); if (!host) host = ast_variable_retrieve(ucfg, "general", "host"); if (!username) @@ -24429,10 +24430,17 @@ static int reload_config(enum channelreloadreason reason) if (!contact) contact = "s"; if (!ast_strlen_zero(username) && !ast_strlen_zero(host)) { - if (!ast_strlen_zero(secret)) - snprintf(tmp, sizeof(tmp), "%s:%s@%s/%s", username, secret, host, contact); - else + if (!ast_strlen_zero(secret)) { + if (!ast_strlen_zero(authuser)) { + snprintf(tmp, sizeof(tmp), "%s:%s:%s@%s/%s", username, secret, authuser, host, contact); + } else { + snprintf(tmp, sizeof(tmp), "%s:%s@%s/%s", username, secret, host, contact); + } + } else if (!ast_strlen_zero(authuser)) { + snprintf(tmp, sizeof(tmp), "%s::%s@%s/%s", username, authuser, host, contact); + } else { snprintf(tmp, sizeof(tmp), "%s@%s/%s", username, host, contact); + } if (sip_register(tmp, 0) == 0) registry_count++; } |