Allow test_heap.c to compile when AST_DEVMODE is true, but TEST_FRAMEWORK is false
[asterisk/asterisk.git] / CHANGES
diff --git a/CHANGES b/CHANGES
index 69debbd..462da06 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -7,12 +7,11 @@
 === and the other UPGRADE files for older releases.
 ===
 ======================================================================
+
 ------------------------------------------------------------------------------
---- Functionality changes from Asterisk 1.6.2 to Asterisk 1.6.3  -------------
+--- Functionality changes from Asterisk 1.6.2 to Asterisk 1.8 ----------------
 ------------------------------------------------------------------------------
 
-
-
 SIP Changes
 -----------
  * Added preferred_codec_only option in sip.conf. This feature limits the joint
@@ -23,30 +22,175 @@ SIP Changes
  * Added tlsprivatekey option to sip.conf.  This allows a separate .pem file
    to be used for holding a private key.  If tlsprivatekey is not specified,
    tlscertfile is searched for both public and private key.
+ * Added tlsclientmethod option to sip.conf.  This allows the protocol for
+   outbound client connections to be specified.
+ * The sendrpid parameter has been expanded to include the options
+   'rpid' and 'pai'. Setting sendrpid to 'rpid' will cause Remote-Party-ID
+   header to be sent (equivalent to setting sendrpid=yes) and setting
+   sendrpid to 'pai' will cause P-Asserted-Identity header to be sent.
+ * The 'ignoresdpversion' behavior has been made automatic when the SDP received
+   is in response to a T.38 re-INVITE that Asterisk initiated. In this situation,
+   since the call will fail if Asterisk does not process the incoming SDP, Asterisk
+   will accept the SDP even if the SDP version number is not properly incremented,
+   but will generate a warning in the log indicating that the SIP peer that sent
+   the SDP should have the 'ignoresdpversion' option set.
+ * The 'nat' option has now been been changed to have yes, no, force_rport, and
+   comedia as valid values. Setting it to yes forces RFC 3581 behavior and enables
+   symmetric RTP support. Setting it to no only enables RFC 3581 behavior if the
+   remote side requests it and disables symmetric RTP support. Setting it to
+   force_rport forces RFC 3581 behavior and disables symmetric RTP support.
+   Setting it to comedia enables RFC 3581 behavior if the remote side requests it
+   and enables symmetric RTP support.
+ * Slave SIP channels now set HASH(SIP_CAUSE,<slave-channel-name>) on each
+   response.  This permits the master channel to know how each channel dialled
+   in a multi-channel setup resolved in an individual way.
+ * Added 'externtcpport' and 'externtlsport' options to allow custom port
+   configuration for the externip and externhost options when tcp or tls is used.
+ * Added support for message body (stored in content variable) to SIP NOTIFY message
+   accessible via AMI and CLI.
+ * Added 'media_address' configuration option which can be used to explicitly specify
+   the IP address to use in the SDP for media (audio, video, and text) streams.
+ * Added 'unsolicited_mailbox' configuration option which specifies the virtual mailbox
+   that the new/old count should be stored on if an unsolicited MWI NOTIFY message is
+   received.
+ * Added 'use_q850_reason' configuration option for generating and parsing
+   if available  Reason: Q.850;cause=<cause code> header. It is implemented
+   in some gateways for better passing PRI/SS7 cause codes via SIP.
+
+IAX2 Changes
+-----------
+ * Added rtsavesysname option into iax.conf to allow the systname to be saved
+   on realtime updates.
+
+MGCP Changes
+------------
+ * Added ability to preset channel variables on indicated lines with the setvar
+   configuration option.  Also, clearvars=all resets the list of variables back
+   to none.
+ * PacketCable NCS 1.0 support has been added for Docsis/Eurodocsis Networks.
+   See configs/res_pktccops.conf for more information.
 
 Applications
 ------------
+ * Added .m3u support for Mp3Player application.
  * Added progress option to the app_dial D() option.  When progress DTMF is
-   present, those values are sent immediatly upon receiving a PROGRESS message
+   present, those values are sent immediately upon receiving a PROGRESS message
    regardless if the call has been answered or not.
  * Added functionality to the app_dial F() option to continue with execution
    at the current location when no parameters are provided.
+ * Added the 'a' option to app_dial to answer the calling channel before any
+   announcements or macros are executed.
+ * Modified app_dial to set answertime when the called channel answers even if
+   the called channel hangs up during playback of an announcement.
+ * Modified app_dial 'r' option to support an additional parameter to play an
+   indication tone from indications.conf
  * Added c() option to app_chanspy. This option allows custom DTMF to be set
-   to cycle through the next avaliable channel.  By default this is still '*'.
+   to cycle through the next available channel.  By default this is still '*'.
  * Added x() option to app_chanspy.  This option allows DTMF to be set to
    exit the application.
+ * The Voicemail application has been improved to automatically ignore messages
+   that only contain silence.
+ * If you set maxmsg to 0 in voicemail.conf, Voicemail will consider the
+   associated mailbox(es) to be greetings-only.
+ * The ChanSpy application now has the 'S' option, which makes the application
+   automatically exit once it hits a point where no more channels are available
+   to spy on.
+ * The ChanSpy application also now has the 'E' option, which spies on a single
+   channel and exits when that channel hangs up.
+ * The MeetMe application now turns on the DENOISE() function by default, for
+   each participant.  In our tests, this has significantly decreased background
+   noise (especially noisy data centers).
+ * Voicemail now permits storage of secrets in a separate file, located in the
+   spool directory of each individual user.  The control for this is located in
+   the "passwordlocation" option in voicemail.conf.  Please see the sample
+   configuration for more information.
+ * The ChanIsAvail application now exposes the returned cause code using a separate
+   variable, AVAILCAUSECODE, instead of overwriting the device state in AVAILSTATUS.
+ * Added 'd' option to app_followme.  This option disables the "Please hold"
+   announcement.
+ * Added 'y' option to app_record. This option enables a mode where any DTMF digit
+   received will terminate recording.
+ * Voicemail now supports per mailbox settings for folders when using IMAP storage.
+   Previously the folder could only be set per context, but has now been extended 
+   using the imapfolder option.
+ * Voicemail now allows the pager date format to be specified separately from the
+   email date format.
+ * New applications JabberJoin, JabberLeave, and JabberSendGroup have been added
+   to allow joining, leaving, and sending text to group chats.
+ * MeetMe has a new option 'G' to play an announcement before joining a conference.
+ * Page has a new option 'A(x)' which will playback an announcement simultaneously
+   to all paged phones (and optionally excluding the caller's one using the new
+   option 'n') before the call is bridged.
 
 Dialplan Functions
 ------------------
  * Added new dialplan functions CONNECTEDLINE and REDIRECTING which permits
    setting various connected line and redirecting party information.
+ * CALLERID and CONNECTEDLINE dialplan functions have been extended to
+   support ISDN subaddressing.
  * The CHANNEL() function now supports the "name" option.
+ * For DAHDI channels, the CHANNEL() dialplan function now
+   supports changing the channel's buffer policy (for the current
+   call only), using this syntax:
+
+   exten => s,n,Set(CHANNEL(buffers)=6,full)
+
+   This would change the channel to the 'full' buffer policy and
+   6 (six) buffers. Possible options for this setting are the same
+   as those in chan_dahdi.conf.
+ * For DAHDI channels, the CHANNEL() dialplan function now allows
+   the dialplan to request changes in the configuration of the active
+   echo canceller on the channel (if any), for the current call only.
+   The syntax is:
+
+   exten => s,n,Set(CHANNEL(echocan_mode)=off)
+
+   The possible values are:
+
+     on - normal mode (the echo canceller is actually reinitialized)
+     off - disabled
+     fax - FAX/data mode (NLP disabled if possible, otherwise completely
+           disabled)
+     voice - voice mode (returns from FAX mode, reverting the changes that
+             were made when FAX mode was requested)
+ * Added new dialplan function MASTER_CHANNEL(), which permits retrieving
+   and setting variables on the channel which created the current channel.
+   Administrators should take care to avoid naming conflicts, when multiple
+   channels are dialled at once, especially when used with the Local channel
+   construct (which all could set variables on the master channel).  Usage
+   of the HASH() dialplan function, with the key set to the name of the slave
+   channel, is one approach that will avoid conflicts.
+ * Added new dialplan function MUTEAUDIO() for muting inbound and/or outbound
+   audio in a channel.
+ * func_odbc now allows multiple row results to be retrieved without using
+   mode=multirow.  If rowlimit is set, then additional rows may be retrieved
+   from the same query by using the name of the function which retrieved the
+   first row as an argument to ODBC_FETCH().
+ * Added JABBER_RECEIVE, which permits receiving XMPP messages from the
+   dialplan. This function returns the content of the received message.
+ * Added REPLACE, which searches a given variable name for a set of characters,
+   then either replaces them with a single character or deletes them.
+ * Added PASSTHRU, which literally passes the same argument back as its return
+   value.  The intent is to be able to use a literal string argument to
+   functions that currently require a variable name as an argument.
+
+Dialplan Variables
+------------------
+ * Added DYNAMIC_FEATURENAME which holds the last triggered dynamic feature.
+ * Added DYNAMIC_PEERNAME which holds the unique channel name on the other side
+   and is set when a dynamic feature is triggered.
 
 Queue changes
 -------------
+  * A new config option, penaltymemberslimit, has been added to queues.conf.
+    When set this option will disregard penalty settings when a queue has too
+    few members.
   * A new option, 'I' has been added to both app_queue and app_dial.
     By setting this option, Asterisk will not update the caller with
     connected line changes or redirecting party changes when they occur.
+  * A 'relative-peroidic-announce' option has been added to queues.conf.  When
+    enabled, this option will cause periodic announce times to be calculated
+    from the end of announcements rather than from the beginning.
 
 mISDN channel driver (chan_misdn) changes
 ----------------------------------------
@@ -63,7 +207,8 @@ mISDN channel driver (chan_misdn) changes
     used by the rest of the system.
   * Made use the nationalprefix and internationalprefix misdn.conf
     parameters to prefix any received number from the ISDN link if that
-    number has the corresponding Type-Of-Number.
+    number has the corresponding Type-Of-Number.  NOTE:  This includes
+    comparing the incoming call's dialed number against the MSN list.
   * Added the following new parameters: unknownprefix, netspecificprefix,
     subscriberprefix, and abbreviatedprefix in misdn.conf to prefix any
     received number from the ISDN link if that number has the corresponding
@@ -72,11 +217,18 @@ mISDN channel driver (chan_misdn) changes
     the CCBS/CCNR functionality.
   * Added new dialplan function mISDN_CC which permits retrieval of various
     values from an active call completion record.
-  * For PTP, you should manually send the COLR for an incomming redirected
-    call if the incoming call could or does experience further redirects.
-    Just set the REDIRECTING(to-num,i) = ${EXTEN} and set the
-    REDIRECTING(to-pres) to the COLR.  A call has been redirected if the
-    REDIRECTING(from-num) is not empty.
+  * For PTP, you should manually send the COLR of the redirected-to party
+    for an incomming redirected call if the incoming call could experience
+    further redirects.  Just set the REDIRECTING(to-num,i) = ${EXTEN} and
+    set the REDIRECTING(to-pres) to the COLR.  A call has been redirected
+    if the REDIRECTING(from-num) is not empty.
+  * For outgoing PTP redirected calls, you now need to use the inhibit(i)
+    option on all of the REDIRECTING statements before dialing the
+    redirected-to party.  You still have to set the REDIRECTING(to-xxx,i)
+    and the REDIRECTING(from-xxx,i) values.  The PTP call will update the
+    redirecting-to presentation (COLR) when it becomes available.
+  * Added outgoing_colp parameter to misdn.conf to filter outgoing COLP
+    information.
 
 thirdparty mISDN enhancements
 -----------------------------
@@ -89,16 +241,54 @@ The latest modified mISDN v1.1.x based version is available at:
 http://svn.digium.com/svn/thirdparty/mISDN/trunk
 http://svn.digium.com/svn/thirdparty/mISDNuser/trunk
 
-Taged versions of the modified mISDN code are available under:
+Tagged versions of the modified mISDN code are available under:
 http://svn.digium.com/svn/thirdparty/mISDN/tags
 http://svn.digium.com/svn/thirdparty/mISDNuser/tags
 
-SIP channel driver (chan_sip) changes
+libpri channel driver (chan_dahdi) DAHDI changes
 -------------------------------------------
-  * The sendrpid parameter has been expanded to include the options
-    'rpid' and 'pai'. Setting sendrpid to 'rpid' will cause Remote-Party-ID
-    header to be sent (equivalent to setting sendrpid=yes) and setting
-    sendrpid to 'pai' will cause P-Asserted-Identity header to be sent.
+ * The channel variable PRIREDIRECTREASON is now just a status variable
+   and it is also deprecated.  Use the REDIRECTING(reason) dialplan function
+   to read and alter the reason.
+ * For Q.SIG and ETSI PRI/BRI-PTP, you should manually send the COLR of the
+   redirected-to party for an incomming redirected call if the incoming call
+   could experience further redirects.  Just set the
+   REDIRECTING(to-num,i) = CALLERID(dnid) and set the REDIRECTING(to-pres)
+   to the COLR.  A call has been redirected if the REDIRECTING(count) is not
+   zero.
+ * For outgoing Q.SIG and ETSI PRI/BRI-PTP redirected calls, you need to
+   use the inhibit(i) option on all of the REDIRECTING statements before
+   dialing the redirected-to party.  You still have to set the
+   REDIRECTING(to-xxx,i) and the REDIRECTING(from-xxx,i) values.  The call
+   will update the redirecting-to presentation (COLR) when it becomes available.
+ * Added the ability to ignore calls that are not in a Multiple Subscriber
+   Number (MSN) list for PTMP CPE interfaces.
+ * Added dynamic range compression support for dahdi channels.  It is
+   configured via the rxdrc and txdrc parameters in chan_dahdi.conf.
+ * Added support for ISDN calling and called subaddress with partial support
+   for connected line subaddress.
+ * Added support for BRI PTMP NT mode. (Requires latest LibPRI.)
+ * Added handling of received HOLD/RETRIEVE messages and the optional ability
+   to transfer a held call on disconnect similar to an analog phone.
+ * Added CallRerouting/CallDeflection support for Q.SIG, ETSI PTP, ETSI PTMP.
+   Will reroute/deflect an outgoing call when receive the message.
+   Can use the DAHDISendCallreroutingFacility to send the message for the
+   supported switches.
+ * Added standard location to add options to chan_dahdi dialing:
+   Dial(DAHDI/g1[/extension[/options]])
+   Current options:
+   K(<keypad_digits>)
+   R Reverse charging indication
+ * Added Reverse Charging Indication (Collect calls) send/receive option.
+   Send reverse charging in SETUP message with the chan_dahdi R dialing option.
+   Dial(DAHDI/g1/extension/R)
+   Access received reverse charge in SETUP message by: ${CHANNEL(reversecharge)}
+   (requires latest LibPRI)
+ * Added ability to send/receive keypad digits in the SETUP message.
+   Send keypad digits in SETUP message with the chan_dahdi K(<keypad_digits>)
+   dialing option.  Dial(DAHDI/g1/[extension]/K(<keypad_digits>))
+   Access any received keypad digits in SETUP message by: ${CHANNEL(keypad_digits)}
+   (requires latest LibPRI)
 
 Asterisk Manager Interface
 --------------------------
@@ -113,6 +303,76 @@ Asterisk Manager Interface
    across all .conf files. All affected sample.conf files have been modified to
    reflect this change.  Previous options such as 'sslenable' still work,
    but options with the 'tls' prefix are preferred.
+ * Added a MuteAudio AMI action for muting inbound and/or outbound audio
+   in a channel. (res_mutestream.so)
+ * The configuration file manager.conf now supports a channelvars option, which
+   specifies a list of channel variables to include in each channel-oriented
+   event.
+ * The redirect command now has new parameters ExtraContext, ExtraExtension, 
+   and ExtraPriority to allow redirecting the second channel to a different
+   location than the first.
+
+Channel Event Logging
+---------------------
+ * A new interface, CEL, is introduced here. CEL logs single events, much like
+   the AMI, but it differs from the AMI in that it logs to db backends much
+   like CDR does; is based on the event subsystem introduced by Russell, and
+   can share in all its benefits; allows multiple backends to operate like CDR;
+   is specialized to event data that would be of concern to billing sytems,
+   like CDR. Backends for logging and accounting calls have been produced,
+   but a new CDR backend is still in development.
+
+CDR
+---
+ * 'linkedid' and 'peeraccount' are new CDR fields available to CDR officianados.
+   linkedid is based on uniqueID, but spreads to other channels as transfers, dials,
+   etc are performed. Thus the peices of CDR can be grouped into multilegged sets.
+ * Multiple files and formats can now be specified in cdr_custom.conf.
+ * cdr_syslog has been added which allows CDRs to be written directly to syslog.
+   See configs/cdr_syslog.conf.sample for more information.
+ * A 'sequence' field has been added to CDRs which can be combined with
+   linkedid or uniqueid to uniquely identify a CDR.
+
+Calendaring for Asterisk
+------------------------
+ * A new set of modules were added supporing calendar integration with Asterisk.
+   Dialplan functions for reading from and writing to calendars are included,
+   as well as the ability to execute dialplan logic upon calendar event notifications.
+   iCalendar, CalDAV, and Exchange Server calendars are supported (Exchange support
+   only tested on Exchange Server 2003 with no support for forms-based authentication).
+
+Multicast RTP Support
+---------------------
+ * A new RTP engine and channel driver have been added which supports Multicast RTP.
+   The channel driver can be used with the Page application to perform multicast RTP
+   paging. The dial string format is: MulticastRTP/<type>/<destination>/<control address>
+   Type can be either basic or linksys.
+   Destination is the IP address and port for the RTP packets.
+   Control address is specific to the linksys type and is used for sending the control
+   packets unique to them.
+
+Security Events Framework
+-------------------------
+ * Asterisk has a new C API for reporting security events.  The module res_security_log
+   sends these events to the "security" logger level.  Currently, AMI is the only
+   Asterisk component that reports security events.  However, SIP support will be
+   coming soon.  For more information on the security events framework, see the
+   "Security Events" chapter of the included documentation - doc/tex/asterisk.pdf.
+
+Miscellaneous
+-------------
+ * Addition of the Unit Test Framework API for managing registration and execution
+   of unit tests with the purpose of verifying the operation of C functions.
+ * SendText is now implemented in chan_gtalk and chan_jingle. It will simply send
+   XMPP text messages to the remote JID.
+ * Modules.conf has a new option - "require" - that marks a module as critical for 
+   the execution of Asterisk.
+   If one of the required modules fail to load, Asterisk will exit with a return
+   code set to 2.
+ * An 'X' option has been added to the asterisk application which enables #exec support.
+   This allows #exec to be used in asterisk.conf.
+ * jabber.conf supports a new option auth_policy that toggles auto user registration.
+
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 1.6.1 to Asterisk 1.6.2  -------------
 ------------------------------------------------------------------------------
@@ -122,17 +382,12 @@ SIP Changes
  * Added support for SUBSCRIBE/NOTIFY with dialog-info based call pickups.
    Snom phones use this for call pickup of extensions that the phone is
    subscribed to.
- * Added support for subscribing to a voice mailbox on a remote server and
-   making the new/old message count available to local devices.
  * Added support for setting the domain in the URI for caller of an
    outbound call by using the SIPFROMDOMAIN channel variable.
  * Added a new configuration option "remotesecret" for authentication to
    remote services. For backwards compatibility, "secret" still has the
    same function as before, but now you can configure both a remote secret and a
    local secret for mutual authentication.
- * Added a new 'faxdetect=yes|no' configuration option to sip.conf.  When this
-   option is enabled, a SIP channel will go to the fax extension (if it exists)
-   after T38 is negotiated.  This option is disabled by default.
  * If the channel variable  ATTENDED_TRANSFER_COMPLETE_SOUND is set, 
    the sound will be played to the target of an attended transfer
  * Added two new configuration options, "qualifygap" and "qualifypeers", which allow
@@ -199,9 +454,8 @@ Dialplan Functions
    and FIELDQTY dialplan functions, which also manage lists.
  * Added REALTIME_FIELD and REALTIME_HASH, which should aid users in better
    obtaining realtime data from the dialplan.
- * Added LOCAL_PEEK, which I have no idea how to use, but Leif Madsen wanted it.
-   Russell says it's, like, a scope resolution function for LOCAL variables.
-   Totally.  Hopefully, that means more to you than it does to me.
+ * Added LOCAL_PEEK, which allows access to variables in any stack frame within
+   a subroutine when using the GoSub() and Return() applications.
  * Added AUDIOHOOK_INHERIT. For information on its use, please see the output
    of "core show function AUDIOHOOK_INHERIT" from the CLI
  * Added AES_ENCRYPT. For information on its use, please see the output
@@ -212,8 +466,6 @@ Dialplan Functions
 
 Applications
 ------------
- * DAHDISendCallreroutingFacility parameters are now comma-separated,
-   instead of the old pipe.
  * Scheduled meetme conferences may now have their end times extended by
    using MeetMeAdmin.
  * app_authenticate now gives the ability to select a prompt other than
@@ -233,9 +485,6 @@ Miscellaneous
 -------------
  * The Asterisk CLI has a new command, "channel redirect", which is similar in
    operation to the AMI Redirect action.
- * res_jabber: autoprune has been disabled by default, to avoid misconfiguration 
-   that would end up being interpreted as a bug once Asterisk started removing 
-   the contacts from a user list.
  * extensions.conf now allows you to use keyword "same" to define an extension
    without actually specifying an extension.  It uses exactly the same pattern
    as previously used on the last "exten" line.  For example:
@@ -262,7 +511,7 @@ Miscellaneous
    can connect calls in passthrough mode, as well as record and play back files.
  * Successful and unsuccessful call pickup can now be alerted through sounds, by
    using pickupsound and pickupfailsound in features.conf.
- * ASTVARRUNDIR is now set to $(localstatedir)/run/asterisk by default. 
+ * ASTVARRUNDIR is now set to $(localstatedir)/run/asterisk by default.
    This means the asterisk pid file will now be in /var/run/asterisk/asterisk.pid on LINUX
    instead of the /var/run/asterisk.pid where it used to be. This will make
    installs as non-root easier to manage.
@@ -288,6 +537,20 @@ Asterisk Manager Interface
    SKINNYlines
    SKINNYshowline
 
+LDAP Schema File Additions
+--------------------------
+ * Added AsteriskDialplan, AsteriskAccount and AsteriskMailbox  objectClasses
+   to allow standalone dialplan, account and mailbox entries (STRUCTURAL)
+ * Added new Fields:
+   - AstAccountLanguage, AstAccountTransport, AstAccountPromiscRedir,
+   - AstAccountAccountCode, AstAccountSetVar, AstAccountAllowOverlap,
+   - AstAccountVideoSupport, AstAccountIgnoreSDPVersion
+ * Removed redundant IPaddr (there's already IPAddress)
+   - Gives more configuration Flags for SIP-Users available (tested)
+   - Allows to create Asterisk Attributes in defined Asterisk ObjectClasses
+     without extensibleObject (which really should be the last resort); gives
+     also additional possibilities for LDAP-filter 
+
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 1.6.0 to Asterisk 1.6.1  -------------
 ------------------------------------------------------------------------------
@@ -409,12 +672,8 @@ SIP Changes
    as well as periodically updating the IP address. These properties allow for
    better performance as well as recovery in the event of an IP change.
  * Performance improvements via using hash tables (astobj2) and doubly-linked lists to improve 
-   load/reload of large numbers of peers/users by ~40x (for large lists of peers.
-   Initially, we saw 4x improvement in call setup/destruction, but at the time
-   of merging, this gain has disappeared; further research will be done to try
-   and restore this performance improvement. Astobj2 refcounting is now used
-   for users, peers, and dialogs.  Users are encouraged to assist in regression
-   testing and problem reporting!
+   load/reload of large numbers of peers/users by ~40x (for large lists of peers).
+   These changes also provide performance improvements for call setup and tear down.
  * Added ability to specify registration expiry time on a per registration basis in
    the register line.
  * Added support for T140 RED - redundancy in T.140 to prevent text loss due to
@@ -631,6 +890,10 @@ CLI Changes
 
 SIP changes
 -----------
+ * Added a new 'faxdetect=yes|no' configuration option to sip.conf.  When this
+    option is enabled, Asterisk will watch for a CNG tone in the incoming audio
+    for a received call.  If it is detected, the channel will jump to the 
+    'fax' extension in the dialplan.
   * Improved NAT and STUN support.
      chan_sip now can use port numbers in bindaddr, externip and externhost
      options, as well as contact a STUN server to detect its external address
@@ -1050,11 +1313,11 @@ Logger changes
 --------------
   * Added rotatestrategy option to logger.conf, along with two new options:
      "timestamp" which will use the time to name the logger files instead of
-     sequence number; and "rotate", which rotates the names of the logfiles,
+     sequence number; and "rotate", which rotates the names of the log files,
      similar to the way syslog rotates files.
   * Added exec_after_rotate option to logger.conf, which allows a system
      command to be run after rotation.  This is primarily useful with
-     rotatestrategry=rotate, to allow a limit on the number of logfiles kept
+     rotatestrategy=rotate, to allow a limit on the number of log files kept
      and to ensure that the oldest log file gets deleted.
   * Added realtime support for the queue log