Skip to main content
← Back to Schedule

WebRTC with Django, Channels, HTMX, and coturn

to View on time.is

Junior Ballroom

Video Video

About this session

Audio/Video conferencing has become standard in many areas for augmenting communications among individuals. Modern browsers facilitate this by including support for Web Real Time Communications (WebRTC).

WebRTC itself is a point-to-point protocol, which means that two browsers using this for a video call are talking directly to each other. But, before that can happen, the those browsers need to know that each other exists and are looking to establish this connection. Then they need to negotiate the parameters for the connection.

Then there are many network-related issues that can affect the ability for those two browsers to connect. Things like firewalls and Network Address Translation (NAT) can affect how each side "sees" the other side, further complicating the situation.

All these issues have known solutions. The WebRTC APIs have matured to the point where they can be considered reasonably stable and reliable. It has become practical to incorporate these solutions in a Django-based website.

This session will discuss one implementation of a Django-based website that facilitates a group video conferencing system, using Channels as the signalling mechanism, HTMX for page-content management, and coturn as the NAT transveral and and gateway server.

Presented by

  • Ken Whitesell

    Ken Whitesell

    I am a software developer with more than 40 years of professional experience across more platforms, languages and operating systems than I care to count.

    Currently, I'm a member of the Baltimore-based Digital Services group within WSP, working in the Traffic Engineering field on projects involving Connected Vehicles and Smart Infrastructure / Smart Intersection projects. Django is our "go-to" tool for building configuration and testing suites for systems being embedded within traffic intersections.

    Additionally, I am a moderator on the Django Forum web site, and I try to answer questions there as well.

    When you aren't seeing me working with Django or on the forum, you'll likely find me at a table playing board games.