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.
[ext-parking]
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:
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}))
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
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.