Joshua, thank you for an insightful and helpful comment. My situation is not limited to MixMonitor issue, but it is a major obstacle, so the code you provided could prove to be very useful. One can - probably - keep proper call state by using shared variable space, but just as you said, it's kludgy and unreadable. If you feel compelled to write more comments than code, something is wrong.

21. 07. 2020. u 18:04, Joshua Elson je napisao/la:
In a general sense, this kind of functionality would indeed be helpful. We've run into a number of circumstances where stuff as simple as setting a channel variable on a known channel (particularly when you're directly operating on Local/ abstractions) would be helpful. I've seen far too many people using SHELL with AMI calls in these out of band scripts that are quite risky to do this. Using SHARED + MASTER_CHANNEL can - sometimes - get you where you need to go, but it's particularly kludgy, doesn't work in all circumstances, and doesn't make for very readable code.

I've run into the exact issue - needing to do stuff with MixMonitor on other channels - quite a few times. Never got around to cleaning this up to submit, but attached patch adds a MuteMixMonitor application that takes as its first argument a Channel ID. Nikša - if your situation is limited to just the MixMonitor issue, you could pretty easily modify existing start/stop apps or add a new one to do what you need.

On Tue, Jul 21, 2020 at 3:31 AM Nikša Baldun <i...@voxdiversa.hr <mailto:i...@voxdiversa.hr>> wrote:

    I suspected there might be a catch. So far, our dabbling in
    Asterisk code consists of some patches, mostly for our internal
    use, and a small Asterisk module. It didn't take us long to figure
    out how to make a module, even with limited documentation, but
    this looks an order of magnitude more difficult.

    On 21. 07. 2020. 10:58, Joshua C. Colp wrote:
    On Tue, Jul 21, 2020 at 3:52 AM Nikša Baldun <i...@voxdiversa.hr
    <mailto:i...@voxdiversa.hr>> wrote:

        Thanks for the reply, Joshua. It would definitely be useful.
        I took a look at FreePBX code to see how they handle call
        recordings in my example scenario, and apparently they call a
        PHP script from dialplan, which then controls recording via
        AMI connection. An awful lot of effort, not to mention a
        performance hit. I am guessing they wouldn't do it if there
        was any other way.

        I am not surprised that this functionality does not exist, I
        know that Asterisk development is difficult, but I am
        surprised there was no talk about it. I might take a crack at
        this myself if my schedule clears up. I am thinking,
        pre-bridge handlers already exist, and methodology for
        pushing handlers onto a channel already exists. So one could
        figure it out with some effort. Or am I being naive?

    Each provider of such functionality does its own parsing,
    handling of any other channel, but does call a common function.
    The pushing of handlers isn't generic or anything, so it would
    have to be copied.

-- Joshua C. Colp
    Asterisk Technical Lead
    Sangoma Technologies
    Check us out at www.sangoma.com <http://www.sangoma.com> and
    www.asterisk.org <http://www.asterisk.org>

-- _____________________________________________________________________
    -- 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


-- 
_____________________________________________________________________
-- 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