/
changes.txt
1295 lines (1227 loc) · 69.5 KB
/
changes.txt
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 from 2.3.2 to 2.3.3
===========================
- addpasswd moved to subdir
- BUGFIX(routedmode.sgml): TcpKeepAlive= has always defaulted to 0
- BUGFIX(Toolkit.cxx): disregard IPv6 addresses if the machine has any
- BUGFIX(SoftPBX.cxx): DisconnectIP now disconnects all calls on the IP as specified
- database drivers load their libraries at runtime now, added Library= switch
- documented [RoutedMode] EnableH460P= and H460PActThread= switches
- BUGFIX(Routing.cxx): apply ENUM policy also to Setup and Facility messages
- BUGFIX(gk.cxx): fix crash when setting a non-writable trace file in the config file
- improved bandwith management: calls that exceed the bandwidth limit
will be allowed with reduced bandwith instead of rejected
- limit bandwidth per call: [Gatekeeper::Main] MinimumBandwidthPerCall= and MaximumBandwidthPerCall=
- limit bandwidth for registered endpoints with [EP::...] MaxBandwidth=
- change to the format of [Gatekeeper::Main] AlternateGKs=
- new config section [RasSrv::AlternateGatekeeper] for alternate gatekeeper configuration by endpoint IP
- new config section [Routing::Explicit] to define mappings for IP dialing
- include BMV, a web front-end for SQLBill (in contrib/bmv2/)
- new config section [ReplyToRasAddress]
- BUGFIX(RasSrv.cxx): fix multicast discovery
- document status port command: DisconnectEndpoint
- H.450.2 emulater extended for unregistered calls
- new switch: [CTI::MakeCall]TransferMethod=
- added vendor string in RouteRequest event
- extended status port commands RouteToAlias/RouteToGateway/BindAndRouteToGateway with caller-ID parameter
- updated status port command: TransferCall by call-id and with transfer method
- new status port command: DisconnectCallId
- BUGFIX(GkClient.cxx) signal change of destination alias in parent policy
- gatekeeper-based TCS=0 call transfer: activated through H.450.2 emulator
or new status port command RerouteCall
- BUGFIX(yasocket.cxx, RasTbl.cxx) don't accept new calls or retry calls when shutdown is
in progress, avoids possible crash
- BUGFIX(Routing.cxx) check if routing policies have been configured, before using them
- BUGFIX(ProxyChannel.cxx) only rewrite sourceCallSignalAddress if proxying
- BUGFIX(ProxyChannel.cxx) fix NAT detection for unregistered callers
- BUGFIX(RasTbl.cxx) fire unregister event also when endpoint expired
- BUGFIX(Toolkit.cxx) fix order of home IPs
- display H323Plus and PTLib version in GnuGk's version string
Changes from 2.3.1 to 2.3.2
===========================
- new GKClient supports SRV lookup on registrations
- BUGFIX(RasSrv.cxx) set unresolved interface to the default gateway IP as first is loopback on windows
- BUGFIX(Toolkit.cxx) Setting ExternalIP when behind a NAT on a private network
- BUGFIX(ProxyChannel.cxx) fix memory leak in BuildReceiverReport()
- new status port command BindAndRouteToGateway
- new setting [Neighbor::...] SendAliases= to specify aliases to send to the neighbor
- new setting [EP::...] AddNumbers= to add numeric aliases to an endpoint
- new variable for sql routing: %{client-auth-id}
- new switch [RoutedMode]RemoveFaxUDPOptionsFromRM=1 to remove t38FaxUdpOptions
from t38FaxProfile eg. for Avaya Communication Manager (thanks Denis Kochmashev)
- BUGFIX(Toolkit.cxx) consider H245Routed setting for implied [ModeSelection]
rules for internal networks (based on patch by Denis Kochmashev)
- BUGFIX(Toolkit.cxx) make sure explicit [ModeSelection] rules override implied
rules for internal networks
- BUGFIX(RasSrv.cxx) don't start GnuGk, if we can't open a signaling port in routed mode
- BUGFIX(gksql_mysql.cxx) make sure /etc/my.cnf gets read
- changed default for [CTI::MakeCall]UseH450= to 0 (supported by more endpoints)
- new switch [RoutedMode]NATStdMin for registering endpoints behind NAT to support NAT standard.
- extend statusport commands UnregisterIP and DisconnectIP to find endpoints on non-standard ports
- BUGFIX(GkClient.cxx) fix race condition when unregistering child
- BUGFIX(GkClient.h) fix memory leak
- rewrite srv policy, add handling of LRQs and Setups
- BUGFIX(Neighbor.cxx) fix memory leaks in neighbor, srv and rds policy
- more presence work added
- added H.460.24 Annex B support
- add new accounting events: AcctAlert, AcctRegister, AcctUnregister
- BUGFIX(ProxyChannel.cxx, gkauth.cxx) always check if DecodeSubType() was successfull
before using the result value
- BUGFIX(ProxyChannel.cxx) remove supportedFeature H.460.19 from Setup when called party
doesn't support it
- added support for multiple DefaultDomains
Changes from 2.3.0 to 2.3.1
===========================
- Firebird database driver updated for Firebird 2.0.x and 2.1.x
- BUGFIX(Toolkit.cxx) don't ignore ExternalIP settings when NetworkInterfaces= is set
- BUGFIX(SoftPBX.cxx) make response messages more consistent
- the old format (2.0) to specify neighbor gatekeepers is deprecated now and has been
removed from the manual; it still works, but may be removed from future versions
- BUGFIX(ProxyChannel.cxx) only close endpoints logical channel on CloseLogicalChannel, use
[Proxy]SearchBothSidesOnCLC=1 to retain the old behavior
- BUGFIX(Toolkit.cxx) Enable RewritePString to rewrite address correctly if unregistered full URI.
- BUGFIX(Neighbor.cxx) srv policy now fails calls and doesn't pass them to the next policy
if a SRV record exists for a domain, but doesn't have a destination for the call
- allow to set proxy mode through 'proxy' variable in Radius h323-ivr-in attribute (thanks to Yuriy Georgiewskiy)
- BUGFIX(Routing.cxx) let dns policy handle LRQs that resolve locally, so URI dialing from neighbors works
- the manual has been improved (thanks to Robert Kulagowski)
- set Radius VSA attribute h323_rtp_proxy in stop event (thanks to Yuriy Georgiewskiy)
- BUGFIX(ProxyChannel.cxx) fix memory leak when creation of a fastStart channel fails
- status port command DisconnectIP now also works with unregistered endpoints using the std port
- BUGFIX(ProxyChannel.cxx) fix handling of H.460.19 RTP keepalive packets
- new switch [Proxy]DisableRTPQueueing=1
- BUGFIX(ProxyChannel.cxx) fully initialize UDP proxy IPs and ports
- BUGFIX(Routing.cxx) don't apply dns policy to aliases of type dialedDigits
- BUGFIX(Toolkit.h/.cxx) use default IP for networks specified in InternalNetwork=, not ExternalIP
- enable data execution protection on Windows versions that support it (starting with XP SP3)
- BUGFIX(gk.cxx) make sure Windows service writes same trace format as application (including file and line)
- BUGFIX(Neighbor.cxx) fix memory leak in srv policy, only send the local part of the alias in the LRQ
- new switch [RoutedMode]H46018NoNat to disable H.460.18 if no NAT detected (default enabled)
- new routing policy 'catchall' to route all calls to one alias or IP
- new Radius attributes on stop: h323pddtime, h323ringtime, h323routeattempts
- BUGFIX(Neighbor.cxx) fix srv policy for direct mode, don't send LRQ if SRV points to us
- new switch [RoutedMode]TranslateSorensonSourceInfo=1 to convert the Sorenson VP200 caller information
- BUGFIX(GkStatus.cxx) don't flush status port socket when access is denied to avoid blocking
- new switches in [Gatekeeper::Main]: CompareAliasType and CompareAliasCase to switch off
alias type and case matching
- BUGFIX(Routing.cxx) fix dns policy for direct mode
- BUGFIX(Neighbor.cxx) try next policy if SRV lookup fails
- neighbor type (GnuGk|CiscoGk|ClarentGk|GlonetGk) is now case insensitive
- features documented: [AssignedAliases::SQL], [AssignedGatekeepers::SQL] and [GkQoSMonitor::SQL]
- BUGFIX(RasTbl.cxx) use rewritten number when decrementing prefix capacity counters, so they match the increment
- feature to set a ClientAuthId in SqlAuth that is provided as %{client-auth-id} on all accounting events
- new status port command ResetCallCounters
- changed ProxyForSameNAT default from 0 to 1 (to avoid media failure uncertainty)
- BUGFIX(RasSrv.cxx) IsReachable looks at correct route table. (virtual was ignored)
- changed [RoutedMode]EnableH46024= to be consistent with H.460.18 switch
- BUGFIX(RasSrv.cxx) RCF messages H.460 features now supported Features not GenericData
- BUGFIX(ProxyChannel.cxx) H.460.19 working with Fast Connect
- BUGFIX(RasSrv.cxx,ProxyChannel.cxx) Tandberg MXP interoperability fixes
- BUGFIX(ProxyChannel.cxx) check capacity on routes supplied by authenticators (Radius, SQL etc.)
- BUGFIX(RasSrv.cxx) avoid cutting off status messages after 1000 chars (problem in PString::Printf)
- BUGFIX(ProxyChannel.cxx) fix for fastStart with H.460.19
- new switch [RoutedMode]EnableH.460.24=, which defaults to OFF
- send RTCP statistics to Radius server (thanks to Yuriy Georgiewskiy)
- BUGFIX(Toolkit.cxx) fix a crash in RewriteE164() when casting aliases
- new config section [ModeSelection] to specify the routing/proxy mode by IP network
Changes from 2.2.8 to 2.3.0
===========================
- codec filtering using [CallTable]DisableCodecs= or Radius (based on a patch by Georgiewskiy Yuriy)
- H.460.18 and H.460.19 support
- BUGFIX(Routing.cxx) fix round-robin that broke in 2.2.8
- new switch [Gatekeeper::Main]DisconnectCallsOnShutdown=0 to avoid disconnecting calls on shutdown
- new switch: [Proxy] ProxyAlways=1
- new variable for sql routing: %{Calling-Station-Id}
- BUGFIX(RasTbl.cxx) fix pointer check in SingleGatekeeper()
- BUGFIX(RasSrv.h) fix memory leak in assignedGK code
- BUGFIX(ProxyChannel.cxx) only set CallInProgress on Alerting and Connect so a 3rd and following
routes can be tried on failover even when DisableRetryChecks is not set
- BUGFIX(ProxyChannel.cxx) make sure the DisableRetryChecks switch also covers the cases
where the remote side didn't accept the call (without a ReleaseComplete)
- new switch [SimplePasswordAuth]DisableAlgorithm= to disable H.235 algorithms
- re-enable H.235.1 (Annex D / Baseline Profile) when compiling against OpenH323 < 1.19.x or H323Plus
- BUGFIX(gkauth.cxx) fix CAT authentication when compiling against OpenH323 < 1.19.x or H323Plus
Changes from 2.2.7 to 2.2.8
===========================
- new RadAcct attribute: RewriteE164
- enable multiple failover routes with sql routing policy
- BUGFIX(RasTbl.*) %{last-cdr} was wrong if last call succeeded
- forward the destCallSignalAddress in ARQs to the parent gatekeeper
(set [Endpoint]ForwardDestIp=0 to get the old behavior)
- BUGFIX(RasTbl.cxx) never overwrite dialed_number after is has been set
- BUGFIX(RasSrv.cxx) add check to avoid crash on GRQ
- BUGFIX(ProxyChannel.cxx) fix reading of fragmented TPKT packets
- new switches Called/CallingPlanOfNumber in [RoutedMode] and [EP::...] to set numbering plan
- enable SRV policy for all OpenH323 versions as long as DNS services are available
- global switches for TranslateReceivedQ931Cause and TranslateSentQ931Cause in [RoutedMode],
similar to those in [EP::...]
- BUGFIX(ProxyChannel.cxx) supress 2nd acct start event for 2nd Setup with same callid
- allow outbound number rewrite through SQL/RADIUS modules
- rewrite also aliases of type partyNumber (public and private), don't change alias type during rewrite
- BUGFIX(MakeCall.cxx) MakeCall didn't work on Windows
- implemented status port gai/gci commands for SQLAcct, SQLAuth, SQLPasswordAuth and SQLAliasAuth modules
- BUGFIX(capctrl.cxx) added a missing lock during config reload for CapacityControl module
- BUGFIX InternalPolicy should set a reject reason to something like gatewayResources/resourcesUnavailable
instead of calledPartyNotRegistered when terminating gateways were found, but there was no capacity
- BUGFIX(gksql.cxx) SQL reconnect thread-safety fixes
- new q931cause variable in SQLAuth module
- status port connection can now be closed with Ctrl-D (instead of 'exit')
- selective reload on the status port: Reload <AcctConfig|AuthConfig|CapConfig|EpConfig>
- BUGFIX(radauth.cxx) fixed crash in processing h323-redirect-ip
when no h323-redirect-number is present
- BUGFIX (RasTbl.cxx) read GWPrefixes even if there is an EP:: section for this endpoint
- BUGFIX (GkStatus.cxx) make sure status port threads don't share string memory with other threads
- new compile option COMPILE_AS_SERVICE to create a native Windows service
- new config options [Logfile]Filename=, [Gatekeeper::Main]TraceLevel= (same as -o and -t on cmd line)
- BUGFIX (ProxyChannel.cxx) always check m_call in H.450.2 call transfer emulator
- allow mutiple results per query from MySQL (and ignore all after the first)
needed for using strored procedures (patch by Matteo Piscitelli)
- Added Bind INI setting to set the default interface for multihomed virtual servers.
- BUGFIX (Toolkit.cxx) on reload, check if new config is not empty (Fortytwo=42)
- BUGFIX (ProxyChannel.cxx) add NULL pointer checks to avoid crashes
- CapacityControl H.323 Id rules work now also for SetupUnreg calls
- BUGFIX (ProxyChannel.cxx) make sure Q.931 cause is included in generated ReleaseComplete
- new ^= and /= RewriteCLI rules for H.323 ID only rewritting
- new getauthinfo/getacctinfo status port commands
- Changed P2Pnat from H.460 OID to the standard allocated H.460.23/24
- BUGFIX(RasTbl.cxx): dynamically registered prefixes are added with the GatewayPriority
- BUGFIX(GkClient.cxx): use [Endpoint] Type= setting for GRQ, not only for RRQ
- merged P2Pnat support
- added first cut of Presence support
- set radius release-source attribute in stop accounting packet, like %r in sqlacct
- ./configure support for Windows
- new database driver 'SQLite'
- new database driver 'ODBC'
- auto-reconnect on database errors (for all database drivers)
- allow setting a reject reason when rejecting using the sql policy
Changes from 2.2.6 to 2.2.7
===========================
- clarified optional rule effect on auth modules, new "alternative" rule added
WARNING: semantics of optional rules has changed slightly
- BUGFIX(gk.cxx) don't look for the default config file gatekeeper.ini if -c switch is given
- BUGFIX(RasTbl.cxx) honor setting of Called/CallingTypeOfNumber in [EP::..] section (patch by Mauricio Nuñez)
- BUGFIX(Toolkit.cxx) fix detection of default IP when host has a default route, but no default gateway
- SQLBill: implement fixed per-call billing
- BUGFIX(contrib/sqlbill/sql/src/upgrade_tables.sql): fix wrong foreign key reference
- implement SendProceeding command on status port (experimental)
- BUGFIX(Routing.*): calls from registered endpoints to IPs should match vqueue ^.*$
- added cause code translation (see [EP::..] TranslateReceivedQ931Cause and TranslateSentQ931Cause)
- Added H.450 Call Transfer emulator [RoutedMode] EnableH450.2=1
- implement MakeCall command on status port
- BUGFIX SRV policy correctly detects E.164 number.
- BUGFIX Radius module now sent public IP of endpoints behind NAT.
- new switches [RoutedMode] GenerateCallProceeding, UseProvisionalRespToH245Tunneling (experimental)
- new SQLAUth variable %{CallId}
- BUGFIX(RasTbl.*,SoftPBX.cxx) status port commands (find,disconnectcall,transfercall) could influence round-robin order
- enable auto-reconnect for MySQL >= 5.0
- BUGFIX(capctrl.cxx) counters were incorrectly updated for H.323ID and CLI rules
- Added %{CallLink} SQL parameter for correct billing of H.450 call transfer
- BUGFIX (proxychannel.cxx) Detect call signalling is using H.245 Tunneling but says it doesn't
- BUGFIX (RasSrv.cxx) Endpoint registered on same machine as GnuGk should not be treated as being NAT.
- added H.460.interop support for interworking of NetMeeting with everything else (req. OpenH323 v1.19.5)
- added [GkQoSMonitor] H.460.9 realtime QoS monitoring (req. OpenH323 v1.19.5)
- BUGFIX (statusacct.*) output callID in same format as other status port events (spaces replaced with dashes)
- new status port command: printcc
- BUGFIX (RasTbl.cxx) preserve internal call number for each failed call record
if we have SingleFailoverCDR option enabled. This allow CapacityControl and other
modules to work fine with failover enabled
- BUGFIX (RasTbl.cxx) don't send URQ to permanent endpoints on shutdown
- BUGFIX (Routing.cxx) fix LRQ canMapAlias detection for vqueue
- BUGFIX (RasTbl.cxx) added missing include file for H.350 support
- added Prefix support for MCU's
- extend virtual queue functionality to unregistered calls (anonymous sponsor)
- remove SignalCallId switch, now call ID is always sent with status port events
- new status port command: PrintPrefixCapacities/printpc
- implement rate limiting, configured by CpsLimit and CpsCheckInterval in the [RoutedMode] section, defaults to OFF
- BUGFIX (RasSrv.cxx, GkClient.cxx) deal better with having no RAS interfaces at all
- BUGFIX (RasSrv.cxx) ensure compatibility with PWLib < 1.9.3
- new 'sql' routing policy configured via [Routing::Sql], sponsored by CoProSys
- BUGFIX (RasTbl.cxx) fix race condition where same call number could be assigned multiple times
- BUGFIX (RasTbl.cxx) avoid memory reference in AliasTypeFilter that causes crash on endpoint delete
- Added [GkH350::Settings] H.350 LDAP directory support (req. OpenLDAP,OpenH323 v1.19.5)
- Added H.350 Authenticator module (req. OpenLDAP,OpenH323 v1.19.5)
- new accounting variable %{bandwidth}
- allow Radius server to send multiple destinations in "h323-redirect-number" attribute for call failover (patch by Lucas Martinez)
- Added Alias Filter via [RasSrv::RRQFeatures] AliasTypeFilter
- Added RDS (resolver discovery service) Routing policy
- BUGFIX (RasTbl.cxx) check route capacity just before it is used for failover, not only at the beginning of the call (patch by Vladimir Voronin)
- Added HTTP Service control via [RasSrv::RRQFeatures] AccHTTPLink
- BUGFIX (GkStatus.cxx) add semicolon after status port 'debug cfg' output for consistency
- Added [RasSrv::AssignedAlias] to gatekeeper assign aliases
- Added [RasSrv::AssignedGKs] to assign gatekeepers based on alias or IP.(req. H.323v6)
- Added [Gatekeeper::Main] Authenticators option to select which authenticators to use. (req. openh323 v1.19)
- BUGFIX (ProxyChannel.cxx) Finally fixed same nat bug with GnuGk NAT method
- [EP::xxx] PrefixCapacities: limit capacity by prefix on an endpoint
- BUGFIX (gkauth.cxx) Fixed H.235.1 Authenticator
- [RoutedMode] added ENUMservers setting
Changes from 2.2.5 to 2.2.6
===========================
- BUGFIX(toolkit.cxx) Fixed DefaultDomain Alias rewrite
- BUGFIX(routing.cxx) ENUM policy not to be used with LRQ
- BUGFIX(Neighbors.cxx) Fixed SRV policy to try both CS and LR records and not use with LRQ request
- remove ArjReasonRouteCallToSCN (was inactive + broken for a long time)
- BUGFIX(Toolkit.cxx) enable SQLConfig also if only Firebird is available
- BUGFIX(RasTbl.cxx) reject the call if no gateway has capacity, don't just use the first matching gateway
- BUGFIX(RasTbl.cxx) the first route was duplicated and a call was sent twice to the same gw.
Thanks to Alex Golyshev for pointing this out!
- BUGFIX(RasSrv.cxx) fixed crash inside IRR handler
- BUGFIX(yasocket.cxx) due to recent changes, it was impossible to send
more than 10240 bytes of data when data queuing had to be involved
- move status port examples to contrib/statusport/
- fix nonStandardData field usage, make use of assigned T.35 codes
- BUGFIX(RasTbl.cxx) ensure that full gateways are eliminated, when failover
is active and remaining gateways are sorted due to their priority correctly
- BUGFIX(ProxyChannel.cxx) preserve presentation and screening indicators
in Calling-Party-Number IEs
- BUGFIX(RasTbl.cxx) restore default value for capacity and priority
on config reload, if removed from an EP section (or if the whole section
has been removed)
- BUGFIX(Neighbor.cxx,ProxyChannel.cxx): fix canMapAlias for LRQs with
unregistered endpoints
- new config section [H225toQ931] to change the H.225 reason to Q.931
cause code mapping
- optional priorities for gateway prefixes: gw-alias=prefix[:=priority][,prefix[:=priority],...] (patch by Alex Golyshev and Andrey Pasukov)
- change default value for CallSignalHandler to 5
- BUGFIX(Toolkit.cxx): fix for calling between 2 internal networks
- Added AcceptNonNeighborLCF to LRQFeatures settings
- Added GnuGk OID & T.35 Codes
- BUGFIX(Toolkit.cxx): fix to allow URI rewriting on ARQ processing
- BUGFIX(ProxyChannel.cxx): fix to show correct Setup CallSignallingAddress when behind NAT
- Added RemoveH235Call & RemoveH460Call Settings
- BUGFIX(ProxyChannel.cxx): H.245 addresses being incorrectly written in NATHandler for public proxies.
Changes from 2.2.4 to 2.2.5
===========================
- RADIUS AAA module now handles a Class attribute correctly
- BUGFIX(clirw.cxx) missing iterator check, that could cause an invalid
memory access, fixed - thanks to Vladimir Voronin
- implement optional call-id parameter for Routing commands
- Bugfix(RasSrv.cxx) fix SignalCallID=1
- Bugfix(Proxychannel.cxx) avoid inserting same socket twice in cleanup list
- Bugfix(Proxychannel.cxx) make sure all members of CallSignalSocket are
initialized on creation
- Bugfix(yasocket.cxx) send very large status port messages
in 10KB chunks and sleep after each
- new feature: StatusPort filtering by Doron Bleiberg
- new switch: [RoutedMode]DisableRetryChecks retries all calls
- BUGFIX(ProxyChannel.cxx) make sure we preserve the original Setup message for
retries and not only copy the buffer address
- Bugfix(Neighbor.cxx) copy canMapAlias when forwarding LRQs
- implement virtual queues for LRQs sponsored by Associated Engineering Srl.
- implement canMapAlias for LCFs sponsored by TelecomUnity Ltd.
- copy all unknown IEs in Notify messages when forwarding
(fixes some failed transfers)
- BUGFIX(*.cxx) set all deleted pointers to NULL
- new SyslogAcct accounting module for the Unix syslog
- (gkauth.cxx)Reapplied H235.1 (formally known as H235AnnexA) by using OpenH323 Authenticator factory loader
- (rassrv.cxx)Registration Priority Added
- (Proxychannel.cxx)TreatUnregisteredNat added. Treat unregistered calls unknown NAT status as being NAT
- (routing.cxx)DNS SRV support to DNS Routing policy
- (toolkit.cxx)RewriteAlias section added
- BUGFIX(ProxyChannel.cxx) WaitAndSignal added to OnInformation to avoid NAT support crash.
- BUGFIX(ProxyChannel.cxx) Check for NATSupport added.
- BUGFIX(RasTbl.cxx) WaitAndSignal added to FindByEndPointid()
- BUGFIX(ProxyChannel.cxx) Added SupportCallingNATedEndpoints.
- Moved DNS SRV to it's own seperate policy
- Registration pre-emption support added
- Support for EP's on dynamic IP's
- fixed code to compile with the latest pwlib CVS (STL string conversion)
- Added support for GnuGk to work behind NAT box
- Added support for Third party (non-neighbor) Gatekeepers (AcceptNonNeighborLRQ=1)
- Added auto-detection on internal network for proxy mode.
- Added DefaultDomain for H323 URI rewriting
Changes from 2.2.3 to 2.2.4
===========================
- new Calling/CalledTypeOfNumber and Proxy configuration variables
in [RouteMode] section and endpoint configuration. Thanks to Vladimir Voronin
- (ipauth.cxx) added support for prefixes. Thanks to Vladimir Voronin
- (gksql_firebird.cxx) Firebird/Interbase driver for SQL modules. Sponsored
by Roitel Telecommunication S.A.
- (Routing.cxx) NumberAnalysis routing policy can handle Setup messages now.
Thanks to Vladimir (vl@kamatele.com)
- (pwlib_compat.h) adapt to changed mutexes starting with PWLib 1.9.2
- call mute in proxy mode using userinput * (patch by Simon Horne)
- NAT support for unregistered callers (patch by Simon Horne)
- (gk.cxx) allow correct spelling for FortyTwo=42 entry
- BUGFIX(yasocket.h) fix compilation with gcc 4.1
- (clirw.cxx) process CLI ranges with leading zeros correctly
- new CapacityControl auth/acct modules to control inbound traffic
- BUGFIX(ProxyChannel.cxx) check added for a NULL pointer in NAT traversal code
- (RasTbl.cxx) default SignalTimeout value increased from 15 to 30 seconds
- BUGFIX(RasSrv.cxx) remove call records correctly in direct signaling mode,
when only called party is registered. Thanks to Julius Bajzik
- BUGFIX(RasTbl.cxx) fixed race condition when accessing endpoint records
- BUGFIX(ProxyChannel.cxx) fixed race condition in H245Socket when H.245
tunneling is disabled
- (configure) better detection of PostgreSQL on FreeBSD
- BUGFIX(RasSrv.cxx) allow bandwidth=0 in ARQ / ACF
- BUGFIX(ProxyChannel.cxx) fix bug when using RADIUS/SQL based routing
for Setup messages
- BUGFIX(ProxyChannel.cxx) check for poor NAT implementations, that might
have crashed GnuGk (by Simon Horne)
- new accounting variables: %{media-oip}, %{codec}
- new accounting variables: %{call-attemps}, %{last-cdr}, %{caller/callee-epid}
- new feature: call failover (see manual)
- BUGFIX(clirw.cxx) set presentationIndicator correctly in H.225.0 Setup UUIE
- BUGFIX(RasTbl.h) when active, perform IRR checks for local
endpoints only, others (parent, neighbor etc.) won't send us IRRs
- BUGFIX(Routing.cxx) remove leading zeros for ENUM queries
- BUGFIX(RasSrv.cxx) have AcceptNeighborsCalls default to 1 like
the documentation always said
- BUGFIX(Routing.cxx) fix ENUMPolicy implementation
- new StatusAcct accounting module for the status port sponsored by Grupo Isec
Changes from 2.2.2 to 2.2.3
===========================
- (ProxyChannel.cxx) use Calling-Party-Number to perform inbound per-gateway number rewrite
(GWRewriteE164), if no sourceAddress is present in H.225.0 Setup UUIE
- IRR checking for active calls [CallTable] IRRFrequency=n, IRRCheck=TRUE
- BUGFIX(RasSrv.cxx) terminate all calls before unregistering endpoint
when OverwriteEPOnSameAddress=1
- new RewriteCLI options to control CLIR features precisely
- new CLIR/CLIP (Calling Line Identification Restriction/Presentation) features in
RewriteCLI module. Ability to hide CLI (enable CLIR/CLIP) per endpoint
- Unix man page in the docs folder by Ivan Lopez <ilopez@enress.gov.ar>
- do not leave sockets open when proxy handlers are idle. Peform proper cleanup
all the time
- manual updated with notes on TIME_WAIT and Q931PortRange/H245PortRange/T120PortRange
- new SocketCleanupTimeout config variable to control time to wait before
a socket is deleted
- more reliable port allocation making better call throughput better on a heavily
loaded server or when using very small port ranges
- more detailed description of network operations
- if Home contains a single IP address, bind RTP sockets to this specific address,
instead of INADDR_ANY
- do not remove addresses specified in Home that are not found in PWLib interface table,
just generate a warning
- BUGFIX(clirw.cxx) random rewrite did not work for outbound rules and comma separated items
- Solaris compilation errors fixed, thanks to Mikko Oilinki
- BUGFIX(yasocket.cxx) fixed address reuse for UDP sockets in LARGE_FDSET mode,
broadcast RAS socket did not work previously
- better error reporting on socket allocation
- new ENUM routing policy from Simon Horne
- added check for PWLib/OpenH323 minimum version supported
- optionally signal call ids in the status port with ACF/ARJ/DCF/DRJ/RouteRequest
messages (switch on with SignalCallIds=1 in main section)
- NetMeeting compatibility problems fixed
- new [RasSrv::RRQFeatures] IRQPollCount config variable, default number
of "poll" IRQ messages changed from 2 to 1
- FileIPAuth module moved from the contrib section into the main branch
- BUGFIX(ProxyChannel.cxx) tunnelled H.245 messages were not processed
correctly
Changes from 2.2.1 to 2.2.2
===========================
- allow empty key values in SQLConfig ConfigQuery/RewriteE164Query
- restored MSVC6.0 compatibility
- BUGFIX(radproto.cxx) GetSocket could use an invalidated iterators
under some circumstances. Thanks to kubuqi cn
- (ProxyChannel.cxx) ignore incorrect mediaChannel offers with port number 0,
internal option [Proxy] RemoveMCInFastStartTransmitOffer to enable removing
mediaChannel from fast start transmit channel open offers
- creditamout and billingmode fields may appear in a result for SQLAuth CallQuery
- exclude all SQL modules from build if no SQL support is enabled
- BUGFIX(ProxyChannel.cxx) originate an H.245 TCP connection from the same IP
as an associated signalling connection is established
- (clirw.cxx) new CLI rewrite types - prefix replacement (*=) and an identity
match (~=)
- don't lock the call table when logging accounting data on call disconnect,
to prevent gatekeeper long lock periods when a backend is not working properly
- new TranslateFacility config variable to enable Facility message conversion
between H.323v4 and previous versions of the protocol
- %t, %p, %{ring-time}, %{alerting-time} accounting variables ported from 2.0
branch. ConnectTimeout config variable replaced with SignalTimeout and AlertingTimeout
- new %r accounting variable to get who disconnected a call, thanks to Freddy Parra
- new generic SQLAuth module to authenticate and authorize RRQ, ARQ, LRQ and Setup messages
- BUGFIX(ProxyChannel.cxx) another attempt to solve race issues in H.245 routed
mode that may cause occasional crashes
- new --core command line argument to enable core dump generation for Unix
- new Vendor config variable for [Endpoint] section to provide vendor specific
extensions when registering with a parent gatekeeper
- added support for Connect event in SqlAcct module, thanks to Boian Bonev
- BUGFIX(Neighbor.cxx) nonStandardData field was not included for CiscoGK neighbors
- a new module to rewrite ANI/CLI numbers. Sponsored by Gabriel Georgescu.
- new FreeBSD 5.3 startup script
- BUGFIX(ProxyChannel.cxx) send proper Release Complete when the remote side
does not respond to a Setup message
- BUGFIX(ProxyChannel.cxx) correctly remove calls from the call table,
when setup processing fails for some reason (auth failed, acct failed, ...)
- BUGFIX(ProxyChannel.cxx) fixed config reload deadlock when using H.245
routed mode and listening sockets are holding the config reload mutex
- (Routing.cxx) new routing policy NumberAnalysis to support overlapped digit
sending with ARQs
- WinSvc from Franz J Ehrengruber updated to work with GnuGk 2.2.2 and 2.0.10
- new FileIPAuth module in the contrib/ipauth directory
- (RasTbl.cxx) call accounting updates/disconnecting is now more robust
and does not lock up the call table and (effectively) the gatekeeper
for long time periods
- Makefile for docs, make sure generated PDF manual is searchable
- do not support mutiple rewrite targets, as this feature does not work well
if rewrite is performed more than once
- BUGFIX(GkStatus.cxx) the gatekeeper could crash if the connection
was closed before the welcome message has been sent
- BIGFIX(gkacct.cxx) different Username was reported during Setup auth
and acct step, if no sourceAddress has been present for an unregistered call
- more missing config reload locks added to allow seamless config reload
- BUGFIX(ProxyChannel.cxx) the code could reference an invalid H.245 socket
due to recent changes
- BUGFIX(h323util.cxx) conference/call-id could get incorrectly converted
to a string with some compilers
- (Routing.cxx) ability to do per-call proxy mode control from routing handlers
- BUGFIX(ProxyChannel.cxx) fixed race condition between signaling/H.245 channel
closure
- parts of signalling code rewritten
- default value for config variable ForwardOnFacility changed to 0
- BUGFIX(ProxyChannel.cxx) inbound rewrite code did not check for presence
of sourceCallSignalAddress field in Setup messages. Use real peer IP instead
- ability to encrypt all passwords in the config (radius shared secrets,
database passwords). A new EncryptAllPasswords config variable and KeyFilled
usage extended
- SQLConfig ported from 2.0
- BUGFIX(radauth.cxx) Framed-IP-Address could not be determined
for unregistered calls with no Setup-UUIE.sourceCallSignalAddress field,
causing authentication to fail
- (ProxyChannel.cxx) small optimizations in signaling handling
- fixed bug with aliases handling in various places, introduced by recent changes
- BUGFIX(Toolkit.cxx) correct handling of '!' character in rewrite rules
- provide proper handling of aliases of type partyNumber (e164Number or privateNumber)
- BUGFIX(ProxyChannel.cxx) fix for RTP/Q931/H245/T120PortRange
to correct a bug with port range wraparound if the last port is 65535.
This caused a next port to be set to 0 and any subsequent port allocation
to fail
- BUGFIX(ProxyChannel.cxx) dynamic allocation of RTP ports did not work,
use a fixed range 1024-65535 as a default for RTPPortRange config variable
- (RasTbl.cxx) LRQs received on a multicast interface triggered LCFs
with an invalid signalling port number (0) in signalling routed mode
- get rid of redundant config reload mutex inside accounting modules
- obsolete auth modules MySQLAliasAuth and MySQLPasswordAuth are now removed
- (GkStatus.cxx) fixed a missing lock during config reload
- accept LRQs from any port (check only an IP address)
- SQL modules accept only one database host now (the failover was not supported
properly either, so it has been removed)
Changes from 2.2.0 to 2.2.1
===========================
- enchanced prefix matching for routing policies. A dot (.) matches any digit
- enchanced prefix matching for neighbors. A dot (.) matches any digit,
! at the beginning disables the prefix
- (ProxyChannel.cxx) critical fix - a missing lock during config reload
caused the gatekeeper to crash
- (ProxyChannel.cxx) more reliable port number selection for Q.931, H.245,
T.120 and RTP port ranges (before, a config reload could cause many calls
to fail because of unability to get a new socket)
- (ProxyChannel.cxx) default setting for RTPPortRange is now to let the OS select a port number
- more flexible rewrite rules (both global and per-gw) with '.' and '%'
wildcard characters
- security fix for socket handle/select oveflow issue
- new accounting event 'connect' (only in routed mode)
- timestamp microseconds field has a fixed length of 3 digits
- enchanced prefix matching for gateways. A dot (.) matches any digit,
! at the beginning disables the prefix
- BUGFIX(radproto.cxx) VSA matching routing ignored a vendor identifier
causing incorrect attributes to be matched
- insert missing Calling-Party-Number-IE/Display-IE if corresponing
Screen... options are enabled
- shutdown the gatekeeper if there are errors in SQL auth/acct modules
configuration, thanks to Mikko Oilinki
- (gkslq.cxx) try to reconnect to the database, if the initial attempt
failed. Thanks to Mikko Oilinki
- another changes to Calling/Called-Station-Id handling, always use
Calling/Called-Party-Number IEs when available. Calling/Called-Station-Id
is now set outside auth modules, so acct modules receive correct
values, independetly of auth modules usage
- BUGFIX(Toolkit.cxx) correctly replace %u in timestamps with number
of microseconds instead of passing %u to strftime
- ability to select Called-Station-Id number type between the original one
(dialed number) and the rewritten one. New UseDialedNumber config option
for RadAuth/RadAliasAuth/RadAcct modules, new %{Dialed-Number} variable
for SQLAcct and FileAcct modules
- ability to customize timestamp formats. New TimestampFormat config variables
for main, SqlAcct, RadAcct, FileAcct and CallTable sections
- (ProxyChannel.cxx) safety check before a signaling socket is actually deleted
for being removed from an associated call record
- new TcpKeepAlive option to remove problem with network errors and hanging
calls (see docs/keepalive.txt for more details)
- RadAuth/RadAliasAuth modules can now add/remove endpoint aliases during
endpoint registration (using h323-ivr-in=terminal-alias: Cisco AV-Pair)
- per-call proxy control
- new status port command RouteToGateway
Changes from 2.2beta5 to 2.2.0
==============================
- BUGFIX(RasSrv.cxx) invalid/unsupported RAS/signaling addresses are ignored
in RRQ messages
- GCC 3.4.2 compilation errors fixed
- BUGFIX(gkauth.cxx) PrefixAuth module crashed when checking ARQ without
a destinationInfo field
Changes from 2.2beta4 to 2.2beta5
=================================
- BUGFIX(ProxyChannel.cxx) race condition with NAT sockets fixed, thanks to Daniel Liu
- new RoundRobinGateways config option in the RasSrv::ARQFeatures sections
to enable/disable round-robin gateway selection
- call capacity limits and gateway prioritization (new EP:: config sections)
- BUGFIX(ProxyChannel.cxx) errors during H.245 channel establishment caused
calls to not disconnect correctly
- check VirtualQueueRegex on startup
- BUGFIX(gk.cxx) reopen a log file on reload (HUP) signal to allow logrotate
to manage logs
- BUGFIX(RasTbl.cxx) multithreading issues with an access to endpoint record
data fixed. Thanks to kubuqi cn!
- BUGFIX(ProxyChannel.cxx) RTP proxy handling moved to a separate RTP proxy
threads. New RtpHandlerNumber config option
- BUGFIX(yasocket.cxx) enabled REUSE_ADDRESS option on listening sockets
in non-LARGE_FDSET mode to allow fast gatekeeper restarting
- better disconnect cause reporting in Setup processing
- ability to set call destination in auth modules. RADIUS based call routing
- BUGFIX(Neighbor.cxx) fixed sourceInfo LRQ field handling - now it contains
an H.323 identifier of the gatekeeper
- (radproto.cxx) ability to set shared secrets for each radius server
separatelly, more Radius optimizations
- new, much faster, Radius client implementation. Thanks to Pavel Pavlov
for numerous ideas and suggestions!
- BUGFIX(ProxyChannel.cxx) Called-Party-Number-IE rewrite occured too late,
causing auth/acct modules to receive the original number instead of the rewritten one
- (RasSrv.cxx) duplicated RAS messages are now simply discarded
- BUGFIX(ProxyChannel.cxx) fixed proxying of RTP packets, so RTP sockets are
not closed on temporary errors (like remote socket not yet ready). This bug
affected especially NAT traversal and situation, when audio was sent very
early, when reverse proxy path has not been yet established
- BUGFIX(RasSrv.cxx) fixed handling of RRJ (fullRegistrationRequired)
from an alternate GnuGk
- BUGFIX(GkStatus.cxx) fixed bug in status client authentication introduced
by recent changes, thanks to Razvan Radu!
- (sqlbill) examples how to setup SQLAcct, SQLPasswordAuth and SQLAliasAuth
with the billing
- direct SQL accounting module (SQLAcct) ported from 2.0 branch
- BUGFIX(gkauth.cxx) gcc 2.95.x compilation errors fixed
- BUGFIX(Neighbor.cxx) handling reply messages (RIP/LCF/LRJ) from neighbors
fixed, thanks to kubuqi cn (kubuqi@hotmail.com)
- support for CallCreditServiceControl in RCF and ACF messages, which allows
reporting call duration limit and user's account balance to endpoints.
Currently RadAuth and RadAliasAuth modules support this feature.
- BUGFIX(gk.cxx) removed an invalid test for the log filename, preventing
from creating log files in a directory other than the current one
- BUGFIX(GkClient.cxx) TTL bug fixed (RRQ every second), documentation updates
- fixed assertions caused by attempts to get/set config keys with an empty key name
- BUGFIX(gk.cxx) fixed log file rotation under Windows, thanks to Cristian Bullokles!
- log file rotation, new LogFile config section, new setlog and rotatelog
status interface commands
- BUGFIX(gkacct.cxx) a fix to rotation interval calculation for monthly
CDR file rotation
- BUGFIX(gkacct.cxx) FileAcct monthly rotation rotated a CDR file unnecessary
on gatekeeper restart
- BUGFIX(gkacct.cxx) fixed a critical bug in Username determination
for unregistered endpoints, introduced by recent changes
- BUGFIX(RasSrv.cxx) do not include an invalid access token (with null object
identifier) in LCF to prevent interoperability problems, thanks to Andreas Sikkema!
- BUGFIX(ProxyChannel.cxx) better handling of multiple calls over a single
signalling channel by setting multipleCalls and maintainConnection
H.225.0 fields to FALSE in all messages. Thanks to Ian Campbell!
- better Username, Calling-Station-Id and Called-Station-Id determination,
consistant across all auth/acct modules, redundant code removed
- new Gatekeeper::Auth flag SetupUnreg to toggle Q.931 Setup authentication
for unregistered endpoints only
- IncludeEndpointIP flag for RadAuth, RadAliasAuth and RadAcct is obsolete,
these modules will always send Framed-IP-Address
- (sqlbill) reject gracefully Access-Requests without Framed-IP-Address
- (sqlbill) improvements for IP only authorization
- BUGFIX(sqlbill) FreeRadius accounting_stop_query changed to not check h323id
in order to allow IP only authorization
- BUGFIX(sqlbill) FreeRadius accounting_update_query changed to not check h323id
in order to allow IP only authorization
- (radacct.cxx) new RADIUS h323-ivr-out=h323-call-id parameter that contains
an H.323 Call Identifier
- BUGFIX(radauth.cxx) better Framed-IP-Address handling in RadAliasAuth Setup check
- BUGFIX (ProxyChannel.cxx) With a certain combination of endpoints it
was possible to have UDPProxySocket trying to forward incoming RTP /
RTCP trafic to 127.0.0.1:0. Added a check for this situation and send
traffic to non-loopback address and hope it is the correct address.
- (sqlbill) added ability to authenticate users only by their IP
(ignoring User-Name)
- BUGFIX(radauth.cxx) RadAliasAuth will use Calling-Party-Number as User-Name
if no sourceAddress inside is present in Setup-UUIE
- (sqlbill) new, more flexible tariff/rating engine
- BUGFIX(gk.cxx) fixed signal handling to use sigaction instead of signal
to prevent accidental gatekeeper crashes because of restored signal handlers
- BUGFIX(gkacct.cxx) rotation per number of lines works correctly now
Changes from 2.2beta3 to 2.2beta4
=================================
- BUGFIX(radauth.cxx) check if generalID matches one of endpoint's aliases
only when authenticating RRQ
- (gkacct.cxx) parametrized FileAcct CDR output
- BUGFIX(gkauth.cxx) do not declare H.235 Auth Procedure I support as it is
not fully implemented
- (RasSrv.cxx) do not copy nonStandardData field from RAS requests to RAS replies,
as it does not make any sense and cause interoperability problems with some
Cisco IOSes
- (yasocket.cxx) fixed a bug in TCPListener::IsTimeout() which prevented
GNUgk from running > 596 hours
- (ProxyChannel.cxx) fixed a critical bug with referencing already deleted
socket, when the remote party did not accept signalling tcp connection
- (ProxyChannel.cxx) more UDP proxy optimizations
- new flexible CDR file rotation for FileAcct module
- (gktimer.cxx) new generic support for time-based events
- BUGFIX(Routing.cxx) processing LRQ request should not apply round robin
selection to gateways with the same prefix
- BUGFIXes: make sure we delete list items _after_ we have removed
them from the list
- BUGFIX(RasTbl.cxx) make sure PrintCurrentCalls prints ACF messages
in the same format as all ACFs
- improved performance of the socket code (especially when LARGE_FDSET
is enabled). Faster select for a single socket and an unnecessary
write lock for UDP sockets removed
- BUGFIX(radproto.cxx) default auth/acct ports are now set to fixed values
1812 and 1813, due to problems with getservbyname and multithreading
- (gksql.cxx) improved SQL query parameters replacement routine
- removed descendancy check in radproto to allow compilation with the latest
RTTI enabled PWLib
- BUGFIX(Neighbor.cxx) fixed missing parentheses, thanks to kubuqi cn
- BUGFIX(h323util.cxx) GetIPAndPortFromTransportAddr now checks if the address
is valid
- BUGFIX(ProxyChannel.cxx) fixed bugs in ForwardCall, thanks to Daniel Liu
- header file usage more consistent
- SQL authenticators moved to a separate file
- added VSNET2003 sln and vcproj files
- fixed Windows DSP files to not enable some optimizations for Windows
that result in VC6 linker throwing away some gnugk modules (static variables)
- improved configure script to detect installed PWLib/OpenH323
- significant API changes to authentication/accounting modules
- added logparser application from Saad Faisal to the contrib section
- pgsqlauth removed from the contrib section, as it is obsolete now
- BUGFIX(Routing.cxx) the absense of a regexp for virtual queues wasn't detected
- BUGFIX(ProxyChannel.cxx) multiple calls over a single signalling channel
are now gracefully handled using ReleaseComplete with newConnectionNeeded code.
- (RasTbl.cxx) permanent endpoints are correctly reloaded now, with removal
of permanent endpoints for which config entries have been deleted
- (gkauth.cxx) depreciated ExternalPasswordAuth finally removed
- SQL engine rewritten completelly to use a concept of SQL driver.
New modules SQLPasswordAuth and SQLAliasAuth added. MySQL and PostgreSQL
drivers implemented. Funded by Doxum Technologies Inc.
Backward compatibility (MySQLAliasAuth and MySQLPasswordAuth) maintained.
- BUGFIX(Routing.h) fixed referencing to a temporary PString object
after it is destroyed
- better LOG_OFF Windows event handling to prevent gatekeeper shutdown
when user logs out. The patch from Franz J Ehrengruber
- added GNU Gatekeeper Service for Windows from Franz J Ehrengruber
- added Windows icon and version info from Franz J Ehrengruber
- (manual.sgml) corrected MySQLPasswordAuth, MySQLAliasAuth sections,
removed NeighborPasswordAuth documentation (not necessary anymore)
- (gkauth.cxx) fixed SimplePasswordAuth module to read settings from
[SimplePasswordAuth] section instead of [Password] section.
Fixed MySQLPasswordAuth module to accept CacheTimeout parameter.
Default CacheTimeout for MySQLPasswordAuth and MySQLAliasAuth set to 0
(do not cache passwords/aliases at all)
- applied the concept of output trace levels for the status interface.
It allows to select amount of information a status client receives
(level 0 - silent mode + reloads; level 1 - CDRs, RouteRequests, reloads;
level 2 - everything: the default mode)
- (GkStatus.cxx) some cleanup, better tracing, new trace command introduced
to support multiple output levels in the future
- added missing addpasswd Visual Studio project files (dsp and dsw)
- (configure.in) added check for MSG_NOSIGNAL flag support with send/recv calls
- (configure.in) better pwlib/openh323 detection patches from Klaus Kaempf
- (RasTbl.cxx) treat MCUs as gateways and allow MCUs to register prefixes
- (Toolkit.cxx) use in-place constructors and destructors inside RewriteData
to prevent Windows exceptions on rewrite rules reload in debug mode
- removed duplicated build timestamp from 'version' command output.
Added special file versionts.h to ensure version.cxx is rebuilt each
time GnuGk is recompiled, in order to get proper build timestamp
- (job.cxx) jobs simplified, optimised and checked for thread safety
- (version.cxx) modified to list all extensions in the version string
- (ProxyChannel.cxx) support for H.323 V4 provisionalRespToH245Tunneling
and parallelH245Control H.225.0 elements
- log rotation now maintains the original filename and stores rotated
log files with precise timestamp (YYYYMMDD_HHMMSS) to prevent overwritting.
Thanks to Rafael Costa dos Santos.
- added Q.931 Setup authentication to RadAuth module to allow
authentication based on crypto tokens carried inside Setup
- modified GkAuthenticator and RADIUS authenticators prototypes
to allow modifications of messages being processed
(NOTE: This may break compatibility with some customer derived classes)
- (ProxyChannel.cxx) RTP proxy fixed to not require RTCP channel
and work better with T.38 faxes
- (ProxyChannel.cxx) added new config parameter ScreenSourceAddress
to screen calling party aliases from UUIE Setup element
- added sample SQL/RADIUS billing example to the contrib directory
- removed Makefile to force users running configure script before compilation
- added per gateway E.164 rewriting of dialedDigits in addition to
global E.164 rewriting
Changes from 2.2beta2 to 2.2beta3
=================================
- addpasswd utility changed to require section name where the encrypted
username/password will be stored
- BUGFIX(gkauth.cxx) fixed call duration limit handling when multiple
authenticator modules are specified
- BUGFIX(gkacct.cxx) changed accounting reload handling to first cleanup
the old modules and then create the new ones. This allows the FileAcct
logger to work fine with the reload command
- BUGFIX(h323util.cxx) additional check for H225_TransportAddress
to prevent NULL pointer assertions. Thanks to Andrey Pankov!
- added Q.931/H.225 Setup authentication (RadAliasAuth module implementation)
- BUGFIX(radproto.cxx) fixed invalid signed/unsigned conversion that caused
some functions to return unexpected results
- BUGFIX(Neighbor.cxx) LCF is considered to come from a given neighbor
if either IP:PORT or neighbor identifier inside LCF nonstandarparam field matches
(was: neighbor identifier inside LCF nonstandarparam field or, if the field
is missing, IP:PORT)
- added PostgreSQL authenticator modules to the contrib directory
- API for AliasAuth has changed slightly
- better checking of tokens/cryptoTokens by SimplePasswordAuth derived authenticators
- BUGFIX(RasTbl.cxx) fixed NULL reference in CallRec::SetSocket - caused crash
in ForwardCall. Thanks to kubuqui cn!
- check ReleaseComplete for H225 reason field, if no Q.931 cause IE is found
- set disconnect cause to "normal call clearing" on DRQ received with normalDrop
disengageReason and no termination cause set
- BUGFIX(ProxyChannel.cxx) fixed h225 termination cause setting for ReleaseComplete
- better hop count handling for neighbors - now LRQ m_hopCount field
is forwarded/generated correctly, according to an original hop count
or a ForwardHopCount config settings
- small radius accounting/authentication module optimizations and better trace ouput
- changed handling of multiple accounting modules (added new "alternative" control)
- added new VirtualQueuePrefixes and VirtualQueueRegex config variables
to [CTI::Agents] section. These make possible to call virtual queue
not only with the exact alias name, but also with an alias that matches
configured prefixes or configured regular expression. Thanks to Max Speransky
- renamed config variable VirtualQueue to VirtualQueueAliases
(backward compatibility is maintained)
Changes from 2.2beta1 to 2.2beta2
=================================
- BUGFIX(RasTbl.cxx) fixed connect/disconnect time handling and call duration
calculation. Thanks to Aivis Olsteins
- BUGFIX(GkClient.cxx) changed SetPassword to fill LRQs with all recognized
tokens/cryptoTokens
- better disconnect cause handling
- BUGFIX(ProxyChannel.cxx) ReleaseComplete now always contains either CauseIE
or H225_ReleaseCompleteReason, because one of these fields is mandatory
- added status line improvements (command expansion, repeat last command,
backspace handling for windows) from Hu Yuxin
- BUGFIX(GkStatus.cxx) removed unimplemented "disconnect" and "unregister"
commands
- ACF is filled with destinationInfo if aliases have changed during
ARQ processing and ARQ.canMapAlias is TRUE
- added more tracing and human readable names to routing policies
- added modified CTI virtual queues implementation from Chih-Wei Huang
- BUGFIX(singleton.cxx): incorrect singleton instance counting with different trace levels
- added "run as user" feature
- plain text CDR accounting logger module from Tamas Jalsovszky
- call duration limit features introduced for ARQ handlers
- old LDAP support removed from the source code tree
- full Radius - authentication and accounting(start/stop/update)
- added configure script to detect system settings and create Makefile
Changes from 2.0.x to 2.2beta1 (by cwhuang)
===========================================
- new method to detect NATed endpoints
- better handling of call timeout
- support multiple mysql servers
- add authentication method selection for GkClient
- the underlying architecture is almost rewritten entirely, includes
object factory
new thread model
universal sockets handling mechanism
RAS type traits
multi-threaded RAS server
new neighboring system
configurable routing policies
thread-safed gkauth
- use MySQL C API directly instead of MySQL++
Changes from 2.0.3 to 2.0.4 (by cwhuang)
========================================
- add multiple prefixes for neighbors from Rodrigo Gonzalez
- TransferCall patch from Olivier GRALL <olivier.grall@caramail.com>
- fix H.235 compatibility with lastest CVS of Openh323
- set m_h245Tunneling as h245Tunneling flag in Setup_UUIE
- allow h245 reverting work for calltype=1
- allow disable Shutdown command
- permanent endpoints can be reloaded now
- fix conflict between AcceptGatewayPrefixes option and permanent endpoints
- fix bug for multiple SupportedProtocols
- add StatusWriteTimeout option
- add OverwriteEPOnSameAddress option
- add Shutdown command (jan)
Changes from 2.0.2 to 2.0.3 (by cwhuang)
========================================
- add VendorIdentifier in RRQ
- more elegant way to detect version of Openh323
- fix typo for CheckID :(
- fix nattype bug on fullRRQ
- reject nated endpoint from private IP 127.0.0.1
- fix problem if receiving DRQ before than ReleaseComplete
- fix compile problem with latest CVS of Openh323
- add AcceptEndpointIdentifier option
- fix hang bug on GkStatus
- allow to reject forwarded LRQ
- forward call on Facility
- fix bug LRQ with empty destinationInfo
- send endpoint alias via sourceInfo of LRQ
- allow set nated endpoints forcedly
- let virtual queue feature be optional
- fix a bug on startH245
- implemented inbound call distribution with virtual queues
(based on patch by Dennis Lazreg)
- workaround for Setup contains empty destinationAddress
- workaround to copy cryptoTokens for the latest CVS of OpenH323
- fix shutdown problem on SMP machine
- reject lightweightRRQ if IP has changed
- send DRQ to parent if reject a call
- fix billing issue for forwarded calls
- change 'ifdef PTRACING' to 'if PTRACING' since it is always defined
- fix warnings of unused variables in non PTRACING mode
- expire endpoints even in active calls
- send endSessionCommand before closing h245socket
Changes from 2.0.1 to 2.0.2 (by cwhuang)
========================================
- show NAT IP in print verbose command
- fix reply of pending ARQs to NATed endpoint
- fix bug on handling Facility
- allow hide DisplayIE and CallingPartyNumberIE
- fix an interoperability bug with old NAT solution
- fix a bug that prefixes is not changed on full RRQ
- support 'H323-GW' prefixes
- fix leaking messages on status port
- fix a security bug OnDRQ
- rewrite Setup.destinationAddress even if no CalledPartyNumber
- fix interoperability problem on CloseLogicalChannel for some bad endpoints
- reload route table on RRJ with reason fullRegistrationRequired
Changes from 2.0.0 to 2.0.1 (by cwhuang)
========================================
- add statistics for nated ep and calls from parent
- avoid looped calls
- add NetworkInterfaces option for OS that don't support GetRouteTable()
- add H.245 Reverting technology(Patent Pending)
- fix H.225.0 procotolID problem
- fix a long existing bug according to Packetizer
http://www.packetizer.com/in/q14.html
- add TOS flag for RTP/RTCP, thanks to Thomas Jalsovsky
- add Citron NAT technology(Patent Pending)
- allow multiple nated endpoints with the same private IP but
different public IP register simultaneously
- fix possible race conditions in all STL list::size()
- fix a sigfault when name of parent GK is unresolved
- add 'gk' command to show parent GK
- add AlwaysForwardLRQ option
- don't do round-robin for LRQ and find command
- fix a bug in proxy mode (when there are several session IDs in fast start)
- improve support NATed endpoints
- only include alternateGatekeeper field in GCF/RCF if GRQ/RRQ has supportsAltGK
- add a workaround so OpenH323 clients won't reject our confirm messages
when use H.235 authenticators
- add UseBroadcastListener option
- fix incorrect bandwidth in answered ARQ as a child GK
- add DisconnectSession command, thanks to Rodrigo Gonzalez
- change debug level of received messages(Q931, H245) to 4,
only show sent messages if modified
- change RasSvr to RasSrv for consistent
- fix bandwidth problem of the answered ARQ
- add password rule for GkStatus, thanks to Rodrigo Gonzalez
- large fd_set patch
- fix problem of h245socket handling
- fix incorrect lightweight RRQ handling
Changes from 2.0b8 to 2.0.0 (by cwhuang)
========================================
- allow to find by epid or ip address
- improve ProxySocket for thread-safe writing
- improve BRQ handling
- add alternateGKs support for GkClient
- improve alternateGKs support
- sort the AuthRules by priority
- clean up BroadcastListen.cxx and MulticastGRQ.cxx
- fix a serious bug in MulticastGRQ.cxx
- let setting options from status port work
- print version when connect to status port
Changes from 2.0b5 to 2.0b8 (by cwhuang)
========================================
- allow to limit port range
- allow call unregistered endpoints
- add RemoveTrailingChar feature
- show CallerIP for CDR from neighbors
- disconnect all calls on shutdown
- disconnect calls when unregister an endpoint
- accept LRQ from registered endpoints
- add AcceptGatewayPrefixes option
- always rewrite dialedDigits OnARQ
- create symbolic link in /tmp to avoid permission problem
- rewrite GkAuthorize to PrefixAuth module
- accept broadcasting RRQ (workaround for Cisco Call Manager)
Changes from 2.0b4 to 2.0b5 (by cwhuang)
========================================
- add ExternalPasswordAuth module
- accept unregistered call if Q.931 contains CalledPartyNumber
- add IncludeDestinationInfoInLCF option
- allow a second ARQ if srcCallSignalAddress is in SkipForwards
- support forwarding LRQs
- add call duration in seconds, thanks to Rodrigo Gonzalez
- change executable name to gnugk
- add DropCallsByReleaseComplete option
- support NATed endpoints by NATHandler
- add AcceptNeighborsCalls, change the meaning of AcceptUnregisteredCalls
Changes from 2.0b3 to 2.0b4 (by cwhuang)
========================================
- add MySQLAliasAuth module
- add ExtraCriterion to MySQLAuth, remove CheckField
- bandwidth management is disable by default
- remove resourceManager, bandwidth management now in CallTable
- allow set neighbors without prefix, no LRQs will be sent to such neighbors
- send IRQ to an endpoint before expiring it
- only accept unregistered call from neighbors
- in SimplePasswordAuth module, allow expire password cache
- add NeighborPasswordAuth module
- check if LRQs is from IP of my neighbors
- add dynamic resolving name for neighbors, thanks to Rodrigo Gonzalez
- add GkClient module
- allow remove a key or a section in the config from status thread
- remove isalnum check for aliases, we hope to use unicode. :)
- add total call counting for EndpointRec
Changes from 2.0b2 to 2.0b3 (by cwhuang)
========================================
- add AcceptUnregisteredCalls feature
- fix problem of RouteTable in Linux with alias interfaces
- show endtime in CDR even if call not connected
- in routed mode, reject answered ARQ if no CallRec found