[bridge] Feature Request: support multiple concurrent UDP audio streams over a single peer connection

Open
#109 2 comments 0 reactions 1 assignee View on GitHub

@aemcd is already working on this.

Since Nov 26, 2025.

Assessment

This issue has not been assessed yet.

Description

enhancement

Currently, dvmbridge requires a unique instance configured for every UDP audio stream. This is an inefficient use of the peer connection established with the FNE, as it natively supports multiple concurrent call paths. For users who wish to send many distinct audio streams to an FNE, it would be better if one instance of bridge could handle receiving multiple concurrent UDP streams.

To avoid overcomplicating things (at least for now), this configuration should only need to support one-way audio (UDP in, P25/DMR out). We also don't want to change or break any of the currently supported bridge configurations as they are in use in many different places.

I propose the following changes:

  • abstract the UDP audio handler and vocoder routines to a class which can be instantiated for each desired input audio stream
  • create a new root config stanza (multistream or some similar name) which signals bridge that it should enter into this new, one-way multi stream mode and ignore the standard global UDP config
  • in the new multistream config stanza, we would have an array of streams like the following:
    multistream:
      streams:
        - name: "stream1"  # name used for logging and reference only
          address: "127.0.0.1"  # listen address for this UDP socket
          port: 32001  # listen port for this UDP socket
          srcId: 1234567  # source ID (RID), can be overridden by stream if configured
          dstId: 65432  # destination ID (TGID) to use for this stream when sending frames to the FNE
          ...
          # incorporate the rest of the standard UDP audio config options from the global `network` config stanza as well 
          # (usrp, ulaw, silence, etc)
        - name: "stream2"
          # and so on...
    
Dominant language
C++
Stars
107
Forks
30
Avg merge
3m
Merged PRs (30d)
1

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from DVMProject/dvmhost

All issues in DVMProject/dvmhost

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.