I’ve recently installed FreePBX 2.3.1.3 with Asterisk 1.4.16 following the Asterisk & FreePBX plain vanilla install instructions. I now have a model small business system up and running with a provider SIP trunk (mynetFone), an ISDN basic rate trunk using an AVM Fritz card and channel mISDN along with a POTS/PSTN trunk using a Sipura 3102.
I’d like to be able to record incoming customer enquiries and outgoing customer contacts. I have configured the agent extensions to do so via record incoming & outgoing always setting in extensions.
When I try to play the recorded calls via (ARI) FreePBX Recordings tab (Recordings/Call Monitor) I don’t see any links in the call monior column. I do however see all of the call details extracted from MySQL CDR but no links to the .wav files. The .wav files are present in /var/spool/asterisk/monitor and I can listen to them by opening them directly with a media player.
Voicemail is working fine via ARI and I can listen to messages via the ARI web interface, It’s just that I don’t get any .wav files/links appearing in the ARI call monitor column.
I’ve tried the version of ARI that was installed/bundled with FreePBX 2.3.1.3 as well as the latest ari_00.11.11.tar.tar with no success
It may be the same issue I’m having with voicemail files showing in ARI. WHat are the user, group, and permissions settings on the files? Should be asterisk.asterisk and rw-r–r--.
I just tried CRI version 1.06 as well with the same result. In both cases (v1.06 & v1.07) I get the following pair of error messages in my httpd error_log
[Wed Apr 23 22:34:45 2008] [error] [client 10.1.1.100] PHP Notice: Undefined variable: Sql_DbName in /var/www/html/cri/classes/class.sql_cls.
php on line 37
[Wed Apr 23 22:34:45 2008] [error] [client 10.1.1.100] PHP Fatal error: Cannot access empty property in /var/www/html/cri/classes/class.sql_c
ls.php on line 37
I have defined the DB username & password in part.php as follows:
$servername=“localhost”;
$databaseusername=“asteriskuser”; # db username
$databasepwd=“blahblah”; # db password
$databasename=“asteriskcdrdb”;
I can now run the CRI v1.08 application successfully but I do not see any “Play Call” headphone icons appearing in the last column of any monitored calls. The corresponding .wav files are present in /var/spool/asterisk/monitor and I can listen to them by opening them directly with a media player. The directory config in vars.php is set correctly as $playfilelocation="/var/spool/asterisk/monitor".
This seems to be the exact same problem I was having in my original post with the ARI application. For some reason ARI & CRI are not recognising the .wav files. The permissions seem to be fine so it’s a mystery to me
I followed your suggestion re uniqueid above and having recompiled asterisk add-ons to record unique id it is working fine with both ARI & CRI
It seems that the unique id field is required in the asteriskcdrdb to be written by asterisk for call monitor to work. This is not the case by default.
I know this is an old thread, but for google’s sake, Ill comment anyway:
Helping the community includes RETURNING YOUR CUSTOM DEVELOPMENTS to the official development and distribution channels. Your business has enjoyed FreePBX since int founding, and I’m sure you’ve had some improvements/additions of your own, in addition to the custom interfaces you’ve developed. It would be nice to see these added to the project, and not scattered around the web - serving primarily as a masked form of marketing.
I fought this problem for several months on two different machines (including ditching AsteriskNow and moving to Elastix on one of the machines).
The problem: by default the asterisk-addons-mysql (which speeds up getting CDRs into MySQL in the first place) is not configured (at least as of 1.4.10) to add the uniqueid column, which is what ARI uses to match the file.
Here is what I did to resolve it:
“yum install asterisk-devel” (this also upgraded Asterisk 1.4.24 to 1.4.29- which seemed to work fine with FreePBX- I had also in the process upgraded from FreePBX 2.5 to 2.6)
Downloaded the patched asterisk-addons-1.4.10 from this site: http://www.unixlads.com/?p=147&cpage=1#comment-5 (site also has instructions on how to build it). You could also patch the file yourself with the directions from: http://www.voip-info.org/wiki/view/Asterisk+cdr+mysql. (NOTE: In both cases I kept getting errors stating that it could not find asterisk.h and numerous other issues when I first tried to compile it. The key was getting that asterisk-devel package (or possibly upgrading to 1.4.29, but I am pretty sure it was the asterisk-devel package as it was missing the entire /usr/includes/asterisk directory before which kept crashing “make”).
“amportal chown”
“amportal restart”
The asteriskcdrdb.cdr table then had entries for uniqueid (in turn showing the option to play the file from within ARI).
The main challenge in this problem is the callmonitor isn’t finding the records. The easiest way is for it to use uniqueids but if not then it tries to match on dates converted to unix timestamps. The challenge is allowing to accept records that are plus or minus a few seconds in detail.
I struggled with this when the system got out of whack with NZ’s daylight saving time, the php conversion was an hour out.
In the modules/callmonitor.module I added this change about line 535 which found a lot more calls than before
$st4 = $st - 3600;
$et4 = $et - 3600;
if ((strlen($st)>1 && strpos($path,$st)!==FALSE && strlen($uniqueid)<=1) ||
(strlen($st)>1 && strpos($path,substr($st,0,-1))!==FALSE && strlen($uniqueid)<=1) ||
(strpos($path,“auto”)!==FALSE && $parts[1] >= $st && $parts[1] <= $et && $parts[2] == $src && $parts[3] == $dst) ||
It may mess up when there are calls that are very similar and very close together but that happens rarely for us.
But getting uniqueid going is probably the best bet and much faster.