After upgrading FusionPBX (5.0.6) recording are not showing on CDR

Status
Not open for further replies.

JigarPatelACG

New Member
Jul 28, 2022
15
0
1
30
Hi Team,

After upgrading FusionPBX to 5.0.6, recorded calls are not showing on CDR.
Record_path & Record_Name are set on CDR's, I can see on logs as well on CDR details.
Anyone can help on this.
 

whut

Member
Dec 23, 2022
174
15
18
I would run ALL updates again. Do not skip any of the update options and then look again. I would also check Applications -> Call Recordings to see that the recordings display there. Make sure the xml recording permissions are enabled for your group
1686784209344.png
 

whut

Member
Dec 23, 2022
174
15
18
After making any changes to superadmin permissions (or any group's permissions), either click the Reload button at the top of the permissions page or log out and log back in.

Did you run all six update/upgrade options one at a time in order? One, two, two with two b, etc. Most people overlook running every update option even though it has been explicitly emphasized.
 

whut

Member
Dec 23, 2022
174
15
18
How do you know it is recording calls? Set an extension to record all, make some test calls, watch the active calls page looking for information about call recording, and once the call is over go look for the call recording through the command line.

You can find the recording location in default settings. Make sure the default settings location is enabled = true
 

JigarPatelACG

New Member
Jul 28, 2022
15
0
1
30
Hi @whut
For recording calls, I've enabled on extensions and make some test calls and calls are recored files are saved on location as well and I can see in freeswitch logs.
On default settings, I've attached snapshot please check if anything else required.
1686842746526.png
 

hfoster

Active Member
Jan 28, 2019
677
80
28
34
Does the database show the correct paths for the relevant UUID of a record?

root@pbx:~# su postgres
postgres@pbx:/root$ psql
postgres=# \c fusionpbx
fusionpbx=# select xml_cdr_uuid,record_path from v_xml_cdr;
 

JigarPatelACG

New Member
Jul 28, 2022
15
0
1
30
Hi @hfoster

Record_path is blank on this query,
So can you suggest me how can I set.
On CDR, I can see both record_name & path are set but on v_xml_cdr it's blank.
So please suggest me how can I set on v_xml_cdr.

1686924114117.png

1686924095581.png
 

JigarPatelACG

New Member
Jul 28, 2022
15
0
1
30
I've added default user_record dialplan also, please suggest me, how can I set record_path and record_name in v_xml_cdr @hfoster @whut
@Adrian Fretwell

<extension name="user_record" continue="true" uuid="4c48548e-59ef-470c-8b12-d77f19ac10e0">
<condition field="${user_exists}" expression="^true$" break="never"/>
<condition field="${user_record}" expression="^all$" break="never">
<action application="set" data="record_session=true" inline="true"/>
</condition>
<condition field="${user_exists}" expression="^true$" break="never"/>
<condition field="${call_direction}" expression="^inbound$" break="never"/>
<condition field="${user_record}" expression="^inbound$" break="never">
<action application="set" data="record_session=true" inline="true"/>
</condition>
<condition field="${user_exists}" expression="^true$" break="never"/>
<condition field="${call_direction}" expression="^outbound$" break="never"/>
<condition field="${user_record}" expression="^outbound$" break="never">
<action application="set" data="record_session=true" inline="true"/>
</condition>
<condition field="${user_exists}" expression="^true$" break="never"/>
<condition field="${call_direction}" expression="^local$" break="never"/>
<condition field="${user_record}" expression="^local$" break="never">
<action application="set" data="record_session=true" inline="true"/>
</condition>
<condition field="${from_user_exists}" expression="^true$" break="never">
<action application="set" data="from_user_record=${user_data ${sip_from_user}@${sip_from_host} var user_record}" inline="true"/>
</condition>
<condition field="${from_user_exists}" expression="^true$" break="never"/>
<condition field="${from_user_record}" expression="^all$" break="never">
<action application="set" data="record_session=true" inline="true"/>
</condition>
<condition field="${from_user_exists}" expression="^true$" break="never"/>
<condition field="${call_direction}" expression="^inbound$" break="never"/>
<condition field="${from_user_record}" expression="^inbound$" break="never">
<action application="set" data="record_session=true" inline="true"/>
</condition>
<condition field="${from_user_exists}" expression="^true$" break="never"/>
<condition field="${call_direction}" expression="^outbound$" break="never"/>
<condition field="${from_user_record}" expression="^outbound$" break="never">
<action application="set" data="record_session=true" inline="true"/>
</condition>
<condition field="${from_user_exists}" expression="^true$" break="never"/>
<condition field="${call_direction}" expression="^local$" break="never"/>
<condition field="${from_user_record}" expression="^local$" break="never">
<action application="set" data="record_session=true" inline="true"/>
</condition>
<condition field="${record_session}" expression="^true$"/>
<condition field="destination_number" expression="^(?:(?!\*).|\*59|\*\*|\*8|\*67|\*69)+$">
<action application="set" data="record_path=${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}" inline="true"/>
<action application="set" data="record_name=${uuid}.${record_ext}" inline="true"/>
<action application="mkdir" data="${record_path}"/>
<action application="set" data="recording_follow_transfer=true" inline="true"/>
<action application="bind_digit_action" data="local,*5,api:uuid_record,${uuid} mask ${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext},both,self"/>
<action application="bind_digit_action" data="local,*6,api:uuid_record,${uuid} unmask ${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext},both,self"/>
<action application="set" data="record_append=true" inline="true"/>
<action application="set" data="record_in_progress=true" inline="true"/>
<action application="set" data="api_on_answer=uuid_record ${uuid} start ${record_path}/${record_name}" inline="false"/>
</condition>
</extension>
 
Last edited:

whut

Member
Dec 23, 2022
174
15
18
@JigarPatelACG , you have some strange issues! I am thinking there may be a directory issue. Look at Default Settings -> Switch ->recordings variable. Is it set to `/usr/local/freeswitch/recordings` like in your cdr details screenshot, or is it set to /var/lib/freeswtich/recordings like in this screenshot?

1687028399392.png

I would set this to the directory in this screenshot, save, press reload on the top-right of default settings page.

Then I would check that this dir is set to user and group `www-data`.

Code:
ls -lh /var/lib/

1687028753611.png

If it is not www-data then change the ownership
Code:
chown -R www-data:www-data /var/lib/freeswitch


I would also chown fusion dir while you are at it
Code:
chown -R www-data:www-data /var/www/fusionpbx/


I believe I would also restart freeswitch
Code:
sudo systemctl restart freeswitch.service


I would check @hfoster 's sql query again but sort on newest to oldest
SQL:
select xml_cdr_uuid,record_path from v_xml_cdr order by start_stamp desc;


I would also check that the data type is set to text, which I expect it to be, but while we are digging for the problems I would check it.
SQL:
SELECT table_name, column_name, data_type FROM information_schema.columns WHERE table_name = 'v_xml_cdr' AND column_name = 'record_path';
 

whut

Member
Dec 23, 2022
174
15
18
I would also restart postgres
Code:
sudo systemctl restart postgresql
 
Status
Not open for further replies.