Difference between revisions of "Echolink.conf - Echolink Channel Driver"

From AllStarLink Wiki
Jump to navigation Jump to search
imported>Kg7qin
 
(15 intermediate revisions by 8 users not shown)
Line 1: Line 1:
 
The chan_echolink channel driver allows AllStar nodes to register on and communicate with the EchoLink network.  The following information is originally from [http://docs.allstarlink.org/drupal/node/12 echolink.conf].
 
The chan_echolink channel driver allows AllStar nodes to register on and communicate with the EchoLink network.  The following information is originally from [http://docs.allstarlink.org/drupal/node/12 echolink.conf].
  
=echolink.conf=
+
=Enable the Channel Driver=
With the addition of the chan_echolink Asterisk channel driver direct connections to and from echolink to Asterisk/app_rpt are now supported. No other programs (e.g. rtpDir, or the link box) are required. With chan_echolink, EchoLink nodes become part of the AllStar link number space.
+
In /etc/asterisk/modules.conf, you will first need to enable the channel driver
 +
 
 +
load => chan_echolink.so
 +
 
 +
A asterisk restart would be required, but continue to set-up your /etc/asterisk/echolink.conf
  
 +
=Connecting to Echolink=
 
From an app_rpt/Allstar node, Echolink connections look just like Allstar/App_rpt connections except the Echolink node numbers have been prefixed with a 3 and padded out to 7 digits with leading zeroes. For instance, if you want to connect to Echolink node 1234 on your app_rpt system you would dial *3 followed by 3001234. If you have a 6 digit Echolink node number 123456, you would dial *3 followed by 3123456. As you can see we have reserved Allstar node numbers with a leading 3 for the Echolink number space.
 
From an app_rpt/Allstar node, Echolink connections look just like Allstar/App_rpt connections except the Echolink node numbers have been prefixed with a 3 and padded out to 7 digits with leading zeroes. For instance, if you want to connect to Echolink node 1234 on your app_rpt system you would dial *3 followed by 3001234. If you have a 6 digit Echolink node number 123456, you would dial *3 followed by 3123456. As you can see we have reserved Allstar node numbers with a leading 3 for the Echolink number space.
  
 
For users originating from an Echolink node using Echolink supplied software, nothing changes for them, they just dial the 4 or 6 digit Echolink node number assigned to your app_rpt system and they get connected!
 
For users originating from an Echolink node using Echolink supplied software, nothing changes for them, they just dial the 4 or 6 digit Echolink node number assigned to your app_rpt system and they get connected!
  
==Setup==
+
=echolink.conf=
 +
With the addition of the chan_echolink Asterisk channel driver direct connections to and from echolink to Asterisk/app_rpt are now supported. No other programs (e.g. rtpDir, or the link box) are required. With chan_echolink, EchoLink nodes become part of the AllStar link number space.
 +
 
 +
==Router Configuration==
 
First, if you are behind a NAT router, please make sure the ports for Echolink service are correctly forwarded to your asterisk system.  
 
First, if you are behind a NAT router, please make sure the ports for Echolink service are correctly forwarded to your asterisk system.  
  
Line 17: Line 25:
 
|-
 
|-
 
|  5199 || UDP
 
|  5199 || UDP
 +
|-
 +
|  5200 || TCP
 
|}
 
|}
  
Line 24: Line 34:
  
 
To activate the Echolink channel driver, all that's required is a properly formatted configuration file. A base configuration file has been included with Both ACID and Limey Linux and is located in /usr/src/configs/examples/echolink. Copy this file to /etc/asterisk, and edit it to match your callsign, password and node number assignment from Echolink.org. The sample echolink.conf file is as follows:
 
To activate the Echolink channel driver, all that's required is a properly formatted configuration file. A base configuration file has been included with Both ACID and Limey Linux and is located in /usr/src/configs/examples/echolink. Copy this file to /etc/asterisk, and edit it to match your callsign, password and node number assignment from Echolink.org. The sample echolink.conf file is as follows:
 +
 +
==Setup el0 Stanza==
 +
 +
===astnode====
 +
----
 +
This to your active assigned Allstar node number.
 +
 +
<pre>
 +
astnode=2345
 +
</pre>
 +
===call====
 +
----
 +
This is the echolink node call sign.
 +
 +
<pre>
 +
call=W6ABC-R
 +
</pre>
 +
===context====
 +
----
 +
This the Allstar context.  It used for the dialing plan setup in extensions.conf. (Leave this default unless you have good reason to change.)
 +
 +
<pre>
 +
context=radio-secure
 +
</pre>
 +
===dir====
 +
----
 +
This is the direction of your antenna. Allowable values are: 0=omni, 1=45deg, 2=90deg, 3=135deg, 4=180deg, 5=225deg, 6=270deg, 7=315deg, 8=360deg
 +
 +
<pre>
 +
dir=0
 +
</pre>
 +
===deny====
 +
----
 +
This contains a comma delimited list of stations that should be denied access.  See the Controlling Access section for more information.
 +
 +
<pre>
 +
deny=
 +
</pre>
 +
===email====
 +
----
 +
This is your email address.
 +
 +
<pre>
 +
email=foo@bar.com
 +
</pre>
 +
===freq====
 +
----
 +
This is sets the frequency of your node in megahertz's.
 +
 +
<pre>
 +
freq=145.000
 +
</pre>
 +
===gain====
 +
----
 +
This is the gain of your antenna in db.  Allowable values are 0 to 9.
 +
 +
<pre>
 +
gain=7
 +
</pre>
 +
===height====
 +
----
 +
This is the ASML height of your node.  Allowable values are 0=10' ,1=20',2=40',3=80' ,4=160' ,5=320' ,6=640' ,7=1280',8=2560',9=5120'
 +
 +
<pre>
 +
height=0
 +
</pre>
 +
===lat====
 +
----
 +
This is latitude of your node.
 +
 +
<pre>
 +
lat=34.74978
 +
</pre>
 +
===lon====
 +
----
 +
This is the longitude of the node. Longitude in decimal degrees. Negative number for west longitudes
 +
 +
<pre>
 +
lon=-92.27666
 +
</pre>
 +
===maxstns====
 +
----
 +
This sets the maximum 'at-once' connections allowed (see discussion below **)
  
 
<pre>
 
<pre>
[el0]
 
confmode=no
 
call=W6ABC-R ; Change this!
 
pwd=XXXXX ; Change this!
 
name=Asterisk-EL-channel-driver ; Change this to your real name!
 
qth=Asterisk-EL-channel-driver ; Change this to your actual QTH!
 
email=foo@bar.com ; Change this!
 
 
maxstns=20
 
maxstns=20
 +
</pre>
 +
===name====
 +
----
 +
This is your name.
 +
 +
<pre>
 +
name=echolinkusername
 +
</pre>
 +
===node====
 +
----
 +
This is your assigned echolink node number.
 +
 +
<pre>
 +
node=123456
 +
</pre>
 +
===permit====
 +
----
 +
This contains a comma delimited list of stations that should be permitted access.  See the Controlling Access section for more information.
 +
 +
<pre>
 +
permit=
 +
</pre>
 +
===power====
 +
----
 +
This is the power, in watts, of your node.  The allowable values are: 0=0W, 1=1W, 2=4W, 3=9W, 4=16W, 5=25W, 6=36W, 7=49W, 8=64W, 9=81W 
 +
 +
<pre>
 +
power=0
 +
</pre>
 +
===pwd====
 +
----
 +
This is the echolink node password.
 +
<pre>
 +
pwd=XXXXXX
 +
</pre>
 +
===qth====
 +
----
 +
This is the location of the node.
 +
 +
<pre>
 +
qth=echolink-location
 +
</pre>
 +
===recfile====
 +
----
 +
This sets the name of the file to store recorded echolink audio.
 +
 +
<pre>
 +
recfile=/tmp/recorded.gsm
 +
</pre>
 +
===rtcptimeout====
 +
----
 +
This sets the rtcp timeout in seconds.  If an rtcp packet has not been received before this timer expires, the station will be disconnected.
 +
 +
<pre>
 
rtcptimeout=10
 
rtcptimeout=10
node=123456 ; Change this!
+
</pre>
recfile=/tmp/recorded.gsm
+
===serverX====
astnode=2345 ; Change this to your active Allstar node number!
+
----
context=radio-secure
+
These entries define the servers used to contact the echolink servers.  These should not normally be changed.
 +
 
 +
<pre>
 
server1=server1.echolink.org
 
server1=server1.echolink.org
server2=server2.echolink.org
+
server2=server2.echolink.org
 
server3=server3.echolink.org
 
server3=server3.echolink.org
freq=145.000 ; Freq in MHz
+
server4=backup.echolink.org
tone=100.0  ; CTCSS Tone (0 for none)
+
</pre>
lat=34.74978  ; Latitude in decimal degrees
+
===tone====
lon=-92.27666 ; Longitude in decimal degrees
+
----
power=0  ; 0=0W, 1=1W, 2=4W,  3=9W, 4=16W, 5=25W, 6=36W,  7=49W,  8=64W,  9=81W  (Power in Watts)
+
This is sets the tone of your node in hertz's.
height=0 ; 0=10' ,1=20',2=40',3=80' ,4=160' ,5=320' ,6=640' ,7=1280',8=2560',9=5120' (AMSL in Feet)
+
 
gain=7 ; Gain in db (0-9)
+
<pre>
dir=0 ; 0=omni, 1=45deg, 2=90deg, 3=135deg, 4=180deg, 5=225deg, 6=270deg, 7=315deg, 8=360deg (Direction)
+
tone=100.0
 
</pre>
 
</pre>
  
Once you have made the changes, restart Asterisk, and within a few minutes time, the node should show up on the echolink.org website under [http://echolink.org Current Logins].
+
==Supported Connections==
 +
How many stations will your node support? The 2 most particular factors will be how much CPU/Memory power you have AND how much bandwidth you have available. So you should not expect a bunch from cpu's under 1ghz or from memory below 1gb.
 +
 
 +
==Completing Setup==
 +
Once you have made the changes, restart Asterisk, and within a few minutes time, the node should show up on the echolink.org website under [http://echolink.org/logins.jsp Current Logins].
 +
 
 +
== app_rpt Node Stanza Keys ==
 +
Note the below go in the node stanza in rpt.conf, not echolink.conf
 +
 
 +
{| class="wikitable"
 +
!Key
 +
!Valid Values
 +
!Default
 +
|-
 +
|eannmode
 +
|0 = do not announce Echolink nodes at all, 1 = announce only the node number (Allstar-translated), 2 = announce only the call of the echolink station, 3 = announce both
 +
|1
 +
|-
 +
|echolinkdefault
 +
|0 = telemetry output off, 1 = telemetry output on, 2 = timed telemetry output on command execution and for a short time thereafter, 3 = follow local telemetry mode
 +
|2
 +
|-
 +
|echolinkdynamic
 +
|0 = disallow users to change current echolink telemetry setting with a COP command, 1 = Allow users to change the setting with a COP command
 +
|1
 +
|}
 +
 
 +
[[Category:Node Configuration]]
 +
[[Category:Config Files]]
  
 
==Controlling Access==
 
==Controlling Access==
Line 66: Line 236:
  
 
==Setting Audio Levels==
 
==Setting Audio Levels==
The audio gain going to and coming from the Echolink system may be set from within a Node Stanza as follows:
+
The audio gain going to and coming from the Echolink system may be set from within a app_rpt Node Stanza as follows:
  
 
<pre>
 
<pre>
Line 91: Line 261:
 
|}
 
|}
 
=Miscellaneous=
 
=Miscellaneous=
 +
==Connectivity Issues==
 
When debugging EchoLink connectivity issues with your AllStar node, remember the following:
 
When debugging EchoLink connectivity issues with your AllStar node, remember the following:
 
*Never run the EchoLink application from your mobile device (cell phone/tablet/etc) using the '''same network''' as your AllStar node.  This will lead to problems with one or the other not being able to connect to/register/use the EchoLink servers or other EchoLink nodes.  (This also applies to running the Windows application on the same network as your AllStar node).
 
*Never run the EchoLink application from your mobile device (cell phone/tablet/etc) using the '''same network''' as your AllStar node.  This will lead to problems with one or the other not being able to connect to/register/use the EchoLink servers or other EchoLink nodes.  (This also applies to running the Windows application on the same network as your AllStar node).
Line 99: Line 270:
 
</pre>
 
</pre>
  
 +
==Caveats==
 +
The chan_echolink driver currently:
 +
 +
* Does not process chat text.
 +
* Only recognizes a few remote text commands.
 +
* Does not have a busy, deaf or mute feature.
 +
* Does not have a banned or private station list.  ''(Access controls are rudimentary and on a per station basis.  See [[Echolink_Channel_Driver#Controlling_Access|Controlling Access]])''
 +
* Does not have an admin list, only local 127.0.0.1 access.
 +
* Does not have a customizable welcome text message.
 +
* Does not support login or connect timeouts.
 +
* Does not have a max TX time limit.
 +
* Does not support activity reporting.
 +
* Does not have event notifications.
 +
* Does not have any stats.
 +
* Does not have any callsign prefix restrictions.
 +
* Does not have any loop detection.
 +
* Allows "doubles" (newer version of the software are preventing this. Work in progress)
 +
 +
==Remote Commands==
 +
The following '''''remote text commands''''' can be sent to the chan_echolink driver running on your AllStar link node using ''netcat'':
 +
 +
{| class="wikitable"
 +
! Command !! Function
 +
|-
 +
| o.conip <IPaddress>  || Request a connect
 +
|-
 +
| o.dconip <IPaddress> || Request a disconnect
 +
|-
 +
| o.rec || Turn on/off recording
 +
|}
  
 
[[Category:Node Configuration]]
 
[[Category:Node Configuration]]

Latest revision as of 18:37, 1 June 2023

The chan_echolink channel driver allows AllStar nodes to register on and communicate with the EchoLink network. The following information is originally from echolink.conf.

Enable the Channel Driver

In /etc/asterisk/modules.conf, you will first need to enable the channel driver

load => chan_echolink.so

A asterisk restart would be required, but continue to set-up your /etc/asterisk/echolink.conf

Connecting to Echolink

From an app_rpt/Allstar node, Echolink connections look just like Allstar/App_rpt connections except the Echolink node numbers have been prefixed with a 3 and padded out to 7 digits with leading zeroes. For instance, if you want to connect to Echolink node 1234 on your app_rpt system you would dial *3 followed by 3001234. If you have a 6 digit Echolink node number 123456, you would dial *3 followed by 3123456. As you can see we have reserved Allstar node numbers with a leading 3 for the Echolink number space.

For users originating from an Echolink node using Echolink supplied software, nothing changes for them, they just dial the 4 or 6 digit Echolink node number assigned to your app_rpt system and they get connected!

echolink.conf

With the addition of the chan_echolink Asterisk channel driver direct connections to and from echolink to Asterisk/app_rpt are now supported. No other programs (e.g. rtpDir, or the link box) are required. With chan_echolink, EchoLink nodes become part of the AllStar link number space.

Router Configuration

First, if you are behind a NAT router, please make sure the ports for Echolink service are correctly forwarded to your asterisk system.

Port To Forward Service
5198 UDP
5199 UDP
5200 TCP

Additionally, if you are running a firewall and not a consumer grade router which is configured to limit outbound access to a specific number of ports, you must enable UDP outbound access for 5198, and 5199, and TCP outbound access for port 5200.

Current documentation on what ports need to be forwarded can be found on echolink.org in the EchoLink, Firewalls, and Routers section.

To activate the Echolink channel driver, all that's required is a properly formatted configuration file. A base configuration file has been included with Both ACID and Limey Linux and is located in /usr/src/configs/examples/echolink. Copy this file to /etc/asterisk, and edit it to match your callsign, password and node number assignment from Echolink.org. The sample echolink.conf file is as follows:

Setup el0 Stanza

astnode=


This to your active assigned Allstar node number.

astnode=2345

call=


This is the echolink node call sign.

call=W6ABC-R

context=


This the Allstar context. It used for the dialing plan setup in extensions.conf. (Leave this default unless you have good reason to change.)

context=radio-secure

dir=


This is the direction of your antenna. Allowable values are: 0=omni, 1=45deg, 2=90deg, 3=135deg, 4=180deg, 5=225deg, 6=270deg, 7=315deg, 8=360deg

dir=0

deny=


This contains a comma delimited list of stations that should be denied access. See the Controlling Access section for more information.

deny=

email=


This is your email address.

email=foo@bar.com

freq=


This is sets the frequency of your node in megahertz's.

freq=145.000

gain=


This is the gain of your antenna in db. Allowable values are 0 to 9.

gain=7

height=


This is the ASML height of your node. Allowable values are 0=10' ,1=20',2=40',3=80' ,4=160' ,5=320' ,6=640' ,7=1280',8=2560',9=5120'

height=0

lat=


This is latitude of your node.

lat=34.74978

lon=


This is the longitude of the node. Longitude in decimal degrees. Negative number for west longitudes

lon=-92.27666

maxstns=


This sets the maximum 'at-once' connections allowed (see discussion below **)

maxstns=20

name=


This is your name.

name=echolinkusername

node=


This is your assigned echolink node number.

node=123456

permit=


This contains a comma delimited list of stations that should be permitted access. See the Controlling Access section for more information.

permit=

power=


This is the power, in watts, of your node. The allowable values are: 0=0W, 1=1W, 2=4W, 3=9W, 4=16W, 5=25W, 6=36W, 7=49W, 8=64W, 9=81W

power=0

pwd=


This is the echolink node password.

pwd=XXXXXX

qth=


This is the location of the node.

qth=echolink-location

recfile=


This sets the name of the file to store recorded echolink audio.

recfile=/tmp/recorded.gsm

rtcptimeout=


This sets the rtcp timeout in seconds. If an rtcp packet has not been received before this timer expires, the station will be disconnected.

rtcptimeout=10

serverX=


These entries define the servers used to contact the echolink servers. These should not normally be changed.

server1=server1.echolink.org
server2=server2.echolink.org  
server3=server3.echolink.org
server4=backup.echolink.org

tone=


This is sets the tone of your node in hertz's.

tone=100.0

Supported Connections

How many stations will your node support? The 2 most particular factors will be how much CPU/Memory power you have AND how much bandwidth you have available. So you should not expect a bunch from cpu's under 1ghz or from memory below 1gb.

Completing Setup

Once you have made the changes, restart Asterisk, and within a few minutes time, the node should show up on the echolink.org website under Current Logins.

app_rpt Node Stanza Keys

Note the below go in the node stanza in rpt.conf, not echolink.conf

Key Valid Values Default
eannmode 0 = do not announce Echolink nodes at all, 1 = announce only the node number (Allstar-translated), 2 = announce only the call of the echolink station, 3 = announce both 1
echolinkdefault 0 = telemetry output off, 1 = telemetry output on, 2 = timed telemetry output on command execution and for a short time thereafter, 3 = follow local telemetry mode 2
echolinkdynamic 0 = disallow users to change current echolink telemetry setting with a COP command, 1 = Allow users to change the setting with a COP command 1

Controlling Access

Echolink connections may be denied on a per-callsign basis. This is done by using the deny and permit key values in the above [el0] stanza. The default is to allow all connections if the permit and deny keywords are not present. If a permit is specified, then only the callsigns specified in the permit statement will be allowed to connect. If deny is specified, then the callsign(s) specified will be denied access and the connection will be terminated. Commas are used to delimit multiple callsigns for permit and deny keys. Wildcards are supported so that whole classes of connections can be rejected. Examples:

Examples:

To deny w6xxx you would add the statement: deny=w6xxx

To prohibit computer-based connections you would write: permit=*-*

To allow access to only a select group of callsigns: permit=w6abc,w6def,...

Setting Audio Levels

The audio gain going to and coming from the Echolink system may be set from within a app_rpt Node Stanza as follows:

erxgain=-3.0      ; defaults to -3.0 db
etxgain=3.0       ; defaults to 3.0 db.

Debugging

The chan_echolink driver supports debugging output.

Debugging can be a activated with the command echolink debug level x (Where x = 0-7. 0=off). With debugging turned on, chan_echolink will output various messages to the terminal related to connecting to nodes, etc.

In addition to turning on debugging, you can use the following commands to query your node's copy of the EchoLink database:

Description Command
Dump EchoLink database echolink dbdump
Query EchoLink station by callsign echolink dbget callsign <EchoLink Callsign> (i.e., KG7QIN-R)
Query EchoLink station by nodename echolink dbget nodename <EchoLink node number> (i.e., 407301)
Query EchoLink station by ip address echolink dbget ip <EchoLink node ip address>

Miscellaneous

Connectivity Issues

When debugging EchoLink connectivity issues with your AllStar node, remember the following:

  • Never run the EchoLink application from your mobile device (cell phone/tablet/etc) using the same network as your AllStar node. This will lead to problems with one or the other not being able to connect to/register/use the EchoLink servers or other EchoLink nodes. (This also applies to running the Windows application on the same network as your AllStar node).
  • If using the EchoLink application on your mobile device (cell phone/tablet/etc), make sure that the EchoLink application is not set to run/is not running in the background. Having the application running in the background can cause problems with your AllStar node not being able to connect to/register/use the EchoLink servers or other EchoLink nodes.
Note: Same network refers to the the Public IP address that both your AllStar node AND the device running the EchoLink application are using -- even if they are on different subnets internally.  The Public IP is what the EchoLink servers/network sees and uses when communicating with your node/device.

Caveats

The chan_echolink driver currently:

  • Does not process chat text.
  • Only recognizes a few remote text commands.
  • Does not have a busy, deaf or mute feature.
  • Does not have a banned or private station list. (Access controls are rudimentary and on a per station basis. See Controlling Access)
  • Does not have an admin list, only local 127.0.0.1 access.
  • Does not have a customizable welcome text message.
  • Does not support login or connect timeouts.
  • Does not have a max TX time limit.
  • Does not support activity reporting.
  • Does not have event notifications.
  • Does not have any stats.
  • Does not have any callsign prefix restrictions.
  • Does not have any loop detection.
  • Allows "doubles" (newer version of the software are preventing this. Work in progress)

Remote Commands

The following remote text commands can be sent to the chan_echolink driver running on your AllStar link node using netcat:

Command Function
o.conip <IPaddress> Request a connect
o.dconip <IPaddress> Request a disconnect
o.rec Turn on/off recording