[asterisk-dev] Asterisk bridging framework

asterisk at phreaknet.org asterisk at phreaknet.org
Wed Dec 27 15:23:33 CST 2023


A few questions about the native bridging framework:

In contrast to DAHDI conferencing, which still requires manually 
servicing each channel in the conference, in whatever arbitrary threads 
desired, the bridging API is more "event oriented". I have a couple 
questions about the latter:

  * Is there any way to retain control of a channel in a bridge and
    service it manually, e.g. call ast_waitfor/ast_read on it? It seems
    when a channel is imparted to a bridge, a thread is always created,
    with the only difference being you don't need to join it later with
    AST_BRIDGE_IMPART_CHAN_INDEPENDENT. I'm pretty sure the answer is
    'no', since that's the entire point of native bridging, but just
    want to confirm that... (and that the bridging framework requires 1
    thread per channel)
  * There are a couple functions for hooking into the bridge, e.g.
    ast_bridge_dtmf_hook for DTMF events and ast_bridge_interval_hook
    periodically. I don't see anything more generic than this, though.
    Say that for certain channels in the bridge I wanted to intercept
    the voice frames from the bridge and modify them. I suppose you just
    use framehooks as usual on the channel? I'm guessing there's no
    difference in behavior, and that ast_bridge_dtmf_hook is purely a
    convenience function.
  * Is there any current way to detect if a channel is muted in a
    bridge? There's an ast_channel_suppress API, but no API to read the
    datastore, and I don't see anything else that seems relevant to
    determining this. Not sure if I've missed something... would code
    need to be added to do this?

Thanks!




More information about the asterisk-dev mailing list