Summary: | ASTERISK-16100: 1.6.1.18 : app_dial times out when call forward set on the phone, forward channel still observes original dial timeout | ||
Reporter: | Roberto La Rosa (rlr2maverick) | Labels: | |
Date Opened: | 2010-05-14 10:08:21 | Date Closed: | 2011-06-07 14:00:49 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Applications/app_dial |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) patch0.txt | |
Description: | We're using asterisk 1.6.1.18 and experiencing early timeout on callforwarded channels because on do_foward() nothing resets original channel timeout. When the call is forwarded to PSTN (mobile) nobody is able to pick up within general timeout timer. We developed a new version including a z(factor) parameter where in case of forward the general timeout is multiplied by z(factor), granting more time to users to answer. It just works. Anybody interested ? ****** ADDITIONAL INFORMATION ****** If interested we agree to publish the code immediately, to see it integrated to next asterisk versions. | ||
Comments: | By: Paul Belanger (pabelanger) 2010-05-14 10:21:11 Any new patch must be submitted against trunk. Simply upload your patch to this issue or http://reviewboard.digium.com/. Once successfully tested, and reviewed by the community steps can then be taken to merge the code. By: Roberto La Rosa (rlr2maverick) 2010-05-19 10:45:54 here is the patch, it was so easy and works here ! 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); By: ever (ever) 2010-05-24 04:31:59 Hi The diff code has been uploaded, do you know how long it will take for the merging process? Thanks in advance for the help By: Paul Belanger (pabelanger) 2010-06-03 20:55:05 Upload your patch to the issue tracker, not comments. By: Roberto La Rosa (rlr2maverick) 2010-06-04 03:52:00 Done ! I apologize, it just was a fault of mine. By: David Woolley (davidw) 2010-06-04 04:30:27 You need to upload it with the code/documentation box ticked. Before doing that, you have to submit an electronic licence grant to Digium. By: Paul Belanger (pabelanger) 2010-06-14 09:02:08 Please use svn diff on all your patches. Patches which include alternate formatting are almost certainly going to be thrown out or ignored; there are too few hours in the day to wade through difficult-to-follow C code fixes without the help of diff -u. Thanks! By: Paul Belanger (pabelanger) 2010-06-25 08:57:50 ping By: Roberto La Rosa (rlr2maverick) 2010-06-25 09:51:27 Sorry there, I'm strongly interested in it bu I dunno how to do ... would you suggest me the exact command sequence ? I installed svn but I get no output from svn diff oldfile.c.orig newfile.c ... Many thanks in advance ! By: Paul Belanger (pabelanger) 2010-06-25 10:07:46 After you have made changes to your local branch, you can create a patch using: $ svn diff > issue17340.patch By: Paul Belanger (pabelanger) 2010-09-04 14:08:35 Suspended due to lack of activity. Please request a bug marshal in #asterisk-bugs on the IRC network irc.freenode.net to reopen the issue should you have the additional information requested. Further information can be found at http://www.asterisk.org/developers/bug-guidelines |