Difference between revisions of "PTTLink FAQ"

From "PTTLink Wiki"
Jump to navigation Jump to search
Line 96: Line 96:
 
: Do the following:  sudo touch /etc/asterisk/firsttime && sudo /usr/local/sbin/first-time
 
: Do the following:  sudo touch /etc/asterisk/firsttime && sudo /usr/local/sbin/first-time
  
= Q. How do I obtain the software? ==
+
== Q. How do I obtain the software? ==
'''A'''. The easy way is to download the iso image from Allstarlink.org, make an install CD, follow the instructions, and run the auto install disk.
+
:The easy way is to download the iso image from [[Main Page#Downloads|Allstarlink.org]], make an install CD, follow the instructions, and run the auto install disk.
  
 
For those who are technically savvy, and want to control the installation process to a fine level of granularity, app_rpt is an application which comes bundled with Asterisk, however, a later version may be available on our source repository. All you need to do is go to asterisk.org, download asterisk, configure the asterisk to build app_rpt by modifying the Makefile in the asterisk/apps directory, and then compile and install it. You can get the latest version of app_rpt.c along with the sound files, and sample configuration files from our repository mentioned in the developers section of this website.
 
For those who are technically savvy, and want to control the installation process to a fine level of granularity, app_rpt is an application which comes bundled with Asterisk, however, a later version may be available on our source repository. All you need to do is go to asterisk.org, download asterisk, configure the asterisk to build app_rpt by modifying the Makefile in the asterisk/apps directory, and then compile and install it. You can get the latest version of app_rpt.c along with the sound files, and sample configuration files from our repository mentioned in the developers section of this website.
  
=== Q. What are the hardware interface board options? ===
+
== What are the hardware interface board options? ==
'''A.''' There are three different ways to interface your radio with app_rpt/Asterisk. The first (and most preferred) way is to use our Quad Radio PCI card. The audio quality the best when the Quad Radio PCI card is used. The second way is to purchase the ready-made DMK Engieering URI, and the third way is to modify a generic USB fob using the instructions on this website. See the next question.
+
:There are three different ways to interface your radio with app_rpt/Asterisk. The first (and most preferred) way is to use our Quad Radio PCI card. The audio quality the best when the Quad Radio PCI card is used. The second way is to purchase the ready-made DMK Engieering URI, and the third way is to modify a generic USB fob using the instructions on this website. See the next question.
  
=== Q. Can I build my own hardware interface board? ===
+
==Can I build my own hardware interface board? ==
'''A.''' You can modify a CM-108 USB sound fob to bring out PTT and use that as your hardware interface. The modification procedure is located here
+
:You can modify a CM-108 USB sound fob to bring out PTT and use that as your hardware interface. The modification procedure is located here
  
=== Q. How fast does the computer need to be? ===
+
==How fast does the computer need to be? ==
'''A.''' This is going to depend on the number of simultaneous connections you wish to support. For USB interfaces, more processor horsepower is necessary. If you are going to use a USB interface, then the CPU speed should ne no less than 1.2GHz. For the quad radio PCI card, the system will work just fine with 800MHz CPU's.
+
:This is going to depend on the number of simultaneous connections you wish to support. For USB interfaces, more processor horsepower is necessary. If you are going to use a USB interface, then the CPU speed should ne no less than 1.2GHz. For the quad radio PCI card, the system will work just fine with 800MHz CPU's.
  
=== Q. What type of Internet connection is required? ===
+
== What type of Internet connection is required? ==
'''A.''' A broadband connection is required. The connection should support at least 512 kilobits down and 128 kilobits up.
+
:A broadband connection is required. The connection should support at least 512 kilobits down and 128 kilobits up.
  
=== Q. How much bandwidth is required per connection? ===
+
== How much bandwidth is required per connection? ==
'''A.''' Because we use the ADPCM (g726aal2) codec in Asterisk, each connection from/to a remote node will require about 55 kilobits/sec (at the IP packet level) of bandwidth in both directions. Optionally, the GSM codec can be used and the bandwidth requirement will be 35 kilobits/sec, but the audio quality will suffer.
+
:Because we use the ADPCM (g726aal2) codec in Asterisk, each connection from/to a remote node will require about 55 kilobits/sec (at the IP packet level) of bandwidth in both directions. Optionally, the GSM codec can be used and the bandwidth requirement will be 35 kilobits/sec, but the audio quality will suffer.
  
=== Q. How is the audio quality? ===
+
== How is the audio quality? ==
'''A.''' The frequency response when ADPCM is used will be very close to telephone voice grade (telephone voice grade is defined as 3db points at 300-3400Hz, 1000Hz 0db reference). Additionally, we optionally support the G.711 codec which is superior ro ADPCM at the expense of bandwidth.
+
:The frequency response when ADPCM is used will be very close to telephone voice grade (telephone voice grade is defined as 3db points at 300-3400Hz, 1000Hz 0db reference). Additionally, we optionally support the G.711 codec which is superior ro ADPCM at the expense of bandwidth.
  
=== Q. Is there any audio delay incurred in the system? ===
+
==Is there any audio delay incurred in the system? ==
'''A.''' Yes. Due to the fact that the system is TDM (Time Domain Multiplexed) and there is overhead involved to perform DSP functions in Asterisk, there is audio delay for both local connections and there is additional audio delay from connections made over the Internet.
+
: Yes. Due to the fact that the system is TDM (Time Domain Multiplexed) and there is overhead involved to perform DSP functions in Asterisk, there is audio delay for both local connections and there is additional audio delay from connections made over the Internet.
  
=== Q. What ports need to be opened on my router? ===
+
== What ports need to be opened on my router? ==
'''A'''. Port 4569/UDP for IAX2, and optionally port 22/TCP for SSH.
+
:Port 4569/UDP for IAX2, and optionally port 22/TCP for SSH.
  
=== Q. Does app_rpt work through NAT routers? ===
+
== Does app_rpt work through NAT routers? ==
'''A.''' Yes. Port 4569 should be forwareded to the Asterisk machine behind the router to accept incoming connections. In addition, it will work when both ends are behind a NAT router.
+
Yes. Port 4569 should be forwareded to the Asterisk machine behind the router to accept incoming connections. In addition, it will work when both ends are behind a NAT router.
  
=== Q. Is a static IP address required? ===
+
== Is a static IP address required? ==
'''A.''' No. In fact, direct dynamic-IP to dynamic-IP conections are possible using standard authentication (see next question).
+
No. In fact, direct dynamic-IP to dynamic-IP connections are possible using standard authentication (see next question).
  
=== Q. How are incoming Allstar Link connections authenticated? ===
+
== How are incoming Allstar Link connections authenticated? ==
'''A.''' Authentication is done by verifying source and destination node number and IP address and the intrinsic security features of the IAX2 protocol. A table of valid Allstar nodes is periodically downloaded from one of several Allstar Link servers. No call will be connected unless the IAX2 call is completed without failure, and the calling node number, called node number, and source IP address all match what is in the table.
+
: Authentication is done by verifying source and destination node number and IP address and the intrinsic security features of the IAX2 protocol. A table of valid Allstar nodes is periodically downloaded from one of several Allstar Link servers. No call will be connected unless the IAX2 call is completed without failure, and the calling node number, called node number, and source IP address all match what is in the table.
  
=== Q. How does a node know how to connect to another node on Allstar Link? ===
+
== How does a node know how to connect to another node on Allstar Link? ==
'''A.''' Allstar link has an IP address distribution mechanism to periodically update all valid allstar link nodes. This information is automatically retrieved from a set of redundant Allstar node servers by a script which runs in the background on the Allstar link node. Additionally, each node periodically informs an Allstar registration server of its current IP address using the IAX register statement in iax.conf. In this way, all nodes in the Allstar link system are kept up to date with everyone's latest IP address.
+
: Allstar link has an IP address distribution mechanism to periodically update all valid allstar link nodes. This information is automatically retrieved from a set of redundant Allstar node servers by a script which runs in the background on the Allstar link node. Additionally, each node periodically informs an Allstar registration server of its current IP address using the IAX register statement in iax.conf. In this way, all nodes in the Allstar link system are kept up to date with everyone's latest IP address.
  
=== Q. Will app_rpt interconnect with Echolink? ===
+
== Will app_rpt interconnect with Echolink? ==
'''A.''' Yes.There are two channel drivers chan_echolink for Echolink connections. Echolinkincoming and outgoing connections are supported through this channel driver. Incoming connections are made from any Echolink node in the usual manner. An app_rpt user dials an additional prefix digit in the connect command to distinguish between Allstar (2), Echolink (3) node numbers.
+
:Yes. There are two channel drivers chan_echolink for Echolink connections. Echolink incoming and outgoing connections are supported through this channel driver. Incoming connections are made from any Echolink node in the usual manner. An app_rpt user dials an additional prefix digit in the connect command to distinguish between Allstar ([2,4-5]), Echolink (3) node numbers.
  
=== Q. Do I have to join the Allstar Link Network? ===
+
== Do I have to join the Allstar Link Network? ==
'''A.''' No. You may implement your own private network, or allow connections to many networks including or not including All Star Link.
+
:No. You may implement your own private network, or allow connections to many networks including or not including All Star Link.
  
=== Q. Can I use app_rpt/Asterisk on an existing Asterisk PBX setup? ===
+
== Can I use app_rpt/Asterisk on an existing Asterisk PBX setup? ==
'''A.''' Yes. You just have to have compatible Asterisk hardware installed for both the phones and the radio.
+
: Yes. You just have to have compatible Asterisk hardware installed for both the phones and the radio.
  
=== Q. Can I use a SIP ATA in place of a Zaptel Interface? ===
+
== Can I use a SIP ATA in place of a Zaptel Interface? ==
'''A.''' This is a popular question. The short answer: No. Even though Asterisk supports SIP, the SIP protocol currently does not support signalling to detect COR state changes and to key and unkey the transmitter. This is really unfortunate as there are lots of SIP analog telephone adapters available inexpensively.
+
: This is a popular question. The short answer: No. Even though Asterisk supports SIP, the SIP protocol currently does not support signalling to detect COR state changes and to key and unkey the transmitter. This is really unfortunate as there are lots of SIP analog telephone adapters available inexpensively.
  
=== Q. Why would I use app_rpt instead of IRLP or Echolink? ===
+
== Why would I use app_rpt instead of IRLP or Echolink? ==
'''A.''' To have control of your radio network.
+
: To have control of your radio network, and understand how it works and be able to change it.
  
 
To be able to:
 
To be able to:
Line 164: Line 164:
 
Remotely command any node from any other node.
 
Remotely command any node from any other node.
  
=== Q. Can I connect to an app_rpt node with my computer? ===
+
== Can I connect to an app_rpt node with my computer? ==
'''A.''' Yes. See our Iaxrpt project
+
: Yes. See our Iaxrpt project
  
=== Q. Do I have to be an Linux wiz, Asterisk wiz, Radio wiz, and TCP/IP wiz to use app_rpt effectively? ===
+
== Do I have to be an Linux wiz, Asterisk wiz, Radio wiz, and TCP/IP wiz to use app_rpt effectively? ==
'''A.''' Yes, it certainly helps, but with the auto-install CD available from dl.allstarlink.org, all you do to get a single node system up and running is follow our instructions, burn the ISO image, plug in your interface hardware, and boot from the ISO image to install everything.
+
: Yes, it certainly helps, but with the auto-install CD available from [[Main Page#Downloads|wiki.allstarlink.org]], all you do to get a single node system up and running is follow our instructions, burn the ISO image, plug in your interface hardware, and boot from the ISO image to install everything.
  
=== Q. Why did we fork Asterisk? ===
+
== Why did we fork Asterisk? ==
'''A.''' Asterisk is undergoing a significant amount of change at Digium. Because of this, and the long time it takes to get patches approved, we decided to drive a stake in the ground and archive the Asterisk and Zaptel/Dahdi sources on our repository with the required changes to support the latest version of app_rpt. If the need arises, we may fetch a later version of Asterisk and Dahdi from Digium and make the necessary changes to it to support app_rpt (a formward port). Back pointing changes to support app_rpt into the Digium source tree at this point does not seem likely at least at this point in time.
+
:Asterisk is undergoing a significant amount of change at Digium. Because of this, and the long time it takes to get patches approved, we decided to drive a stake in the ground and archive the Asterisk and Zaptel/Dahdi sources on our repository with the required changes to support the latest version of app_rpt. If the need arises, we may fetch a later version of Asterisk and Dahdi from Digium and make the necessary changes to it to support app_rpt (a forward port). Back pointing changes to support app_rpt into the Digium source tree at this point does not seem likely at least at this point in time.

Revision as of 10:50, 27 March 2019

What is AllStarLink Asterisk (ASL)?

ASL is the software used to create an AllStar node. It consists of Linux, Asterisk and app_rpt. ASL uses the Debian version of Linux. Asterisk is the OpenSource PBX. App_rpt is an Asterisk application giving it the radio node functions. ASL runs on x86 or on the Raspberry Pi (ARM version).

What does ASL stand for?

AllStarLink

How do I install ASL?

ASL is available as a installer for i386/AMD (PC) and as a SD card image for Raspberry Pi and other ARM boards.If you have ever installed Linux you know how to install ASL. The images are available from the Main Page Related Links.

Can ASL be installed on an existing Linux install, for example on a VM running Debian?

Yes it can. More information to follow. But if you have no other option you could do this:
cd /tmp
wget http://dvswitch.org/install-allstarlink-repository

chmod +x install-allstarlink-repository
./install-allstarlink-repository

If Raspbian: apt-get install raspberrypi-kernel-headers -y

Otherwise: apt-get install linux-headers-`uname -r` -y

apt-get update
apt-get install allstarlink -y

Will ASL run on Windows?

No, ASL is a Linux application.

How do I login to ASL once it is installed?

The initial user login ID is repeater with a password of allstarlink. When you login the first time you will be forced to change the password. The user repeater has sudo rights. You can then continue the customization process. To enable console root login you will need to set a password for user root.

How is a ASL Node configured?

Briefly, a single node configuration is straight forward. Once you are logged in run asl-menu. The system will walk you through a first time setup of your node by asking you a number of questions. You'll need to have created an AllStar account, created a server, requested a node number and have your node's password.

How many nodes can ASL support on a single server?

It depends on the hardware. A high power Intel box may support 25 or more RTCM clients. A the other end of the spectrum, a Raspberry Pi 3 would be good for 2 USB nodes.

When using ACID I had (insert feature here) Now it's gone. When will ASL support this feature?

ASL supports all the same channel drivers, features and apps that ACID supported. Under ASL, modules are not loaded by default. They must be enabled in /etc/asterisk/modules.conf.

Will ASL run as a hub / reflector?

Yes, ASL will run as a hub. To build a hub set rxchannel = dahdi/pseudo in rpt.conf and set noload => chan_simpleusb.so in modules.conf

Do I need a monitor and keyboard to run ASL?

No, ASL can be managed via SSH on port 22. The port can be changed in /etc/ssh/sshd.conf. ASL for the Raspberry Pi does require a monitor and keyboard to install.

What is the IP address of my new node?

ASL configures the machine via DHCP. Check your DHCP server for the address. The machine defaults to repeater.allstarlink.org. This can be changed with asl-menu.

Does my remote access program (insert IAXRPT, Web Transceiver, Zoiper, AndroidIAX here) work with ASL?

Yes, either using the sample configuration files or your custom files.

What about SIP support?

By default, SIP is not enabled. If you want to enable it, see /etc/asterisk/modules.conf

What audio file format does ASL use?

By default, ASL installs the ulaw formatted audio files installed in /var/lib/asterisk/sounds/.

What version of app_rpt is ASL built with?

ASL is built from the current version of asterisk taken from the github. As of now, The version of the code from the github is 1.01 2/13/2018

ASL is built on Debian 9, why Debian, why not (insert distro here)?

There are a lot of great Linux distributions available. Debian is a 20+ year old distribution with a large developer base. Many of the other distributions are based on Debian.

I run a custom script (insert script here). Does it work with ASL?

Unless the script does something really strange or uses something specific to only one Linux distribution, The script should be made to work. We will be happy to work with script writers to move their script to ASL.

I updated my kernel now what?

ASL uses DKMS to manage the installation of kernel modules. DKMS will update when you install a new kernel.

I need a Linux program that is not in ASL, what do I do?

apt-get is the Debian utility to install, remove and upgrade programs. apt-get install foo will install the program foo if it is available.

I have a question not covered in this FAQ, how do I get an answer?

There is a wealth of information on AllStar Asterisk at on this wiki There is also a user mail list at http://lists.allstarlink.org/

How do I change my network (adapter) setup?

Use asl-menu

How do I change my DNS setup?

Use asl-menu

How do I restart Asterisk?

Asterisk can be restarted by running the script astres.sh or stoped with astdn.sh and started with astup.sh.

What are the specific differences between a single node, and a hub, to which can accept many connections?

Any node can be a "HUB". A node is not limited to one connection. There may be hardware limitations about the number of connections a given piece of hardware and internet connection can support. Typically, a HUB is located on a higher bandwidth Internet connection and is running a more "stout" piece of hardware. A HUB usually does not have a node radio connected to it, but there is no reason it can't. A HUB usually runs DAHDI/pseudo for it's rxchannel. This is changed in the rpt.conf file.

On some x86 and some raspberry pi2's, I have noticed dtmf falsing and would like to recompile app_rpt to set the radio relax feature off to reduce/eliminate the false dtmf tones that get decoded from voice transmissions.

ASL has radio relax turned off..

I exited the firsttime script for setting up a ASL system, and would now like to run it. How is this accomplished?

Do the following: sudo touch /etc/asterisk/firsttime && sudo /usr/local/sbin/first-time

Q. How do I obtain the software?

The easy way is to download the iso image from Allstarlink.org, make an install CD, follow the instructions, and run the auto install disk.

For those who are technically savvy, and want to control the installation process to a fine level of granularity, app_rpt is an application which comes bundled with Asterisk, however, a later version may be available on our source repository. All you need to do is go to asterisk.org, download asterisk, configure the asterisk to build app_rpt by modifying the Makefile in the asterisk/apps directory, and then compile and install it. You can get the latest version of app_rpt.c along with the sound files, and sample configuration files from our repository mentioned in the developers section of this website.

What are the hardware interface board options?

There are three different ways to interface your radio with app_rpt/Asterisk. The first (and most preferred) way is to use our Quad Radio PCI card. The audio quality the best when the Quad Radio PCI card is used. The second way is to purchase the ready-made DMK Engieering URI, and the third way is to modify a generic USB fob using the instructions on this website. See the next question.

Can I build my own hardware interface board?

You can modify a CM-108 USB sound fob to bring out PTT and use that as your hardware interface. The modification procedure is located here

How fast does the computer need to be?

This is going to depend on the number of simultaneous connections you wish to support. For USB interfaces, more processor horsepower is necessary. If you are going to use a USB interface, then the CPU speed should ne no less than 1.2GHz. For the quad radio PCI card, the system will work just fine with 800MHz CPU's.

What type of Internet connection is required?

A broadband connection is required. The connection should support at least 512 kilobits down and 128 kilobits up.

How much bandwidth is required per connection?

Because we use the ADPCM (g726aal2) codec in Asterisk, each connection from/to a remote node will require about 55 kilobits/sec (at the IP packet level) of bandwidth in both directions. Optionally, the GSM codec can be used and the bandwidth requirement will be 35 kilobits/sec, but the audio quality will suffer.

How is the audio quality?

The frequency response when ADPCM is used will be very close to telephone voice grade (telephone voice grade is defined as 3db points at 300-3400Hz, 1000Hz 0db reference). Additionally, we optionally support the G.711 codec which is superior ro ADPCM at the expense of bandwidth.

Is there any audio delay incurred in the system?

Yes. Due to the fact that the system is TDM (Time Domain Multiplexed) and there is overhead involved to perform DSP functions in Asterisk, there is audio delay for both local connections and there is additional audio delay from connections made over the Internet.

What ports need to be opened on my router?

Port 4569/UDP for IAX2, and optionally port 22/TCP for SSH.

Does app_rpt work through NAT routers?

Yes. Port 4569 should be forwareded to the Asterisk machine behind the router to accept incoming connections. In addition, it will work when both ends are behind a NAT router.

Is a static IP address required?

No. In fact, direct dynamic-IP to dynamic-IP connections are possible using standard authentication (see next question).

How are incoming Allstar Link connections authenticated?

Authentication is done by verifying source and destination node number and IP address and the intrinsic security features of the IAX2 protocol. A table of valid Allstar nodes is periodically downloaded from one of several Allstar Link servers. No call will be connected unless the IAX2 call is completed without failure, and the calling node number, called node number, and source IP address all match what is in the table.

How does a node know how to connect to another node on Allstar Link?

Allstar link has an IP address distribution mechanism to periodically update all valid allstar link nodes. This information is automatically retrieved from a set of redundant Allstar node servers by a script which runs in the background on the Allstar link node. Additionally, each node periodically informs an Allstar registration server of its current IP address using the IAX register statement in iax.conf. In this way, all nodes in the Allstar link system are kept up to date with everyone's latest IP address.

Will app_rpt interconnect with Echolink?

Yes. There are two channel drivers chan_echolink for Echolink connections. Echolink incoming and outgoing connections are supported through this channel driver. Incoming connections are made from any Echolink node in the usual manner. An app_rpt user dials an additional prefix digit in the connect command to distinguish between Allstar ([2,4-5]), Echolink (3) node numbers.

Do I have to join the Allstar Link Network?

No. You may implement your own private network, or allow connections to many networks including or not including All Star Link.

Can I use app_rpt/Asterisk on an existing Asterisk PBX setup?

Yes. You just have to have compatible Asterisk hardware installed for both the phones and the radio.

Can I use a SIP ATA in place of a Zaptel Interface?

This is a popular question. The short answer: No. Even though Asterisk supports SIP, the SIP protocol currently does not support signalling to detect COR state changes and to key and unkey the transmitter. This is really unfortunate as there are lots of SIP analog telephone adapters available inexpensively.

Why would I use app_rpt instead of IRLP or Echolink?

To have control of your radio network, and understand how it works and be able to change it.

To be able to:

Change something if you don't like the way it works.

Use full duplex audio connections everywhere.

To be able to connect to a remote base anywhere in the world.

To make phone calls over VOIP from any node.

Remotely command any node from any other node.

Can I connect to an app_rpt node with my computer?

Yes. See our Iaxrpt project

Do I have to be an Linux wiz, Asterisk wiz, Radio wiz, and TCP/IP wiz to use app_rpt effectively?

Yes, it certainly helps, but with the auto-install CD available from wiki.allstarlink.org, all you do to get a single node system up and running is follow our instructions, burn the ISO image, plug in your interface hardware, and boot from the ISO image to install everything.

Why did we fork Asterisk?

Asterisk is undergoing a significant amount of change at Digium. Because of this, and the long time it takes to get patches approved, we decided to drive a stake in the ground and archive the Asterisk and Zaptel/Dahdi sources on our repository with the required changes to support the latest version of app_rpt. If the need arises, we may fetch a later version of Asterisk and Dahdi from Digium and make the necessary changes to it to support app_rpt (a forward port). Back pointing changes to support app_rpt into the Digium source tree at this point does not seem likely at least at this point in time.