tags:

views:

221

answers:

3

I want to write a program that will be able to call into my company's bi-weekly conference calls, and record the call, so it can then be made into a podcast.

I am thinking of using Gizmo's SIP interface (and the fact that it allows you to make toll-free calls for free), but I am having trouble finding any example code (preferably in Java) that will be able to make an audio call, and get hold of the audio stream.

I have seen plenty of SIP programming tutorials that deal with establishing a session, and then they seem to just do some hand waving, and say "here is where you can establish the audio connection" without actually doing it.

I am experienced in Java, so I would prefer to use it, but other language suggestions are welcome as well.

I have never written a VOIP application, so I'm not really sure where to start. Can anyone suggest a good library or other resource that would help me get started?

Thanks!

A: 

https://voip.dev.java.net/

They have some sample code there.

tulskiy
+1  A: 

Look for a VOIP softphone writtin in Java, then modify it to save the final audio stream instead of sending it to be played.

Side note: In many states you would be violating the law unless you do one of several things, varying by state: Notify the participants they're being recorded, insert BEEPs every N seconds, both, etc. Probably you only have to comply with the laws of the state you're calling from. Even worse, you may need to allow the users to decline recording (requires you to be there before recording starts). If you control the conference server, you may be able to get it to play a canned announcement that the call is being recorded.

jesup
A: 

You could do this with Twilio with almost no programming whatsoever. It will cost you 3¢ per minute, so if your company's weekly call is 45 minutes long, you're looking at $1.35 per week, about as close to free as possible. Here are the steps:

  1. Sign up for Twilio and make note of your Account ID and token
  2. Create a publicly accessible file on your web server that does nothing but output the following XML (see the documentation for explanation of the record parameters):

    <Response> <Record timeout="30" finishOnKey="#" /> </ Response>

  3. When it's time to start the recording, perform a POST to this URL (documented here) with your browser or set up an automated process or script to do it for you:

    POST http://api.twilio.com/2008-08-01/Accounts/ACCOUNT SID HERE/Calls HTTP/1.1 Called=CONFERENCE NUMBER HERE &Url=WEB PAGE HERE &Method=GET &SendDigits=PIN CODE HERE

If you want to get really creative, you can actually write code to handle the result of the recording verb and email the link to the MP3 or WAV file that Twilio hosts for you. But, if this is a one off, you can skip it because you can access all your recordings in the control panel for your account anyway.

Barnabas Kendall