[Home]

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:21Date Closed:2011-06-07 14:00:49
Priority:MajorRegression?No
Status:Closed/CompleteComponents: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