DEV Community

Sagar Joshi
Sagar Joshi

Posted on

The Missing Protocol: How BFCP Unlocked Dual-Monitor Conferencing for Enterprise Room Systems

Enterprise room systems like Polycom and Lifesize support dual monitors — one for video, one for screen share. But when they joined a web conference through a SIP gateway, both monitors showed the same combined feed.

The hardware was capable. OpalVoIP had no BFCP support. So screen share got injected into the video feed.

I added BFCP to OpalVoIP from scratch in 2018 — integrating libbfcp via a C++ wrapper, extending SDP offer/answer processing, and handling a dual-role design where the gateway acts as BFCP client on outbound calls and BFCP server on inbound calls.

The full write-up covers:

  • The SDP negotiation details (with before/after examples)
  • The dual-role client/server architecture
  • Why pre-negotiation beats mid-call renegotiation
  • How WebRTC handles this differently today — and why SIP gateways still need BFCP
  • Lessons learned from production deployment with real hardware endpoints Medium Article

Open source contribution credited at open.gslab.com. The BFCP gap still exists in OpalVoIP's main codebase today — sharing in case it's useful to anyone hitting the same problem.

Top comments (0)