From: Olle Johansson Date: Tue, 22 Jan 2008 15:25:43 +0000 (+0000) Subject: Add authentication options to the SIP dialstring. X-Git-Tag: 1.6.0-beta2~2^2~73 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f4fe6744cc1d1934a9ad7de23bb49a4a1f56667c;p=thirdparty%2Fasterisk.git Add authentication options to the SIP dialstring. Documentation follows separately (issue #11587) Reported by: sobomax Patches: chan_sip.c-trunk.diff uploaded by sobomax (license 359) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@99521 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index d037dd586c..d2ab62cc89 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -18716,6 +18716,9 @@ static struct ast_channel *sip_request_call(const char *type, int format, void * char tmp[256]; char *dest = data; char *dnid; + char *secret = NULL; + char *md5secret = NULL; + char *authname = NULL; int oldformat = format; /* mask request with some set of allowed formats. @@ -18764,6 +18767,17 @@ static struct ast_channel *sip_request_call(const char *type, int format, void * if (host) { *host++ = '\0'; ext = tmp; + secret = strchr(ext, ':'); + if (secret) { + *secret++ = '\0'; + md5secret = strchr(secret, ':'); + if (md5secret) { + *md5secret++ = '\0'; + authname = strchr(md5secret, ':'); + if (authname) + *authname++ = '\0'; + } + } } else { ext = strchr(tmp, '/'); if (ext) @@ -18798,6 +18812,14 @@ static struct ast_channel *sip_request_call(const char *type, int format, void * ast_string_field_set(p, username, ext); ast_string_field_set(p, fullcontact, NULL); } + if (secret && !ast_strlen_zero(secret)) + ast_string_field_set(p, peersecret, secret); + + if (md5secret && !ast_strlen_zero(md5secret)) + ast_string_field_set(p, peermd5secret, md5secret); + + if (authname && !ast_strlen_zero(authname)) + ast_string_field_set(p, authname, authname); #if 0 printf("Setting up to call extension '%s' at '%s'\n", ext ? ext : "", host); #endif