else if (f->frametype == AST_FRAME_DTMF) { ast_log(LOG_NOTICE, "User pressed a key: %c\n", f->subclass); res = 0; ASTOBJ_WRLOCK(ps); ps->immediate_exit = 1; ASTOBJ_UNLOCK(ps); // new code char var[256]; int x; for (x = 0; x < 255; ) var[x++] = '\0'; var[0] = f->subclass; x = 1; while (x < 255) { res = ast_waitfordigit(chan, 3000); if (res < 1) { break; } var[x++] = res; if (var[x-1] == '#') { var[x-1] = '\0'; break; } } pbx_builtin_setvar_helper(chan, "SWIFT_DTMF", var); // end new code /* char tmp_exten[2]; tmp_exten[0] = f->subclass; tmp_exten[1] = '\0'; pbx_builtin_setvar_helper(chan, "SWIFT_DTMF", tmp_exten); if (cfg_goto_exten) { if (ast_exists_extension (chan, chan->context, tmp_exten, 1, chan->cid.cid_num)) { strncpy(chan->exten, tmp_exten, sizeof(chan->exten) - 1); chan->priority = 0; } } */ ast_frfree(f); }