PureConnect

 View Only
Discussion Thread View
Expand all | Collapse all

How to know if a call is being recorded?

  • 1.  How to know if a call is being recorded?

    Posted 12-01-2017 18:59
    I want to add a function to pause/resume call recording into my app using IceLib. What property tells me is an interaction is currently being recorded or not? I am guessing the property IsPaused tells me if the recording is currently paused or not. But I want to know if the user's call is being recording first. How can I tell if a call is being recorded or not?


  • 2.  RE: How to know if a call is being recorded?

    Posted 12-02-2017 17:27
    Hello, As far as I understand your question, you want to know which active calls are being recorded. You can use Call Activity view from ICBM and add a column named Recs, which tell you if the active calls is being recorded or not. You can add the same column to Interaction Desktop. Hope this help. Best Regards, Youssef Atef


  • 3.  RE: How to know if a call is being recorded?

    Posted 12-03-2017 01:12
    Thank you for your reply. I want to find out id the call is being recorded via code using the IceLib. I am trying to build an integration between my app and the phone system.


  • 4.  RE: How to know if a call is being recorded?

    Posted 12-04-2017 14:50
    There is a property on the Interaction class named IsRecording. If you are getting IsPaused, you should already be watching the Recorders and SupervisorRecorders properties and have access. These read like they only report if the current session user is recording the interaction, which I would think would be false for interactions recorded from IR. If you need an attribute try Eic_Recorders and Eic_IRRecordingId as they should be able to tell you if the recording is in process. Eic_IRRecordingId will only be present if the recording was initiated by an IR policy. I am not sure what the value, if any, of Eic_Recorders would be on an IR policy initiated interaction. Eic_Paused should tell you if the recording is paused, and Eic_RecordingsAutoResumeTime will tell you when a securely paused recording is scheduled to resume. I don't have a system or the code base to currently test any of these, so it is best if you can just watch each of these attributes and report back what you are seeing.


  • 5.  RE: How to know if a call is being recorded?

    Posted 12-04-2017 16:26
    The `Eic_Recorders` gives me "System" for a value. Also, `Eic_IRRecordingId` attribute gives me a valid Id of the recording. However, the `IsRecording` property is set to false. I tried to change my code from if (interaction.IsRecording && interaction.IsPaused && !interaction.IsDisconnected) { interaction.Pause(false); } to var iRRecordingId = interaction.GetStringAttribute("Eic_IRRecordingId"); if (!string.IsNullOrWhiteSpace(iRRecordingId) && !interaction.IsPaused && !interaction.IsDisconnected) { resource.IsSuccess = true; } But the code throw an exception "The specified call no longer exists." Here is a list of all properties that I am watching InteractionAttributeName.CallIdKey, InteractionAttributeName.InteractionId, InteractionAttributeName.InteractionType, InteractionAttributeName.RemoteAddress, InteractionAttributeName.RemoteName, InteractionAttributeName.RemoteId, InteractionAttributeName.State, InteractionAttributeName.Direction, InteractionAttributeName.StateDescription, InteractionAttributeName.Muted, InteractionAttributeName.ConferenceId, InteractionAttributeName.CallType, InteractionAttributeName.Recorders, InteractionAttributeName.SupervisorRecorders, InteractionAttributeName.LocalId, InteractionAttributeName.LocalName, "Eic_CallState", "Eic_State",


  • 6.  RE: How to know if a call is being recorded?

    Posted 12-29-2017 19:10
    any one has an idea about this? I want to be able to pause and resume a recording.


  • 7.  RE: How to know if a call is being recorded?

    Posted 01-02-2018 15:06
    Originally posted by malhayek;36506
    any one has an idea about this? I want to be able to pause and resume a recording.
    If the recording was not initiated by the user, i.e. Interaction Recorder policy initiated the recording, I believe you need to use the Secure Pause. The "IsRecording" property of the Interaction object will only be set to "true", if the session user initiated a recording. I am assuming you are allowing them to pause as to not have a recording of sensitive information?


  • 8.  RE: How to know if a call is being recorded?

    Posted 01-02-2018 17:11
    As far are I know, the recording was not initiated by the policy. In fact, I am able to listen to the recording after the call was completed.
    I am assuming you are allowing them to pause as to not have a recording of sensitive information
    Your assumption is correct. So I want to pause recording for a very short period of time then resume recording. I am going to attempt using the Secure Recording next.


  • 9.  RE: How to know if a call is being recorded?

    Posted 01-02-2018 17:40
    I am trying to use the Secure Pause which does not seems to be throwing any errors. But I need the `IsPaused` and the `IsRecording` properties to change so I can change the button on the user's screen from "Pause Recording" to "Resume Recording". In the code below, the variable "iRRecordingId" has a valid value which means that the recording was initiated by the policy. var iRRecordingId = interaction.GetStringAttribute("Eic_IRRecordingId"); But as you can see in the screenshot below, `IsRecording` has a false value while the `Recorders` has 1 value. Here is how the interaction looks like in VS. [ATTACH]908[/ATTACH] Here is how I am using the secure recording to pause the recording var interaction = GetInteraction(interactionId); if (!interaction.IsDisconnected) { var param = new SecureRecordingPauseParameters(SecureRecordingPauseAction.PauseWithInfiniteTimeout); interaction.SecureRecordingPause(param); } Here is how I am attempting to resume the recording using the secure recording var interaction = GetInteraction(interactionId); if (!interaction.IsDisconnected) { var param = new SecureRecordingPauseParameters(SecureRecordingPauseAction.ResumeRecording); interaction.SecureRecordingPause(param); } Finally, here is my GetInteraction() signature protected Interaction GetInteraction(string interactionId) { return GetInteractionManager().CreateInteraction(new InteractionId(interactionId)); }


  • 10.  RE: How to know if a call is being recorded?

    Posted 01-03-2018 21:18
    IsRecording will be null/false because the user is not recording the interaction, the System (IR) is. The same may be true for the isPaused property, and is why you may have to watch the SecurePauseResumeTime attribute for the recording status. If you are using the indefinite property, you may be able to manage the state internally in your app e.g. the user pressed the pause button, and you set an internal property to track the pause state.


  • 11.  RE: How to know if a call is being recorded?

    Posted 01-03-2018 22:15
    I see. I write couple helpers that seems to have done the job. I am not sure if there is a flaw in my logic but here goes my helpers. Let me know if you see any issue with my logic below public class InteractionHelpers { public static bool IsPaused(Interaction interaction) { if (interaction.IsPaused) { return true; } if (interaction.Recorders != null) { foreach (var recorder in interaction.Recorders) { if (recorder.Paused) { return true; } } } return false; } public static string GetRecordingId(Interaction interaction) { string id = interaction.GetStringAttribute("Eic_IRRecordingId"); return StringHelpers.GetStringOrNull(id); } public static bool IsRecording(Interaction interaction) { if(interaction.IsRecording) { return true; } return (GetRecordingId(interaction) != null); } }