From: Timo Teräs Date: Fri, 3 Jun 2016 06:33:08 +0000 (+0300) Subject: chan_sip: Support auth username for callbackextension feature X-Git-Tag: 14.0.0-beta1~109^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=538c6415c6d255876a808d69acd9f5ebd603b286;p=thirdparty%2Fasterisk.git chan_sip: Support auth username for callbackextension feature ASTERISK-20527 #close Change-Id: I659cf7f00836a09d09d146ad226a40477d731239 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 19f8aa308a..03cba92447 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -31811,7 +31811,7 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str olddirectmediaacl = ast_free_acl_list(olddirectmediaacl); if (!ast_strlen_zero(peer->callback)) { /* build string from peer info */ char *reg_string; - if (ast_asprintf(®_string, "%s?%s:%s@%s/%s", peer->name, peer->username, !ast_strlen_zero(peer->remotesecret) ? peer->remotesecret : peer->secret, peer->tohost, peer->callback) >= 0) { + if (ast_asprintf(®_string, "%s?%s:%s:%s@%s/%s", peer->name, S_OR(peer->fromuser, peer->username), S_OR(peer->remotesecret, peer->secret), peer->username, peer->tohost, peer->callback) >= 0) { sip_register(reg_string, 0); /* XXX TODO: count in registry_count */ ast_free(reg_string); } diff --git a/configs/samples/sip.conf.sample b/configs/samples/sip.conf.sample index 8f28e26801..a7b74df690 100644 --- a/configs/samples/sip.conf.sample +++ b/configs/samples/sip.conf.sample @@ -786,7 +786,7 @@ srvlookup=yes ; Enable DNS SRV lookups on outbound calls ; A similar effect can be achieved by adding a "callbackextension" option in a peer section. ; this is equivalent to having the following line in the general section: ; -; register => username:secret@host/callbackextension +; register => fromuser:secret:username@host/callbackextension ; ; and more readable because you don't have to write the parameters in two places ; (note that the "port" is ignored - this is a bug that should be fixed).