OSDN Git Service

2013.10.24
[uclinux-h8/uClinux-dist.git] / user / gnugk / changes.txt
1 Changes from 2.2.5 to 2.2.6
2 ===========================
3 - BUGFIX(toolkit.cxx) Fixed DefaultDomain Alias rewrite
4 - BUGFIX(routing.cxx) ENUM policy not to be used with LRQ
5 - BUGFIX(Neighbors.cxx) Fixed SRV policy to try both CS and LR records and not use with LRQ request
6 - remove ArjReasonRouteCallToSCN (was inactive + broken for a long time)
7 - BUGFIX(Toolkit.cxx) enable SQLConfig also if only Firebird is available
8 - BUGFIX(RasTbl.cxx) reject the call if no gateway has capacity, don't just use the first matching gateway
9 - BUGFIX(RasTbl.cxx) the first route was duplicated and a call was sent twice to the same gw.
10   Thanks to Alex Golyshev for pointing this out!
11 - BUGFIX(RasSrv.cxx) fixed crash inside IRR handler
12 - BUGFIX(yasocket.cxx) due to recent changes, it was impossible to send
13   more than 10240 bytes of data when data queuing had to be involved
14 - move status port examples to contrib/statusport/
15 - fix nonStandardData field usage, make use of assigned T.35 codes
16 - BUGFIX(RasTbl.cxx) ensure that full gateways are eliminated, when failover
17   is active and remaining gateways are sorted due to their priority correctly
18 - BUGFIX(ProxyChannel.cxx) preserve presentation and screening indicators
19   in Calling-Party-Number IEs
20 - BUGFIX(RasTbl.cxx) restore default value for capacity and priority
21   on config reload, if removed from an EP section (or if the whole section
22   has been removed)
23 - BUGFIX(Neighbor.cxx,ProxyChannel.cxx): fix canMapAlias for LRQs with
24   unregistered endpoints
25 - new config section [H225toQ931] to change the H.225 reason to Q.931
26   cause code mapping
27 - optional priorities for gateway prefixes: gw-alias=prefix[:=priority][,prefix[:=priority],...] (patch by Alex Golyshev and Andrey Pasukov)
28 - change default value for CallSignalHandler to 5
29 - BUGFIX(Toolkit.cxx): fix for calling between 2 internal networks
30 - Added AcceptNonNeighborLCF to LRQFeatures settings
31 - Added GnuGk OID & T.35 Codes
32 - BUGFIX(Toolkit.cxx): fix to allow URI rewriting on ARQ processing
33 - BUGFIX(ProxyChannel.cxx): fix to show correct Setup CallSignallingAddress when behind NAT
34 - Added RemoveH235Call & RemoveH460Call Settings
35 - BUGFIX(ProxyChannel.cxx): H.245 addresses being incorrectly written in NATHandler for public proxies.
36
37 Changes from 2.2.4 to 2.2.5
38 ===========================
39 - RADIUS AAA module now handles a Class attribute correctly
40 - BUGFIX(clirw.cxx) missing iterator check, that could cause an invalid
41   memory access, fixed - thanks to Vladimir Voronin
42 - implement optional call-id parameter for Routing commands
43 - Bugfix(RasSrv.cxx) fix SignalCallID=1
44 - Bugfix(Proxychannel.cxx) avoid inserting same socket twice in cleanup list
45 - Bugfix(Proxychannel.cxx) make sure all members of CallSignalSocket are
46   initialized on creation
47 - Bugfix(yasocket.cxx) send very large status port messages
48   in 10KB chunks and sleep after each
49 - new feature: StatusPort filtering by Doron Bleiberg
50 - new switch: [RoutedMode]DisableRetryChecks retries all calls
51 - BUGFIX(ProxyChannel.cxx) make sure we preserve the original Setup message for
52   retries and not only copy the buffer address
53 - Bugfix(Neighbor.cxx) copy canMapAlias when forwarding LRQs
54 - implement virtual queues for LRQs sponsored by Associated Engineering Srl.
55 - implement canMapAlias for LCFs sponsored by TelecomUnity Ltd.
56 - copy all unknown IEs in Notify messages when forwarding
57   (fixes some failed transfers)
58 - BUGFIX(*.cxx) set all deleted pointers to NULL
59 - new SyslogAcct accounting module for the Unix syslog
60 - (gkauth.cxx)Reapplied H235.1 (formally known as H235AnnexA) by using OpenH323 Authenticator factory loader
61 - (rassrv.cxx)Registration Priority Added
62 - (Proxychannel.cxx)TreatUnregisteredNat added. Treat unregistered calls unknown NAT status as being NAT
63 - (routing.cxx)DNS SRV support to DNS Routing policy
64 - (toolkit.cxx)RewriteAlias section added
65 - BUGFIX(ProxyChannel.cxx) WaitAndSignal added to OnInformation to avoid NAT support crash.
66 - BUGFIX(ProxyChannel.cxx) Check for NATSupport added.
67 - BUGFIX(RasTbl.cxx) WaitAndSignal added to FindByEndPointid()
68 - BUGFIX(ProxyChannel.cxx) Added SupportCallingNATedEndpoints.
69 - Moved DNS SRV to it's own seperate policy
70 - Registration pre-emption support added
71 - Support for EP's on dynamic IP's
72 - fixed code to compile with the latest pwlib CVS (STL string conversion)
73 - Added support for GnuGK to work behind NAT box
74 - Added support for Third party (non-neighbor) Gatekeepers (AcceptNonNeighborLRQ=1)
75 - Added auto-detection on internal network for proxy mode.
76 - Added DefaultDomain for H323 URI rewriting
77
78
79 Changes from 2.2.3 to 2.2.4
80 ===========================
81 - new Calling/CalledTypeOfNumber and Proxy configuration variables
82   in [RouteMode] section and endpoint configuration. Thanks to Vladimir Voronin
83 - (ipauth.cxx) added support for prefixes. Thanks to Vladimir Voronin
84 - (gksql_firebird.cxx) Firebird/Interbase driver for SQL modules. Sponsored
85   by Roitel Telecommunication S.A.
86 - (Routing.cxx) NumberAnalysis routing policy can handle Setup messages now.
87   Thanks to Vladimir (vl@kamatele.com)
88 - (pwlib_compat.h) adapt to changed mutexes starting with PWLib 1.9.2
89 - call mute in proxy mode using userinput * (patch by Simon Horne)
90 - NAT support for unregistered callers (patch by Simon Horne)
91 - (gk.cxx) allow correct spelling for FortyTwo=42 entry
92 - BUGFIX(yasocket.h) fix compilation with gcc 4.1
93 - (clirw.cxx) process CLI ranges with leading zeros correctly
94 - new CapacityControl auth/acct modules to control inbound traffic
95 - BUGFIX(ProxyChannel.cxx) check added for a NULL pointer in NAT traversal code
96 - (RasTbl.cxx) default SignalTimeout value increased from 15 to 30 seconds
97 - BUGFIX(RasSrv.cxx) remove call records correctly in direct signaling mode,
98   when only called party is registered. Thanks to Julius Bajzik
99 - BUGFIX(RasTbl.cxx) fixed race condition when accessing endpoint records
100 - BUGFIX(ProxyChannel.cxx) fixed race condition in H245Socket when H.245
101   tunneling is disabled
102 - (configure) better detection of PostgreSQL on FreeBSD
103 - BUGFIX(RasSrv.cxx) allow bandwidth=0 in ARQ / ACF
104 - BUGFIX(ProxyChannel.cxx) fix bug when using RADIUS/SQL based routing
105   for Setup messages
106 - BUGFIX(ProxyChannel.cxx) check for poor NAT implementations, that might
107   have crashed GnuGk (by Simon Horne)
108 - new accounting variables: %{media-oip}, %{codec}
109 - new accounting variables: %{call-attemps}, %{last-cdr}, %{caller/callee-epid}
110 - new feature: call failover (see manual)
111 - BUGFIX(clirw.cxx) set presentationIndicator correctly in H.225.0 Setup UUIE
112 - BUGFIX(RasTbl.h) when active, perform IRR checks for local
113   endpoints only, others (parent, neighbor etc.) won't send us IRRs
114 - BUGFIX(Routing.cxx) remove leading zeros for ENUM queries
115 - BUGFIX(RasSrv.cxx) have AcceptNeighborsCalls default to 1 like
116   the documentation always said
117 - BUGFIX(Routing.cxx) fix ENUMPolicy implementation
118 - new StatusAcct accounting module for the status port sponsored by Grupo Isec
119
120 Changes from 2.2.2 to 2.2.3
121 ===========================
122 - (ProxyChannel.cxx) use Calling-Party-Number to perform inbound per-gateway number rewrite
123   (GWRewriteE164), if no sourceAddress is present in H.225.0 Setup UUIE
124 - IRR checking for active calls [CallTable] IRRFrequency=n, IRRCheck=TRUE
125 - BUGFIX(RasSrv.cxx) terminate all calls before unregistering endpoint
126   when OverwriteEPOnSameAddress=1
127 - new RewriteCLI options to control CLIR features precisely 
128 - new CLIR/CLIP (Calling Line Identification Restriction/Presentation) features in
129   RewriteCLI module. Ability to hide CLI (enable CLIR/CLIP) per endpoint
130 - Unix man page in the docs folder by Ivan Lopez <ilopez@enress.gov.ar>
131 - do not leave sockets open when proxy handlers are idle. Peform proper cleanup
132   all the time
133 - manual updated with notes on TIME_WAIT and Q931PortRange/H245PortRange/T120PortRange
134 - new SocketCleanupTimeout config variable to control time to wait before
135   a socket is deleted
136 - more reliable port allocation making better call throughput better on a heavily
137   loaded server or when using very small port ranges
138 - more detailed description of network operations
139 - if Home contains a single IP address, bind RTP sockets to this specific address,
140   instead of INADDR_ANY
141 - do not remove addresses specified in Home that are not found in PWLib interface table,
142   just generate a warning
143 - BUGFIX(clirw.cxx) random rewrite did not work for outbound rules and comma separated items
144 - Solaris compilation errors fixed, thanks to Mikko Oilinki
145 - BUGFIX(yasocket.cxx) fixed address reuse for UDP sockets in LARGE_FDSET mode,
146   broadcast RAS socket did not work previously
147 - better error reporting on socket allocation
148 - new ENUM routing policy from Simon Horne
149 - added check for PWLib/OpenH323 minimum version supported
150 - optionally signal call ids in the status port with ACF/ARJ/DCF/DRJ/RouteRequest
151   messages (switch on with SignalCallIds=1 in main section)
152 - NetMeeting compatibility problems fixed
153 - new [RasSrv::RRQFeatures] IRQPollCount config variable, default number
154   of "poll" IRQ messages changed from 2 to 1
155 - FileIPAuth module moved from the contrib section into the main branch
156 - BUGFIX(ProxyChannel.cxx) tunnelled H.245 messages were not processed
157   correctly
158
159 Changes from 2.2.1 to 2.2.2
160 ===========================
161 - allow empty key values in SQLConfig ConfigQuery/RewriteE164Query
162 - restored MSVC6.0 compatibility
163 - BUGFIX(radproto.cxx) GetSocket could use an invalidated iterators
164   under some circumstances. Thanks to kubuqi cn
165 - (ProxyChannel.cxx) ignore incorrect mediaChannel offers with port number 0,
166   internal option [Proxy] RemoveMCInFastStartTransmitOffer to enable removing
167   mediaChannel from fast start transmit channel open offers
168 - creditamout and billingmode fields may appear in a result for SQLAuth CallQuery
169 - exclude all SQL modules from build if no SQL support is enabled
170 - BUGFIX(ProxyChannel.cxx) originate an H.245 TCP connection from the same IP
171   as an associated signalling connection is established
172 - (clirw.cxx) new CLI rewrite types - prefix replacement (*=) and an identity
173   match (~=)
174 - don't lock the call table when logging accounting data on call disconnect,
175   to prevent gatekeeper long lock periods when a backend is not working properly
176 - new TranslateFacility config variable to enable Facility message conversion
177   between H.323v4 and previous versions of the protocol
178 - %t, %p, %{ring-time}, %{alerting-time} accounting variables ported from 2.0
179   branch. ConnectTimeout config variable replaced with SignalTimeout and AlertingTimeout
180 - new %r accounting variable to get who disconnected a call, thanks to Freddy Parra
181 - new generic SQLAuth module to authenticate and authorize RRQ, ARQ, LRQ and Setup messages
182 - BUGFIX(ProxyChannel.cxx) another attempt to solve race issues in H.245 routed
183   mode that may cause occasional crashes
184 - new --core command line argument to enable core dump generation for Unix
185 - new Vendor config variable for [Endpoint] section to provide vendor specific
186   extensions when registering with a parent gatekeeper
187 - added support for Connect event in SqlAcct module, thanks to Boian Bonev
188 - BUGFIX(Neighbor.cxx) nonStandardData field was not included for CiscoGK neighbors
189 - a new module to rewrite ANI/CLI numbers. Sponsored by Gabriel Georgescu.
190 - new FreeBSD 5.3 startup script
191 - BUGFIX(ProxyChannel.cxx) send proper Release Complete when the remote side
192   does not respond to a Setup message
193 - BUGFIX(ProxyChannel.cxx) correctly remove calls from the call table,
194   when setup processing fails for some reason (auth failed, acct failed, ...)
195 - BUGFIX(ProxyChannel.cxx) fixed config reload deadlock when using H.245
196   routed mode and listening sockets are holding the config reload mutex
197 - (Routing.cxx) new routing policy NumberAnalysis to support overlapped digit
198   sending with ARQs
199 - WinSvc from Franz J Ehrengruber updated to work with GnuGk 2.2.2 and 2.0.10
200 - new FileIPAuth module in the contrib/ipauth directory
201 - (RasTbl.cxx) call accounting updates/disconnecting is now more robust
202   and does not lock up the call table and (effectively) the gatekeeper
203   for long time periods
204 - Makefile for docs, make sure generated PDF manual is searchable
205 - do not support mutiple rewrite targets, as this feature does not work well
206   if rewrite is performed more than once
207 - BUGFIX(GkStatus.cxx) the gatekeeper could crash if the connection
208   was closed before the welcome message has been sent
209 - BIGFIX(gkacct.cxx) different Username was reported during Setup auth
210   and acct step, if no sourceAddress has been present for an unregistered call
211 - more missing config reload locks added to allow seamless config reload
212 - BUGFIX(ProxyChannel.cxx) the code could reference an invalid H.245 socket
213   due to recent changes
214 - BUGFIX(h323util.cxx) conference/call-id could get incorrectly converted
215   to a string with some compilers
216 - (Routing.cxx) ability to do per-call proxy mode control from routing handlers
217 - BUGFIX(ProxyChannel.cxx) fixed race condition between signaling/H.245 channel
218   closure
219 - parts of signalling code rewritten
220 - default value for config variable ForwardOnFacility changed to 0
221 - BUGFIX(ProxyChannel.cxx) inbound rewrite code did not check for presence
222   of sourceCallSignalAddress field in Setup messages. Use real peer IP instead
223 - ability to encrypt all passwords in the config (radius shared secrets,
224   database passwords). A new EncryptAllPasswords config variable and KeyFilled
225   usage extended
226 - SQLConfig ported from 2.0
227 - BUGFIX(radauth.cxx) Framed-IP-Address could not be determined
228   for unregistered calls with no Setup-UUIE.sourceCallSignalAddress field,
229   causing authentication to fail
230 - (ProxyChannel.cxx) small optimizations in signaling handling
231 - fixed bug with aliases handling in various places, introduced by recent changes
232 - BUGFIX(Toolkit.cxx) correct handling of '!' character in rewrite rules
233 - provide proper handling of aliases of type partyNumber (e164Number or privateNumber)
234 - BUGFIX(ProxyChannel.cxx) fix for RTP/Q931/H245/T120PortRange
235   to correct a bug with port range wraparound if the last port is 65535.
236   This caused a next port to be set to 0 and any subsequent port allocation 
237   to fail
238 - BUGFIX(ProxyChannel.cxx) dynamic allocation of RTP ports did not work,
239   use a fixed range 1024-65535 as a default for RTPPortRange config variable
240 - (RasTbl.cxx) LRQs received on a multicast interface triggered LCFs
241   with an invalid signalling port number (0) in signalling routed mode
242 - get rid of redundant config reload mutex inside accounting modules
243 - obsolete auth modules MySQLAliasAuth and MySQLPasswordAuth are now removed
244 - (GkStatus.cxx) fixed a missing lock during config reload
245 - accept LRQs from any port (check only an IP address)
246 - SQL modules accept only one database host now (the failover was not supported
247   properly either, so it has been removed)
248
249 Changes from 2.2.0 to 2.2.1
250 ===========================
251 - enchanced prefix matching for routing policies. A dot (.) matches any digit
252 - enchanced prefix matching for neighbors. A dot (.) matches any digit,
253   ! at the beginning disables the prefix
254 - (ProxyChannel.cxx) critical fix - a missing lock during config reload
255   caused the gatekeeper to crash
256 - (ProxyChannel.cxx) more reliable port number selection for Q.931, H.245, 
257   T.120 and RTP port ranges (before, a config reload could cause many calls 
258   to fail because of unability to get a new socket)
259 - (ProxyChannel.cxx) default setting for RTPPortRange is now to let the OS select a port number
260 - more flexible rewrite rules (both global and per-gw) with '.' and '%'
261   wildcard characters
262 - security fix for socket handle/select oveflow issue
263 - new accounting event 'connect' (only in routed mode)
264 - timestamp microseconds field has a fixed length of 3 digits
265 - enchanced prefix matching for gateways. A dot (.) matches any digit,
266   ! at the beginning disables the prefix
267 - BUGFIX(radproto.cxx) VSA matching routing ignored a vendor identifier
268   causing incorrect attributes to be matched
269 - insert missing Calling-Party-Number-IE/Display-IE if corresponing
270   Screen... options are enabled
271 - shutdown the gatekeeper if there are errors in SQL auth/acct modules
272   configuration, thanks to Mikko Oilinki
273 - (gkslq.cxx) try to reconnect to the database, if the initial attempt
274   failed. Thanks to Mikko Oilinki
275 - another changes to Calling/Called-Station-Id handling, always use
276   Calling/Called-Party-Number IEs when available. Calling/Called-Station-Id
277   is now set outside auth modules, so acct modules receive correct
278   values, independetly of auth modules usage
279 - BUGFIX(Toolkit.cxx) correctly replace %u in timestamps with number
280   of microseconds instead of passing %u to strftime
281 - ability to select Called-Station-Id number type between the original one
282   (dialed number) and the rewritten one. New UseDialedNumber config option
283   for RadAuth/RadAliasAuth/RadAcct modules, new %{Dialed-Number} variable
284   for SQLAcct and FileAcct modules
285 - ability to customize timestamp formats. New TimestampFormat config variables
286   for main, SqlAcct, RadAcct, FileAcct and CallTable sections
287 - (ProxyChannel.cxx) safety check before a signaling socket is actually deleted
288   for being removed from an associated call record
289 - new TcpKeepAlive option to remove problem with network errors and hanging
290   calls (see docs/keepalive.txt for more details)
291 - RadAuth/RadAliasAuth modules can now add/remove endpoint aliases during
292   endpoint registration (using h323-ivr-in=terminal-alias: Cisco AV-Pair)
293 - per-call proxy control
294 - new status port command RouteToGateway
295
296 Changes from 2.2beta5 to 2.2.0
297 ==============================
298 - BUGFIX(RasSrv.cxx) invalid/unsupported RAS/signaling addresses are ignored
299   in RRQ messages
300 - GCC 3.4.2 compilation errors fixed
301 - BUGFIX(gkauth.cxx) PrefixAuth module crashed when checking ARQ without
302   a destinationInfo field
303
304 Changes from 2.2beta4 to 2.2beta5
305 =================================
306 - BUGFIX(ProxyChannel.cxx) race condition with NAT sockets fixed, thanks to Daniel Liu
307 - new RoundRobinGateways config option in the RasSrv::ARQFeatures sections
308   to enable/disable round-robin gateway selection
309 - call capacity limits and gateway prioritization (new EP:: config sections)
310 - BUGFIX(ProxyChannel.cxx) errors during H.245 channel establishment caused
311   calls to not disconnect correctly
312 - check VirtualQueueRegex on startup
313 - BUGFIX(gk.cxx) reopen a log file on reload (HUP) signal to allow logrotate
314   to manage logs
315 - BUGFIX(RasTbl.cxx) multithreading issues with an access to endpoint record
316   data fixed. Thanks to kubuqi cn!
317 - BUGFIX(ProxyChannel.cxx) RTP proxy handling moved to a separate RTP proxy
318   threads. New RtpHandlerNumber config option
319 - BUGFIX(yasocket.cxx) enabled REUSE_ADDRESS option on listening sockets
320   in non-LARGE_FDSET mode to allow fast gatekeeper restarting
321 - better disconnect cause reporting in Setup processing
322 - ability to set call destination in auth modules. RADIUS based call routing
323 - BUGFIX(Neighbor.cxx) fixed sourceInfo LRQ field handling - now it contains
324   an H.323 identifier of the gatekeeper
325 - (radproto.cxx) ability to set shared secrets for each radius server 
326   separatelly, more Radius optimizations
327 - new, much faster, Radius client implementation. Thanks to Pavel Pavlov
328   for numerous ideas and suggestions!
329 - BUGFIX(ProxyChannel.cxx) Called-Party-Number-IE rewrite occured too late,
330   causing auth/acct modules to receive the original number instead of the rewritten one
331 - (RasSrv.cxx) duplicated RAS messages are now simply discarded
332 - BUGFIX(ProxyChannel.cxx) fixed proxying of RTP packets, so RTP sockets are
333   not closed on temporary errors (like remote socket not yet ready). This bug
334   affected especially NAT traversal and situation, when audio was sent very 
335   early, when reverse proxy path has not been yet established
336 - BUGFIX(RasSrv.cxx) fixed handling of RRJ (fullRegistrationRequired)
337   from an alternate GnuGk
338 - BUGFIX(GkStatus.cxx) fixed bug in status client authentication introduced
339   by recent changes, thanks to Razvan Radu!
340 - (sqlbill) examples how to setup SQLAcct, SQLPasswordAuth and SQLAliasAuth
341   with the billing
342 - direct SQL accounting module (SQLAcct) ported from 2.0 branch
343 - BUGFIX(gkauth.cxx) gcc 2.95.x compilation errors fixed
344 - BUGFIX(Neighbor.cxx) handling reply messages (RIP/LCF/LRJ) from neighbors 
345   fixed, thanks to kubuqi cn (kubuqi@hotmail.com)
346 - support for CallCreditServiceControl in RCF and ACF messages, which allows
347   reporting call duration limit and user's account balance to endpoints. 
348   Currently RadAuth and RadAliasAuth modules support this feature.
349 - BUGFIX(gk.cxx) removed an invalid test for the log filename, preventing
350   from creating log files in a directory other than the current one
351 - BUGFIX(GkClient.cxx) TTL bug fixed (RRQ every second), documentation updates
352 - fixed assertions caused by attempts to get/set config keys with an empty key name
353 - BUGFIX(gk.cxx) fixed log file rotation under Windows, thanks to Cristian Bullokles!
354 - log file rotation, new LogFile config section, new setlog and rotatelog
355   status interface commands
356 - BUGFIX(gkacct.cxx) a fix to rotation interval calculation for monthly 
357   CDR file rotation
358 - BUGFIX(gkacct.cxx) FileAcct monthly rotation rotated a CDR file unnecessary
359   on gatekeeper restart
360 - BUGFIX(gkacct.cxx) fixed a critical bug in Username determination 
361   for unregistered endpoints, introduced by recent changes
362 - BUGFIX(RasSrv.cxx) do not include an invalid access token (with null object
363   identifier) in LCF to prevent interoperability problems, thanks to Andreas Sikkema!
364 - BUGFIX(ProxyChannel.cxx) better handling of multiple calls over a single
365   signalling channel by setting multipleCalls and maintainConnection
366   H.225.0 fields to FALSE in all messages. Thanks to Ian Campbell!
367 - better Username, Calling-Station-Id and Called-Station-Id determination,
368   consistant across all auth/acct modules, redundant code removed
369 - new Gatekeeper::Auth flag SetupUnreg to toggle Q.931 Setup authentication
370   for unregistered endpoints only
371 - IncludeEndpointIP flag for RadAuth, RadAliasAuth and RadAcct is obsolete,
372   these modules will always send Framed-IP-Address
373 - (sqlbill) reject gracefully Access-Requests without Framed-IP-Address
374 - (sqlbill) improvements for IP only authorization
375 - BUGFIX(sqlbill) FreeRadius accounting_stop_query changed to not check h323id 
376   in order to allow IP only authorization
377 - BUGFIX(sqlbill) FreeRadius accounting_update_query changed to not check h323id 
378   in order to allow IP only authorization
379 - (radacct.cxx) new RADIUS h323-ivr-out=h323-call-id parameter that contains
380   an H.323 Call Identifier
381 - BUGFIX(radauth.cxx) better Framed-IP-Address handling in RadAliasAuth Setup check
382 - BUGFIX (ProxyChannel.cxx) With a certain combination of endpoints it 
383   was possible to have UDPProxySocket trying to forward incoming RTP / 
384   RTCP trafic to 127.0.0.1:0. Added a check for this situation and send
385   traffic to non-loopback address and hope it is the correct address.
386 - (sqlbill) added ability to authenticate users only by their IP 
387   (ignoring User-Name)
388 - BUGFIX(radauth.cxx) RadAliasAuth will use Calling-Party-Number as User-Name
389   if no sourceAddress inside is present in Setup-UUIE
390 - (sqlbill) new, more flexible tariff/rating engine
391 - BUGFIX(gk.cxx) fixed signal handling to use sigaction instead of signal
392   to prevent accidental gatekeeper crashes because of restored signal handlers
393 - BUGFIX(gkacct.cxx) rotation per number of lines works correctly now
394
395 Changes from 2.2beta3 to 2.2beta4
396 =================================
397 - BUGFIX(radauth.cxx) check if generalID matches one of endpoint's aliases
398   only when authenticating RRQ
399 - (gkacct.cxx) parametrized FileAcct CDR output
400 - BUGFIX(gkauth.cxx) do not declare H.235 Auth Procedure I support as it is
401   not fully implemented
402 - (RasSrv.cxx) do not copy nonStandardData field from RAS requests to RAS replies,
403   as it does not make any sense and cause interoperability problems with some
404   Cisco IOSes
405 - (yasocket.cxx) fixed a bug in TCPListener::IsTimeout() which prevented
406   GNUgk from running > 596 hours
407 - (ProxyChannel.cxx) fixed a critical bug with referencing already deleted
408   socket, when the remote party did not accept signalling tcp connection
409 - (ProxyChannel.cxx) more UDP proxy optimizations
410 - new flexible CDR file rotation for FileAcct module
411 - (gktimer.cxx) new generic support for time-based events
412 - BUGFIX(Routing.cxx) processing LRQ request should not apply round robin
413   selection to gateways with the same prefix
414 - BUGFIXes: make sure we delete list items _after_ we have removed
415   them from the list
416 - BUGFIX(RasTbl.cxx) make sure PrintCurrentCalls prints ACF messages
417   in the same format as all ACFs
418 - improved performance of the socket code (especially when LARGE_FDSET 
419   is enabled). Faster select for a single socket and an unnecessary 
420   write lock for UDP sockets removed
421 - BUGFIX(radproto.cxx) default auth/acct ports are now set to fixed values
422   1812 and 1813, due to problems with getservbyname and multithreading
423 - (gksql.cxx) improved SQL query parameters replacement routine
424 - removed descendancy check in radproto to allow compilation with the latest
425   RTTI enabled PWLib
426 - BUGFIX(Neighbor.cxx) fixed missing parentheses, thanks to kubuqi cn
427 - BUGFIX(h323util.cxx) GetIPAndPortFromTransportAddr now checks if the address
428   is valid
429 - BUGFIX(ProxyChannel.cxx) fixed bugs in ForwardCall, thanks to Daniel Liu
430 - header file usage more consistent
431 - SQL authenticators moved to a separate file
432 - added VSNET2003 sln and vcproj files
433 - fixed Windows DSP files to not enable some optimizations for Windows
434   that result in VC6 linker throwing away some gnugk modules (static variables)
435 - improved configure script to detect installed PWLib/OpenH323
436 - significant API changes to authentication/accounting modules
437 - added logparser application from Saad Faisal to the contrib section
438 - pgsqlauth removed from the contrib section, as it is obsolete now
439 - BUGFIX(Routing.cxx) the absense of a regexp for virtual queues wasn't detected
440 - BUGFIX(ProxyChannel.cxx) multiple calls over a single signalling channel
441   are now gracefully handled using ReleaseComplete with newConnectionNeeded code.
442 - (RasTbl.cxx) permanent endpoints are correctly reloaded now, with removal
443   of permanent endpoints for which config entries have been deleted
444 - (gkauth.cxx) depreciated ExternalPasswordAuth finally removed
445 - SQL engine rewritten completelly to use a concept of SQL driver.
446   New modules SQLPasswordAuth and SQLAliasAuth added. MySQL and PostgreSQL
447   drivers implemented. Funded by Doxum Technologies Inc.
448   Backward compatibility (MySQLAliasAuth and MySQLPasswordAuth) maintained.
449 - BUGFIX(Routing.h) fixed referencing to a temporary PString object
450   after it is destroyed
451 - better LOG_OFF Windows event handling to prevent gatekeeper shutdown
452   when user logs out. The patch from Franz J Ehrengruber
453 - added GNU Gatekeeper Service for Windows from Franz J Ehrengruber
454 - added Windows icon and version info from Franz J Ehrengruber
455 - (manual.sgml) corrected MySQLPasswordAuth, MySQLAliasAuth sections,
456   removed NeighborPasswordAuth documentation (not necessary anymore)
457 - (gkauth.cxx) fixed SimplePasswordAuth module to read settings from 
458   [SimplePasswordAuth] section instead of [Password] section. 
459   Fixed MySQLPasswordAuth module to accept CacheTimeout parameter.
460   Default CacheTimeout for MySQLPasswordAuth and MySQLAliasAuth set to 0
461   (do not cache passwords/aliases at all)
462 - applied the concept of output trace levels for the status interface. 
463   It allows to select amount of information a status client receives
464   (level 0 - silent mode + reloads; level 1 - CDRs, RouteRequests, reloads;
465    level 2 - everything: the default mode)
466 - (GkStatus.cxx) some cleanup, better tracing, new trace command introduced
467   to support multiple output levels in the future
468 - added missing addpasswd Visual Studio project files (dsp and dsw)
469 - (configure.in) added check for MSG_NOSIGNAL flag support with send/recv calls
470 - (configure.in) better pwlib/openh323 detection patches from Klaus Kaempf
471 - (RasTbl.cxx) treat MCUs as gateways and allow MCUs to register prefixes
472 - (Toolkit.cxx) use in-place constructors and destructors inside RewriteData
473   to prevent Windows exceptions on rewrite rules reload in debug mode
474 - removed duplicated build timestamp from 'version' command output.
475   Added special file versionts.h to ensure version.cxx is rebuilt each
476   time GnuGk is recompiled, in order to get proper build timestamp
477 - (job.cxx) jobs simplified, optimised and checked for thread safety
478 - (version.cxx) modified to list all extensions in the version string
479 - (ProxyChannel.cxx) support for H.323 V4 provisionalRespToH245Tunneling
480   and parallelH245Control H.225.0 elements
481 - log rotation now maintains the original filename and stores rotated
482   log files with precise timestamp (YYYYMMDD_HHMMSS) to prevent overwritting. 
483   Thanks to Rafael Costa dos Santos.
484 - added Q.931 Setup authentication to RadAuth module to allow
485   authentication based on crypto tokens carried inside Setup
486 - modified GkAuthenticator and RADIUS authenticators prototypes
487   to allow modifications of messages being processed
488   (NOTE: This may break compatibility with some customer derived classes)
489 - (ProxyChannel.cxx) RTP proxy fixed to not require RTCP channel
490   and work better with T.38 faxes
491 - (ProxyChannel.cxx) added new config parameter ScreenSourceAddress
492   to screen calling party aliases from UUIE Setup element
493 - added sample SQL/RADIUS billing example to the contrib directory
494 - removed Makefile to force users running configure script before compilation
495 - added per gateway E.164 rewriting of dialedDigits in addition to
496   global E.164 rewriting
497
498 Changes from 2.2beta2 to 2.2beta3
499 =================================
500 - addpasswd utility changed to require section name where the encrypted 
501   username/password will be stored
502 - BUGFIX(gkauth.cxx) fixed call duration limit handling when multiple
503   authenticator modules are specified
504 - BUGFIX(gkacct.cxx) changed accounting reload handling to first cleanup
505   the old modules and then create the new ones. This allows the FileAcct 
506   logger to work fine with the reload command
507 - BUGFIX(h323util.cxx) additional check for H225_TransportAddress
508   to prevent NULL pointer assertions. Thanks to Andrey Pankov!
509 - added Q.931/H.225 Setup authentication (RadAliasAuth module implementation)
510 - BUGFIX(radproto.cxx) fixed invalid signed/unsigned conversion that caused
511   some functions to return unexpected results
512 - BUGFIX(Neighbor.cxx) LCF is considered to come from a given neighbor
513   if either IP:PORT or neighbor identifier inside LCF nonstandarparam field matches
514   (was: neighbor identifier inside LCF nonstandarparam field or, if the field
515   is missing, IP:PORT)
516 - added PostgreSQL authenticator modules to the contrib directory
517 - API for AliasAuth has changed slightly
518 - better checking of tokens/cryptoTokens by SimplePasswordAuth derived authenticators
519 - BUGFIX(RasTbl.cxx) fixed NULL reference in CallRec::SetSocket - caused crash
520   in ForwardCall. Thanks to kubuqui cn!
521 - check ReleaseComplete for H225 reason field, if no Q.931 cause IE is found
522 - set disconnect cause to "normal call clearing" on DRQ received with normalDrop
523   disengageReason and no termination cause set
524 - BUGFIX(ProxyChannel.cxx) fixed h225 termination cause setting for ReleaseComplete
525 - better hop count handling for neighbors - now LRQ m_hopCount field 
526   is forwarded/generated correctly, according to an original hop count
527   or a ForwardHopCount config settings
528 - small radius accounting/authentication module optimizations and better trace ouput
529 - changed handling of multiple accounting modules (added new "alternative" control)
530 - added new VirtualQueuePrefixes and VirtualQueueRegex config variables
531   to [CTI::Agents] section. These make possible to call virtual queue
532   not only with the exact alias name, but also with an alias that matches
533   configured prefixes or configured regular expression. Thanks to Max Speransky
534 - renamed config variable VirtualQueue to VirtualQueueAliases 
535   (backward compatibility is maintained)
536
537 Changes from 2.2beta1 to 2.2beta2
538 =================================
539 - BUGFIX(RasTbl.cxx) fixed connect/disconnect time handling and call duration
540   calculation. Thanks to Aivis Olsteins
541 - BUGFIX(GkClient.cxx) changed SetPassword to fill LRQs with all recognized
542   tokens/cryptoTokens
543 - better disconnect cause handling
544 - BUGFIX(ProxyChannel.cxx) ReleaseComplete now always contains either CauseIE
545   or H225_ReleaseCompleteReason, because one of these fields is mandatory
546 - added status line improvements (command expansion, repeat last command,
547   backspace handling for windows) from Hu Yuxin
548 - BUGFIX(GkStatus.cxx) removed unimplemented "disconnect" and "unregister"
549   commands
550 - ACF is filled with destinationInfo if aliases have changed during
551   ARQ processing and ARQ.canMapAlias is TRUE
552 - added more tracing and human readable names to routing policies
553 - added modified CTI virtual queues implementation from Chih-Wei Huang
554 - BUGFIX(singleton.cxx): incorrect singleton instance counting with different trace levels
555 - added "run as user" feature
556 - plain text CDR accounting logger module from Tamas Jalsovszky
557 - call duration limit features introduced for ARQ handlers
558 - old LDAP support removed from the source code tree
559 - full Radius - authentication and accounting(start/stop/update)
560 - added configure script to detect system settings and create Makefile
561
562 Changes from 2.0.x to 2.2beta1 (by cwhuang)
563 ===========================================
564 - new method to detect NATed endpoints
565 - better handling of call timeout
566 - support multiple mysql servers
567 - add authentication method selection for GkClient
568 - the underlying architecture is almost rewritten entirely, includes
569     object factory
570     new thread model
571     universal sockets handling mechanism
572     RAS type traits
573     multi-threaded RAS server
574     new neighboring system
575     configurable routing policies
576     thread-safed gkauth
577 - use MySQL C API directly instead of MySQL++
578
579 Changes from 2.0.3 to 2.0.4 (by cwhuang)
580 ========================================
581 - add multiple prefixes for neighbors from Rodrigo Gonzalez
582 - TransferCall patch from Olivier GRALL <olivier.grall@caramail.com>
583 - fix H.235 compatibility with lastest CVS of Openh323
584 - set m_h245Tunneling as h245Tunneling flag in Setup_UUIE
585 - allow h245 reverting work for calltype=1
586 - allow disable Shutdown command
587 - permanent endpoints can be reloaded now
588 - fix conflict between AcceptGatewayPrefixes option and permanent endpoints
589 - fix bug for multiple SupportedProtocols
590 - add StatusWriteTimeout option
591 - add OverwriteEPOnSameAddress option
592 - add Shutdown command (jan)
593
594 Changes from 2.0.2 to 2.0.3 (by cwhuang)
595 ========================================
596 - add VendorIdentifier in RRQ
597 - more elegant way to detect version of Openh323
598 - fix typo for CheckID :(
599 - fix nattype bug on fullRRQ
600 - reject nated endpoint from private IP 127.0.0.1
601 - fix problem if receiving DRQ before than ReleaseComplete
602 - fix compile problem with latest CVS of Openh323
603 - add AcceptEndpointIdentifier option
604 - fix hang bug on GkStatus
605 - allow to reject forwarded LRQ
606 - forward call on Facility
607 - fix bug LRQ with empty destinationInfo
608 - send endpoint alias via sourceInfo of LRQ
609 - allow set nated endpoints forcedly
610 - let virtual queue feature be optional
611 - fix a bug on startH245
612 - implemented inbound call distribution with virtual queues
613   (based on patch by Dennis Lazreg)
614 - workaround for Setup contains empty destinationAddress
615 - workaround to copy cryptoTokens for the latest CVS of OpenH323
616 - fix shutdown problem on SMP machine
617 - reject lightweightRRQ if IP has changed
618 - send DRQ to parent if reject a call
619 - fix billing issue for forwarded calls
620 - change 'ifdef PTRACING' to 'if PTRACING' since it is always defined
621 - fix warnings of unused variables in non PTRACING mode
622 - expire endpoints even in active calls
623 - send endSessionCommand before closing h245socket
624
625 Changes from 2.0.1 to 2.0.2 (by cwhuang)
626 ========================================
627 - show NAT IP in print verbose command
628 - fix reply of pending ARQs to NATed endpoint
629 - fix bug on handling Facility
630 - allow hide DisplayIE and CallingPartyNumberIE
631 - fix an interoperability bug with old NAT solution
632 - fix a bug that prefixes is not changed on full RRQ
633 - support 'H323-GW' prefixes
634 - fix leaking messages on status port
635 - fix a security bug OnDRQ
636 - rewrite Setup.destinationAddress even if no CalledPartyNumber
637 - fix interoperability problem on CloseLogicalChannel for some bad endpoints
638 - reload route table on RRJ with reason fullRegistrationRequired
639
640 Changes from 2.0.0 to 2.0.1 (by cwhuang)
641 ========================================
642 - add statistics for nated ep and calls from parent
643 - avoid looped calls
644 - add NetworkInterfaces option for OS that don't support GetRouteTable()
645 - add H.245 Reverting technology(Patent Pending)
646 - fix H.225.0 procotolID problem
647 - fix a long existing bug according to Packetizer
648   http://www.packetizer.com/in/q14.html
649 - add TOS flag for RTP/RTCP, thanks to Thomas Jalsovsky
650 - add Citron NAT technology(Patent Pending)
651 - allow multiple nated endpoints with the same private IP but
652   different public IP register simultaneously
653 - fix possible race conditions in all STL list::size()
654 - fix a sigfault when name of parent GK is unresolved
655 - add 'gk' command to show parent GK
656 - add AlwaysForwardLRQ option
657 - don't do round-robin for LRQ and find command
658 - fix a bug in proxy mode (when there are several session IDs in fast start)
659 - improve support NATed endpoints
660 - only include alternateGatekeeper field in GCF/RCF if GRQ/RRQ has supportsAltGK
661 - add a workaround so OpenH323 clients won't reject our confirm messages
662   when use H.235 authenticators
663 - add UseBroadcastListener option
664 - fix incorrect bandwidth in answered ARQ as a child GK
665 - add DisconnectSession command, thanks to Rodrigo Gonzalez
666 - change debug level of received messages(Q931, H245) to 4,
667   only show sent messages if modified
668 - change RasSvr to RasSrv for consistent
669 - fix bandwidth problem of the answered ARQ
670 - add password rule for GkStatus, thanks to Rodrigo Gonzalez
671 - large fd_set patch
672 - fix problem of h245socket handling
673 - fix incorrect lightweight RRQ handling
674
675 Changes from 2.0b8 to 2.0.0 (by cwhuang)
676 ========================================
677 - allow to find by epid or ip address
678 - improve ProxySocket for thread-safe writing
679 - improve BRQ handling
680 - add alternateGKs support for GkClient
681 - improve alternateGKs support
682 - sort the AuthRules by priority
683 - clean up BroadcastListen.cxx and MulticastGRQ.cxx
684 - fix a serious bug in MulticastGRQ.cxx
685 - let setting options from status port work
686 - print version when connect to status port
687
688 Changes from 2.0b5 to 2.0b8 (by cwhuang)
689 ========================================
690 - allow to limit port range
691 - allow call unregistered endpoints
692 - add RemoveTrailingChar feature
693 - show CallerIP for CDR from neighbors
694 - disconnect all calls on shutdown
695 - disconnect calls when unregister an endpoint
696 - accept LRQ from registered endpoints
697 - add AcceptGatewayPrefixes option
698 - always rewrite dialedDigits OnARQ
699 - create symbolic link in /tmp to avoid permission problem
700 - rewrite GkAuthorize to PrefixAuth module
701 - accept broadcasting RRQ (workaround for Cisco Call Manager)
702
703 Changes from 2.0b4 to 2.0b5 (by cwhuang)
704 ========================================
705 - add ExternalPasswordAuth module
706 - accept unregistered call if Q.931 contains CalledPartyNumber
707 - add IncludeDestinationInfoInLCF option
708 - allow a second ARQ if srcCallSignalAddress is in SkipForwards
709 - support forwarding LRQs
710 - add call duration in seconds, thanks to Rodrigo Gonzalez
711 - change executable name to gnugk
712 - add DropCallsByReleaseComplete option
713 - support NATed endpoints by NATHandler
714 - add AcceptNeighborsCalls, change the meaning of AcceptUnregisteredCalls
715
716 Changes from 2.0b3 to 2.0b4 (by cwhuang)
717 ========================================
718 - add MySQLAliasAuth module
719 - add ExtraCriterion to MySQLAuth, remove CheckField
720 - bandwidth management is disable by default
721 - remove resourceManager, bandwidth management now in CallTable
722 - allow set neighbors without prefix, no LRQs will be sent to such neighbors
723 - send IRQ to an endpoint before expiring it
724 - only accept unregistered call from neighbors
725 - in SimplePasswordAuth module, allow expire password cache
726 - add NeighborPasswordAuth module
727 - check if LRQs is from IP of my neighbors 
728 - add dynamic resolving name for neighbors, thanks to Rodrigo Gonzalez
729 - add GkClient module
730 - allow remove a key or a section in the config from status thread
731 - remove isalnum check for aliases, we hope to use unicode. :)
732 - add total call counting for EndpointRec
733
734 Changes from 2.0b2 to 2.0b3 (by cwhuang)
735 ========================================
736 - add AcceptUnregisteredCalls feature
737 - fix problem of RouteTable in Linux with alias interfaces
738 - show endtime in CDR even if call not connected
739 - in routed mode, reject answered ARQ if no CallRec found
740 - add detailed explanations of known options
741 - support proxy for fast start logical channels
742 - fix GKHome not work for proxy
743
744 Changes from 2.0b1 to 2.0b2 (by cwhuang)
745 ========================================
746 - add proxy for T.120 logical channels
747 - add proxy for RTP logical channels, add Proxy section
748
749 Changes from 1.3 to now (by mmuehlen)
750 ====================================
751 - added destination analysis module list (gkDestAnalysis.cxx, gkDestAnalysis.h)
752   with a similar structure as the authentication module list 
753   (can be enabled with compiler option WITH_DEST_ANALYSIS_LIST)
754 - added base class 'GkLDAP' for LDAP access (gkldap.h gkldap.cxx)
755 - changed the following section names in ini-file 
756   (reason: LDAP is not only used for authentification):
757     LDAPAuth::LDAPAttributeNames -> GkLDAP:LDAPAttributeNames
758     LDAPAuth::Settings -> GkLDAP::Settings
759
760 Changes from 1.3 to 2.0b1 (by cwhuang)
761 ======================================
762 - redesign routed model, add RoutedMode section
763 - add H.245 routed support, including early connect
764 - TimeToLive now can be specified in config file
765 - improve multi-homed support
766 - new command unregisterip (jan)
767 - other minor cleanup
768
769 Changes from 1.2 to 1.3 (by mmuehlen)
770 ====================================
771 - fix a bug in Toolkit::GKName (13.11.01)
772 - add SrcInfo and GkName to CDR:
773     CDR|CallNo|CallId|Duration|Starttime|Endtime|CallerIP|CallerEndId|CalledIP|CalledEndId|DestInfo|
774     srcInfo|GkName (13.11.01)
775 - add SHA1 support for SimplePasswordAuth (14.12.01)
776 - add LDAPAliasAuth (03.01.02)
777 - add support for new voip.schema (15.01.02)
778
779 Changes from 1.2 to 1.3 (by cwhuang)
780 ====================================
781 - fix problem for lightweightRRQ without callSignalAddress & rasAddress
782 - rotate log on SIGHUP signal
783 - write pid to /var/run/gk.pid (can be specified by --pid option)
784 - rewrite dialedDigits OnLRQ
785
786 Changes from 1.1 to 1.2 (by cwhuang)
787 ====================================
788 - add MySQLPasswordAuth, need mysql++ to compile it
789 - show left time of calls in PrintCurrentCalls
790 - add 'Statistics' command
791 - Rewrite destinationAddress in H225_Setup_UUIE
792 - fix a bug in Toolkit::RewritePString
793 - send DRQ to endpoints when tear down a call, give up send Release Complete
794   (in some situation it causes deadlock, very strange!!)
795   however, some buggy endpoints would ignore DRQ, sigh...
796   only send Release Complete on 'DisconnectCall' command
797 - fix 'connectionList returned NULL' bug in SignalChannel.cxx
798 - modify SignalConnection::Send to more thread-safe
799 - modify OnARQ to fix routed mode problem
800 - show count of current calls of endpoints in PrintAllRegistrationsVerbose
801 - add 'Find' and 'FindVerbose' commands
802 - check endpoint identifier for fullRegistrationRRQ
803 - fix a (security) bug in lightweightRRQ
804 - add startup and running time to 'Version' command
805 - change EndpointRec::m_terminalType to be a pointer to reduce memory
806   consumed (sizeof H225_EndpointType = 2552 in x86)
807 - send Release Complete to endpoints when tear down a call (routed mode)
808 - disconnect calls of an endpoint on URQ
809 - add DefaultCallTimeout to remove staled calls
810 - fix bug in DisconnectAlias
811 - only use CallId to find CallRec if it presents, this fix a potential
812   CRV conflict in ARQ
813 - re-use endpoint identifier if call signal address found in RemovedList
814 - send URQ & DRQ from RAS port instead of arbitrary port
815 - print dialed number, number of calls in PrintCurrentCalls cmd
816 - print number of endpoints in PrintAllRegistrations cmd
817 - allow generate NB, UC CDR
818 - don't let ttl < 60
819 - only generate CDR for call that originated from my zone and connected
820   (must work in routed mode)
821 - redesign CallRec & CallTable
822 - extend debug cfg SEC command to retrieve a whole section
823
824 Changes from 1.0 to 1.1 (by cwhuang)
825 ====================================
826 - change neighbors structure
827 - add class GkAuthInitializer for authenticators initialization
828 - add authentication modules (gkauth.cxx, gkauth.h)
829
830 Changes from 1.0pre9 to 1.0 (by cwhuang)
831 ========================================
832 - add 'debug printrm' command
833 - change EndpointRec::Ptr to template
834
835 Changes from 1.0pre8 to 1.0pre9 (by cwhuang)
836 ============================================
837 - Neighbor function based on LRQ/LCF.
838   GK would cache the records in a list.
839   A command "PrintAllCached" is added to GkStatus.
840   
841 - Add more information in LCF reply, including terminal type, aliases
842   and supportedProtocols (if any) so that the neighbors could cache it.
843
844 - Re-design EndpointRec & RegistrationTable.
845   The output format of "PrintAllRegistrations" is also changed.
846
847 - Add permanent endpoints support for endpoints without RAS.
848
849 - Add gateway SupportedPrefix support.
850   Note the gateway aliases no longer be treated as prefixes.
851   If you want an alias to be a prefix, add it to SupportedPrefix
852   or config file.
853
854 - Replace using directive by using declaration to avoid namespace pollution.
855
856 Changes from 0.17 to 1.0pre8
857 ============================
858 - add destInfo to CallRec and CDR (cwhuang)
859 - rewrite some codes in OnRRQ to be more clean and compact (cwhuang)
860 - change H323RasSrv to be a separate thread, do housekeeping in the main thread (cwhuang)
861 - shutdown handler refine (cwhuang)
862 - allow aliases begin with '#' (cwhuang)
863 - don't search endpoint table for an ARQ to an answerCall (cwhuang)
864 - add registration timeout (cwhuang)
865 - add mutex to RegistrationTable for thread-safe (cwhuang)
866 - almost rewrite SoftPBX.cxx (cwhuang)
867 - add singleton.h, singleton.cxx, change all singleton objects to derive from a
868   template singleton base to avoid code duplication and allow a better cleanup
869   (cwhuang)
870 - remove all usages of for_each_with by STL for_each (cwhuang)
871 - add RegistrationTable::RemovePrefixes(const PString &) (cwhuang)
872 - add more fields to CDR output, add port number to ACF output (cwhuang)
873 - rewrite UnixShutdownhandler for graceful shutdown (cwhuang)
874 - change some members and methods in Toolkit to non-static (cwhuang)
875 - ensure Toolkit::Config be called after SetConfig
876   some order of initialization in gk.cxx changed accordingly (cwhuang)
877 - fix the reload mechanism, set m_RewriteFastmatch when reload (cwhuang)
878 - add 'reload' command to status thread and remove 'debug reload' command
879   'shutdown' command is also added, but not implemented yet (cwhuang)
880 - show a copyright notice to be compliant to GPL requirement (cwhuang)
881
882 - more documentation
883 - status thread: changed Disconnect command to DisconnectIp,
884   added DisconnectAlias, DisconnectCall, DisconnectEndpoint,
885   UnregisterAlias
886 - better handling of DCF
887 - better error checking for command arguments via status thread
888 - dummy implementation for TransferCall and MakeCall (doesn't do anything, yet)
889 - slightly different handling of SIGHUP
890 - RewriteE164: multiple comma-separated targets, randomly chosen
891 - simplified conversion between socket and H225 ip addresses
892 - first steps to implement H.245-routing (doesn't do anything, yet)
893 - commands via status thread are case insensitive
894 - changed command line option -h (home interface) to -i, new option -h (help)
895 - updated to latest OpenH323 version (pwlib 1.1.32, openh323 1.5.4)
896 - use callIndentifiers instead of callReferences (the first are globally unique)
897 - generate CallProceeding messages
898 - using all aliases of endpoint, not only the first alias
899 - generate CDRs, signal all ACFs
900 - check H.225 connections with Q.931 StatusEnquiry heartbeat (optional)
901 - changed default for RasSrv::RRQAuth back to confirm (so you can use
902   the gatekeeper without a config file)
903 - compile fixes for Visual C++ 6.0
904
905 Changes from 0.16 to 0.17
906 =========================
907
908 - fixed crash in status reporting of ACF in routed mode
909 - fixed bug, where the destCallSignalAdress still pointed to the GK
910   after being forwarded in routed mode (prevented routed call from
911   OhPhone -> Netmeeting)
912 - the config file gatekeeper.ini is no longer mandatory; simple
913   configurations will work without any config file, but you'll need
914   it for more complicated setups
915
916 Changes from 0.15 to 0.16
917 =========================
918
919 - small fixes to make the gatekeeper compile under Visual C++ 6.0
920
921 Changes from 0.14 to 0.15
922 =========================
923
924 - fixed unsafe cast from H323 alias to PASN_BMPString
925   Bacci Emiliano found it
926
927 Changes from 0.13 to 0.14
928 =========================
929
930 - major bug-fix for ohphone compatibility
931   Christoph Stueckjuergen found it
932
933 Changes from 0.12 to 0.13
934 =========================
935
936 - updated to compile with OpenH323 beta 3
937 - small fix in SignalConnection for Windows NT
938   by rama@anwsi.com
939 - multicast requests are answered to the specified port (not the
940   sender port
941   by Denver Trouton
942 - RegistrationTable::FindByPrefix now finds the longest prefix, not
943   the first one
944   by Michael Rubashenkov
945 - fix in H323RasSrv::OnLRQ to allow it to work with Cisco gatekeeper
946   by Michael Rubashenkov
947 - fix to allow Netmeeting to call ohphone (the other always way has
948   been working)
949   by Andreas Hofmeister
950
951 Changes from 0.11 to 0.12
952 =========================
953
954 - you must have a config file now to set the various new options
955   (eg. gatekeeper.ini in the current directory, or set a path on the
956   command line with -c)
957 - support for failover to other gatekeepers
958 - RAS messages can be forwarded to other gatekeepers
959 - TCP parameters can be configured in the config file
960 - what gateway to use on what E.164 prefix can be specified in the
961   config file
962 - overlapped sending: specify in the config file when to send
963   "incompleteAddress" on ARQ and collect more digits
964 - detailed authentication rules which endpoints may register based on
965   their IP numbers
966 - rule based authentication for usage of the status port
967 - alias rewriting: the gatekeeper has a list of E.164 aliases
968   that are replaced by another E.164 number
969 - many bug fixes...
970
971 - the timeToLive filed in RCF can be set on the command line with -l
972
973 - more detailed status messages (see GkStatusMsgFmt.html)
974   many patches from Henrik Joerring
975
976 Most of the changes in this release are donated by folks at MediaWays
977 (Markus Storm and Torsten Will).
978 They sent more stuff than I can mention here.
979
980
981 Changes from 0.10 to 0.11
982 =========================
983
984 - many memory leaks fixed
985   by Damian Slee
986 - LRQ implemented
987   patch by Ashley Unitt
988 - accept LRQ as Multicast, too
989 - when more bandwidth is requested than available we now grant ACF with
990   the bandwidth that's still available
991   input from Robert Jongbloed
992 - more attempts for a clean shutdown handling
993 - status thread accepts commands now (see gkstatus.txt)
994   patch by Ashley Unitt
995 - more detailed status messages (see GkStatusMsgFmt.html)
996   input from Henrik Joerring
997 - general code fixups
998   by nils@shkoo.com
999
1000
1001 Changes from 0.9 to 0.10
1002 ========================
1003
1004 - trace messages now use the Pwlib trace facility (use -t or -tt ... to
1005   turn them on and -o to write to a file)
1006   patch from Seungoh Jhung
1007 - support for lightweight registration updates
1008 - on shutdown all registered endpoint receive a UnregistrationRequest
1009 - support for gateways: for gateways we only compare the prefix of
1010   the E.164 address the gateway registered and assume that the gateway
1011   provides access to the whole address space (needs testing!)
1012   input from Frank Breitenbach
1013 - new command line option -h <ip> to specify the ip number the
1014   gatekeeper binds to. Now you can use IP aliases on Linux and
1015   start as many gatekeepers as you want.
1016   input from Markus Storm
1017 - status messages with ip numbers
1018   input from Seungoh Jhung
1019 - bugfixes
1020   from many contributors...
1021
1022
1023 Changes from 0.8 to 0.9
1024 =======================
1025
1026 - gatekeeper routed signaling implemented (only H.225; no H.245, yet)
1027   provided by Sergio Artero Martinez
1028 - Bugfix: RRQ from Innovaphone IP400 now ok
1029   input by Markus Storm
1030 - gk sends status messages to all clients connected to TCP port 7000
1031   (eg. for SNMP agent) - this is experimental and may evolve into
1032   a full-fledged interface to the gatekeeper
1033 - all mandatory RAS messages implemented
1034