[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