SlideShare a Scribd company logo
1 of 46
初探 Azure Communication Service
讓 App 也有視訊、通話、即時聊天、簡訊和電話功能
Alan Tsai
簡單自我介紹
• Alan Tsai
• 威煦軟體 CTO
• 後端工程師
• .NET 技術爲主
• 喜歡學習不同東西
• Azure
• Data Science、Chatbot
• DevOps、Container
• 架構、加强開發的 Tools
• 翻譯文章/軟體
• 看小說
教就是最好的學習方式 - 喜歡考證驗證所學
喜歡技術分享
• 2020 .NET Conf
• 不會 Javascript 沒關係,用 Blazor 來解決前端需求
成為 Full Stack .NET 開發者吧
• 2020 Global Azure
• Azure API Management
協助邁向Open API及Micro Service架構的好用服務
• 2020 Microsoft Online Tech Forum
• Keep Azure cost down
• 2019 Microsoft Insider DevTour Taipei
• Future proof your desktop apps with .NET core
喜歡技術分享
• Trainocate
• AZ-104、AZ-204、AZ-400、AZ-500、SC-900、DP-200、DP-201、PL-900、DA-100
• 台灣智慧自動化與機器人協會
• 運用Python進行大數據分析
• 機器學習基礎理論課程及人工智慧 – ML.NET
• 中華電信學院
• Windows Container 技術實務班
• DevOps與CI/CD實務研習班
• 使用Azure AI打造有人工智能的Line聊天機器人
• 聖森内部教育訓練
• Azure DevOps CI/CD 應用
歡迎訂閲、按贊 + 分享
• Alan Tsai 的學習筆記
• https://blog.alantsai.net
• FB粉絲頁
• http://fb.alantsai.net
• Youtube
• http://yt.alantsai.net
contact@alantsai.net
Chat 已經是很常用的線上客服
如果文字溝通不了怎麼辦?
如果可以直接通話或者 Share 畫面就好了
This Photo by Unknown Author is licensed under CC BY-SA
Agenda
• Azure Communication Service (ACS) 是什麼?
• 結構
• Production Ready
• 結語
ACS 是什麼?
ACS 是什麼?
• 把「通訊」整合到應用程式的服務
• Video 和 Voice Calling
• Chat
• Phone(美國、英國)
• SMS
• 可以接入 PSTN – 自己的電話
• Microsoft Teams 的背後服務開放出來
Video 和 Voice Calling
• Voice Over IP (VoIP)
• 1 對 1 通話
• 多方通話
• Public switched telephone network (PSTN)
• 錄影功能 - preview
• Video
• H.264 (MPEG-4)
• iOS, Android SDKs Full HD 1080p
• JS SDK HD 720p
Chat
• 使用情景
• 1 對 1 聊天
• 群組聊天
• ChatThread
• 1個或多個 使用者
• 使用者
• 可以在 1個或者多個 ChatThread
https://docs.microsoft.com/en-us/azure/communication-services/concepts/chat/concepts?WT.mc_id=AZ-MVP-5003856
Chat
https://docs.microsoft.com/en-us/azure/communication-services/concepts/chat/concepts?WT.mc_id=AZ-MVP-5003856
Phone
https://docs.microsoft.com/en-us/azure/communication-services/concepts/telephony/telephony-concept?WT.mc_id=AZ-MVP-5003856
SMS
• 可以從 Azure 購買電話號碼(美國、英國)
• 可以寄送簡訊
• 可以收簡訊
結構
SDK
https://docs.microsoft.com/en-us/azure/communication-services/concepts/sdk-options?WT.mc_id=AZ-MVP-5003856#sdks
SDK
https://docs.microsoft.com/en-us/azure/communication-services/concepts/sdk-options?WT.mc_id=AZ-MVP-5003856#sdks
Demo
建立服務
Presenter
Authentication
https://docs.microsoft.com/en-us/azure/communication-services/concepts/authentication?WT.mc_id=AZ-MVP-5003856
Identity
• ACS 有個 Identity 儲存空間
• 可以無限建立 – 沒有費用
• 每一個 Identity 有
• Id
• Access Token
• 24 小時到期
• 可以設定 Scope
• 可以自己對應關聯:1:1, 1:N, N:1, N:M
Identity 管理
https://docs.microsoft.com/en-us/azure/communication-services/concepts/client-and-server-architecture?WT.mc_id=AZ-MVP-5003856
Demo
voice
Presenter
基本 1 on 1
https://docs.microsoft.com/en-us/azure/communication-services/concepts/client-and-server-architecture?WT.mc_id=AZ-MVP-5003856#calling-a-user-without-push-notifications
Demo
video
Presenter
Demo
Teams
Presenter
Teams Call
https://docs.microsoft.com/en-us/azure/communication-services/concepts/client-and-server-architecture?WT.mc_id=AZ-MVP-5003856#joining-a-scheduled-teams-call
應用情景
https://docs.microsoft.com/en-us/azure/communication-services/concepts/teams-interop?WT.mc_id=AZ-MVP-5003856
Production Ready
Group Chat
https://docs.microsoft.com/en-us/azure/communication-services/samples/chat-hero-sample?WT.mc_id=AZ-MVP-5003856
https://to.alantsai.net/demo-chat
Group Calling
https://docs.microsoft.com/en-us/azure/communication-services/samples/calling-hero-sample?pivots=platform-web&WT.mc_id=AZ-MVP-5003856
Group Calling
https://docs.microsoft.com/en-us/azure/communication-services/samples/calling-hero-sample?pivots=platform-web&WT.mc_id=AZ-MVP-5003856
https://to.alantsai.net/demo-group
Contoso Med App
https://github.com/Azure-Samples/communication-services-contoso-med-app
Retail App
https://github.com/Azure-Samples/communication-services-contoso-retail-app
UI Library - Web
https://azure.github.io/communication-ui-library/?path=/docs/overview--page&WT.mc_id=AZ-MVP-5003856
UI Library – android & ios
https://docs.microsoft.com/en-us/azure/communication-services/quickstarts/ui-library/get-started-composites?tabs=kotlin&pivots=platform-ios&WT.mc_id=AZ-MVP-5003856
結語
結語
• PaaS 的 Communication 服務
• 要打造 Teams 到各自應用程式不困難
• 重點是串聯提供更好的服務給使用者
等等,啊費用呢~~~
https://docs.microsoft.com/en-us/azure/communication-services/concepts/pricing?WT.mc_id=AZ-MVP-5003856
參考資料
• Overview
• Demo Code
工商一下
Thanks for joining!
Azure Taiwan
User Group

More Related Content

Similar to 2021 Net Conf Taiwan-初探 Azure Communication Service 讓 App 也有視訊、通話、即時聊天、簡訊和電話功能

从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1
天青 王
 

Similar to 2021 Net Conf Taiwan-初探 Azure Communication Service 讓 App 也有視訊、通話、即時聊天、簡訊和電話功能 (20)

從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
 
聊天機器人概論 Introduce to chat bot sevices
聊天機器人概論 Introduce to chat bot sevices聊天機器人概論 Introduce to chat bot sevices
聊天機器人概論 Introduce to chat bot sevices
 
Azure Taiwan - Keep azure cost down (Azure 成本管控)
Azure Taiwan - Keep azure cost down (Azure 成本管控)Azure Taiwan - Keep azure cost down (Azure 成本管控)
Azure Taiwan - Keep azure cost down (Azure 成本管控)
 
SITCON 2019 - 誰說工程師一定爆肝!一起走入雲端世界吧
SITCON 2019 - 誰說工程師一定爆肝!一起走入雲端世界吧SITCON 2019 - 誰說工程師一定爆肝!一起走入雲端世界吧
SITCON 2019 - 誰說工程師一定爆肝!一起走入雲端世界吧
 
玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手
 
2016 Azurebootcamp 中國Azure 使用經驗
2016 Azurebootcamp 中國Azure 使用經驗2016 Azurebootcamp 中國Azure 使用經驗
2016 Azurebootcamp 中國Azure 使用經驗
 
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设
 
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
 
應用 Azure Platform-as-a-Service & DevOps 打造彈性企業服務
應用 Azure Platform-as-a-Service & DevOps 打造彈性企業服務應用 Azure Platform-as-a-Service & DevOps 打造彈性企業服務
應用 Azure Platform-as-a-Service & DevOps 打造彈性企業服務
 
Developing Serverless application with Microsoft Azure and Cognitive Services
Developing Serverless application with Microsoft Azure and Cognitive ServicesDeveloping Serverless application with Microsoft Azure and Cognitive Services
Developing Serverless application with Microsoft Azure and Cognitive Services
 
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
 
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)
 
AWS_Educate_Ambassador_Day_TAIWAN_Track_B - Build a Telegram Chatbot using AW...
AWS_Educate_Ambassador_Day_TAIWAN_Track_B - Build a Telegram Chatbot using AW...AWS_Educate_Ambassador_Day_TAIWAN_Track_B - Build a Telegram Chatbot using AW...
AWS_Educate_Ambassador_Day_TAIWAN_Track_B - Build a Telegram Chatbot using AW...
 
Introduction to MLOps in Azure Machine Learning with Live Demo
Introduction to MLOps in Azure Machine Learning with Live DemoIntroduction to MLOps in Azure Machine Learning with Live Demo
Introduction to MLOps in Azure Machine Learning with Live Demo
 
認識程式交易
認識程式交易認識程式交易
認識程式交易
 
如何使用微軟Power系列服務的看法
如何使用微軟Power系列服務的看法如何使用微軟Power系列服務的看法
如何使用微軟Power系列服務的看法
 
Global Azure Bootcamp 2015 at Study4
Global Azure Bootcamp 2015 at Study4Global Azure Bootcamp 2015 at Study4
Global Azure Bootcamp 2015 at Study4
 
从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1
 
2018 beijing azure bootcamp-azure migration - 2018 北京 azure bootcamp azure 搬遷...
2018 beijing azure bootcamp-azure migration - 2018 北京 azure bootcamp azure 搬遷...2018 beijing azure bootcamp-azure migration - 2018 北京 azure bootcamp azure 搬遷...
2018 beijing azure bootcamp-azure migration - 2018 北京 azure bootcamp azure 搬遷...
 
ASP.NET Core 3.0 新功能
ASP.NET Core 3.0 新功能ASP.NET Core 3.0 新功能
ASP.NET Core 3.0 新功能
 

More from Alan Tsai

2018 .NET Conf - 利用Machine Learning .NET整合機器學習至應用程式
2018 .NET Conf - 利用Machine Learning .NET整合機器學習至應用程式2018 .NET Conf - 利用Machine Learning .NET整合機器學習至應用程式
2018 .NET Conf - 利用Machine Learning .NET整合機器學習至應用程式
Alan Tsai
 

More from Alan Tsai (20)

Microsoft Learn AI 挑戰賽-實戰三 MLOps | Alan Tsai
Microsoft Learn AI 挑戰賽-實戰三 MLOps | Alan TsaiMicrosoft Learn AI 挑戰賽-實戰三 MLOps | Alan Tsai
Microsoft Learn AI 挑戰賽-實戰三 MLOps | Alan Tsai
 
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
 
我和阿九(Azure)有約 17 Azure Sql Database 基本介紹
我和阿九(Azure)有約 17 Azure Sql Database 基本介紹我和阿九(Azure)有約 17 Azure Sql Database 基本介紹
我和阿九(Azure)有約 17 Azure Sql Database 基本介紹
 
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
 
我和阿九Azure有約 39 Azure Blob Storage 如何省錢? 設定 Access Tier 以及透過 Lifecycle Managem...
我和阿九Azure有約 39 Azure Blob Storage 如何省錢?設定 Access Tier 以及透過 Lifecycle Managem...我和阿九Azure有約 39 Azure Blob Storage 如何省錢?設定 Access Tier 以及透過 Lifecycle Managem...
我和阿九Azure有約 39 Azure Blob Storage 如何省錢? 設定 Access Tier 以及透過 Lifecycle Managem...
 
我和阿九Azure有約 38 Azure Blob Storage 如何省錢? 搞懂Access Tier (Alan Tsai 的學習筆記)
我和阿九Azure有約 38 Azure Blob Storage 如何省錢?搞懂Access Tier (Alan Tsai 的學習筆記)我和阿九Azure有約 38 Azure Blob Storage 如何省錢?搞懂Access Tier (Alan Tsai 的學習筆記)
我和阿九Azure有約 38 Azure Blob Storage 如何省錢? 搞懂Access Tier (Alan Tsai 的學習筆記)
 
我和阿九Azure有約 37 Azure Blob Storage 如何檔案異動自動記錄建立檔案版本?Version Preview (Alan Tsai...
我和阿九Azure有約 37 Azure Blob Storage 如何檔案異動自動記錄建立檔案版本?Version Preview (Alan Tsai...我和阿九Azure有約 37 Azure Blob Storage 如何檔案異動自動記錄建立檔案版本?Version Preview (Alan Tsai...
我和阿九Azure有約 37 Azure Blob Storage 如何檔案異動自動記錄建立檔案版本?Version Preview (Alan Tsai...
 
我和阿九Azure有約 36 Azure Blob Storage 如何開啟snapshot保留目前狀態 (Alan Tsai的學習筆記)
我和阿九Azure有約 36 Azure Blob Storage 如何開啟snapshot保留目前狀態 (Alan Tsai的學習筆記)我和阿九Azure有約 36 Azure Blob Storage 如何開啟snapshot保留目前狀態 (Alan Tsai的學習筆記)
我和阿九Azure有約 36 Azure Blob Storage 如何開啟snapshot保留目前狀態 (Alan Tsai的學習筆記)
 
我和阿九Azure有約 35 Azure Blob Storage 如何開啟 Soft Delete?避免誤刪檔案 (Alan Tsai的學習筆記)
我和阿九Azure有約 35 Azure Blob Storage 如何開啟 Soft Delete?避免誤刪檔案 (Alan Tsai的學習筆記)我和阿九Azure有約 35 Azure Blob Storage 如何開啟 Soft Delete?避免誤刪檔案 (Alan Tsai的學習筆記)
我和阿九Azure有約 35 Azure Blob Storage 如何開啟 Soft Delete?避免誤刪檔案 (Alan Tsai的學習筆記)
 
我和阿九Azure有約 34 Azure File Storage 什麼時候適合用Azure File? File vs Disk Storage (Al...
我和阿九Azure有約 34 Azure File Storage 什麼時候適合用Azure File? File vs Disk Storage (Al...我和阿九Azure有約 34 Azure File Storage 什麼時候適合用Azure File? File vs Disk Storage (Al...
我和阿九Azure有約 34 Azure File Storage 什麼時候適合用Azure File? File vs Disk Storage (Al...
 
我和阿九Azure有約 33 Azure File Storage 什麼時候適合用Azure File? File vs Blob (Alan Tsai的...
我和阿九Azure有約 33 Azure File Storage 什麼時候適合用Azure File? File vs Blob (Alan Tsai的...我和阿九Azure有約 33 Azure File Storage 什麼時候適合用Azure File? File vs Blob (Alan Tsai的...
我和阿九Azure有約 33 Azure File Storage 什麼時候適合用Azure File? File vs Blob (Alan Tsai的...
 
我和阿九Azure有約 32 Azure File Storage 介紹 (Alan Tsai的學習筆記)
我和阿九Azure有約 32 Azure File Storage 介紹 (Alan Tsai的學習筆記)我和阿九Azure有約 32 Azure File Storage 介紹 (Alan Tsai的學習筆記)
我和阿九Azure有約 32 Azure File Storage 介紹 (Alan Tsai的學習筆記)
 
我和阿九(Azure)有約 31 Azure Blob Storage 使用azcopy進行自動化作業 (Alan Tsai 的學習筆記)
我和阿九(Azure)有約 31 Azure Blob Storage 使用azcopy進行自動化作業 (Alan Tsai 的學習筆記)我和阿九(Azure)有約 31 Azure Blob Storage 使用azcopy進行自動化作業 (Alan Tsai 的學習筆記)
我和阿九(Azure)有約 31 Azure Blob Storage 使用azcopy進行自動化作業 (Alan Tsai 的學習筆記)
 
20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務
20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務
20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務
 
Insider Dev Tour Taipei 2019 - Future proof your desktop apps with .net core
Insider Dev Tour Taipei 2019 - Future proof your desktop apps with .net coreInsider Dev Tour Taipei 2019 - Future proof your desktop apps with .net core
Insider Dev Tour Taipei 2019 - Future proof your desktop apps with .net core
 
2018 .NET Conf - 利用Machine Learning .NET整合機器學習至應用程式
2018 .NET Conf - 利用Machine Learning .NET整合機器學習至應用程式2018 .NET Conf - 利用Machine Learning .NET整合機器學習至應用程式
2018 .NET Conf - 利用Machine Learning .NET整合機器學習至應用程式
 
用Octopus deploy做自動部署 - 快速上手
用Octopus deploy做自動部署 - 快速上手用Octopus deploy做自動部署 - 快速上手
用Octopus deploy做自動部署 - 快速上手
 
.Net core 與 .net standard 實戰教學 開發指南
.Net core 與 .net standard 實戰教學   開發指南.Net core 與 .net standard 實戰教學   開發指南
.Net core 與 .net standard 實戰教學 開發指南
 
電子內容管理 使用Git 與 github 2
電子內容管理   使用Git 與 github 2電子內容管理   使用Git 與 github 2
電子內容管理 使用Git 與 github 2
 
電子內容管理 使用Git 與 github 1
電子內容管理   使用Git 與 github 1電子內容管理   使用Git 與 github 1
電子內容管理 使用Git 與 github 1
 

2021 Net Conf Taiwan-初探 Azure Communication Service 讓 App 也有視訊、通話、即時聊天、簡訊和電話功能

Editor's Notes

  1. When you establish a peer-to-peer or group call, two protocols are used behind the scenes - HTTP (REST) for signaling and SRTP for media. Signaling between the SDKs or between SDKs and Communication Services Signaling Controllers is handled with HTTP REST (TLS). For Real-Time Media Traffic (RTP), the User Datagram Protocol (UDP) is preferred. If the use of UDP is prevented by your firewall, the SDK will use the Transmission Control Protocol (TCP) for media. Case 1: VoIP where a direct connection between two devices is possible Case 2: VoIP where a direct connection between devices is not possible, but where connection between NAT devices is possible Case 3: VoIP where neither a direct nor NAT connection is possible
  2. Voice Over IP (VoIP) When a user of your application calls another user of your application over an internet or data connection, the call is made over Voice Over IP (VoIP). In this case, both signaling and media flow over the internet. Public switched telephone network (PSTN) Any time your users interact with a traditional telephone number, calls are facilitated by PSTN (Public Switched Telephone Network) voice calling. To make and receive PSTN calls, you need to add telephony capabilities to your Azure Communication Services resource. In this case, signaling and media use a combination of IP-based and PSTN-based technologies to connect your users. One-to-one call A one-to-one call on Azure Communication Services happens when one of your users connects to another user using one of our SDKs. The call can be either VoIP or PSTN. Group call A group call on Azure Communication Services happens when three or more participants connect to one another. Any combination of VoIP and PSTN-connected users can be present on a group call. A one-to-one call can be converted into a group call by adding more participants to the call. One of those participants can be a bot. Supported video standards We support H.264 (MPEG-4). Video quality We support up to Full HD 1080p on the native (iOS, Android) SDKs. For Web (JS) SDK we support Standard HD 720p. The quality depends on the available bandwidth.
  3. Dataflows The user starts the client application. The design of this application and user authentication scheme is in your control. The client application contacts your identity management service. The identity management service maintains a mapping between your users and other addressable objects (for example services or bots) to Azure Communication Service identities. The identity management service creates a user access token for the applicable identity. If no Azure Communication Services identity has been allocated the past, a new identity is created.
  4. Dataflows The accepting user initializes the Call client, allowing them to receive incoming phone calls. The initiating user needs the Azure Communication Services identity of the person they want to call. A typical experience may have a friend's list maintained by the identity management service that collates the user's friends and associated Azure Communication Service identities. The initiating user initializes their Call client and calls the remote user. The accepting user is notified of the incoming call through the Calling SDK. The users communicate with each other using voice and video in a call.
  5. Dataflows The Call Management Service creates a group call with Graph APIs. Another pattern involves end users creating the group call using Bookings, Outlook, Teams, or another scheduling experience in the Microsoft 365 ecosystem. The Call Management Service shares the Teams call details with Azure Communication Service clients. Typically, a Teams user must join the call and allow external users to join through the lobby. However this experience is sensitive to the Teams tenant configuration and specific meeting settings. Azure Communication Service users initialize their Call client and join the Teams meeting, using the details received in Step 2. The users communicate with each other using voice and video in a call.
  6. General features User authentication. View doctors and book appointments. Chat with QnA bot to book appointment or start a support consultation.