John's Vademecum

Try to learn something about everything, and everything about something -Thomas Huxley “Darwin's bulldog” (1824-1895)

User Tools

Site Tools


public:radio:allstar:gm4slv_allstar_2025

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
public:radio:allstar:gm4slv_allstar_2025 [10/06/25 09:04 BST] – removed - external edit (Unknown date) 127.0.0.1public:radio:allstar:gm4slv_allstar_2025 [10/06/25 11:17 BST] (current) john
Line 1: Line 1:
 +<-[[.:start]]
 +
 +
 +====== A new start 2025 ======
 +
 +** New explorations into Allstar and Bridging **
 +
 +<note tip>
 +
 +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|]]
 +
 +</note>
 +===== Hardware =====
 +
 +
 +|Platform|Rapsberry Pi|
 +|Interface|CM108 Soundcard - modified|
 +|Radio|FT-1500M|
 +|Frequency|144.9125MHz|
 +|Allstar Node | 48148 |
 +|Dashboards| http://gm4slv.plus.com:42110/|
 +
 +===== 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 |
 +
 +<code bash>
 +
 +; 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,         ; Force ID (global)
 +;722 = status,         ; Give Time of Day (global)
 +;723 = status,         ; Give software Version (global)
 +;724 = status,         ; Give GPS location info
 +;725 = status,         ; 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
 +;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,                           ; Retrieve Memory
 +1 = remote,                           ; Set freq.
 +2 = remote,                           ; Set tx PL tone
 +3 = remote,                           ; 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,                          ; 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
 +
 +
 +
 +</code>
 +
 +++++
 +
 +
 +++++ /etc/asterisk/rpt.conf after bridging added |
 +
 +<code bash>
 +
 +; 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,         ; Force ID (global)
 +;722 = status,         ; Give Time of Day (global)
 +;723 = status,         ; Give software Version (global)
 +;724 = status,         ; Give GPS location info
 +;725 = status,         ; 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
 +;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,                           ; Retrieve Memory
 +1 = remote,                           ; Set freq.
 +2 = remote,                           ; Set tx PL tone
 +3 = remote,                           ; 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,                          ; 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
 +
 +
 +
 +</code>
 +
 +++++
 +
 +++++ /etc/asterisk/modules.conf after bridging added |
 +
 +<code bash>
 +;
 +; 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]
 +</code>
 +++++
 +
 +++++ /etc/asterisk/extensions.conf after bridging added |
 +
 +<code bash>
 +
 +[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
 +
 +</code>
 +
 +++++
 +
 +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 : 
 +
 +<code bash>
 +
 +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
 +
 +</code>
 +
 +==== 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''
 +
 +<code php>
 +[1999]
 +rxchannel = USRP/127.0.0.1:34001:31001
 +</code>
 +
 +
 +and setting ''Analog_Bridge.ini'' to match:
 +
 +<code php>
 +[USRP]
 +address = 127.0.0.1              
 +txPort = 31001                        
 +rxPort = 34001  
 +</code>
 +
 +==== 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''
 +
 +<code php>
 +[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                     
 +</code>
 +
 +I set the various DVSwitch things to be enabled or disabled:
 +
 +<code bash>
 +systemctl enable asterisk
 +systemctl enable analog_bridge
 +systemctl disable md380-emu
 +systemctl enable mmdvm_bridge
 +</code>
 +
 +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''
 +
 +<code 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
 +
 +</code>
 +
 +''/var/www/html/supermon/allmon.ini''
 +
 +<code php>
 +[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
 +
 +</code>
 +
 +
 +--- //John Pumford-Green 03/06/25 17:55 BST//
 +
 +
 +===== Further Information =====
 +
 +
 +{{tag>radio allstar mmdvm dvswitch}}
 +