microsoftgraph / microsoft-graph-comms-samples

Microsoft Graph Communications Samples
MIT License
212 stars 237 forks source link

Compliance recording and silence on Direct Routing that are on-hold #618

Open Elandyr99 opened 1 year ago

Elandyr99 commented 1 year ago

On a Compliance Recording setup, we have a problem with music-on-hold and Direct Routing calls via an Audiocodes SBC.

There are 4 participants in the call, according to the callRecord:

With the compliance policy in place, when the Recorded user puts an External party on hold, the External party only hears silence and no music-on-hold. If the compliance policy is removed, the External party receives music-on-hold.

Looking at the messages posted to the "/api/calling/" endpoint, only the Recorded user, External party and Recording bot appear as participants during the call. I don't know what the "Conferencing Virtual Assistant" is.

In the "request" value of the log created by ICommunicationsClient::LogAndCreateResponse(), the "direction" field changes from "sendReceive" to "inactive" when the call is put on hold.

Portion of Recorded user entry after putting call on hold: { "@odata.type": "#microsoft.graph.participant", "mediaStreams": [ { "@odata.type": "#microsoft.graph.mediaStream", "mediaType": "audio", "label": "main-audio", "sourceId": "15", "direction": "inactive", "serverMuted": false } ],

I thought perhaps the Recording bot needs to respond and set the direction to "inactive" somehow as well, but the policy recording bot is set to "receiveOnly".

Portion of bot entry: { "@odata.type": "#microsoft.graph.participant", "mediaStreams": [ { "@odata.type": "#microsoft.graph.mediaStream", "mediaType": "audio", "label": "main-audio", "sourceId": "1", "direction": "receiveOnly", "serverMuted": false },

Shouldn't this be enough to indicate the External party should be hearing music-on-hold (nobody can transmit audio to the External party). The bot never sends audio.

Is it possible the music-on-hold is coming from the SBC and the presence of the recording bot is confusing the SBC into thinking there are still 2 parties talking, and that it should not send music-on-hold?

Why is there no music-on-hold when the recording bot is involved? What does the Policy Recording bot need to do to fix this, or is it a problem at Microsoft or at the SBC?

ssulzer commented 1 year ago

@Elandyr99 Can you please share a call-id and approximate timestamp of a call where the External does not hear any music-on-hold. The Recording bot should not need to do anything.

FYI, Conferencing Virtual Assistant (CVA) is a multi-purpose Microsoft Teams utility bot which can do things like provide assistance to PSTN callers (e.g., *6 to mute/unmute) or play audio announcements into the meeting.

Elandyr99 commented 1 year ago

@ssulzer - this is a test call exhibiting the behaviour.

Call ID: d10b091d-86c4-4443-bed8-87e33c83132c Start time: 2022-12-15 04:34:21 UTC End time: 2022-12-15 04:34:56 UTC

ssulzer commented 1 year ago

Thanks @Elandyr99 but do you have a more recent example, say within the past 1 or 2 weeks, please? Our diagnostic telemetry looks back only about 30 days.