-
Notifications
You must be signed in to change notification settings - Fork 4
/
ChangeLog
executable file
·1653 lines (1241 loc) · 72 KB
/
ChangeLog
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
#####################################
Changes in version 0.56 2/06/2021 wd5m
Bug Fixes:
1. Update nodes.cpp to call GetTxAudio from ~Node() function to fix
a memory leak caused by intermittent unconsumed audio buffers when nodes disconnect.
2. Update VoipNode::DeleteTx in voip.cpp to consume all audio buffers
for disconnected node as part of the memory leak fix.
3. 06/2020 In src/conference.c, changed " int bFoundCallsign = FALSE;" to
"int bFoundCallsign = TRUE;" to adapt to a change in IRLP speakfreely.
Minor enhancements:
1. Added -q command line switch to the .port command to allow suppression
of logging of the command. Useful for CGI scripts that poll constantly
using the .port command to update realtime web pages. Similar to .users.
2. Corrected tlb.config.sample to change ";ShowIPAddresses = 0" to
";LogIPAddresses = 0"
#####################################
Changes in version 0.55-2 7/07/2019 wd5m
Bug Fixes:
1. Update nodes.cpp to use "unsigned char" on DTMF2CharLookup[] table
so Debian 9 64 bit compiler is happy.
#####################################
Changes in version 0.55.2 1/27/2017 wd5m
Minor enhancements:
1. Added Debian install scripts.
#####################################
Changes in version 0.55.1 4/16/2015 wd5m
Minor enhancements:
1. Increased line length allowed in config file for longer tone definitions.
#####################################
Changes in version 0.55 8/31/2013
Bug Fixes:
1. Corrected audio issues on Big Endian boxes with wave file playback
and tone generation.
#####################################
Changes in version 0.54 7/7/2013
Minor enhancements:
1. Added patches from Kristoff - ON1ARF for sysfs GPIO access for PT.
(PTT only, no COS support)
2. Corrected callsign announcements using PCM files.
#####################################
Changes in version 0.53 12/9/2012
Minor enhancement:
1. Added new option '5' for LogFileRolloverType for monthly logs.
#####################################
Changes in version 0.52 11/29/2012 (Limited Beta)
Minor enhancements:
1. Added new USB device ID for URI (CM108AH) courtesy of Roy K6MF.
Bug Fixes:
1. Corrected bug in LoadFile which caused odd crashes and general bad behavior
when the configuration variables HelpFile or InfoFile where used.
2. Corrected attempt to use parallel port to unkey transmitter after
open failed.
3. Corrected a bug in the APRS-IS code that caused tlb to loop using 100%
of the CPU time when the APRS-IS server communications timed out.
Thanks to Rob VK5TRM for reporting and help debugging this problem.
4. Corrected several memset() calls where the value (0) and the length
were swapped. These errors were caught by newer versions of GCC and
were apparently benign.
5. Corrected a bug which caused "conferences" created by the Rtp_port
configuration file variable to be deleted when the last user logs
out.
#####################################
Changes in version 0.51 12/19/2011 (Limited Beta)
Minor enhancements:
1. Added ConfCmdEnable configuration variable to allow commands sent in
EchoLink text packets to be controlled separately from UDP audio and text
"conferencing". Previously commands were disabled when ConfEnable was
set to zero. This is primarily of use with "Transcoding" conferences
(reflectors).
#####################################
Changes in version 0.50 12/13/2011 (Limited Beta)
Bug Fixes:
1. Corrected a segfault which occurred when bind failed (Bind2IP, SFBind2IP,
or RTPBind2IP configuration variables set).
#####################################
Changes in version 0.49 12/10/2011 (Limited Beta)
Minor enhancements:
1. Added ConfTextEnable configuration variable to allow UDP packet forwarding
of audio packets and text "chat" packets (EchoLink) to be controlled
separately. This is primarily of use with "Transcoding" conferences
(reflectors).
#####################################
Changes in version 0.48 11/7/2011 (Limited Beta)
Minor enhancements:
1. Added -q command line switch to the .users command to allow suppression
of logging of the command. Useful for CGI scripts that poll constantly
using the .users command to update realtime web pages.
Bug Fixes:
1. Corrected a bug which prevented audio from being sent to the DTMF decoder
from VoIP ports when no physical ports are configured.
Misc changes:
1. Removed deprecated support for the chan_rtpdir interface to Asterisk which
has been replaced with G.726.
#####################################
Changes in version 0.47 11/17/2010 (Limited Beta)
New features:
1. Added ability to create an RTP conference separate from the speak freely/RTP
conference previously provided. This allows you to create connections from
any pair of ports, not just the ports specified by SF_Port and SF_ReplyPort.
This potentially allows multiple nodes to share the same IP address under
certain circumstances. See the new RTP_Port and RTPBind2IP configuration
variables for more information.
2. Added support for the G.726 codec. The G.726 codec can be used with RTP
connections only. The G.726 codec is selected by using the -7 switch with
the .connect command. This is the prefered codec for use between tlb nodes
and AllStar nodes. Thanks to the assistance of Jim WB6NIL in designing and
debugging support for this codec.
Minor enhancements:
1. Added COS and PTT support for an PCF8754 i2c port expander chip connected
to an iMic. The PCF8754 is available in a 16 pin DIP package which is
DIY friendly. Additionally the i2c bus of the iMic is connected to a
8 pin SOIC EEPROM which has HUGE pins in comparison to the iMic itself.
Software replaces soldering skills, news at 11:00.
2. Added new command .txpower to set transmitter power. Currently only
supported by the Doug Hall protocol.
3. Added default support for the CTCSS input on the URI courtesy of Jim WB6NIL.
4. Changed the amount of audio sent in an uLaw packet in RTP mode to 320
samples (40 milliseconds).
Bug Fixes:
1. Added code to initialize DTR and RTS to low when opening the serial port.
The rig blaster uses *BOTH* RTS and DTR to key the transmitter. Since tlb only
drives *ONE* handshaking line we need to make sure that the "unused" output
doesn't cause the transmitter to be stuck on.
2. Corrected a bug in the PTT logic which occurred when a single sound card
was used to drive two radios. The radios were able to key up independently,
but could only unkey together.
3. Corrected a bug which disabled the command port (tlbcmd interface) when
EchoLink isn't enabled (EchoLinkEnable = 0).
#####################################
Changes in version 0.46 March 13, 2010
Bug Fixes:
1. Corrected a bug that caused the user count to get out of synch when an
rtcp timeout occurred on a permanent connection.
2. Corrected compile error on 64 bit systems.
3. Corrected a bug which caused a timeout by a conference user to be logged
multiple times (once per packet). Added a log entry when the long winded
operator finally unkeys.
4. Corrected segfault that occurred when a TxKeyMethod or RxCosMethod for
a serial port was specified, but DevName wasn't set.
5. Removed "already connected to xxx" announcement before "Reconnecting xxx"
announcement when connecting to a node that has recently been disconnected.
6. Corrected a bug in the .say command that prevented it from working with
some TTS programs that require a linefeed on the end the line (flite).
7. Corrected a bug that caused the user count to get out of synch when an
a node was disconnected and then reconnected quickly.
8. Corrected several typos in the Doug Hall protocol that prevented frequencies
on the 1200 Mhz band from being recognized correctly.
9. Corrected a bug which prevented a DTMF 'C' from being recognized when an
IRLP interface board was is used.
Minor enhancements:
1. Removed announcement of IP address when connecting to a new station when
LogIPAddresses is enabled. LogIPAddresses should only effect the log,
not over the air announcements!
2. Added code to attempt select a 48 Khz sampling rate when setting 8 Khz
fails. Previously only CM108 based USB audio dongles were supported at 48 Khz.
3. Added a new configuration variable PCMRate to allow the default of sampling
rate of 8 Khz to be changed to 48 Khz for boards that support 8 kHz. Note:
This enables the internal 48 Khz <-> 8 Khz sampling rate conversion routines.
Naturally this requires more CPU resources than running at 8 Khz, but may
be useful to mitigate poor frequency response of some sound boards when a
8 Khz sampling rate is selected. NB: stereo mode is only supported at a 8Khz
sampling rate currently.
4. Added support for the hrprof profiling library. The hprof library uses
the Pentium performance counter for profiling and outputs grpof compatible
files. When thelinkbox is running properly it spends most of its time
sleeping a select() call, this renders the profiling support built into
gcc useless. Profiling is primarily of interest to developers and for
debugging. Profiling is enabled by adding "--enable-profiling" to the
command line when running configure.
5. Added support for CM109 and CM119 based audio dongles that identify
themselves with idVendor/idProduct of 0d8c:000e. These chips are compatible
enough with CM108 based devices for our purposes.
6. Added support for the CM108AH found in newer URI dongles.
7. Cleaned up announcements generated by the connect command. The node's
callsign is now announced rather than it's node number or IP address.
8. Added an example script, scripts/saytime.sh, that announces the time of day.
#####################################
Changes in version 0.45 Oct 2, 2009
Bug Fixes:
1. Changed "Total" column label to "Ave" on the .rxlevel command.
2. Modified the .rxlevel command to reset the minimum value to 32767 and the
maximum value to -32768 rather than clearing them. This is necessary
to correctly detect a DC bias.
3. Removed code added in 0.44 that sent "Bye" packets to stations which were
in the disconnecting state when anything is received from them. IRLP
reflectors reflect the user's "Bye" packet which caused an infinite
bandwith consuming loop. Extra "Bye" packets are now only sent in reply
to valid RTCP packets.
4. Added code to force the compression type for Echolink clients to GSM.
5. Removed code that set LastHeard for RTP packets, LastHeard should only
be set for RTCP packets. Ensures we can disconnect from nodes sending
an constant audio stream.
#####################################
Changes in version 0.44 Sept 15, 2009
Minor enhancements:
1. Added -T switch to the users command to display the user list sorted by
the time since the user's last transmission. The user who has transmitted
most recently will be at the top of the list. Normally the list is sorted
by the connect time with the station that's been connected the longest at
the top of the list.
2. Added -s switch to the users command to display the user list in the format
that it is shown on EchoLink user's screens when they are connected to
the node. This format show's the user's name or in the case of a
conference the station that's currently talking.
3. Added new port configuration variable DefaultToneLevel to set the default
tone level used for tonespecs that do not set a tone level explicitly.
4. Added DTMF command to connect to a newsline server to the example tlb
command file.
5. Added a new VoIP port configuration variable ConnectCmd which may be used
to specify tlb commands to be executed when a VoIP connection is
established.
6. Added a new VoIP port configuration variable InConf which may be used
to add or remove a specific VoIP connection from the packet level conference.
Previously the only way to isolate VoIP connections from each other was
to disable conferencing globally by setting ConfEnable to zero. This
caused a lot of confusion for "normal" operations. The .user command
now displays an the 'I' user attribute for stations that have been Isolated
from the conference.
7. Added a new command .rxlevel to display received audio level statistics
from physical ports or VoIP connections. This command displays the
value of the minimum and maximum samples, the running total, the
RMS level and the number of samples that were monitored. The values
are cleared after each .rxlevel command and then new values are accumulated
for about one second. The -c switch enables a continuous display of levels
several times a second until another .rxlevel command is entered.
The -q switch suppresses the column header line. For example:
tlb> .rxlevel
Min Max Total RMS Samples
-8230 7167 -46 4256 512
8. Modified connection and disconnection logic to suppress announcements for
IRLP stations unless the new configuration file variable IRLPAnnouncements
is set to 1.
9. Quieted QueueEvent logging, it now logs if more than one event is
outstanding.
10. Added a -x switch to the .mute and .unmute commands to mute user text.
Bug Fixes:
1. Cleaned up uninitialized variables found by Valgrind. Most were benign,
but caused Valgrind to quit logging errors before reporting more
interesting issues.
2. Modified VoIP port code to disable connect announcements by default. Added
support for ConnectAnnouncements to Voip configuration variables.
3. Added initialization of the ID # to the generator code. Found by Valgrind,
this could have caused unnumbered tone generators to fail to run if more
than one tone generator was active.
4. Corrected a buffer overwrite bug which occurred when a sound device was
configured to support two separate ports in stereo mode.
5. Modified sampling rate conversion (cm108) and CTCSS high pass filter's
scaling to prevent math overflow with high input levels.
6. Corrected bug in transmitter timeout routine that prevented it from being
reset when the offending input was removed.
7. Corrected a bug that caused the transmitter to be unkeyed 80 milliseconds
prematurely under certain unusual timing circumstances (listening to the
newsline server). CM108 based interfaces were not effected by this bug.
8. Modified the way the connection node count is handled so connections that
nodes that are in the process of connecting or disconnecting are not
included in the total.
9. Corrected a bug in the parallel port logic that clobbered bits set by
external scripts when the parallel port is shared (ShareIRLP_Port set).
10. Cleaned up DTMF muting logic to prevent a courtesy tone from being sent
at the end of every command sequence.
11. Added code to process any waiting DTMF commands when a VoIP ports
pseudo COS drops. Speeds up the processing of commands by avoiding
the need to wait for the DTMF timeout.
12. Corrected bugs in DTMF digit timing measurement. Holding buttons for
an extended period on longer result in DTMF timeouts.
13. Modified code to send "Bye" packets to stations which are in the
disconnecting state when anything is received from them. This is to
cover the case where the initial "Bye" packet is lost.
14. Modified conferencing code to prevent doubling warning message from being
sent to full duplex stations.
####################################
Changes in version 0.43 July 3, 2009
New features:
1. Added support for three levels of audio priority to control how audio is
mixed when multiple sources are active. Low priority sources are muted when
higher priority sources are active. Medium priority sources are mixed at a
reduced level when high priority sources are active. High priority sources
are always mixed at full level. Automatic gain control is applied to the
final mix to ensure it does not exceed a 16 bit value.
The new port configuration variable AudioPriority sets the port's audio
priority. It is set to high by default. The new configuration variable
ReducedGain sets the gain used to mix medium priority sources with high
priority sources, 100 is 100%. The default value is 25.
The new port configuration variable AnnouncementPriority sets the audio
priority of voice announcements (PCM or text to speech). The announcement
source's priority is only used to control the mixing of announcement audio,
it is not considered when mixing user audio. In other words audio from a
low priority port will not be muted by a high priority announcement.
The tone generator's output is not affected by audio priorities.
Minor enhancements:
1. Added a new port configuration variable NoAudioInLooping to prevent the
audio input routine from looping until no more audio is available from
the input device. This is a workaround for an apparent driver bug for
the Via sound device driver used on the "Little Blue" platform which
returns invalid audio samples on back to back reads. If you have
clicking in your transmit audio try setting this variable to 1. If it
corrects the problem and you're not using a Via sound board please
let me know.
2. Modified the .saystatus command to announce stations which are being
disconnected as well as stations that are in the process of being
connected.
3. Modified the configuration file parser to keep continue parsing the file
following an error. Prevents lots of confusion that resulted when an
error on one variable caused the configuration pass to abort.
Note: Errors on pass 1 configuration variables prevent tlb from running
but tlb will continue to run if errors are found on succeeding passes.
4. Added a -v command line switch to the .link command to show the audio
priorities of sources when the link state is displayed.
5. Added a -P <priority> command line switch to the .link command to allow
the source node's default audio priority to be overridden for the specified
link.
6. VA3JSS added support for keying radio via a different output for the
morse/voice ID. This should allow for keying the radio without CTCSS or
DCS for use on repeaters etc with radios that support it. Can be enabled
by setting IdAuxPTT to 1 on a per-port basis and setting the Aux_PTT_Bit
and InvertAuxPTT accordingly. This is currently only available for
parallel interfaces.
7. Added new port configuration variable NoHangtimeOnID to prevent IDs
(voice and CW) from starting the transmitter hang timer.
8. Added a new configuration variable TempDir which specifies where
temporary files are to be created. Currently temporary files are used
to update the DNS cache and when tlb is configured to use a text to speech
system. If TempDir is not set the WorkingDir will be used for temporary
files.
Bug Fixes:
1. Added audio buffering to the software CTCSS decoder. The CTCSS decoder
was designed to process 160 samples at a time, but it has been given
whatever happened to be read from the audio device since version 0.39.
This means that since version 0.39 software detection of CTCSS only worked
when the audio device happened to return 160 or more samples at a time.
Notably an URI on a Little Blue does not.
2. Restored the TxTone configuration port variable.
3. Moved the processing of the RxTone port configuration variable to pass 2
so it works correctly if it's defined before RxCtcssMethod.
4. Restored support for the CWSpeed port configuration parameter which was
lost when the original CW ID code was replaced with tone generator based
code in version 0.40.
5. Corrected another bug in the CM108 sampling rate conversion code that
caused noise to be generated on the input. For some reason the noise was
most noticeable when the input signal used CTCSS.
6. Modified the .link command to handle a .link -m <port1> <port2> command
following a .link <port1> <port2> command. Previously the ports where
left linked in transceive mode rather than being set to monitor mode.
7. Corrected a minor memory leak that occurred when a specific link was
unlinked (.unlink <port1> <port2>).
8. Corrected the PID logged at startup, previously it was always zero.
9. Massive changes to the toneburst code. A timing related bug that caused
the ToneBurstTimeoutTimer to be restarted over and over has been fixed.
Additionally the tone burst logic now applies to all transmitters, not
just the port's transmitter. Finally the poorly thought out FakeToneBurst
port configuration variable was eliminated.
The port's receiver is now enabled when:
1. A tone burst is received.
2. The ToneBurstMode is 2 and the proper CTCSS tone is decoded.
3. The port's transmitter has transmitted something other than an ID
within the last ToneBurstTimeout seconds.
####################################
Changes in version 0.42 May 28, 2009
Bug Fixes:
1. Set new user's CompressType from conference's CompressType rather than
assuming GSM. Corrects playing of .WAV format welcome messages to non-GSM
clients.
2. Added new port configuration variable CosPollRate to provide the ability to
reduce the polling rate if desired. Fixes badly broken audio when
an CM108 based interface is used on a "Little Blue" platform
(677 Mhz Via CPU and USB 1.1 ports).
3. Modified VoipClock to reset timing average every 10 minutes to prevent
math overflows that occurred after running for a few weeks (24.855 days
to be precise).
4. Corrected a buffer overflow bug in the sampling rate conversion code that
caused clicks in audio when CM108 was used on a Little Blue platform.
5. Added a CTCSS high pass filter in front of the software DTMF decoder. This
improves DTMF operation when the user is running CTCSS and the sound card
input is connected to an FM receiver before CTCSS filtering.
6. Moved DTMF the software decoder's input to after the RxDeemphasis filter.
This improves DTMF operation by removing twist caused by FM transmitters
preemphasis when the audio card input is hooked into an FM receiver before
the receives deemphasis circuitry.
7. Modified file playback code to clear ssrc only when absolutely necessary.
Corrects file playback to tlb clients under certain unusual timing
situations.
####################################
Changes in version 0.41 April 4, 2009
Minor enhancements:
1. Modified callsign validation routine to allow bare callsigns when tlb is
not being used on the EchoLink network.
2. Setting up a permanent link between nodes now sets any underlying VoIP
connections to permanent connections.
3. The permanent attribute can now be set on existing links.
4. Added code contributed by Jason VA3VSS to log the station's IP address as
well as callsign on connects and disconnects when the new configuration
variable LogIPAddresses is set.
5. Added configuration switch --enable-profiling to build thelinkbox with
gprof profiling to aid development and debugging.
6. Added multiple parallel ports support contributed by Jason VA3VSS. The
new port configuration variable DevName specifies the parallel device used
by the port.
7. Added code to play Welcome file to VoIP connections of all types when a
the Welcome file is in a .wav format. The welcome file support in
thebridge's code requires that the welcome file be in thebridge's internal
format and only supports GSM connections. When an .wav format file is
provided thelinkbox's new welcome file support is used instead. The
Welcome file variables WelcomeFile, MinPlayBackPause, and
MaxPlayWithoutPause are now VoIP port variables to allow the global defaults
to be overridden if desired.
8. Added VoIP port configuration variable DisconnectAfterWelcome to cause
VoIP connections to be disconnected automatically after the Welcome message
is played.
9. Added code to execute an optional script when a new VoIP connection is
established. The new VoIP port configuration variable ConnectScript sets
the path to the script. The script is executed with two arguments, the
callsign of the station that connected and the string "connected".
10. Added code to tlbcmd to set port from the TLB_CMDPORT environment variable
if present.
11. Added code to tlbcmd's play personality set the maximum wait time for
the playback to complete from the TLB_MAX_PLAY environment variable if
present. The default timeout is 30 seconds.
12. Added -v switch to the .users command to display the version and type
of software the user is running when that information is available.
Bug Fixes:
1. Turned off debug level DLOG_RTP that was inadvertently left on in the last
release.
2. Corrected a bug in the serial port sharing code added in version 0.39 that
prevented successful initialization of WB2REM / VA3TO style serial
EchoLink interface boards.
3. Corrected a bug which caused a crash if the VoIP connection underlying a
permanent link was disconnected.
4. Corrected a bug which prevented DTMF from being decoded from a VoIP
connection while multiple streams were active (conferenced connections).
5. Corrected a bug in the saystatus command that caused pending connections to
be announced as connected. The saystatus command will now say:
"I am currently connected to <station list>" and
"I am trying to connect to <station list>" separately.
6. Corrected a crash which occurred when a permanent connection was
reestablished following a timeout.
7. Corrected a bug that prevented tlb from changing user identities when run in
debug mode.
####################################
Changes in version 0.40, Feb 14 2009
Bug Fixes:
1. Corrected a long standing bug in the RTP queue handler which caused
incoming VoIP audio to stall when duplicate RTP packets were received
back to back. Thanks to Lee K7KAJ and his WiFi link to his "radio shed"
for help fixing this issue.
2. Corrected cm108 audio output that broken by the stereo support added in
the last release.
3. Modified the courtesy tone logic to prevent a tone accessed transmitter
from being keyed unless it has previously been enabled by a user's
access tone. Thanks to Erik (and Skype!) for help in debugging this
problem.
####################################
Changes in version 0.39, Feb 14 2009
New features:
1. Thelinkbox can now support two radios using a single stereo capable sound
device. Thelinkbox also allows multiple ports to share a single serial
or parallel port. This means that the typical PC can act as a two port
controller without additional sound devices. The new port configuration
variable AudioChannel specifies which channel a port audio is connected to.
The existing port configuration variables TxKeyMethod, RxCosMethod,
DtmfMethod, PTT_Bit, and COS_Bit are used to specify which serial or
parallel port bits drive PTT and which bits are COS inputs.
2. The linkbox now supports tone burst access repeater control that is
typically used in Europe. See the new port configuration variables
ToneBurstMode, ToneBurstFreq, ToneBurstMute, ToneBurstTimeout,
ToneBurstToneID and FakeToneBurst for more information.
Minor enhancements:
1. Massive restructuring of the audio buffering algorithm to minimize port to
port audio delays. Previously audio was handled as 80 millisecond chunks
resulting in a 160 millisecond port to port delay. Now audio is treated
like a stream to minimize the delay.
2. Added -a command line option to the .sendbeacon command to force an update
to be sent to the APRS-IS system.
3. Added .wav format "welcome" file support. Wave format welcome files can be
played for any VoIP client. The legacy welcome file support inherited
from thebridge only supports EchoLink clients. See the configuration
variable WelcomeFile for more information.
4. Added -p command line option to the .link command to mark a port link
as "permanent". Permanent links are ignored by the .unlink all, .unlink rf,
.unlink voip, and .unlink <port> commands. The link can only be removed
by an explicit .unlink command that specifies both ports.
5. Added a new port configuration variable RepeaterPort to cause a permanent
link to be created automatically from a port's receiver to its transmitter
at initialization time.
6. Removed untested support for 8 bit sound cards. Sorry about that, I don't
have any cards to test with and no beta testers have come forward.
7. Added "dtmf" to the port status string when an DTMF digit is being decoded.
8. Added port status string support for VoIP nodes (lightly tested).
9. Added support for the MaxPlayWithoutPause and MinPlayBackPause configuration
variables to the FILE playback "tone" generator.
Bug Fixes:
1. Corrected an unnoticed long standing bug in the Doug Hall support caught by
gcc 4.3.2's anal warnings.
2. Corrected uLaw/RTP bugs. Previously uLaw only worked correctly over the
Speak Freely protocol.
3. Corrected a crash which occurred when thelinkbox was unable to open the
sound device.
4. Corrected operation of COS & CTCSS inputs via the parallel port. Thanks to
Erik oh2lak for reporting the problem and testing the fix.
5. Corrected formating of APRS-IS packets when configured for certain locations
(longitude less that 100 degrees for one). Thanks to Erik oh2lak for
reporting the problem and testing the fix.
6. Corrected crash when APRS-IS is enabled and the ConferenceCall was longer
than 9 characters. It is not possible to use APRS-IS with such "calls"
since the APRS-IS object name is a fixed size, but thelinkbox will now
report the error instead of crashing.
7. Corrected a crash that occurred when attempting to execute a DTMF command
when EchoLink wasn't enabled (EchoLinkEnable = 0). Thanks to Erik oh2lak
for reporting the problem.
8. Corrected a crash that occurred when attempting to execute a DTMF command
without a valid current port selection.
9. Corrected compile problems in the AX25 code under FreeBSD 4.x.
10. Corrected a bug in tlbcmd's imike emulation that could cause the uLaw
CODEC to be selected inadvertently for full duplex connections.
11. Corrected a premature DTMF command timeout when buttons where pressed
slowly. Previously the command timeout was started on button press, now
it's started on button release.
12. Reworked Vox code so it's treated more like a "real" cos. Added verbose
debug logging enabled by setting the DLOG_COS_CTCSS (0x400) bit in the
debug variable.
####################################
Changes in version 0.38, Jan 3 2009
Changes which are not backwards compatible:
1. Inverted the active sense of RS232 based inputs to conform with RS232
convention to avoid future confusion. NOTE: configuration files for
previous versions must be modified by changing the sense of the InvertCOS
and InvertCTCSS variables. If your configuration file did not have an
InvertCOS or InvertCTCSS then add one and set it to one. The default
is non-inverted.
2. Changed the software DTMF method for VoIP ports to 3 to match physical
ports. Method 1 is now undefined for VoIP ports.
New features:
1. Added 1200 baud AFSK AX25 packet generation support to the tone generator.
This feature may be used to send APRS beacons to advertise the
nodes location and CTCSS tone and other information. The ability to
generate packet is also expected to be useful for sending telemetry. See
the "Ax25 specific variables" section in the sample port configuration file
for more information.
2. Added ability to list the node on the APRS-IS (Automatic Packet Reporting
System-Internet Service) system. See AprsIsEnable in the sample
configuration file for more information.
Minor enhancements:
1. Added new example script that plays a rotating set of prerecorded voice
IDs periodically to a port when idle. See scripts/voiceid.sh for more
information.
2. Added new port configuration variable "ConnectAnnouncements" to allow
connect and disconnect announcements to be enabled/disabled on a per port
basis.
3. Added automatic detection of big endian hosts to configure script.
4. Added <port name> to the "dtmfdecode" event.
5. Restored the RxTone configuration file variable. The receiver's CTCSS tone
may now be set by either the configuration file variable or the RxTone
command. The eliminates the need to write an configuration script just
to set the RxTone.
6. Added an CTCSS high pass filter in the transmitters audio path, enabled by
the port configuration variable TxCtcssFilter.
7. Added the .pcm command which allows raw PCM data from various points in the
signal path to be saved to disk. This command is primarily an debug aid.
8. Added software preemphasis and deemphasis support to properly shape audio
when thelinkbox is connected directly to an FM receiver's discriminator or
an FM modulator by passing the radios built in preemphasis and deemphasis
circuitry. See the port configuration variables RxDeemphasis and
TxPreemphasis for more information.
9. Added configure test for the EVIOCGUNIQ ioctl which is not available in 2.4
kernels and added #ifdefs as needed to get thelinkbox to build. EVIOCGUNIQ
is only needed for USB device serial number support so it's not essential.
It is still an open question if thelinkbox will actually run correctly on
2.4 kernels or not.
Minor changes:
1. The APRS/AVRS configuration variables TxPower, Haat, AntGain, AntDir,
and Frequency are now port specific. This provides the ability to beacon
different information on different ports for multiband repeaters.
2. Replaced the poorly conceived VoipOutMap and VoipInMap configuration file
variables with LinkVoipIn and LinkVoipOut port configuration variables.
Bug Fixes:
1. Corrected Redhat startup script installation. tlb.sh should have been
named tlb. Also added chkconfig info courtesy of John K1DWU.
2. Corrected a major memory leak introduced in 0.84. Several kilobytes of
memory are lost everytime the user database is updated (by default every
10 minutes). Over time this adds up to a significant amount of memory.
3. Corrected bogus read failures reported by GetAudioIn with some sound
card drivers. Thanks to KB7RSI for his help debugging this problem.
4. Corrected bug in CText class which prevented initial buffer size from
being increased.
5. Corrected a bug which causes an infinite loop on startup when compiled with
some compilers (gcc 3.3.4 for the ARM) that have where the default char type
is unsigned.
6. Corrected bug that broke PCM file based callsign spelling. Thanks to
WB5TTS for reporting and help debugging the problem.
####################################
Changes in version 0.37, July 28 2008: (beta release)
Minor enhancements:
1. Update Asterisk support for chan_rtpdir version 0.5 which added sequence
numbers and DTMF support. NB: chan_rptdir version 0.2 is no longer
supported. DTMF received from Asterisk is handled like DTMF received
by any other node, commands are decoded by its possibly unique
DTMFCommandTable.
2. Added -b, -c and -t arguments to the .users command. The -b switch
suppresses the display of the user's attributes and uses a tab to
separate fields. The -c switch displays the amount of time each user
has been connected. The -t switch displays the time since the user
last transmitted.
Bug Fixes:
1. Corrected a bug that caused an assert failure (and core dump) when
unlinking from an active source when multiple sinks were linked.
2. Corrected bug that caused an assert failure (and core dump) when a new
sink was linked to an active source.
3. Corrected a bug that corrupted audio when driving multiple sinks.
4. Corrected a bug that caused audio corruption on protocols/codecs which
carried other than 640 audio samples per packet. (Basically everything
other than Asterisk and EchoLink). Thanks to beta tester extraordinaire
VK3JED for finding this bug and help testing the fix.
5. Corrected a bug that caused the courtesy tone to be sent at the wrong time
when a source was connected to multiple sinks.
####################################
Changes in version 0.36, July 23 2008: (beta release)
New features:
1. Added support for full duplex via conference rooms. The conference must
be thebridge version 1.04 or later or thelinkbox version 0.36 or later and
the FullDuplex configuration file variable must be set.
Minor enhancements:
1. Added support for uLaw (uncompressed) codec for rtp and Speak Freely
connections. Added -u switch to the .connect command to specify uLaw
connection.
2. Corrected Internet dejitter buffer operation for the Speak freely protocol.
3. Added full duplex (-x) and uLaw (-n) support to the iMike emulation.
####################################
Changes in version 0.35, July 21 2008: (Limited beta release)
New features:
1. Added support for Asterisk's new chan_rtpdir driver. See the configuration
variables AsteriskPort, AsteriskIP, AsteriskBind2IP and AsteriskDesc in
tbd.conf.sample for more information. NB: This code is for people who are
knowledgeable about Asterisk and the app_rpt project. I needed a *lot* of
help from W9SH and K6JWN to get my Asterisk node running, so I won't be
offering any help for configuring Asterisk to use the new chan driver.
Minor enhancements:
1. Added code to enable the stock EchoLink clients DTMF pad when the
configuration file variable EnableRemoteDTMF is set to 1.
2. Added an emulation profile for dtmfregen to tlbcmd.
3. Added <callsign>_fd.conf, "port####.conf" and port####_fd.conf to the list
of configuration files which are searched for configuration information
when a new VoIP client connects. "####" is the port number of the audio
port (even port number) that the client connected to. For example the
configuration file used for connections to the EchoLink port is
port5198.conf. When a new VoIP clients connects thelinkbox first looks for
<callsign>.conf, then port####.conf and finally voip.conf. If the client
is full duplex the search order is <callsign>_fd.conf, <callsign>.conf,
port####_fd.conf, port####.conf and then finally voip.conf. The first
configruation file that is found is processed, the rest are ignored.
4. Added -f switch to the .connect command to specify full duplex connection.
5. Performance optimization: replaced calls to BiQuad function with BIQUAD
macro in filter functions.
Bug Fixes:
1. Modified code to prevent 5 bytes of garbage from being written to the end
of saved .info files.
2. Modified code to prevent station list received from other conferences from
being saved as info and in .info files.
3. Corrected an infinite loop that occurred when the tone generator was given
a DTMF string followed by a space.
####################################
Changes in version 0.34, June 26 2008: (beta release)
Minor enhancements:
1. Modified tlbcmd/tlbchat to save and restore the history file from the
user's home directory rather than the current directory.
2. Modified ExecHook to pass all chat text in the second argument for
"chat" and "sent_chat" events. Previously everything including the
event type was passed in the first argument which made life for scripts
harder rather than easier.
3. Added code to replace "$TLB_PORT" within command strings with the name of
the port that issued the command.
4. Added a .frequency command that allows the port's receiver frequency,
transmitter offset, CTCSS encode and CTCSS decode to all be specified
at once. If no arguments are given the .frequency command will display
the current settings if available.
5. Added new example DTMF command script to set the transmit, receive and
CTCSS frequencies for a 2 meter remote base. (scripts/freqctrl.sh)
6. Added new example that implements a DTMF regeneration scheme for systems
that use site prefixes. See scripts/prefix.sh for more information.
7. Modified the DTMF muting logic. The MuteDTMF port configuration variable
now specifies if DTMF tones should be muted before reaching the port's
transmitter. Previously MuteDTMF specified if DTMF tones were muted
before leaving the port's *receiver*. Typically we want to pass
DTMF tones to link transmitters, but not repeater and remote base
transmitters, changing the binding from the receiver to the transmitter
makes this possible. NB: DTMF mute is only active for receivers on
ports configured with an DTMF decoder (DtfmMethod > 0).
8. Modified the .disconnect command to accept "." as a short hand for the
station currently talking to match the .mute command.
9. Added include file support for the DTMF command files.
10. Added -p command line switch to the .tonegen command to send the generated
tone to the current nodes peers rather than the port itself. Peers are
other nodes that are currently connected to the current nodes receiver.
The option is useful for DTMF regeneration among other things. An -P
command line switch can be used to send generated tones to the current
node as well as the node's peers.
11. Added -c command line option to the .tonegen command to execute the
specified command when the tone completes playback.
Bug Fixes:
1. Modified code to record locally generated chat traffic even when the
conference is empty.
2. Corrected a bug in the command parser that could cause command output
to be logged instead of the user's command. This bug could also prevent
multiple commands on one line from executing properly.
3. Corrected the name of the environment variable that holds the current
port in tlbcmd (TLB_PORT, not TLBPORT).
4. Corrected .unlink command to fully unlink ports, previously only half of
the link was unlinked.
5. Modified logic to announce VoIP connect and disconnect events to ports
listed in the VoipInMap and VoipOutMap configuration variables. Previously
connection and disconnection announcements were sent to the current port.
6. Added decrement of Transmitters to the .unlink all command. Fixes massive
memory leak caused by failure to delete uncompressed audio data after an
.unlink all command is used.
7. Modified Doug Hall protocol handlers to prevent updates from being sent
too fast to be recognized. The Doug Hall protocol uses timeouts to
recognize frame boundaries.
8. Modified the configure setup to detect the lack of a C or C++ compiler and
exit with an error message rather than trying to press on.
####################################
Changes in version 0.33, May 14 2008: (beta release)
New features:
1. Modified the code to allow thelinkbox to be run without a sound card.
Why? To give a conference server a DTMF command line and all of the other
capabilities of thelinkbox such as connections between VoIP clients running
different codecs, speech synthesizer, etc.
2. Added support for radio frequency and CTCSS control via the Doug Hall
protocol using data and clock lines attached to either the parallel port or
an USB audio dongle's GPIO lines. Connections to the parallel port are
untested currently. The new commands rxfrequency, txoffset, rxtone and
txtone are used to set the radio's operating parameters.
Minor enhancements:
1. Added code to strip trailing spaces from end of string configuration
file variables to some difficult to find problems. Thanks to N4KLB for
the suggestion.
2. Modified text to speech preprocessing code to add text specified by the new
configuration variable CallSignSpelling between letters of a callsign before
passing it to the speech synthesizer. Previously tlb just inserted spaces
but it was discovered that some speech synthesizers (Cepstral for example)
pronounce single letter abbreviations when they follow a number. Thanks
to wd5m and n4klb for testing and suggesting solutions to this problem.
3. Added support for spelling out callsigns phonetically by setting the new
configuration file variable PhoneticFilePath.
4. Added -s (spell) switch to the .say command to force the argument to be
treated as a callsign. Callsigns are spelled out letter by letter.
Bug Fixes:
1. Corrected compile errors in new ctcss code under FreeBSD (u_int8_t).
2. Corrected bug in the tone generator that could cause the transmitter to get
stuck on while trying to generate dtmf.
3. Corrected compiler errors and numerous warnings about deprecated conversion
from string constant to 'char *' when compiling with GCC 4.2.x.
4. Modified USB PTT routine to use the PTT_Bit and InvertPTT configuration
file variables. Previously the USB GPIO bits were hardcoded for the
"standard" bits.