Skip to content
Snippets Groups Projects
  • Mark Michelson's avatar
    0b7148e2
    Local channels: Do not block control -1 payloads. · 0b7148e2
    Mark Michelson authored
    Control frames with a -1 payload are used as a special signal to stop
    playtones generators on channels. This indication is sent both by
    app_dial as well as by ast_answer() when a call is answered in case any
    tones were being generated on a calling channel.
    
    This control frame type was made to stop traversing local channel pairs
    as an optimization, because it was thought that it was unnecessary to
    send these indications, and allowing such unnecessary control frames to
    traverse the local channels would cause the local channels to optimize
    away less quickly.
    
    As it turns out, through some special magic dialplan code, it is
    possible to have a tones being played on a non-local channel, and it is
    important for the local channel to convey that the tones should be
    stopped. The result of having tones continue to be played on the
    non-local channel is that the tones play even once the channel has been
    bridged. By not blocking the -1 control frame type, we can ensure that
    this situation does not happen.
    
    ASTERISK-25250 #close
    Reported by Etienne Lessard
    
    Change-Id: I0bcaac3d70b619afdbd0ca8a8dd708f33fd2f815
    0b7148e2
    History
    Local channels: Do not block control -1 payloads.
    Mark Michelson authored
    Control frames with a -1 payload are used as a special signal to stop
    playtones generators on channels. This indication is sent both by
    app_dial as well as by ast_answer() when a call is answered in case any
    tones were being generated on a calling channel.
    
    This control frame type was made to stop traversing local channel pairs
    as an optimization, because it was thought that it was unnecessary to
    send these indications, and allowing such unnecessary control frames to
    traverse the local channels would cause the local channels to optimize
    away less quickly.
    
    As it turns out, through some special magic dialplan code, it is
    possible to have a tones being played on a non-local channel, and it is
    important for the local channel to convey that the tones should be
    stopped. The result of having tones continue to be played on the
    non-local channel is that the tones play even once the channel has been
    bridged. By not blocking the -1 control frame type, we can ensure that
    this situation does not happen.
    
    ASTERISK-25250 #close
    Reported by Etienne Lessard
    
    Change-Id: I0bcaac3d70b619afdbd0ca8a8dd708f33fd2f815