FOP2 Recording Issues in Elastix 2.2

Hi,

We have an Elastix 2.2 installation and have downloaded and installed the basic licensed version of fop2. Everything is working fine but facing some issues with the recording feature.

I cannot find the "FOP2 Recording Tab". How do I enable this?

Also FOP2 recorded calls do not show up in the "Monitoring" tab of Elastix 2.2.

Thus my query is How can I get FOP2 recorded calls to show up in the monitoring tab of elastix 2.2 or How do I get the FOP2 recording tab to show up??

I can see the recorded calls in /spool/asterisk/monitor via scp but I need to give web access to the staff / supervisor to listen to the calls they have recorded via fop2.

Appreciate your help.

Thanks,
Dan

Comments

  • Hi Dan,

    Your requests are kind of mutually exclusive, having fop2 recordings tab interface or having fop2 recordings appear on the recordings tab in Elastix.

    If you installed fop2 from the Elastix RPM, the native fop2 recording interface is disabled, as Elastix requested to not duplicate resources. Both the fop2 phonebook and fop2 recording interface are not available in the Elastix RPM.

    So, we are left with the option of making fop2 recordings appear in the Elastix recoridngs interface, unfortunately I am not an Elastix expert, I am not sure what are the requirements in the elastix recording interface so it is shown. In fop2 you can change the recording file name, and you can execute post recording scripts. Perhaps you can choose a recording filename wisely so it appears on the Elastix monitoring tab, or perhaps you not only need to change the name but also run some post recording script to update a database entry.

    I will have to talk to Elastix guys to try to make it work.
  • Hi,

    I am facing this problem as well. Any news/update regarding this problem yet?

    Michael
  • I will add a script to update the cdr with the audio file link (required by the elastix monitoring tab), in the next elastix rpm update. It is not that hard to write the script, but requires some knowledge and coding experience.

    Best regards,
  • Is there anyway I can do the changes first before waiting for the next RPM?
  • The fop2 version 2.25 tarball includes a script recordings_elastix.pl that you can use as the monitor_exec setting in fop2.cfg
  • Thank you!!!! I have successfully done it!
  • I am trying to send the FOP2 Recording to the Monitoring Tab of Elastix, and having a bit of troubled.

    I have reviewed the code, and believe I have everything done correctly, but it still doesn't show up. Recordings are being saved locally.

    Here is what I have edited:

    Fop2.CFG

    monitor_filename=/var/spool/asterisk/monitor/${ORIG_EXTENSION}_${DEST_EXTENSION}_%h%i%s_${UNIQUEID}
    monitor_format=wav
    monitor_mix=true
    monitor_exec=/usr/local/fop2/recording_elastix.pl

    recording_elastix.pl
    # configurable variables
    my $DESTFOLDER = "/var/spool/asterisk/monitor/";
    my $SOX = "/usr/bin/sox";
    my $SOXMIX = "/usr/bin/soxmix";

    When I record a call from FOP2, the file is created on the server, but does not show up in the monitor tab. Did I missing something? I have verified that sox and soxmix are there.

    Any advice would be great.

    -Ton
  • you have to check the cdr table and see if the userfield is being updated with audio:filename-of-recording , that is the important part to make them appear on the monitoring tab.

    The only way to truly troubleshot is to run the script as asterisk with the same parameters, you can see that system call on the asterisk full log when you enable debug. The problem is that the script mixes the two legs and remove the original wavs to leave the mixed one, if that part works, you cannot rerun the script as it will not find the original audio files. So you will have to edit the script, comment the lines that remove leg A and B so the files remain when you try to run them by hand.
  • I have the same issue. When I click on the Voicemail tab none of the recordings show up, however I do see the recordings in the /var/spool/asterisk/monitor folder with the correct extension prefix.

    How can we fix this? Thanks

    Bill
  • I have the same issue. When I click on the Voicemail tab none of the recordings show up, however I do see the recordings in the /var/spool/asterisk/monitor folder with the correct extension prefix.

    How can we fix this? Thanks

    Bill

    Hi, not sure what "same issue" are you referring, this post talks about recordings, not voicemail tab. What tab are you referring too? From fop2 or from Elastix, or freepbx? Are you talking about ARI ?
  • I am having the same problem. I used the recording_elastix.pl script but it still did not appear, so i decided to debug some more. This is what i have come across with. I'm not expert, but i have tried to put a logical mind in trying to get at the bottom of the problem.

    a.) the recording_elastix.pl script requires in and out files and the final output file .wav ( which i had done in the fop2.cfg )
    b.) the monitor_mix = true ( prevents the recording_elastix from running because it can no longer locate the 'in' and 'out' files ( so i set this to false ). This after looking at the recording_elastix.pl script that it mixes it too.
    c.) I noticed that the uniqueID in the CDR table for that specific call is NOT Equal to the uniqueID of that of the generated wav file after the recording by FOP2. It is incremented by "1" .. example 1338135904.7.wav whereas the cdr shows 1338135904.6 <--- notice the 6 and 7 . So this alone is not equal that is why the update script for mysql will never write the "audio:fnm" correctly.


    Now my setup is run on elastix and the fop2 version is the one provided by them 2.25. I only installed the license. I tried racking my brain looking at the forums and found this thread which i hope anybody out there from FOP2 can shed light on.

    I can fix this problem by editing the update portion of the script to the mysql table but my question in the first place would be, why the Increment in the UniqueID?

    Any help would be greatly appreciated. Thanks
  • Your problem is most probably the use/abuse of Local channels, where the call initially has a uniqueid but it changes to a different one do to a channel masquerading or similar.

    It is not something that can be easily fixed, as the manager monitor application uses the monitor app (instead of mixmonitor), and I am not sure if we can pass arguments to be expanded when the call ends (and not when the recording starts/middle of call).

    Mixmonitor has the option, but not sure if Monitor does. So, the script is ok, but the uniqueid does not match the cdr uniqueid and that is why the field is not populated. You could modify the script to do a fuzzy search of sorts, using src, dst, and aproximate uniqueid and timestamps, but it won't be too nice imho.
  • I am reviewing events and code, and I think the problem might be the channel you are monitoring. If you start recording on the channel that receives the call (leg B), the filename will have the uniqueid of that channel, but the cdr is saved with the uniqueid of the originating channel (leg A).

    Try starting a recording for an extension that is doing an outgoind call and check uniqueids, then do it when you receive a call. Do you see the difference in the later case?
  • You are right. The recording leg is what is causing the uniqueid to be different. The destination is clicked and recorded it no longer matches the one on cdr because what is recorded is the source uniqueid. Is there any work around on this because when you use fop2 for recording the calls, there are cases wherein you don't know who originated the call. So i might be clicking on the destination and when i click on record, it will not process the recording.

    Also, is that right about what i commented that the monitor_mix should be set to false for this script to run successfully?
  • I am working on a fix, so fop2 sends the other leg uniqueid as a parameter to the post recording script. On my initial tests it seems to work, you should see it working on the next release. If you want to test it before release, catch me on the live help and I will provide a link to download a test version.

    Regarding monitor_mix, it does not affect the script. If you set monitor_exec asterisk IGNORES the mix option, and records unmixed and passes 3 parameters to the script.

    Best regards,
  • Hi,

    I am also experiencing this issue, where the calls are being recorded and mixed together then not appearing in the Monitoring tab.

    -rw-r--r-- 1 asterisk asterisk 289964 Oct 9 13:47 7026_7030_134235_1349786396.140275.wav

    Im using Elastix 2.3.0 Revision 8 (according to the web interface).

    Nicholas - Did you resolve the issue you were looking into ?
  • Yes, the issue is fixed on what it would be the next release. Just to be sure we are talking about this, I will describe the issue : using elastix and the update script provided for monitor_exec is that the recording appears depending on the call leg you start the recording in fop2. Suppose you have extension 100 talking to extension 200, and you start recording , it works when you record 100, but it does not work when you record 200. (actually , the recordings *are* made, but the uniqueid of the call does not match the cdr entry, and so the link is lost)
  • Hi Nicholas,

    Yes this is correct, the issue I am experiencing.

    Am I able to obtain a copy of the next release for testing as this feature is mostly being requested in house?

    Many Thanks,

    Gavin
  • wait. wait. I smell a "I too have this problem" when you are actually not having the same problem.

    One thing is not having the recordings populated in the recordings interface because you did not configure them, and a totally different thing is that you have SOME recordings on the *Elastix* recording interface (not fop2 interface) showing up when using the special purpose recordings_elastix.pl script supplied with the latest fop2 version.

    If you do not see *anything* in the fop2 recordings interfaces then it is not the same problem, the most probable cause is what I said above, you did not configure the monitor_exec option in fop2.cfg.

    Recordings, by default, are *not* enabled because they will most probably require some intervention from your part.

    Look for this line in fop2.cfg,
    ; monitor_exec=/usr/local/fop2/recording_fop2.pl
    

    remove the semicolon so it becomes active:
    monitor_exec=/usr/local/fop2/recording_fop2.pl
    

    Then restart fop2:
    service fop2 restart
    

    After that, you *might* start seeing recordings that you initiate via fop2 in the recordings tab. If you have "all" permissions you will see all recordings, if not you will see only your own.

    Best regards,
  • Hi Nicolas,

    Thank you very much for your reply.

    To confirm.

    I am extension 7026 , my colleague is extension 7027

    If I make a call from 7026 and record it - this call is shown in the Monitoring tab in Elastix.

    If my colleague makes a call (7027) and I record it with my user 7026 (I have all permissions), then the recording is visible on the disc and the channels gets mixed together but is NOT visible under the Monitoring tab when i log in as user 7026.

    So I believe the monitor_exec scripts are being called correctly. I am calling ;

    monitor_exec=/usr/local/fop2/recording_elastix.pl

    Here is my call recorded as user 7026 for user 7027 ;

    /var/spool/asterisk/monitor
    -rw-r--r-- 1 asterisk asterisk 844204 Oct 9 14:19 7026_7027_140622_1349787888.140752.wav

    This call isnt displayed under the Monitoring tab.

    --
    Gavin
  • Hi Gavin,

    This issue is the one fixed on what will be the next release. Contact me in the live help tomorrow if you want to try out the patched version, as there is no official update yet.
  • Hi Nicolas,

    That would be great if I could try the patched copy out - I also have you on googletalk as well , what time is good for you (I am in the UK).

    Gavin
  • Similar issue here (with Elastix 2.3). I can grab incoming and outgoing calls permanently within the extension -> shows up in [ Monitoring ]
    I can grab calls within FOP2 -> doesn’t show up in [ Monitoring ]
    In both cases the *.wav files are in /var/spool/asterisk/monitor/
    I tried with the rpm within Elastix and the manual installed version 2.26.
    I tried all the hints here but no success.
    Any advice?

    Thanks
  • I can grab calls within FOP2

    I am on Elastix 2.3 also and cannot see how to pickup the recorded calls from within FOP2 , where is this option?

    also I have this same problem with FOP2 and no calls showing up in Monitoring on Elastix despite changing settings, I just found this post but posted a similar request yesterday to this site.
  • http://download.fop2.com/recordings_elastix.pl.txt

    That is the last incarnation of the monitor_exec script to use for elastix. Elastix rpm will use just a named file the way old ARI used (with file inspection on the hard disk). Elastix 2.3 uses now a field on the cdr table to link recordings (much more proper), so you need to use this script to set the field when the recording is done.

    However, it works depending on the call leg you start the recording, not sure what direction, because the uniqueid stored on the cdr does not match the uniqueid of that leg. FOP 2.27 fixes that problem, but it is still in beta.

    Best regards,
  • Hi Nicolas,

    Do you advise using this version? I get a 404 error if I try to download it.

    Gavin
  • Hi Nicolas,

    I have updated my server to this new version, and renewed my license :-)

    However, the fop2 service starts but the client is unable to connect, Connecting to server, attempt .... upto 10 then errors.

    # ./fop2_server --test
    Flash Operator Panel 2 - Valid License (1)

    Connection to manager OK!

    # netstat -lnp | grep 4445
    tcp 0 0 0.0.0.0:4445 0.0.0.0:* LISTEN 7030/fop2_server

    From the outside world telnet connections are possible to port 4445 on the server IP.

    Any ideas?

    Gavin
  • Do you use http or https? What browser?

    One important change that might be an issue is that the new fop2 version will use secure web sockets instead of standard web sockets when you access it via https. You have to set the ssl certificate files in fop2.cfg, uncomment and set the appropiate certs, the same ones you use for your https web server:
    ; If you access fop2 via https, browsers will try to use wss (Secure 
    ; web sockets) and for that it requires a certificate file and key file,
    ; the same ones you have in your web server configuration:
    ;
    ;ssl_certificate_file=/etc/pki/tls/certs/localhost.crt
    ;ssl_certificate_key_file=/etc/pki/tls/private/localhost.key
    

    Now, the problem lies in that some browsers require you to accept the certificate as you have to do when you browse an https site with self signed certificates, but the wss connection does not ask for it. I think firefox needs to be pointed to https://your.server:4445 or perhaps [url=wss://your.server:4445]wss://your.server:4445[/url] in the address bar so it ask for confirmation on the certificate. I did not have to do it with chrome. Another option if this is the case is to disable websockets in /var/www/html/fop2/js/presence.js
  • Hi Nicolas,

    Many thanks for the quick reply - I have disabled websockets in presence.js and FOP2 is working correctly again.

    Gavin
Sign In or Register to comment.