summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--channels/chan_sip.c4
-rw-r--r--configs/sip.conf.sample4
2 files changed, 7 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 4d9408f38..e9ef2d695 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -18529,7 +18529,9 @@ static int build_reply_digest(struct sip_pvt *p, int method, char* digest, int d
} else {
/* No authentication, use peer or register= config */
username = p->authname;
- secret = p->peersecret;
+ secret = p->relatedpeer
+ && !ast_strlen_zero(p->relatedpeer->remotesecret)
+ ? p->relatedpeer->remotesecret : p->peersecret;
md5secret = p->peermd5secret;
}
if (ast_strlen_zero(username)) /* We have no authentication */
diff --git a/configs/sip.conf.sample b/configs/sip.conf.sample
index 912762882..92e41e440 100644
--- a/configs/sip.conf.sample
+++ b/configs/sip.conf.sample
@@ -1014,6 +1014,10 @@ srvlookup=yes ; Enable DNS SRV lookups on outbound calls
; Asterisk only matches on IP/port, not on names. This is mostly used for SIP
; trunks.
;
+; Use remotesecret for outbound authentication, and secret for authenticating
+; inbound requests. For historical reasons, if no remotesecret is supplied for an
+; outbound registration or call, the secret will be used.
+;
; For device names, we recommend using only a-z, numerics (0-9) and underscore
;
; For local phones, type=friend works most of the time