On Demand Recording for extension Disabled not working

Hi,

I have the “In-Call Asterisk Toggle Call Recording” feature code *1 enabled.
I would like to prevent a specific user from being able to toggle recordings on/off with this feature code, so I have set to “Disable” the “On Demand Recording” option under the extension. Still, when I test it, the feature code works allowing the extension to toggle call recordings. All other recording options for the extension are set to “Don’t Care”.

What could be causing this behavior?

I’m unable to repro this on a current 15 system. If the on demand option is disabled for the extension, you can confirm it from the asterisk console:

CLI> database show ampuser 6006/recording/ondemand
/AMPUSER/6006/recording/ondemand                  : disabled

And when I attempt to use the in call code, I see this on the console and hear the ‘access denied’ recording:

    -- Executing [s@macro-one-touch-record:1] Set("PJSIP/6006-000000d4", "ONETOUCH_REC_SCRIPT_STATUS=") in new stack
    -- Executing [s@macro-one-touch-record:2] System("PJSIP/6006-000000d4", "/var/lib/asterisk/bin/one_touch_record.php "PJSIP/6006-000000d4"") in new stack
    -- Executing [s@macro-one-touch-record:3] NoOp("PJSIP/6006-000000d4", "ONETOUCH_REC_SCRIPT_STATUS: [DENIED-ASTDB]") in new stack
    -- Executing [s@macro-one-touch-record:4] NoOp("PJSIP/6006-000000d4", "REC_STATUS: [RECORDING]") in new stack
    -- Executing [s@macro-one-touch-record:5] GotoIf("PJSIP/6006-000000d4", "1?denied") in new stack
    -- Goto (macro-one-touch-record,s,11)
    -- Executing [s@macro-one-touch-record:11] ExecIf("PJSIP/6006-000000d4", "1?Playback(access-denied)") in new stack
    -- <PJSIP/6006-000000d4> Playing 'access-denied.g722' (language 'en')

Thanks for your response @lgaetz.

PBX Version:15.0.23
PBX Distro:12.7.8-2107-3.sng7
Asterisk Version:13.38.3

On demand recording for the user is disabled.

How do I check the information in the console when testing?

Thanks.

You can get a call trace and share via Pastebin
https://wiki.freepbx.org/display/SUP/Providing+Great+Debug#ProvidingGreatDebug-AsteriskLogs-PartII

Thanks!

https://pastebin.freepbx.org/view/56f0d303

We are under Device & User mode and 903981 is the Zulu device linked to user/extension 3981.

I think the short answer here is that this feature has not been tested with device and user and is one of the things that is not supported. I tried to find an open ticket for this, but not seeing one.

Is anyone here aware of the status of one touch record with device and user mode, or are able to replicate this?

I also use Sangoma Connect with that same extension 3981, and here it does work. I get the “access denied” recording. This is just not working when using Zulu softphone.

Unable to repro this in device and user mode. I get an audible “Access Denied” message when on demand recording is disabled.

When enabled:

Executing [s@macro-one-touch-record:11] ExecIf("PJSIP/507-00000aac", "0?Playback(access-denied)") in new stack

When disabled:

Executing [s@macro-one-touch-record:11] ExecIf("PJSIP/507-00000aad", "1?Playback(access-denied)") in new stack

What user is the Zulu device assigned to? It should be the user that you have changed the On Demand Recording setting for.

Yes, the user linked to the Zulu device 903981 is extension 3981.

What happens if you force that setting through asterisk db for the device?

asterisk -x "database put AMPUSER 903981/recording/ondemand disabled"

then

fwconsole reload

verify it’s in the astDB with

asterisk -x "database show AMPUSER 903981"

It would be weird if that works but at this point you aren’t really going to get support since it’s in device and user mode.

I’m doing some testing here, and thinking that this is not a D&U issue. Will update when I have more.

The on demand feature code permission is not working for Zulu. When the feature code is invoked, there is some logging beyond what shows on the Asterisk console, in /var/log/asterisk/freepbx_dbug

The dialing channel (in this case Zulu) is identified as PJSIP/XXXXX and the script attempts to find a matching entry in the AstDB to find the associated user. Once the user is identified, then the setting for one touch record permission can be read from AstDB. The problem is this is how a Zulu extension is identified in the AstDB:

CLI> database show DEVICE 906006/dial
/DEVICE/906006/dial                               : Local/906006@zulu-call

The dial string does not match the PJSIP/XXXXX format like a normal hard phone:

CLI> database show DEVICE 6006/dial
/DEVICE/6006/dial                                 : PJSIP/6006

Or a Sangoma Phone Desktop Client

CLI> database show DEVICE 986006/dial
/DEVICE/986006/dial                               : PJSIP/986006

Ticket is here, but it may be better (certainly faster) to migrate your users to Sangoma Phone Desktop in lieu of using Zulu.

I really appreciate you taking the time to check this. Great explanation.
I will test with Sangoma Phone for desktop to confirm this works. I thought it was still on Beta.

Did try this, but did not work :frowning:

Yes, I just confirmed that if using the Sangoma Connect softphone for desktop instead of Zulu works as intended. So I guess I will just start transitioning since Zulu may be obsolete soon?

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.