Skip to content
Snippets Groups Projects
  • Joshua Colp's avatar
    d6386a8f
    bridge: Add a deferred queue. · d6386a8f
    Joshua Colp authored
    This change adds a deferred queue to bridging. If a bridge
    technology determines that a frame can not be written and
    should be deferred it can indicate back to bridging to do so.
    Bridging will then requeue any deferred frames upon a new
    channel joining the bridge.
    
    This change has been leveraged for T.38 request negotiate
    control frames. Without the deferred queue there is a race
    condition between the bridge receiving the T.38 request
    negotiate and the second channel joining and being in the
    bridge. If the channel is not yet in the bridge then the T.38
    negotiation fails.
    
    A unit test has also been added that confirms that a T.38
    request negotiate control frame is deferred when no other
    channel is in the bridge and that it is requeued when a new
    channel joins the bridge.
    
    ASTERISK-26923
    
    Change-Id: Ie05b08523f399eae579130f4a5f562a344d2e415
    d6386a8f
    History
    bridge: Add a deferred queue.
    Joshua Colp authored
    This change adds a deferred queue to bridging. If a bridge
    technology determines that a frame can not be written and
    should be deferred it can indicate back to bridging to do so.
    Bridging will then requeue any deferred frames upon a new
    channel joining the bridge.
    
    This change has been leveraged for T.38 request negotiate
    control frames. Without the deferred queue there is a race
    condition between the bridge receiving the T.38 request
    negotiate and the second channel joining and being in the
    bridge. If the channel is not yet in the bridge then the T.38
    negotiation fails.
    
    A unit test has also been added that confirms that a T.38
    request negotiate control frame is deferred when no other
    channel is in the bridge and that it is requeued when a new
    channel joins the bridge.
    
    ASTERISK-26923
    
    Change-Id: Ie05b08523f399eae579130f4a5f562a344d2e415