diff --git a/channels/chan_sip.c b/channels/chan_sip.c index a912741a903950b8ddaa9505051a903b725eec85..a16dfea2cc412ab33f80852cc428373ceefc112d 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -1432,19 +1432,16 @@ static int sip_call(struct ast_channel *ast, char *dest, int timeout) headp=&ast->varshead; AST_LIST_TRAVERSE(headp,current,entries) { /* Check whether there is a VXML_URL variable */ - if (strcasecmp(ast_var_name(current),"VXML_URL")==0) - { + if (!vxml_url && !strcasecmp(ast_var_name(current),"VXML_URL")) { vxml_url = ast_var_value(current); - } else - /* Check whether there is a ALERT_INFO variable */ - if (strcasecmp(ast_var_name(current),"ALERT_INFO")==0) - { + } else if (!distinctive_ring && !strcasecmp(ast_var_name(current),"ALERT_INFO")) { + /* Check whether there is a ALERT_INFO variable */ distinctive_ring = ast_var_value(current); } #ifdef OSP_SUPPORT - else if (!strcasecmp(ast_var_name(current), "OSPTOKEN")) { + else if (!osptoken && !strcasecmp(ast_var_name(current), "OSPTOKEN")) { osptoken = ast_var_value(current); - } else if (!strcasecmp(ast_var_name(current), "OSPHANDLE")) { + } else if (!osphandle && !strcasecmp(ast_var_name(current), "OSPHANDLE")) { osphandle = ast_var_value(current); } #endif