diff --git a/res/res_xmpp.c b/res/res_xmpp.c index 444eacbe9a..8a06a6c35a 100644 --- a/res/res_xmpp.c +++ b/res/res_xmpp.c @@ -3652,13 +3652,6 @@ static int xmpp_client_reconnect(struct ast_xmpp_client *client) return -1; } - if (!ast_strlen_zero(clientcfg->refresh_token)) { - ast_debug(2, "Obtaining OAuth access token for client '%s'\n", client->name); - if (fetch_access_token(clientcfg)) { - return -1; - } - } - ast_xmpp_client_disconnect(client); client->timeout = 50; @@ -3669,6 +3662,13 @@ static int xmpp_client_reconnect(struct ast_xmpp_client *client) return -1; } + if (!ast_strlen_zero(clientcfg->refresh_token)) { + ast_debug(2, "Obtaining OAuth access token for client '%s'\n", client->name); + if (fetch_access_token(clientcfg)) { + return -1; + } + } + /* If it's a component connect to user otherwise connect to server */ res = iks_connect_via(client->parser, S_OR(clientcfg->server, client->jid->server), clientcfg->port, ast_test_flag(&clientcfg->flags, XMPP_COMPONENT) ? clientcfg->user : client->jid->server);