/
svxlink.conf.5
2141 lines (2053 loc) · 96.4 KB
/
svxlink.conf.5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
.TH SVXLINK.CONF 5 "JULY 2014" Linux "File Formats"
.
.SH NAME
.
svxlink.conf \- Configuration file for the SvxLink server
.
.SH DESCRIPTION
.
.B svxlink
is a general purpose voice service system for ham radio use. This man-page
describe the SvxLink server configuration file format.
.P
SvxLink look for configuration files in a number of places. First it try to
find a user specific configuration file. SvxLink will look for a user specific
configuration file in:
.BR $HOME/.svxlink/svxlink.conf .
If no user specific configuration file can be found, SvxLink will look for
the system wide configuration file
.BR /etc/svxlink/svxlink.conf .
The
.B --config
command line option may also be used to specify an arbitrary configuration file.
.
.SH FILE FORMAT
.
The configuration file is in the famous INI-file format. A generic example of how such a
file might look like is shown below.
[SECTION1]
VALUE1=1
VALUE2="TWO "
VAULE3="Multi "
"line"
[SECTION2]
VALUE1=2
This is a simple format that contain name=value pairs that belong to a section. In written
text, a specific configuration variable can be referred to as SECTION1/VALUE2 meaning
"configuration variable VALUE2 in section SECTION1".
.P
The same variable name can exist in two different sections. For example VALUE1 in section
SECTION1 have the value 1 and VALUE1 in section SECTION2 have the value 2. Values
containing spaces at the beginning or end of the line must be surrounded by citation
characters (see SECTION1/VALUE2). Likewise with a multi line value (see SECTION1/VALUE3).
.
.SH CONFIGURATION VARIABLES
.
Here is the description of all configuration variables that SvxLink understands. The
configuration variables are described section for section.
.
.SS GLOBAL
.
The GLOBAL section contains application global configuration data.
.TP
.B MODULE_PATH
Specify where the SvxLink modules can be found. The default is /usr/lib/svxlink
.TP
.B LOGICS
Specify a comma separated list of logic cores that should be created. The logic core is
the thing that ties the transciever and the voice services (modules) together. It contains
the rules for how the radio interface should be handled. The specified name of a logic
core must have a corresponding section specified in the config file. This is where the
behaviour of the logic core is specified.
.TP
.B CFG_DIR
Specify the path to a directory that contain additional configuration files.
If a relative path is specified, the path will be relative to the directory
where the main configuration file is at. All files in the specified directory
will be read as additional configuration. Filenames starting with a dot are
ignored.
.TP
.B TIMESTAMP_FORMAT
This variable specifies the format of the timestamp that is written in front of
each row in the log file. The format string is in the same format as specified
in the
.BR strftime (3)
manual page. The default is "%c" which is described as: "the preferred date and
time representation for the current locale". The environment variables LC_TIME,
LC_ALL and LANG will affect how this time format will look. For example, setting
LC_TIME="sv_SE.UTF8" will give you swedish timestamp representation. Other
examples of format specifiers are:
.RS
.IP \(bu 4
.BR %d " - The day of the month as a decimal number (range 01 to 31)"
.IP \(bu 4
.BR %b " - The abbreviated month name according to the current locale"
.IP \(bu 4
.BR %Y " - The year as a decimal number including the century"
.IP \(bu 4
.BR %H " - The hour as a decimal number using a 24-hour clock (range 00 to 23)"
.IP \(bu 4
.BR %M " - The minute as a decimal number (range 00 to 59)"
.IP \(bu 4
.BR %S " - The second as a decimal number (range 00 to 61)"
.IP \(bu 4
.BR %f " - Fractional seconds in millisecond resolution (000-999)"
.P
The last one (%f) is a SvxLink specific formatting specifier.
Example: TIMESTAMP_FORMAT="%d %b %Y %H:%M:%S.%f" would give a timestamp looking
something like: "29 Nov 2005 22:31:59.875".
.RE
.TP
.B CARD_SAMPLE_RATE
This configuration variable determines the sampling rate used for audio
input/output. SvxLink always work with a sampling rate of 16kHz internally but
there still are som benefits from using a higher sampling rate. On some sound
cards the filters look pretty bad at 16kHz and the amplitude response will not
be uniform which among other things can cause problems for the software DTMF
decoder.
Some sound cards also sound very bad at 16kHz due to insufficient
anti-alias filtering or resampling effects. These, often cheeper, sound cards
sound OK at 48kHz.
The downside of choosing a higher sampling rate is that it puts a little bit
more load on the CPU so if you have a very slow machine (<300MHz), it might not
have the computational power to handle it.
Supported sampling rates are: 16000 and 48000.
.TP
.B CARD_CHANNELS
Use this configuration variable to specify how many channels to use when
opening a sound card. For normal sound cards the only practical values to use
are 1 for mono and 2 for stereo. The latter is the default.
When using the sound card in stereo mode it is possible to use the left and
right channels independenly to drive two transceivers. When using the sound
card in mono mode, both left and right channels transmit/receive the same
audio.
.TP
.B LOCATION_INFO
Enter the section name that contains information required for transfering
positioning data to location servers. Setting this item makes the system
visible on the EchoLink link status page and the APRS network.
.TP
.B LINKS
Enter here a comma separated list of section names that contains the
configuration information for linking logics together (see Logic Linking).
.
.SS Common Logic configuration variables
.
A logic core is what define how SvxLink should behave on the RF channel. The
SvxLink server can handle more than one logic core and so can be connected to
more than one transceiver. The configuration variables below are common to all
logic types. Configuration variables that are specific to a certain logic core
type are described below in a section of its own.
.TP
.B TYPE
The type of logic core this is. The documentation for the specific logic core
type you want to use describe what to write here.
.TP
.B RX
Specify the configuration section name of the receiver to use. All configuration
for the receiver is done in the specified configuration section.
.TP
.B TX
Specify the configuration section name of the transmitter to use. All
configuration for the transmitter is done in the specified configuration
section.
.TP
.B MODULES
Specify a comma separated list of configuration sections for the modules to
load. This tells SvxLink which modules to actually load on startup.
.TP
.B CALLSIGN
Specify the callsign that should be announced on the radio interface.
.TP
.B SHORT_IDENT_INTERVAL
The number of minutes between short identifications. The purpose of the short
identification is to just announce that the station is on the air. Typically just the
callsign is transmitted. For a repeater a good value is ten minutes and for a simplex node
one time every 60 minutes is probably enough. The LONG_IDENT_INTERVAL must be an even
multiple of the SHORT_IDENT_INTERVAL so if LONG_IDENT_INTERVAL is 60 then the
legal values for SHORT_IDENT_INTERVAL are: 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60.
If unset or set to 0, disable short identifications.
.TP
.B LONG_IDENT_INTERVAL
The number of minutes between long identifications. The purpose of the long identification
is to transmit some more information about the station status (new voice mails etc). The time of
day is also transmitted. A good value here is 60 minutes.
If unset or set to 0, disable long identifications.
.TP
.B IDENT_ONLY_AFTER_TX
This feature controls when identification is done. By default, identification is done
every time the SHORT_IDENT_INTERVAL expires. If this feature is enabled, identification
will be done only if there has been a recent transmission. This feature is good for nodes
using an RF link to provide echolink to a repeater. Often, in this situation, it is not
desirable for the link to identify unless legally necessary. Note that
SHORT_IDENT_INTERVAL still have to be set for this feature to work. That config variable
will then be interpreted as the minimum number of seconds between identifications. The
LONG_IDENT_INTERVAL will not be affected by this parameter.
.TP
.B EXEC_CMD_ON_SQL_CLOSE
Specify a time, in milliseconds, after squelch close after which entered DTMF digits will
be executed as a command without the need to send the # character. This really only is of
use when using a radio that it is difficult to send DTMF digits from, like the Yaesu VX-2
handheld. The down side of enabling this option is that the DTMF detection some times
false trigger on voice. This can cause interresting situations when all of a sudden a
module get activated in the middle of a QSO.
.TP
.B EVENT_HANDLER
Point out the TCL event handler script to use. The TCL event handler script is
responsible for playing the correct audio clips when an event occurr.
The default location is /usr/share/svxlink/events.tcl.
.TP
.B DEFAULT_LANG
Set the default language to use for announcements. It should be set to an ISO
code (e.g. sv_SE for Swedish). If not set, it defaults to en_US which is US English.
.TP
.B RGR_SOUND_DELAY
The number of milliseconds to wait after the squelch has been closed before a roger beep
is played. The beep can be disabled by specifying a value of -1 or commenting out this
line. Often it is best to use the SQL_HANGTIME receiver configuration variable to specify
a delay instead of specifying a delay here. This configuration variable should then be set
to 0.
.TP
.B REPORT_CTCSS
If set, will report the specified CTCSS frequency upon manual identification (* pressed).
It is possible to specify fractions using "." as decimal comma. Disable this feature by
commenting out (#) this configuration variable.
.TP
.B TX_CTCSS
This configuration variable controls if a CTCSS tone should be transmitted.
Use a comma separated list (no spaces!) to specify when to transmit a CTCSS
tone. These are the possible values:
.BR SQL_OPEN ", " LOGIC ", " MODULE ", " ANNOUNCEMENT " or " ALWAYS .
Commenting out this configuration variable will disable CTCSS transmit.
The tone frequency and level is configured in the transmitter configuration
section.
.RS
.IP \(bu 4
.BR SQL_OPEN
will transmit CTCSS tone when the squelch is open. This is only useful on a
repeater. On a simplex node it doesn't make much sense.
.IP \(bu 4
.BR LOGIC
will transmit CTCSS tone when there is incoming traffic from another logic
core.
.IP \(bu 4
.BR MODULE
will transmit CTCSS tone when there is incoming traffic from a module.
.IP \(bu 4
.BR ANNOUNCEMENT
will transmit CTCSS tone when an announcement is being played. Repeater idle
sounds and roger beeps will not have tone sent with them though.
.IP \(bu 4
.BR ALWAYS
will always transmit a CTCSS tone as soon as the transmitter is turned on.
.RE
.TP
.B MACROS
Point out a section that contains the macros that should be used by this logic
core. See the section description for macros below for more information.
.TP
.B FX_GAIN_NORMAL
The gain (dB) to use for audio effects and announcements when there is no other traffic.
This gain is normally set to 0dB which means no gain or attenuation.
.TP
.B FX_GAIN_LOW
The gain (dB) to use for audio effects and announcements when there is other traffic.
This gain is normally set to something like -12dB so that announcements and audio effects
are attenuated when there is other traffic present.
.TP
.B QSO_RECORDER
The QSO recorder is used to write all received audio to files on disk. The
format for this configuration variable is <command>:<config section>. The
specified command is used to activate or deactivate the QSO recorder. If the
command for example is set to 8, 81 will activate the recorder and 80 will
deactivate it. The command may also be left out. It will then not be possible
to control the QSO recorder using DTMF commands. Even if the command is left
out the colon must always be specified.
The config section point out a section in the configuration file that holds
configuration for the QSO recorder.
Have a look at the QSO Recorder Section documentation for more information.
Example: QSO_RECORDER=8:QsoRecorder
.TP
.B SEL5_MACRO_RANGE
Define two comma separated values here to map the Sel5 tone call to your macro
area. E.g. if you have defined:
SEL5_MACRO_RANGE=03400,03499
then all incoming Sel5 tone sequences from 03400 to 03499 are mapped to the
macros section (refer to Macros Section, next chapter). Other sequences but the
one defined under OPEN_ON_SEL5 are ignored so it can be used to call other
stations via the repeater without a repeater reaction.
.TP
.B ONLINE_CMD
Define a DTMF command that is used to switch the node between online and
offline mode. When in the off-state, the transmitter will not be turned on by
any event. If a module is active when the node is brought offline, it will be
deactivated and no module activation will be allowed in offline mode. No other
commands than the online command will be accepted in the offline state.
If the command for example is set to 998877 then 9988771 will set the node
online and 9988770 will set it offline. If a module is active or if the
ACTIVATE_MODULE_ON_LONG_CMD is used, the command must be prefixed with a star
to work as expected. The star means "force core command".
.TP
.B STATE_PTY
Using this configuration variable it is possible to specify a path to a UNIX 98
PTY that SvxLink state events is published to. The published events is in a
simple text format using a space separated list of values. SvxLink will create
a softlink to the actual slave PTY. For that reason, SvxLink must have write
permissions in the directory where the softlink should be created. Monitoring
the PTY output is as simple at doing a
.B "cat /path/to/pty"
after starting SvxLink. See STATE PTY FORMAT for more information on the format
of the state messages.
Example: STATE_PTY=/tmp/state_pty
.
.SS Simplex Logic Section
.
The Simplex Logic section contains configuration data for a simplex logic core.
The name of the section, which in the example configuration file is
.BR SimplexLogic ,
must have a corresponding list item in the GLOBAL/LOGICS config variable for
this logic core to be activated. The name "SimplexLogic" is not magic. It could
be called what ever you like but it must match the namespace name in the
SimplexLogic.tcl script. The configuration variables below are those that are
specific for a simplex logic core.
.TP
.B TYPE
The type for a simplex logic core is always
.BR Simplex .
.TP
.B MUTE_RX_ON_TX
Set to 1 to mute the receiver when the transmitter is transmitting (default)
or set it to 0 to make the RX active during transmissions.
One might want to set this to 0 if the link is operating on a split frequency.
Then the link can accept commands even when it's transmitting.
The normal setting is 1, to mute the RX when transmitting.
.TP
.B MUTE_TX_ON_RX
Set to 1 to mute the transmitter when the squelch is open (default) or set it
to 0 to make the TX active during squelch open. One might want to set this to
0 if the link is operating on a split frequency or if it's connected to some
full duplex device. The normal setting is 1, to mute the TX when the squelch
is open.
.
.SS Repeater Logic Section
.
A Repeater Logic section contains configuration data for a repeater logic core.
The name of the section, which in the example configuration file is
.BR RepeaterLogic ,
must have a corresponding list item in the GLOBAL/LOGICS config variable for
this logic core to be activated. The name "RepeaterLogic" is not magic.
It could be called what ever you like but it must match the namespace name in
the RepeaterLogic.tcl script. The configuration variables below are those that
are specific for a repeater logic core.
.TP
.B TYPE
The type for a repeater logic core is always
.BR Repeater .
.TP
.B NO_REPEAT
Set this to 1 if you do NOT want SvxLink to play back the incoming audio. This
can be used when the received audio is directly coupled by hardware wiring to
the transmitter. What you win by doing this is that there is zero delay on the
repeated audio. When the audio is routed through SvxLink there is always an
amount of delay. What you loose by doing this is the audio processing done by
SvxLink (e.g. filtering, DTMF muting, squelch tail elimination) and the
ability to use remote receivers.
.TP
.B IDLE_TIMEOUT
The number of seconds the repeater should have been idle before turning the
transmitter off.
.TP
.B OPEN_ON_1750
Use this configuration variable if it should be possible to open the repeater with a
1750Hz tone burst. Specify the number of milliseconds the tone must be asserted
before the repeater is opened. Make sure that the time specified is long enough for
the squelch to have time to open. Otherwise the repeater will open "too soon" and
you will hear an ugly 1750Hz beep as the first thing.
A value of 0 will disable 1750 Hz repeater opening.
.TP
.B OPEN_ON_CTCSS
Use this configuration variable if it should be possible to open the repeater with
a CTCSS tone (PL). The syntax of the value is tone_fq:min_length. The tone
frequency is specified in whole Hz and the minimum tone length is specified in
milliseconds. For examples if a 136.5 Hz tone must be asserted for two seconds for
the repeater to open, the value 136:2000 should be specified.
.TP
.B OPEN_ON_DTMF
Use this configuration variable if it should be possible to open the repeater with
a DTMF digit. Only one digit can be specified. DTMF digits pressed when the repeater
is down will be ignored.
.TP
.B OPEN_ON_SEL5
Use this configuration variable if you want to open your repeater by using a
selective tone call that is often used in commercial radio networks.
Example: OPEN_ON_SEL5=03345 opens your repeater only if that sequence has been
received. You can use sequence lengths from 4 to 25.
.TP
.B CLOSE_ON_SEL5
Use this configuration variable if you want to close your repeater by using a
selective tone call that is often used in commercial radio networks.
Example: CLOSE_ON_SEL5=03345 closes your repeater if that sequence has been
received. You can use sequence lengths from 4 to 25.
.TP
.B OPEN_ON_SQL
Use this configuration variable if it should be possible to open the repeater just by
keeping the squelch open for a while. The value to set is the minimum number of
milliseconds the squelch must be open for the repeater to open.
.TP
.B OPEN_ON_SQL_AFTER_RPT_CLOSE
Activate the repeater on just a squelch opening if there have been no more
than the specified number of seconds since the repeater closed.
.TP
.B OPEN_SQL_FLANK
Determines if OPEN_ON_SQL and OPEN_ON_CTCSS should activate the repeater when
the squelch open or close. If set to OPEN, the repeater will activate and start
retransmitting audio immediately. No identification will be sent. If set to
CLOSE, the repeater will not activate until the squelch close. An
identification will be sent in this case.
.TP
.B IDLE_SOUND_INTERVAL
When the repeater is idle, a sound is played. Specify the interval in
milliseconds between playing the idle sound. An interval of 0 disables the idle
sound.
.TP
.B SQL_FLAP_SUP_MIN_TIME
Flapping squelch suppression is used to close the repeater down if there is
interference on the frequency that open the squelch by short bursts.
This configuration variable is used to specify the minimum time, in
milliseconds, that a transmission must last to be classified as a real
transmission. A good value is in between 500-2000ms.
.TP
.B SQL_FLAP_SUP_MAX_COUNT
Flapping squelch suppression is used to close the repeater down if there is
interference on the frequency that open the squelch by short bursts.
This configuration variable is used to specify the maximum number of consecutive
short squelch openings allowed before shutting the repeater down. A good value
is in between 5-10.
.TP
.B ACTIVATE_MODULE_ON_LONG_CMD
This configuration variable activate a feature that might help users not aware
of the SvxLink command structure. The idea is to activate the specified module
when a long enough command has been received. The typical example is an
EchoLink user that is used to just typing in the node ID and then the
connection should be established right away. Using this configuration variable,
specify a minimum length and a module name. If no module is active and at least
the specified number of digits has been entered, the given module is
activated and the command is sent to it. To be really useful this feature
should be used in cooperation with EXEC_CMD_ON_SQL_CLOSE.
For example, if this configuration variable is set to "4:EchoLink" and the
user types in 9999, the EchoLink module is first activated and then the
command 9999 is sent to it, which will connect to the ECHOTEST server.
.TP
.B IDENT_NAG_TIMEOUT
Tell repeater users that are not identifying to identify themselvs.
The number of seconds to wait for an identification, after the
repeater has been activated, is set using this configuration variable.
A valid identification is considered to be a transmission longer than the
time set by the IDENT_NAG_MIN_TIME configuration variable. We don't know
if it's really an identification but it's the best we can do.
Setting it to 0 or commenting it out disables the feature.
.TP
.B IDENT_NAG_MIN_TIME
This is the minimum time, in milliseconds, that a transmission must last to
be considered as an identification. This is used as described in the
IDENT_NAG_TIMEOUT configuration variable.
.
.SS QSO Recorder Section
.
The QSO recorder is used to record all received audio to files on disk. All
audio from receivers, modules and logic links are recorded. Announcements are
not recorded.
.TP
.B REC_DIR
Use this configuration variable to specify in which directory to write the
audio files. A good place is /var/spool/svxlink/qso_recorder.
.TP
.B MIN_TIME
If the duration of the recorded content for a file is less then MIN_TIME
milliseconds, the file will be deleted when the file is closed. Default: 0
(empty files will be deleted).
.TP
.B MAX_TIME
Setting this configuration variable will set an upper limit for the file size
of a recording. No more than MAX_TIME seconds of content will be recorded to a
single file. When the maximum time have been reached, the file is closed and
another file is created. Note that it is not the maximum time that the
recording has been active that we are setting a limit for but rather how much
content that have been recorded to the file. If nothing is recorded, the file
can stay open indefinitely. Default: 0 (no limit)
.TP
.B SOFT_TIME
To not get abrupt breaks in recordings it is possible to set a soft break time.
Let's say that MAX_TIME is set to 3600 seconds (one hour). If we set SOFT_TIME
to 300 seconds (five minutes) the QSO recorder try to close the file on a
squelch close somewhere between 55 and 60 minutes. In this way we may avoid
getting transmissions splitted between files. Default: 0 (no limit)
.TP
.B MAX_DIRSIZE
Specify the maximum total size in megabytes of the files in the recording
directory. If the limit is exceeded, the oldest files are deleted. The
directory size is checked upon file close so the size may grow temporarily past
the limit with at most the size of one recorded file. Only files which have a
filename starting with "qsorec_" will be considered for deletion. If using an
ENCODING_CMD, make sure that the "qsorec_" prefix is not removed from the
target filename unless you really want the MAX_DIRSIZE feature to skip them.
Default: 0 (no limit)
.TP
.B DEFAULT_ACTIVE
If this configuration variable is set to 1, the QSO recorder will be activated
by default when SvxLink start. Default: 0 (default inactive)
.TP
.B TIMEOUT
If a timeout is specified, the activation state of the QSO recorder will return
to the value specified in the DEFAULT_ACTIVE configuration variable when the
node has been idle for the specified number of seconds. When DEFAULT_ACTIVE is
unset or 0, if the QSO recorder is manually activated it will be automatically
deactivated after the specified amount of time of inactivity. When
DEFAULT_ACTIVE is set to 1, if the QSO recorder is manually deactivated it will
be automatically activated after the specified amount of time of inactivity.
Default: 0 (no timeout)
.TP
.B QSO_TIMEOUT
Set this configuration variable if you want to close the currently opened file
and open a new one after each QSO. The number of seconds the node should be
idle before closing the file should be specified. Default: 0 (no QSO timeout)
.TP
.B ENCODER_CMD
Specify a command to be executed after a new wav file have been written to
disk. This makes it possible to use an external encoder utility to encode the
wav file to another format. Even though this configuration variable was added
to run an external encoder it could do more complicated things with the file if
needed. A couple of examples would be to transfer the file to another computer
or to send a notification e-mail. If the command line get too complicated it
may be a good idea to write a script instead.
The encoder command will be run under a shell so normal shell operators like
redirects and pipes may be used. The shell specified in the SHELL environment
variable will be used and if not set, /bin/sh will be used. The "-c" command
line option will be added so the complete command will look something like:
$SHELL -c "$ENCODER_CMD". A number of %-codes can be included in the command.
They have the following meaning:
.RS
.IP \(bu 4
.BR %f " - The full filename with full path"
.IP \(bu 4
.BR %d " - The directory part (what REC_DIR is set to)"
.IP \(bu 4
.BR %b " - The basename, that is, the filename without path and extension"
.IP \(bu 4
.BR %n " - The filename without path but with extension"
.P
The encoder will be started in the background and it will not be stopped even
if SvxLink exits. It will run in the background until it's done. As long as
SvxLink is running it is monitoring the encoding processes. If a process run
for longer than one hour it will be killed.
Note that SvxLink will never remove the original recording so that have to be
done in the encoder command. Here are a couple of examples:
ENCODER_CMD=/usr/bin/oggenc -Q \\"%f\\" && rm \\"%f\\"
.BR
ENCODER_CMD=/usr/bin/lame --quiet \\"%f\\" \\"%d/%b.mp3\\" && rm \\"%f\\"
.BR
ENCODER_CMD=/usr/bin/speexenc \\"%f\\" \\"%d/%b.spx\\" 2>/dev/null && rm \\"%f\\"
.BR
ENCODER_CMD=/usr/bin/opusenc \\"%f\\" \\"%d/%b.opus\\" 2>/dev/null && rm \\"%f\\"
.
.SS Macros Section
.
A macros section is used to declare macros that can be used by a logic core. The
logic core points out the macros section to use by using the MACROS
configuration variable. The name of the MACROS section can be chosen arbitrarily
as long as it match the MACROS configuration variable in the logic core
configuration section. There could for example exist both a
[RepeaterLogicMacros] and a [SimplexLogicMacros] section.
.P
A macro is a kind of shortcut that can be used to decrease the amount of key
presses that have to be done to connect to common EchoLink stations for example.
On the radio side, macros are activated by pressing "D" "macro number" "#". A
macros section can look something like the example below. Note that the module
name is case sensitive.
[Macros]
1=EchoLink:9999#
2=EchoLink:1234567#
9=Parrot:0123456789#
For example, pressing DTMF sequence "D1#" will activate the EchoLink module and
connect to the EchoTest conference node.
.
.SS Logic Linking
A logic linking configuration section is used to specify information for a link
between two or more SvxLink logic cores. Such a link can for example be used to
connect a local repeater to a remote repeater using a separate link transceiver.
The link is activated/deactivated using DTMF commands and/or automatically
depending on your configuration. When the link is active, all audio received
by one logic will be transmitted by the other logic(s).
.P
The name of the logic linking section can be chosen freely. In the example
configuration file, there is a section [LinkToR4]. To use a logic linking
section in a logic core it must be pointed out by the LINKS configuration
variable in the GLOBAL section.
Example: GLOBAL/LINKS=LinkToR4
.TP
.B CONNECT_LOGICS
A comma separated list of logic specifications for the logic cores to connect
together. Each logic specification has three parts separated by colons:
<logic name>:<command>:<announcement name>. The "logic name" is the name of
the logic to include in the link. To manually activate or deactivate the link
from the just specified logic, "command" is used. The "announcement name" is
used when announcing link related activities like activation or deactivation.
Both "command" and "announcement name" may be left empty if no manual control
is wanted.
An example config line may look like this:
RepeaterLogic_2m:99:SK3GW,RepeaterLogic_70cm:94:SK3GK
It will include two logics in the link, RepeaterLogic_2m and
RepeaterLogic_70cm. From the 2m side, the link will be activated when the user
send command 991 and deactivated when the user send command 990. Upon
activation, an announcement like "activating link to SK3GW" will be played
back. From the 70cm side the command will be 941 and 940 respectively. The
announcement when activating the link from the 70cm side will be something like
"activating link to SK3GK".
.TP
.B DEFAULT_ACTIVE
The link will be connected automatically during startup of SvxLink if this
configuration variable is set to 1. Also, if a link is manually disconnected by
a user it will be automatically reconnected after some time of inactivity. The
time is specified by setting the TIMEOUT configuration variable. If the
TIMEOUT variable is not set, no automatic reactivation will be done.
.TP
.B TIMEOUT
The number of seconds after which the link will be automatically deactivated
if there have been no activity. If 1 have been specified for DEFAULT_ACTIVE,
this configuration variable will specify after how many seconds the link will
be reactivated after being manually deactivated.
.TP
.B AUTOACTIVATE_ON_SQL
Enter a comma separated list of logics, which should automatically activate
the link if there is activity (e.g. squelch open) in it. One possible
application for this is for example to make the connection of a
microphone/speaker combination (without DTMF encoder) for brief announcements
but without having to constantly listen in.
Example: AUTOACTIVATE_ON_SQL=MicSpkrLogic
.
.SS Local Receiver Section
.
A local receiver section is used to specify the configuration for a receiver
connected to the sound card. In the default configuration file there is a Local
configuration section called
.BR Rx1 .
The section name could be anything. It should match the RX configuration
variable in the logic core where the receiver is to be used. The available
configuration variables are described below.
.TP
.B TYPE
Always "Local" for a local receiver.
.TP
.B AUDIO_DEV
Specify the audio device to use. Normally alsa:plughw:0. Have a look at the
AUDIO DEVICE SPECIFICATIONS chapter for more information.
.TP
.B AUDIO_CHANNEL
Specify the audio channel to use. SvxLink can use the left/right stereo
channels as two mono channels. Legal values are 0 or 1.
.TP
.B SQL_DET
Specify the type of squelch detector to use. Possible values are: VOX, CTCSS,
SERIAL, EVDEV, SIGLEV, PTY, GPIO or HIDRAW.
The VOX squelch detector determines if there is a signal
present by calculating a mean value of the sound samples. The VOX squelch
detector behaviour is adjusted with VOX_FILTER_DEPTH and VOX_THRESH. VOX is
actually a bit of a misnomer since it's a "Voice Operated Squelch" and VOX
actually means "Voice Operated Transmitter". However, the term VOX is widely
understood by hams all over the world so we'll stick with it.
The CTCSS squelch detector checks for the presence of a tone with the specified
frequency. The tone frequency is specified using the CTCSS_FQ config variable.
The thresholds are specified using the CTCSS_OPEN_THRESH and CTCSS_CLOSE_THRESH
config variables. Other config variables that effect the CTCSS squelch is:
CTCSS_MODE, CTCSS_SNR_OFFSET, CTCSS_BPF_LOW, CTCSS_BPF_HIGH.
The SERIAL squelch detector use a pin in a serial port to detect if the squelch
is open. This squelch detector can be used if the receiver have an external
hardware indicator of when the squelch is open. Specify which serial port/pin to
use with SERIAL_PORT and SERIAL_PIN.
The EVDEV squelch detector read squelch events from a /dev/input/eventX device.
An example where this could be useful is if you have a USB audio device with
some buttons on it. Some of these devices generate key press events, much like
a keyboard. Specify which /dev/input device node to use using the EVDEV_DEVNAME
config variable. Set which events that should open and close the squelch using
the EVDEV_OPEN and EVDEV_CLOSE config variables.
The GPIO squelch detector read a pin on the GPIO Port. Depending on the level
of the pin, the squelch is switched. A HIGH (3.3V) at the pin set the squelch
to open and a LOW (GND) level will set the squelch to closed.
Specify which squelch pin to use with the GPIO_SQL_PIN configuration variable.
The SIGLEV squelch detector use signal level measurements to determine if the
squelch is open or not. Which signal level detector to use is determined by the
setting of the SIGLEV_DET configuration variable. The open and close
thresholds are set using the SIGLEV_OPEN_THRESH and SIGLEV_CLOSE_THRESH
configuration variables.
If using the NOISE signal level detector note the following. The detector is
not perfect (it's affected by speech) so you will also want to setup
SQL_HANGTIME to prevent it from closing in the middle of a transmission. A
value between 100-300ms is probably what you need. If using this squelch type
in cooperation with a voter, you'll also probably need to setup SQL_DELAY to
get correct signal level measurements. A value of about 40ms seem to be OK.
Also, when using the NOISE signal level detector the input audio must be
unsquelched since silence will be interpreted as a high signal strength.
The PTY squelch expects a very easy protocol over a pseudo-tty device,
created by SvxLink on runtime.
An 'O' over this pty device indicate an open squelch, a 'Z' is a closed squelch.
Define the slave pty in PTY_PATH (e.g. PTY_PATH=/tmp/sql) and SvxLink
will create a link to the specified path from it's pseudotty slave device
(/dev/pts/X). This can be used by a script to interface custom devices,
modems or other hardware to SvxLink. Look for nhrcx.pl to see an example.
The HIDRAW squelch supports human interface devices (HID), USB devices
like CM108 soundcard e.g. used in the URI Echolink adapter made by DMK.
.TP
.B SQL_START_DELAY
The squelch start delay is of most use when using VOX squelch. For example, if
the transceiver makes a noise when the transmitter is turned off, that might
trigger the VOX and cause an infinite loop of squelch open/close transmitter
on/off.
Specify the number of milliseconds that the squelch should be "deaf" after
the transmitter has been turned off.
.TP
.B SQL_DELAY
Specify a delay in milliseconds that a squelch open indication will be delayed.
This odd feature can be of use when using a fast squelch detector in combination
with the signal level detector. A squelch delay will allow the signal level
detector to do its work before an indication of squelch open is sent to the
logic core. A delay might be needed when using the voter to choose among
multiple receivers. A normal value could be somewhere in between 20-100ms.
.TP
.B SQL_HANGTIME
How long, in milliseconds, the squelch will stay open after the detector has
indicated that it is closed. This configuration variable will affect all
squelch detector types.
.TP
.B SQL_EXTENDED_HANGTIME
At low signal strengths it can be beneficial to use a longer squelch hangtime
so that it is less likely for the squelch to close. This configuration variable
is unset by default. A value of 1000 milliseconds may be a good value to start
out with. To enable the extended squelch hangtime feature, set up the
SQL_EXTENDED_HANGTIME_THRESH variable.
.TP
.B SQL_EXTENDED_HANGTIME_THRESH
At low signal strengths it can be beneficial to use a longer squelch hangtime
so that it is less likely for the squelch to close. This configuration variable
is unset by default. When set to a signal level it will activate the extended
squelch hangtime feature. When the signal strength during a transmission fall
below the set threshold, the extended hangtime will be used. Start out with a
value between 10 to 15. The SQL_EXTENDED_HANGTIME variable is used to set how
long the extended squelch hangtime should be. Make sure that you have
calibrated the signal level detector before turning this feature on. Otherwise
it will not work as expected.
.TP
.B SQL_TIMEOUT
Use this configuration variable to set an upper limiti, in seconds, for how
long the squelch is allowed to be open. If the timeout value is exceeded the
squelch is forced to closed. If the squelch close for real, everthing is back
to normal. When it opens the next time a squelch open will be signalled.
For example, use this feature to make sure that a faulty receiver cannot block
the system indefinitly.
.TP
.B VOX_FILTER_DEPTH
The number of milliseconds to create the mean value over. A small value will make the vox
react quicker (<200) and larger values will make it a little bit more sluggish. A small
value is often better.
.TP
.B VOX_THRESH
The threshold that the mean value of the samples must exceed for the squlech to be
considered open. It's hard to say what is a good value. Something around 1000 is probably
a good value. Set it as low as possible without getting the vox to false trigger.
.TP
.B CTCSS_MODE
This configuration variable set the CTCSS detection method used. These are the
ones to choose from:
.RS
.IP \(bu 4
.BR "0 (Default)"
Will choose the detection mode that is the default in the software. At the
moment this is the "Estimated SNR" mode.
.IP \(bu 4
.BR "1 (Neighbour bins)"
This detection mode will use three narrow frequency bands (~8Hz) to do the
detection. One band is centered around the tone to be detected and then there
are one band above and one below the tone. These bands are used to estimate the
noise floor. This is the detector that have been used in SvxLink for a long
time. It is however rather slow with its detection time of about 450ms.
There is no good reason to use this detector anymore but it is kept
in case the new detector does not work for some hardware setup.
.IP \(bu 4
.BR "2 (Estimated SNR)"
This is a newer detector implementation which have some improvements. The most
notable difference is that it is faster. The mean detection time will be around
200ms. This is the default detection mode if not specified.
This detector will use a larger passband to estimate the noise floor
which make it more stable. The default config use the whole CTCSS passband but
this can be customized using the CTCSS_BPF_LOW and CTCSS_BPF_HIGH config
variables.
.IP \(bu 4
.BR "3 (Estimated SNR+Phase)"
This detector is a bit experimental. It is even faster and more narrow than the
other detection modes. The mean detection time will be something like 150ms.
The detection bandwidth is very narrow and very sharp so that no adjacent
tones will trigger the detector. The price to pay for these improvements is
that is it a bit less sensitive.
.RE
.TP
.B CTCSS_FQ
If CTCSS (PL,subtone) squelch is used (SQL_DET is set to CTCSS), this config
variable sets the frequency of the tone to use. The tone frequency ranges from
67.0 to 254.1 Hz. There actually is nothing that will stop you from setting the
frequency to something outside this range but there is no guarantee that it will
work.
.TP
.B CTCSS_OPEN_THRESH
If CTCSS (PL, subtone) squelch is used (SQL_DET is set to CTCSS), this config
variable sets the required tone level to indicate squelch open. The value is
some kind of estimated signal to noise dB value. If using CTCSS mode 2 or 3 it
is helpful to set up the CTCSS_SNR_OFFSET config variable. This will make the
SNR estimation pretty good. Default threshold is 15dB.
.TP
.B CTCSS_CLOSE_THRESH
If CTCSS (PL, subtone) squelch is used (SQL_DET is set to CTCSS), this config
variable sets the required tone level to indicate squelch close. The value is
some kind of estimated signal to noise dB value. If using CTCSS mode 2 or 3 it
is helpful to set up the CTCSS_SNR_OFFSET config variable. This will make the
SNR estimation pretty good. Default threshold is 9dB.
.TP
.B CTCSS_SNR_OFFSET
This config variable is used when CTCSS_MODE is set to 0, 2 or 3. It will
adjust the estimated SNR value so that it becomes very close to a real SNR
value. This value will have to be adjusted if CTCSS_FQ, CTCSS_MODE,
CTCSS_BPF_LOW or CTCSS_BPF_HIGH changes.
Use the siglevdetcal utility to find out what to set this config variable to.
There is no requirement to set this config variable up. The downside is that
you will then need to experiment more with the CTCSS_OPEN_THRESH and
CTCSS_CLOSE_THRESH config variables to find the correct squelch level.
.TP
.B CTCSS_BPF_LOW
When CTCSS_MODE is set to 0, 2 or 3, this config variable will set the low
cutoff frequency for the passband filter. It normally should not have to be
adjusted but could improve the detector if some interference falls within the
passband (e.g. mains hum). Note however that the more narrow you make the
passband, the less stable the detector will be. You may need to compensate by
increasing the open/close thresholds or by setting up SQL_DELAY and
SQL_HANGTIME. Default is 60Hz.
.TP
.B CTCSS_BPF_HIGH
When CTCSS_MODE is set to 0, 2 or 3, this config variable will set the high
cutoff frequency for the passband filter. It normally should not have to be
adjusted but could improve the detector if some interference falls within the
passband. Note however that the more narrow you make the
passband, the less stable the detector will be. You may need to compensate by
increasing the open/close thresholds or by setting up SQL_DELAY and
SQL_HANGTIME. Default is 270Hz.
.TP
.B SERIAL_PORT
If SQL_DET is set to SERIAL, this config variable determines which serial port should be
used for hardware squelch input (COS - Carrier Operated Squelch).
Note: If the same serial port is used for the PTT, make sure you specify exactly the same
device name. Otherwise the RX and TX will not be able to share the port.
Example: SQL_PORT=/dev/ttyS0
.TP
.B SERIAL_PIN
If SQL_DET is set to SERIAL, this config variable determines which pin in the
serial port that should be used for hardware squelch input (COS - Carrier
Operated Squelch). It is possible to use the DCD, CTS, DSR or RI pin. If
inverted operation is desired, prefix the pin name with an exclamation mark
(!).
Example: SQL_PIN=!CTS
.TP
.B SERIAL_SET_PINS
Set the specified serial port pins to a static state. This can be good if using
a pin for reference voltage or if a pin have to be in a certain state to not
interfere with the operation of some equipment. There are two pins that are
possible to use, RTS and DTR. If prefixed with an exclamation mark (!), the
pin will be cleared and if not it will be set.
Example: SERIAL_SET_PINS=RTS!DTR will set RTS and clear DTR.
.TP
.B EVDEV_DEVNAME
Specify which /dev/input device node to use for the EVDEV squelch detector.
To find out which device node and event codes to use, install the evtest
utility. Find a candidate device node under /dev/input/ or /dev/input/by-id/
and try the evtest utility on it. Press some keys on the device you want to
read events from. If you're in luck, events will be printed on the screen.
.TP
.B EVDEV_OPEN
Use the evtest utility, as described above, to find out type, code and
value for the event you want to use to open the squelch. For example if
type is 1, code is 163 and value is 1, set this config variable to
1,163,1.
.TP
.B EVDEV_CLOSE
Use the evtest utility, as described above, to find out type, code and
value for the event you want to use to close the squelch. For example if
type is 1, code is 163 and value is 0, set this config variable to
1,163,0. If you set the same type,code,value combination for both
EVDEV_OPEN and EVDEV_CLOSE, that event will toggle the squelch.
.TP
.B GPIO_SQL_PIN
If SQL_DET is set to GPIO this configuration variable is used to choose which
GPIO pin to use for squelch input. The most common name is gpio<number>, like
gpio4. Some GPIO drivers use more complex names, like gpio33_pe11. If inverted
operation is desired, prefix the pin name with an exclamation mark (!).
Example: GPIO_SQL_PIN=!gpio4
.TP
.B SIGLEV_DET
Choose which type of signal level detector to use. There are two choices,
"NOISE" or "TONE". The signal level detector is only needed when using
multiple receivers in a voter configuration or when using the SIGLEV squelch
type.
Type NOISE use a bandpass filter in the range of 5 - 5.5kHz
(CARD_SAMPLE_RATE >= 16000) or a highpass filter at 3.5kHz
(CARD_SAMPLE_RATE = 8000) to estimate the amount of noise present on the
signal. If the passband contain a small amount of energy, a strong signal is
assumed. If the passband contain more energy, a weaker signal is assumed.
The noise detector must be calibrated for the receiver and audio levels you
use. This is done using the SIGLEV_SLOPE and SIGLEV_OFFSET configuration
variables. See chapter CALIBRATING THE SIGNAL LEVEL DETECTOR below for more
information.
Type TONE is not really a signal level detector but rather
a transport mechanism for getting signal level measurements from a remote
receiver site, linked in via RF, to the main SvxLink site.
It is using ten tones, one for each signal level step, in the high audio
frequency spektrum (5.5 - 6.4kHz, 100Hz step) to indicate one of ten signal
levels. Only the receiving part have been implemented in SvxLink at the
moment. On the remote receiver side an Atmel AVR ATmega8 is used to map the
signal level voltage to tone frequencies.
Use the TONE_SIGLEV_MAP configuration variable to map each tone to a
corresponding signal level value in between 0 - 100.
.TP
.B HID_DEVICE
This parameter defines the device your hidraw adapter is connected to. This
port is created by the linux/hidraw driver.
e.g. HID_DEVICE=/dev/hidraw3
.TP
.B HID_SQL_PIN
Define the pin your hardware squelch (from RX) is connected to. Valid values
are VOL_UP, VOL_DN, MUTE_PLAY or MUTE_REC.
Example: HID_SQL_PIN=VOL_UP
.TP
.B SIGLEV_SLOPE
The slope (or gain) of the signal level detector. See chapter CALIBRATING THE
SIGNAL LEVEL DETECTOR below for more information.
.TP
.B SIGLEV_OFFSET
The offset of the signal level detector. See chapter CALIBRATING THE SIGNAL
LEVEL DETECTOR below for more information.
.TP
.B SIGLEV_BOGUS_THRESH
This configuration variable set an upper threshold for the estimated signal
level when using the noise signal level detector. If the estimation goes over
the given threshold, a signal level of 0 will be reported. This can be used as
a workaround when using a receiver with squelched audio output. When the
squelch is closed, the receiver audio is silent. The signal level estimator
will interpret this as a very strong signal. Setting up the bogus signal level
threshold will counteract this behavior but a better solution is to use
unsquelched audio if possible.
By default this feature is disabled. If enabling it, start with a value
somewhere around 120.
.TP
.B TONE_SIGLEV_MAP
This configuration variable is used to map tones to signal level values when
SIGLEV_DET=TONE. It is a comma separated list of ten values in the 0 - 100
range. The first value map to the 5500Hz tone, the second to the 5600Hz tone
and so on. The last value map to the 6400Hz tone.
What levels the tones should be mapped to depends on the tone sender
implementation. The default tone map is 10,20,30...,100.
The Atmel AVR processor used by the author have a reverse mapping so
that the first tone (5500Hz) indicate the highest signal strength and the
last tone (6400Hz) indicate the lowest signal strength. It is also not linear
since it's more important to have fine measurement granularity in the lower
signal strength range. This is how the mapping look for the AVR:
100,84,60,50,37,32,28,23,19,8.
.TP
.B SIGLEV_OPEN_THRESH
This is the squelch open threshold for the SIGLEV squelch detector.
If using the NOISE signal level detector, make sure to first calibrate the
signal level detector using the SIGLEV_SLOPE and SIGLEV_OFFSET configuration
variables. The signal level detector should normally be calibrated so that full
signal strength is 100 and no signal is 0. Depending on your background noise