"always" call recording not recording "parked" calls


I have setup FREEPBX and want to record all calls - I have set my extensions to record in and out to “always” however I see that if a call is parked and then retrived the “parked” call is not recorded - Is this correct behavior ? Can I set FREEPBX to record “parked” calls - Any help would be appreciated

Brendan Redmond

I have some further information that may be of interest . The problem with retrived parked calls not being recorded is a ASTERISK issue , there is a problem in res_features.c ( parked calls handler) park_exec - ast_set_flag(&(config.features_callee), AST_FEATURE_REDIRECT); - This seems to not set the *1 feature code - I know a little “C” however not enought to solve the issue !

Also to get around this problem I wanted in FREEBPX to be able to take control of the process of picking up parked calls i.e when 701 is dialled I want to do some stuff ( like record the call!) so I added this to extensions_custom.conf

  • [from-internal-custom]

exten => _70Z,1,NOOP(HERE--------------------710-----------------------GOT-IT AND RECORD)
exten => _70Z,2,Macro(record-enable,${CALLERID(number)},OUT)
exten => _70Z,3,parkedCall(${EXTEN})

However this code is only executed if you dial say 701 and there is not call parked on 701 - If there is a call parked on 701 the FREEPBX take over and my custom code is not executed -

I then discoverd that this is because in extensions.conf ( from-internal-xfer)
the include “parkedcalls” is before the include “from-internal-custom” .

It you swap these around my custom code works ( eg. 701) get executed !)

; applications are now mostly all found in from-internal-additional in _custom.conf
include => parkedcalls
include => from-internal-custom

change to be
include => from-internal-custom
include => parkedcalls

I know you are not susposed to change extensions.conf - however it looks like this file does not change with a reload etc ?


extensions.conf will when you upgrade things.

Please post your notes about changing the order if the includes as a bug report so that it can be addressed by the development team otherwise it will get lost here.

Upgraded to FreePBX 2.10 and the parked call recording does not work when extensions are set to record always in and out for external and internal. Any suggestions?

It works for me and just tested that indepth. You would need to provide a call flow example of what you are doing and what is and is not being recorded.

Sorry for the delay.

All extensions are set for always record and reception ring group set to record always

Call flow as follows:

  1. DID routes to time condition (time condition = true)
  2. Call rings reception ring group
  3. Receptionist answers and caller asks for Mr. A
  4. Receptionist parks caller
  5. Receptionist pages for Mr. A to pickup parked call
  6. Mr. A picks up parked call and starts conversation, then hang up.

Step # 6 is not being recorded

Are you sure step 6 is not part of the initial call recording? I have not tried this with a ring group.

After 3 hours of looking under the hood of the “new and improved” FreePBX 2.10, I added the following code to the top of extensions_custom.conf:
(previous versions have different fixes/changes required)

include => parking-record

exten => _7Z,1,NOOP(${EXTEN} recording)
exten => _7Z,2,Gosub(sub-record-check,s,1(exten,${CALLERID(number)},))
exten => _7Z,3,parkedCall(${EXTEN})

NOTE: I use 70 as park, not 700. If you use 700, then change the “7Z” to “70Z” in all 3 lines above.

This will turn on recording after a call is “unparked”. It will follow the “Internal Inbound Call Recording” setting, as set per extension. The CDR will show a call from the pickup extension to your park number, not the caller ID of the original call. Since 2.11 will probably have all of this re-written, I didn’t take it any further at this time.

Happy recording!