Use UMTS-Stick for phone calls

Hey,

i use Lede / OpenWrt for a while now on Raspberry Pi's with an UMTS-Stick. Everything working fine but recently i flashed Lede into a lantic mips_24 architecture (ARV752DPW22). So i am asking myself if its possible to make phone calls via the router respectively the umts-stick.

I tested some AT commands to make phone calls and its obviously working because my other phones rang.

ATD0123456789 > ttyUSB0

SMS Commands are working aswell.
So is it possible and if so how to "forward" or "link" this phone call to speakers and microphone respectively even to an TAE Phone Output (standart analog phone interface in Germany) or ISDN?

Regards

You can use (e.g.) a USB soundcard for your needs, but many mips devices might reach the limits of their processing power when it comes to encode/ decode the necessary codecs.

However actually providing a suitable analogue phone signal (vulgo TAE-6F) is another topic, yes from a purely technical point of view, these wouldn't be anything but simple soundcards with different voltage levels (plus some additional high voltage protection) and a ringer (>20V at 25 Hz, 50 Hz if unavoidable), but in practice you can't really get those devices (for sane prices, think >300 EUR for a single port PCI card). Yes, many lantiq based consumer routers actually provide this functionality (and it obviously is trivial to build on a commercial level), but to the best if my knowledge (free/ usable) drivers don't exist for either of them.

ISDN is a different question, while it's technically not as easy as to create an analogue phone port, PCI cards with FXS support (misdn/ NetCologne HFC-S) are (were?) readily available for ~30 EUR in the past, making this far easier to implement.

That said, while it should be rather easy to run asterisk or freeswitch on your generic embedded router, it's usually (and sadly) way more cost effective to handle AD/DA conversion on dedicated off-the-mill hardware (be it a native SIP phone or a dedicated VoIP ATA), unless you're fine with (basically) running a full blown PC as your phone.

I'd love to be pointed to cheap/ easily available devices (dispatched from within .eu) myself though.

This is wrong i would say the first code in Openwrt was in BB, but it was problematic for serveral reasons.
In beginning of 2017 Stefan Koch update the required asterisk-chan-lantiq for Asterisk 11.x and 13.x.
see this thread: https://forum.openwrt.org/viewtopic.php?id=62696
and them: https://forum.openwrt.org/viewtopic.php?id=68473
In general, POTS on the Lantiq xway and xrx200 chips are now supported.
In general mean: It should be possible to implement this on all Lantiq xrx200 and xway devices with FXS-ports. It works on some Lantiq devices where the VPE support are implemented. (VPE = Voice Procesing Engine ? no idea if the abbreviation are right).

VPE and SMP are conflicting:[quote]

A firmware file will loaded on that second core. So SMP and VPE usage is conflicting.
Therefore you have to reserve 2MB of RAM memory within kernel command line.

The devices before xrx200 had an other mechanism, there you have not to reserve 2MB of RAM memory to load the firmware.

[/quote]
for this reason the Easybox 803A have only a single mips core with 333MHz, this is not fast but i think fast enought.

I read the german thread https://www.ip-phone-forum.de/threads/mit-umts-stick-telefonieren-linux-openwrt-lede.296099 too.
And I thing it is possible and i know, because i have do it, that:

  • ARV752DPW22 as an POTS-VoIP-gateway is possible.
  • The Lantiq xrx200 device O2-Box 6431 with an UMTS-Stick as an POTS-VoIP-Mobilphone-gateway is possible too.

you need for the FXS support:

  • module kmod-ltq-tapi = the tapi driver for the FXS ports
  • module kmod-ltq-vmmc = Firmware and driver for Voice support
  • bootargs and some additional code in .dts files for supporting the VPE (It exist in the 17.01.1 code for ARV752DPW22)
    -userspace programm: Asterisk 11 or 13 with chan-lantiq

for Mobilphone Support:

Possible difficulties that you must test:

  • you need a USB-Stick that will bee support by chan-dongle,
    no idea how are the name of my dongle but it is not listed and i know that there exist to versions with the same Hardware and different Firmware and only my kind of dongle works.
  • the power consumtion of the dongle should less them the router give.
  • no idea how stable are UMTS-dongles working, have you experience with your dongle as longtime WAN-gateway, because the most dongles that i know will be very hot, I can not believe that will longtime working.
    I am very interresting if someone have experience with it.
  • The last problem is the flashstore are too small for the full firmware + asterisk-13.
    I have outsourced Asterisk to an USB-Stick and it works well for mee, but i fear that you must divide only one USB lane with the USB-store and the USB-Mobil-stick.
    But i have no idea and i am very interresting on your experience.

I have some general question too this thema:
Did you know any USB-LTE-Mobile-stick with voice support ?
All the USB-Mobil-modems that i have i my hands have 3 serial devices, i suspect it is for AT-commands, data and voice, but no idea, and no idea how i can distinguish them,
Have everybody an explanation ?

ISDN:

Have everybody a working Openwrt or LEDE router device with ISDN ?
I think no, because i do not found any search words in the LEDE/Openwrt forums.

I am very interesting on a working ISDN Router with LEDE.
My problem is i have no experience with ISDN. 2 years before, my telephon connection came from the wall like elektrical Power and i had no reason to deal with fangled technic ISDN.
Them i has been switched to VoIP ....

I see no choice to support the modern xrx200 devices because they have very proparitär lantiq-ISDN-Chips where are no opensource exist, but the ARV752DPW22 have a Colongne Chip.
And i find the file xhfc24succ.h inside here: https://github.com/Distrotech/mISDN/tree/master/drivers/isdn/hardware/mISDN

I have a littlebit modify them soo that compilation works, but when i use them i get this message:

[ 7029.645955] CAPI 2.0 started up with major 68 (middleware)
[ 7029.808443] mISDN_core: Unknown symbol kernel_thread (err 0)
[ 7029.829158] mISDN_dsp: Unknown symbol mISDN_SetHandledPID (err 0)
[ 7029.834171] mISDN_dsp: Unknown symbol mISDN_register (err 0)
[ 7029.839468] mISDN_dsp: Unknown symbol mISDN_ctrl (err 0)
[ 7029.844717] mISDN_dsp: Unknown symbol mISDN_module_register (err 0)
[ 7029.850752] mISDN_dsp: Unknown symbol mISDN_init_instance (err 0)
[ 7029.856708] mISDN_dsp: Unknown symbol mISDN_queue_message (err 0)
....

Everbody an idea.

Soo my problem is i am not a programmer, i have no idea about ISDN and at this moment i have no time.
@Emporea1997 Have you experience with ISDN under Linux ?

Hey Plonk34,

first of all thank you for your answer. By the way do you speak german?

I gave up my researches for the last couple of days but i installed asterisk11 cause i didnt find chan_dongle for asterisk13 but thanks to you and your link / post for building the package for a13. I will give it a try tomorrow.

My experiences so far:

  1. The Storage of my lantiq isnt enough of course but i was facing this problem the first time when i installed samba but i could handle it with an USB-Stick as /overlay in fstab. So 'disk' space is no more of a problem.

  2. My Router is Martin Router King so it has got 3 USB-Ports and i am good to go with /overlay + USB Modem and maybe Samba Server, but i think i will give my raspberry pi this job cause the CPU is still only on 333Mhz..

  3. As i mentioned i used my Web-stick and my Raspberry Pi for a long time as my personal complete home-network and it worked like a charm. In my beginnings i used wvdial and a dhcp server on Raspbian but after a while i switched to OpenWRT and then LEDE. Since everything was configuried and in the right place i ran it 24/7. The Web-stick got a little warm but it wasnt that bad. My mobile phone contract includes unlimted Data usage with 1000kbit of speed. WIth this setup i was even able to play online games with a constant ping of 50 to 60. And this everywhere in my country because its mobile data.

  4. My USB-Modem has 4 serial tty lines. I only used ttyUSB0, i find no documentation about the other ones. So i dont know much about how data and voice is transfered. But HUAWEI devices seem to be able to make phone calls the software for pc is even given with the usb-modem, but i am not sure if there are some LTE ones.

I have no experience with ISDN but i wont need it. I want to connect my TAE (pots) and thats all.
If i am gonna make it and get calls to work on my setup do you think i can have an internet connection while make a phone call? Of course i will use UMTS and not GSM so theoretically its possible. We will see.

Regards

Yes i am from german. I belive the ARV752DPW22 is a germans only router.

It is interresting for me too. Have you a HowTo ?
At the moment i have copy the complete / root to the /mnt/sda1 and install Asterisk to it via

opkg -o /mnt/sda1 update
opkg -o /mnt/sda1 install asterisk13 ...

them i chroot to /mnt/sda1

[quote]2. My Router is Martin Router King so it has got 3 USB-Ports and i am good to go with /overlay + USB Modem and maybe Samba Server, but i think i will give my raspberry pi this job cause the CPU is still only on 333Mhz..
[/quote]

Ha Ha I like more the more powerfull (500Mhz) xrx200 devices, at the moment my mainrouter is a Easybox 904xDSL and an other nice device is the proletarier FritzBox called O2-Box 6431
(Same chipset like FB 7360 and 7490 but simpler Hardware overall with less power consumtion.) It has a full LEDE support.
I do not realy need mobilphone and ISDN but i wich i can change my ARV752DPW22 to Martin Router Kings his VoIP-POTS-Mobilphone-ISDN-gateway.

I do not know because O2-Box 6431 with the mobilstick was a present to a friend.

Your first aim should bee to get a beep on the telefon line:

installing the required packets:

  • first update opkg update
  • install Asterisk-13.x core and SIP (now 13.17.0) and for FXS relevant packages opkg install asterisk13 asterisk13-app-stack asterisk13-chan-lantiq asterisk13-codec-alaw asterisk13-codec-ulaw asterisk13-codec-a-mu asterisk13-codec-gsm asterisk13-format-gsm asterisk13-chan-sip asterisk13-res-rtp-asterisk
  • install some usefull extras (optional) opkg install asterisk13-res-timing-timerfd asterisk13-cdr asterisk13-cdr-csv asterisk13-chan-iax2 asterisk13-app-while asterisk13-func-cut asterisk13-res-speech asterisk13-res-stun-monitor
  • put your self compiled asterisk13-chan-dongle-wdoekes_*.ipk on the router via scp and install them
  • controll if kmod-ltq-tapi and kmod-ltq-vmmc exist (should normaly bee installed)

the devices:
/dev/vmmc10 to /dev/vmmc18 should exist

on the /etc/asterisk/lantiq.conf
must include this:

[interfaces]
;
; Number of FXS ports (default: 2)
channels = 2
per_channel_context = on

[general]
; .....

now you should here a beep

I have an other configuration, for security reasons my asterisk do not run under root it uses the user asterisk:
put the user asterisk inside
/etc/passwd

...
asterisk:x:1000:1000::/home/asterisk:/bin/false

/etc/group

...
asterisk:x:1000:

/etc/shadow

...
asterisk:x:0:0:99999:7:::

Adjust the init.d scripts:
/etc/init.d/asterisk

#!/bin/sh /etc/rc.common
# Copyright (C) 2014 OpenWrt.org

START=99
APP=asterisk
OPTIONS=
DEST=
BIN_FILE=$DEST/usr/sbin/$APP
PID_FILE=$DEST/var/run/$APP/$APP.pid

start() {
       [ -d $DEST/var/run/asterisk ] || mkdir -p $DEST/var/run/asterisk
       [ -d $DEST/var/log/asterisk ] || mkdir -p $DEST/var/log/asterisk
       [ -d $DEST/var/spool/asterisk ] || mkdir -p $DEST/var/spool/asterisk
       [ -d $DEST/var/lib ] || mkdir -p $DEST/var/lib
       [ -h $DEST/var/lib/asterisk ] || ln -s /usr/lib/asterisk /var/lib/asterisk
       [ -d $DEST/var/lib/asterisk/keys ] || mkdir -p $DEST/var/lib/asterisk/keys
       [ -d $DEST/var/log/asterisk/cdr-csv/ ] || mkdir -p $DEST/var/log/asterisk/cdr-csv
       chown -R asterisk:asterisk $DEST/var/run/asterisk
       chown -R asterisk:asterisk $DEST/var/log/asterisk
       chown -R asterisk:asterisk $DEST/var/spool/asterisk
       chown -R asterisk:asterisk /var/lib/asterisk
       chown -R asterisk:asterisk /lib/firmware/ifx_firmware.bin
       chmod 0400 /lib/firmware/voice_ar9_firmware.bin
       chmod 0400 /lib/firmware/ifx_firmware.bin

       SERVICE_PID_FILE="/var/run/asterisk/asterisk.pid"        
       service_start $BIN_FILE $OPTIONS
}

stop() {
       SERVICE_PID_FILE="/var/run/asterisk/asterisk.pid"        
       service_stop $BIN_FILE
}

reload() {
       SERVICE_PID_FILE="/var/run/asterisk/asterisk.pid"        
       service_reload $BIN_FILE
}

/etc/init.d/vmmc

#!/bin/sh /etc/rc.common
#
# Activate Voice CPE TAPI subsystem LL driver for VMMC

START=31

start() {
        local c=10
        [ ! -c /dev/vmmc$c ] && {
                while [ $c -le 18 ] ; do
                        mknod /dev/vmmc$c c 122 $c
                        chown asterisk:asterisk /dev/vmmc$c
                c=$(($c+1)) ; done
        }
}

my asterisk.conf
/etc/asterisk/asterisk.conf

[directories]
astetcdir => /etc/asterisk
astmoddir => /usr/lib/asterisk/modules
astvarlibdir => /usr/lib/asterisk
astdbdir => /usr/lib/asterisk
astkeydir => /usr/lib/asterisk
astdatadir => /usr/lib/asterisk
astagidir => /usr/lib/asterisk/agi-bin
astspooldir => /var/spool/asterisk
astrundir => /var/run/asterisk
astlogdir => /var/log/asterisk
astsbindir => /usr/sbin

[options]
verbose = 3
debug = 3
;alwaysfork = yes		; Same as -F at startup.
;nofork = yes			; Same as -f at startup.
;quiet = yes			; Same as -q at startup.
;timestamp = yes		; Same as -T at startup.
;execincludes = yes		; Support #exec in config files.
;console = yes			; Run as console (same as -c at startup).
;highpriority = yes		; Run realtime priority (same as -p at
				; startup).
;initcrypto = yes		; Initialize crypto keys (same as -i at
				; startup).
;nocolor = yes			; Disable console colors.
;dontwarn = yes			; Disable some warnings.
;dumpcore = yes			; Dump core on crash (same as -g at startup).
;languageprefix = yes		; Use the new sound prefix path syntax.
;systemname = my_system_name	; Prefix uniqueid with a system name for
				; Global uniqueness issues.
;autosystemname = yes		; Automatically set systemname to hostname,
				; uses 'localhost' on failure, or systemname if
				; set.
;mindtmfduration = 80		; Set minimum DTMF duration in ms (default 80 ms)
				; If we get shorter DTMF messages, these will be
				; changed to the minimum duration
;maxcalls = 10			; Maximum amount of calls allowed.
;maxload = 0.9			; Asterisk stops accepting new calls if the
				; load average exceed this limit.
;maxfiles = 1000		; Maximum amount of openfiles.
;minmemfree = 1			; In MBs, Asterisk stops accepting new calls if
				; the amount of free memory falls below this
				; watermark.
;cache_record_files = yes	; Cache recorded sound files to another
				; directory during recording.
;record_cache_dir = /tmp	; Specify cache directory (used in conjunction
				; with cache_record_files).
;transmit_silence = yes		; Transmit silence while a channel is in a
				; waiting state, a recording only state, or
				; when DTMF is being generated.  Note that the
				; silence internally is generated in raw signed
				; linear format. This means that it must be
				; transcoded into the native format of the
				; channel before it can be sent to the device.
				; It is for this reason that this is optional,
				; as it may result in requiring a temporary
				; codec translation path for a channel that may
				; not otherwise require one.
;transcode_via_sln = yes	; Build transcode paths via SLINEAR, instead of
				; directly.
runuser = asterisk		; The user to run as.
rungroup = asterisk		; The group to run as.
;lightbackground = yes		; If your terminal is set for a light-colored
				; background.
;forceblackbackground = yes     ; Force the background of the terminal to be 
                                ; black, in order for terminal colors to show
                                ; up properly.
;defaultlanguage = en           ; Default language
documentation_language = en_US	; Set the language you want documentation
				; displayed in. Value is in the same format as
				; locale names.
;hideconnect = yes		; Hide messages displayed when a remote console
				; connects and disconnects.
;lockconfdir = no		; Protect the directory containing the
				; configuration files (/etc/asterisk) with a
				; lock.
;stdexten = gosub		; How to invoke the extensions.conf stdexten.
				; macro - Invoke the stdexten using a macro as
				;         done by legacy Asterisk versions.
				; gosub - Invoke the stdexten using a gosub as
				;         documented in extensions.conf.sample.
				; Default gosub.
live_dangerously = no		; Enable the execution of 'dangerous' dialplan
				; functions from external sources (AMI,
				; etc.) These functions (such as SHELL) are
				; considered dangerous because they can allow
				; privilege escalation.
				; Default yes, for backward compatability.

; Changing the following lines may compromise your security.
[files]
astctlpermissions = 0660
astctlowner = nobody
astctlgroup = nogroup
astctl = asterisk.ctl

[compat]
pbx_realtime=1.6
res_agi=1.6
app_set=1.6

/etc/asterisk/extensions.conf


[general]
static=yes
writeprotect=no
clearglobalvars=no



[globals]
; global context usefull for global variables:
; example
;PROVIDERNUM=12785463
ALLNUM=2000
FXS1_NUM=2001
FXS2_NUM=2002
FXS1_SNUM=21
FXS2_SNUM=22
FXSTO=30






[default]
; default context this is the default context where calls come in


[foreign_out]



[all]
exten => _[09]X.,1,Gosub(foreign_out,${EXTEN},1)
exten => _2XXX.,1,Gosub(intern,${EXTEN},1)
exten => _[+0-9A-Za-z].,n,Hangup




; erlaubt nur verbindungen dieser und angeschlossener Anlagen 
[netintern]
exten => _${OWNPFX}XX,1,Gosub(intern,${EXTEN},1)
exten => _25XX,1,Gosub(partner_out,${EXTEN},1)
exten => _28XX,1,Gosub(partner_out,${EXTEN},1)
exten => _[+0-9A-Za-z].,n,Hangup



; erlaubt nur interne verbindungen
[intern]
exten => ${ALLNUM},1,Dial(local/s@ltq1_in/n&local/s@ltq2_in/n)
exten => ${FXSNUM_1},1,Goto(tel1_in,s,1)
exten => ${FXSNUM_2},1,Goto(tel2_in,s,1)
exten => _[+0-9A-Za-z].,n,Hangup


; ##############################################################

; draufsicht auf die RĂĽckseite
; o2Box-6431
; ------------------------------
; | 				|
; |				|
; |				|
; |  n f u			|
; |  | | |  			|
; |    1 2			|
; -------------------------------
[tel1_out]
exten => _X.,1,Set(CALLERID(num)=${FXS1_NUM})
exten => ${FXS2_SNUM},2,Goto(ltq2_in,s,1)
exten => _X.,n,Gosub(all,${EXTEN},1)

[tel2_out]
exten => _X.,1,Set(CALLERID(num)=${FXS2_NUM})
exten => ${FXS1_SNUM},2,Goto(ltq1_in,s,1)
exten => _X.,n,Gosub(all,${EXTEN},1)



[ltq1_out]
exten => _X!,1,Dial(local/${EXTEN}@tel1_out/n)

[ltq2_out]
exten => _X!,1,Dial(local/${EXTEN}@tel2_out/n)




[tel1_in]
exten => s,1,Dial(local/s@ltq1_in/n)
exten => s,2,Hangup

[tel2_in]
exten => s,1,Dial(local/s@ltq2_in/n)
exten => s,2,Hangup




[ltq1_in]
exten => s,1,Dial(TAPI/1,${FXSTO},t)
exten => s,2,Hangup

[ltq2_in]
exten => s,1,Dial(TAPI/2,${FXSTO},t)
exten => s,2,Hangup




[lantiq1]
include => ltq1_out

[lantiq2]
include => ltq2_out 

/etc/asterisk/lantiq.conf

;
; TAPI Telephony Interface
;
; Configuration file

[interfaces]
;
; Number of FXS ports (default: 2)
channels = 2
per_channel_context = on
;
; Set tapi firmware file path
;firmwarefilename = /lib/firmware/danube_firmware.bin
;
; Set tapi bbd file path
;bbdfilename = /lib/firmware/danube_bbd_fxs.bin
;
; Set vmmc device path
;basepath = /dev/vmmc
;
[general]
;
; Gain setting for the receive and transmit path.
; The value is given in dB within the range (-24dB to +12dB), in 1 dB steps.
;
;rxgain = 1
;txgain = 1
;
;
;
; Line echo cancller valid types:
;
; off           LEC and echo suppressor turned off.
; nlec          LEC using fixed window; no echo suppressor.
; wlec          LEC using fixed and moving window; no echo suppressor.
; nees          LEC using fixed window and echo suppressor.
; nfees         LEC using fixed and moving window and echo suppressor.
; es            Echo suppressor
;
echocancel = nfees
;
; If nlec or wlec is selected than size of the fixed window in narrowband (8 kHz) sampling mode
; can be defined with:
; A value of 0 defaults to: 16 ms if type is nlec or 8 ms if type is wlec:
;
;echocancelfixedwindowsize = 0
;
; If wlec is selected than size of the moving window in narrowband (8 kHz) sampling mode
; can be defined with:
; A value of 0 defaults to 8 ms.
;
;echocancelnfemovingwindowsize = 0
;
; If wlec is selected than size of the moving window in wideband (16 kHz) sampling mode
; can be defined with:
; A value of 0 defaults to 8 ms.
;
;echocancelwidefixedwindowsize = 0
;
; Activate or deactivate line echo cancller NLP (Non Linear Processor) if the LEC is active,
; valid is on or off:
;
echocancelnlp = on
;
;
;
; Jitter buffer valid types:
;
; fixed         Fixed jitter buffer.
; adaptive      Adaptive jitter buffer.
;
;jitterbuffertype = fixed
;
; Jitter buffer packet adaptation valid types:
;
; voice         Jitter buffer optimized for voice.
; data          Jitter buffer optimized for data.
; datanorep     Jitter buffer optimized for data but without doing packet repetition.
;
;jitterbufferpackettype = voice
;
;       Following jitter buffer values can only be used with jitter buffer adaptive type:
; Turns on or off jitter buffer adaptation:
;
;jitterbufferadaptation = off
;
; Scaling factor multiplied by 16; in adaptive jitter buffer mode, the target average playout delay is
; equal to the estimated jitter multiplied by the scaling factor. The default value for the scaling factor
; is about 1.4 (scaling=22), meaning that the target average playout delay is equal to the estimated
; jitter. If less packets should be dropped because of jitter, the scaling factor has to be increased. An
; increase in the scaling factor will eventually lead to an increased playout delay.
; The supported range is 1 to 16 (16 up to 256).
;
;jitterbufferscalling = 1
;
; Initial size of the jitter buffer in time stamps of 125 us:
;
;jitterbufferinitialsize = 125
;
; Minimum size of the jitter buffer in time stamps of 125 us
;
;jitterbufferminsize = 125
;
; Maximum size of the jitter buffer in time stamps of 125 us
;
;jitterbuffermaxsize = 125
;
;
;
; Caller id valid standards:
;
; telecordia     Bellcore/Telcordia GR-30-CORE; use Bell202 FSK coding of CID information. (default)
; etsifsk        ETSI 300-659-1/2/3 V1.3.1; use V.23 FSK coding to transmit CID information.
; etsidtmf       ETSI 300-659-1/2/3 V1.3.1; use DTMF transmission of CID information.
; sin            SIN 227 Issue 3.4; use V.23 FSK coding of CID information.
; ntt            NTT standard: TELEPHONE SERVICE INTERFACES, edition 5; use a modified V.23 FSK coding of
;                CID information.
; kpndtmf        KPN; use DTMF transmission of CID information.
; kpndtmffsk     KPN; use DTMF and FSK transmission of CID information.
;
; calleridtype = telecordia
;
;
;
; Voice activity detection:
;
; on            Voice activity detection on; in this case also comfort noise and spectral
;               information (nicer noise) is switched on.
; g711          Voice activity detection on with comfort noise generation,
;               but without spectral information.
; cng           Voice activity detection on with comfort noise generation, but without silence compression
; sc            Voice activity detection on with silence compression,
;               but without comfort noise generation.
;
;voiceactivitydetection = on
;
;
;
;
;
; Timeout between dialed digits, in milliseconds, before placing the call.
;
interdigit = 5000
;
;
;
; Tone generator type (default: integrated)
; integrated	Use tapi tone generator
; asterisk	Use asterisk tone generator where possible
; media		Use media tone where possible
;
;tone_generator = integrated
;

I am a great fan of the combination Lantiq-telefon-device with LEDE + Asterisk + Stefan Kochs chan-lantiq.
It works fine with older rotary phones the reasons are:

  • the fw + driver supports pulsedialing and it have tolerant timings (many router supports pulse dialing but they have strict timings)
  • the problem on the new VoIP technik is they are stupid. The relais technik from the past are more "inteligent" because the know when a number should end.
    the chan-lantiq waits a time for the next number, if no number comes, the number that you have put in, will be used.
    on chan-lantiq you have the choice how long the waitime should bee, here they will wait 5 seconds
...
interdigit = 5000
...

especialy on this Device i have the huge problems with old phones and echos.
on the O2-Box 6431 are the problems are smaller. I belive that the reasons are less value of elektrical resistance in the exchangers of older phones or other different elektrical values.
But it is possible to solve this via:

...
echocancel = nfees
echocancelnlp = on
...
1 Like

I wrote u some private messages. Lets have a talk there.

Hi, you guys were able to integrate Asterisk and a USB 3g Dongle on LEDE and make that act as a gateway for phone calls? that is amazing!!! I have several routers with usb and 3g USB dongles around, I want to do it too!

Had you success on this?

First you need a UMTS-stick that will support by chan-dongle
Minimum but no garantee it should support normal calls:
from the first post:

for supported models see here: https://github.com/wdoekes/asterisk-chan-dongle

I had E173 and E303 it should work, right ?

To get it working I just need to follow the previous posts with instructions on this thread right? or I need to read other links to learn how to do it?

if they are not from Brazil they should work.

No post 5 descripe only the using of FXS ports of O2-Box 6431
for a SIP account you can use this: Lede 17.01 rc2 - asterisk13 - with Sipgate how to config ? VGV7510KW22 / o2 6431
but it is better you are understanding what you do and how the context are working:
read: http://the-asterisk-book.com
especially cap. 2
And NEVER NEVER NEVER allow dialing out, from the default context or people can make telefon calls of your bill

At the moment is there a problem with package-repo see here:


no idea what is going on.

but it is necessary to compile Asterisk-13.x + channel-dongle self.
simple build script are inside the archiv and i hope it works:
https://forum.openwrt.org/viewtopic.php?pid=357374#p357374

the /etc/asterisk/dongle.conf can normaly be leave
read config samples inside channel-dongle, but here is a example too:

...
[your_utmscall_out_context]
exten => _X.,1,Dial(DONGLE/dongle0/${EXTEN},120)
exten => _[+0-9A-Za-z].,n,Hangup
;
; your utms call in context:
; this example calling the both FXS ports & the SIP account 326 & an other Router with SIP telephony, simultaneously if somewhere call your dongle.
; The first one get the channel
[dongle0]
exten => _X.,1,Dial(local/s@ltq1_in/n&local/s@ltq2_in/n&SIP/326&SIP/12345678@192.168.78.1:5060)
exten => _[+0-9A-Za-z].,n,Hangup
...

Many many thanks for your help! I hope to had time in a few days to try this out, It seems to be really interesting thing to try!

Thanks!