[asterisk-dev] [Code Review] 4477: app_confbridge (11): file playback blocks dtmf

rmudgett reviewboard at asterisk.org
Wed Mar 18 12:39:53 CDT 2015


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



branches/11/apps/app_confbridge.c
<https://reviewboard.asterisk.org/r/4477/#comment25310>

    I think some more thought needs to go into the parameters passed to this function because the bridge_channel and channel parameters are a bit redundant.



branches/11/apps/app_confbridge.c
<https://reviewboard.asterisk.org/r/4477/#comment25305>

    No init needed with below change.



branches/11/apps/app_confbridge.c
<https://reviewboard.asterisk.org/r/4477/#comment25304>

    Add
    stop_digits = AST_DIGIT_NONE;
    here.



branches/11/apps/app_confbridge.c
<https://reviewboard.asterisk.org/r/4477/#comment25306>

    Please get out of the habit of assigning in if tests:
    
    digit = ast_stream_and_wait(...)
    if (digit < 0)
    



branches/11/apps/app_confbridge.c
<https://reviewboard.asterisk.org/r/4477/#comment25311>

    The bridge_channel parameter really acts as a flag for if the prompts are interruptable or not.  The caller sort of already knows this so it should be a flag instead of a pointer.



branches/11/apps/app_confbridge.c
<https://reviewboard.asterisk.org/r/4477/#comment25309>

    Revert this part.  It is not interruptable because you currently have no way of telling if the return of play_file() was because the file could not play or was interrupted by DTMF.



branches/11/apps/app_confbridge.c
<https://reviewboard.asterisk.org/r/4477/#comment25302>

    This function plays to the bridge so its playback cannot not be interrupted since the bridge has no menu.  Only users have menus.
    
    Revert this change.  This will simplify the patch because of the ripple effect.



branches/11/apps/app_confbridge.c
<https://reviewboard.asterisk.org/r/4477/#comment25303>

    Revert this too for the same reason.



branches/11/apps/app_confbridge.c
<https://reviewboard.asterisk.org/r/4477/#comment25312>

    This is really awkward:
    conference_bridge_user
    bridge_channel
    chan
    All indicate the channel.  In this case the function is always called when the channel is in the bridge so the prompt is always interruptable.



branches/11/apps/app_confbridge.c
<https://reviewboard.asterisk.org/r/4477/#comment25313>

    Similar situation here as with action_toggle_mute().
    
    bridge_channel is not even used.



branches/11/apps/app_confbridge.c
<https://reviewboard.asterisk.org/r/4477/#comment25314>

    Swaping which plays first will allow the channel's prompt to be interruptable.  Although doing this will make it kind of awkward that there will be a delay in the user hearing the prompt.



branches/11/apps/app_confbridge.c
<https://reviewboard.asterisk.org/r/4477/#comment25316>

    The way that this function is written will cause an interrupting DTMF to repeatedly interrupt a series of playback files:
    
    play_me&no_play_me&pick_me
    
    A DTMF interrupt during play_me will push the digit back and then start playing no_play_me which will interrupt and push the digit back a second time to start playing pick_me which will interrupt and push the digit back a third time.



branches/11/apps/app_confbridge.c
<https://reviewboard.asterisk.org/r/4477/#comment25315>

    The warning message is already generated by play_file().



branches/11/apps/app_confbridge.c
<https://reviewboard.asterisk.org/r/4477/#comment25317>

    Similar situation here as with action_toggle_mute().
    
    bridge_channel is not really used as conference_bridge_user->chan could be used instead.



branches/11/apps/app_confbridge.c
<https://reviewboard.asterisk.org/r/4477/#comment25318>

    Similar situation here as with action_toggle_mute().
    


- rmudgett


On March 17, 2015, 1 p.m., Kevin Harwell wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/4477/
> -----------------------------------------------------------
> 
> (Updated March 17, 2015, 1 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Bugs: ASTERISK-24864
>     https://issues.asterisk.org/jira/browse/ASTERISK-24864
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> Attempting to execute DTMF in a confbridge while file playback (prompt, announcement, etc) is occurring is not allowed. You have to wait until the sound file has completed before entering DTMF. This patch fixes it so that app_confbridge now monitors for dtmf key presses during file playback. If a key is pressed playback stops and it executes the matched menu option.
> 
> 
> Diffs
> -----
> 
>   branches/11/apps/confbridge/include/confbridge.h 432991 
>   branches/11/apps/confbridge/conf_state_multi_marked.c 432991 
>   branches/11/apps/app_confbridge.c 432991 
> 
> Diff: https://reviewboard.asterisk.org/r/4477/diff/
> 
> 
> Testing
> -------
> 
> Manual testing done. Setup a basic conference bridge that allowed both regular and admin users to enter. Ran through various menu options to make sure the sound file playback would stop (no longer have to wait) and a new option was executed when appropriate. Also ran the app_confbridge testsuite tests to make sure they still passed.
> 
> 
> Thanks,
> 
> Kevin Harwell
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20150318/96c5e52f/attachment-0001.html>


More information about the asterisk-dev mailing list