-[[.:start]]
====== GM4SLV Allstar 2025 ======
** New explorations into Allstar and Bridging **
This was an initial experiment, I've used what I learned to set up a bigger system (still under development) and described here : [[allstar_expands|]]
===== Hardware =====
|Platform|Rapsberry Pi|
|Interface|CM108 Soundcard - modified|
|Radio|FT-1500M|
|Frequency|144.9125MHz|
|Allstar Node | 48148 |
|Dashboards| http://gm4slv.plus.com:42111/|
===== DVSwitch Bridging =====
To investigate the bridging of Allstar analogue nodes and DMR I installed DVSwitch on the Allstar node.
Instructions here: {{ :public:radio:asl-to-dmr-bridge.pdf | ASL to DMR Bridge}}
The first part is easy, modifying a working Allstar node to add the private node and the USRP channel driver that will be used for the connection to the bridging.
==== My configs ====
++++ /etc/asterisk/rpt.conf before bridging added |
; 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
48148 = radio@127.0.0.1:4569/48148,NONE ; This must be changed to your node number
; and iax port number if not the default
;[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 = *80*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
73 = ilink,6 ; Disconnect All Links
74 = ilink,16 ; Reconnect links disconnected with "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,,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
;823 = 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
; 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
++++
++++ /etc/asterisk/rpt.conf after bridging added |
; 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
1999 = radio@127.0.0.1:4569/1999,NONE
48148 = radio@127.0.0.1:4569/48148,NONE ; This must be changed to your node number
; and iax port number if not the default
[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 = *80*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
73 = ilink,6 ; Disconnect All Links
74 = ilink,16 ; Reconnect links disconnected with "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,,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
;823 = 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
; 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
++++
++++ /etc/asterisk/modules.conf after bridging added |
;
; 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]
++++
++++ /etc/asterisk/extensions.conf after bridging added |
[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 = 48148 ; 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
++++
The next bit was more tricky on an old Debian ''Buster'' ASL Beta image that hadn't been updated/upgraded in a long time....
==== Installing DVswitch ====
Installing DVSwitch was a bit convoluted, as my old version of the ASL Beta 2.0.0 wasn't up to date... and needed some work to add necessary APT gpg keys, and adding the dvswitch repository.
''apt-get update --allow-releaseinfo-change'' to accept the release name change
Adding DVSwitch repository keys
As root :
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0E98404D386FA1D9
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 6ED0E7B82643E131
curl -s http://apt.allstarlink.org/repos/repo_signing.key | apt-key add - && apt update
wget http://dvswitch.org/buster
chmod +x buster
./buster
apt-get update
apt-get install dvswitch
==== Configuring DVSwitch ====
The changes were made to the existing asterisk configs, as per the pdf document, then DVSwitch was installed, and then the pdf document was followed again to make the necessary configs to:
''/opt/Analog_Bridge/Analog_Bridge.ini''
and
''/opt/MMDVM_Bridge/MMDVM_Bridge.ini''
everything seemed to work okay - although there I think one of the UDP ports was initially wrong for the USRP traffic in ''Analog_Bridge.ini'' and I had to double check by looking in
''/etc/asterisk/rpt.conf''
[1999]
rxchannel = USRP/127.0.0.1:34001:31001
and setting ''Analog_Bridge.ini'' to match:
[USRP]
address = 127.0.0.1
txPort = 31001
rxPort = 34001
==== Testing ====
I initially set the ''MMDVM_Bridge'' to connect to Brandmeister and ''Analog_Bridge'' to send traffic to TG2354429 (an ad hoc TG with my DMR ID).
in the ''asterisk CLI'' issue the command to link the main node ''48148'' with the internal private node ''1999'' to complete the bridge:
''rpt cmd 2100 ilink 3 1999''
transmit on the VHF FM input to the Gateway and listen on a DMR radio via my DMR hotspot connected to Brandmeister TG2354429 and the DMR radio sprang into life with my DMR ID....
transmit on the DMR radio, via the hotspot to Brandmeister and the VHF FM handheld carried the audio from the DMR radio.
I also tried setting ''MMDVM_Bridge'' to connect to DVS-Ph F and used the ''Options=TS2_1=842'' to set TG842 as static. Setting ''Analog_Bridge'' to use TG 842 and once more the traffic was bi-directional Allstar <-> DMR
==== So Far So Good ====
To boost the audio via the bridge FIXME
''Analog_Bridge.ini'' to change from ''AUDIO_UNITY'' to ''AUDIO_USE_GAIN''
[USRP]
address = 127.0.0.1
txPort = 31001
rxPort = 34001
usrpAudio = AUDIO_USE_GAIN
usrpGain = 3
;usrpAGC = -20,10,100
tlvAudio = AUDIO_USE_GAIN
tlvGain = 0.35
I set the various DVSwitch things to be enabled or disabled:
systemctl enable asterisk
systemctl enable analog_bridge
systemctl disable md380-emu
systemctl enable mmdvm_bridge
Later I found the other bridges available (P25, YSF, NXDN etc) were running, but not configured, so I used systemctl to disable them.
==== Allmon2 / supermon ====
I added the new node ''1999'' to allmon2 and supermon, so I can control/monitor the bridging via the web.
''/var/www/html/allmon2/allmon.ini.php''
[48148]
host=127.0.0.1:5038
user=admin
passwd=xxxx
nomenu=no
hideNodeURL=no
[1999]
host=127.0.0.1:5038
user=admin
passwd=XXXX
nomenu=no
hideNodeURL=no
[Grouped Nodes]
nodes=48148,1999
[lsNodes]
url = "/cgi-bin/lsnodes_web?node=48148"
;url = "/cgi-bin/lsnodes_web?node=481480"
menu = yes
''/var/www/html/supermon/allmon.ini''
[48148]
host = 127.0.0.1:5038
user = admin
passwd = XXXX
menu = yes
hideNodeURL = no
[1999]
host = 127.0.0.1:5038
user = admin
passwd = XXXX
menu = yes
hideNodeURL = no
[All Nodes]
nodes = 48148,1999
menu = yes
--- //John Pumford-Green 03/06/25 17:55 BST//
===== Further Information =====
{{tag>radio allstar mmdvm dvswitch}}