Automated Call Recording On a Budget

Final and Working Automated Call Center Recording With Oreka / OrkAudio

So it’s finally finished and I know I usually avoid doing an instructables style thing, but I figure I might just outline how I managed it and overcame the whole issue with it only recording one side of the conversation or just the ring stream etc.

orkWeb

 

1.1                Hardware

 

  1. Dual Core CPU 2.2mhz or better.
  2. 2 x Gigabit NIC
  3. 1x Local hard drive 100Gbytes (this is to host the server and should be local to the phones being recorded due to bandwidth required)
  4. 1x Storage Drive (1Gigabyte per day if recording 20 Service Desk phones). This can be off site as the data is compressed before storing.

 

 

1.2                Software

 

OS/Platform: Windows or CentOS (We’re using windows for supportability)

Web Server: Tomcat Apache 7.0

SQL Server: MySQL Server 5.6 (best installed with Tomcat for compatibility)

Applications:

  • Oreka: Open Source Voice Recording System (http://oreka.sourceforge.net)
  • Java 7 update 5 minimum (usually installs with Tomcat)
  • Windows Media Player (required to play the audio)
  • Internet Explorer (required to use the page as it uses ActiveX)

 

1.3                Network

 

All phones need to be IP phones. You will also need to configure the VLAN those phones are connected to, so admin to the switch in question is required.

 

2            Configuration/Installation

 

2.1                Network Configuration

 

  1. Ensure all phones are IP Phones.
  2. Ensure all phones are on the same VLAN.
  3. Mirror the phone VLAN (AKA Spanning) to one of the NICs of the Oreka Server.

 

2.2                Server Configuration

 

  1. Ensure Windows (Windows 7 Enterprise for us is fine) is installed on the Oreka Server
  2. Ensure Tomcat 7.6 is installed on the Oreka Server (defaults are fine).
  3. Ensure Java 7 update 5 is installed on the Oreka Server.
  4. Ensure MySQL Server 5.6 is installed on the Oreka Server (defaults are fine).
  5. Run the Oreka Installer from the Oreka website and confirm succesful installation (no errors).
  6. Open the Website http://localhost:8080 to confirm the web service is up and the website is being served.
  7. Open Services.msc and stop the Apache Tomcat service so you can edit the config.
  8. Configure the second NIC to connect to the News network so you can remote to the server etc.

2.3                PABX Configuration

 

  1. Login to the PABX for the phones you are recording. There is only 1 setting you need to change for each phone. Basically ensure the station is set with the following:

Service Link Mode: Permanent

NOTE: This is the magic setting. If you don’t do this, you’ll frequently record only 1 side of the conversation.

 

2.4                Finalising Configuration

 

From here you can follow the config instructions from Oreka, but basically set the <Devices> tag in the config.xml.

 

For our config I’ve only turned on the bare minimum. This is the <Device> tag set to the NIC card the VLAN is being mirrored to, the <AvayaDetect> and <RTCPDetect> tags, and set the <TapeDurationMinimumSec> to 10 seconds to dodge a hiccup causing it to record ringtone streams.

 

Finally restart the Apache service and confirm recordings by receiving an incoming call from the VDN by making a call, logging into the Ork web page and confirming the call appears in the search.

 

If this doesn’t work, you’re going to need to bust out WireShark and sniff for packets to confirm streams are coming through.

 

NOTE: Don’t forget to use Internet Explorer to view the site or it won’t work (ActiveX).

9 comments on “Automated Call Recording On a BudgetAdd yours →

  1. I’m having the problem of one-side-only being recorded with orkaudio with freepbx, nothing is working to correct this. I went to my phone configs in freepbx and there is no setting called ‘Service Link Mode: Permanent’. Any ideas?

    1. Hmmm I’ve not used freepbx myself, so I can only explain that orecx has trouble working out which traffic is voice and which is signalling if the tunnels to create links between an endpoint (phone) and the internet keep going up and down. 1 way to get around this is to set your pabx up to only use certain port numbers for signalling and a different set of ports for voice, then set orecx up to only collect packets from the voice ports. This is obviously a big undertaking if you have a live or massive pabx to change, so the other option is to keep these voice tunnels up and ready all the time. Avaya systems can do it with the service link mode option. You just have to find a similar option in freepbx. A good place to start is here: http://wiki.freepbx.org/display/FPG/Configuring+your+PBX Basically look for anything that mentions call center agents as this is what the option in Avaya’s pabx was made for. They make/receive calls so often that the link shouldn’t go up an down all the time and can stay permanent.

      Do a quick test. Receive an incoming call and let it run for about 45 seconds or so, then hang up and immediately take another incoming call on that number. If you find that you always get both sides of the conversation after hanging up and taking another right away then you’re definitely needing to find that setting. Most PABX’s will keep the voice link/route up for about 10 seconds after a call is finished, so your first call might only record one side of the conversation but, when you take another call so fast after it, orecx is able to see these premanent voice streams and knows to record them.

      I wish I could help more but I don’t use that system myself and without installing and configuring one I couldn’t tell you what the option is. Basically you just have to work out how to keep that route or link for voice between your endpoint and pabx server up so that orecx can lock onto it properly.

    1. Hi there,

      Sorry for the late reply on this. I’ve not set the platform up on skinny before, but in passing I did notice that it has all the config and claims to support skinny. The situation is much the same as setting it up like my PABX. As long as you can get that traffic to your listening network device, it’s literally just tweaking the config xml file and uncommenting the skinny settings.

      Sorry I can’t be of more help than that at this point, but I don’t have a sandbox environment to test it all in.

  2. Can you please explain what service link mode does ? What changes will happen if it is set as “When needed” or when it is set as “Permanent” ?

    1. Well (and this is a very basic description) normally when you pick up the phone to dial out, the phones sends a signal to the PABX to say “Hey I wanna make a call, get me a line out please.” At that point the server creates a channel between the 2 that it will be actively listening to and sending on. Now each of these takes resources (basically like bandwidth) to maintain. So if you had too many of these permanently connected you could start experiencing poor quality calls or, at worst, be unable to make any calls at all.

      To avoid this, you can set the option there to “when needed”. In this mode, if there’s not traffic on that line for about 30 seconds or so, the PABX will assume you’re done and close that channel to free up resources. Unfortunately for some bizarre reason when a new channel is picked up at the next call, the call recording software has trouble working out which stream of data is voice and which is the signalling data. Possibly a latency issue. In any case, when it’s set to permanent, the channel stays open and the call recording software can get a bead on which streams are the voice streams to record.

      In most situations, you can leave it set to Permanent as it would be really hard to max out your resources on a well kept PABX. Hope that helps.

  3. Hi
    I seem to have everything working until i want to play the file back. The player just flashes and nothing plays. It looks a though it doesn’t know the path to get to the file. If i view source and copy the path in to the browser i get an error from 404 Apache saying it cant find the file. If i got directly to the file it plays fine. the play button just wont find the file.
    Any help would get greatly appreciated
    Thanks in advance

Leave a Reply

Your email address will not be published. Required fields are marked *