diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 4d9408f386..e9ef2d695c 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 9127628822..92e41e4403 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