FireBrick Call Recording: Difference between revisions
Appearance
Content deleted Content added
No edit summary |
|||
| (15 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
=Overview= |
|||
The FireBrick supports call recording by teeing off the two way audio from a call leg and sending to a SIP endpoint. The SIP endpoint will then record the call and handle it in any way you wish. |
The FireBrick supports call recording by teeing off the two way audio from a call leg and sending to a SIP endpoint. The SIP endpoint will then record the call and handle it in any way you wish. |
||
| Line 32: | Line 30: | ||
* a C application, ''voip-answer'', which acts as a SIP endpoint and handles the call recording; and |
* a C application, ''voip-answer'', which acts as a SIP endpoint and handles the call recording; and |
||
* a python script |
* a python script |
||
from: https://github.com/revk/voip-answer |
|||
==Setting up ''voip-answer''== |
==Setting up ''voip-answer''== |
||
| Line 46: | Line 46: | ||
b.) make sure that you have siptools.c in dep/ |
b.) make sure that you have siptools.c in dep/ |
||
2.) set the email address parameter (i.e. the ''from'' address). Change line 803 from: |
2.) depending on your version of voip-answer.c, you may need to set the email address parameter (i.e. the ''from'' address). Change line 803 from: |
||
sprintf (temp, "sip:%c@voiceless.aa.net.uk", done); |
sprintf (temp, "sip:%c@voiceless.aa.net.uk", done); |
||
to whatever email address you want to the recordings to be sent from. (%c is the unique ID of the call recording) |
to whatever email address you want to the recordings to be sent from. (%c is the unique ID of the call recording) |
||
(As of 9 August 2018, this has been replaced in voip-answer.c with "sip:%s%.*s", so no modification is necessary.) |
|||
3.) By default, the (temporary) path for the recordings is /tmp/. If you want to change this, amend line 62: |
3.) By default, the (temporary) path for the recordings is /tmp/. If you want to change this, amend line 62: |
||
| Line 58: | Line 60: | ||
Once you have configured the script to your preferences, install it by running ''make''. |
Once you have configured the script to your preferences, install it by running ''make''. |
||
(If you do not have it installed already, you might need to install libpopt-dev.) |
|||
| Line 78: | Line 82: | ||
So, for example, if you wanted to run ''voip-answer'' with a call recording script at ''/voipuser/voip-answer/python/voip-rec-email/voip_rec_email.py'', serving wav files for announcements from ''/voipuser/voip-answer/sounds/'', you would run it with: |
So, for example, if you wanted to run ''voip-answer'' with a call recording script at ''/voipuser/voip-answer/python/voip-rec-email/voip_rec_email.py'', serving wav files for announcements from ''/voipuser/voip-answer/sounds/'', you would run it with: |
||
./voip-answer -r / |
./voip-answer -r /voipuser/voip-answer/python/voip-rec-email/voip_rec_email.py -d /voipuser/voip-answer/sounds/ |
||
If you want to run it as a background process (which you probably do...), append an ampersand: |
|||
./voip-answer -r /voipuser/voip-answer/python/voip-rec-email/voip_rec_email.py -d /voipuser/voip-answer/sounds/ & |
|||
=Using the A&A / FireBrick call recording software for announcements (e.g. out of hours announcement)= |
=Using the A&A / FireBrick call recording software for announcements (e.g. out of hours announcement)= |
||
| Line 89: | Line 97: | ||
* .wav |
* .wav |
||
* A-LAW |
* A-LAW |
||
* |
* 8000 Hz sample rate |
||
* mono only |
* mono only |
||
You can easily use Audacity to create suitable files; just remember to set the sample rate to |
You can easily use Audacity to create suitable files; just remember to set the sample rate to 8000 Hz, and to set the track to mono only, first. |
||
If, when you play the files back through ''voip-answer'', they sound distorted, chances are you have either got the sample rate wrong, or else accidentally recorded them in stereo. |
If, when you play the files back through ''voip-answer'', they sound distorted, chances are you have either got the sample rate wrong, or else accidentally recorded them in stereo. |
||
If you have a recording at a different sample rate, using Audacity, change the project's sample rate to 8000, then change the recording's sample rate to 8000, and then use the "Change Speed" effect on the recording — if the original rate was 44100 Hz, apply a speed multiple of 5.50. |
|||
== Hosting the announcement / playback files == |
== Hosting the announcement / playback files == |
||
| Line 114: | Line 124: | ||
! Add a SIT, may be repeated |
! Add a SIT, may be repeated |
||
N* The playback sequence is to be repeated N times |
N* The playback sequence is to be repeated N times |
||
You can download aai.wav and sit.wav [https://support.aa.net.uk/images/9/98/Firebrick_tones.zip here]. |
|||
=== Filenames === |
=== Filenames === |
||
| Line 127: | Line 139: | ||
# Refer to # |
# Refer to # |
||
So if you wanted two rings, followed by playback of a file called " |
So if you wanted two rings, followed by playback of a file called "onholiday.wav", you would specify the following SIP URI: |
||
| ⚫ | |||
=Pre-call announcements (e.g. "this call will be recorded")= |
|||
You can combine these features with the REFER function ("#"), to create an extension which will first play back an announcement (such as "This call will be recorded"), before referring the call to your chosen destination. |
|||
You do not need to do anything with the voip-answer.c script (other than make sure your chosen recordings are in the right place). |
|||
Configure your FireBrick: |
|||
# As at 10 August 2018, make sure you have alphas enabled, and have at least alpha V1.48.123 |
|||
# Create a new telephone extension (or amend an existing one) |
|||
# Give it the username "Voicemail" and do not give it a password |
|||
# Add the URI: <your-pre-call-sound-file>#<extension you want to refer to>@hostname/address |
|||
So if you wanted to first play an announcement of called "callsarerecorded.wav", followed by a refer to your extension or hunt group number 500, you would use: |
|||
callsarerecorded#500@hostname/address |
|||
| ⚫ | |||