Legacy Dev Forum Posts

 View Only

Sign Up

Recording API annotations location, durationMs and actual conversation time mismatch issue

  • 1.  Recording API annotations location, durationMs and actual conversation time mismatch issue

    Posted 06-05-2025 18:32

    mark514 | 2024-09-11 13:15:48 UTC | #1

    hello team

    recently, we had a requirement of downloading record audio for objectives below

    1. target conversation which multiple agents involved

    (ex. mutiple call transfers of ivr,acd included in between)

    1. audio should be seperated by exact range of each agent's own call part

    for achieving objectives above, our approach is below

    1. get conversation details (Conversation/Analytics API)

    -> classify each agent's connected/disconnected time

    1. get recording details (Recordings API)
    2. check "annotations" list from recording metadata

    -> classify/gather location & duration of eliminated pauses from actual audio file

    1. add silence bytes into downloaded audio file at positions according to "annotations"

    -> for the purpose of extracting range of audio for conversation event's connected/disconnected time

    proceeding above approach, we had some issues

    1. recording/event duration (endtime - starttime) versus

    downloaded audio file duration + annotations cumulated pause duration differs 10 seconds

    1. unable to find out which annotation's duration causes difference above
    2. as a result, extracted audio range by each agent's connected/disconnected time

    mismatches the actual audio position (lastest part has 10 seconds cut off at the end)

    are there any suggestions or other approaches to achive objectives above ?

    <sample response of recording api>

    "startTime": "2024-08-12T00:05:43.999Z", "endTime": "2024-08-12T00:22:51.905Z", "media": "audio", "annotations": [ { "id": "**-7f3b-4309-8f78-****", "type": "Pause", "location": 400, "durationMs": 690, "absoluteLocation": 0, "absoluteDurationMs": 690, "recordingLocation": 400, "recordingDurationMs": 0, "description": "Flow Or Queue", "reason": "FlowOrQueue", "realtimeLocation": 0 }, { "id": "**-7f3b-4309-8f78-****", "type": "Pause", "location": 58500, "durationMs": 126136, "absoluteLocation": 58100, "absoluteDurationMs": 126136, "recordingLocation": 58500, "recordingDurationMs": 0, "description": "Flow Or Queue", "reason": "FlowOrQueue", "realtimeLocation": 57284 }, { "id": "**-7f3b-4309-8f78-****", "type": "Pause", "location": 75060, "durationMs": 126473, "absoluteLocation": 74660, "absoluteDurationMs": 126473, "recordingLocation": 75060, "recordingDurationMs": 0, "description": "Flow Or Queue", "reason": "FlowOrQueue", "realtimeLocation": 198517 }, { "id": "**-7f3b-4309-8f78-****", "type": "Pause", "location": 91380, "durationMs": 115812, "absoluteLocation": 90980, "absoluteDurationMs": 115812, "recordingLocation": 91380, "recordingDurationMs": 0, "description": "Flow Or Queue", "reason": "FlowOrQueue", "realtimeLocation": 339850 }, { "id": "**-7f3b-4309-8f78-****", "type": "Pause", "location": 213000, "durationMs": 9800, "absoluteLocation": 212600, "absoluteDurationMs": 9800, "recordingLocation": 213000, "recordingDurationMs": 0, "description": "Flow Or Queue", "reason": "FlowOrQueue", "realtimeLocation": 575808 }, { "id": "**-7f3b-4309-8f78-****", "type": "Pause", "location": 354940, "durationMs": 107735, "absoluteLocation": 354540, "absoluteDurationMs": 107735, "recordingLocation": 354940, "recordingDurationMs": 0, "description": "Flow Or Queue", "reason": "FlowOrQueue", "realtimeLocation": 726104 } ]


    tim.smith | 2024-09-11 13:53:38 UTC | #2

    Please open a case with Genesys Cloud Care to investigate the discrepancies in data returned by the API. We do not have access to your org's data via the forum to be able to look into this.


    system | 2024-10-12 13:53:54 UTC | #3

    This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.


    This post was migrated from the old Developer Forum.

    ref: 29008