Lantiq - minimal POTS setup

Hey,

I have an Arcadyan VGV7510KW22 (o2 Box 6431) running LEDE. DSL is working great already and now I would like to use it for telephony as well.

I plan to use the FXS on the VGV7510KW22 to connect only one simple analogue phone and use it for in- and outgoing calls, using the SIP account provided by my ISP.
The only solution I found so far is using asterisk with chan-lantiq, but asterisk sounds like overkill for my planned setup, plus it can be a security risk if configured badly (which happens easily since the configuration is very complex).

I was looking for less complex solutions and found owsip and danube-voip, but development seems to have stalled on both.

Another interesting project I found is baresip, which is already in the LEDE/OpenWrt package repos.
Does anyone know if baresip can be used with Lantiq FXS ports?
Or can anyone recommend other less complex VOIP solutions for LEDE?

Regards
Sebastian

1 Like

I'm curious, did you come up with a conclusion for this (I'm starting to look at the same topic as well)?

I had a closer look at baresip. It seems that it's written only with audio devices in mind, so I doubt that it's even possible to use it on a TAPI device like the one provided by the Lantiq boards.
So right now I'm going the asterisk way - it works but it eats 50% of the 64MB RAM of my VGV7510KW22, that's not what I call ideal...

@Plonk34 is so kind to provide precompiled binaries for chan-lantiq, which makes it at least easier to setup:
https://forum.openwrt.org/viewtopic.php?pid=367723#p367723 (they can be added to the image builder, just make sure that the custom compiled asterisk packages don't get mixed with the official ones).

1 Like

Thanks for your response, like you, I was hoping for something lighter (although mostly in terms of configuration complexity) than asterisk, hopefully something with more upstream'ish chan_lantiq support (for building LEDE's master branch from source).

The performance question isn't that important to me, as my plans involve using a VGV7510KW22 (waiting for it to arrive) exclusively to connect analogue phones via VoIP/ SIP, with modem (maybe another VGV7510KW22) and router (nbg6817) functionality served by dedicated (LEDE-) devices. I've focussed on the VGV7510KW22, as it's one of the very few cheap/ obtainable devices with analogue FXS ports (ignoring the semi-usable wlan capabilities) supported by LEDE. I was originally considering the very cheap ARV752DPW instead, but the newer SOC and larger flash size of the VGV7510KW22 made it appear more attractive (not to forget the possibility to use one as VDSL2 modem).

I'm currently thinking about doing the same and get a second device to use one as DSL modem an one as SIP gateway.

Concerning configuration: Yes, Asterisk is a beast to set up. It took me a while to get things working, but now I'm able to make and receive calls.
To start, have a look at the example configurations by stefan-koch and Plonk34 here and here. If you speak german this guide at ip-phone-forum.de is very recommended to avoid abuse of your installation. It's also possible to find provider-specific configs for most of the german ISPs there.
Once the OpenWrt/LEDE merger is complete and it's clear which Wiki will be used I may try to update the OpenWrt asterisk documentation a bit.

I don't know if anyone has tried to upstream chan-lantiq, at least I didn't find anything about it on the Asterisk Gerrit.
And the LEDE buildbot still seems to choke on it, so setup will remain a bit of a hassle for the time being.

I have hacked-up danube-voip a little bit and it seems to compile and work on LEDE trunk, at least on my ARV4518PW and ARV4518PW2 devices.You can find the repo on github. It's definitely not perfect, but I needed to get my devices running as sip clients quick.

That would be quite impressive (both are 4 MB flash devices), compared to VGV7510KW22 images with asterisk-13 and chan_lantiq that are around 13 MB large (not yet final or optimized). However, especially for SIP uses, active maintenance and security support is quite essential.

A very very minimalistic build, with just vmmc, tapi and ifxos might just be small enough. Haven't tried that, I have modded my devices with 8MB flash chips. Another route is extroot, I don't trust it's reliability though.
I totally agree that active developement is very important ( that is why we are using LEDE ), I just could not be bothered to install and configure asterisk.

Very interesting. If I have enough time this weekend I'll try if this works on the VGV7510KW22. The phone parts of DANUBE and VR9 look quite similar.
sofia-sip looks ancient, but it's also used by FreeSWITCH and seems to get (at least some) updates there ( https://freeswitch.org/stash/projects/FS/repos/freeswitch/browse/libs/sofia-sip ).
So maybe it's not impossible to get danube-voip into shape again.

@Ntalton you managed to get it to work, inmense props man.

I sadly have a ARV4518PWR01A, which got thrown into xway-legacy and I cannot build the proper kmods for it, so your build (which I had to force install) obviously doesn't work :confused:

I run a very weird extroot build, and I had mismatched lede versions on initramfs and usb, so that could've been it. However, I don't think so lol.

According to old openwrt wiki, danube-voip used to work on my router. Maybe before xway was split?

Tomorrow I'm gonna try settling the mess I have, just dual trunk builds and see. Maybe try to boot an xway build for the newer rev into mine.

Maybe just try to get an old openwrt build. At this point I just want to make it work.

I would appreciate any help you can throw in, this thing has been dragging on for quite a long time and I'm without a landline phone haha

Hey @p4block. Do you build your own image, or have you downloaded one from the download page?
Svd depends on sofia-sip, and for kernel modules, kmod-ltq-ifxos kmod-ltq-tapi and kmod-ltq-vmmc. As far as I know you can use the kmod packages from xway instead of xway-legacy.
What kind of error do you get when trying to run svd? I am trying to chase a driver error with tapi, and the packages I have uploaded on github may have an issue

1 Like

@Ntalton

I downloaded your ipks, as I cannot build them for xway-legacy. kmod-ltq-tapi and kmod-ltq-vmmc are xway only for some reason. (or, xway legacy was split without considering they were available for its routers too)

After force installing your packages anyway, svd crashed on the "IFX_TAPI_DEV_STOP ioctl failed" error you are familiar with I think. I don't have a lantiq tapi kernel module, so there's that.

I can do weird stuff like run an xway rootfs / force install kmod-ltq-tapi and vmmc with my xway legacy kernel, but that would only make opkg happy. Kmods wouldn't load anyway. Running the kernel for the xway version of my router, which has a slightly newer SoC, could work but is unlikely. And that apparently would be the only way for it to work given the current lede setup.

I'd like to try again with a new fully built initramfs+extrootfs combo soon. Ideally, i'd like to run 17.1.4 stable release for both, but as I saw you built for trunk I basically jumped ship.

If you want me to test anything weird I'm up for it.

@p4block
Hmm the device have 4MB Flash only.

First Problem:
see package/kernel/lantiq/ltq-vmmc/Makefile
Line 30:

DEPENDS:=@(TARGET_lantiq_xway||TARGET_lantiq_xrx200) +kmod-ltq-tapi

the equal problem here package/kernel/lantiq/ltq-tapi/Makefile

possible next problem the kernel-config differ from xway and i have no idea if VPE SMP config are right here
see: https://forum.openwrt.org/viewtopic.php?pid=352661#p352661

Last problem the vmmc@107000 code are inside target/linux/lantiq/dts/ARV4518PWR01.dtsi
but at line 7 botargs should be like

bootargs = "console=ttyLTQ0,115200 mem=62M vpe1_load_addr=0x83e00000 vpe1_mem=2M maxvpes=1 maxtcs=1 nosmp";

@Ntalton nice work i will test it.
For me I like the asterisk solution more, but when i tell other people from it, the say: No thanks it is to complex.

I will try my luck with danube-voip on stable too, and see how that goes.
The ipks on git have been updated and hopefully fixed.
I think xway_legacy was created for devices with <= 4MB flash, which lede doesn't officialy support. If you really want to, here's a quick 'n dirty 'trick' to get xway_legacy devices to build as xway. On your build directory, move to the contents of your xway_legacy dts file to a similar xway one. For example copy target/linux/lantiq/ARV4518PWR01A.dts to target/linux/lantiq/ARV7518PW.dts and then select arv7518pw on menuconfig.
Be careful of the image size though! The 7518 has 8MB of flash so depending on what packages you select the resulting image might be too big for your device.

Also on danube-voip, just to clarify.
The repository has been umantained by the original author for 3 years. What I did was fork that repository and just patch it a little so it works with lede. Sadly due to lack of mostly time I won't be able to fix any security issues or add new features. So please use at your own risk :slightly_smiling_face:

Ok, I have updated danube-voip, packages and source. My testing indicates that it works both on stable 17.04.1 and current, and on current trunk.

@Plonk34 I cannot thank you enough for these hints, you saved me a lot of time which I cannot afford to lose at this moment. Those damned exams hah

@Ntalton I actually found the danube repo a few weeks ago and tried building, but failed miserably. When I saw that you forked it and fixed I basically was shouting YES repeatedly. Thanks again for the work.

On the size and legacy stuff, I run a "true initramfs" lede build in the 4MB flash with absolutely nothing but the kmods I need, ext4 and blockmount. Then it loads the true rw root in a 4GB usb flashdrive. This is essentially how desktop distros work, and it's a pain to setup on LEDE :sweat_smile:

Pretty cool and useful once it works though, it should be supported somehow. I should get around to writing a blogpost or something once I finish up with this this weekend or next week.

Documenting any helpful information in the OpenWrt wiki would be appreciated.

Popping back in to report my progress

I did the trick of copying the old xway-legacy dts to an xway device. This has allowed me to build the proper modules and install all of the packages up on @Ntalton github.

I've also managed to make the sip client connect to my ISP network.

However, for now I am unable to actually perform the calls, as they disconnect instantly when answering the call placed from outside the network, or never reach out. However, the phone itself rings, so that means the phone ports work hah.

Or do they? I get this on dmesg from time to time:
WARNING: FW version 12.1.0 too old. Minimum required FW version is 12.4.0

I've installed gstreamer + alaw to see if it's a codec issue. Sadly, I can try only so often as the ISP network temp bans me every few svd reconfiguration attempts, for trying too much.

The things you have do to get rid of the botnet isp router.

Thanks to all the people who helped me get this running!

Hi @p4block
first of all, I don't think the firmware warning is the culprit. I get the same warning, it's probably from tapi and as far as I know there is no newer firmware available on openwrt/lede. Svd works anyway.
If I understand correcly, when you are placing outgoing calls from the device running svd, the other end rings but when it picks up the call gets terminated?
Could you please post your configuration? Svd writes some usefull diagnostic stuff on systemlog, so keep an eye on that. You can also set the debug level higher on your config, so you get more information on system log.
And a last thing, the router running svd is behind nat, or does it get a public ip?