From f4fe6744cc1d1934a9ad7de23bb49a4a1f56667c Mon Sep 17 00:00:00 2001 From: Olle Johansson <oej@edvina.net> Date: Tue, 22 Jan 2008 15:25:43 +0000 Subject: [PATCH] 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 --- channels/chan_sip.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) 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 : "<none>", host); #endif -- GitLab