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 a59aff1..462da06 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -9,7 +9,7 @@
 ======================================================================
 
 ------------------------------------------------------------------------------
---- 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
@@ -44,33 +44,90 @@ SIP Changes
  * 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 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 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.
- * The ChanSpy application now has the 's' option, which makes the application
+ * 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
@@ -105,6 +162,17 @@ Dialplan Functions
    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
 ------------------
@@ -114,9 +182,15 @@ Dialplan Variables
 
 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
 ----------------------------------------
@@ -187,8 +261,34 @@ libpri channel driver (chan_dahdi) DAHDI changes
    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 Reverse Charging Indication receipt & transmission (requires latest
-   LibPRI).
+ * 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
 --------------------------
@@ -205,6 +305,12 @@ Asterisk Manager Interface
    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
 ---------------------
@@ -224,6 +330,8 @@ CDR
  * 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
 ------------------------
@@ -251,6 +359,20 @@ Security Events Framework
    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  -------------
 ------------------------------------------------------------------------------
@@ -260,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
@@ -337,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
@@ -350,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
@@ -371,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:
@@ -400,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.
@@ -426,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  -------------
 ------------------------------------------------------------------------------
@@ -765,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