Record Calls from Park

Well, this is quite frustrating.

A user parked an external caller, and then retrieved the call from park. The portion of the call after they were retrieved is not recorded. We really needed that call recorded.

Call flow:
Trunk → Inbound Route → Couple of time conditions and Night Modes → Queue → Extension Answered → Parked Call → Retrieved call from park → Caller hung up.

This is the extension’s recording settings:

VitalPBX 3.1.0-1

This needs to be fixed ASAP.

Hi @PitzKey,

Rest assured that we will check this ASAP.

1 Like

Currently doing the temp fix suggested by DannyLarsen in the old forums.



exten => _70[1-8],1,NoOp(Slot: ${CALL_DESTINATION})
**same => n(perform-recording),Gosub(sub-perform-recording,s,1)**
same => n,Gosub(sub-parking-lots,s,1(${CALL_DESTINATION},parking-1,parking-1-parkedcalls))

**However this gets overwriten on a reload**, so I created a new parking lot NOT using the gui with the following 3 files. These will make a parking lot with the Pilot ext 70 and Parking spaces 71-79. I will list the files and the contents below each. Then do a reload and adjust your phones to use the 70 parking lot with 71-79. I was using Yealink phones and the blf buttons work just as the default parking lot once updated.

Does force the recording when on the park, though the cdr logs are weird to fully follow:

1 Like

Hi There,

A workaround would be editing the file “/etc/asterisk/vitalpbx/extensions__20-baseplan.conf”, and add the lines below in the context “sub-parking-lots”, just before the “ParkedCall” application.

same => n,GoSub(sub-setup-call-type,s,1(internal))
same => n,Gosub(sub-call-recording,s,1(${TENANT},${CALL_SOURCE},${PARKING_LOT}))

It must look like the picture below.
Parking Recording

After saving the file, do a reload of the dialplan.

asterisk -rx"dialplan reload"

The best part of this workaround is that it is permanent, and doesn’t get affected by the “Apply Changes” action.

Thank you @miguel just made the change for testing.

Thank you, @miguel!
This workaround is working. However, take a look at the CDR. (Maybe it was like that before this already)

I guess this will be added in the next release.

Thanks so much!

Thanks for this, In testing I found a few minor issues
For this to work the extension/s must be set to record INTERNAL calls
Also this creates a duplicate entry in the CDR table with a link to a duplicate recording after being retrieved from park. One record with the source being the extension that retrieved the call, and one record with the source being the outside TN of the caller. Doesn’t hurt anything just might be confusing to the user.
Thanks Danny

Obviously… Parking lots are considered internal extensions.


I mention because my previous solution did not require all Internal calls to be recorded at the extension level


Do you want all parking calls to be recorded, no matter what?

Yes, usually we are recording all external calls in and out and we would like all parked calls as well.

This is a tricky situation. Some large organizations use park for internal calls as well.

I propose, that there should be a new toggle under each parking lot which we can enable to record parked calls.

How do you guys deal with external calls that get transfered with attended transfer? Since those parts will then count as internal calls and might not be recorded anymore.

Yes that is a good point, if you are using attended transfers the internal record for the extensions needs to be enabled as well or it will not record after the call is transferred, according to my testing.

Should i open a new post regarding this?