Teams kimlikleri için Azure İletişim Hizmetleri desteği — Kullanım örnekleri
Microsoft Teams, Microsoft Entra Kimliği ile yönetilen kimlikler ve Teams Yönetici Merkezi tarafından denetlenen arama deneyimleri ve ilkeler sağlar. Kullanıcılar, Microsoft Teams Telefon telefon aramalarını ve gelişmiş arama özelliklerini etkinleştirmek için lisanslar atamış olabilir. Teams kimlikleri için Azure İletişim Hizmetleri destek, Teams'in IP üzerinden ses (VoIP) aramalarının, Teams telefon aramalarının ve Teams toplantılarına katılmanın yönetilmesine olanak tanır. Geliştiriciler, Microsoft 365 ekosisteminden bağlamsal veriler sağlamak için Graph API'siyle Azure İletişim Hizmetleri genişletebilir. Bu sayfa, Teams kullanıcıları ile senaryoları arama ve Azure İletişim Hizmetleri arama SDK'ları için uçtan uca bir deneyim sağlamak için mevcut Microsoft teknolojilerinin nasıl kullanılacağı konusunda ilham vermektedir.
Kullanım örneği 1: Giden Teams PSTN araması yapma
Bu senaryo, Contoso şirketinin Fabrikam şirketine SaaS sağladığı çok kiracılı bir kullanım örneğini gösteriyor. SaaS, Fabrikam kullanıcılarının Teams kullanıcısının kimliğini ve bu Teams kullanıcısına atanan PSTN bağlantısının yapılandırmasını alan özel bir web sitesi aracılığıyla Teams telefon aramaları yapmasına olanak tanır.
Aşağıdaki sıralı diyagramda Teams telefon araması başlatma işleminin ayrıntılı adımları gösterilmektedir:
Adımlar
- Contoso'nun istemci uygulamasında Fabrikam'dan Alice'in kimliğini doğrulama: Alice, Fabrikam'ın web sayfasını açmak için bir tarayıcı kullanıyor ve kimlik doğrulaması yapar. Teams kimliğiyle kimlik doğrulaması hakkında daha fazla ayrıntı bulabilirsiniz. Kimlik doğrulaması başarılı olursa, Alice ilk sayfaya yönlendirilir.
- Müşterileri ve PSTN numaralarını yükleme: Contoso, müşterilerin listesini ve ilişkili telefon numaralarını almak için özel mantık sağlar. Bu liste ilk sayfada Alice'e işlenir.
- Megan'a çağrı başlatma: Alice, Contoso'nun İstemci uygulamasında Megan'a PSTN çağrısı başlatmak için bir düğme seçer. İstemci uygulaması, çağırma özelliğini sağlamak için Azure İletişim Hizmetleri çağırma SDK'sını kullanır. İlk olarak, ilk adım sırasında alınan Azure İletişim Hizmetleri erişim belirtecini tutan bir callAgent örneği oluşturur.
const callClient = new CallClient();
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)
O zaman Megan'ın telefon numarasını araman gerekiyor.
const pstnCallee = { phoneNumber: '<MEGAN_PHONE_NUMBER_E164_FORMAT>' }
const oneToOneCall = callAgent.startCall([pstnCallee], { threadId: '00000000-0000-0000-0000-000000000000' });
- PSTN araması Megan'a Bağlan: Arama, Alice'e atanan Teams telefon bağlantısı üzerinden yönlendirilir, PSTN ağına ulaşır ve sağlanan telefon numarasıyla ilişkili telefonu çalar. Megan, Alice'in Teams kullanıcısı ile ilişkili telefon numarasından gelen bir aramayı görür.
- Megans aramayı kabul eder: Megan aramayı kabul eder ve Alice ile Megan arasındaki bağlantı kurulur.
Kullanım örneği 2: Gelen Teams telefon aramasını alma
Bu senaryo, Contoso şirketinin Fabrikam şirketine SaaS sağladığı çok kiracılı bir kullanım örneğini gösteriyor. SaaS, Fabrikam kullanıcılarının Teams kullanıcısının kimliğini ve bu Teams kullanıcısına atanan PSTN bağlantısının yapılandırmasını alan özel bir web sitesi aracılığıyla Teams telefon araması almasına olanak tanır.
Aşağıdaki sıralı diyagramda, gelen Teams telefon çağrılarını kabul etmek için ayrıntılı adımlar gösterilmektedir:
Adımlar
- Contoso'nun istemci uygulamasında Fabrikam'dan Alice'in kimliğini doğrulama: Alice, Fabrikam'ın web sayfasını açmak için bir tarayıcı kullanıyor ve kimlik doğrulaması yapar. Teams kimliğiyle kimlik doğrulaması hakkında daha fazla ayrıntı bulabilirsiniz. Kimlik doğrulaması başarılı olursa, Alice ilk sayfaya yönlendirilir.
- Çağrıları almak için abone olun: İstemci uygulaması, çağırma özelliğini sağlamak için Azure İletişim Hizmetleri çağırma SDK'sını kullanır. İlk olarak, ilk adım sırasında alınan Azure İletişim Hizmetleri erişim belirtecini tutan bir callAgent örneği oluşturur.
const callClient = new CallClient();
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)
Ardından gelen arama olayına abone olursunuz.
const incomingCallHandler = async (args: { teamsIncomingCall: TeamsIncomingCall }) => {
const incomingCall = args.teamsIncomingCall;
// Get information about caller
var callerInfo = incomingCall.callerInfo
showIncomingCall(callerInfo,incomingCall);
};
callAgent.on('incomingCall', incomingCallHandler);
showIncomingCall yöntemi, gelen çağrıları belirtmek için kullanıcı arabirimini ve çağrıyı kabul edip reddetmek için iki düğmeyi işleyecek özel bir Contoso yöntemidir. Kabul et düğmesini seçerseniz aşağıdaki kod kullanılır:
// Accept the call
var call = await incomingCall.accept();
Reddet düğmesini seçerseniz aşağıdaki kod kullanılır:
// Reject the call
incomingCall.reject();
- Megan başlangıç, Teams kullanıcısı Alice'e atanan PSTN numarasını arar: Megan, Alice'i aramak için telefonunu kullanır. Operatör ağı, Alice'e atanan Teams telefon bağlantısına bağlanır ve Alice için kaydedilen tüm Teams uç noktalarını çaldıracaktır. Şunları içerir: Azure İletişim Hizmetleri çağrı SDK'sını temel alan Teams masaüstü, mobil, web istemcileri ve uygulamalar.
- Contoso'nun istemci uygulaması Megan'ın gelen çağrısını gösterir: İstemci uygulaması gelen arama bildirimini alır. showIncomingCall yöntemi, telefon numarasını müşterinin adına çevirmek için özel Contoso'nun mantığını kullanır (örneğin, bir telefon numarası ve müşteri adından oluşan anahtar-değer çiftlerini depolayan bir veritabanı). Bilgiler alındığında, bildirim Contoso'nun istemci uygulamasında Alice'e gösterilir.
- Alice aramayı kabul eder: Alice aramayı kabul etmek için bir düğme seçer ve Alice ile Megan arasındaki bağlantı kurulur.
Kullanım örneği 3: Giden Teams VoIP araması yapma
Bu senaryo, Contoso şirketinin Fabrikam şirketine SaaS sağladığı çok kiracılı bir kullanım örneğini gösteriyor. SaaS, Fabrikam kullanıcılarının Teams kullanıcısının kimliğini alan özel bir web sitesi aracılığıyla Teams VoIP çağrıları yapmasına olanak tanır.
Aşağıdaki sıralı diyagramda Teams VoIP çağrısı başlatmaya yönelik ayrıntılı adımlar gösterilmektedir:
Adımlar
- Contoso'nun istemci uygulamasında Fabrikam'dan Alice'in kimliğini doğrulama: Alice, Fabrikam'ın web sayfasını açmak için bir tarayıcı kullanıyor ve kimlik doğrulaması yapar. Teams kimliğiyle kimlik doğrulaması hakkında daha fazla ayrıntı bulabilirsiniz. Kimlik doğrulaması başarılı olursa, Alice ilk sayfaya yönlendirilir.
- Fabrikam'ın kuruluşundan kullanıcıları ve tanımlayıcılarını yükleme: Contoso istemci uygulaması, Fabrikam'ın kiracısından kullanıcıların listesini almak için Graph API'sini kullanır. Alice'in veya Yönetici bu eylemi gerçekleştirmek için Graph API'sine onay vermesi gerekir. Belgelerde Graph API komutu hakkında daha fazla bilgi edinebilirsiniz.
GET https://graph.microsoft.com/v1.0/users
Permissions: User.ReadBasic.All (delegated)
Response: response.body.value[1].displayName; // ”Megan Bowen”
response.body.value[1].id; // "e8b753b5-4117-464e-9a08-713e1ff266b3"
Contoso'nun istemci uygulaması daha sonra kullanıcıların listesini ve belirli bir kullanıcıya çağrı başlatabilme özelliğini gösterir.
- Megan'a çağrı başlatma: Alice, Contoso'nun İstemci uygulamasında Megan'a Teams VoIP çağrısı başlatmak için bir düğme seçer. İstemci uygulaması, çağırma özelliğini sağlamak için Azure İletişim Hizmetleri çağırma SDK'sını kullanır. Teams İstemcilerindeki aramalar Teams sohbetiyle ilişkilendirilir. İlk olarak, uygulama VoIP çağrısı için ayrılmış bir sohbet oluşturulmasını ister.
POST https://graph.microsoft.com/v1.0/chats
Body:
{
"chatType": "oneOnOne",
"members": [
{
"@odata.type": "#microsoft.graph.aadUserConversationMember",
"roles": [
"owner"
],
"user@odata.bind": "https://graph.microsoft.com/v1.0/users('8c0a1a67-50ce-4114-bb6c-da9c5dbcf6ca')"
},
{
"@odata.type": "#microsoft.graph.aadUserConversationMember",
"roles": [
"owner"
],
"user@odata.bind": "https://graph.microsoft.com/v1.0/users('e8b753b5-4117-464e-9a08-713e1ff266b3')"
}
]
}
Permissions: Chat.Create (delegated)
Response: response.body.value.id; // "19:8c0a1a67-50ce-4114-bb6c-da9c5dbcf6ca_e8b753b5-4117-464e-9a08-713e1ff266b3@unq.gbl.spaces"
Ardından istemci uygulaması, ilk adım sırasında alınan Azure İletişim Hizmetleri erişim belirtecini tutan bir callAgent örneği oluşturur.
const callClient = new CallClient();
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)
Ardından Megan'ın Teams kimliğine bir arama başlatırsınız.
var teamsUser = { microsoftTeamsUserId: 'e8b753b5-4117-464e-9a08-713e1ff266b3'};
const oneToOneCall = callAgent.startCall([teamsUser], { threadId: '19:8c0a1a67-50ce-4114-bb6c-da9c5dbcf6ca_e8b753b5-4117-464e-9a08-713e1ff266b3@unq.gbl.spaces' });
- Megan'a VoIP çağrısı Bağlan: Arama Teams aracılığıyla yönlendirilir ve Megan ile ilişkili Teams istemcilerini çaldırılır. Megan, Alice'ten Microsoft Entra Kimliği'nde tanımlanan ada sahip gelen bir çağrı görür.
- Megans aramayı kabul eder: Megan aramayı kabul eder ve Alice ile Megan arasındaki bağlantı kurulur.
Kullanım örneği 4: Gelen Teams VoIP araması alma
Bu senaryo, Contoso şirketinin Fabrikam şirketine SaaS sağladığı çok kiracılı bir kullanım örneğini gösteriyor. SaaS, Fabrikam kullanıcılarının Teams kullanıcısının kimliğini alan ve Teams kullanıcısına uygulanan yönlendirme ilkelerini uygulayan özel bir web sitesi aracılığıyla Teams VoIP çağrısı almasına olanak tanır.
Aşağıdaki sıralı diyagramda, gelen Teams VoIP çağrılarını kabul etmek için ayrıntılı adımlar gösterilmektedir:
Adımlar
- Contoso'nun istemci uygulamasında Fabrikam'dan Alice'in kimliğini doğrulama: Alice, Fabrikam'ın web sayfasını açmak için bir tarayıcı kullanıyor ve kimlik doğrulaması yapar. Teams kimliğiyle kimlik doğrulaması hakkında daha fazla ayrıntı bulabilirsiniz. Kimlik doğrulaması başarılı olursa, Alice ilk sayfaya yönlendirilir.
- Çağrıları almak için abone olun: İstemci uygulaması, çağırma özelliğini sağlamak için Azure İletişim Hizmetleri çağırma SDK'sını kullanır. İlk olarak, ilk adım sırasında alınan Azure İletişim Hizmetleri erişim belirtecini tutan bir callAgent örneği oluşturur.
const callClient = new CallClient();
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)
Ardından uygulama gelen çağrı olayına abone olur.
const incomingCallHandler = async (args: { teamsIncomingCall: TeamsIncomingCall }) => {
const incomingCall = args.teamsIncomingCall;
// Get information about caller
var callerInfo = incomingCall.callerInfo
showIncomingCall(callerInfo,incomingCall);
};
callAgent.on('incomingCall', incomingCallHandler);
showIncomingCall yöntemi, gelen çağrıları belirtmek için kullanıcı arabirimini ve çağrıyı kabul edip reddetmek için iki düğmeyi işleyecek özel bir Contoso yöntemidir. Kabul et düğmesini seçerseniz aşağıdaki kod kullanılır:
// Accept the call
var call = await incomingCall.accept();
Reddet düğmesini seçerseniz aşağıdaki kod kullanılır:
// Reject the call
incomingCall.reject();
- Megan, Teams kullanıcısı Alice'e bir VoIP çağrısı başlatır: Megan, Alice'i aramak için Teams masaüstü istemcisini kullanır. Teams altyapısı Alice ile ilişkili tüm uç noktaları çaldıracaktır. Şunları içerir: Azure İletişim Hizmetleri çağrı SDK'sını temel alan Teams masaüstü, mobil, web istemcileri ve uygulamalar.
- Contoso'nun istemci uygulaması Megan'ın gelen çağrısını gösterir: İstemci uygulaması gelen arama bildirimini alır. showIncomingCall yöntemi, Teams kullanıcı kimliğini görünen ada çevirmek için Graph API'sini kullanır.
GET https://graph.microsoft.com/v1.0/users/e8b753b5-4117-464e-9a08-713e1ff266b3
Permissions: User.Read (delegated)
Response: response.body.value.displayName; // ”Megan Bowen”
response.body.value.id; // "e8b753b5-4117-464e-9a08-713e1ff266b3"
Bilgiler alındığında, bildirim Contoso'nun istemci uygulamasında Alice'e gösterilir.
- Alice aramayı kabul eder: Alice aramayı kabul etmek için bir düğme seçer ve Alice ile Megan arasındaki bağlantı kurulur.
Kullanım örneği 5: Teams toplantısına katılma
Bu senaryo, Contoso şirketinin Fabrikam şirketine SaaS sağladığı çok kiracılı bir kullanım örneğini gösteriyor. SaaS, Fabrikam kullanıcılarının Teams kullanıcısının kimliğini alan özel bir web sitesi aracılığıyla Teams toplantılarına katılmasını sağlar.
Aşağıdaki sıralı diyagramda Teams toplantısına katılmayla ilgili ayrıntılı adımlar gösterilmektedir:
Adımlar
- Contoso'nun istemci uygulamasında Fabrikam'dan Alice'in kimliğini doğrulama: Alice, Fabrikam'ın web sayfasını açmak için bir tarayıcı kullanıyor ve kimlik doğrulaması yapar. Teams kimliğiyle kimlik doğrulaması hakkında daha fazla ayrıntı bulabilirsiniz. Kimlik doğrulaması başarılı olursa, Alice ilk sayfaya yönlendirilir.
- Teams toplantılarını ve bunların tanımlayıcılarını yükleme: Contoso istemci uygulaması, Fabrikam kullanıcılarının Teams toplantılarının listesini almak için Graph API'sini kullanır. Alice'in veya Yönetici bu eylemi gerçekleştirmek için Graph API'sine onay vermesi gerekir. Belgelerde Graph API komutu hakkında daha fazla bilgi edinebilirsiniz.
GET https://graph.microsoft.com/v1.0/me/calendar/calendarView?startDateTime={start_datetime}&endDateTime={end_datetime}
Permissions: Calendars.Read (delegated)
Response: response.body.value[0].subject; // ”Project Tailspin”
response.body.value[0].onlineMeeting.joinUrl; // "https://teams.microsoft.com/l/meetup-join/..."
response.body.value[0].start.dateTime;
response.body.value[0].end.dateTime;
response.body.value[0].location.displayName;
Contoso'nun istemci uygulaması daha sonra Teams toplantılarının listesini ve bunlara katılma özelliğini gösterir.
- Teams toplantısına katılma "Project Tailspin": Alice, Contoso'nun İstemci uygulamasındaki "Project Tailspin" Teams toplantısına katılmak için bir düğme seçer. İstemci uygulaması, çağırma özelliğini sağlamak için Azure İletişim Hizmetleri çağırma SDK'sını kullanır. İstemci uygulamaları, ilk adım sırasında alınan Azure İletişim Hizmetleri erişim belirtecini tutan bir callAgent örneği oluşturur.
const callClient = new CallClient();
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)
Ardından uygulama, alınan joinUrl aracılığıyla bir toplantıya katılır.
var meetingLocator = new TeamsMeetingLinkLocator("https://teams.microsoft.com/l/meetup-join/...");
callAgent.startCallJoinAsync(meetingLocator , new JoinCallOptions());
Alice daha sonra Teams toplantısına katılır.
- Teams toplantısına katılan diğer katılımcılar: Sağlanan deneyim standart bir Teams toplantısıdır. Yapılandırmaya ve davetlere bağlı olarak Teams toplantısına Teams kullanıcısı, Teams web istemcisi kullanan Teams anonim kullanıcısı, Teams masaüstü istemcisi, Teams mobil istemcisi, Azure İletişim Hizmetleri İletişim Hizmetleri çağrı SDK'sını temel alan uygulamalar aracılığıyla kullanıcı veya telefon kullanan kullanıcılar eklenebilir.
Sonraki adımlar
Aşağıdaki makaleler ilginizi çekebilir:
- Kimlik doğrulaması hakkında daha fazla bilgi edinin.
- Teams kullanıcılarının kimlik doğrulaması için hızlı başlangıcı deneyin.
- Teams kullanıcısına çağrı yapmak için hızlı başlangıcı deneyin.