Skip to content

Echobot: Migrating a Teams Calling Bot from VMSS to a lower-cost, modern architecture? #869

Description

@jamil-z

Hi everyone,

Some time ago, I implemented a Microsoft Teams bot that joins meetings and captures real-time raw audio streams from the participants' microphones. I used the architecture from the official microsoft-graph-comms-samples (EchoBot approach) as my reference.

The system has been running in production for a while and works perfectly, but the infrastructure is becoming incredibly expensive and hard to maintain. As you know, this approach relies heavily on Azure Virtual Machine Scale Sets (VMSS) and full Windows Server environments running 24/7 just to handle the native media platform binaries.

I’m looking to modernize this stack and drastically cut down our Azure bill. I wanted to ask if anyone has successfully migrated away from VMSS for this specific production use case:

Windows Containers (AKS/ACI): Has anyone successfully moved an Application-Hosted Media Bot into Windows-based Docker containers using Azure Kubernetes Service (AKS) or Azure Container Instances (ACI)? Does it actually help reduce costs and scale better than VMSS?

Serverless / Service-Hosted: Is there any trick to get continuous raw audio streaming using Service-Hosted Media (serverless), or are we still strictly limited to just playing prompts and recording files?

Alternative architectures: If you have optimized a real-time Teams media streaming bot for production, what architecture or hosting strategy did you use to keep costs under control?

Could you please point me in the right direction regarding which specific tools or services I should use for this migration? Any links to official documentation, articles, or reference architectures would be highly appreciated.

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions