[asterisk-dev] DAHDI and Asterisk

asterisk at phreaknet.org asterisk at phreaknet.org
Thu May 18 10:05:00 CDT 2023


Wanted to float a question here for the Asterisk core team, that has 
been discussed amongst several other Asterisk/DAHDI developers a bit.

As we all know, the DAHDI project has been neglected the past few years 
and it does not appear that there is any team at Sangoma that is 
actively working on it or cares about it. Sangoma has repeatedly failed 
to take responsibility for DAHDI and is not letting the community 
maintain it either, i.e. PRs are not being merged, build failures are 
not addressed. Numerous developers, myself included, have long been 
maintaining external patch sets[1] or forks[2] to address this.

At this point, it is unrealistic to expect the DAHDI project in its 
current form to ever really get back on track. Some distros I'm told 
have already abandoned Sangoma and now use the osmocom fork as their 
upstream for packages. Most people have been using these methods to 
build DAHDI, rather than using the Sangoma tarballs.

Merely maintaining patch sets or forks is not a long term solution. Many 
new Asterisk features require DAHDI changes, and thus require patches to 
be maintained for multiple projects. Even if the Asterisk side could be 
merged in fine, some changes may require or depend on a DAHDI change to 
work properly. Over time, patches begin to conflict with or step on each 
other. DAHDI does not live in a bubble and has impacts that ripple out 
to other things, like Asterisk.

Since DAHDI has no active maintainer currently, I wanted to float a 
couple ideas here to remedy the situation, in order of feasibility (I 
think):

 1. Would it be possible for the DAHDI project to be moved to fall under
    the scope of the Asterisk project? e.g. similar to libpri. The
    Asterisk team would not need to actively do anything with it, but
    just merge changes into it as it does for libpri, for example (kind
    of like extended support). I think this would make the most sense
    because fundamentally, DAHDI is part of the Asterisk ecosystem.
    Asterisk has a dependence on DAHDI and so bringing that dependency
    in house makes sense since it eliminates friction. For example, this
    change[3] stalled solely because nobody is merging PRs into DAHDI.
    If the Asterisk team was able to merge DAHDI changes, problem
    solved, and then Asterisk changes aren't stalled because DAHDI is
    stalled.
 2. Similar to how Thunderbird was maintained by the community[4] for a
    number of years, DAHDI Linux/Tools could be fully community
    maintained. A core team of Asterisk/DAHDI developers that are
    familiar with and care about maintaining the project would be
    charged with the responsibility of merging PRs, etc. Sangoma would
    still own the project, but not actively manage it, freeing it to do
    other things.
 3. Asterisk could use the Osmocom DAHDI fork as its upstream, rather
    than the Sangoma repo. The Osmocom fork uses Gerrit to merge changes
    in from the community, with a robust CI process. Tarballs would
    probably need to be generated from here. This is obviously a more
    drastic change, as Sangoma effectively relinquishes the project
    officially, but using a third-party repo is still preferable to
    using a broken and unusable one, in my opinion.
     1. Option 3B: Don't officially move to using the Osmocom fork, but
        support it as one of the possible dependencies. i.e. new
        features present in Osmocom DAHDI but not Sangoma DAHDI can be
        utilized by Asterisk, e.g. using #ifdef NEW_DAHDI to detect
        support. This allows Asterisk to continue to move forward
        without DAHDI moving forward on the Sangoma side, at the expense
        of a messier codebase since DAHDI support would need to be
        guarded all over the place.

In discussing these ideas with the community, there has been a lot of 
support for these ideas, but I'm wondering from a Sangoma/Asterisk team 
perspective what might be practical here. Just based on my experience 
with the project, I'm inclined to think #1 would be the most feasible of 
these. The project is already on GitHub in the Asterisk organization and 
I think this would make the most sense, treating DAHDI as an extended 
support project that the community can continue to maintain, in a way 
that is facilitated by Sangoma.

NA

[1] https://github.com/InterLinked1/phreakscript
[2] https://gitea.osmocom.org/retronetworking/dahdi-linux/
[3] https://gerrit.asterisk.org/c/asterisk/+/17948
[4] 
https://blog.thunderbird.net/2023/02/the-future-of-thunderbird-why-were-rebuilding-from-the-ground-up/ 




More information about the asterisk-dev mailing list