Получить звонок от пользователя команды и перевести звонок в Endpoint SIPC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Получить звонок от пользователя команды и перевести звонок в Endpoint SIP

Сообщение Anonymous »

Я хочу разработать приложение с помощью автоматизации ACS Call Automation SDK с реализацией ниже: < /p>

Получите звонок от пользователя команды < /li>
Принять вызов < /li>
Transpe the Call the SIP -адрес < /li>
< /ol>
i Comelede Retabusing Azure.Communication.CallAutomation;
using Azure.Communication;
using Azure.Communication.Identity;

var builder = WebApplication.CreateBuilder(args);

// Load configuration
var config = builder.Configuration;
string acsConnectionString = config["AcsConnectionString"] ?? throw new Exception("Missing ACS connection string");
string sipTarget = config["SipTarget"] ?? throw new Exception("Missing SIP target");
string callbackUri = config["CallbackUri"] ?? throw new Exception("Missing Callback URI");

// Register CallAutomationClient
builder.Services.AddSingleton(new CallAutomationClient(acsConnectionString));

var app = builder.Build();

var identityClient = new CommunicationIdentityClient(acsConnectionString);
var response = await identityClient.CreateUserAsync();
string acsUserId = response.Value.Id;

Console.WriteLine("🔹 Teams users can call this ACS bot with:\n " + acsUserId);

app.MapPost("/api/calls/incoming", async (HttpContext http, CallAutomationClient callClient) =>
{
var body = await new StreamReader(http.Request.Body).ReadToEndAsync();
var incomingEvent = System.Text.Json.JsonDocument.Parse(body);

var callContext = incomingEvent.RootElement.GetProperty("incomingCallContext").GetString();

var answerResult = await callClient.AnswerCallAsync(callContext, new Uri(callbackUri));
var callConnection = answerResult.Value.CallConnection;

var sipParticipant = new PhoneNumberIdentifier(sipTarget);
await callConnection.TransferCallToParticipantAsync(sipParticipant);

return Results.Ok();
});

app.MapPost("/api/calls/events", async (HttpContext http) =>
{
var body = await new StreamReader(http.Request.Body).ReadToEndAsync();
Console.WriteLine("Event received: " + body);
return Results.Ok();
});

app.Run();
< /code>
Добавлен IM-ID-идентификатор ресурса для арендатора My Teams, использующего
set-csteamsacsfederationconfiguration.br /> Но когда я пытаюсь найти пользователь ACS 8: ACS: 54F3580B-1C11-4514-9B17-167EB81B5519_00000028-90C8-02DB-49A1-473A0D00F735 В команде I /> '8: ACS: 54F3580B-1C11-4514-9B17-167EB81B5519_00000028-90C8-02DB-49A1-473A0D00F735' < /p>
< / /blockquote>
Когда я пытался позаботьтесь по команде: pse a Calls calls Ied Calls: P. psale Calls: P. P. PANES> PECTES CALLS PANSE ITEDS. />
не смог выполнить звонок с вашей вызовой лицензии, вы можете только
позвонить людям в вашей организации. Поговорите с вашим администратором ИТ, чтобы изменить
ваша лицензия < /p>
< /blockquote>
У моего пользователя есть ниже разрешения: < /p>
"servicePlans": [
{
"servicePlanId": "13b6da2c-0d84-450e-9f69-a33e221387ca",
"servicePlanName": "PEOPLE_SKILLS_FOUNDATION",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "a6520331-d7d4-4276-95f5-15c0933bc757",
"servicePlanName": "GRAPH_CONNECTORS_SEARCH_INDEX",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec",
"servicePlanName": "PROJECT_O365_F3",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "0d0c0d31-fae7-41f2-b909-eaf4d7f26dba",
"servicePlanName": "Bing_Chat_Enterprise",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "6f23d6a9-adbf-481c-8538-b4c095654487",
"servicePlanName": "M365_LIGHTHOUSE_CUSTOMER_PLAN1",
"provisioningStatus": "Success",
"appliesTo": "Company"
},
{
"servicePlanId": "a82fbf69-b4d7-49f4-83a6-915b2cf354f4",
"servicePlanName": "VIVAENGAGE_CORE",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "b76fb638-6ba6-402a-b9f9-83d28acb3d86",
"servicePlanName": "VIVA_LEARNING_SEEDED",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "199a5c09-e0ca-4e37-8f7c-b05d533e1ea2",
"servicePlanName": "MICROSOFTBOOKINGS",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "bea4c11e-220a-4e6d-8eb8-8ea15d019f90",
"servicePlanName": "RMS_S_ENTERPRISE",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "ca6e61ec-d4f4-41eb-8b88-d96e0e14323f",
"servicePlanName": "DYN365_CDS_O365_F1",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "afc06cb0-b4f4-4473-8286-d644f70d8faf",
"servicePlanName": "MCOIMP",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9",
"servicePlanName": "STREAM_O365_K",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "7547a3fe-08ee-4ccb-b430-5077c5041653",
"servicePlanName": "YAMMER_ENTERPRISE",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "902b47e5-dcb2-4fdc-858b-c63a90a2bdb9",
"servicePlanName": "SHAREPOINTDESKLESS",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "882e1d05-acd1-4ccb-8708-6ee03664b117",
"servicePlanName": "INTUNE_O365",
"provisioningStatus": "PendingActivation",
"appliesTo": "Company"
},
{
"servicePlanId": "57ff2da0-773e-42df-b2af-ffb7a2317929",
"servicePlanName": "TEAMS1",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "94065c59-bc8e-4e8b-89e5-5138d471eaff",
"servicePlanName": "MICROSOFT_SEARCH",
"provisioningStatus": "Success",
"appliesTo": "Company"
},
{
"servicePlanId": "b737dad2-2f6c-4c65-90e3-ca563267e8b9",
"servicePlanName": "PROJECTWORKMANAGEMENT",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "c1ec4a95-1f05-45b3-a911-aa3fa01094f5",
"servicePlanName": "INTUNE_A",
"provisioningStatus": "PendingInput",
"appliesTo": "User"
},
{
"servicePlanId": "8a256a2b-b617-496d-b51b-e76466e88db0",
"servicePlanName": "MFA_PREMIUM",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "4a82b400-a79f-41a4-b4e2-e94f5787b113",
"servicePlanName": "EXCHANGE_S_DESKLESS",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "932ad362-64a8-4783-9106-97849a1a30b9",
"servicePlanName": "ADALLOM_S_DISCOVERY",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "6c57d4b6-3b23-47a5-9bc9-69f17b4947b3",
"servicePlanName": "RMS_S_PREMIUM",
"provisioningStatus": "Success",
"appliesTo": "User"
},
{
"servicePlanId": "41781fb2-bc02-4b7c-bd55-b576c07bb09d",
"servicePlanName": "AAD_PREMIUM",
"provisioningStatus": "Success",
"appliesTo": "User"
}
]
}
< /code>
Как возможно реализовать пользовательское приложение ACS, которое получает звонки от пользователей команд без прямой маршрутизации или номера PSTN? Также без необходимости пользователи команды должны добавить лицензию команды телефонной системы.

Подробнее здесь: https://stackoverflow.com/questions/796 ... p-endpoint
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»