--- apps/app_dial.c.orig 2006-01-25 18:45:48.071142374 -0600 +++ apps/app_dial.c 2006-01-25 18:46:47.902682303 -0600 @@ -1194,6 +1194,31 @@ if (!number) number = numsubst; pbx_builtin_setvar_helper(chan, "DIALEDPEERNUMBER", number); + + /* what PEER variables to set */ + ast_log(LOG_DEBUG, "setting peer variables\n"); + unsigned int vnum; + char *pvars = pbx_builtin_getvar_helper(chan, "PEERVARIABLES"); + char *pv[255]; + char *vname; + char *vvalue; + int y; + if ( pvars ) { + vnum = ast_app_separate_args(pvars, '|', pv, sizeof(pv)/sizeof(pv[0])); + for ( y = 0; y < vnum; y++) { + if ( !pv[y] ) { + continue; + } + vname = vvalue = ast_strdupa(pv[y]); + strsep(&vvalue, "="); + if ( !vvalue || ast_strlen_zero(vname) ) { + continue; + } + ast_log(LOG_DEBUG, "setting PEERVAR %s=%s\n", vname, vvalue); + pbx_builtin_setvar_helper(peer, vname, vvalue); + } + } + if (!ast_strlen_zero(args.url) && ast_channel_supports_html(peer) ) { ast_log(LOG_DEBUG, "app_dial: sendurl=%s.\n", args.url); ast_channel_sendurl( peer, args.url );