microsoftgraph / microsoftgraph/microsoft-graph-comms-samples

PolicyRecordingBot - Get Caller and Callee

Open
#237 7 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
253
Forks
275
Avg merge
1d 5h
Merged PRs (30d)
1

Description

When the recording bot receives a call, how can you tell which participant is the caller and which is the recipient?

The notifications that arrive during a call give information about participants as they are added and removed, but I can't see how to determine which one is the initiator of the call.

The only place I can see a "Caller" and a "Callee" is in the "botData" part of the initial invite message (example below - guids and numbers removed - "+44xxxxxxxxxx" is the phone number making the call).

"applicationMetadata": {
  "botData": {
    "callId": "xxxxxxx (guid) xxxxxxx",
    "mediaHostedRegion": "EUWE",
    "user": {
      "participationMethod": "Callee"
    },
    "otherSideUser": {
      "id": "4:+44xxxxxxxxxx",
      "participantId": "xxxxxxx (guid) xxxxxxx",
      "tenantId": "00000000-0000-0000-0000-000000000000",
      "participationMethod": "Caller"
    },
    "inviteReasons": [
      "ComplianceRecording"
    ],
    "policyIdentifier": "TeamsComplianceRecordingPolicy=Tenant:ComplianceRecordingPolicy",
    "otherRecorders": [],
    "pairedRecorders": []
  }
}

These properties don't appear to be available in the 'Call' object directly.

The only way I can see to get this data is by using call.Resource.AdditionalData["applicationMetadata"] and parsing the JSON inside it.

Am I doing this properly?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the initial invite message's applicationMetadata.botData and compare it with the Call object and call.Resource.AdditionalData. Check the sample's handling of participant notifications and determine whether caller and callee are exposed through a supported API surface. Done means establishing a documented, supported way to identify both participants or clearly recording that the requested properties are unavailable.

Written by the indexing model from the issue text.

Assessment

Domain
api, backend-api-design
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.