the challenge is this:
If you GET /api/v2/conversations/call using Curl/Postman/JS then you get an object back which contains a list of conversatations, within each conversation a list of participants and on each participant, a recordingStatus and securePause property.
There is also a recordingStatus and securePause property on the conversation object as it happens.
If an agent accepts a voice call which is being recorded, then the recordingStatus and securePause properties on the customer participant are correct, and reflect the fact that the recording is not paused.
If you perform a secure pause operation (either using the PATCH /api/v2/conversations/call api or using the PUT /api/v2/conversations/call/recordingstate API - behaviour is the same no matter which you use), then the securePause property on the customer participant is correct, and so is the securePause on the conversation object. Resume (via the same APIs) also works and updates both flags correctly.
However, if the agent puts the caller on hold, does a consultation call with a flow, and then resumes the call with the customer, THEN performs a secure pause (using the UI or either of these APIs) then there is a problem:
The customer participant securePause flag is set correctly, but the securePause flag on the conversation shows that the recording is NOT PAUSED. The UI similarly does not show the padlock symbol in red, indicating that the UI does not think the recording is paused.
When you look at the call recording via the UI, you can see that the recording was in fact paused.
This does look like a bug to me - but ther might be a workaround: if we could access the securePause property on the customer participant, we could tell whether the recording is paused or not.
Unfortunately, whilst we can see the securePause property in the JSON returned from GET /api/v2/conversations/calls, the .NET nuGet Package "PureCloudPlatform.Cklkient.V2" version 195.0.0 does not expose the securePause property on the participant. It's clearly being returned by Genesys, but the .NET API does not make it available.
So I think there are two bugs here:
- The securePause property on the conversation object does not reflect the fact that the recording is paused under some circumstances
- Although Genesys correctly returns the securePause property on the conversation participant object (specifically for purpose=customer), the .NET API does not permit this to be accessed.
I hope that makes sense - from our perspective, issue 2 is the more serious as it prevents us being able to work around issue 1.
I hope this clarifies.