Call recording, access denied?

I am trying to use the on-demand call recording feature on a specific extension. Feature code *1 is enabled, and the 5 options under recording are set as “don’t care”. On demand recording is set to “enable”.

Call recording on the outbound route is set to “yes”. However, every time I make an outbound call and try to enable the recording I hear “access denied”.

Can someone clarify what I may be doing wrong? What I want to accomplish here is to have the ability to start recording the phone call whenever I wish. I don’t want it tor record automatically, I want the option to start and stop the recording as I feel necessary.

Thank you!!

Can you check under Settings>Advanced Settings for the options in the following fields?

Asterisk Dial Options
Asterisk Outbound Trunk Dial Options

You may need to set additional options there for fully enable, see below:

_w Allow the called party to enable recording of the call by using the In-Call Asterisk Toggle Call Recording code (default value is *1) _
W Allow the calling party to enable recording of the call by using the In-Call Asterisk Toggle Call Recording code (default value is *1)

So you’d want your options to be TtrwW to enable recording.

Let us know the results.

Thank you James. Am I making the update to both fields?

Yep, set wW on both fields and test it out.

I set both fields as “TtrwW”, still hearing access denied on *1.

Can you provide a log of the call you tested in?

How do I properly start capturing the log for another outbound call?

log into your pbx via putty and check /var/log/asterisk/full and it should have a full breakdown of your call from start to finish. Copy and paste here.

Also to confirm you hit the Submit button at the bottom of the Settings page and then hit Apply Config at the top of the page correct?

Yeah I did. How do I scroll all the way to the bottom? Theres a log from the start of the day

How did you open the log? Nano? VI?

cd /var/log/asterisk

ls -l to select the full

nano full

ALT + / will take you to the bottom of the file.

[2016-11-21 17:23:47] VERBOSE[29736][C-0000025b] app_macro.c: Spawn extension (macro-dialout-trunk, s, 23) exited non-zero on ‘SIP/x’ in macro 'di$
[2016-11-21 17:23:47] VERBOSE[29736][C-0000025b] pbx.c: Spawn extension (from-internal, xxxxxxxxx, 7) exited non-zero on ‘SIP/x’
[2016-11-21 17:23:47] VERBOSE[29736][C-0000025b] pbx.c: Executing [h@from-internal:1] Macro(“SIP/x”, “hangupcall”) in new stack
[2016-11-21 17:23:47] VERBOSE[29736][C-0000025b] pbx.c: Executing [s@macro-hangupcall:1] GotoIf(“SIP/x”, “1?theend”) in new stack
[2016-11-21 17:23:47] VERBOSE[29736][C-0000025b] pbx_builtins.c: Goto (macro-hangupcall,s,3)
[2016-11-21 17:23:47] VERBOSE[29736][C-0000025b] pbx.c: Executing [s@macro-hangupcall:3] ExecIf(“SIP/x”, “0?Set(CDR(recordingfile)=)”) in new stack
[2016-11-21 17:23:47] VERBOSE[29736][C-0000025b] pbx.c: Executing [s@macro-hangupcall:4] Hangup(“SIP/x”, “”) in new stack
[2016-11-21 17:23:47] VERBOSE[29736][C-0000025b] app_macro.c: Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘SIP/x’ in macro 'hangup$
[2016-11-21 17:23:47] VERBOSE[29736][C-0000025b] pbx.c: Spawn extension (from-internal, h, 1) exited non-zero on ‘SIP/x’
[2016-11-21 17:23:47] VERBOSE[29738][C-0000025b] app_mixmonitor.c: MixMonitor close filestream (mixed)
[2016-11-21 17:23:47] VERBOSE[29738][C-0000025b] app_mixmonitor.c: End MixMonitor Recording SIP/x

Is that it? Took off some personal information there

In my logs of the same call, test I did to confirm how it should work, you can see the DTMF tones coming in for *1. Also on my outbound route I have call recording set to “Don’t Care”. That would be the only difference I can see in our configs.

When I first tried i removed the wW from my set up to see if I could replicate your issue and added back in to confirm working. Can you confirm you settings saved with the wW in them?

Sure,

Advanced Settings:
Asterisk Dial Options: TtrwW
Asterisk Outbound Trunk Dial Options: TtrwW

Extension:
Inbound External Calls: Force Yes Don’t Care No Never
Outbound External Calls: Force Yes Don’t Care No Never
Inbound Internal Calls Force: Yes Don’t Care No Never
Outbound Internal Calls Force: Yes Don’t Care No Never
On Demand Recording: Disable Enable Override
Record Priority Policy: 10

Outbound route:
Call Recording: Force Yes Don’t Care NoNever

Feature codes:

In-Call Asterisk Toggle Call Recording *1 Customize Enabled

Should I reset my server?

Should not need to. Do this:

go into asterisk CLI with asterisk -r
enter “core set verbose 5” (no quotes)
perform your test call

when I make my call I get the following:
[2016-11-21 17:47:06] DTMF[59282][C-000016a1]: channel.c:4215 __ast_read: DTMF begin ‘’ received on SIP/1549-000055d9
[2016-11-21 17:47:06] DTMF[59282][C-000016a1]: channel.c:4226 __ast_read: DTMF begin passthrough '
’ on SIP/1549-000055d9
[2016-11-21 17:47:06] DTMF[59282][C-000016a1]: channel.c:4129 __ast_read: DTMF end ‘’ received on SIP/1549-000055d9, duration 80 ms
[2016-11-21 17:47:06] DTMF[59282][C-000016a1]: channel.c:4170 __ast_read: DTMF end accepted with begin '
’ on SIP/1549-000055d9
[2016-11-21 17:47:06] DTMF[59282][C-000016a1]: channel.c:4185 __ast_read: DTMF end ‘’ detected to have actual duration 78 on the wire, emulation will be triggered on SIP/1549-000055d9
[2016-11-21 17:47:06] DTMF[59282][C-000016a1]: channel.c:4192 __ast_read: DTMF end '
’ has duration 78 but want minimum 80, emulating on SIP/1549-000055d9
[2016-11-21 17:47:06] DTMF[59282][C-000016a1]: channel.c:4249 __ast_read: DTMF end emulation of ‘’ queued on SIP/1549-000055d9
[2016-11-21 17:47:06] DTMF[59282][C-000016a1]: channel.c:4215 __ast_read: DTMF begin ‘1’ received on SIP/1549-000055d9
[2016-11-21 17:47:06] DTMF[59282][C-000016a1]: channel.c:4226 __ast_read: DTMF begin passthrough ‘1’ on SIP/1549-000055d9
[2016-11-21 17:47:06] DTMF[59282][C-000016a1]: channel.c:4129 __ast_read: DTMF end ‘1’ received on SIP/1549-000055d9, duration 90 ms
[2016-11-21 17:47:06] DTMF[59282][C-000016a1]: channel.c:4170 __ast_read: DTMF end accepted with begin ‘1’ on SIP/1549-000055d9
[2016-11-21 17:47:06] DTMF[59282][C-000016a1]: channel.c:4199 __ast_read: DTMF end passthrough ‘1’ on SIP/1549-000055d9
– <SIP/1549-000055d9> Playing ‘beep.ulaw’ (language ‘en’)
– <SIP/Sierra-SIP01-000055da> Playing ‘beep.gsm’ (language ‘en’)
> User hit ‘1’ to record call. filename: wav,auto-1479768427-1479768398.39606,m
[2016-11-21 17:47:10] DTMF[59282][C-000016a1]: channel.c:4215 __ast_read: DTMF begin '
’ received on SIP/1549-000055d9
[2016-11-21 17:47:10] DTMF[59282][C-000016a1]: channel.c:4226 __ast_read: DTMF begin passthrough '
’ on SIP/1549-000055d9
[2016-11-21 17:47:11] DTMF[59282][C-000016a1]: channel.c:4129 __ast_read: DTMF end ‘’ received on SIP/1549-000055d9, duration 120 ms
[2016-11-21 17:47:11] DTMF[59282][C-000016a1]: channel.c:4170 __ast_read: DTMF end accepted with begin '
’ on SIP/1549-000055d9
[2016-11-21 17:47:11] DTMF[59282][C-000016a1]: channel.c:4199 __ast_read: DTMF end passthrough ‘*’ on SIP/1549-000055d9
[2016-11-21 17:47:11] DTMF[59282][C-000016a1]: channel.c:4215 __ast_read: DTMF begin ‘1’ received on SIP/1549-000055d9
[2016-11-21 17:47:11] DTMF[59282][C-000016a1]: channel.c:4226 __ast_read: DTMF begin passthrough ‘1’ on SIP/1549-000055d9
[2016-11-21 17:47:11] DTMF[59282][C-000016a1]: channel.c:4129 __ast_read: DTMF end ‘1’ received on SIP/1549-000055d9, duration 100 ms
[2016-11-21 17:47:11] DTMF[59282][C-000016a1]: channel.c:4170 __ast_read: DTMF end accepted with begin ‘1’ on SIP/1549-000055d9
[2016-11-21 17:47:11] DTMF[59282][C-000016a1]: channel.c:4199 __ast_read: DTMF end passthrough ‘1’ on SIP/1549-000055d9
– <SIP/1549-000055d9> Playing ‘beep.ulaw’ (language ‘en’)
– <SIP/Sierra-SIP01-000055da> Playing ‘beep.gsm’ (language ‘en’)
> User hit ‘*1’ to stop recording call.

If I take away the wW on my dial options I’ll get the following:

[2016-11-21 17:50:32] DTMF[60062][C-000016a2]: channel.c:4215 __ast_read: DTMF begin ‘’ received on SIP/1549-000055db
[2016-11-21 17:50:32] DTMF[60062][C-000016a2]: channel.c:4226 __ast_read: DTMF begin passthrough '
’ on SIP/1549-000055db
[2016-11-21 17:50:32] DTMF[60062][C-000016a2]: channel.c:4129 __ast_read: DTMF end ‘’ received on SIP/1549-000055db, duration 60 ms
[2016-11-21 17:50:32] DTMF[60062][C-000016a2]: channel.c:4170 __ast_read: DTMF end accepted with begin '
’ on SIP/1549-000055db
[2016-11-21 17:50:32] DTMF[60062][C-000016a2]: channel.c:4185 __ast_read: DTMF end ‘’ detected to have actual duration 60 on the wire, emulation will be triggered on SIP/1549-000055db
[2016-11-21 17:50:32] DTMF[60062][C-000016a2]: channel.c:4192 __ast_read: DTMF end '
’ has duration 60 but want minimum 80, emulating on SIP/1549-000055db
[2016-11-21 17:50:32] DTMF[60062][C-000016a2]: channel.c:4249 __ast_read: DTMF end emulation of ‘*’ queued on SIP/1549-000055db
[2016-11-21 17:50:32] DTMF[60062][C-000016a2]: channel.c:4215 __ast_read: DTMF begin ‘1’ received on SIP/1549-000055db
[2016-11-21 17:50:32] DTMF[60062][C-000016a2]: channel.c:4226 __ast_read: DTMF begin passthrough ‘1’ on SIP/1549-000055db
[2016-11-21 17:50:32] DTMF[60062][C-000016a2]: channel.c:4129 __ast_read: DTMF end ‘1’ received on SIP/1549-000055db, duration 70 ms
[2016-11-21 17:50:32] DTMF[60062][C-000016a2]: channel.c:4170 __ast_read: DTMF end accepted with begin ‘1’ on SIP/1549-000055db
[2016-11-21 17:50:32] DTMF[60062][C-000016a2]: channel.c:4185 __ast_read: DTMF end ‘1’ detected to have actual duration 71 on the wire, emulation will be triggered on SIP/1549-000055db
[2016-11-21 17:50:32] DTMF[60062][C-000016a2]: channel.c:4192 __ast_read: DTMF end ‘1’ has duration 71 but want minimum 80, emulating on SIP/1549-000055db
[2016-11-21 17:50:32] DTMF[60062][C-000016a2]: channel.c:4249 __ast_read: DTMF end emulation of ‘1’ queued on SIP/1549-000055db
– Feature Found: apprecord exten: apprecord
– Executing [s@macro-one-touch-record:1] Set(“SIP/1549-000055db”, “ONETOUCH_REC_SCRIPT_STATUS=”) in new stack
– Executing [s@macro-one-touch-record:2] System(“SIP/1549-000055db”, “/var/lib/asterisk/bin/one_touch_record.php “SIP/1549-000055db””) in new stack
– Executing [s@macro-one-touch-record:3] NoOp(“SIP/1549-000055db”, “ONETOUCH_REC_SCRIPT_STATUS: [DENIED-ASTDB]”) in new stack
– Executing [s@macro-one-touch-record:4] ExecIf(“SIP/1549-000055db”, “0?Playback(beep)”) in new stack
– Executing [s@macro-one-touch-record:5] ExecIf(“SIP/1549-000055db”, “0?Playback(beep&beep)”) in new stack
– Executing [s@macro-one-touch-record:6] ExecIf(“SIP/1549-000055db”, “1?Playback(access-denied)”) in new stack
– <SIP/1549-000055db> Playing ‘access-denied.ulaw’ (language ‘en’)
– Executing [s@macro-one-touch-record:7] MacroExit(“SIP/1549-000055db”, “”) in new stack
– Executing [h@macro-dialout-trunk:1] Macro(“SIP/1549-000055db”, “hangupcall,”) in new stack
– Executing [s@macro-hangupcall:1] ExecIf(“SIP/1549-000055db”, “0?Set(CDR(recordingfile)=.wav)”) in new stack
– Executing [s@macro-hangupcall:2] GotoIf(“SIP/1549-000055db”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,4)
– Executing [s@macro-hangupcall:4] ExecIf(“SIP/1549-000055db”, “0?Set(CDR(recordingfile)=)”) in new stack
– Executing [s@macro-hangupcall:5] Hangup(“SIP/1549-000055db”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 5) exited non-zero on ‘SIP/1549-000055db’ in macro ‘hangupcall’
== Spawn extension (macro-dialout-trunk, h, 1) exited non-zero on ‘SIP/1549-000055db’
== Spawn extension (macro-dialout-trunk, s, 23) exited non-zero on ‘SIP/1549-000055db’ in macro ‘dialout-trunk’
== Spawn extension (restrictedroute-453e406dcee4d18174d4ff623f52dcd8, 4129807578, 5) exited non-zero on ‘SIP/1549-000055db’

This is what I got:

-- Executing [s@macro-one-touch-record:1] Set("SIP/", "ONETOUCH_REC_SCRIPT_STATUS=") in new stack
-- Executing [s@macro-one-touch-record:2] System("SIP/", "/var/lib/asterisk/bin/one_touch_record.php "SIP/"") in new stack
-- Executing [s@macro-one-touch-record:3] NoOp("SIP/", "ONETOUCH_REC_SCRIPT_STATUS: [DENIED-ASTDB]") in new stack
-- Executing [s@macro-one-touch-record:4] ExecIf("SIP/", "0?Playback(beep)") in new stack
-- Executing [s@macro-one-touch-record:5] ExecIf("SIP/", "0?Playback(beep&beep)") in new stack
-- Executing [s@macro-one-touch-record:6] ExecIf("SIP/", "1?Playback(access-denied)") in new stack
-- <SIP/> Playing 'access-denied.ulaw' (language 'en')
-- Executing [s@macro-one-touch-record:7] MacroExit("SIP/", "") in new stack
-- Executing [s@macro-one-touch-record:1] Set("SIP/", "ONETOUCH_REC_SCRIPT_STATUS=") in new stack
-- Executing [s@macro-one-touch-record:2] System("SIP/", "/var/lib/asterisk/bin/one_touch_record.php "SIP/"") in new stack
-- Executing [s@macro-one-touch-record:3] NoOp("SIP/", "ONETOUCH_REC_SCRIPT_STATUS: [DENIED-ASTDB]") in new stack
-- Executing [s@macro-one-touch-record:4] ExecIf("SIP/", "0?Playback(beep)") in new stack
-- Executing [s@macro-one-touch-record:5] ExecIf("SIP/", "0?Playback(beep&beep)") in new stack
-- Executing [s@macro-one-touch-record:6] ExecIf("SIP/", "1?Playback(access-denied)") in new stack
-- <SIP/> Playing 'access-denied.ulaw' (language 'en')
-- Executing [s@macro-one-touch-record:7] MacroExit("SIP/", "") in new stack
-- Channel SIP/left 'simple_bridge' basic-bridge <1ae1dde5-fe00-41f8-bb58-7b4cd89f78b1>
-- Channel SIP/ left 'simple_bridge' basic-bridge <1ae1dde5-fe00-41f8-bb58-7b4cd89f78b1>

== Spawn extension (macro-dialout-trunk, s, 23) exited non-zero on 'SIP/in macro ‘dialout-trunk’
== Spawn extension (from-internal, , 7) exited non-zero on '
– Executing [h@from-internal:1] Macro(“SIP/”, “hangupcall”) in new stack
– Executing [s@macro-hangupcall:1] GotoIf(“SIP/”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,3)
– Executing [s@macro-hangupcall:3] ExecIf(“SIP/”, “0?Set(CDR(recordingfile)=)”) in new stack
– Executing [s@macro-hangupcall:4] Hangup(“SIP/”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘SIP/’ in macro ‘hangupcall’
== Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/'
localhost*CLI>

ok, the system doesn’t appear to be recognizing you added the wW settings. Try the following:

amportal a r (or fwconsole reload if you’re using FreePBX13+) to reload the settings then test again.

If still not working, restart asterisk as follows:
asterisk -r (to get into CLI)
core restart now (to restart asterisk without waiting)

Then test again