235c235,237 < " of features.conf.\n"; --- > " of features.conf.\n" > " z(f) - Reset existing timeout in case of local call forward, honoring\n" > " RINGTIMER dialplan variable, multiplied by (f)actor.\n"; 290a293 > #define OPT_RESET_TIMEOUT ((uint64_t)1 << 36) 304a308 > OPT_ARG_RESET_TIMEOUT, 342a347 > AST_APP_OPTION_ARG('z', OPT_RESET_TIMEOUT, OPT_ARG_RESET_TIMEOUT), 569a575 > 605c611 < const struct cause_args *num_in, int *result) --- > const struct cause_args *num_in, int *result, int rt) 685a692,695 > ast_verb(3, "forwarded (actual timeout is %d)\n", *to); > *to = orig * rt; > ast_verb(3, "resetting timeout (was %d, now %d)\n", orig, *to); > winner = ast_waitfor_n(watchers, pos, to); 717c727,728 < DIAL_NOFORWARDHTML); --- > DIAL_NOFORWARDHTML | > OPT_RESET_TIMEOUT); 1355a1367,1368 > int rt; > 1384a1398,1404 > if (ast_test_flag64(&opts, OPT_RESET_TIMEOUT) && !ast_strlen_zero(opt_args[OPT_ARG_RESET_TIMEOUT])) { > rt = atoi( opt_args[OPT_ARG_RESET_TIMEOUT]); > } else { > rt = 2; > } > ast_verb(3, "reset timeout z factor of %d\n", rt); > 1672c1692 < peer = wait_for_answer(chan, outgoing, &to, peerflags, &pa, &num, &result); --- > peer = wait_for_answer(chan, outgoing, &to, peerflags, &pa, &num, &result, rt);