Saturday, November 22, 2014

How to Setup GOIP 1/4/8 (GSM VOIP Gateway) as a Trunk gateway for Asterisk (PABX system)

How to Setup GOIP 1/4/8/16 .. as a Trunk gateway for Asterisk (PABX system)
The GOIP (VOIP) routers is available from


What can I do with a GOIP?

With one GOIP device you can do the following.
1) Dial from GSM Cellphone and PSTN land line to a SIP (VOIP) phone.
2) Dail from SIP to GSM Cellphone and PSTN line.
3) GOIP can and act as a trunk gateway for Asterisk (PABX)

With two and more GOIP devices. (Branch to Branch local dial cost)

Here is the setup procedure for the GSM/PSTN to SIP and SIP GSM/PSTN

1) Install a local GSM SIM  from your local GSM network provider ( MTN or Vodacom ....) make shore there is airtime on the SIM and you know what is the Cell number.

2) Connect the GOIP to your internet router with  ethernet cable. (Router should have DHCP enabled)

2) You know need to find out what IP was allocated to your GOIP by your Internet router.
There are two ways to establish the GOIP IP.
  • Dial the SIM number of anyone of the GSM channels available. Once the cal is answerd dial “*01” to hear voice prompt reporting the LAN port IP address.
  • Send the “#INFO#” SMS message command to of the GSM channels available. The GoIP will then return back the LAN port IP address.  E.G.
3) Now that you know what your GOIP IP is just use your browser and point it to the IP for example

4) You should get a login popup, the default login username and password is admin admin.

5) After login you should see a admin home page.

6) We now need to configer the GOIP (SIP200) to foreword incoming GSM calls to cell number to a SIP numbers (My SIP number at home (101) and on my Android phone(100).
The problem is that the GOIP can only foreword to one SIP number.
So what I did is foreword it to a SIP number on my Asterisk server and allowed the Asterisk to foreword to both SIP phones (100,101). (see diagram below)

6) We now need to set up the Goip to call a SIP (VOIP) number when a call comes in from GSM network.
Click on the Configurations menu on the left.
6.1) I had to give the GOIP a SIP number (200) so that the GOIP can register to Asterisk.
6.2) I had to add a SIP number to GOIP to foreword all incoming GSM calls to a SIP number (105)
6.3) I had to add the Asterisk server IP (substitute your IP)
6.4) and set the rest as in the RED config options below.
GOIP1 Configuration for GSM call forwording to SIP on Asterisk.
7) Next we need to configure Asterisk to allow GOIP1 to register its SIP 200 number and setting up Asterisk to foreword the incoming call to both my SIP app on android as well as my SIP client on My laptop or my Desktop SIP phone.
7.1) Login into you Linux server using your command  terminal (Ubuntu in my case)
7.2) Install Asterisk 
sudo apt-get update
when its complete the install asterisk
sudo apt-get install asterisk
When it is complete we now need to configure Asterisk to allow GOIP to connect to a SIP and to setup asterisk to foreword incoming and outgoing calls to and from Goip.
There is two files that needs editing. sip.conf and extensions.conf
 change to the asterisk config directory /etc/asterisk directory
cd /etc/asterisk
now edit the sip.conf file with your favorite editor
sudo vi sip.conf

add this example to your (/etc/asterisk/sip.config) file
sudo vi /etc/asterisk/sip.config

secret=gioppassword ;NOTE it is important to set up a complex password
qualify=no ; Will not drop the connection
nat=yes ; This phone may be outside the network
host=dynamic ; This device registers with us
canreinvite=no ; Asterisk by default tries to redirect
context=GOIP ; Or whatever context you want to define in Asterisk
mailbox=200@default ; only if you are configuring voicemail.

now add the following to your extensions.conf file (/etc/asterisk/extensions.conf)
sudo vi extensions.conf

in the [general] section add the following  (only numbers in South Africa)

exten => _0[1,8,7]XXXXXXXX,1,Dial(SIP/200/${EXTEN})
and create GOIP section as below

#incoming GOIP call
exten => s,1,Wait(1)
exten => s,n,Answer
exten => s,n,Playback(beep)
exten => s,n,Dial(SIP/101&SIP/102&SIP/103);Dail my Sip app on cell phone and my Sip desktop
exten => s,n,Hangup

Save files

Now restart  asterisk

 sudo /etc/init.d/asterisk stop
 sudo /etc/init.d/asterisk start

now monitor asterisk and test your Goip dail from GSM and dialing from you sip phone to any number in south africa.

sudo asterisk -rvvvvvvv

you should see your connection on the terminal

hope this help

Please note the GOIP units is Available from
Sending an SMS 
wget --user=admin --password=admin --auth-no-challenge --post-data 'line=1&smskey=0000000e&action=SMS&telnum=0812345678&smscontent=TEXT message to be send&send=Send' -O /dev/null

Check if SMS was send (wget will return the XMl below)

Restarting the Goip remotely 
sudo wget --user=admin --password=admin --auth-no-challenge -O /dev/nulll

Setting up SMS server for the Goip is available link below

here is also a good SMS server install dock

Monday, October 27, 2014

How to install Gqrx SDR software on Linux using your RTL dongle or Softrock receivers.

How to install the Gqrx SDR software on Linux using your RTL dongle or Softrock receivers. (Ubuntu)

RTL _dongle

The RTL Dongles is available from
Gqrx SDR software

Update the repository files and update your Linux to the latest versions.
sudo apt-get update
sudo apt-get upgrade

Now install the libraries ... get coffee
Now install the libraries for GQRX SDR on you Linux (Ubuntu)

sudo apt-get install cmake python-cheetah doxygen libboost-all-dev python-sphinx libfftw3-dev python-numpy libqwt-dev libgsl0-dev python-wxgtk2.6 qtcreator libpulse-dev swig libcppunit-dev libusb++-dev libusb-dev libusb-1.0-0-dev maybe some more coffee ;-)

For Ubuntu 16.04 I had to add the following libraries
sudo apt-get install qtdeclarative5-dev libqt5svg5*

Build and Install GNU Radio libraries

Create a directory where you will install the SDR software in your favorite install directory.
mkdir gqrx
goto directory you created.
cd gqrx
get the gnuradio source code
git clone
git clone
if you are using the old git before 1.6 then use this command
git clone git://

it looks like for Ubuntu 16.04 you need to use the following git clone

git clone --recursive
You should see
Cloning into 'gnuradio'...
got to the newly created directory gnuradio when the cloning is done
cd gnuradio
make a build directory
mkdir build
goto the build directory
cd build
Compile gnuradio
cmake ../
if you get an error -- WARNING: Found a known bad version of Boost (v104601). Disabling.
Then run cmake -DENABLE_BAD_BOOST=True ../
This can take a couple of hours depending on the speed of you Linux server.
Now install the newly compiled binaries into the required directories
sudo make install
Now load the the gnu drivers
sudo ldconfig

Build and Install RTL-SDR drivers
go to your favorite install directory
cd ../../../
get the latest source code from
git clone git://
go to the newly created directory
cd rtl-sdr/
Now compile the rtl drivers
create the build directory
mkdir build
go to the build directory
cd build
compile the code
cmake ../
now install the compiled binaries
sudo make install
load the drivers
sudo ldconfig

now copy the content of the file rtl-sdr.rules and append it to the /etc/udev/rules.d/70-persistent-cd.rules file

use your favorite editor

vi rtl-sdr.rules  and copy the content.

then open the file /etc/udev/rules.d/70-persistent-cd.rules

sudo vi /etc/udev/rules.d/70-persistent-cd.rules and append the previous files content at the end
in ubuntu 16.04 the file name was /etc/udev/rules.d/rtl-sdr.rules

This is how my file looked like

# This file maintains persistent names for CD/DVD reader and writer devices.
# See udev(7) for syntax.
# Entries are automatically added by the 75-cd-aliases-generator.rules
# file; however you are also free to add your own entries provided you
# add the ENV{GENERATED}=1 flag to your own rules as well.
# hp_DVD_RW_AD-7581S (pci-0000:00:1f.2-scsi-0:0:0:0)
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.2-scsi-0:0:0:0", SYMLINK+="cdrom", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.2-scsi-0:0:0:0", SYMLINK+="cdrw", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.2-scsi-0:0:0:0", SYMLINK+="dvd", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.2-scsi-0:0:0:0", SYMLINK+="dvdrw", ENV{GENERATED}="1"
#************************* below is what was appended ****************
# original RTL2832U vid/pid (hama nano, for example)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2832", MODE:="0666"
# ezcap EzTV668 (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", MODE:="0666"
# Terratec Cinergy T Stick Black (rev 1) (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00a9", MODE:="0666"
# Terratec NOXON rev 1 (FC0013)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00b3", MODE:="0666"SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00b4", MODE:="0666"SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00b7", MODE:="0666"SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00c6", MODE:="0666"
# Terratec Cinergy T Stick RC (Rev.3) (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00d3", MODE:="0666"
# Terratec T Stick PLUS (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00d7", MODE:="0666"
# Terratec NOXON rev 2 (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00e0", MODE:="0666"
# PixelView PV-DT235U(RN) (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1554", ATTRS{idProduct}=="5020", MODE:="0666"
# Astrometa DVB-T/DVB-T2 (R828D)SUBSYSTEMS=="usb", ATTRS{idVendor}=="15f4", ATTRS{idProduct}=="0131", MODE:="0666"
# Compro Videomate U620F (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="185b", ATTRS{idProduct}=="0620", MODE:="0666"
# Compro Videomate U650F (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="185b", ATTRS{idProduct}=="0650", MODE:="0666"# Compro Videomate U650F (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="185b", ATTRS{idProduct}=="0650", MODE:="0666"
# Compro Videomate U680F (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="185b", ATTRS{idProduct}=="0680", MODE:="0666"
# Sweex DVB-T USB (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1f4d", ATTRS{idProduct}=="a803", MODE:="0666"
# GTek T803 (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1f4d", ATTRS{idProduct}=="b803", MODE:="0666"
# Lifeview LV5TDeluxe (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1f4d", ATTRS{idProduct}=="c803", MODE:="0666"
# MyGica TD312 (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1f4d", ATTRS{idProduct}=="d286", MODE:="0666"
# PROlectrix DV107669 (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1f4d", ATTRS{idProduct}=="d803", MODE:="0666"
# Zaapa ZT-MINDVBZP (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b80", ATTRS{idProduct}=="d398", MODE:="0666"
# Twintech UT-40 (FC0013)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b80", ATTRS{idProduct}=="d3a4", MODE:="0666"
# ASUS U3100MINI_PLUS_V2 (FC0013)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b80", ATTRS{idProduct}=="d3a8", MODE:="0666"
# Dexatek DK DVB-T Dongle (Logilink VG0002A) (FC2580)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1d19", ATTRS{idProduct}=="1101", MODE:="0666"
# Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1d19", ATTRS{idProduct}=="1102", MODE:="0666"# Dexatek DK 5217 DVB-T Dongle (FC2580)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1d19", ATTRS{idProduct}=="1103", MODE:="0666"
# MSI DigiVox Micro HD (FC2580)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1d19", ATTRS{idProduct}=="1104", MODE:="0666"
# DigitalNow Quad DVB-T PCI-E card (4x FC0012?)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0413", ATTRS{idProduct}=="6680", MODE:="0666"
# Leadtek WinFast DTV Dongle mini D (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0413", ATTRS{idProduct}=="6f0f", MODE:="0666"
# Genius TVGo DVB-T03 USB dongle (Ver. B)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0458", ATTRS{idProduct}=="707f", MODE:="0666"
# GIGABYTE GT-U7300 (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b80", ATTRS{idProduct}=="d393", MODE:="0666"
# DIKOM USB-DVBT HDSUBSYSTEMS=="usb", ATTRS{idVendor}=="1b80", ATTRS{idProduct}=="d394", MODE:="0666"
# Peak 102569AGPK (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b80", ATTRS{idProduct}=="d395", MODE:="0666"
# SVEON STV20 DVB-T USB & FM (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b80", ATTRS{idProduct}=="d39d", MODE:="0666"
# SVEON STV21 DVB-T USB & FMSUBSYSTEMS=="usb", ATTRS{idVendor}=="2b80", ATTRS{idProduct}=="d3b0", MODE:="0666"

Building and Install gr_osmoSDR

cd ../../
git clone git://
cd gr-osmosdr/
mkdir build
cd build/
cmake ../ -Wno-dev
sudo make install
sudo ldconfig

Building and Install Gqrx with command line.

git clone gqrx.git
cd gqrx.git
mkdir build
cd build
cmake ..

sudo make install
If you want to build the code using the Qt development environment then follow the steps below

cd ../../
git clone
cd gqrx
qtcreator ./

A new window will open (the QT compiler).
When it opens click the build menu then the build all option.

QT Compiler

you should see The process "/usr/bin/make" exited normally.

Plug in your RTL dongle.
Now run gqrx.

Select Yes
GQRX Should now be open. On the first run you will be prompted for a device listing.

Select your SDR (in my case RTL dongle)

 In the device drop down menu select "ezcap USB 2.0 DVB-T/DAB/FM Dongle", then continue to the main GQRX window.

Select File->Start DSP. You should now be receiving something.
Tune to a local radio station between 88-108Mhz FM.
select Wide FM Stero as the Mode Type.

Now connect a proper external antenna to your RTL dongle or Softrock HF/VHF kit.
Hope you have lost of fun ;-)

Here is a video of GQRX using the 100Khz to 17Ghz RTL dongle in direct conversion mode.

How to configure your direct conversion dongle.

Here is the screen-shot of the configuration on Linux for Gqrx
  1. Device Select other
  2. Device String rtl=0,direct_sample=2 (possibly 0/1/2) (This number could differ depending on which pin was wired via balin)
Device String rtl=0,direct_sample=2
Here is a picture of the 100KHX to 1.7Ghz rtl dongle
100Khz to 1.7Ghz RTL direct conversion dongle
They are available at

Saturday, October 11, 2014

Setting up my 30m APRS on HF using Quisk SDR, Soundmodem and Xastir on Linux.

Setting up my 30m APRS on HF using Quisk SDR, Soundmodem and Xastir on Linux.

Here is how I conferred my HF APRS gateway from a HF SDR. (30m Softrock SDR)

30m APRS hardware

1) Install QUISK  (SDR software) on on Linux.

2) Install Alsa loop. (loopback sound driver)
3) Install Soundmodem.  (AFSK Modem)
4) Install Xastir. ( APRS IGate and map viewer)

So lets begin.

1) Install QUISK  (SDR software) on on Linux.

The Quisk instillation need Python so you will have to install the following first.
Install the following packages.
sudo apt-get install python2.7, python2.7-dev, python-wxgtk2.8, fftw3-dev, libasound2-dev, and portaudio19-dev.

goto your Downloads directory. ( or you favorite directory)

cd Downloads
Download the Quisk application from if you want the latest version at (quisk-3.4.4.tar.gz tar -xvf and then run you need python ass seen above) or you could run the command  sudo apt-get install quisk

Here is the instructions if you get the latest version

 sudo apt-get install quisk
unzip the quisk source code
tar -xvf quisk-3.6.18.tar.gz
there should now be a directory quisk-3.6.10
goto quisk-3.6.10 directory
cd quisk-3.6.10
Compile the quisk application
sudo make
sudo make install
you now need to create a configuration file for quisk to see your Softrock lite II sdr sound input IQ signal.
Create a text file with you favorite text editor and copy the text below and save it as


# These are the configuration parameters for Quisk using the
# SDR-IQ by RfSpace as the capture device.

# Please do not change this sample file.

# Instead copy it to your own and make changes there.
# See for more information.

from sdriqpkg import quisk_hardware             # Use different hardware file

# In ALSA, soundcards have these names:

#name_of_sound_play = "hw:0"
#name_of_sound_play = "hw:1"
#name_of_sound_play = "plughw"
#name_of_sound_play = "plughw:1"
#name_of_sound_play = "default"

use_sdriq = 1                                   # Use the SDR-IQ

sdriq_name = "pcm.sdrXonarD1Record12"
sdriq_clock = 66666667.0                # actual sample rate (66666667 nominal)
sdriq_decimation = 1250                 # Must be 360, 500, 600, or 1250
sample_rate = int(float(sdriq_clock) / sdriq_decimation + 0.5)  # Don't change this
name_of_sound_capt = ""                 # We do not capture from the soundcard
name_of_sound_play = "hw:0"             # Play back on this soundcard need s to be loopback device
playback_rate = 48000                   # Radio sound play rate
channel_i = 0                                   # Soundcard index of left channel
channel_q = 1                                   # Soundcard index of right channel

display_fraction = 0.85                 # The edges of the full bandwidth are not valid

Then save the file.
We now need to setup the ALSA sound system to map the alsa audio coming into the server to a friendly name "pcm.sdrXonarD1Record12" see above config file.
Run the command sudo arecord -l it will list all the ALSA audio input devices.

 sudo arecord -l
**** List of CAPTURE Hardware Devices ****
xcb_connection_has_error() returned true
Home directory /home/anton not ours.
card 0: D1 [Xonar D1], device 0: Multichannel [Multichannel]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: VT1708S Analog [VT1708S Analog]
  Subdevices: 2/2
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
card 2: D1_1 [Xonar D1], device 0: Multichannel [Multichannel]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 3: M44 [M Audio Delta 44], device 0: ICE1712 multi [ICE1712 multi]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

Please note I have multiple sound cards in my Linux server so you might not have as many interfaces listed as mine above.

Identify the your sound card in the list.

in my case it is :card 3: M44 [M Audio Delta 44], device 0: ICE1712 multi [ICE1712 multi]
You now need to configure the ALSA system to map the name of quisk to this card and you do it in the ALSA config file in your user home directory. (in my case it is /home/anton)

cd  to go to your home directory

pwd To list your home directory

edit the following ALSA audio mapping file with you favorite text editor .asoundrc  (note the dot in front of the name it means its hidden) I use VI as an editor

 vi .asoundrc

Add the following and change the names relevant your sound card name (RED)

#************************** pcm definition ************************************
pcm.sdrM44_card {# defining the card to be used
     type hw
     card M44 # this has to be done to force reboot to point to same cards

#************************* controller section ***********************************
ctl.sdrM44_card {#defining the control interface
     type hw
     card M44 # this has to the same as above

#****************************** recording ***********************************
pcm.sdrM44Record12 { # input input 1 and 2
     type plug
     slave {
     pcm "dsnooper_M44"
     channels 4
         ttable.0.0 1
         ttable.1.1 1

Run the quisk with your costume configuration  with the full path to the configfile

sudo quisk -c /home/anton/Downloads/quisk-3.6.10/

Now we need to setup the ALSA loop back audio interface for Quisk to send the USB demodulated audio to Xastir or Fldigi or what ever modem device you are using.

2) Install ALSA loop. (Loopback sound driver)

To check if it is already installed in the ALSA device driver.
run the command sudo arecoed -l 

If you see the loopback devise skip this section below and go section 3

Compiling snd-aloop if needed

Update: it may not be needed any longer as of kernel 2.6.38 ...

It may well be that the ALSA Loopback kernel module was not included in your distribution's kernel package (it is the case in e.g. debian, as far as I know). This is no bother as we can easily compile it. Note that there is no way around since the loopback ALSA module is not part of the kernel baseline in general. So unless your kernel packager had done the following work, you will have to do it yourself ...
Warning: I tried alsa-driver 1.0.21 against and while it compiled fine, it would not load at all, even when forced. So don't waste your time with this version combo.
Make sure you really don't have it installed. Better check that not :)
sudo modinfo snd-aloop
If modinfo reports nada, time to check that you have installed the kernel headers corresponding to your presently running kernel. I'll leave this to you as this is very distro dependent. In debian based distros, the package is called something like linux-headers-xxx and must match the installed kernel (package linux-image-xxx).
Time to make a backup of the installed kernel modules. Example:

mkdir backup
cd backup
cp -a /lib/modules/`uname -r`/kernel/sound .

Prerequisite: you of course need a compiler and other tools. In debian based distros, you can check that you have a package called build-essential installed:
dpkg -l build-essential
If not, just get it:
sudo apt-get install build-essential

Now grab the alsa-driver source code (same version as your installed ALSA, in my case 1.0.23 which I will use in my description) from the The ALSA website, uncompress, untar it and cd to the alsa-driver top dir. Here is a command summary

mkdir source
cd source
tar jxvf alsa-driver-1.0.23.tar.bz2
cd alsa-driver-1.0.23

Now you have to configure the source package for compilation. To help you, look at what ALSA modules are currently loaded:
cat /proc/asound/modules

sudo make install

It will normally install all the compiled modules into the correct location of your kernel installation. Now check that the kernel knows about the loopback module:

~$ sudo modinfo snd-aloop
filename: /lib/modules/2.6.32/kernel/sound/drivers/snd-aloop.ko
license: GPL
description: A loopback soundcard
author: Jaroslav Kysela <>
srcversion: B85A5847D027749DCF96195
depends: snd-pcm,snd
vermagic: 2.6.32 SMP preempt mod_unload modversions CORE2
parm: index:Index value for loopback soundcard. (array of int)
parm: id:ID string for loopback soundcard. (array of charp)
parm: enable:Enable this loopback soundcard. (array of bool)
parm: pcm_substreams:PCM substreams # (1-8) for loopback driver. (array of int)

Now lets load it. But before that, shut down all audio apps (including firefox). Once done, do this:
sudo modprobe snd-whatever-module-you-need
sudo modprobe snd-aloop
sudo alsa force-unload

Now, see if it works: ~$ lsmod | grep aloop snd_aloop 4732 0
snd_pcm 57065 6 snd_aloop,snd_hdsp
snd 40404 18 snd_aloop,snd_hdsp,snd_pcm,snd_hwdep,snd_rawmidi,snd_seq,snd_timer,snd_seq_device

If all was ok then add snd-aloop in /etc/modules. (If you wish, you can give the loopback soundcard another name than "Loopback" in a modprobe option but I kept the default throughout the entire HOWTO and there is no need to change it.)
In case anything went wrong and you wish to go back to your previous ALSA installation, no problem:

sudo rm /lib/modules/`uname -r`/kernel/sound sudo cp -a ~/backup/sound /lib/modules/`uname -r`/kernel/ sudo alsa force-reload

there should be two new ALSA devicess 

This virtual sound card consists of 2 devices:
to see if the loop back connector is active run the command aplay -l or arecord -l

sudo arecord -l

**** List of CAPTURE Hardware Devices ****
xcb_connection_has_error() returned true
Home directory /home/anton not ours.

card 4: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]

  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 4: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
  Subdevices: 7/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7

if you did see the above loopback then you are ok and we can just add the loopback configuration to the file as above.

edit the file
and make shore the it has the following.
name_of_sound_play = "hw:0"             # Play back on this soundcard need s to be loopback device
select the configeration button on quisk to see if the loopback is working fine.

Now we can configure Soundmodem and Xastir to decode our HF APRS....

3) Install Soundmodem. (AFSK Modem)

Instillation of soundmodem
sudo apt-get install soundmodem

We now need to configure the soundmodem and this can easily be done with guide.
sudo soundmodemconfig

Set up the ALSA audio driver and point it to the loopback interface we have configured above " plughw:Loopback,1,0"

Create a new channel by write clicking on the previous configuration that was created and selecting new channel.

Select KISS and then enter the serial device file /dev/soundmodem0

Select Modulator and set the bits 300 board  and Frequencies to 900Hz , 1.1 Khz and enable Differential Encoding.

Select Demodeluator and set the bits 300 board  and Frequencies to 900Hz , 1.1 Khz and enable Differential Encoding.

Now to test your configuration.
Select the diagnose menu and then the spectrum option and then tune the APRS frequency on the Quisk SDR so that the AFSK tones is in the center of pass band section in the spectrum display below. (Center frequency is 1Khz) You can also then check if you Radio audio frequency is flat. (Both peeks is the same high)

Move your mouse cursor over display to find frequency of display. ( wait for APRS message to be received on HF)

Adjust the Quisk SDR frequency until the APRS signal is across the 1Khz frequency. see above

That's it, your soundmodem is configured.

here is a copy of my soundmodem configuration file /etc/ax25/soundmodem.conf that was generated with soundmodemconfig application.

<?xml version="1.0"?>

 <configuration name="HF_300Board">
<chaccess txdelay="150" slottime="100" ppersist="40" fulldup="0" txtail="10"/>
<audio type="alsa" device="plughw:Loopback,1,0" halfdup="0" capturechannelmode="Mono"/>
<ptt file="none" gpio="0" hamlib_model="" hamlib_params=""/>
<channel name="Channel 0">
<mod mode="afsk" bps="300" f0="900" f1="1100" diffenc="1" ifname="sm0" hwaddr="ZR6AIC-2" ip="" netmask="" broadcast=""/>
<demod mode="afsk" bps="300" f0="900" f1="1100" diffdec="1"/>
<pkt mode="KISS" ifname="sm0" hwaddr="ZR6AIC-2" ip="" netmask="" broadcast="" file="/dev/soundmodem0" unlink="0"/>

You will need some test audio so here is a video of a message that was recorded. Play it back and see if your modem is setup coorectely.


After your testing you will the close the soundmodemconfig Application and then run it as a soundmodem daemon in the background.

Close the soundmodemconfig application by clicking on the X on top.

then run the deamon sudo soundmodem&

4) Install Xastir. ( APRS IGate and map viewer)

Now lets setup the iGate of your APRS demodulated data to the internet
Install Xastir
sudo apt-get install xastir

run xastir

sudo xastir

Configure the Xastir to get the serial data from your sound modem
Select the interface menu

Now select the add  button and then then the Serial KISS TNC option

The TNC port has to be /dev/soundmodem0 as we configured in the soundmodem setup above

Then setup your internet APRS server details.

Save en setup your station detail.
Select file menu and then configeration.

Update your IGate details and station info see below.

Save your station configuration.
Now start Device 0 and Device 1 in the Interface menu and if all is well the interface will change to the up state.

If all the interfaces when up you should see your IGate on the internet.