Hi there,
Could be that the dependencies aren't available:
mod-usb-acm
kmod-usb-serial
kmod-usb-serial-option
libusb-1.0
usb-modeswitch
What router you got?
Hi there,
Could be that the dependencies aren't available:
mod-usb-acm
kmod-usb-serial
kmod-usb-serial-option
libusb-1.0
usb-modeswitch
What router you got?
Dependencies you point are all in place.
Collected errors:
These 5 packages are sadly missing from the rmipsel_mips32 feed.
As for the router, a clone of Asus WL-500gP v2 ( brcm47xx/legacy) with 4/32 memory - D-link DIR-320 revA1.
Hi there,
Well, the problem is that the 18.06 package build bots use the SDK from ar7 (link) to build mipsel_mips32 packages. And this SDK for some reason unbeknownst to me doesn't have USB_SUPPORT nor AUDIO_SUPPORT. So the packages you mentioned above all vanish and aren't built.
So what can you do? You could build the packages yourself, with another SDK. The one that matches your router best should be in here. I downloaded it and indeed chan-dongle and chan-alsa etc are available in menuconfig. USB_SUPPORT and AUDIO_SUPPORT are both defined in this SDK.
2nd option is to go for OpenWrt 19.07. In there the mentioned packages are built by the build bots. Because on 19.07 the bots use brcm47xx/generic SDK to build mipsel_mips32 packages
OpenWrt-19 comes with asterisk16. So I did a backward flip, found a LEDE version of the package and got it installed without errors. Voila:
OpenWrt*CLI> dongle show devices
ID Group State RSSI Mode Submode Provider Name Model Firmware IMEI IMSI Number
dongle0 1 Free 19 0 0 Beeline E1550 11.608.14.15.311 353... 25... +7905XXXXXXX
Work in progress...
Maybe that is worth a new topic then.
receiving a SMS message (Asterisk chan_dongle) and execute any command found (if any) in the SMS body message
Chan Spy : listen in on a call, or whisper into a conversation.
If you have not installed it previously, you need to install app_chanspy module:
opkg update
opkg install asterisk13-app-chanspy
note: you need at least "beep.gsm" audio file in the asterisk sounds directory (see above).
Then simply add the following lines at the end of the file "/etc/asterisk/extensions.conf":
Chanspy Scanning
exten => 555,1,Chanspy(all,b)
note: put them under [from-internal] section
save and restart Asterisk.
Now by dialing 555 from another extension you can listen in on a call.
While spying, the following actions may be performed:
Dialing # cycles the volume level.
Dialing * will stop spying and look for another channel to spy on.
Dialing a series of digits followed by # builds a channel name to append to
(e.g. run ChanSpy(Agent) and dial 1234# while spying to jump to channel Agent/1234)
A number (161) to call to listen to the current time:
opkg update
opkg install asterisk13-app-sayunixtime
opkg install asterisk13-sounds
opkg install zoneinfo-core
opkg install zoneinfo-europe
; exact time now - call 161
exten => 161,1,Set(CHANNEL(language)=en)
exten => 161,n,SayUnixTime(,CET,AkMbdY)
exten => 161,n,Wait(2)
exten => 161,n,Hangup()
note: put them under [from-internal] section
you may want to change zoneinfo-europe and CET (Central European Time) to your timezone
Sometime you need to use audio files .sln you have created for another linux build, this is a simple way to convert .sln files to .gsm:
opkg update
opkg install sox
converting:
sox my_custom_message.sln my_custom_message.gsm
then put your custom files in the following directory:
/usr/share/asterisk/sounds/custom (asterisk 13).
/usr/lib/asterisk/sounds/custom (asterisk 11)
The dialplan (/etc/asterisk/extensions.conf) would be:
exten => 600,1,Answer()
exten => 600,n,Set(CHANNEL(language)=en)
exten => 600,n,Ringing
exten => 600,n,Wait(1)
exten => 600,n,Playback(./custom/please_wait)
exten => 600,n,Dial(SIP/200,30)
exten => 600,n,Wait(1)
exten => 600,n,Playback(./custom/leave_a_message)
exten => 600,n,VoiceMail(240@voicemail)
exten => 600,n,Hangup()
extra: convert wav files to sln:
sox message.wav -t raw -r 8000 -s -2 -c 1 message.sln
to enter asterisk CLI:
asterisk -vvvvr
Clear SMS sim memory:
OpenWrt*CLI> dongle cmd dongle0 AT+CPMS=\"SM\",\"SM\",\"SM\"
OpenWrt*CLI> dongle cmd dongle0 AT+CMGD=1,4
Clear SMS dongle memory:
OpenWrt*CLI> dongle cmd dongle0 AT+CPMS=\"ME\",\"ME\",\"ME\"
OpenWrt*CLI> dongle cmd dongle0 AT+CMGD=1,4
Block calls based on area code
in this example all area codes are rejected except 011 and 0141 (commented out)
;
exten => 0123456789,1,GotoIf($[${REGEX("^010" ${CALLERID(NUM)})}=1]?spam)
;exten => 0123456789,n,GotoIf($[${REGEX("^011" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^012" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^013" ${CALLERID(NUM)})}=1]?spam)
;exten => 0123456789,n,GotoIf($[${REGEX("^014" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^015" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^016" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^017" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^018" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^019" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^02" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^03" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^04" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^05" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^06" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^07" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^08" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^09" ${CALLERID(NUM)})}=1]?spam)
exten => 0123456789,n,GotoIf($[${REGEX("^00" ${CALLERID(NUM)})}=1]?spam)
;
exten => 0123456789,n,Answer()
;
exten => 0123456789,n,Set(CHANNEL(language)=en)
exten => 0123456789,n,Ringing
exten => 0123456789,n,Wait(1)
exten => 0123456789,n,Dial(SIP/200,30,r)
exten => 0123456789,n,Hangup()
;
; spam
exten => 0123456789,n(spam),Wait(0)
exten => 0123456789,n,Set(CHANNEL(language)=en)
exten => 0123456789,n,Answer()
exten => 0123456789,n,Wait(2)
exten => 0123456789,n,Playback(ss-noservice)
exten => 0123456789,n,Wait(2)
exten => 0123456789,n,Hangup()
Transfer a call coming from SIP number to another number via Dongle GSM
;
;exten => 0123456789,n,Dial(dongle/dongle0/+39024242424,60)
Automatic calls on schedule
configuration files:
nano /root/testcall.call
note: if you haven't installed nano (opkg install nano) use vi
Channel: dongle/dongle0/+39022446688 #outbound channel to be used
#Channel: SIP/0123456789@+39022446688 #alternative SIP outbound channel
MaxRetries: 0 # 0 = no retries if number is busy or unavailable, 1 = 1 retry, etc
RetryTime: 60 # wait time between retries if > 0
WaitTime: 60 # ring time
Extension: 980 # extension to launch
nano /etc/asterisk/extensions.conf
[from-pstn] ;comment out if dongle channel is not used
; [default] ;uncomment if SIP channel is used
;
; 980 audio message
;
exten => 980,1,Answer
exten => 980,n,Playback(/custom/somemessage)
exten => 980,n,Wait(2)
exten => 980,n,Hangup()
create script:
nano /root/testcall.sh
#!/bin/sh
/bin/cp /root/testcall.call /tmp/testcall.call
/bin/sleep 1
/bin/mv /tmp/testcall.call /var/spool/asterisk/outgoing/
note: the call starts as soon the .call file is placed in /var/spool/asterisk/outgoing/
give permission:
chmod 755 /root/testcall.sh
to start automatic call lanch:
/bin/sh /root/testcall.sh
you may want to put the script on crontab:
crontab -e
5 7 * * * /bin/sh /root/testcall.sh # automatic call every day at 07:05 AM
script to chek if SIP account is registered, if not reload SIP on asterisk
#!/bin/bash
#
checkifok=`/usr/sbin/asterisk -rx "sip show peer 0123456789" | grep Status | grep -wc OK`
if [[ $checkifok == 0 ]]; then
/bin/sleep 3
/usr/sbin/asterisk -rx "sip reload"
else
/bin/echo "Trunk OK" > /dev/null 2>&1
fi
Create and use a free SIP account at https://www.ippi.com/
(and get a free INUM +883 number - https://en.wikipedia.org/wiki/INum_Initiative)
nano /etc/asterisk/sip.conf
add the following lines under appropriate sections:
[general]
register => youruser:yourpassword@ippi.fr
[ippi_incoming] ; incoming calls from ippi
type=peer
host=ippi.fr
context=from_ippi
nat=yes
canreinvite=no
[ippi_outgoing] ; outgoing calls from ippi
type=peer
host=ippi.fr
username=youruser
secret=yourpassword
fromuser=user
fromdomain=ippi.fr
nat=yes
canreinvite=no
context=ippi_outgoing
nano /etc/asterisk/extensions.conf
[from_ippi]
;
exten => s,1,Answer()
exten => s,n,Dial(SIP/200,30,r)
exten => s,n,Hangup()
;
[ippi_outgoing]
exten => _X.,1,Dial(SIP/ippi_outgoing/${EXTEN})
; free calls between ippi accounts
Restart Asterisk after any change
/etc/init.d/asterisk restart
If you need some help you can contact me on my INUM: +883 5100 0807 8385 free call from many voip providers (ex. www.ippi.fr, see above)
SORRY, INUM is dead
Tool-free calls
make free calls to tool-free numbers (USA and Poland) without any SIP account or registration
nano /etc/asterisk/extensions.conf
[from-internal]
; USA tool-free calls
exten => _800NXXXXXX,1,Dial(SIP/${EXTEN}@tollfree.alcazarnetworks.com)
exten => _855NXXXXXX,1,Dial(SIP/${EXTEN}@tollfree.alcazarnetworks.com)
exten => _866NXXXXXX,1,Dial(SIP/${EXTEN}@tollfree.alcazarnetworks.com)
exten => _877NXXXXXX,1,Dial(SIP/${EXTEN}@tollfree.alcazarnetworks.com)
exten => _888NXXXXXX,1,Dial(SIP/${EXTEN}@tollfree.alcazarnetworks.com)
; Poland tool-free calls
exten => _48800XXXXXX,1,Dial(SIP/${EXTEN}@tollfree.easycall.pl)
ECHO TEST
for evaulating echo latency
;
; 982 audio test (echo)
;
exten => 982,1,Answer
exten => 982,n,Wait(1)
exten => 982,n,Playback(demo-echotest)
exten => 982,n,Echo
exten => 982,n,Playback(demo-echodone)
exten => 982,n,Wait(2)
exten => 982,n,Hangup()
Openwrt 19 and Asterisk 16 (openwrt build) are too young to use them safely in production, I prefer using stable and full tested versions, particularly for critical application like telephony, I don't want to take the risk to have my OpenWRT Voip server hacked and then lose money
For a critical mission I used Barrier Breaker and Asterisk 11, it works very well and I've never had any problem at all.
My main Voip server with dozen of trunks, extensions and lines uses Asterisk 1.6.24 (Ubuntu 10.04) since 2010
My next step is to try to create a SBC (Session Border Controller) on Openwrt with FreeSWITCH and maybe later on an Asterisk Realtime server (database version) on OpenWRT.
I'm moving to OpenWRT for small/medium voip server because it is very reliabile, robust, stable and has a low power consumption.
Asterisk requires about 30 MHz of CPU power per active voice channel and about 8 Mbytes per concurrent SIP call (no transcoding).
The router I prefer using is TP-Link TL-WDR4900 (PowerPC cpu @ 800 Mhz, 128 MB ram + 64 Mbytes swap with ZRAM), it can easily handle up to 20 concurrent SIP calls.