Table of Contents
Allstar Expands
Digging Deeper into Allstar
I've seen a few examples of small networks and am interested in building up a larger system.
Some examples that interested me:
- Milnet http://milnet.io/ with Allstar connected nodes and a DMR bridge
- Allstar node status http://stats.allstarlink.org/nodeinfo.cgi?node=424611
- W2YMM https://w2ymm.home.blog/allstar-howto/ with a group of connected gateways, repeaters and a bridge to DMR etc.
- This one was discovered by accident on Allstar's Portal I mistyped my own original base node ID (pre-NNX) 48148 as 48418 and found his system with lots of information on his blog
Adding more nodes
It's possible to have up to 10 individual Node IDs with a single Allstar node number, by using NNX to add a 6th digit to the base node number…
My Base Number is 48148
and I activated the NNX
feature and created 3 nodes
481480
481481
481482
Since they are all behind a NAT firewall, sharing one public IP address the nodes must use different UDP ports. To make this possible I created 2 new Server
instances on the Allstar Portal, one per node, and chose the UDP ports :
https://www.allstarlink.org/portal/servers.php
node481480
⇒UDP 4569
node481481
⇒UDP 4570
node481482
⇒UDP 4571
The choice of which server is used per node is chosen on the Node configuration page for each node, on the Allstar Portal
https://www.allstarlink.org/portal/nodes.php
Then I flashed new SD cards for the new nodes using the ASL 2.0.0 Beta 6 image I've used for the initial VHF Gateway node.
The config. for the original node had to be changed, to reflect the new node number 481480
versus 48148
which means editing (at least)
/etc/asterisk/rpt.conf
/etc/asterisk/iax.conf
/etc/asterisk.extensions.conf
To ensure each internal LAN node can find each other (can't rely on Allstar's DNS) it's necessary to add each one to the [nodes]
stanza in each node's config file /etc/asterisk/rpt.conf
using the appropriate IP and UDP port depending on which node is being configured.
; from the VHF Gateway node 481480 [nodes] 481480 = radio@127.0.0.1:4569/481480,NONE 481481 = radio@192.168.21.250:4570/481481,NONE 481482 = radio@192.168.21.251:4571/481482,NONE
I added the DVSwitch bridging to the hub node 481481
which is configured as radioless, I made a local/private node on that machine 1399
for this purpose.
All 3 nodes have supermon
and this needed some configuration to make sure the Asterisk Manager ports were available on their external interfaces bindaddr = 0.0.0.0
and not just on the loopback bindaddr = 127.0.0.1
/etc/asterisk/manager.conf
⇒
; ; Asterisk Call Management support ; ; By default asterisk will listen on localhost only. [general] enabled = yes port = 5038 bindaddr = 0.0.0.0 [admin] secret = YOUR_MANAGER_PASSWORD read = all,system,call,log,verbose,command,agent,user,config write = all,system,call,log,verbose,command,agent,user,config
Port Forwarding
My ADSL router has the following port forwards to allow external incoming connections to be set up
UDP 4569
⇒192.168.21.109
for the VHF Gateway / Echolink nodeUDP 4570
⇒192.168.21.250
for the DMR Bridge nodeUDP 4571
⇒192.168.21.251
for the Test NodeUDP 5198-5199
⇒192.168.21.109
for Echolink client connectionsTCP 42110
⇒192.168.21.109
for the VHF Gateway/Echolink node's DashboardTCP 42111
⇒192.168.21.250
for the DMR Bridge node's DashboardTCP 42112
⇒192.168.21.252
for the Test node's Dashboard
To allow the node numbers to be resolved to useful names tp display on the dashboards the script astdb.php
should run nightly to maintain a lookup table.
The image came with several copies of astdb.php
in different places, all updating a central data file /var/log/asterisk/astdb.txt
. Which was confusing, as they all looked in different places for the file detailing private nodes.
To allow private node numbers to appear as useful information, rather than not in database
you first put the information in a file privatenodes.txt
1399|GM4SLV|Bridge to DMR|TGIF TG2354429
and then the astdb.php
script pulls it in, with all the other nodes downloaded from the web, but astdb.php
must know where to find the privatenodes.txt
file.
The easiest way is to run the astdb.php
from the directory containing privatenodes.txt
and therefore it's the copy in /var/www/html/supermon/
that is used, since privatenodes.txt
resides here too.
To automate the process the update is done nightly via /etc/cron.daily/allstar_helpers
which was modified to point to the correct version of astdb.php
#!/bin/bash # Get new allmon data daily /var/www/html/supermon/astdb.php
The nodes monitored, and the menu to select them, and external websites, on each node's Supermon Dashboard is configured by allmon.ini
Here's the current version:
Generic /var/www/html/supermon/allmon.ini
[All Nodes] nodes = 481480,481481,481482,1399 menu = yes system = Nodes [481480] host = 192.168.21.109:5038 user = admin passwd = "XXXX" menu = yes hideNodeURL = no system = Nodes [481481] host = 192.168.21.250:5038 user = admin passwd = "XXXX" menu = yes hideNodeURL = no system = Nodes [481482] host = 192.168.21.251:5038 user = admin passwd = "XXXX" menu = yes hideNodeURL = no system = Nodes [1399] host = 192.168.21.250:5038 user = admin passwd = "XXXX" menu = yes hideNodeURL = yes system = Nodes ; Set the node number for the specific node that this copy of allmon.ini is written for [lsNodes] url = "/cgi-bin/lsnodes_web?node=481481" menu = yes [Node 481840] url = "http://gm4slv.plus.com:42110/" menu = yes system = Dashboards [Node 481841] url = "http://gm4slv.plus.com:42111/" menu = yes system = Dashboards [Node 481842] url = "http://gm4slv.plus.com:42112/" menu = yes system = Dashboards [GM4SLV Wiki] url = "https://gm4slv.org.uk/dokuwiki/doku.php?id=start" menu = yes system = External Sites [Echolink Link Status] url = "https://echolink.org/links.jsp?d=1&gs=IP90gg&sel=gridsq" menu = yes system = External Sites [TGIF] url = "https://tgif.network/" menu = yes system = External Sites [AllStarLink] url = "http://www.allstarlink.org" menu = yes system = External Sites
VHF Gateway
Platform | Raspberry Pi 2 Model B Rev 1.1 |
Interface | CM108 Soundcard - modified |
Radio | FT-1500M @ 5W |
Frequency | 144.9125MHz |
Allstar Node | 481480 |
Dashboard | http://gm4slv.plus.com:42110/ |
The initial node, described here : GM4SLV Allstar 2025 got too cumbersome adding DMR Bridging, along with handling Echolink.
I decided, since I had a few spare Raspberry Pi boards doing nothing much, to split the DMR Bridging to a separate node.
I removed the DVSwitch bridging from the VHF Gateway node.
; Radio Repeater configuration file (for use with app_rpt) ; Your Repeater ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; This is where you define your nodes which can be connected to. ; [nodes] ; Note, if you are using automatic update for allstar link nodes, ; no allstar link nodes should be defined here. Only place a definition ; for your local nodes, and private (off of allstar link) nodes here. 481480 = radio@127.0.0.1:4569/481480,NONE ; This must be changed to your node number 481481 = radio@192.168.21.250:4570/481481,NONE ; second node on LAN ;1399 = radio@192.168.21.250:4570/1399,NONE 481482 = radio@192.168.21.251:4571/481482,NONE ;[1999] ;rxchannel = USRP/127.0.0.1:34001:31001 ; Use the USRP channel driver. Must be enabled in modules.conf ; ; 127.0.0.1 = IP of the target application ; ; 34001 = UDP port the target application is listening on ; ; 32001 = UDP port ASL is listening on ;duplex = 0 ; 0 = Half duplex with no telemetry tones or hang time. Ah, but Allison STILL talks! ;hangtime = 0 ; squelch tail hang time 0 ;althangtime = 0 ; longer squelch tail hang time 0 ;holdofftelem = 1 ; Hold off all telemetry when signal is present on receiver or from connected nodes ; ; except when an ID needs to be done and there is a signal coming from a connected node. ;telemdefault = 0 ; 0 = telemetry output off. Don't send Allison to DMR !!!!!!!!!!!!!!!!! Trust me. ;telemdynamic = 0 ; 0 = disallow users to change the local telemetry setting with a COP command, ;linktolink = no ; disables forcing physical half-duplex operation of main repeater while ; ; still keeping half-duplex semantics (optional) ;nounkeyct = 1 ; Set to a 1 to eliminate courtesy tones and associated delays. ;totime = 180000 ; transmit time-out time (in ms) (optional, default 3 minutes 180000 ms) ;idrecording = |ie ; id recording or morse string see http://ohnosec.org/drupal/node/87 ;idtalkover = |ie ; Talkover ID (optional) default is none see http://ohnosec.org/drupal/node/129 [481480] ; Change this to your assigned node number ;[48148] ; Change this to your assigned node number ; Must also be enabled in modules.conf ; Rx audio/signalling channel. Choose ONLY 1 per node stanza ; Enable the selected channel driver in modules.conf !!! ;rxchannel = dahdi/pseudo ; No radio (hub) rxchannel = SimpleUSB/usb_48148 ; SimpleUSB ; rxchannel = Pi/1 ; Raspberry Pi PiTA ; rxchannel = Radio/usb_48148 ; USBRadio (DSP) ; rxchannel = Dahdi/1 ; PCI Quad card ; rxchannel = Beagle/1 ; BeagleBoard ; rxchannel = USRP/127.0.0.1:34001:32001; GNU Radio interface USRP ; rxchannel = Voter/48148 ; RTCM device duplex = 1 ; 0 = Half duplex with no telemetry tones or hang time. ; Special Case: Full duplex if linktolink is set to yes. ; This mode is preferred when interfacing with an external multiport repeater controller. ; Comment out idrecording and idtalkover to suppress IDs also ; 1 = Half duplex with telemetry tones and hang time. Does not repeat audio. ; This mode is preferred when interfacing a simplex node. ; 2 = Full Duplex with telemetry tones and hang time. ; This mode is preferred when interfacing a repeater. ; 3 = Full Duplex with telemetry tones and hang time, but no repeated audio. ; 4 = Full Duplex with telemetry tones and hang time. Repeated audio only when the autopatch is down. linktolink = no ; disables forcing physical half-duplex operation of main repeater while ; still keeping half-duplex semantics (optional) linkmongain = 0 ; Link Monitor Gain adjusts the audio level of monitored nodes when a signal from another node or the local receiver is received. ; If linkmongain is set to a negative number the monitored audio will decrease by the set amount in db. ; If linkmongain set to a positive number monitored audio will increase by the set amount in db. ; The value of linkmongain is in db. The default value is 0 db. erxgain = -3 ; Echolink receive gain adjustment ; Note: Gain is in db-volts (20logVI/VO) etxgain = 3 ; Echolink transmit gain adjustment ; Note: Gain is in db-volts (20logVI/VO) eannmode = 2 ; 1 = Say only node number on echolink connects (default = 1) ; 2 = say phonetic call sign only on echolink connects ; 3 = say phonetic call sign and node number on echolink connects ;controlstates = controlstates ; system control state stanza scheduler = schedule ; scheduler stanza functions = functions ; Repeater Function stanza phone_functions = functions ; Phone Function stanza link_functions = functions ; Link Function stanza telemetry = telemetry ; Telemetry stanza morse = morse ; Morse stanza wait_times = wait-times ; Wait times stanza context = radio ; dialing context for phone callerid = "Repeater" <0000000000> ; callerid for phone calls accountcode = RADIO ; account code (optional) hangtime = 200 ; squelch tail hang time (in ms) (optional, default 5 seconds, 5000 ms) althangtime = 300 ; longer squelch tail totime = 300000 ; 5 mins (12/4/22) transmit time-out time (in ms) (optional, default 3 minutes 180000 ms) telemnomdb = -3 ; telemduckdb = -10 ; ;idrecording = /home/gm4slv/gm4slv_id ;idrecording = /home/gm4slv/mb7aze_id idrecording = |iGM4SLV ; Main ID message ;idtalkover = |iGM4SLV ; Talkover ID message idtalkover = |iGM4SLV ; Talkover ID message ; See Telemetry section Example: idrecording = rpt/nodenames/48148 idtime = 900000 ; 15 mins (12/4/22) id interval time (in ms) (optional) Default 5 minutes (300000 ms) politeid = 30000 ; time in milliseconds before ID timer expires to try and ID in the tail. (optional, default 30000) unlinkedct = ct12 ; Send a this courtesy tone when the user unkeys if the node is not connected to any other nodes. (optional, default is none) remotect = ct3 ; remote linked courtesy tone (indicates a remote is in the list of links) linkunkeyct = ct4 ; sent when a transmission received over the link unkeys ;nolocallinkct = 0 ; Send unlinkedct instead if another local node is connected to this node (hosted on the same PC). ; Supermon smlogger connpgm=/usr/local/sbin/supermon/smlogger 1 discpgm=/usr/local/sbin/supermon/smlogger 0 ;connpgm = yourconnectprogram ; Disabled. Execute a program you specify on connect. (default) ; passes 2 command line arguments to your program: ; 1. node number in this stanza (us) ; 2. node number being connected to us (them) ;discpgm = yourdisconnectprogram ; Disabled. Execute a program you specify on disconnect. (default) ; passes 2 command line arguments to your program: ; 1. node number in this stanza (us) ; 2. node number being disconnected from us (them) lnkactenable = 0 ; Set to 1 to enable the link activity timer. Applicable to standard nodes only. lnkacttime = 3600 ; Link activity timer time in seconds. lnkactmacro = *73 ; Function to execute when link activity timer expires. lnkacttimerwarn = custom/timeout ; Message to play when the link activity timer has 30 seconds left. ;remote_inact_timeout = 60 ; Specifies the amount of time without keying from the link. Set to 0 to disable timeout. (15 * 60) ;remote_timeout = ; Session time out for remote base. Set to 0 to disable. (60 * 60) ;remote_timeout_warning_freq = ; 30 ;remote_timeout_warning = ; (3 * 60) ;nounkeyct = 0 ; Set to a 1 to eliminate courtesy tones and associated delays. holdofftelem = 0 ; Hold off all telemetry when signal is present on receiver or from connected nodes ; except when an ID needs to be done and there is a signal coming from a connected node. telemdefault = 1 ; 0 = telemetry output off ; 1 = telemetry output on (default = 1) ; 2 = timed telemetry output on command execution and for a short time thereafter. telemdynamic = 1 ; 0 = disallow users to change the local telemetry setting with a COP command, ; 1 = Allow users to change the setting with a COP command. (default = 1) beaconing = 0 ; Send ID regardless of repeater activity (Required in the UK, but probably illegal in the US) parrotmode = 1 ; 0 = Parrot Off (default = 0) ; 1 = Parrot On Command ; 2 = Parrot Always ; 3 = Parrot Once by Command parrottime = 1000 ; Set the amount of time in milliseconds ; to wait before parroting what was received ;rxnotch=1065,40 ; (Optional) Notch a particular frequency for a specified ; b/w. app_rpt must have been compiled with ; the notch option startup_macro = *813481481 ; *81*70 ; nodenames = /var/lib/asterisk/sounds/rpt/nodenames.callsign ; Point to alternate nodename sound directory ; Stream your node audio to Broadcastify or similar. See https://wiki.allstarlink.org/wiki/Stream_Node_Audio_to_Broadcastify ; outstreamcmd = /bin/sh,-c,/usr/bin/lame --preset cbr 16 -r -m m -s 8 --bitwidth 16 - - | /usr/bin/ezstream -qvc /etc/ezstream.xml ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Need more information on these ;extnodes = extnodes-different ; section in extnodefile containing dynamic node information (optional) ;extnodefile = /home/gm4slv/rpt_extnodes ; Points to nodelist file containing dynamic node info default = /var/lib/asterisk/rpt_extnodes (optional) ;extnodefile2 = ; Is this a list of node files? Possible a list of private nodes or a list of static IPs for known nodes???? ;nodenames = /foo/names ; locaton of node sound files default = /var/lib/asterisk/sounds/rpt/nodenames ;archivedir = /tmp ; defines and enables activity recording into specified directory (optional) ;monminblocks = 2048 ; Min 1K blocks to be left on partition (will not save monitor output if disk too full) ; ; The tailmessagetime,tailsquashedtime, and tailmessagelist need to be set ; ; to support tail messages. They can be omitted otherwise. ;tailmessagetime = 300000 ; Play a tail message every 5 mins ;tailsquashedtime = 30000 ; If squashed by another user, ; ; try again after 30 seconds ;tailmessagelist = msg1,msg2 ; list of messages to be played for tail message ; alt_functions ; ctgroup ; dphone_functions ; idtime ; iobase ; iospeed ; locallist ; mars Remote Base ; memory ; nobusyout ; nodes ; nolocallinkct ; notelemtx ; outxlat ; parrot ; propagate_phonedtmf ; rptnode ; rptinactmacro Macro to execute when inactivity timer expires ; rptinacttime Inactivity timer time in seconds (0 seconds disables feature) ; rxnotch Optional Audio notch ; simplexphonedelay ; tonemacro ; tonezone ; txlimits ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; *** Status Reporting *** ; Comment the following statpost line stop to reporting of the status of your node to stats.allstarlink.org statpost_url = http://stats.allstarlink.org/uhandler ; Status updates [functions] ; Prefix Functions ; *1 Disconnect Link ; *2 Monitor Link ; *3 Connect Link ; *4 Command Mode ; *5 Macros ; *6 User Functions ; *7 Connection Status/Functions ; *8 User Functions ; *9 User Functions ; *0 User Functions ; *A User Functions ; *B User Functions ; *C User Functions ; *D User Functions ; Mandatory Command Codes 1 = ilink,1 ; Disconnect specified link 2 = ilink,2 ; Connect specified link -- monitor only 3 = ilink,3 ; Connect specified link -- tranceive 4 = ilink,4 ; Enter command mode on specified link 70 = ilink,5 ; System status ;99 = cop,6 ; PTT (phone mode only) ; End Mandatory Command Codes 74 = ilink,16 ; Reconnect links disconnected with "disconnect all links" 76 = ilink,6 ; Disconnect All Links 80 = status,11 ; Force ID (local only) ;81 = status,12 ; Give Time of Day (local only) 91 = cop,21 ; Enable Parrot Mode 92 = cop,22 ; Disable Parrot Mode 93 = cop,55 ; Parrot Once if parrot mode is disabled 98 = cop,2 ; System enable 99 = cop,3 ; System disable 901 = cop,1 ; System warm boot ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Macro Commands 5 = macro ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Autopatch Commands ; Note, This may be a good place for other 2 digit frequently used commands ;61 = autopatchup,noct = 1,farenddisconnect = 1,dialtime = 20000 ; Autopatch up ;62 = autopatchdn ; Autopatch down ; autopatchup can optionally take comma delimited setting=value pairs: ; context = string ; Override default context with "string" ; dialtime = ms ; Specify the max number of milliseconds between phone number digits (1000 milliseconds = 1 second) ; farenddisconnect = 1 ; Automatically disconnect when called party hangs up ; noct = 1 ; Don't send repeater courtesy tone during autopatch calls ; quiet = 1 ; Don't send dial tone, or connect messages. Do not send patch down message when called party hangs up ; Example: 123=autopatchup,dialtime=20000,noct=1,farenddisconnect=1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Status Commands ; 1 - Force ID (global) ; 2 - Give Time of Day (global) ; 3 - Give software Version (global) ; 4 - Give GPS location info ; 5 - Last (dtmf) user ; 11 - Force ID (local only) ; 12 - Give Time of Day (local only) ;721 = status,1 ; Force ID (global) ;722 = status,2 ; Give Time of Day (global) ;723 = status,3 ; Give software Version (global) ;724 = status,4 ; Give GPS location info ;725 = status,5 ; Last (dtmf) user ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Link Commands ; 1 - Disconnect specified link ; 2 - Connect specified link -- monitor only ; 3 - Connect specified link -- tranceive ; 4 - Enter command mode on specified link ; 5 - System status ; 6 - Disconnect all links ; 7 - Last Node to Key Up ; 8 - Connect specified link -- local monitor only ; 9 - Send Text Message (9,<destnodeno or 0 (for all)>,Message Text, etc. ; 10 - Disconnect all RANGER links (except permalinks) ; 11 - Disconnect a previously permanently connected link ; 12 - Permanently connect specified link -- monitor only ; 13 - Permanently connect specified link -- tranceive ; 15 - Full system status (all nodes) ; 16 - Reconnect links disconnected with "disconnect all links" ; 17 - MDC test (for diag purposes) ; 18 - Permanently Connect specified link -- local monitor only ; ilink commands 1 through 5 are defined in the Mandatory Command section ;806 = ilink,6 ; Disconnect all links ;827 = ilink,7 ; Last Node to Key Up ;808 = ilink,8 ; Connect specified link -- local monitor only ;809 = ilink,9,48148,"Testing" ; would send a text message to node 48148 replace 48148 with 0 for all connected nodes ;810 = ilink,10 ; Disconnect all RANGER links (except permalinks) 811 = ilink,11 ; Disconnect a previously permanently connected link 812 = ilink,12 ; Permanently connect specified link -- monitor only 813 = ilink,13 ; Permanently connect specified link -- tranceive ;815 = ilink,15 ; Full system status (all nodes) ;817 = ilink,17 ; MDC test (for diag purposes) ;818 = ilink,18 ; Permanently Connect specified link -- local monitor only ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Control operator (cop) functions. ; Change these to something other than these codes listed below! ; Uncomment as needed. ;901 = cop,1 ; System warm boot ; 904 = cop,4 ; Test tone on/off (toggle) ; 905 = cop,5 ; Dump system variables on console (debug use only) ; 907 = cop,7 ; Time out timer enable ; 908 = cop,8 ; Time out timer disable ; 909 = cop,9 ; Autopatch enable ; 910 = cop,10 ; Autopatch disable ; 911 = cop,11 ; User linking functions enable ; 912 = cop,12 ; User linking functions disable ; 913 = cop,13 ; Query system control state ; 914 = cop,14 ; Set system control state ; 915 = cop,15 ; Scheduler enable ; 916 = cop,16 ; Scheduler disable ; 917 = cop,17 ; User functions enable (time, id, etc) ; 918 = cop,18 ; User functions disable ; 919 = cop,19 ; Select alternate hang time (althangtime) ; 920 = cop,20 ; Select standard hangtime (hangtime) ; 924 = cop,24 ; Flush all telemetry ; 925 = cop,25 ; Query last node un-keyed ; 926 = cop,26 ; Query all nodes keyed/unkeyed ; 927 = cop,27 ; Reset DAQ minimum on a pin ; 928 = cop,28 ; Reset DAQ maximum on a pin ; 930 = cop,30 ; Recall Memory Setting in Attached Xcvr ; 931 = cop,31 ; Channel Selector for Parallel Programmed Xcvr ; 932 = cop,32 ; Touchtone pad test: command + Digit string + # to playback all digits pressed ; 933 = cop,33 ; Local Telemetry Output Enable ; 934 = cop,34 ; Local Telemetry Output Disable ; 935 = cop,35 ; Local Telemetry Output on Demand ; 936 = cop,36 ; Foreign Link Local Output Path Enable ; 937 = cop,37 ; Foreign Link Local Output Path Disable ; 938 = cop,38 ; Foreign Link Local Output Path Follows Local Telemetry ; 939 = cop,39 ; Foreign Link Local Output Path on Demand ; 942 = cop,42 ; Echolink announce node # only ; 943 = cop,43 ; Echolink announce node Callsign only ; 944 = cop,44 ; Echolink announce node # & Callsign ; 945 = cop,45 ; Link Activity timer enable ; 945 = cop,46 ; Link Activity timer disable ; 947 = cop,47 ; Reset "Link Config Changed" Flag ; 948 = cop,48 ; Send Page Tone (Tone specs separated by parenthesis) ; 949 = cop,49 ; Disable incoming connections (control state noice) ; 950 = cop,50 ; Enable incoming connections (control state noicd) ; 951 = cop,51 ; Enable sleep mode ; 952 = cop,52 ; Disable sleep mode ; 953 = cop,53 ; Wake up from sleep ; 954 = cop,54 ; Go to sleep ; 956 = cop,56 ; Rx CTCSS Enable ; 957 = cop,57 ; Rx CTCSS Disable ; 958 = cop.58 ; Tx CTCSS On Input only Enable ; 959 = cop,59 ; Tx CTCSS On Input only Disable ; 960 = cop,60 ; Send MDC-1200 Burst (cop,60,type,UnitID[,DestID,SubCode]) ; ; Type is 'I' for PttID, 'E' for Emergency, and 'C' for Call ; ; (SelCall or Alert), or 'SX' for STS (ststus), where X is 0-F. ; ; DestID and subcode are only specified for the 'C' type message. ; ; UnitID is the local systems UnitID. DestID is the MDC1200 ID of ; ; the radio being called, and the subcodes are as follows: ; ; Subcode '8205' is Voice Selective Call for Spectra ('Call') ; ; Subcode '8015' is Voice Selective Call for Maxtrac ('SC') or ; ; Astro-Saber('Call') ; ; Subcode '810D' is Call Alert (like Maxtrac 'CA') ; 961 = cop,61 ; Send Message to USB to control GPIO pins (cop,61,GPIO1=0[,GPIO4=1].....) ; 962 = cop,62 ; Send Message to USB to control GPIO pins, quietly (cop,62,GPIO1=0[,GPIO4=1].....) ; 963 = cop,63 ; Send pre-configred APRSTT notification (cop,63,CALL[,OVERLAYCHR]) ; 964 = cop,64 ; Send pre-configred APRSTT notification, quietly (cop,64,CALL[,OVERLAYCHR]) ; 965 = cop,65 ; Send POCSAG page (equipped channel types only) [functions-remote] 0 = remote,1 ; Retrieve Memory 1 = remote,2 ; Set freq. 2 = remote,3 ; Set tx PL tone 3 = remote,4 ; Set rx PL tone 40 = remote,100 ; Rx PL off 41 = remote,101 ; Rx PL on 42 = remote,102 ; Tx PL off 43 = remote,103 ; Tx PL on 44 = remote,104 ; Low Power 45 = remote,105 ; Medium Power 46 = remote,106 ; High Power 711 = remote,107 ; Bump -20 714 = remote,108 ; Bump -100 717 = remote,109 ; Bump -500 713 = remote,110 ; Bump +20 716 = remote,111 ; Bump +100 719 = remote,112 ; Bump +500 721 = remote,113 ; Scan - slow 724 = remote,114 ; Scan - quick 727 = remote,115 ; Scan - fast 723 = remote,116 ; Scan + slow 726 = remote,117 ; Scan + quick 729 = remote,118 ; Scan + fast 79 = remote,119 ; Tune 51 = remote,5 ; Long status query 52 = remote,140 ; Short status query 67 = remote,210 ; Send a * 69 = remote,211 ; Send a # ;91 = remote,99,CALLSIGN,LICENSETAG ; Remote base login. ; Define a different dtmf sequence for each user which is ; authorized to use the remote base to control access to it. ; For examble 9139583=remote,99,WB6NIL,G would grant access to ; the remote base and announce WB6NIL as being logged in. ; Another entry, 9148351=remote,99,WA6ZFT,E would grant access to ; the remote base and announce WA6ZFT as being logged in. ; When the remote base is disconnected from the originating node, the ; user will be logged out. The LICENSETAG argument is used to enforce ; tx frequency limits. See [txlimits] below. 85 = cop,6 ; Remote base telephone key [telemetry] ; Telemetry entries can be shared across all repeaters, or defined for each repeater. ; Can be a tone sequence, morse string, or a file ; ; |t - Tone escape sequence ; ; Tone sequences consist of 1 or more 4-tuple entries (freq1, freq2, duration, amplitude) ; Single frequencies are created by setting freq1 or freq2 to zero. ; ; |m - Morse escape sequence ; ; Sends Morse code at the telemetry amplitude and telemetry frequency as defined in the ; [morse] section. ; ; Follow with an alphanumeric string ; ; |i - Morse ID escape sequence ; ; Sends Morse code at the ID amplitude and ID frequency as defined in the ; [morse] section. ; ; path/to/sound/file/without/extension ; ; Send the sound if in place of a constructed tone. Do not include the file extension ; Example: ct8 = rpt/bloop ; Example: idrecording = rpt/nodenames/48148 ct1 = |t(350,0,100,2048)(500,0,100,2048)(660,0,100,2048) ct2 = |t(660,880,150,2048) ct3 = |t(440,0,150,4096) ct4 = |t(550,0,150,2048) ct5 = |t(660,0,150,2048) ct6 = |t(880,0,150,2048) ct7 = |t(660,440,150,2048) ct8 = |t(700,1100,150,2048) ranger = |t(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,150,0) remotemon = |mR ;remotemon = |t(1209,0,50,2048) ; local courtesy tone when receive only remotetx = |mK ;remotetx = |t(1633,0,50,3000)(0,0,80,0)(1209,0,50,3000) ; local courtesy tone when linked Trancieve mode cmdmode = |t(900,903,200,2048) ;functcomplete = |mW functcomplete = |t(1000,0,100,2048)(0,0,100,0)(1000,0,100,2048) remcomplete = |t(650,0,100,2048)(0,0,100,0)(650,0,100,2048)(0,0,100,0)(650,0,100,2048) pfxtone = |t(350,440,30000,3072) patchup = rpt/callproceeding patchdown = rpt/callterminated ct12 = |me ct13 = |mR ; As far as what the numbers mean, ; (000,000,010,000) ; | | | |-------amplitude ; | | |-------------duration ; | |-------------------Tone 2 ; |-------------------------Tone 1 ; So, with 0,0,10,0 That says No Tone1, No Tone2, 10ms duration, 0 Amplitude. ; Use it for a delay. Fine tuning for how long before telemetry is sent, in conjunction with the telemdelay parameter) ; The numbers, like 350,440,10,2048 are 350Hz, 440Hz, 10ms delay, amplitude of 2048. ; Morse code parameters, these are common to all repeaters. [morse] speed = 20 ; Approximate speed in WPM frequency = 600 ; Morse Telemetry Frequency amplitude = 2048 ; Morse Telemetry Amplitude idfrequency = 1065 ; Morse ID Frequency idamplitude = 1024 ; Morse ID Amplitude ; ; This section allows wait times for telemetry events to be adjusted ; A section for wait times can be defined for every repeater ; [wait-times] telemwait = 400 ; Time to wait before sending most telemetry idwait = 500 ; Time to wait before starting ID unkeywait = 200 ; Time to wait after unkey before sending CT's and link telemetry calltermwait = 2000 ; Time to wait before announcing "call terminated" ; Memories for remote bases [memory] ;00 = 146.580,100.0,m ;01 = 147.030,103.5,m+t ;02 = 147.240,103.5,m+t ;03 = 147.765,79.7,m-t ;04 = 146.460,100.0,m ;05 = 146.550,100.0,m ; Place command macros here [macro] ;11 = *141223# ; disc. hubnet ;21 = *241223# ; monitor hubnet ;31 = *341223# ; transceive hubnet ;12 = *1424611# ; disc MilNet ;22 = *2424611# ; monitor MilNet ;32 = *3424611# ; transceive MilNet ;13 = *129332# ; disc Alaska ;23 = *229332# ; monitor Alaska ;33 = *329332# ; transceive Alaska ;14 = *154383# ; disc CQ North ;24 = *254383# ; monitor CQ North ;34 = *354383# ; transceive CQ North ;191 = *140894# ; disconnect hubnet Echo ;391 = *340894# ; connect hubnet echo ;19 = *13009999# ; dis echolink echotest ;39 = *33009999# ; con echolink echotest 31 = *3481481# ; link to 481481 hub node 41 = *4481481 ; command mode 481481 hub node 32 = *3481482 ; link to 481482 echolink node 42 = *4481482 ; command mode 481482 echolink node ; Data Acquisition configuration ;[daq-list] ;device = device_name1 ;device = device_name2 ;Where: device_name1 and device_name2 are stanzas you define in this file ;device = daq-cham-1 ; Device name ;[daq-cham-1] ; Defined in [daq-list] ;hwtype = uchameleon ; DAQ hardware type ;devnode = /dev/ttyUSB0 ; DAQ device node (if required) ;1 = inadc ; Pin definition for an ADC channel ;2 = inadc ;3 = inadc ;4 = inadc ;5 = inadc ;6 = inadc ;7 = inadc ;8 = inadc ;9 = inp ; Pin definition for an input with a weak pullup resistor ;10 = inp ;11 = inp ;12 = inp ;13 = in ; Pin definition for an input without a weak pullup resistor ;14 = out ; Pin definition for an output ;15 = out ;16 = out ;17 = out ;18 = out ;[meter-faces] ;face = scale(scalepre,scalediv,scalepost),word/?,... ; ; scalepre = offset to add before dividing with scalediv ; scalediv = full scale/number of whole units (e.g. 256/20 or 12.8 for 20 volts). ; scalepost = offset to add after dividing with scalediv ; ;face = range(X-Y:word,X2-Y2:word,...),word/?,... ;face = bit(low-word,high-word),word/?,... ; ; word/? is either a word in /var/lib/asterisk/sounds or one of its subdirectories, ; or a question mark which is a placeholder for the measured value. ; ; ; Battery voltage 0-20 volts ;batvolts = scale(0,12.8,0),rpt/thevoltageis,?,ha/volts ; 4 quadrant wind direction ;winddir = range(0-33:north,34-96:west,97-160:south,161-224:east,225-255:north),rpt/thewindis,? ; LM34 temperature sensor with 130 deg. F full scale ;lm34f = scale(0,1.969,0),rpt/thetemperatureis,?,degrees,fahrenheit ; Status poll (non alarmed) ;light = bit(ha/off,ha/on),ha/light,? ;[alarms] ; ;tag = device,pin,node,ignorefirst,func-low,func-hi ; ;tag = a unique name for the alarm ;device = daq device to poll ;pin = the device pin to be monitored ;ignorefirstalarm = set to 1 to throwaway first alarm event, or 0 to report it ;node = the node number to execute the function on ;func-low = the DTMF function to execute on a high to low transition ;func-high = the DTMF function to execute on a low to high transition ; ; a '-' as a function name is shorthand for no-operation ; ;door = daq-cham-1,9,1,2017,*7,- ;pwrfail = daq-cham-1,10,0,2017,*911111,- ; ; Control states ; Allow several control operator functions to be changed at once using one command (good for scheduling) ; ;[controlstates] ;statenum = copcmd,[copcmd]... ;0 = rptena,lnkena,apena,totena,ufena,noicd ; Normal operation ;1 = rptena,lnkena,apdis,totdis,ufena,noice ; Net and news operation ;2 = rptena,lnkdis,apdis,totena,ufdis,noice ; Repeater only operation ; Scheduler - execute a macro at a given time [schedule] ;dtmf_function = m h dom mon dow ; ala cron, star is implied ;8 = 55 12 * * * ; at midnight, execute macro 2. ; See https://wiki.allstarlink.org/wiki/Event_Management [events] #includeifexists custom/rpt.conf
; Inter-Asterisk eXchange driver definition [general] ; !!! Change this to match your node registration !!! register=481480:XXXXXXXX@register.allstarlink.org ; This must be changed to your node number, password ; remove the leading ";" bindport = 4569 ; bindport and bindaddr may be specified ; NOTE: bindport must be specified BEFORE ; bindaddr or may be specified on a specific ; bindaddr if followed by colon and port ; (e.g. bindaddr=192.168.0.1:4569) ; bindaddr = 192.168.0.1 ; more than once to bind to multiple ; addresses, but the first will be the ; default disallow = all ; The permitted codecs for outgoing connections ; Audio Quality Bandwidth ;allow = ulaw ; best 87 kbps ;allow = adpcm ; good 55 kbps ;allow = gsm ; medicore 36 kbps allow = ulaw allow = adpcm allow = g722 allow = g726aal2 allow = gsm allow = ilbc jitterbuffer = yes forcejitterbuffer = yes dropcount = 2 maxjitterbuffer = 4000 maxjitterinterps = 10 resyncthreshold = 1000 maxexcessbuffer = 80 minexcessbuffer = 10 jittershrinkrate = 1 tos = 0x1E autokill = yes delayreject = yes ; iaxthreadcount = 30 ; iaxmaxthreadcount = 150 ; Incoming radio connections [radio] type = user disallow = all allow = ulaw allow = adpcm allow = g722 allow = g726aal2 allow = gsm allow = ilbc codecpriority = host context = radio-secure transfer = no [iaxrpt] ; Connect from iaxrpt Username field (PC AllStar Client) type = user ; Notice type is user here <--------------- context = iaxrpt ; Context to jump to in extensions.conf auth = md5 secret = Your_Secret_Pasword_Here host = dynamic disallow = all allow = ulaw allow = adpcm allow = gsm transfer = no [iaxclient] ; Connect from iax client (Zoiper...) type = friend ; Notice type here is friend <-------------- context = iax-client ; Context to jump to in extensions.conf auth = md5 secret = Your_Secret_Password_Here host = dynamic disallow = all allow = ulaw allow = adpcm allow = gsm transfer = no [allstar-sys] type = user context = allstar-sys auth = rsa inkeys = allstar disallow = all allow = ulaw [allstar-public] type = user context = allstar-public auth = md5 secret = allstar disallow = all allow = ulaw allow = gsm ; The following should be un-commented to support Allstar Autopatch service ; [allstar-autopatch] ; type = peer ; host = register.allstarlink.org ; username = <One of the Node numbers on this server> ; secret = <The node password for the above node> ; auth = md5 ; disallow = all ; allow = ulaw ; transfer = no #includeifexists custom/iax.conf
[general] static = yes ; These two lines prevent the command-line interface writeprotect = yes ; from overwriting the config file. Leave them here. [globals] HOMENPA = 999 ; change this to your Area Code NODE = 481480 ; change this to your node number ;NODE1 = 1999 [default] exten => i,1,Hangup [radio-secure] exten => ${NODE},1,rpt,${NODE} ;exten => ${NODE1},1,rpt,${NODE1} [iaxrpt] ; entered from iaxrpt in iax.conf exten => ${NODE},1,rpt(${NODE}|X) ; NODE is the Name field in iaxrpt ; Info: The X option passed to the Rpt application ; disables the normal security checks. ; Because incoming connections are validated in iax.conf, ; and we don't know where the user will be coming from in advance, ; the X option is required. [iax-client] ; for IAX VIOP clients. exten => ${NODE},1,Ringing exten => ${NODE},n,Wait(3) exten => ${NODE},n,Answer exten => ${NODE},n,Set(NODENUM=${CALLERID(number)}) exten => ${NODE},n,Playback(rpt/node|noanswer) exten => ${NODE},n,SayDigits(${EXTEN}) exten => ${NODE},n,Set(CALLERID(num)=0) exten => ${NODE},n,Rpt,${NODE}|P|${CALLERID(name)} exten => ${NODE},n,Hangup exten => ${NODE},n(hangit),Answer exten => ${NODE},n(hangit),Wait(1) exten => ${NODE},n(hangit),Hangup ; Comment-out the following clause if you want Allstar Autopatch service [pstn-out] exten = _NXXNXXXXXX,1,playback(ss-noservice) exten = _NXXNXXXXXX,2,Congestion ; Un-comment out the following clause if you want Allstar Autopatch service ;[pstn-out] ;exten = _NXXNXXXXXX,1,Dial(IAX2/allstar-autopatch/\${EXTEN}) ;exten = _NXXNXXXXXX,2,Busy [invalidnum] exten = s,1,Wait,3 exten = s,n,Playback,ss-noservice exten = s,n,Wait,1 exten = s,n,Hangup [radio] exten = _X11,1,Goto(check_route|${EXTEN}|1); exten = _NXXXXXX,1,Goto(check_route|1${HOMENPA}${EXTEN}|1) exten = _1XXXXXXXXXX,1,Goto(check_route|${EXTEN}|1) exten = _07XX,1,Goto(parkedcalls|${EXTEN:1}|1) exten = 00,1,Goto(my-ip|s|1) [check_route] exten =_X.,1,Noop(${EXTEN}) ; no 800 exten = _1800NXXXXXX,2,Goto(invalidnum|s|1) exten = _1888NXXXXXX,2,Goto(invalidnum|s|1) exten = _1877NXXXXXX,2,Goto(invalidnum|s|1) exten = _1866NXXXXXX,2,Goto(invalidnum|s|1) exten = _1855NXXXXXX,2,Goto(invalidnum|s|1) ; no X00 NPA exten = _1X00XXXXXXX,2,Goto(invalidnum|s|1) ; no X11 NPA exten = _1X11XXXXXXX,2,Goto(invalidnum|s|1) ; no X11 exten = _X11,2,Goto(invalidnum|s|1) ; no 555 Prefix in any NPA exten = _1NXX555XXXX,2,Goto(invalidnum|s|1) ; no 976 Prefix in any NPA exten = _1NXX976XXXX,2,Goto(invalidnum|s|1) ; no NPA=809 exten = _1809XXXXXXX,2,Goto(invalidnum|s|1) ; no NPA=900 exten = _1900XXXXXXX,2,Goto(invalidnum|s|1) ; okay, route it exten = _1NXXXXXXXXX,2,Goto(pstn-out|${EXTEN:1}|1) exten = _X.,2,Goto(invalidnum|s|1) [my-ip] exten = s,1,Set(MYADDR=${CURL(http://myip.vg)}) exten = s,2,Wait,1 exten = s,3,SayAlpha(${MYADDR}) exten = s,4,Hangup [allstar-sys] exten => _1.,1,Rpt(${EXTEN:1}|Rrpt/node:NODE:rpt/in-call:digits/0:PARKED|120) exten => _1.,n,Hangup exten => _2.,1,Ringing exten => _2.,n,Wait(3) exten => _2.,n,Answer exten => _2.,n,Playback(rpt/node) exten => _2.,n,Saydigits(${EXTEN:1}) exten => _2.,n,Rpt(${EXTEN:1}|P|${CALLERID(name)}-P) exten => _2.,n,Hangup exten => _3.,1,Ringing exten => _3.,n,Wait(3) exten => _3.,n,Answer exten => _3.,n,Playback(rpt/node) exten => _3.,n,Saydigits(${EXTEN:1}) exten => _3.,n,Rpt(${EXTEN:1}|Pv|${CALLERID(name)}-P) exten => _3.,n,Hangup exten => _4.,1,Ringing exten => _4.,n,Wait(3) exten => _4.,n,Answer exten => _4.,n,Playback(rpt/node) exten => _4.,n,Saydigits(${EXTEN:1}) exten => _4.,n,Rpt(${EXTEN:1}|D|${CALLERID(name)}-P) exten => _4.,n,Hangup exten => _5.,1,Ringing exten => _5.,n,Wait(3) exten => _5.,n,Answer exten => _5.,n,Playback(rpt/node) exten => _5.,n,Saydigits(${EXTEN:1}) exten => _5.,n,Rpt(${EXTEN:1}|Dv|${CALLERID(name)}-P) exten => _5.,n,Hangup [allstar-public] exten => s,1,Ringing exten => s,n,Set(RESP=${CURL(https://register.allstarlink.org/cgi-bin/authwebphone.pl?${CALLERID(name)})}) exten => s,n,Set(NODENUM=${CALLERID(number)}) exten => s,n,GotoIf($["${RESP:0:1}" = "?"]?hangit) exten => s,n,GotoIf($["${RESP:0:1}" = ""]?hangit) exten => s,n,GotoIf($["${RESP:0:5}" != "OHYES"]?hangit) exten => s,n,Set(CALLSIGN=${RESP:5}) exten => s,n,Wait(3) exten => s,n,Playback(rpt/node|noanswer) exten => s,n,Saydigits(${NODENUM}) exten => s,n,Set(CALLERID(name)=${CALLSIGN}) exten => s,n,Set(CALLERID(num)=0) exten => s,n,Rpt(${NODENUM}|X) exten => s,n,Hangup exten => s,n(hangit),Answer exten => s,n(hangit),Wait(1) exten => s,n(hangit),Hangup #includeifexists custom/extensions.conf
/etc/asterisk/modules.conf (load echolink)
; ; Asterisk configuration file ; ; Module Loader configuration file ; ; By default DIAL does NOT load every module, only what is needed ; You can enable or disable any of the asterisk modules ; All modules are compiled and installed. ; To enable a module: load => module_name.so ; To disable a module: noload => module_name.so ; You will want to enable the channel driver modules you will be using. ; There are below in the Channle Driver section ; The most common Channel drivers for app_rpt are: ; chan_echolink.so echolink channel driver ; chan_simpleusb.so Simple USB Radio Interface Channel Drive ; chan_usbradio.so USB Console Channel Driver ; chan_usrp.so USRP Channel Module ; chan_voter.so radio Voter channel driver [modules] autoload=no ; Applications noload => app_adsiprog.so ; Asterisk ADSI Programming Application noload => app_alarmreceiver.so ; Alarm Receiver for Asterisk noload => app_amd.so ; Answering Machine Detection Application load => app_authenticate.so ; Authentication Application noload => app_cdr.so ; Tell Asterisk to not maintain a CDR for noload => app_chanisavail.so ; Check channel availability noload => app_channelredirect.so ; Channel Redirect noload => app_chanspy.so ; Listen to the audio of an active channel noload => app_controlplayback.so ; Control Playback Application noload => app_dahdibarge.so ; Barge in on channel application noload => app_dahdiras.so ; DAHDI RAS Application noload => app_dahdiscan.so ; Scan Zap channels application noload => app_db.so ; Database Access Functions load => app_dial.so ; Dialing Application noload => app_dictate.so ; Virtual Dictation Machine noload => app_directed_pickup.so ; Directed Call Pickup Application noload => app_directory.so ; Extension Directory noload => app_disa.so ; DISA (Direct Inward System Access) Appli noload => app_dumpchan.so ; Dump Info About The Calling Channel noload => app_echo.so ; Simple Echo Application load => app_exec.so ; Executes dialplan applications noload => app_externalivr.so ; External IVR Interface Application noload => app_festival.so ; Simple Festival Interface noload => app_flash.so ; Flash channel application noload => app_followme.so ; Find-Me/Follow-Me Application noload => app_forkcdr.so ; Fork The CDR into 2 separate entities noload => app_getcpeid.so ; Get ADSI CPE ID noload => app_gps.so ; GPS interface module noload => app_hasnewvoicemail.so ; Indicator for whether a voice mailbox ha noload => app_ices.so ; Encode and Stream via icecast and ices noload => app_image.so ; Image Transmission Application noload => app_lookupblacklist.so ; Look up Caller*ID name/number from black noload => app_lookupcidname.so ; Look up CallerID Name from local databas load => app_macro.so ; Extension Macros noload => app_meetme.so ; MeetMe conference bridge noload => app_milliwatt.so ; Digital Milliwatt (mu-law) Test Applicat noload => app_mixmonitor.so ; Mixed Audio Monitoring Application noload => app_morsecode.so ; Morse code noload => app_mp3.so ; Silly MP3 Application noload => app_nbscat.so ; Silly NBS Stream Application noload => app_page.so ; Page Multiple Phones noload => app_parkandannounce.so ; Call Parking and Announce Application load => app_playback.so ; Sound File Playback Application noload => app_privacy.so ; Require phone number to be entered, if n noload => app_queue.so ; True Call Queueing noload => app_radbridge.so ; Radio Bridging interface module noload => app_random.so ; Random goto noload => app_readfile.so ; Stores output of file into a variable noload => app_read.so ; Read Variable Application noload => app_realtime.so ; Realtime Data Lookup/Rewrite noload => app_record.so ; Trivial Record Application load => app_rpt.so ; Radio Repeater/Remote Base Application noload => app_sayunixtime.so ; Say time noload => app_senddtmf.so ; Send DTMF digits Application load => app_sendtext.so ; Send Text Applications noload => app_setcallerid.so ; Set CallerID Application noload => app_setcdruserfield.so ; CDR user field apps noload => app_settransfercapability.so ; Set ISDN Transfer Capability noload => app_sms.so ; SMS/PSTN handler noload => app_softhangup.so ; Hangs up the requested channel noload => app_speech_utils.so ; Dialplan Speech Applications noload => app_stack.so ; Stack Routines load => app_system.so ; Generic System() application noload => app_talkdetect.so ; Playback with Talk Detection noload => app_test.so ; Interface Test Application load => app_transfer.so ; Transfer noload => app_url.so ; Send URL Applications noload => app_userevent.so ; Custom User Event Application noload => app_verbose.so ; Send verbose output noload => app_voicemail.so ; Comedian Mail (Voicemail System) noload => app_waitforring.so ; Waits until first ring after time noload => app_waitforsilence.so ; Wait For Silence noload => app_while.so ; While Loops and Conditional Execution noload => app_zapateller.so ; Block Telemarketers with Special Informa ; CDR noload => cdr_csv.so ; Comma Separated Values CDR Backend noload => cdr_custom.so ; Customizable Comma Separated Values CDR noload => cdr_manager.so ; Asterisk Manager Interface CDR Backend ; Channels noload => chan_agent.so ; Agent Proxy Channel noload => chan_alsa.so ; ALSA Console Channel Driver noload => chan_beagle.so ; Beagleboard Radio Interface Channel Driver load => chan_dahdi.so ; DAHDI Telephony load => chan_echolink.so ; echolink Channel Driver noload => chan_features.so ; Feature Proxy Channel noload => chan_gtalk.so ; Gtalk Channel Driver load => chan_iax2.so ; Inter Asterisk eXchange (Ver 2) load => chan_local.so ; Local Proxy Channel (Note: used internal noload => chan_oss.so ; Channel driver for OSS sound cards noload => chan_phone.so ; Generic Linux Telephony Interface driver noload => chan_pi.so ; DMK Engineering "PITA" Board on Rpi2/3 Channel Driver load => chan_simpleusb.so ; CM1xx USB Cards with Radio Interface Channel Driver (No DSP) noload => chan_sip.so ; Session Initiation Protocol (SIP) noload => chan_tlb.so ; TheLinkBox Channel Driver noload => chan_usbradio.so ; CM1xx USB Cards with Radio Interface Channel Driver (DSP) load => chan_usrp.so ; GNU Radio interface USRP Channel Driver noload => chan_voter.so ; Radio Voter Channel Driver ; Codecs ; CODEC AUDIO QUALITY BANDWIDTH (including IP and Ethernet headers) ; ULAW best 87 kilobits per second (kbps) ; ADPCM good 55 kbps ; GSM mediocre 36 kbps ; g726aal2 ; ilbc load => codec_adpcm.so ; Adaptive Differential PCM Coder/Decoder load => codec_alaw.so ; A-law Coder/Decoder load => codec_a_mu.so ; A-law and Mulaw direct Coder/Decoder noload => codec_dahdi.so ; Generic DAHDI Transcoder Codec Translato load => codec_g726.so ; ITU G.726-32kbps G726 Transcoder load => codec_gsm.so ; GSM Coder/Decoder load => codec_ulaw.so ; mu-Law Coder/Decoder noload => codec_ilbc.so ; http://en.wikipedia.org/wiki/Internet_Low_Bitrate_Codec ; Formats load => format_g723.so ; G.723.1 Simple Timestamp File Format load => format_g726.so ; Raw G.726 (16/24/32/40kbps) data load => format_g729.so ; Raw G729 data load => format_gsm.so ; Raw GSM data load => format_h263.so ; Raw H.263 data load => format_h264.so ; Raw H.264 data load => format_ilbc.so ; Raw iLBC data noload => format_jpeg.so ; JPEG (Joint Picture Experts Group) Image load => format_pcm.so ; Raw/Sun uLaw/ALaw 8KHz (PCM,PCMA,AU), G. load => format_sln.so ; Raw Signed Linear Audio support (SLN) load => format_vox.so ; Dialogic VOX (ADPCM) File Format load => format_wav_gsm.so ; Microsoft WAV format (Proprietary GSM) load => format_wav.so ; Microsoft WAV format (8000Hz Signed Line ; Functions load => func_base64.so ; base64 encode/decode dialplan functions load => func_callerid.so ; Caller ID related dialplan function load => func_cdr.so ; CDR dialplan function load => func_channel.so ; Channel information dialplan function load => func_curl.so ; Load external URL load => func_cut.so ; Cut out information from a string load => func_db.so ; Database (astdb) related dialplan functi load => func_enum.so ; ENUM related dialplan functions load => func_env.so ; Environment/filesystem dialplan function load => func_global.so ; Global variable dialplan functions load => func_groupcount.so ; Channel group dialplan functions load => func_language.so ; Channel language dialplan function load => func_logic.so ; Logical dialplan functions load => func_math.so ; Mathematical dialplan function load => func_md5.so ; MD5 digest dialplan functions load => func_moh.so ; Music-on-hold dialplan function load => func_rand.so ; Random number dialplan function load => func_realtime.so ; Read/Write values from a RealTime reposi noload => func_sha1.so ; SHA-1 computation dialplan function noload => func_strings.so ; String handling dialplan functions noload => func_timeout.so ; Channel timeout dialplan functions noload => func_uri.so ; URI encode/decode dialplan functions ; PBX noload => pbx_ael.so ; Asterisk Extension Language Compiler load => pbx_config.so ; Text Extension Configuration noload => pbx_dundi.so ; Distributed Universal Number Discovery ( noload => pbx_loopback.so ; Loopback Switch noload => pbx_realtime.so ; Realtime Switch noload => pbx_spool.so ; Outgoing Spool Support ; Resources load => res_adsi.so ; ADSI Resource noload => res_agi.so ; Asterisk Gateway Interface (AGI) noload => res_clioriginate.so ; Call origination from the CLI noload => res_convert.so ; File format conversion CLI command load => res_crypto.so ; Cryptographic Digital Signatures load => res_features.so ; Call Features Resource load => res_indications.so ; Indications Resource noload => res_jabber.so ; AJI - Asterisk Jabber Interface noload => res_monitor.so ; Call Monitoring Resource noload => res_musiconhold.so ; Music On Hold Resource load => res_smdi.so ; Simplified Message Desk Interface (SMDI) noload => res_snmp.so ; SNMP [Sub]Agent for Asterisk noload => res_speech.so ; Generic Speech Recognition API [global]
DMR Bridging Node
Platform | Raspberry Pi 3 Model B Rev 1.2 |
Allstar Node | 481481 |
Dashboard | http://gm4slv.plus.com:42111/ |
This one is for linking the others together, and running DVSwitch to bridge to (at the moment) TGIF TG2354429 (my ID Talkgroup)
I added the DVSwitch software, in the same way described here GM4SLV Allstar 2025 and decided to bridge to TGIF
instead of Brandmeister.
; Radio Repeater configuration file (for use with app_rpt) ; Your Repeater ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; This is where you define your nodes which can be connected to. ; [nodes] ; Note, if you are using automatic update for allstar link nodes, ; no allstar link nodes should be defined here. Only place a definition ; for your local nodes, and private (off of allstar link) nodes here. 481481 = radio@127.0.0.1:4570/481481,NONE ; This must be changed to your node number ; and iax port number if not the default 481480 = radio@192.168.21.109:4569/481480,NONE 481482 = radio@192.168.21.251:4571/481482,NONE 1399 = radio@127.0.0.1:4570/1399,NONE [1399] rxchannel = USRP/127.0.0.1:34001:31001 ; Use the USRP channel driver. Must be enabled in modules.conf ; 127.0.0.1 = IP of the target application ; 34001 = UDP port the target application is listening on ; 32001 = UDP port ASL is listening on duplex = 0 ; 0 = Half duplex with no telemetry tones or hang time. Ah, but Allison STILL talks! hangtime = 0 ; squelch tail hang time 0 althangtime = 0 ; longer squelch tail hang time 0 holdofftelem = 1 ; Hold off all telemetry when signal is present on receiver or from connected nodes ; except when an ID needs to be done and there is a signal coming from a connected node. telemdefault = 0 ; 0 = telemetry output off. Don't send Allison to DMR !!!!!!!!!!!!!!!!! Trust me. telemdynamic = 0 ; 0 = disallow users to change the local telemetry setting with a COP command, linktolink = no ; disables forcing physical half-duplex operation of main repeater while ; still keeping half-duplex semantics (optional) nounkeyct = 1 ; Set to a 1 to eliminate courtesy tones and associated delays. totime = 180000 ; transmit time-out time (in ms) (optional, default 3 minutes 180000 ms) idrecording = |ie ; id recording or morse string see http://ohnosec.org/drupal/node/87 idtalkover = |ie ; Talkover ID (optional) default is none see http://ohnosec.org/drupal/node/129 [481481] ; Change this to your assigned node number ; Must also be enabled in modules.conf ; Rx audio/signalling channel. Choose ONLY 1 per node stanza ; Enable the selected channel driver in modules.conf !!! rxchannel = dahdi/pseudo ; No radio (hub) ; rxchannel = SimpleUSB/usb_481481 ; SimpleUSB ; rxchannel = Pi/1 ; Raspberry Pi PiTA ; rxchannel = Radio/usb_481481 ; USBRadio (DSP) ; rxchannel = Dahdi/1 ; PCI Quad card ; rxchannel = Beagle/1 ; BeagleBoard ; rxchannel = USRP/127.0.0.1:34001:32001; GNU Radio interface USRP ; rxchannel = Voter/481481 ; RTCM device duplex = 1 ; 0 = Half duplex with no telemetry tones or hang time. ; Special Case: Full duplex if linktolink is set to yes. ; This mode is preferred when interfacing with an external multiport repeater controller. ; Comment out idrecording and idtalkover to suppress IDs also ; 1 = Half duplex with telemetry tones and hang time. Does not repeat audio. ; This mode is preferred when interfacing a simplex node. ; 2 = Full Duplex with telemetry tones and hang time. ; This mode is preferred when interfacing a repeater. ; 3 = Full Duplex with telemetry tones and hang time, but no repeated audio. ; 4 = Full Duplex with telemetry tones and hang time. Repeated audio only when the autopatch is down. linktolink = no ; disables forcing physical half-duplex operation of main repeater while ; still keeping half-duplex semantics (optional) linkmongain = 0 ; Link Monitor Gain adjusts the audio level of monitored nodes when a signal from another node or the local receiver is received. ; If linkmongain is set to a negative number the monitored audio will decrease by the set amount in db. ; If linkmongain set to a positive number monitored audio will increase by the set amount in db. ; The value of linkmongain is in db. The default value is 0 db. erxgain = -3 ; Echolink receive gain adjustment ; Note: Gain is in db-volts (20logVI/VO) etxgain = 3 ; Echolink transmit gain adjustment ; Note: Gain is in db-volts (20logVI/VO) eannmode = 2 ; 1 = Say only node number on echolink connects (default = 1) ; 2 = say phonetic call sign only on echolink connects ; 3 = say phonetic call sign and node number on echolink connects ;controlstates = controlstates ; system control state stanza scheduler = schedule ; scheduler stanza functions = functions ; Repeater Function stanza phone_functions = functions ; Phone Function stanza link_functions = functions ; Link Function stanza telemetry = telemetry ; Telemetry stanza morse = morse ; Morse stanza wait_times = wait-times ; Wait times stanza context = radio ; dialing context for phone callerid = "Repeater" <0000000000> ; callerid for phone calls accountcode = RADIO ; account code (optional) hangtime = 200 ; squelch tail hang time (in ms) (optional, default 5 seconds, 5000 ms) althangtime = 300 ; longer squelch tail totime = 300000 ; transmit time-out time (in ms) (optional, default 3 minutes 180000 ms) ;idrecording = |iGM4SLV ; Main ID message ;idtalkover = |iGM4SLV ; Talkover ID message ; See Telemetry section Example: idrecording = rpt/nodenames/481481 ;idtime = 540000 ; id interval time (in ms) (optional) Default 5 minutes (300000 ms) politeid = 30000 ; time in milliseconds before ID timer expires to try and ID in the tail. (optional, default 30000) unlinkedct = ct2 ; Send a this courtesy tone when the user unkeys if the node is not connected to any other nodes. (optional, default is none) remotect = ct3 ; remote linked courtesy tone (indicates a remote is in the list of links) linkunkeyct = ct8 ; sent when a transmission received over the link unkeys ;nolocallinkct = 0 ; Send unlinkedct instead if another local node is connected to this node (hosted on the same PC). ; Supermon smlogger connpgm=/usr/local/sbin/supermon/smlogger 1 discpgm=/usr/local/sbin/supermon/smlogger 0 ;connpgm = yourconnectprogram ; Disabled. Execute a program you specify on connect. (default) ; passes 2 command line arguments to your program: ; 1. node number in this stanza (us) ; 2. node number being connected to us (them) ;discpgm = yourdisconnectprogram ; Disabled. Execute a program you specify on disconnect. (default) ; passes 2 command line arguments to your program: ; 1. node number in this stanza (us) ; 2. node number being disconnected from us (them) ;lnkactenable = 0 ; Set to 1 to enable the link activity timer. Applicable to standard nodes only. ;lnkacttime = 1800 ; Link activity timer time in seconds. ;lnkactmacro = *52 ; Function to execute when link activity timer expires. ;lnkacttimerwarn = 30seconds ; Message to play when the link activity timer has 30 seconds left. ;remote_inact_timeout = ; Specifies the amount of time without keying from the link. Set to 0 to disable timeout. (15 * 60) ;remote_timeout = ; Session time out for remote base. Set to 0 to disable. (60 * 60) ;remote_timeout_warning_freq = ; 30 ;remote_timeout_warning = ; (3 * 60) nounkeyct = 1 ; Set to a 1 to eliminate courtesy tones and associated delays. holdofftelem = 1 ; Hold off all telemetry when signal is present on receiver or from connected nodes ; except when an ID needs to be done and there is a signal coming from a connected node. telemdefault = 0 ; 0 = telemetry output off ; 1 = telemetry output on (default = 1) ; 2 = timed telemetry output on command execution and for a short time thereafter. telemdynamic = 0 ; 0 = disallow users to change the local telemetry setting with a COP command, ; 1 = Allow users to change the setting with a COP command. (default = 1) ;beaconing = 0 ; Send ID regardless of repeater activity (Required in the UK, but probably illegal in the US) parrotmode = 0 ; 0 = Parrot Off (default = 0) ; 1 = Parrot On Command ; 2 = Parrot Always ; 3 = Parrot Once by Command parrottime = 1000 ; Set the amount of time in milliseconds ; to wait before parroting what was received ;rxnotch=1065,40 ; (Optional) Notch a particular frequency for a specified ; b/w. app_rpt must have been compiled with ; the notch option startup_macro = *31399 ; nodenames = /var/lib/asterisk/sounds/rpt/nodenames.callsign ; Point to alternate nodename sound directory ; Stream your node audio to Broadcastify or similar. See https://wiki.allstarlink.org/wiki/Stream_Node_Audio_to_Broadcastify ; outstreamcmd = /bin/sh,-c,/usr/bin/lame --preset cbr 16 -r -m m -s 8 --bitwidth 16 - - | /usr/bin/ezstream -qvc /etc/ezstream.xml ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Need more information on these ;extnodes = extnodes-different ; section in extnodefile containing dynamic node information (optional) ;extnodefile = /foo/nodes ; Points to nodelist file containing dynamic node info default = /var/lib/asterisk/rpt_extnodes (optional) ;extnodefile2 = ; Is this a list of node files? Possible a list of private nodes or a list of static IPs for known nodes???? ;nodenames = /foo/names ; locaton of node sound files default = /var/lib/asterisk/sounds/rpt/nodenames ;archivedir = /tmp ; defines and enables activity recording into specified directory (optional) ;monminblocks = 2048 ; Min 1K blocks to be left on partition (will not save monitor output if disk too full) ; ; The tailmessagetime,tailsquashedtime, and tailmessagelist need to be set ; ; to support tail messages. They can be omitted otherwise. ;tailmessagetime = 300000 ; Play a tail message every 5 mins ;tailsquashedtime = 30000 ; If squashed by another user, ; ; try again after 30 seconds ;tailmessagelist = msg1,msg2 ; list of messages to be played for tail message ; alt_functions ; ctgroup ; dphone_functions ; idtime ; iobase ; iospeed ; locallist ; mars Remote Base ; memory ; nobusyout ; nodes ; nolocallinkct ; notelemtx ; outxlat ; parrot ; propagate_phonedtmf ; rptnode ; rptinactmacro Macro to execute when inactivity timer expires ; rptinacttime Inactivity timer time in seconds (0 seconds disables feature) ; rxnotch Optional Audio notch ; simplexphonedelay ; tonemacro ; tonezone ; txlimits ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; *** Status Reporting *** ; Comment the following statpost line stop to reporting of the status of your node to stats.allstarlink.org statpost_url = http://stats.allstarlink.org/uhandler ; Status updates [functions] ; Prefix Functions ; *1 Disconnect Link ; *2 Monitor Link ; *3 Connect Link ; *4 Command Mode ; *5 Macros ; *6 User Functions ; *7 Connection Status/Functions ; *8 User Functions ; *9 User Functions ; *0 User Functions ; *A User Functions ; *B User Functions ; *C User Functions ; *D User Functions ; Mandatory Command Codes 1 = ilink,1 ; Disconnect specified link 2 = ilink,2 ; Connect specified link -- monitor only 3 = ilink,3 ; Connect specified link -- tranceive 4 = ilink,4 ; Enter command mode on specified link 70 = ilink,5 ; System status 99 = cop,6 ; PTT (phone mode only) ; End Mandatory Command Codes ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Macro Commands 5 = macro ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Autopatch Commands ; Note, This may be a good place for other 2 digit frequently used commands 61 = autopatchup,noct = 1,farenddisconnect = 1,dialtime = 20000 ; Autopatch up 62 = autopatchdn ; Autopatch down ; autopatchup can optionally take comma delimited setting=value pairs: ; context = string ; Override default context with "string" ; dialtime = ms ; Specify the max number of milliseconds between phone number digits (1000 milliseconds = 1 second) ; farenddisconnect = 1 ; Automatically disconnect when called party hangs up ; noct = 1 ; Don't send repeater courtesy tone during autopatch calls ; quiet = 1 ; Don't send dial tone, or connect messages. Do not send patch down message when called party hangs up ; Example: 123=autopatchup,dialtime=20000,noct=1,farenddisconnect=1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Status Commands ; 1 - Force ID (global) ; 2 - Give Time of Day (global) ; 3 - Give software Version (global) ; 4 - Give GPS location info ; 5 - Last (dtmf) user ; 11 - Force ID (local only) ; 12 - Give Time of Day (local only) 721 = status,1 ; Force ID (global) 722 = status,2 ; Give Time of Day (global) 723 = status,3 ; Give software Version (global) 724 = status,4 ; Give GPS location info 725 = status,5 ; Last (dtmf) user 711 = status,11 ; Force ID (local only) 712 = status,12 ; Give Time of Day (local only) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Link Commands ; 1 - Disconnect specified link ; 2 - Connect specified link -- monitor only ; 3 - Connect specified link -- tranceive ; 4 - Enter command mode on specified link ; 5 - System status ; 6 - Disconnect all links ; 7 - Last Node to Key Up ; 8 - Connect specified link -- local monitor only ; 9 - Send Text Message (9,<destnodeno or 0 (for all)>,Message Text, etc. ; 10 - Disconnect all RANGER links (except permalinks) ; 11 - Disconnect a previously permanently connected link ; 12 - Permanently connect specified link -- monitor only ; 13 - Permanently connect specified link -- tranceive ; 15 - Full system status (all nodes) ; 16 - Reconnect links disconnected with "disconnect all links" ; 17 - MDC test (for diag purposes) ; 18 - Permanently Connect specified link -- local monitor only ; ilink commands 1 through 5 are defined in the Mandatory Command section 76 = ilink,6 806 = ilink,6 ; Disconnect all links 807 = ilink,7 ; Last Node to Key Up 808 = ilink,8 ; Connect specified link -- local monitor only 809 = ilink,9,481481,"Testing" ; would send a text message to node 481481 replace 481481 with 0 for all connected nodes 810 = ilink,10 ; Disconnect all RANGER links (except permalinks) 811 = ilink,11 ; Disconnect a previously permanently connected link 812 = ilink,12 ; Permanently connect specified link -- monitor only 813 = ilink,13 ; Permanently connect specified link -- tranceive 815 = ilink,15 ; Full system status (all nodes) 816 = ilink,16 ; Reconnect links disconnected with "disconnect all links" 817 = ilink,17 ; MDC test (for diag purposes) 818 = ilink 18 ; Permanently Connect specified link -- local monitor only ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Control operator (cop) functions. ; Change these to something other than these codes listed below! ; Uncomment as needed. ; 901 = cop,1 ; System warm boot ; 902 = cop,2 ; System enable ; 903 = cop,3 ; System disable ; 904 = cop,4 ; Test tone on/off (toggle) ; 905 = cop,5 ; Dump system variables on console (debug use only) ; 907 = cop,7 ; Time out timer enable ; 908 = cop,8 ; Time out timer disable ; 909 = cop,9 ; Autopatch enable ; 910 = cop,10 ; Autopatch disable ; 911 = cop,11 ; User linking functions enable ; 912 = cop,12 ; User linking functions disable ; 913 = cop,13 ; Query system control state ; 914 = cop,14 ; Set system control state ; 915 = cop,15 ; Scheduler enable ; 916 = cop,16 ; Scheduler disable ; 917 = cop,17 ; User functions enable (time, id, etc) ; 918 = cop,18 ; User functions disable ; 919 = cop,19 ; Select alternate hang time (althangtime) ; 920 = cop,20 ; Select standard hangtime (hangtime) ; 921 = cop,21 ; Enable Parrot Mode ; 922 = cop,22 ; Disable Parrot Mode ; 923 = cop,23 ; Birdbath (Current Parrot Cleanup/Flush) ; 924 = cop,24 ; Flush all telemetry ; 925 = cop,25 ; Query last node un-keyed ; 926 = cop,26 ; Query all nodes keyed/unkeyed ; 927 = cop,27 ; Reset DAQ minimum on a pin ; 928 = cop,28 ; Reset DAQ maximum on a pin ; 930 = cop,30 ; Recall Memory Setting in Attached Xcvr ; 931 = cop,31 ; Channel Selector for Parallel Programmed Xcvr ; 932 = cop,32 ; Touchtone pad test: command + Digit string + # to playback all digits pressed ; 933 = cop,33 ; Local Telemetry Output Enable ; 934 = cop,34 ; Local Telemetry Output Disable ; 935 = cop,35 ; Local Telemetry Output on Demand ; 936 = cop,36 ; Foreign Link Local Output Path Enable ; 937 = cop,37 ; Foreign Link Local Output Path Disable ; 938 = cop,38 ; Foreign Link Local Output Path Follows Local Telemetry ; 939 = cop,39 ; Foreign Link Local Output Path on Demand ; 942 = cop,42 ; Echolink announce node # only ; 943 = cop,43 ; Echolink announce node Callsign only ; 944 = cop,44 ; Echolink announce node # & Callsign ; 945 = cop,45 ; Link Activity timer enable ; 945 = cop,46 ; Link Activity timer disable ; 947 = cop,47 ; Reset "Link Config Changed" Flag ; 948 = cop,48 ; Send Page Tone (Tone specs separated by parenthesis) ; 949 = cop,49 ; Disable incoming connections (control state noice) ; 950 = cop,50 ; Enable incoming connections (control state noicd) ; 951 = cop,51 ; Enable sleep mode ; 952 = cop,52 ; Disable sleep mode ; 953 = cop,53 ; Wake up from sleep ; 954 = cop,54 ; Go to sleep ; 955 = cop,55 ; Parrot Once if parrot mode is disabled ; 956 = cop,56 ; Rx CTCSS Enable ; 957 = cop,57 ; Rx CTCSS Disable ; 958 = cop.58 ; Tx CTCSS On Input only Enable ; 959 = cop,59 ; Tx CTCSS On Input only Disable ; 960 = cop,60 ; Send MDC-1200 Burst (cop,60,type,UnitID[,DestID,SubCode]) ; ; Type is 'I' for PttID, 'E' for Emergency, and 'C' for Call ; ; (SelCall or Alert), or 'SX' for STS (ststus), where X is 0-F. ; ; DestID and subcode are only specified for the 'C' type message. ; ; UnitID is the local systems UnitID. DestID is the MDC1200 ID of ; ; the radio being called, and the subcodes are as follows: ; ; Subcode '8205' is Voice Selective Call for Spectra ('Call') ; ; Subcode '8015' is Voice Selective Call for Maxtrac ('SC') or ; ; Astro-Saber('Call') ; ; Subcode '810D' is Call Alert (like Maxtrac 'CA') ; 961 = cop,61 ; Send Message to USB to control GPIO pins (cop,61,GPIO1=0[,GPIO4=1].....) ; 962 = cop,62 ; Send Message to USB to control GPIO pins, quietly (cop,62,GPIO1=0[,GPIO4=1].....) ; 963 = cop,63 ; Send pre-configred APRSTT notification (cop,63,CALL[,OVERLAYCHR]) ; 964 = cop,64 ; Send pre-configred APRSTT notification, quietly (cop,64,CALL[,OVERLAYCHR]) ; 965 = cop,65 ; Send POCSAG page (equipped channel types only) [functions-remote] 0 = remote,1 ; Retrieve Memory 1 = remote,2 ; Set freq. 2 = remote,3 ; Set tx PL tone 3 = remote,4 ; Set rx PL tone 40 = remote,100 ; Rx PL off 41 = remote,101 ; Rx PL on 42 = remote,102 ; Tx PL off 43 = remote,103 ; Tx PL on 44 = remote,104 ; Low Power 45 = remote,105 ; Medium Power 46 = remote,106 ; High Power 711 = remote,107 ; Bump -20 714 = remote,108 ; Bump -100 717 = remote,109 ; Bump -500 713 = remote,110 ; Bump +20 716 = remote,111 ; Bump +100 719 = remote,112 ; Bump +500 721 = remote,113 ; Scan - slow 724 = remote,114 ; Scan - quick 727 = remote,115 ; Scan - fast 723 = remote,116 ; Scan + slow 726 = remote,117 ; Scan + quick 729 = remote,118 ; Scan + fast 79 = remote,119 ; Tune 51 = remote,5 ; Long status query 52 = remote,140 ; Short status query 67 = remote,210 ; Send a * 69 = remote,211 ; Send a # ;91 = remote,99,CALLSIGN,LICENSETAG ; Remote base login. ; Define a different dtmf sequence for each user which is ; authorized to use the remote base to control access to it. ; For examble 9139583=remote,99,WB6NIL,G would grant access to ; the remote base and announce WB6NIL as being logged in. ; Another entry, 9148351=remote,99,WA6ZFT,E would grant access to ; the remote base and announce WA6ZFT as being logged in. ; When the remote base is disconnected from the originating node, the ; user will be logged out. The LICENSETAG argument is used to enforce ; tx frequency limits. See [txlimits] below. 85 = cop,6 ; Remote base telephone key [telemetry] ; Telemetry entries can be shared across all repeaters, or defined for each repeater. ; Can be a tone sequence, morse string, or a file ; ; |t - Tone escape sequence ; ; Tone sequences consist of 1 or more 4-tuple entries (freq1, freq2, duration, amplitude) ; Single frequencies are created by setting freq1 or freq2 to zero. ; ; |m - Morse escape sequence ; ; Sends Morse code at the telemetry amplitude and telemetry frequency as defined in the ; [morse] section. ; ; Follow with an alphanumeric string ; ; |i - Morse ID escape sequence ; ; Sends Morse code at the ID amplitude and ID frequency as defined in the ; [morse] section. ; ; path/to/sound/file/without/extension ; ; Send the sound if in place of a constructed tone. Do not include the file extension ; Example: ct8 = rpt/bloop ; Example: idrecording = rpt/nodenames/481481 ct1 = |t(350,0,100,2048)(500,0,100,2048)(660,0,100,2048) ct2 = |t(660,880,150,2048) ct3 = |t(440,0,150,4096) ct4 = |t(550,0,150,2048) ct5 = |t(660,0,150,2048) ct6 = |t(880,0,150,2048) ct7 = |t(660,440,150,2048) ct8 = |t(700,1100,150,2048) ranger = |t(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,150,0) remotemon = |t(1209,0,50,2048) ; local courtesy tone when receive only remotetx = |t(1633,0,50,3000)(0,0,80,0)(1209,0,50,3000) ; local courtesy tone when linked Trancieve mode cmdmode = |t(900,903,200,2048) functcomplete = |t(1000,0,100,2048)(0,0,100,0)(1000,0,100,2048) remcomplete = |t(650,0,100,2048)(0,0,100,0)(650,0,100,2048)(0,0,100,0)(650,0,100,2048) pfxtone = |t(350,440,30000,3072) patchup = rpt/callproceeding patchdown = rpt/callterminated ; As far as what the numbers mean, ; (000,000,010,000) ; | | | |-------amplitude ; | | |-------------duration ; | |-------------------Tone 2 ; |-------------------------Tone 1 ; So, with 0,0,10,0 That says No Tone1, No Tone2, 10ms duration, 0 Amplitude. ; Use it for a delay. Fine tuning for how long before telemetry is sent, in conjunction with the telemdelay parameter) ; The numbers, like 350,440,10,2048 are 350Hz, 440Hz, 10ms delay, amplitude of 2048. ; Morse code parameters, these are common to all repeaters. [morse] speed = 20 ; Approximate speed in WPM frequency = 800 ; Morse Telemetry Frequency amplitude = 4096 ; Morse Telemetry Amplitude idfrequency = 1065 ; Morse ID Frequency idamplitude = 1024 ; Morse ID Amplitude ; ; This section allows wait times for telemetry events to be adjusted ; A section for wait times can be defined for every repeater ; [wait-times] telemwait = 2000 ; Time to wait before sending most telemetry idwait = 500 ; Time to wait before starting ID unkeywait = 2000 ; Time to wait after unkey before sending CT's and link telemetry calltermwait = 2000 ; Time to wait before announcing "call terminated" ; Memories for remote bases [memory] ;00 = 146.580,100.0,m ;01 = 147.030,103.5,m+t ;02 = 147.240,103.5,m+t ;03 = 147.765,79.7,m-t ;04 = 146.460,100.0,m ;05 = 146.550,100.0,m ; Place command macros here [macro] ;1 = *32011# ;2 = *12001*12011*12043*12040*12050*12060*12009*12002*12003*12004*1113*12030# ;3 = *32001*32011*32050*32030*32060# ; Data Acquisition configuration ;[daq-list] ;device = device_name1 ;device = device_name2 ;Where: device_name1 and device_name2 are stanzas you define in this file ;device = daq-cham-1 ; Device name ;[daq-cham-1] ; Defined in [daq-list] ;hwtype = uchameleon ; DAQ hardware type ;devnode = /dev/ttyUSB0 ; DAQ device node (if required) ;1 = inadc ; Pin definition for an ADC channel ;2 = inadc ;3 = inadc ;4 = inadc ;5 = inadc ;6 = inadc ;7 = inadc ;8 = inadc ;9 = inp ; Pin definition for an input with a weak pullup resistor ;10 = inp ;11 = inp ;12 = inp ;13 = in ; Pin definition for an input without a weak pullup resistor ;14 = out ; Pin definition for an output ;15 = out ;16 = out ;17 = out ;18 = out ;[meter-faces] ;face = scale(scalepre,scalediv,scalepost),word/?,... ; ; scalepre = offset to add before dividing with scalediv ; scalediv = full scale/number of whole units (e.g. 256/20 or 12.8 for 20 volts). ; scalepost = offset to add after dividing with scalediv ; ;face = range(X-Y:word,X2-Y2:word,...),word/?,... ;face = bit(low-word,high-word),word/?,... ; ; word/? is either a word in /var/lib/asterisk/sounds or one of its subdirectories, ; or a question mark which is a placeholder for the measured value. ; ; ; Battery voltage 0-20 volts ;batvolts = scale(0,12.8,0),rpt/thevoltageis,?,ha/volts ; 4 quadrant wind direction ;winddir = range(0-33:north,34-96:west,97-160:south,161-224:east,225-255:north),rpt/thewindis,? ; LM34 temperature sensor with 130 deg. F full scale ;lm34f = scale(0,1.969,0),rpt/thetemperatureis,?,degrees,fahrenheit ; Status poll (non alarmed) ;light = bit(ha/off,ha/on),ha/light,? ;[alarms] ; ;tag = device,pin,node,ignorefirst,func-low,func-hi ; ;tag = a unique name for the alarm ;device = daq device to poll ;pin = the device pin to be monitored ;ignorefirstalarm = set to 1 to throwaway first alarm event, or 0 to report it ;node = the node number to execute the function on ;func-low = the DTMF function to execute on a high to low transition ;func-high = the DTMF function to execute on a low to high transition ; ; a '-' as a function name is shorthand for no-operation ; ;door = daq-cham-1,9,1,2017,*7,- ;pwrfail = daq-cham-1,10,0,2017,*911111,- ; ; Control states ; Allow several control operator functions to be changed at once using one command (good for scheduling) ; ;[controlstates] ;statenum = copcmd,[copcmd]... ;0 = rptena,lnkena,apena,totena,ufena,noicd ; Normal operation ;1 = rptena,lnkena,apdis,totdis,ufena,noice ; Net and news operation ;2 = rptena,lnkdis,apdis,totena,ufdis,noice ; Repeater only operation ; Scheduler - execute a macro at a given time [schedule] ;dtmf_function = m h dom mon dow ; ala cron, star is implied ;2 = 00 00 * * * ; at midnight, execute macro 2. ; See https://wiki.allstarlink.org/wiki/Event_Management [events] #includeifexists custom/rpt.conf
I also decided to use the md380_emu
emulator for the AMBE transcoding.
/opt/MMDVM_Bridge/MMDVM_Bridge.ini
[General] Callsign=GM4SLV Id=235442999 Timeout=180 Duplex=0 [Info] RXFrequency=144912500 TXFrequency=144912500 Power=1 Latitude=60.2885 Longitude=-1.4215 Height=0 Location=GM4SLV, Shetland Description=MMDVM_Bridge URL=https://gm4slv.org.uk [Log] # Logging levels, 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal DisplayLevel=1 FileLevel=2 FilePath=/var/log/mmdvm FileRoot=MMDVM_Bridge [DMR Id Lookup] File=/var/lib/mmdvm/DMRIds.dat Time=24 [NXDN Id Lookup] File=/var/lib/mmdvm/NXDN.csv Time=24 [Modem] Port=/dev/null RSSIMappingFile=/dev/null Trace=0 Debug=0 [D-Star] Enable=0 Module=B [DMR] Enable=1 ColorCode=1 EmbeddedLCOnly=1 DumpTAData=0 [System Fusion] Enable=0 [P25] Enable=0 NAC=293 [NXDN] Enable=0 RAN=1 Id=12345 [D-Star Network] Enable=0 GatewayAddress=127.0.0.1 GatewayPort=20010 LocalPort=20011 Debug=0 [DMR Network] Enable=1 Address=tgif.network Port=62031 ;Jitter=360 Jitter=750 Local=62032 Password=XXXXXXXXXXXXXXXXXXXXXXxx # for DMR+ see https://github.com/DVSwitch/MMDVM_Bridge/blob/master/DOC/DMRplus_startup_options.md # for XLX the syntax is: Options=XLX:4009 # Options= Slot1=0 Slot2=1 Debug=0 [System Fusion Network] Enable=0 LocalAddress=0 LocalPort=3200 GatewayAddress=127.0.0.1 GatewayPort=4200 Debug=0 [P25 Network] Enable=0 GatewayAddress=127.0.0.1 GatewayPort=42020 LocalPort=32010 Debug=0 [NXDN Network] Enable=0 #LocalAddress=127.0.0.1 Debug=0 LocalPort=14021 GatewayAddress=127.0.0.1 GatewayPort=14020
/opt/Analog_Bridge/Analog_Bridge.ini
; Analog_Bridge configuration file. ; This file should be placed in either /etc or it can be ; supplied as a path on the Analog_Bridge command line. ; The best way to think of this file is that there are two main sections, the USRP (analog audio) and ; AMBE_AUDIO (compressed audio). Analog_Bridge will take everything sent to the USRP port and ; encode it for transmission on the AMBE_AUDIO port. The encoder will use the format defined in ambeMode. ; As you might expect, the reverse direction is defined too. ; Analog_Bridge supports include files. More on this later... include = dvsm.macro ; include = asl.macro ; General Section describes settings for Analog_Bridge itself. [GENERAL] logLevel = 2 ; Show messages and above 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal ; Metadata management exportMetadata = true ; Export metadata to USRP partner (transcode setups require this) transferRootDir = /tmp ; Export database files to USRP partner subscriberFile = /var/lib/dvswitch/subscriber_ids.csv ; DMR ID to callsign lookup data ; General vocoder setup information decoderFallBack = true ; Allow software AMBE decoding if a hardware decoder is not found useEmulator = true ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN) emulatorAddress = 127.0.0.1:2470 ; IP address and port of the md380 server pcmPort = 2222 ; UDP port to send to the WebProxy ; Information for xx_Bridge (Where xx is MMDVM, Quantar, HB, IPSC) [AMBE_AUDIO] address = 127.0.0.1 ; IP address of xx_Bridge txPort = 31103 ; Transmit TLV frames to partner on this port rxPort = 31100 ; Listen for TLV frames from partner on this port ambeMode = DMR ; DMR, DMR_IPSC, DSTAR, NXDN, P25, YSFN, YSFW (encode PCM to this format) minTxTimeMS = 2500 ; Analog -> Digital Minimum time in MS for hang delay (0-10000) ; The metadata below is used when ASL is the source since it does not have any concept of digital modes gatewayDmrId = 2354429 ; ID to use when transmitting from Analog_Bridge 7 digit ID repeaterID = 235442999 ; ID of source repeater 7 digit ID plus 2 digit SSID txTg = 2354429 ; TG to use for all frames sent from Analog_Bridge -> xx_Bridge txTs = 2 ; Slot to use for frames sent from Analog_Bridge -> xx_Bridge colorCode = 1 ; Color Code to assign DMR frames ; Information for USRP channel driver. This interface uses PCM to transfer audio information ; There are two typical configurations, ASL and Transcode. ASL (AllstarLink) is for analog clients connected ; to a digital network. Transcode is when Analog_Bridge actually points its PCM interfaces back at itself, ; causing a TLV <-- (pcm <--> pcm) --> TLV type of architecture. ; When using ASL, this matches the rpt.conf ASL file with a setting like: ; rxchannel = usrp/127.0.0.1:34001:32001 ; When Transcoding, make two ini files and set txPort equal to the other instance rxPort (crossover). Launch ; each instance with its own ini file. [USRP] address = 127.0.0.1 ; IP address of USRP partner (Analog_Reflector, Allstar/Asterisk or another Analog_Bridge) txPort = 31001 ; Transmit USRP frames on this port rxPort = 34001 ; Listen for USRP frames on this port usrpAudio = AUDIO_USE_GAIN ; Digital -> Analog (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_USE_AGC) usrpGain = 5.0 ; Gain factor when usrpAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY) usrpAGC = -20,10,100 ; Set the agc threshold (db), slope (db) and decay (ms) tlvAudio = AUDIO_USE_GAIN ; Analog -> Digital (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_BPF) tlvGain = 1.0 ; Gain factor when tlvAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY) [MACROS] ; Where the macros are ; xxxx=yyyy ; xxxx is the dial string to match ; yyyy is the command line to execute ; xxxx must be preceded by a * ; xxxx can be any string (alphanumeric) ; yyyy is the command to execute ; yyyy will replace xxxx in the dial string ; arguments follow the macro name with a # delimiter ; For example using macro "5678" above would look like: ; *5678#9876 ; Which would invoke: ; echo 9876 ; Information for DV3000 hardware decoder ; There are two configuration modes: IP (AMBEServer) and serial (direct connect hardware) ; Use top server and port if using AMBEServer ; Use bottom server/port and serial = true if using the DV3000u (thumbdv) ; Did you run AMBETest4.py before using this? [DV3000] address = 127.0.0.1 ; IP address of AMBEServer rxPort = 2460 ; Port of AMBEServer ; address = /dev/ttyUSB0 ; Device of DV3000U on this machine ; baud = 460800 ; Baud rate of the dongle (230400 or 460800) ; serial = true ; Use serial=true for direct connect or serial=false for AMBEServer
[general] static = yes ; These two lines prevent the command-line interface writeprotect = yes ; from overwriting the config file. Leave them here. [globals] HOMENPA = 999 ; change this to your Area Code NODE = 481481 ; change this to your node number NODE1 = 1399 [default] exten => i,1,Hangup [radio-secure] exten => ${NODE},1,rpt,${NODE} exten => ${NODE1},1,rpt,${NODE1} [iaxrpt] ; entered from iaxrpt in iax.conf exten => ${NODE},1,rpt(${NODE}|X) ; NODE is the Name field in iaxrpt ; Info: The X option passed to the Rpt application ; disables the normal security checks. ; Because incoming connections are validated in iax.conf, ; and we don't know where the user will be coming from in advance, ; the X option is required. [iax-client] ; for IAX VIOP clients. exten => ${NODE},1,Ringing exten => ${NODE},n,Wait(3) exten => ${NODE},n,Answer exten => ${NODE},n,Set(NODENUM=${CALLERID(number)}) exten => ${NODE},n,Playback(rpt/node|noanswer) exten => ${NODE},n,SayDigits(${EXTEN}) exten => ${NODE},n,Set(CALLERID(num)=0) exten => ${NODE},n,Rpt,${NODE}|P|${CALLERID(name)} exten => ${NODE},n,Hangup exten => ${NODE},n(hangit),Answer exten => ${NODE},n(hangit),Wait(1) exten => ${NODE},n(hangit),Hangup ; Comment-out the following clause if you want Allstar Autopatch service [pstn-out] exten = _NXXNXXXXXX,1,playback(ss-noservice) exten = _NXXNXXXXXX,2,Congestion ; Un-comment out the following clause if you want Allstar Autopatch service ;[pstn-out] ;exten = _NXXNXXXXXX,1,Dial(IAX2/allstar-autopatch/\${EXTEN}) ;exten = _NXXNXXXXXX,2,Busy [invalidnum] exten = s,1,Wait,3 exten = s,n,Playback,ss-noservice exten = s,n,Wait,1 exten = s,n,Hangup [radio] exten = _X11,1,Goto(check_route|${EXTEN}|1); exten = _NXXXXXX,1,Goto(check_route|1${HOMENPA}${EXTEN}|1) exten = _1XXXXXXXXXX,1,Goto(check_route|${EXTEN}|1) exten = _07XX,1,Goto(parkedcalls|${EXTEN:1}|1) exten = 00,1,Goto(my-ip|s|1) [check_route] exten =_X.,1,Noop(${EXTEN}) ; no 800 exten = _1800NXXXXXX,2,Goto(invalidnum|s|1) exten = _1888NXXXXXX,2,Goto(invalidnum|s|1) exten = _1877NXXXXXX,2,Goto(invalidnum|s|1) exten = _1866NXXXXXX,2,Goto(invalidnum|s|1) exten = _1855NXXXXXX,2,Goto(invalidnum|s|1) ; no X00 NPA exten = _1X00XXXXXXX,2,Goto(invalidnum|s|1) ; no X11 NPA exten = _1X11XXXXXXX,2,Goto(invalidnum|s|1) ; no X11 exten = _X11,2,Goto(invalidnum|s|1) ; no 555 Prefix in any NPA exten = _1NXX555XXXX,2,Goto(invalidnum|s|1) ; no 976 Prefix in any NPA exten = _1NXX976XXXX,2,Goto(invalidnum|s|1) ; no NPA=809 exten = _1809XXXXXXX,2,Goto(invalidnum|s|1) ; no NPA=900 exten = _1900XXXXXXX,2,Goto(invalidnum|s|1) ; okay, route it exten = _1NXXXXXXXXX,2,Goto(pstn-out|${EXTEN:1}|1) exten = _X.,2,Goto(invalidnum|s|1) [my-ip] exten = s,1,Set(MYADDR=${CURL(http://myip.vg)}) exten = s,2,Wait,1 exten = s,3,SayAlpha(${MYADDR}) exten = s,4,Hangup [allstar-sys] exten => _1.,1,Rpt(${EXTEN:1}|Rrpt/node:NODE:rpt/in-call:digits/0:PARKED|120) exten => _1.,n,Hangup exten => _2.,1,Ringing exten => _2.,n,Wait(3) exten => _2.,n,Answer exten => _2.,n,Playback(rpt/node) exten => _2.,n,Saydigits(${EXTEN:1}) exten => _2.,n,Rpt(${EXTEN:1}|P|${CALLERID(name)}-P) exten => _2.,n,Hangup exten => _3.,1,Ringing exten => _3.,n,Wait(3) exten => _3.,n,Answer exten => _3.,n,Playback(rpt/node) exten => _3.,n,Saydigits(${EXTEN:1}) exten => _3.,n,Rpt(${EXTEN:1}|Pv|${CALLERID(name)}-P) exten => _3.,n,Hangup exten => _4.,1,Ringing exten => _4.,n,Wait(3) exten => _4.,n,Answer exten => _4.,n,Playback(rpt/node) exten => _4.,n,Saydigits(${EXTEN:1}) exten => _4.,n,Rpt(${EXTEN:1}|D|${CALLERID(name)}-P) exten => _4.,n,Hangup exten => _5.,1,Ringing exten => _5.,n,Wait(3) exten => _5.,n,Answer exten => _5.,n,Playback(rpt/node) exten => _5.,n,Saydigits(${EXTEN:1}) exten => _5.,n,Rpt(${EXTEN:1}|Dv|${CALLERID(name)}-P) exten => _5.,n,Hangup [allstar-public] exten => s,1,Ringing exten => s,n,Set(RESP=${CURL(https://register.allstarlink.org/cgi-bin/authwebphone.pl?${CALLERID(name)})}) exten => s,n,Set(NODENUM=${CALLERID(number)}) exten => s,n,GotoIf($["${RESP:0:1}" = "?"]?hangit) exten => s,n,GotoIf($["${RESP:0:1}" = ""]?hangit) exten => s,n,GotoIf($["${RESP:0:5}" != "OHYES"]?hangit) exten => s,n,Set(CALLSIGN=${RESP:5}) exten => s,n,Wait(3) exten => s,n,Playback(rpt/node|noanswer) exten => s,n,Saydigits(${NODENUM}) exten => s,n,Set(CALLERID(name)=${CALLSIGN}) exten => s,n,Set(CALLERID(num)=0) exten => s,n,Rpt(${NODENUM}|X) exten => s,n,Hangup exten => s,n(hangit),Answer exten => s,n(hangit),Wait(1) exten => s,n(hangit),Hangup #includeifexists custom/extensions.conf
; Inter-Asterisk eXchange driver definition [general] ; !!! Change this to match your node registration !!! register=481481:XXXXXX@register.allstarlink.org ; This must be changed to your node number, password ; remove the leading ";" bindport = 4570 ; bindport and bindaddr may be specified ; NOTE: bindport must be specified BEFORE ; bindaddr or may be specified on a specific ; bindaddr if followed by colon and port ; (e.g. bindaddr=192.168.0.1:4569) ; bindaddr = 192.168.0.1 ; more than once to bind to multiple ; addresses, but the first will be the ; default disallow = all ; The permitted codecs for outgoing connections ; Audio Quality Bandwidth ;allow = ulaw ; best 87 kbps ;allow = adpcm ; good 55 kbps ;allow = gsm ; medicore 36 kbps allow = ulaw allow = adpcm allow = g722 allow = g726aal2 allow = gsm allow = ilbc jitterbuffer = yes forcejitterbuffer = yes dropcount = 2 maxjitterbuffer = 4000 maxjitterinterps = 10 resyncthreshold = 1000 maxexcessbuffer = 80 minexcessbuffer = 10 jittershrinkrate = 1 tos = 0x1E autokill = yes delayreject = yes ; iaxthreadcount = 30 ; iaxmaxthreadcount = 150 ; Incoming radio connections [radio] type = user disallow = all allow = ulaw allow = adpcm allow = g722 allow = g726aal2 allow = gsm allow = ilbc codecpriority = host context = radio-secure transfer = no [iaxrpt] ; Connect from iaxrpt Username field (PC AllStar Client) type = user ; Notice type is user here <--------------- context = iaxrpt ; Context to jump to in extensions.conf auth = md5 secret = Your_Secret_Pasword_Here host = dynamic disallow = all allow = ulaw allow = adpcm allow = gsm transfer = no [iaxclient] ; Connect from iax client (Zoiper...) type = friend ; Notice type here is friend <-------------- context = iax-client ; Context to jump to in extensions.conf auth = md5 secret = Your_Secret_Password_Here host = dynamic disallow = all allow = ulaw allow = adpcm allow = gsm transfer = no [allstar-sys] type = user context = allstar-sys auth = rsa inkeys = allstar disallow = all allow = ulaw [allstar-public] type = user context = allstar-public auth = md5 secret = allstar disallow = all allow = ulaw allow = gsm ; The following should be un-commented to support Allstar Autopatch service ; [allstar-autopatch] ; type = peer ; host = register.allstarlink.org ; username = <One of the Node numbers on this server> ; secret = <The node password for the above node> ; auth = md5 ; disallow = all ; allow = ulaw ; transfer = no #includeifexists custom/iax.conf
[el0] call = GM4SLV-L ; Change this! pwd = XXXXXXX ; Change this! name = John ; Change this! qth = Allstar 481480 ; Change this! email = gm4slv@gm4slv.plus.com ; Change this! node = 886089 ; Change this! ; Data for EchoLink Status Page lat = 60.2883 ; Latitude in decimal degrees lon = -001.42533 ; Longitude in decimal degrees freq = 144.9125 ; not mandatory Frequency in MHz tone = 0 ; not mandatory CTCSS Tone (0 for none) power = 2 ; 0=0W, 1=1W, 2=4W, 3=9W, 4=16W, 5=25W, 6=36W, 7=49W, 8=64W, 9=81W (Power in Watts) 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 = 0 ; Gain in db (0-9) dir = 0 ; 0=omni 1=45deg 2=90deg 3=135deg 4=180deg 5=225deg 6=270deg 7=315deg 8=360deg (Direction) maxstns = 5 ; Max Stations rtcptimeout = 10 recfile = /tmp/echolink_recorded.gsm ; astnode = 481480 ; Change this! context = radio-secure ; Default in code is echolink-in ; Max 3 servers server1 = server1.echolink.org server2 = server2.echolink.org server3 = server3.echolink.org ; 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,... ; permit ; comma delimited list of callsign, type (-r) ; deny ; Remote text commands thru netcat: ; o.conip <IPaddress> (request a connect) ; o.dconip <IPaddress> (request a disconnect) ; o.rec (turn on/off recording) ; ipaddr ; port #includeifexists custom/echolink.conf
Test Node
Platform | Raspberry Pi 2 Model B Rev 1.1 |
Allstar Node | 481482 |
Dashboard | http://gm4slv.plus.com:42112/ |
This one is to use for tests and experiments….
— John Pumford-Green 05/06/25 22:30 BST