FreeSWITCH stable package

Could someone please review the following pull request, I have a feeling (just by looking at the size) that Sebastian worked really hard on it:

The previous pull request for reference:

Thanks!

1 Like

@daniel and Stefan Koch
You folks are the only two who have made commits to the telephony branch in nearly a year. The FreeSWITCH packages could use a little TLC. The latest pre-built "stable" binaries for the ar71xx target are from OpenWrt 14.07.
Any chance of adding Sebastian as a maintainer?

I see some Asterisk commits made it through to the telephony feed.....how about some love for FreeSWITCH?
I've compiled and tested (not thoroughly) the stable package from Sebastian's fork and it seems like it's ready for prime time.

@skyblaster - I'll take care of it. Please ping me next Tuesday if it isn't merged by then.

1 Like

Thanks again @jow and @jslachta for adding these packages. It's fantastic being able to test an x86_64 image in VirtualBox before loading it onto an RPi2 or ar71xx device without needing to compile for multiple targets.

Do the BuildBot scripts indiscriminately delete all .ipk files before/during compilation? There's a recent PR to fix a build issue and I see most packages are no longer available in the snapshops repo due to the failed compiles. The packages that there were there previously were working beautifully.

Regarding packages disappearing from snapshots due to failed builds, is this something that can be prevented by simply incrementing PKG_RELEASE? Just curious. Thanks!

No, packages will disappear as soon as they fail to build, regardless of whats written in the Makefile.
Unfortunately there currently is no easy way to change that.

Is anyone currently actively using FreeSWITCH on OpenWRT? I have it running but I am trying to build the dahdi support for a Digium T1 card and having issues. Anyone have experience here?

Hi there,

are you using freeswitch-stable on an openwrt-18.06 or trunk snapshot? What's the problem with dahdi? Did you install the freetdm modules?

Hello, thank you for your response. I am building the freeswitch-stable version within the openwrt project. I enable the build of that module via make menuconfig. I then edit the modules.conf to build the modules I need including freetdm. That all works. The issue I run into is not being able to build dahdi-tools and dahdi-linux. I am able to build dahdi-tools-timezone, but have been unsuccessful with the others. I see nothing within make menuconfig to enable building those modules. Does dahdi-tools-timezone include all of the dahdi-tools functionality or is it a subset of the dahdi-tools?

I have tried building dahdi-linux by cd into that directory and running make directly. That is unsuccessful. How do I enable build of that module?

BTW, we have freeswitch-stable/openwrt running successfully with VoIP. Now I need to tackle the TDM support.

Hello @stoneeyes

Why do you need to edit modules.conf manually? I added the freetdm modules a few months ago. You can just select them via menuconfig. Also there were some build failures with dahdi-linux with newer kernels, so we updated that as well. Are you using an old checkout from before all that? In that case I suggest you update to a current checkout and try again.

Kind regards,
Seb

@stoneeyes

Location:
-> Libraries -> Telephony -> libfreetdm-stable

Seb,

Thank you. I see where I was steering wrong. To clarify, dahdi drivers are built as kmod-dahdi and are enabled via:

kernel modules -> voice over ip -> kmod-dahdi

Is that correct?

Hi @stoneeyes

Yes, kmod-dahdi is what you want.

I checked the FreeSWITCH book as I never configured TDM stuff on FS. So
you definitely need mod_freetdm, because that's the endpoint driver. And
then the book goes on saying that mod_freetdm is used by FS to
"interconnect with all protocols supported by FreeTDM".

FreeTDM is also modular and used to plug together different signaling
and I/O modules. Example from the book:

Application:        FreeTDM lib

                        <->

Signaling Module:   ftmod_analog

                        <->

I/O Module:          ftmod_zt

                        <->

Hardware Driver:   DAHDI driver

The arrows should be vertical instead of horizontal :slight_smile:

The I/O modules take care of reading and writing raw data bytes and
executing low level control commands on the telephony hardware but don't
do much else.

Analog signaling module ftmod_analog provides support for FXS/FXO.
There's also ftmod_analogem but it's not really only for analog stuff.
The book says it's for E1/T1 analog and digital cards using CASE&M
signalling.
Signaling module ftmod_libpri provides support for ISDN over PRI/BRI.

If you need MFC-R2 signaling support then currently OpenWrt isn't for
you because we don't package the openr2 stack. But we could add it if
there's any interest.

Anyway, yes, you need the dahdi driver. ftmod_zt doesn't depend on dahdi
during the build because FreeTDM comes with its own copy of the DAHDI C
headers. So the ftmod_zt package doesn't depend on DAHDI because of
that. But really, you need the DAHDI driver :slight_smile:

The book also has a config help for the TDM stuff. Anyway, hope this
helps.

Kind regards,
Seb

Seb,

Thank you very much. I have experience with TDM on FreeSWITCH but was a little stumped on some of the OpenWRT details. It all looks much more clear now. Fortunately I am not doing MFC-R2. I appreciate your assistance in clarifying some issues where I was off track. I will let you know if I encounter any other hangups.

Jonathan

Seb,

Question for you. I have resolved a lot of the issues I was wrestling with, but still have one that I am struggling with. There is a package with the kernel module/device drivers - ./build_dir/target-x86_64_musl/linux-x86_64/dahdi-linux-2.11.1-20180111, that seems to only partially build. After a build completes, you can check that specific package and it states that it is up to date. However, this package contains the device drivers for the Digium boards and they are not compiling. If you go to the root directory and try to build that package specifically, it reports it is up to date, but the drivers are not present.

If you cd into the package directory and run make, it builds the device drivers. That would be fine, except for the fact that when you build in the local directory, it grabs the kernel source from the host environment rather than the cross-compile environment. I have the build hosted on a Debian/AMD system and it picks up the host kernel source headers to build. I have checked 'make menuconfig' and 'make kernel_menuconfig', but have not been able to resolve this issue. Do you have any guidance on how to address this issue?

Jonathan

Hi Jonathan,

Can you do the following in your OpenWrt top level directory and paste the output?

grep -i dahdi .config

make -j1 package/dahdi-linux/{clean,compile} V=s

Regards,
Seb

Seb,

Here is a link to the output from the commands above. Where I am at the moment is that I have manually been able to bring the low level Dahdi drivers up and I have green alarm on the drivers. I am not at the location where the hardware is located so I am having the lights on the hardware checked.

When I load mod_freetdm it succeeds in configuring the channels. What I am missing is the ftmod_libpri module. That has me stopped. I cannot figure out how to build ftmod_libpri.so. What I would like to do is once I get the server online and placing calls is to layout the steps I did to bring the system up and check that process against the build environment. I would like to see where I may be missing steps in the build process or add the steps in the build/configure to bring up the Wildcard TE133 board on OpenWRT.

Here is the link:

https://docs.google.com/document/d/18b_uaXEf75ZNbbyrl-hSBxg40MJBrWMJ9obRhOMbUpc/edit?usp=sharing

Jonathan

Hello @stoneeyes

When I open the link I'm prompted to log in with a google account which I don't have. Maybe pastebin the output.

Regarding libpri freetdm plugin make sure it's selected in menuconfig (-> Libraries -> Telephony -> libfreetdm-stable), then just rebuild freeswitch-stable:

make -j1 package/freeswitch-stable/{clean,compile} V=s

Regards,
Seb

Seb,

I repulled the source, ran make menuconfig and reset all the parameters. I was successful in building and seeing he ftmod_libpri.so created, in addition to zt and analog. Not sure what I did previously. Below is a pastebin link to the output you were asking.

I am going to walk through a clean build and see what deficits I am still encountering. I believe that all of the components are building, but I think I am still encountering issues on the install side with the Dahdi drivers. I would like to get this all mapped out to find out if I am running the build incorrectly or if there are some steps missing.

https://pastebin.com/eEUxEAiV

Jonathan