microsoftgraph / microsoft-graph-comms-samples

Microsoft Graph Communications Samples
MIT License
208 stars 230 forks source link

Can not get recording location and token when we end the call directly in Record Response Graph API #376

Open bijaykush opened 3 years ago

bijaykush commented 3 years ago

I would like to focus your attention on Record Response API This API sends us callback notification with Recording Location URL and Recording Access Token on the following cases:

  1. When we input some keypad as stopTones (*, #, 1, 2, etc.) to stop the recording completely.
  2. When we keep on recording our voice for 2 min duration
  3. When events like maxSilenceTimeoutInSeconds get triggered

But the issue here is when we end the call directly from the customer phone before max duration reached(2 min) OR maxSilenceTimeoutInSeconds OR without passing stopTones, we didn't get any callback notifications i.e. we lose our recordings.

Is there any way or workaround to resolve this issue?

bijaykush commented 3 years ago

@ssulzer @ksikorsk Is there any way to make it work when user presses the end button directly instead of hitting stoptones?

ssulzer commented 3 years ago

@bijaykush I've referred this to an engineer to look at. Thanks.

bijaykush commented 3 years ago

@ssulzer Thank you for your help. Hope to get a response soon since we are having this as a major roadblock in our product development.

And also to add some more details: We found out that, we are getting these required callback(RecordOperation ) notifications when the customer hits the end button directly with a 20% success rate and 80% failure rate. To make it clearer, we are getting call back notifications in 1 out of 5 or 6 calls without changing anything at our side. It appears like Record Response API is not working properly as it should.

You can also use these findings while debugging the issue.

bijaykush commented 3 years ago

@ssulzer Any update on this? We are eagerly waiting for this to work.

ssulzer commented 3 years ago

@zhengni-msft Will need your help on this. If the call ends abruptly while a recordResponse operation is in-progress, there's likely a race condition bug in which operation completion callbacks are not delivered to the app. @bijaykush can you please share a recent call-id/scenario-id of an example? Thanks.

bijaykush commented 3 years ago

Hi @ssulzer and @zhengni-msft

I have made 6 test calls again on Record Response API in v1.0 and found out that 1 call is sending RecordOperation notification when I end the call directly from the end button of a mobile(PSTN) out of 6 calls for recordOperation. The call which worked is the 6th call.

But we should get recordOperation notificaiton of every call listed below when we pressed the end button directly too. Hope the logs will be useful for debugging at your side

Number of Participant for these test cases: Bot and PSTN number (2 participants)

Failed Case: 1st Call:

"CallId": "501f5b00-f11f-445d-8b8c-f2364b47ea1b"
"ScenarioId": "b30c5b0d-96dd-4b21-a657-148fcef6206d",

2nd Call:

"CallId": "7c1f3d00-e11f-46e7-9c5e-c2f215ed55bd"
"ScenarioId": "5ea0ef49-0fe3-407a-ae15-82ac13c869e"

3rd Call:

"CallId": "571f3e00-5820-40c4-9921-cde1ccd515c9",
"ScenarioId": "11cb0c11-74ff-4e33-8c35-5d1f37b78fef"

4th Call:

"CallId": "961f6a00-711f-41ed-af47-805ff4c183e1"
"ScenarioId": "685d9531-ad5f-48a7-b4a2-2f4e8040817e"

5th Call:

"CallId": "6e1f6400-8b1f-48eb-a3fc-c215d04e35e5",
"ScenarioId": "13ed063b-c270-49b6-873a-0a1f4e56d15d"

Success Case: 6th Call:

"CallId": "84200200-bf1f-48de-9ebd-1b86909e57c5",
"ScenarioId": "60935677-c116-4ed3-bf57-e50ba1acda8d"

Record Response Data for successful call:

  {​​​​​​​Microsoft.Graph.Communications.Core.Notifications.NotificationEventArgs}​​​​​​​
    AdditionalData: Count = 10
    CallbackUri: {​​​​​​​http://04268873c1c7.ngrok.io/callback/calling}​​​​​​​​
    ChangeType: Deleted
    Notification: {​​​​​​​Microsoft.Graph.CommsNotification}​​​​​​​
    NotificationId: {​​​​​​​5078370f-3c74-49e4-bee0-a30e7e1dbb31}​​​​​​​
    RequestId: {​​​​​​​3a3037b0-ec82-415a-b375-c86a1654287b}​​​​​​​
    ResourceData: {​​​​​​​Microsoft.Graph.RecordOperation}​​​​​​​
    ScenarioId: {​​​​​​​60935677-c116-4ed3-bf57-e50ba1acda8d}​​​​​​​
    TenantId: "***********************"

ResourceData Record Operation:

     AdditionalData: Count = 3
    ClientContext: "84200200-bf1f-48de-9ebd-1b86909e57c5"
    Id: "80141177-9833-4b9b-8ea7-eef772982e33"
    ODataType: "microsoft.graph.recordOperation"
    RecordingAccessToken: "eyJhbGciOiJSUzI1NiI*******************************"
    RecordingLocation: "https://01********************"
    ResultInfo: {​​​​​​​Microsoft.Graph.ResultInfo}​​​​​​​
    Status: Completed

This is the big roadblock for our product release. Please help us by resolving this issue as soon as possible.

jackry commented 3 years ago

This is a known race condition issue that if recorder response reached to MS Graph Platform Service after the call end, the call might have already been deleted so that it won't send notification to bot any more. We have bug to track this issue and will be working on the fix.

ssulzer commented 3 years ago

@bijaykush Right now we cannot offer an ETA for a fix. Only suggestion I can think of is to update the prompt played to the caller to indicate it is important to enter an appropriate stop tone to complete their response/message before hanging up. Thank you for reporting this bug to us.

bijaykush commented 3 years ago

@ssulzer @jackry @zhengni-msft

Hope it will be resolved soon. Please update here once you have a fixed push for this. Thank you.

ATGN-KevinYang commented 3 years ago

@ssulzer is any progress this issue? I believe that is a bug of Graph API. Is any possible to raise the priority of this issue?

ssulzer commented 3 years ago

@jackry @zhengni-msft

zhengni-msft commented 3 years ago

We are tracking that issue and need some time to fix that as it requires the call object in server side keep longer time after call ended. Will update here after if it in.

mwerghemmi commented 3 years ago

Hi @zhengni-msft , Any update about this please ? or any expected delay on it ? Many thanks

mwerghemmi commented 1 year ago

Hi @zhengni-msft @ssulzer , any update or any timeline on this one please ?

Many thanks

AshokButra commented 3 months ago

Is this issue resolved? I'm still facing this type of issue