Pass the correct value to ast_timer_set_rate() for IAX2 trunking.
authorSean Bright <sean@malleable.com>
Fri, 17 Feb 2012 19:35:11 +0000 (19:35 +0000)
committerSean Bright <sean@malleable.com>
Fri, 17 Feb 2012 19:35:11 +0000 (19:35 +0000)
IAX2 uses the trunkfreq variable to determine how often to send trunk packets, but
this value is in milliseconds while ast_timer_set_rate() expects the rate argument
to be ticks per second.  So we divide 1000 by trunkfreq and pass that in instead.

With a default of 20ms, this change makes IAX2 send trunk packets every 20ms
instead of every 50ms.

Tracked down by myself and Bob Wienholt.
........

Merged revisions 355746 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 355747 from http://svn.asterisk.org/svn/asterisk/branches/10

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@355748 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_iax2.c

index 3e5d84f..8bdde9b 100644 (file)
@@ -14750,7 +14750,7 @@ static int load_module(void)
        jb_setoutput(jb_error_output, jb_warning_output, NULL);
        
        if ((timer = ast_timer_open())) {
-               ast_timer_set_rate(timer, trunkfreq);
+               ast_timer_set_rate(timer, 1000 / trunkfreq);
        }
 
        if (set_config(config, 0) == -1) {