SOLVED

I want to make a Blazor application that can make video calls

Brass Contributor

I want to make a Blazor application that can make video calls.

 

However, according to this page: SDKs and REST APIs for Azure Communication Services - An Azure Communication Services concept docume... Azure.Communication.Calling uses "Proprietary transport" and the only example code is the "Azure Communication Calling client library for JavaScript"

28 Replies

We built this awesome tutorial to guide you step by step:

https://github.com/Azure-Samples/communication-services-web-calling-hero

@ADefWebserver Our video calling for web SDK is only supported as a Javascript library at this time. You can still write your application in Blazor, but use the JSInterop support in Blazor for situations where you need to call, or move data, between Blazor and JS code.

 

There's more info here: https://docs.microsoft.com/en-us/aspnet/core/blazor/call-javascript-from-dotnet?view=aspnetcore-5.0 

@jorhiro7 , @shawnhenry - I am prepared to make JavaScript calls from Blazor (like I do in this article: Blazor Power BI Paginated Reports) however, I am unable to find the JavaScript methods I would call when looking at this example (Azure-Samples/communication-services-web-calling-hero: Hero sample to showcase web calling capabilit...)? 

 

Thank You!

best response confirmed by ADefWebserver (Brass Contributor)
Solution

@ADefWebserver The Hero sample might be overkill to follow, it might be easier to look at the quickstart here: https://docs.microsoft.com/en-us/azure/communication-services/quickstarts/voice-video-calling/get-st... 

 

You'll need to interop to:

  • Create the CallClient and CallAgent
  • Init the DeviceManager
  • Call callAgent.startCall()
  • Respond to any event on the all (participant, or stream added)
Yes, that provides me what I need to get started. Thank You
I'd love to see a blog post when you get it working ;)
This is awesome! Thanks for sharing!
@shawnhenry That is the BIG advantage / attraction / promise of Blazor - C# in the browser; no JS. When will the video calling for web SDK be available as a non-Javascript library?
@ADefWebserver awesome! Thanks for your hard work.
Thanks. I also want a SDK that does not require node js. The JavaScript is not a problem. The PowerBI SDK does require a .js file to work with Blazor. However, node js is difficult to configure and maintain form many developers.

Thanks for the feedback @ADefWebserver and @WaltDog! Blazor support (among other bindings/frameworks) are on our radar, but we don't have timeline for these at this point in time. Your feedback is helpful for us to gauge interest, and we will keep our roadmap updated so you can track new and upcoming features. Thank you again for your feedback!

Seriously!

That is so disappointing.

I would’ve thought that would’ve been at the top of your list. Providing an SDK that makes it easy for a C# developer to use an excellent technology like Azure Communication Services. A no-brainer if you ask me.

It’s also a direction that seems to conflict with Microsoft’s Blazor Wasm drive to encourage developers to use C# in the browser and not Javascript - which I am fully in favour off (I’ve wasted too much of my life wrangling with Javascript).

It begs the question: does Microsoft really have a clear strategic direction in the application development area?

 

@shawnhenry 

@WaltDog I think they will definitely provide what we are looking for in the future. For example, Blazor will have the DynamiCComponent (https://www.daveabrock.com/2021/04/08/blazor-dynamic-component/) that would be perfect for the UI, but that is still in Beta at this point. I think we just need to be patient :)

I admire your patience.

When I look at the Azure Communication Services sample apps I see a lot of React/Redux client apps.

Do Microsoft really believe in C#

I know that I do.

 

@manoskow-msft 

@shawnhenry 

@WaltDog I spent over 40 hours getting the Blazor sample working, so yeah I guess I do :grimacing_face::rolling_on_the_floor_laughing: React/Node.js is a bigger market. Also they know no one wants to do the "NPM in Blazor" stuff I did so I'm not surprised that they don't want to spend (waste) their time on pushing out demos using it. But, with Teams they did deliver: https://docs.microsoft.com/en-us/microsoftteams/platform/get-started/first-app-blazor

I admire your hard work, but you shouldn’t have had to spend that amount of time.

It’s cruel and unreasonable for Microsoft to expect someone to use JSInterop.

 

JSInterop is not the answer it’s a cop-out.

Again it’s Microsoft demonstrating they don’t care about their C# developer community.

Let’s get real, Microsoft, or let’s not play at all.

 

Support for Blazor isn’t even on their radar. How embarrassing is that!

 

@manoskow-msft 

@shawnhenry 

@Walter Lockhart@ADefWebserver 

 

Thank you for the discussion and feedback! I've added this to our feature backlog and linked this post for additional reference. 

 

Unfortunately, I don't have any great answers for you at the moment. We are always looking for ways to invest in making our developers' lives easier, and it's super helpful to hear your perspective. 

1 best response

Accepted Solutions
best response confirmed by ADefWebserver (Brass Contributor)
Solution

@ADefWebserver The Hero sample might be overkill to follow, it might be easier to look at the quickstart here: https://docs.microsoft.com/en-us/azure/communication-services/quickstarts/voice-video-calling/get-st... 

 

You'll need to interop to:

  • Create the CallClient and CallAgent
  • Init the DeviceManager
  • Call callAgent.startCall()
  • Respond to any event on the all (participant, or stream added)

View solution in original post