VoIP Mailing List Archives
Mailing list archives for the VoIP community |
|
View previous topic :: View next topic |
Author |
Message |
dbackeberg at gmail.com Guest
|
Posted: Sat May 03, 2008 10:18 am Post subject: [asterisk-users] toggling recordings on / off using MeetMe() |
|
|
Hi there:
I'm using Asterisk to run a call center in a way that probably wasn't
intended. Due to restrictions imposed by our proprietary Intertel
phone system, our call center only runs partly on Asterisk. We have
agents sit in a MeetMe() conference room, as the only members,
listening to hold music. When an inbound customer call arrives, that
call gets patched over the Intertel, onto a Zaptel channel, and we
route them to an open conference room. Agent hears the chime noise
indicating a customer has arrived, hold music stops, and then we want
recording to begin.
This worked great in Asterisk 1.2 using MixMonitor(). We would do the
typical record each side of the call, and when customer hangs up,
soxmix the sides into a single sound file. We're migrating to Asterisk
1.4.19.1. I first tried using our same dialplan and scripts, but we
get nasty echo in the conference rooms if we're recording using
MixMonitor(). Comment out the MixMonitor(), and call sounds great,
with no echo. Weird. I don't know whether this is a known bug with
MixMonitor() or some quirk of the way we're using it.
What I do know is that if I record using MeetMe(), the recording
starts and records just fine, with no echo problems. The problem then
comes with the way we're using MeetMe(), in a way that probably wasn't
ever intended.
You can invoke MeetMe() without the 'r' argument, to not start
recordings, while the agent sits on hold awaiting the first customer.
Then, on your extension.conf pertaining to the customer side of the
conference, you can add the 'r' flag to begin recording when the
customer joins the conference. When the customer hangs up, there's no
built-in flag to MeetMe() or MeetMeAdmin() to toggle-off the
recording. In our usage, the recording happily continues, recording
silence, and will resume recording the next conversation, etc into one
giant file. Not at all what we're looking for.
So then I reviewed app_meetme.c, looking at the best way to add a flag
I could invoke, perhaps from MeetMeAdmin() that would toggle off the
recording. I saw there's already a flag called
MEETME_RECORD_TERMINATE, which when set, will be processed by
recordthread(), and will stop the recording. I could add a flag, like
'Q' to admin_exec() which could call a small function that would set
the MEETME_RECORD_TERMINATE flag and clear the recording file and
format variables.
It doesn't look difficult to modify app_meetme.c to meet the usage I
was hoping for, but I thought I'd do a brain dump to the list, and let
people who know the code better tell me how boneheaded, innovative,
misinformed, or creative this approach would be. Should I instead
pursue a fix for whatever is creating echo when using MixMonitor(), is
there a better way to do recording considering my particular usage?
Should I try old versions of 1.4, and see if the echo is some recent
regression in the MixMonitor() code?
Thanks for any suggestions, (and of course thanks for an incredible
open-source product)
David Backeberg |
|
Back to top |
|
|
dbackeberg at gmail.com Guest
|
Posted: Mon May 05, 2008 3:27 pm Post subject: [asterisk-users] toggling recordings on / off using MeetMe() |
|
|
I went through with modifying app_meetme.c to allow toggle on / toggle
off of recordings
This patch is against app/app_meetme.c, from asterisk-1.4.19.1
If it would be more helpful to provide a patch against a different
version, please let me know. Find patch attached.
These are changes to
admin_exec()
which handles instructions to the MeetMeAdmin() command
and descrip3
which is the actual text block dumped when you query the MeetMeAdmin() command
This is my first patch against Asterisk, and I hope it will be useful
to others. I sure would have used it if somebody had already built
this into MeetMe().
Is there a different mailing list where patches against Asterisk are
more commonly disseminated?
Theory is that Agents stay on for hours, listening to hold music
in-between customers. Customers come and go, toggling on recording
while they're present, and toggling it off when they hangup. There's
logic in my real dialplans to do complicated stuff with agi-bin to
give descriptive names to the recordings, update a database backend,
etc.
Here's an example of how to use it...
extensions.conf:
[Agent_extensions]
exten => s,1,Answer
exten => s,2,Wait(1)
exten => s,3,MeetMe(1234|Mp1)
exten => s,4,HangUp
exten => h,1,MeetMeAdmin(1234|K) ; destroy room if Agent hangs up,
even if customer on line
exten => h,2,HangUp
[Customer_extensions]
exten => s,1,Answer
exten => s,2,Wait(1)
exten => s,3,set_variable(${MEETME_RECORDINGFILE},foobar)
exten => s,4,set_variable(${MEETME_RECORDINGFORMAT},wav)
exten => s,5,MeetMe(1234|Mp1r) ; notice the argument 'r', meaning
start recording
exten => s,6,HangUp
exten => h,1,MeetMeAdmin(1234|Q) ; notice the argument 'Q', which
stops recordings if you apply my patch
exten => h,2,HangUp
Happy Asterisking!
David Backeberg
-------------- next part --------------
A non-text attachment was scrubbed...
Name: toggle_off_recordings.patch
Type: application/octet-stream
Size: 1742 bytes
Desc: not available
Url : http://lists.digium.com/pipermail/asterisk-users/attachments/20080505/0411a4c6/attachment.obj |
|
Back to top |
|
|
jsmith at digium.com Guest
|
Posted: Mon May 05, 2008 3:50 pm Post subject: [asterisk-users] toggling recordings on / off using MeetMe() |
|
|
On Mon, 2008-05-05 at 16:27 -0400, David Backeberg wrote:
Quote: | I went through with modifying app_meetme.c to allow toggle on / toggle
off of recordings
This patch is against app/app_meetme.c, from asterisk-1.4.19.1
If it would be more helpful to provide a patch against a different
version, please let me know. Find patch attached.
|
Please don't attach patches to the mailing list... if you interested in
having them added to Asterisk, post them to the bug tracker instead.
Also please read the "Adding new features to Asterisk" section of
http://www.asterisk.org/developers/bug-guidelines
--
Jared Smith
Training Manager
Digium, Inc. |
|
Back to top |
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|