Call Recordings - Feedback Wanted, please!

I’ve spent this week (what was meant to be a couple of hours!) almost completely gutting and re-writing call recordings.

It was, previously, a mish-mash of various cobbled together hacks to support asterisk 1.2 (no, really!) and things that only worked because of bugs in OTHER things.

The important idea was to consolidate everything into one, sensible, place, document everything so this should never have to happen again, and then actually make it work.

This is what I’ve done. HOWEVER, there have been some changes - a lot of them, with one-touch-recording, which wasn’t really part of call recording at all.

What I’d like to do is get everyone’s feedback on what recordings SHOULD do.

That’s how it’s working now (in my ‘fixed’ branch)…

I’m also going through and digging up all the call recordings tickets from … well, the oldest I’ve found is 2006, and making sure all of them are fixed too, if possible.

What I want to know is - Is this how you would expect recordings to work? If not, what assumptions did I make incorrectly?

I like everything I read in the wiki, but perhaps a bit of discussion around this part:

The queue is answered by an operator who has their ‘Inbound External Calls’ set to 'No’
Call recording is not paused. No and Yes are of equal priority, and we were already told to record the call via the Inbound Route.

I appreciate that yes and no have equal priority in your proposed scheme, but I consider the quoted part to be counter intuitive. When evaluating between recording options of equal priority, is it not more intuitive to use the most recent option than the first option? I ask not so much as a criticism of your proposal, but more in the sense that I would like to be convinced of your logic.

When things are finalized I would love to see a nice summary in the wiki on how to actually use the recording system when writing custom dialplan. I had a heck of a time unraveling that in the past.

If things are of equal priority, don’t change.

This is more of a design limitation with Asterisk, which is why I had to introduce ‘force’ and ‘never’ which will always change the status.