I know that exist solutions for this.. but i want to know how to develop a Call Recorder. I want to make the user just have to push one button..
Someone can give me any advise for that? .. I need to make a CTI app? how can i do that?..
Thanks in advance!
There are two ways to record voip calls. either sniff the RTP packets or use conferencing to conference in your recording application. Sounds like you want ad-hoc recording - that is, a user presses a button on the call they are currently on is recorded from that point until the call ends? if you use sniffing, you don't need CTI, but you'll need some time of LAN capture package - PCAP is very good. The you'll need to dynamically start a sniffing session, work out an appropriate capture filter, capture the packets and write them to a file. You'll also need to deal with duplicate packets (you'll get duplicates when sniffing, and a lot of them). Oh, and you'll need to mix the two streams (one going to the phone, the other coming from the phone) unless you want to record them to left and right audio channels. Mixing is a challenge - you'll need to work out the encoding (G.711, etc), convert from U-LAW to linear, then mathematically mix the samples before converting back to U-LAW for storage. And if you want to record G.729, you're going to need codec licenses ...
Conferencing is probably easier to code but you will need to use CTI, and not everyone likes the additional demand on network resources (bandwidth, conferencing facilities, etc).
Would love to hear how you get on ...
First, thanks for answer.
I think capturing packets is not a good solution, because i don?t need to "spy" the users..
But CTI isn't a problem to me. i read about "Live Record" capability of Cisco Unity.. i need something like that.. but i dont have Unity in my Lab.. so i need to do this with a server (I Think)..
Thanks again.. and, you can give me some tips to develop with conferece?
"But CTI isn't a problem to me"
I mean that is more practical... i think capturing RTP packets is not that easy..
So, "Live record" with Unity need to make a conference with Unity, record the conversation..and then.. Unity send the record to the user mail box.
I need to do something like that, but the record must be on a repository, and without the Unity intervention but a service can be "the listener" that record the conference.
Is something like that?
How can i make it?
Thanks in advence... and sorry for my emglish.. i speak spanish :P
For conference-based call recording, this is what I think you need to do (disclaimer: Haven't got around to doing this yet - it's on the things to do list)
1. You'll need an application that can perform media termination: Create a JTAPI provider that controls a CTI port, and register your application with it. when your CTI port becomes involved in a call, events will be delivered to your application via the observers you registered, at which point your application needs to set the RTP parameters to start receiving the stream. See:
2. You need another application that receives connection events for connections on interesting phones. When such an event is received the application conferences in the CTI port in 1). See http://www.cisco.com/en/US/products/sw/voicesw/ps556/products_programming_usage_guide_chapter09186a00804050e2.html#wp1016693
So when a call arrives on an interesting phone, application 2) automatically conferences in the CTI port. When this happens the CTI port alerts application 1), which starts receiving the stream, and then writes it to a file.
Issues with this approach are:
1. Most installations have a finite amount of conferencing resources, so call recording via conferencing is seldom suitable for a record-all solution, but should be fine for ad-hoc recording.
2. Your applications use CTI to control the interesting phones. This can conflict with other CTI applications that want to control the same phones. Multiple applications controlling the same phone is usually discouraged.
Another option ( Although it would be more than one button) would be to use the Live Record feature of Unity if you have it as well. You would establish a number for Live Record and then when you wanted to record the converstation, you would just conference in the live record number and when the call is completed it shows up in your email/voicemail.
Take a look at this...
But i'm looking for an application that work in the ip phone, pressing some button and recording the current call.
And i want to know how to develop this.
But thanks for reply!
Check out Oreka, it is an open source call recording system that does packet sniffing. It also captures all the call setup details (extension, direction of call, etc) and puts in MySQL. It even has a web interface.
I would guess you could develope an application side to have a 'Record' button to flag the call and copy it off. Not sure exactly how to do that, it something I am working on myself. With Oreka, you at least have the rtp stream captured, along with all the call setup details.