Как перенаправить вызов в очередь с помощью MS Graph Communications API - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь перенаправить вызов в очередь вызовов с помощью MS Graph Communications API. В настоящее время я использую C# SDk для связи с Graph API.

Я знаю, что очередь вызовов - это просто еще одно приложение, созданное MS, идентификатор этого приложения - 11cd3e2e-fccb-42ad-ad00-878b93575e07. Поэтому следующий фрагмент кода должен позволить вызвать это приложение:


GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var targets = new List<InvitationParticipantInfo>()
{
    new InvitationParticipantInfo
    {
        Identity = new IdentitySet
        {
            Application = new Identity
            {
                DisplayName = "Call Queue",
                Id = "11cd3e2e-fccb-42ad-ad00-878b93575e07"
            }
        }
    }
};

var callbackUri = "https://bot.contoso.com/api/calls/24701998-1a73-4d42-8085-bf46ed0ae039";

await graphClient.Communications.Calls["491f0b00-ffff-4bc9-a43e-b226498ec22a"]
    .Redirect(targets,null,callbackUri)
    .Request()
    .PostAsync();

Однако это не позволяет мне передавать Id очереди вызовов, которую я хотел бы вызвать. В API-интерфейсе de MS Graph класс Identity имеет дополнительную опцию AdditionalData, которая имеет следующее определение реквизита:


public IDictionary<string, object> AdditionalData { get; set; }

Мое лучшее предположение состоит в том, что здесь мы должны передать некоторые параметры, кроме официальной документации @ https://docs.microsoft.com/en-us/graph/api/call-redirect?view=graph-rest-1.0&tabs=csharp не упоминает ничего об этой возможности.

Кто-то знает, каким может быть этот параметр, или, если это неправильный способ достижения этой цели, как позвонить API для перевода в очередь вызовов?

1 Ответ

0 голосов
/ 28 января 2020

Являетесь ли вы приложением "Очередь" для себя? Или это приложение, управляемое MSFT? Обычно очереди - это теннизованные экземпляры глобального приложения, требующие указания идентификатора applicationInstance.

Какой SDK вы используете? Microsoft.Graph.Communications.Core SDK предоставляет методы расширения для IdentitySet, которые позволяют вам получать / устанавливать различные типы удостоверений.

var identitySet = new IdentitySet();

identitySet.SetPhone(new Identity { ... });
var phoneIdentity = identitySet.GetPhone();

identitySet.SetApplicationInstance(new Identity { ... });
var appInstanceIndetity = identitySet.GetApplicationInstance();

При этом вызовы между ботами и ботами / переводы / приглашения не поддерживаются в коммуникационных API сегодня. Это относится и к экземплярам приложений.

С уважением, Камиль

...