> On May 7, 2014, 10:49 a.m., Matt Jordan wrote:
> > /branches/1.8/channels/sig_pri.c, lines 5275-5290
> > <https://reviewboard.asterisk.org/r/3521/diff/1/?file=58211#file58211line5275>
> >
> >     This is really hard to read, particularly with the level of indentation 
> > that is required here.
> >     
> >     Is there is any way the detection of match_more / need_dialtone can be 
> > put into small functions, that would be... nice.
> >     
> >     match_more = can_pri_match_more(e, pri);
> >     need_dialtone = do_i_need_dialtone(match_more, e, pri);
> >     
> >     Something like that.
> 
> rmudgett wrote:
>     They could be put into encapsulating functions but I'm not sure there is 
> much benefit over just setting the boolean variables as done here.  
> Admittedly, pri_dchannel() has long been in need of refactoring into smaller 
> functions.
>     
>     Is it the starting indentation level causing reviewboard to wrap the 
> lines awkwardly that is the main problem?
>
> 
> Matt Jordan wrote:
>     Well, yes - but at the same time, that's not Review Board's problem. To 
> quote Linus:
>     
>     {quote}
>     Now, some people will claim that having 8-character indentations makes
>     the code move too far to the right, and makes it hard to read on a
>     80-character terminal screen.  The answer to that is that if you need
>     more than 3 levels of indentation, you're screwed anyway, and should fix
>     your program.
>     {quote}
>     
>     Yes, this means we're screwed in so many places in Asterisk it's not 
> really funny (and no, I'm not advocating for 8 character indentations), but 
> when our indentations with 4-character spacing pushes the code so far over 
> that it can't render properly in Review Board, that's a sign that a change is 
> warranted.

I'm going to commit this patch and the corresponding libpri patch.  In a 
separate patch I'll extract the PRI_EVENT_RING case into its own function to 
reduce the indentation and eliminate the duplicated code setting up the 
incoming call channel.  That will improve the readability and maintainability.


- rmudgett


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3521/#review11837
-----------------------------------------------------------


On May 1, 2014, 9:35 p.m., rmudgett wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3521/
> -----------------------------------------------------------
> 
> (Updated May 1, 2014, 9:35 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Bugs: AST-1338
>     https://issues.asterisk.org/jira/browse/AST-1338
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> This review and https://reviewboard.asterisk.org/r/3520/ work together to 
> allow Asterisk to control the inband audio available progress indication ie 
> on the SETUP_ACKNOWLEDGE message when dialtone is present.
> 
> When overlap dialing is enabled, the lack of inband audio available 
> information in the SETUP_ACKNOWLEDGE events causes an interoperability 
> problem with SIP.  sig_pri doesn't know if there is dialtone present when a 
> SETUP_ACKNOWLEDGE is received so it assumes it is there and posts an 
> AST_CONTROL_PROGRESS frame.  The SIP channel driver then sends out a 183 
> Session Progress and blocks the desired 180 Ringing message when the ALERTING 
> message comes in.
> 
> * Made the configure script detect if the installed version of libpri 
> supports the SETUP_ACKNOWLEDGE enhancements.
> 
> * Using the new API, made generate an AST_CONTROL_PROGRESS frame on an 
> incoming SETUP_ACKNOWLEDGE message when the message indicates inband audio is 
> present insetad of assuming that dialtone is present.
> 
> * Using the new API, made SETUP_ACKNOWLEDGE send out an inband audio 
> available indication only if dialtone is expected.  The change also makes the 
> fallback behaviour of sending the PROGRESS message better by sending it only 
> if dialtone is expected.
> 
> * Changed receiving a PROCEEDING message to not generate an 
> AST_CONTROL_PROGRESS frame if the progress indication ie indicates 
> non-end-to-end-ISDN.  This helps interoperability with SIP.
> 
> * Changed sending a PROCEEDING message in response to an 
> AST_CONTROL_PROCEEDING frame to not indicate inband audio available.  It was 
> silly to do so anyway because the channel driver doesn't know if inband audio 
> is even available.  This helps interoperability with SIP.
> 
> 
> Diffs
> -----
> 
>   /branches/1.8/include/asterisk/autoconfig.h.in 413194 
>   /branches/1.8/configure.ac 413194 
>   /branches/1.8/configure UNKNOWN 
>   /branches/1.8/channels/sig_pri.c 413194 
> 
> Diff: https://reviewboard.asterisk.org/r/3521/diff/
> 
> 
> Testing
> -------
> 
> Sent calls over an ISDN trunk with overlap dialing enabled that did and did 
> not present dialtone for more digits.
> Observed that the inband audio available progress indication ie was sent when 
> needed on the SETUP_ACKNOWLEDGE message.
> Added a debug message that indicated when Asterisk did and did not receive 
> the inband audio indication for the SETUP_ACKNOWLEDGE message.
> 
> 
> Thanks,
> 
> rmudgett
> 
>

-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to