* separating status and hangup permissions
Creating a status permission so status can be displayed independently from hangup cause. The combination of status within the hangup permissions has confused some conversations with admins and superadmins.
* separating status and hangup permissions
Creating a status permission so status can be displayed independently from hangup cause. The combination of status within the hangup permissions has confused some conversations with admins and superadmins.
So I discovered 2 things,
1. If a user adds the default config cdr-field-array with the content of a database field Let's pretend they want to show the xml_cdr_uuid column (for support purposes) - it could be any column, the SQL construction will fail as not Postgresql, Not MariaDB/MySQL allow having a column repeated twice. Adding array_unique() fixes this issue.
2. This one is for developers: If a developer wants to create more columns in the v_xml_cdr table and make them visible in the CDR app, common sense tells to add the default setting cdr-field-array to show it. As the code is now, this will look into the freeswitch variables and overwrite it with NULL. I am adding a condition that verifies if the value has been already assigned, if it is, it won't overwrite it. This allows any developer who may be interested in extending the CDR to simply extend the class without touching it; very handy to keep the original code untouched.
This dialplan is meant to not record any calls any feature code calls. This means all calls starting with a * prefix. However if you set the call to record all on the extension wouldn't you expect it to record all calls? Including when picking up a call. Or when intercepting call? or when un-parking a call. Had a someone call that had used a * prefix on an outbound route because they did that this condition prevented the call from being recorded which they didn't expect when the extension was set to record all calls. Tempted to remove it entirely but have instead disabled it by default for now.