I am currently developing a recording application witch CUCM 9.0.
Now the problem I'm facing is this. I have application-invoked recording setup for the recording functionality.
I would like to stop the recording at specific portions of a call (ie, during call hold, during transfer).
The sample call flow is this:
# Ext 1000 calls Ext 1001
# Ext 1001 answers 1000 // at this point, call CiscoTerminalConnection.startRecording()
# Ext 1001 holds 1000 // at this point, call CiscoTerminalConnection.stopRecording()
# Ext 1001 resumes 1000 // at this point, call CiscoTerminalConnection.startRecording()
# Ext 1001 disconnects // at this point, call CiscoTerminalConnection.stopRecording()
I would like to know if this is even possible.
I have tried the setup in the code above, calling stopRecording() when the rtp input streams stop coming in for a device.
This works fine as expected.
But when I try to start the recording again, during a resume event, the recording is not restarted.
Could you help and shed some light on how to properly implement this kind of setup.
The goal of this is to make sure that there are no hold-tone streams included in the recordings.
Any idea will be very much appreciated.
PS: We're not using MediaSense on this so it's just that plain JTAPI app.
As soon as call will go on hold, recording will be automatically stopped. You don't need to call stopRecording.
Thank you for the prompt reply.
When you say 'recording will be automatically stopped', this is for the case of the caller device right?
As for the called device, when caller holds the call, the called device is provided with another input stream, that of the hold tone. I would not want this part to be recorded for the called device.
Do you have some ideas on how I could achieve this?
I don't think you will get any event if party is external (mobile or PSTN), but if other party is CUCM endpoint then you can check parameters in CiscoRTPInputStartedEv & CiscoRTPOutputStoppedEv, if that can help u in building logic.