DTMF subscription(subscribeToTone) in group call is not working in microsoft graph call

Viewed 261

We are trying to build a calling bot in Teams, which can start a meeting and be part of that meeting. We want to be able to subscribeToTone , so bot can provide appropriate help during the meeting.

We have a scenario where a meeting is organized by an organizer between 2 external attendees [let’s say 2 gmail users] and once meeting is started, organizer leaves the call. So in meeting there will only be three participants, 2 external users and our calling bot. This meeting is organized for a channel, so chat is disabled for external users. We were trying to use DTMF to provide help to users. For example, user can press “0” for help and our bot will call organizer and bring organizer in to call.

Unfortunately, what we have found so far is, DTMF is only working on IVR to 1:1 call and not in group call. We have looked and tried the Incident Bot from communication sample and failed to get tone during the meeting. There is not enough documentation describing subscribeToTone scenarios.

I would appreciate any help.

Below is the request response from subscribeToTone ***********Request**************************

POST https://graph.microsoft.com/v1.0/communications/calls/f91f0100-c01f-49d3-85ff-846c19e01c5b/microsoft.graph.subscribeToTone HTTP/1.1
Scenario-Id: d79f31e0-ab43-4645-8cba-bcc7e2061f9a
Client-Request-Id: d6d42b44-51ab-435e-be8c-4623b7af54c7
User-Agent: GraphCommunicationsClient-IncidentBot/1.2.0.850
Authorization: Bearer {AuthToken}
Content-Type: application/json; charset=utf-8
Host: graph.microsoft.com
Content-Length: 56

{"clientContext":"dcf53dfb-fe16-4b05-8703-6b0820fc3879"}

***********Response**************************

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8
Location: https://graph.microsoft.com
request-id: 5e121c7b-fa38-4931-98ef-9da66324d34c
client-request-id: d6d42b44-51ab-435e-be8c-4623b7af54c7
x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"South India","Slice":"SliceC","Ring":"3","ScaleUnit":"001","RoleInstance":"AGSFE_IN_5"}}
scenario-id: d79f31e0-ab43-4645-8cba-bcc7e2061f9a
OData-Version: 4.0
Strict-Transport-Security: max-age=31536000
Date: Fri, 29 May 2020 11:23:16 GMT
Content-Length: 284



{"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#subscribeToToneOperation","@odata.type":"#microsoft.graph.subscribeToToneOperation","id":"dcc28d33-beee-413f-b971-5865a40e484a","status":"Completed","clientContext":"dcf53dfb-fe16-4b05-8703-6b0820fc3879","resultInfo":null}
1 Answers

It makes sense that it's only working in a one-to-one call. In group call, the IVR is on control of the call leg from your IVR app to the conference server. All other legs have there own call leg to the conference server. The audio you are receiving is the "mixed" audio of all the other participants from the conference server.

DTMF is generally sent in one of two ways, as a "tone" (calling party sends the tone sound over the audio feed) and as a signal (where the receiving party plays the tone based on a signal from the other side). Normally a conference server will be dropping these DTMF signals and it will not mixed into the audio streams sent out to the participants.

For internal teams calls, I would expect them to be sending DTMF signals as it's more likely to work. PSTN calls always sends DTMF as tones as it has to cross a lot of different networks that may/may not work with DTMF signals.

You may find that you can detect DTMF "tones" in a group call if the sending party is a PSTN call into the group call. It's also possible the conference server may be filtering out those tones (in which case you are out of luck). The other problem is that you can not tell who sent the DTMF (which may not matter to you).

You will have to test a PSTN caller into a group call to see if that's the case. If not then you are out of luck.

You can try requesting the feature through uservoice.

Related