Review Board 1.7.16


Support text messages outside of a call

Review Request #1042 - Created Dec. 1, 2010 and submitted

Russell Bryant
trunk
Reviewers
asterisk-dev
Asterisk
This branch contains a proposal for adding protocol independent support for processing text messages into and out of the dialplan, outside of a call.  The file doc/asterisk-messaging.txt contains more details on the proposal.  The introduction of the document is quoted here:

"    Asterisk has some limited support today for messaging.  The support that
exists primarily includes passing text messages in the context of a call.  The
SIP and IAX2 protocols have support for this, but that's it.

    There are a couple of other messaging protocols that are supported: Skype
and XMPP (Jabber).  The support of these is very minimal and not very integrated
into the architecture of Asterisk since these messages are not in the context of
a phone call.  They provide a combination of dialplan and manager interface
interfaces that are specific to each protocol.  There just is no current
architectural concept of dealing with text messages.

    The purpose of this proposal is to introduce text messaging into the
architecture of Asterisk.  For messaging support to exist in the true spirit of
Asterisk architecture, the design needs to achieve the following two goals:

    a) Protocol Independence
    b) Scriptable message routing

    The rest of this document goes through some details about how these goals
will be achieved in a way that is both architecturally compatible with Asterisk
as well as practical to implement."

----------

In addition to the documented proposal, I have made some good progress on implementation.  While the document includes some ideas for future enhancements, what is there so far should be usable.

 - core modifications to allow sending incoming messages through the dialplan
 - core modifications to allow outbound messages from the dialplan
 - modifications to res_jabber to allow inbound and outbound messages in the new architecture
 - changes to chan_sip to support inbound and outbound MESSAGE outside of a call
svn/testsuite/asterisk/team/russell/messaging:
  - This branch of the testsuite contains my tests for this branch, which include:
    - tests/sip/message_disabled
      - Ensure MESSAGE outside of a call is rejected when disabled.
    - tests/sip/message_unauth
      - When enabled, test sending a MESSAGE to Asterisk and send another back out from the dialplan.
    - tests/sip/message_auth
      - Same as the last test, but authenticate MESSAGE both inbound and outbound.
    - tests/sip/message_from_call
      - Set up a normal SIP call and send an out of call MESSAGE from the dialplan processing the call

I have also written some simple apps using the pjsua Python module from pjsip that can send and receive messages sent through Asterisk.

Lastly, I have done some manual testing of XMPP messages in and out of Asterisk using this code.
/trunk/CHANGES
Revision 309638 New Change
1
==============================================================================
1
==============================================================================
2
===
2
===
3
=== This file documents the new and/or enhanced functionality added in
3
=== This file documents the new and/or enhanced functionality added in
4
=== the Asterisk versions listed below. This file does NOT include
4
=== the Asterisk versions listed below. This file does NOT include
5
=== changes in behavior that would not be backwards compatible with
5
=== changes in behavior that would not be backwards compatible with
6
=== previous versions; for that information see the UPGRADE.txt file
6
=== previous versions; for that information see the UPGRADE.txt file
7
=== and the other UPGRADE files for older releases.
7
=== and the other UPGRADE files for older releases.
8
===
8
===
9
==============================================================================
9
==============================================================================
10

    
   
10

   
11
------------------------------------------------------------------------------
11
------------------------------------------------------------------------------
12
--- Functionality changes from Asterisk 1.8 to Asterisk 1.10 -----------------
12
--- Functionality changes from Asterisk 1.8 to Asterisk 1.10 -----------------
13
------------------------------------------------------------------------------
13
------------------------------------------------------------------------------
14

    
   
14

   

    
   
15
Text Messaging

    
   
16
--------------

    
   
17
 * Asterisk now has protocol independent support for processing text messages

    
   
18
   outside of a call.  Messages are routed through the Asterisk dialplan.

    
   
19
   SIP MESSAGE and XMPP are currently supported.  There are options in

    
   
20
   jabber.conf and sip.conf to allow enabling these features.

    
   
21
     -> jabber.conf: see the "sendtodialplan" and "context" options.

    
   
22
     -> sip.conf: see the "accept_outofcall_message" and "auth_message_requests"

    
   
23
        options.

    
   
24
   The MESSAGE() dialplan function and MessageSend() application have been

    
   
25
   added to go along with this functionality.  More detailed usage information

    
   
26
   can be found on the Asterisk wiki (http://wiki.asterisk.org/).

    
   
27

   
15
Parking
28
Parking
16
-------
29
-------
17
 * parkedmusicclass can now be set for non-default parking lots.
30
 * parkedmusicclass can now be set for non-default parking lots.
18

    
   
31

   
19
Asterisk Manager Interface
32
Asterisk Manager Interface
20
--------------------------
33
--------------------------
21
 * PeerStatus now includes Address and Port.
34
 * PeerStatus now includes Address and Port.
22
 * Added Hold events for when the remote party puts the call on and off hold
35
 * Added Hold events for when the remote party puts the call on and off hold
23
   for chan_dahdi ISDN channels.
36
   for chan_dahdi ISDN channels.
24
 * Added new action MeetmeListRooms to list active conferences (shows same
37
 * Added new action MeetmeListRooms to list active conferences (shows same
25
   data as "meetme list" at the CLI).
38
   data as "meetme list" at the CLI).
26

    
   
39

   
27
Asterisk HTTP Server
40
Asterisk HTTP Server
28
--------------------------
41
--------------------------
29
 * The HTTP Server can bind to IPv6 addresses.
42
 * The HTTP Server can bind to IPv6 addresses.
30

    
   
43

   
31
CLI Changes
44
CLI Changes
32
--------------------------
45
--------------------------
33
 * New 'gtalk show settings' command showing the current settings loaded from
46
 * New 'gtalk show settings' command showing the current settings loaded from
34
   gtalk.conf.
47
   gtalk.conf.
35
 * The 'logger reload' command now supports an optional argument, specifying an
48
 * The 'logger reload' command now supports an optional argument, specifying an
36
   alternate configuration file to use.
49
   alternate configuration file to use.
37

    
   
50

   
38
CDR
51
CDR
39
--------------------------
52
--------------------------
40
 * The filter option in cdr_adaptive_odbc now supports negating the argument,
53
 * The filter option in cdr_adaptive_odbc now supports negating the argument,
41
   thus allowing records which do NOT match the specified filter.
54
   thus allowing records which do NOT match the specified filter.
42

    
   
55

   
43
CODECS
56
CODECS
44
--------------------------
57
--------------------------
45
 * Ability to define custom SILK formats in codecs.conf.
58
 * Ability to define custom SILK formats in codecs.conf.
46
 * Addition of speex32 audio format with translation.
59
 * Addition of speex32 audio format with translation.
47

    
   
60

   
48
Dialplan Variables
61
Dialplan Variables
49
------------------
62
------------------
50
 * Added ASTETCDIR, ASTMODDIR, ASTVARLIBDIR, ASTDBDIR, ASTKEYDIR, ASTDATADIR,
63
 * Added ASTETCDIR, ASTMODDIR, ASTVARLIBDIR, ASTDBDIR, ASTKEYDIR, ASTDATADIR,
51
   ASTAGIDIR, ASTSPOOLDIR, ASTRUNDIR, ASTLOGDIR which hold the equivalent
64
   ASTAGIDIR, ASTSPOOLDIR, ASTRUNDIR, ASTLOGDIR which hold the equivalent
52
   variables from asterisk.conf.
65
   variables from asterisk.conf.
53

    
   
66

   
54
Dialplan Functions
67
Dialplan Functions
55
------------------
68
------------------
56
 * Added DB_KEYS, which lists the next set of keys in the Asterisk database
69
 * Added DB_KEYS, which lists the next set of keys in the Asterisk database
57
   hierarchy.
70
   hierarchy.
58

    
   
71

   
59
libpri channel driver (chan_dahdi) DAHDI changes
72
libpri channel driver (chan_dahdi) DAHDI changes
60
--------------------------
73
--------------------------
61
 * Added moh_signaling option to specify what to do when the channel's bridged
74
 * Added moh_signaling option to specify what to do when the channel's bridged
62
   peer puts the ISDN channel on hold.
75
   peer puts the ISDN channel on hold.
63
 * Added display_send and display_receive options to control how the display ie
76
 * Added display_send and display_receive options to control how the display ie
64
   is handled.  To send display text from the dialplan use the SendText()
77
   is handled.  To send display text from the dialplan use the SendText()
65
   application when the option is enabled.
78
   application when the option is enabled.
66
 * Added mcid_send option to allow sending a MCID request on a span.
79
 * Added mcid_send option to allow sending a MCID request on a span.
67

    
   
80

   
68
------------------------------------------------------------------------------
81
------------------------------------------------------------------------------
69
--- Functionality changes from Asterisk 1.6.2 to Asterisk 1.8 ----------------
82
--- Functionality changes from Asterisk 1.6.2 to Asterisk 1.8 ----------------
70
------------------------------------------------------------------------------
83
------------------------------------------------------------------------------
71

    
   
84

   
72
SIP Changes
85
SIP Changes
73
-----------
86
-----------
74
 * Added preferred_codec_only option in sip.conf. This feature limits the joint
87
 * Added preferred_codec_only option in sip.conf. This feature limits the joint
75
   codecs sent in response to an INVITE to the single most preferred codec.
88
   codecs sent in response to an INVITE to the single most preferred codec.
76
 * Added SIP_CODEC_OUTBOUND dialplan variable which can be used to set the codec
89
 * Added SIP_CODEC_OUTBOUND dialplan variable which can be used to set the codec
77
   to be used for the outgoing call. It must be one of the codecs configured
90
   to be used for the outgoing call. It must be one of the codecs configured
78
   for the device.
91
   for the device.
79
 * Added tlsprivatekey option to sip.conf.  This allows a separate .pem file
92
 * Added tlsprivatekey option to sip.conf.  This allows a separate .pem file
80
   to be used for holding a private key.  If tlsprivatekey is not specified,
93
   to be used for holding a private key.  If tlsprivatekey is not specified,
81
   tlscertfile is searched for both public and private key.
94
   tlscertfile is searched for both public and private key.
82
 * Added tlsclientmethod option to sip.conf.  This allows the protocol for
95
 * Added tlsclientmethod option to sip.conf.  This allows the protocol for
83
   outbound client connections to be specified.
96
   outbound client connections to be specified.
84
 * The sendrpid parameter has been expanded to include the options
97
 * The sendrpid parameter has been expanded to include the options
85
   'rpid' and 'pai'. Setting sendrpid to 'rpid' will cause Remote-Party-ID
98
   'rpid' and 'pai'. Setting sendrpid to 'rpid' will cause Remote-Party-ID
86
   header to be sent (equivalent to setting sendrpid=yes) and setting
99
   header to be sent (equivalent to setting sendrpid=yes) and setting
87
   sendrpid to 'pai' will cause P-Asserted-Identity header to be sent.
100
   sendrpid to 'pai' will cause P-Asserted-Identity header to be sent.
88
 * The 'ignoresdpversion' behavior has been made automatic when the SDP received
101
 * The 'ignoresdpversion' behavior has been made automatic when the SDP received
89
   is in response to a T.38 re-INVITE that Asterisk initiated. In this situation,
102
   is in response to a T.38 re-INVITE that Asterisk initiated. In this situation,
90
   since the call will fail if Asterisk does not process the incoming SDP, Asterisk
103
   since the call will fail if Asterisk does not process the incoming SDP, Asterisk
91
   will accept the SDP even if the SDP version number is not properly incremented,
104
   will accept the SDP even if the SDP version number is not properly incremented,
92
   but will generate a warning in the log indicating that the SIP peer that sent
105
   but will generate a warning in the log indicating that the SIP peer that sent
93
   the SDP should have the 'ignoresdpversion' option set.
106
   the SDP should have the 'ignoresdpversion' option set.
94
 * The 'nat' option has now been been changed to have yes, no, force_rport, and
107
 * The 'nat' option has now been been changed to have yes, no, force_rport, and
95
   comedia as valid values. Setting it to yes forces RFC 3581 behavior and enables
108
   comedia as valid values. Setting it to yes forces RFC 3581 behavior and enables
96
   symmetric RTP support. Setting it to no only enables RFC 3581 behavior if the
109
   symmetric RTP support. Setting it to no only enables RFC 3581 behavior if the
97
   remote side requests it and disables symmetric RTP support. Setting it to
110
   remote side requests it and disables symmetric RTP support. Setting it to
98
   force_rport forces RFC 3581 behavior and disables symmetric RTP support.
111
   force_rport forces RFC 3581 behavior and disables symmetric RTP support.
99
   Setting it to comedia enables RFC 3581 behavior if the remote side requests it
112
   Setting it to comedia enables RFC 3581 behavior if the remote side requests it
100
   and enables symmetric RTP support.
113
   and enables symmetric RTP support.
101
 * Slave SIP channels now set HASH(SIP_CAUSE,<slave-channel-name>) on each
114
 * Slave SIP channels now set HASH(SIP_CAUSE,<slave-channel-name>) on each
102
   response.  This permits the master channel to know how each channel dialled
115
   response.  This permits the master channel to know how each channel dialled
103
   in a multi-channel setup resolved in an individual way.
116
   in a multi-channel setup resolved in an individual way.
104
 * Added 'externtcpport' and 'externtlsport' options to allow custom port
117
 * Added 'externtcpport' and 'externtlsport' options to allow custom port
105
   configuration for the externip and externhost options when tcp or tls is used.
118
   configuration for the externip and externhost options when tcp or tls is used.
106
 * Added support for message body (stored in content variable) to SIP NOTIFY message
119
 * Added support for message body (stored in content variable) to SIP NOTIFY message
107
   accessible via AMI and CLI.
120
   accessible via AMI and CLI.
108
 * Added 'media_address' configuration option which can be used to explicitly specify
121
 * Added 'media_address' configuration option which can be used to explicitly specify
109
   the IP address to use in the SDP for media (audio, video, and text) streams.
122
   the IP address to use in the SDP for media (audio, video, and text) streams.
110
 * Added 'unsolicited_mailbox' configuration option which specifies the virtual mailbox
123
 * Added 'unsolicited_mailbox' configuration option which specifies the virtual mailbox
111
   that the new/old count should be stored on if an unsolicited MWI NOTIFY message is
124
   that the new/old count should be stored on if an unsolicited MWI NOTIFY message is
112
   received.
125
   received.
113
 * Added 'use_q850_reason' configuration option for generating and parsing
126
 * Added 'use_q850_reason' configuration option for generating and parsing
114
   if available  Reason: Q.850;cause=<cause code> header. It is implemented
127
   if available  Reason: Q.850;cause=<cause code> header. It is implemented
115
   in some gateways for better passing PRI/SS7 cause codes via SIP.
128
   in some gateways for better passing PRI/SS7 cause codes via SIP.
116
 * When dialing SIP peers, a new component may be added to the end of the dialstring
129
 * When dialing SIP peers, a new component may be added to the end of the dialstring
117
   to indicate that a specific remote IP address or host should be used when dialing
130
   to indicate that a specific remote IP address or host should be used when dialing
118
   the particular peer. The dialstring format is SIP/peer/exten/host_or_IP.
131
   the particular peer. The dialstring format is SIP/peer/exten/host_or_IP.
119
 * SRTP SDES support for encrypting calls to/from Asterisk over SIP. The
132
 * SRTP SDES support for encrypting calls to/from Asterisk over SIP. The
120
   ability to selectively force bridged channels to also be encrypted is also
133
   ability to selectively force bridged channels to also be encrypted is also
121
   implemented. Branching in the dialplan can be done based on whether or not
134
   implemented. Branching in the dialplan can be done based on whether or not
122
   a channel has secure media and/or signaling.
135
   a channel has secure media and/or signaling.
123
 * Added directmediapermit/directmediadeny to limit which peers can send direct media
136
 * Added directmediapermit/directmediadeny to limit which peers can send direct media
124
   to each other
137
   to each other
125
 * Added the 'snom_aoc_enabled' option to turn on support for sending Advice of
138
 * Added the 'snom_aoc_enabled' option to turn on support for sending Advice of
126
   Charge messages to snom phones.
139
   Charge messages to snom phones.
127
 * Added support for G.719 media streams.
140
 * Added support for G.719 media streams.
128
 * Added support for 16khz signed linear media streams.
141
 * Added support for 16khz signed linear media streams.
129
 * SIP is now able to bind to and communicate with IPv6 addresses. In addition,
142
 * SIP is now able to bind to and communicate with IPv6 addresses. In addition,
130
   RTP has been outfitted with the same abilities.
143
   RTP has been outfitted with the same abilities.
131
 * Added support for setting the Max-Forwards: header in SIP requests. Setting is
144
 * Added support for setting the Max-Forwards: header in SIP requests. Setting is
132
   available in device configurations as well as in the dial plan.
145
   available in device configurations as well as in the dial plan.
133
 * Addition of the 'subscribe_network_change' option for turning on and off
146
 * Addition of the 'subscribe_network_change' option for turning on and off
134
   res_stun_monitor module support in chan_sip.
147
   res_stun_monitor module support in chan_sip.
135
 * Addition of the 'auth_options_requests' option for turning on and off
148
 * Addition of the 'auth_options_requests' option for turning on and off
136
   authentication for OPTIONS requests in chan_sip.
149
   authentication for OPTIONS requests in chan_sip.
137

    
   
150

   
138

    
   
151

   
139
IAX2 Changes
152
IAX2 Changes
140
-----------
153
-----------
141
 * Added rtsavesysname option into iax.conf to allow the systname to be saved
154
 * Added rtsavesysname option into iax.conf to allow the systname to be saved
142
   on realtime updates.
155
   on realtime updates.
143
 * Added the ability for chan_iax2 to inform the dialplan whether or not
156
 * Added the ability for chan_iax2 to inform the dialplan whether or not
144
   encryption is being used. This interoperates with the SIP SRTP implementation
157
   encryption is being used. This interoperates with the SIP SRTP implementation
145
   so that a secure SIP call can be bridged to a secure IAX call when the
158
   so that a secure SIP call can be bridged to a secure IAX call when the
146
   dialplan requires bridged channels to be "secure".
159
   dialplan requires bridged channels to be "secure".
147
 * Addition of the 'subscribe_network_change' option for turning on and off
160
 * Addition of the 'subscribe_network_change' option for turning on and off
148
   res_stun_monitor module support in chan_iax.
161
   res_stun_monitor module support in chan_iax.
149

    
   
162

   
150

    
   
163

   
151
MGCP Changes
164
MGCP Changes
152
------------
165
------------
153
 * Added ability to preset channel variables on indicated lines with the setvar
166
 * Added ability to preset channel variables on indicated lines with the setvar
154
   configuration option.  Also, clearvars=all resets the list of variables back
167
   configuration option.  Also, clearvars=all resets the list of variables back
155
   to none.
168
   to none.
156
 * PacketCable NCS 1.0 support has been added for Docsis/Eurodocsis Networks.
169
 * PacketCable NCS 1.0 support has been added for Docsis/Eurodocsis Networks.
157
   See configs/res_pktccops.conf for more information.
170
   See configs/res_pktccops.conf for more information.
158

    
   
171

   
159
XMPP Google Talk/Jingle changes
172
XMPP Google Talk/Jingle changes
160
-------------------------------
173
-------------------------------
161
  * Added the externip option to gtalk.conf.
174
  * Added the externip option to gtalk.conf.
162
  * Added the stunaddr option to gtalk.conf which allows for the automatic
175
  * Added the stunaddr option to gtalk.conf which allows for the automatic
163
    retrieval of the external ip from a stun server.
176
    retrieval of the external ip from a stun server.
164

    
   
177

   
165
Applications
178
Applications
166
------------
179
------------
167
 * Added 'p' option to PickupChan() to allow for picking up channel by the first
180
 * Added 'p' option to PickupChan() to allow for picking up channel by the first
168
   match to a partial channel name.
181
   match to a partial channel name.
169
 * Added .m3u support for Mp3Player application.
182
 * Added .m3u support for Mp3Player application.
170
 * Added progress option to the app_dial D() option.  When progress DTMF is
183
 * Added progress option to the app_dial D() option.  When progress DTMF is
171
   present, those values are sent immediately upon receiving a PROGRESS message
184
   present, those values are sent immediately upon receiving a PROGRESS message
172
   regardless if the call has been answered or not.
185
   regardless if the call has been answered or not.
173
 * Added functionality to the app_dial F() option to continue with execution
186
 * Added functionality to the app_dial F() option to continue with execution
174
   at the current location when no parameters are provided.
187
   at the current location when no parameters are provided.
175
 * Added the 'a' option to app_dial to answer the calling channel before any
188
 * Added the 'a' option to app_dial to answer the calling channel before any
176
   announcements or macros are executed.
189
   announcements or macros are executed.
177
 * Modified app_dial to set answertime when the called channel answers even if
190
 * Modified app_dial to set answertime when the called channel answers even if
178
   the called channel hangs up during playback of an announcement.
191
   the called channel hangs up during playback of an announcement.
179
 * Modified app_dial 'r' option to support an additional parameter to play an
192
 * Modified app_dial 'r' option to support an additional parameter to play an
180
   indication tone from indications.conf
193
   indication tone from indications.conf
181
 * Added c() option to app_chanspy. This option allows custom DTMF to be set
194
 * Added c() option to app_chanspy. This option allows custom DTMF to be set
182
   to cycle through the next available channel.  By default this is still '*'.
195
   to cycle through the next available channel.  By default this is still '*'.
183
 * Added x() option to app_chanspy.  This option allows DTMF to be set to
196
 * Added x() option to app_chanspy.  This option allows DTMF to be set to
184
   exit the application.
197
   exit the application.
185
 * The Voicemail application has been improved to automatically ignore messages
198
 * The Voicemail application has been improved to automatically ignore messages
186
   that only contain silence.
199
   that only contain silence.
187
 * If you set maxmsg to 0 in voicemail.conf, Voicemail will consider the
200
 * If you set maxmsg to 0 in voicemail.conf, Voicemail will consider the
188
   associated mailbox(es) to be greetings-only.
201
   associated mailbox(es) to be greetings-only.
189
 * The ChanSpy application now has the 'S' option, which makes the application
202
 * The ChanSpy application now has the 'S' option, which makes the application
190
   automatically exit once it hits a point where no more channels are available
203
   automatically exit once it hits a point where no more channels are available
191
   to spy on.
204
   to spy on.
192
 * The ChanSpy application also now has the 'E' option, which spies on a single
205
 * The ChanSpy application also now has the 'E' option, which spies on a single
193
   channel and exits when that channel hangs up.
206
   channel and exits when that channel hangs up.
194
 * The MeetMe application now turns on the DENOISE() function by default, for
207
 * The MeetMe application now turns on the DENOISE() function by default, for
195
   each participant.  In our tests, this has significantly decreased background
208
   each participant.  In our tests, this has significantly decreased background
196
   noise (especially noisy data centers).
209
   noise (especially noisy data centers).
197
 * Voicemail now permits storage of secrets in a separate file, located in the
210
 * Voicemail now permits storage of secrets in a separate file, located in the
198
   spool directory of each individual user.  The control for this is located in
211
   spool directory of each individual user.  The control for this is located in
199
   the "passwordlocation" option in voicemail.conf.  Please see the sample
212
   the "passwordlocation" option in voicemail.conf.  Please see the sample
200
   configuration for more information.
213
   configuration for more information.
201
 * The ChanIsAvail application now exposes the returned cause code using a separate
214
 * The ChanIsAvail application now exposes the returned cause code using a separate
202
   variable, AVAILCAUSECODE, instead of overwriting the device state in AVAILSTATUS.
215
   variable, AVAILCAUSECODE, instead of overwriting the device state in AVAILSTATUS.
203
 * Added 'd' option to app_followme.  This option disables the "Please hold"
216
 * Added 'd' option to app_followme.  This option disables the "Please hold"
204
   announcement.
217
   announcement.
205
 * Added 'y' option to app_record. This option enables a mode where any DTMF digit
218
 * Added 'y' option to app_record. This option enables a mode where any DTMF digit
206
   received will terminate recording.
219
   received will terminate recording.
207
 * Voicemail now supports per mailbox settings for folders when using IMAP storage.
220
 * Voicemail now supports per mailbox settings for folders when using IMAP storage.
208
   Previously the folder could only be set per context, but has now been extended 
221
   Previously the folder could only be set per context, but has now been extended 
209
   using the imapfolder option.
222
   using the imapfolder option.
210
 * Voicemail now supports per mailbox settings for nextaftercmd and minsecs.
223
 * Voicemail now supports per mailbox settings for nextaftercmd and minsecs.
211
 * Voicemail now allows the pager date format to be specified separately from the
224
 * Voicemail now allows the pager date format to be specified separately from the
212
   email date format.
225
   email date format.
213
 * New applications JabberJoin, JabberLeave, and JabberSendGroup have been added
226
 * New applications JabberJoin, JabberLeave, and JabberSendGroup have been added
214
   to allow joining, leaving, and sending text to group chats.
227
   to allow joining, leaving, and sending text to group chats.
215
 * MeetMe has a new option 'G' to play an announcement before joining a conference.
228
 * MeetMe has a new option 'G' to play an announcement before joining a conference.
216
 * Page has a new option 'A(x)' which will playback an announcement simultaneously
229
 * Page has a new option 'A(x)' which will playback an announcement simultaneously
217
   to all paged phones (and optionally excluding the caller's one using the new
230
   to all paged phones (and optionally excluding the caller's one using the new
218
   option 'n') before the call is bridged.
231
   option 'n') before the call is bridged.
219
 * The 'f' option to Dial has been augmented to take an optional argument. If no
232
 * The 'f' option to Dial has been augmented to take an optional argument. If no
220
   argument is provided, the 'f' option works as it always has. If an argument is
233
   argument is provided, the 'f' option works as it always has. If an argument is
221
   provided, then the connected party information of all outgoing channels created
234
   provided, then the connected party information of all outgoing channels created
222
   during the Dial will be set to the argument passed to the 'f' option.
235
   during the Dial will be set to the argument passed to the 'f' option.
223
 * Dial now inherits the GOSUB_RETVAL from the peer, when the U() option runs a
236
 * Dial now inherits the GOSUB_RETVAL from the peer, when the U() option runs a
224
   Gosub on the peer.
237
   Gosub on the peer.
225
 * The OSP lookup application adds in/outbound network ID, optional security,
238
 * The OSP lookup application adds in/outbound network ID, optional security,
226
   number portability, QoS reporting, destination IP port, custom info and service
239
   number portability, QoS reporting, destination IP port, custom info and service
227
   type features.
240
   type features.
228
 * Added new application VMSayName that will play the recorded name of the voicemail
241
 * Added new application VMSayName that will play the recorded name of the voicemail
229
   user if it exists, otherwise will play the mailbox number.
242
   user if it exists, otherwise will play the mailbox number.
230
 * Added custom device states to ConfBridge bridges.  Use 'confbridge:<name>' to
243
 * Added custom device states to ConfBridge bridges.  Use 'confbridge:<name>' to
231
   retrieve state for a particular bridge, where <name> is the conference name
244
   retrieve state for a particular bridge, where <name> is the conference name
232
 * app_directory now allows exiting at any time using the operator or pound key.
245
 * app_directory now allows exiting at any time using the operator or pound key.
233
 * Voicemail now supports setting a locale per-mailbox.
246
 * Voicemail now supports setting a locale per-mailbox.
234
 * Two new applications are provided for declining counting phrases in multiple
247
 * Two new applications are provided for declining counting phrases in multiple
235
   languages.  See the application notes for SayCountedNoun and SayCountedAdj for
248
   languages.  See the application notes for SayCountedNoun and SayCountedAdj for
236
   more information.
249
   more information.
237
 * Voicemail now runs the externnotify script when pollmailboxes is activated and
250
 * Voicemail now runs the externnotify script when pollmailboxes is activated and
238
   notices a change.
251
   notices a change.
239
 * Voicemail now includes rdnis within msgXXXX.txt file.
252
 * Voicemail now includes rdnis within msgXXXX.txt file.
240
 * Added 'D' command to ExternalIVR full details in doc/externalivr.txt
253
 * Added 'D' command to ExternalIVR full details in doc/externalivr.txt
241
 * Added 'v' option to MeetMe to play voicemail greetings when a user joins/leaves
254
 * Added 'v' option to MeetMe to play voicemail greetings when a user joins/leaves
242
   a MeetMe conference
255
   a MeetMe conference
243

    
   
256

   
244
Dialplan Functions
257
Dialplan Functions
245
------------------
258
------------------
246
 * SRVQUERY and SRVRESULT functions added. This can be used to query and iterate
259
 * SRVQUERY and SRVRESULT functions added. This can be used to query and iterate
247
   over SRV records associated with a specific service. From the CLI, type
260
   over SRV records associated with a specific service. From the CLI, type
248
   'core show function SRVQUERY' and 'core show function SRVRESULT' for more
261
   'core show function SRVQUERY' and 'core show function SRVRESULT' for more
249
   details on how these may be used.
262
   details on how these may be used.
250
 * PITCH_SHIFT dialplan function added. This function can be used to modify the
263
 * PITCH_SHIFT dialplan function added. This function can be used to modify the
251
   pitch of a channel's tx and rx audio streams.
264
   pitch of a channel's tx and rx audio streams.
252
 * Added new dialplan functions CONNECTEDLINE and REDIRECTING which permits
265
 * Added new dialplan functions CONNECTEDLINE and REDIRECTING which permits
253
   setting various connected line and redirecting party information.
266
   setting various connected line and redirecting party information.
254
 * CALLERID and CONNECTEDLINE dialplan functions have been extended to
267
 * CALLERID and CONNECTEDLINE dialplan functions have been extended to
255
   support ISDN subaddressing.
268
   support ISDN subaddressing.
256
 * The CHANNEL() function now supports the "name" and "checkhangup" options.
269
 * The CHANNEL() function now supports the "name" and "checkhangup" options.
257
 * For DAHDI channels, the CHANNEL() dialplan function now allows
270
 * For DAHDI channels, the CHANNEL() dialplan function now allows
258
   the dialplan to request changes in the configuration of the active
271
   the dialplan to request changes in the configuration of the active
259
   echo canceller on the channel (if any), for the current call only.
272
   echo canceller on the channel (if any), for the current call only.
260
   The syntax is:
273
   The syntax is:
261

    
   
274

   
262
   exten => s,n,Set(CHANNEL(echocan_mode)=off)
275
   exten => s,n,Set(CHANNEL(echocan_mode)=off)
263

    
   
276

   
264
   The possible values are:
277
   The possible values are:
265

    
   
278

   
266
     on - normal mode (the echo canceller is actually reinitialized)
279
     on - normal mode (the echo canceller is actually reinitialized)
267
     off - disabled
280
     off - disabled
268
     fax - FAX/data mode (NLP disabled if possible, otherwise completely
281
     fax - FAX/data mode (NLP disabled if possible, otherwise completely
269
           disabled)
282
           disabled)
270
     voice - voice mode (returns from FAX mode, reverting the changes that
283
     voice - voice mode (returns from FAX mode, reverting the changes that
271
             were made when FAX mode was requested)
284
             were made when FAX mode was requested)
272
 * Added new dialplan function MASTER_CHANNEL(), which permits retrieving
285
 * Added new dialplan function MASTER_CHANNEL(), which permits retrieving
273
   and setting variables on the channel which created the current channel.
286
   and setting variables on the channel which created the current channel.
274
   Administrators should take care to avoid naming conflicts, when multiple
287
   Administrators should take care to avoid naming conflicts, when multiple
275
   channels are dialled at once, especially when used with the Local channel
288
   channels are dialled at once, especially when used with the Local channel
276
   construct (which all could set variables on the master channel).  Usage
289
   construct (which all could set variables on the master channel).  Usage
277
   of the HASH() dialplan function, with the key set to the name of the slave
290
   of the HASH() dialplan function, with the key set to the name of the slave
278
   channel, is one approach that will avoid conflicts.
291
   channel, is one approach that will avoid conflicts.
279
 * Added new dialplan function MUTEAUDIO() for muting inbound and/or outbound
292
 * Added new dialplan function MUTEAUDIO() for muting inbound and/or outbound
280
   audio in a channel.
293
   audio in a channel.
281
 * func_odbc now allows multiple row results to be retrieved without using
294
 * func_odbc now allows multiple row results to be retrieved without using
282
   mode=multirow.  If rowlimit is set, then additional rows may be retrieved
295
   mode=multirow.  If rowlimit is set, then additional rows may be retrieved
283
   from the same query by using the name of the function which retrieved the
296
   from the same query by using the name of the function which retrieved the
284
   first row as an argument to ODBC_FETCH().
297
   first row as an argument to ODBC_FETCH().
285
 * Added JABBER_RECEIVE, which permits receiving XMPP messages from the
298
 * Added JABBER_RECEIVE, which permits receiving XMPP messages from the
286
   dialplan. This function returns the content of the received message.
299
   dialplan. This function returns the content of the received message.
287
 * Added REPLACE, which searches a given variable name for a set of characters,
300
 * Added REPLACE, which searches a given variable name for a set of characters,
288
   then either replaces them with a single character or deletes them.
301
   then either replaces them with a single character or deletes them.
289
 * Added PASSTHRU, which literally passes the same argument back as its return
302
 * Added PASSTHRU, which literally passes the same argument back as its return
290
   value.  The intent is to be able to use a literal string argument to
303
   value.  The intent is to be able to use a literal string argument to
291
   functions that currently require a variable name as an argument.
304
   functions that currently require a variable name as an argument.
292
 * HASH-associated variables now can be inherited across channel creation, by
305
 * HASH-associated variables now can be inherited across channel creation, by
293
   prefixing the name of the hash at assignment with the appropriate number of
306
   prefixing the name of the hash at assignment with the appropriate number of
294
   underscores, just like variables.
307
   underscores, just like variables.
295
 * GROUP_MATCH_COUNT has been improved to allow regex matching on category
308
 * GROUP_MATCH_COUNT has been improved to allow regex matching on category
296
 * CHANNEL(secure_bridge_signaling) and CHANNEL(secure_bridge_media) to set/get
309
 * CHANNEL(secure_bridge_signaling) and CHANNEL(secure_bridge_media) to set/get
297
   whether or not channels that are bridged to the current channel will be
310
   whether or not channels that are bridged to the current channel will be
298
   required to have secure signaling and/or media.
311
   required to have secure signaling and/or media.
299
 * CHANNEL(secure_signaling) and CHANNEL(secure_media) to get whether or not
312
 * CHANNEL(secure_signaling) and CHANNEL(secure_media) to get whether or not
300
   the current channel has secure signaling and/or media.
313
   the current channel has secure signaling and/or media.
301
 * For DAHDI/ISDN channels, the CHANNEL() dialplan function now supports the
314
 * For DAHDI/ISDN channels, the CHANNEL() dialplan function now supports the
302
   "no_media_path" option.
315
   "no_media_path" option.
303
   Returns "0" if there is a B channel associated with the call.
316
   Returns "0" if there is a B channel associated with the call.
304
   Returns "1" if no B channel is associated with the call.  The call is either
317
   Returns "1" if no B channel is associated with the call.  The call is either
305
   on hold or is a call waiting call.
318
   on hold or is a call waiting call.
306
 * Added option to dialplan function CDR(), the 'f' option
319
 * Added option to dialplan function CDR(), the 'f' option
307
   allows for high resolution times for billsec and duration fields.
320
   allows for high resolution times for billsec and duration fields.
308
 * FILE() now supports line-mode and writing.
321
 * FILE() now supports line-mode and writing.
309
 * Added FIELDNUM(), which returns the 1-based offset of a field in a list.
322
 * Added FIELDNUM(), which returns the 1-based offset of a field in a list.
310
 * FRAME_TRACE(), for tracking internal ast_frames on a channel.
323
 * FRAME_TRACE(), for tracking internal ast_frames on a channel.
311

    
   
324

   
312
Dialplan Variables
325
Dialplan Variables
313
------------------
326
------------------
314
 * Added DYNAMIC_FEATURENAME which holds the last triggered dynamic feature.
327
 * Added DYNAMIC_FEATURENAME which holds the last triggered dynamic feature.
315
 * Added DYNAMIC_PEERNAME which holds the unique channel name on the other side
328
 * Added DYNAMIC_PEERNAME which holds the unique channel name on the other side
316
   and is set when a dynamic feature is triggered.
329
   and is set when a dynamic feature is triggered.
317
 * Added PARKINGLOT which can be used with parkeddynamic feature.conf option
330
 * Added PARKINGLOT which can be used with parkeddynamic feature.conf option
318
   to dynamically create a new parking lot matching the value this varible is
331
   to dynamically create a new parking lot matching the value this varible is
319
   set to.
332
   set to.
320
 * Added PARKINGDYNAMIC which represents the template parkinglot defined in
333
 * Added PARKINGDYNAMIC which represents the template parkinglot defined in
321
   features.conf that should be the base for dynamic parkinglots.
334
   features.conf that should be the base for dynamic parkinglots.
322
 * Added PARKINGDYNCONTEXT which tells what context a newly created dynamic
335
 * Added PARKINGDYNCONTEXT which tells what context a newly created dynamic
323
   parkinglot should have.
336
   parkinglot should have.
324
 * Added PARKINGDYNPOS which holds what parking positions a dynamic parkinglot
337
 * Added PARKINGDYNPOS which holds what parking positions a dynamic parkinglot
325
   should have.
338
   should have.
326

    
   
339

   
327
Queue changes
340
Queue changes
328
-------------
341
-------------
329
 * Added "ready" option to QUEUE_MEMBER counting to count free agents whose wrap-up
342
 * Added "ready" option to QUEUE_MEMBER counting to count free agents whose wrap-up
330
   timeout has expired.
343
   timeout has expired.
331
 * Added 'R' option to app_queue.  This option stops moh and indicates ringing
344
 * Added 'R' option to app_queue.  This option stops moh and indicates ringing
332
   to the caller when an Agent's phone is ringing.  This can be used to indicate
345
   to the caller when an Agent's phone is ringing.  This can be used to indicate
333
   to the caller that their call is about to be picked up, which is nice when
346
   to the caller that their call is about to be picked up, which is nice when
334
   one has been on hold for an extened period of time.
347
   one has been on hold for an extened period of time.
335
 * A new config option, penaltymemberslimit, has been added to queues.conf.
348
 * A new config option, penaltymemberslimit, has been added to queues.conf.
336
   When set this option will disregard penalty settings when a queue has too
349
   When set this option will disregard penalty settings when a queue has too
337
   few members.
350
   few members.
338
 * A new option, 'I' has been added to both app_queue and app_dial.
351
 * A new option, 'I' has been added to both app_queue and app_dial.
339
   By setting this option, Asterisk will not update the caller with
352
   By setting this option, Asterisk will not update the caller with
340
   connected line changes or redirecting party changes when they occur.
353
   connected line changes or redirecting party changes when they occur.
341
 * A 'relative-peroidic-announce' option has been added to queues.conf.  When
354
 * A 'relative-peroidic-announce' option has been added to queues.conf.  When
342
   enabled, this option will cause periodic announce times to be calculated
355
   enabled, this option will cause periodic announce times to be calculated
343
   from the end of announcements rather than from the beginning.
356
   from the end of announcements rather than from the beginning.
344
 * The autopause option in queues.conf can be passed a new value, "all." The
357
 * The autopause option in queues.conf can be passed a new value, "all." The
345
   result is that if a member becomes auto-paused, he will be paused in all
358
   result is that if a member becomes auto-paused, he will be paused in all
346
   queues for which he is a member, not just the queue that failed to reach
359
   queues for which he is a member, not just the queue that failed to reach
347
   the member.
360
   the member.
348
 * Added dialplan function QUEUE_EXISTS to check if a queue exists
361
 * Added dialplan function QUEUE_EXISTS to check if a queue exists
349
 * The queue logger now allows events to optionally propagate to a file,
362
 * The queue logger now allows events to optionally propagate to a file,
350
   even when realtime logging is turned on.  Additionally, realtime logging
363
   even when realtime logging is turned on.  Additionally, realtime logging
351
   supports sending the event arguments to 5 individual fields, although it
364
   supports sending the event arguments to 5 individual fields, although it
352
   will fallback to the previous data definition, if the new table layout is
365
   will fallback to the previous data definition, if the new table layout is
353
   not found.
366
   not found.
354

    
   
367

   
355
mISDN channel driver (chan_misdn) changes
368
mISDN channel driver (chan_misdn) changes
356
----------------------------------------
369
----------------------------------------
357
 * Added display_connected parameter to misdn.conf to put a display string
370
 * Added display_connected parameter to misdn.conf to put a display string
358
   in the CONNECT message containing the connected name and/or number if
371
   in the CONNECT message containing the connected name and/or number if
359
   the presentation setting permits it.
372
   the presentation setting permits it.
360
 * Added display_setup parameter to misdn.conf to put a display string
373
 * Added display_setup parameter to misdn.conf to put a display string
361
   in the SETUP message containing the caller name and/or number if the
374
   in the SETUP message containing the caller name and/or number if the
362
   presentation setting permits it.
375
   presentation setting permits it.
363
 * Made misdn.conf parameters localdialplan and cpndialplan take a -1 to
376
 * Made misdn.conf parameters localdialplan and cpndialplan take a -1 to
364
   indicate the dialplan settings are to be obtained from the asterisk
377
   indicate the dialplan settings are to be obtained from the asterisk
365
   channel.
378
   channel.
366
 * Made misdn.conf parameter callerid accept the "name" <number> format
379
 * Made misdn.conf parameter callerid accept the "name" <number> format
367
   used by the rest of the system.
380
   used by the rest of the system.
368
 * Made use the nationalprefix and internationalprefix misdn.conf
381
 * Made use the nationalprefix and internationalprefix misdn.conf
369
   parameters to prefix any received number from the ISDN link if that
382
   parameters to prefix any received number from the ISDN link if that
370
   number has the corresponding Type-Of-Number.  NOTE:  This includes
383
   number has the corresponding Type-Of-Number.  NOTE:  This includes
371
   comparing the incoming call's dialed number against the MSN list.
384
   comparing the incoming call's dialed number against the MSN list.
372
 * Added the following new parameters: unknownprefix, netspecificprefix,
385
 * Added the following new parameters: unknownprefix, netspecificprefix,
373
   subscriberprefix, and abbreviatedprefix in misdn.conf to prefix any
386
   subscriberprefix, and abbreviatedprefix in misdn.conf to prefix any
374
   received number from the ISDN link if that number has the corresponding
387
   received number from the ISDN link if that number has the corresponding
375
   Type-Of-Number.
388
   Type-Of-Number.
376
 * Added new dialplan application misdn_command which permits controlling
389
 * Added new dialplan application misdn_command which permits controlling
377
   the CCBS/CCNR functionality.
390
   the CCBS/CCNR functionality.
378
 * Added new dialplan function mISDN_CC which permits retrieval of various
391
 * Added new dialplan function mISDN_CC which permits retrieval of various
379
   values from an active call completion record.
392
   values from an active call completion record.
380
 * For PTP, you should manually send the COLR of the redirected-to party
393
 * For PTP, you should manually send the COLR of the redirected-to party
381
   for an incomming redirected call if the incoming call could experience
394
   for an incomming redirected call if the incoming call could experience
382
   further redirects.  Just set the REDIRECTING(to-num,i) = ${EXTEN} and
395
   further redirects.  Just set the REDIRECTING(to-num,i) = ${EXTEN} and
383
   set the REDIRECTING(to-pres) to the COLR.  A call has been redirected
396
   set the REDIRECTING(to-pres) to the COLR.  A call has been redirected
384
   if the REDIRECTING(from-num) is not empty.
397
   if the REDIRECTING(from-num) is not empty.
385
 * For outgoing PTP redirected calls, you now need to use the inhibit(i)
398
 * For outgoing PTP redirected calls, you now need to use the inhibit(i)
386
   option on all of the REDIRECTING statements before dialing the
399
   option on all of the REDIRECTING statements before dialing the
387
   redirected-to party.  You still have to set the REDIRECTING(to-xxx,i)
400
   redirected-to party.  You still have to set the REDIRECTING(to-xxx,i)
388
   and the REDIRECTING(from-xxx,i) values.  The PTP call will update the
401
   and the REDIRECTING(from-xxx,i) values.  The PTP call will update the
389
   redirecting-to presentation (COLR) when it becomes available.
402
   redirecting-to presentation (COLR) when it becomes available.
390
 * Added outgoing_colp parameter to misdn.conf to filter outgoing COLP
403
 * Added outgoing_colp parameter to misdn.conf to filter outgoing COLP
391
   information.
404
   information.
392

    
   
405

   
393
thirdparty mISDN enhancements
406
thirdparty mISDN enhancements
394
-----------------------------
407
-----------------------------
395
mISDN has been modified by Digium, Inc. to greatly expand facility message
408
mISDN has been modified by Digium, Inc. to greatly expand facility message
396
support to allow:
409
support to allow:
397
  * Enhanced COLP support for call diversion and transfer.
410
  * Enhanced COLP support for call diversion and transfer.
398
  * CCBS/CCNR support.
411
  * CCBS/CCNR support.
399

    
   
412

   
400
The latest modified mISDN v1.1.x based version is available at:
413
The latest modified mISDN v1.1.x based version is available at:
401
http://svn.digium.com/svn/thirdparty/mISDN/trunk
414
http://svn.digium.com/svn/thirdparty/mISDN/trunk
402
http://svn.digium.com/svn/thirdparty/mISDNuser/trunk
415
http://svn.digium.com/svn/thirdparty/mISDNuser/trunk
403

    
   
416

   
404
Tagged versions of the modified mISDN code are available under:
417
Tagged versions of the modified mISDN code are available under:
405
http://svn.digium.com/svn/thirdparty/mISDN/tags
418
http://svn.digium.com/svn/thirdparty/mISDN/tags
406
http://svn.digium.com/svn/thirdparty/mISDNuser/tags
419
http://svn.digium.com/svn/thirdparty/mISDNuser/tags
407

    
   
420

   
408
libpri channel driver (chan_dahdi) DAHDI changes
421
libpri channel driver (chan_dahdi) DAHDI changes
409
-------------------------------------------
422
-------------------------------------------
410
 * The channel variable PRIREDIRECTREASON is now just a status variable
423
 * The channel variable PRIREDIRECTREASON is now just a status variable
411
   and it is also deprecated.  Use the REDIRECTING(reason) dialplan function
424
   and it is also deprecated.  Use the REDIRECTING(reason) dialplan function
412
   to read and alter the reason.
425
   to read and alter the reason.
413
 * For Q.SIG and ETSI PRI/BRI-PTP, you should manually send the COLR of the
426
 * For Q.SIG and ETSI PRI/BRI-PTP, you should manually send the COLR of the
414
   redirected-to party for an incomming redirected call if the incoming call
427
   redirected-to party for an incomming redirected call if the incoming call
415
   could experience further redirects.  Just set the
428
   could experience further redirects.  Just set the
416
   REDIRECTING(to-num,i) = CALLERID(dnid) and set the REDIRECTING(to-pres)
429
   REDIRECTING(to-num,i) = CALLERID(dnid) and set the REDIRECTING(to-pres)
417
   to the COLR.  A call has been redirected if the REDIRECTING(count) is not
430
   to the COLR.  A call has been redirected if the REDIRECTING(count) is not
418
   zero.
431
   zero.
419
 * For outgoing Q.SIG and ETSI PRI/BRI-PTP redirected calls, you need to
432
 * For outgoing Q.SIG and ETSI PRI/BRI-PTP redirected calls, you need to
420
   use the inhibit(i) option on all of the REDIRECTING statements before
433
   use the inhibit(i) option on all of the REDIRECTING statements before
421
   dialing the redirected-to party.  You still have to set the
434
   dialing the redirected-to party.  You still have to set the
422
   REDIRECTING(to-xxx,i) and the REDIRECTING(from-xxx,i) values.  The call
435
   REDIRECTING(to-xxx,i) and the REDIRECTING(from-xxx,i) values.  The call
423
   will update the redirecting-to presentation (COLR) when it becomes available.
436
   will update the redirecting-to presentation (COLR) when it becomes available.
424
 * Added the ability to ignore calls that are not in a Multiple Subscriber
437
 * Added the ability to ignore calls that are not in a Multiple Subscriber
425
   Number (MSN) list for PTMP CPE interfaces.
438
   Number (MSN) list for PTMP CPE interfaces.
426
 * Added dynamic range compression support for dahdi channels.  It is
439
 * Added dynamic range compression support for dahdi channels.  It is
427
   configured via the rxdrc and txdrc parameters in chan_dahdi.conf.
440
   configured via the rxdrc and txdrc parameters in chan_dahdi.conf.
428
 * Added support for ISDN calling and called subaddress with partial support
441
 * Added support for ISDN calling and called subaddress with partial support
429
   for connected line subaddress.
442
   for connected line subaddress.
430
 * Added support for BRI PTMP NT mode. (Requires latest LibPRI.)
443
 * Added support for BRI PTMP NT mode. (Requires latest LibPRI.)
431
 * Added handling of received HOLD/RETRIEVE messages and the optional ability
444
 * Added handling of received HOLD/RETRIEVE messages and the optional ability
432
   to transfer a held call on disconnect similar to an analog phone.
445
   to transfer a held call on disconnect similar to an analog phone.
433
 * Added CallRerouting/CallDeflection support for Q.SIG, ETSI PTP, ETSI PTMP.
446
 * Added CallRerouting/CallDeflection support for Q.SIG, ETSI PTP, ETSI PTMP.
434
   Will reroute/deflect an outgoing call when receive the message.
447
   Will reroute/deflect an outgoing call when receive the message.
435
   Can use the DAHDISendCallreroutingFacility to send the message for the
448
   Can use the DAHDISendCallreroutingFacility to send the message for the
436
   supported switches.
449
   supported switches.
437
 * Added standard location to add options to chan_dahdi dialing:
450
 * Added standard location to add options to chan_dahdi dialing:
438
   Dial(DAHDI/g1[/extension[/options]])
451
   Dial(DAHDI/g1[/extension[/options]])
439
   Current options:
452
   Current options:
440
   K(<keypad_digits>)
453
   K(<keypad_digits>)
441
   R Reverse charging indication
454
   R Reverse charging indication
442
 * Added Reverse Charging Indication (Collect calls) send/receive option.
455
 * Added Reverse Charging Indication (Collect calls) send/receive option.
443
   Send reverse charging in SETUP message with the chan_dahdi R dialing option.
456
   Send reverse charging in SETUP message with the chan_dahdi R dialing option.
444
   Dial(DAHDI/g1/extension/R)
457
   Dial(DAHDI/g1/extension/R)
445
   Access received reverse charge in SETUP message by: ${CHANNEL(reversecharge)}
458
   Access received reverse charge in SETUP message by: ${CHANNEL(reversecharge)}
446
   (requires latest LibPRI)
459
   (requires latest LibPRI)
447
 * Added ability to send/receive keypad digits in the SETUP message.
460
 * Added ability to send/receive keypad digits in the SETUP message.
448
   Send keypad digits in SETUP message with the chan_dahdi K(<keypad_digits>)
461
   Send keypad digits in SETUP message with the chan_dahdi K(<keypad_digits>)
449
   dialing option.  Dial(DAHDI/g1/[extension]/K(<keypad_digits>))
462
   dialing option.  Dial(DAHDI/g1/[extension]/K(<keypad_digits>))
450
   Access any received keypad digits in SETUP message by: ${CHANNEL(keypad_digits)}
463
   Access any received keypad digits in SETUP message by: ${CHANNEL(keypad_digits)}
451
   (requires latest LibPRI)
464
   (requires latest LibPRI)
452
 * Added ability to send and receive ETSI Explicit Call Transfer (ECT) messages
465
 * Added ability to send and receive ETSI Explicit Call Transfer (ECT) messages
453
   to eliminate tromboned calls.  A tromboned call goes out an interface and comes
466
   to eliminate tromboned calls.  A tromboned call goes out an interface and comes
454
   back into the same interface.  Tromboned calls happen because of call routing,
467
   back into the same interface.  Tromboned calls happen because of call routing,
455
   call deflection, call forwarding, and call transfer.
468
   call deflection, call forwarding, and call transfer.
456
 * Added the ability to send and receive ETSI Advice-Of-Charge messages. 
469
 * Added the ability to send and receive ETSI Advice-Of-Charge messages. 
457
 * Added the ability to support call waiting calls.  (The SETUP has no B channel
470
 * Added the ability to support call waiting calls.  (The SETUP has no B channel
458
   assigned.)
471
   assigned.)
459
 * Added Malicious Call ID (MCID) event to the AMI call event class.
472
 * Added Malicious Call ID (MCID) event to the AMI call event class.
460
 * Added Message Waiting Indication (MWI) support for ISDN PTMP endpoints (phones).
473
 * Added Message Waiting Indication (MWI) support for ISDN PTMP endpoints (phones).
461

    
   
474

   
462
Asterisk Manager Interface
475
Asterisk Manager Interface
463
--------------------------
476
--------------------------
464
 * The Hangup action now accepts a Cause header which may be used to
477
 * The Hangup action now accepts a Cause header which may be used to
465
   set the channel's hangup cause.
478
   set the channel's hangup cause.
466
 * sslprivatekey option added to manager.conf and http.conf.  Adds the ability
479
 * sslprivatekey option added to manager.conf and http.conf.  Adds the ability
467
   to specify a separate .pem file to hold a private key.  By default sslcert
480
   to specify a separate .pem file to hold a private key.  By default sslcert
468
   is used to hold both the public and private key.
481
   is used to hold both the public and private key.
469
 * Options in manager.conf and http.conf with the 'ssl' prefix have been replaced
482
 * Options in manager.conf and http.conf with the 'ssl' prefix have been replaced
470
   for options containing the 'tls' prefix.  For example, 'sslenable' is now
483
   for options containing the 'tls' prefix.  For example, 'sslenable' is now
471
   'tlsenable'.  This has been done in effort to keep ssl and tls options consistent
484
   'tlsenable'.  This has been done in effort to keep ssl and tls options consistent
472
   across all .conf files. All affected sample.conf files have been modified to
485
   across all .conf files. All affected sample.conf files have been modified to
473
   reflect this change.  Previous options such as 'sslenable' still work,
486
   reflect this change.  Previous options such as 'sslenable' still work,
474
   but options with the 'tls' prefix are preferred.
487
   but options with the 'tls' prefix are preferred.
475
 * Added a MuteAudio AMI action for muting inbound and/or outbound audio
488
 * Added a MuteAudio AMI action for muting inbound and/or outbound audio
476
   in a channel. (res_mutestream.so)
489
   in a channel. (res_mutestream.so)
477
 * The configuration file manager.conf now supports a channelvars option, which
490
 * The configuration file manager.conf now supports a channelvars option, which
478
   specifies a list of channel variables to include in each channel-oriented
491
   specifies a list of channel variables to include in each channel-oriented
479
   event.
492
   event.
480
 * The redirect command now has new parameters ExtraContext, ExtraExtension, 
493
 * The redirect command now has new parameters ExtraContext, ExtraExtension, 
481
   and ExtraPriority to allow redirecting the second channel to a different
494
   and ExtraPriority to allow redirecting the second channel to a different
482
   location than the first.
495
   location than the first.
483
 * Added new event "JabberStatus" in the Jabber module to monitor buddies
496
 * Added new event "JabberStatus" in the Jabber module to monitor buddies
484
   status.
497
   status.
485
 * Added a "MixMonitorMute" AMI action for muting inbound and/or outbound audio
498
 * Added a "MixMonitorMute" AMI action for muting inbound and/or outbound audio
486
   in a MixMonitor recording.
499
   in a MixMonitor recording.
487
 * The 'iax2 show peers' output is now similar to the expected output of
500
 * The 'iax2 show peers' output is now similar to the expected output of
488
   'sip show peers'.
501
   'sip show peers'.
489
 * Added Advice-Of-Charge events (AOC-S, AOC-D, and AOC-E) in the new
502
 * Added Advice-Of-Charge events (AOC-S, AOC-D, and AOC-E) in the new
490
   aoc event class.
503
   aoc event class.
491
 * Added Advice-Of-Charge manager action, AOCMessage, for generating AOC-D and
504
 * Added Advice-Of-Charge manager action, AOCMessage, for generating AOC-D and
492
   AOC-E messages on a channel.
505
   AOC-E messages on a channel.
493
 * A DBGetComplete event now follows a DBGetResponse, to make the DBGet action
506
 * A DBGetComplete event now follows a DBGetResponse, to make the DBGet action
494
   conform more closely to similar events.
507
   conform more closely to similar events.
495
 * Added a new eventfilter option per user to allow whitelisting and blacklisting
508
 * Added a new eventfilter option per user to allow whitelisting and blacklisting
496
   of events.
509
   of events.
497
 * Added optional parkinglot variable for park command.
510
 * Added optional parkinglot variable for park command.
498

    
   
511

   
499
Channel Event Logging
512
Channel Event Logging
500
---------------------
513
---------------------
501
 * A new interface, CEL, is introduced here. CEL logs single events, much like
514
 * A new interface, CEL, is introduced here. CEL logs single events, much like
502
   the AMI, but it differs from the AMI in that it logs to db backends much
515
   the AMI, but it differs from the AMI in that it logs to db backends much
503
   like CDR does; is based on the event subsystem introduced by Russell, and
516
   like CDR does; is based on the event subsystem introduced by Russell, and
504
   can share in all its benefits; allows multiple backends to operate like CDR;
517
   can share in all its benefits; allows multiple backends to operate like CDR;
505
   is specialized to event data that would be of concern to billing sytems,
518
   is specialized to event data that would be of concern to billing sytems,
506
   like CDR. Backends for logging and accounting calls have been produced,
519
   like CDR. Backends for logging and accounting calls have been produced,
507
   but a new CDR backend is still in development.
520
   but a new CDR backend is still in development.
508

    
   
521

   
509
CDR
522
CDR
510
---
523
---
511
 * 'linkedid' and 'peeraccount' are new CDR fields available to CDR aficionados.
524
 * 'linkedid' and 'peeraccount' are new CDR fields available to CDR aficionados.
512
   linkedid is based on uniqueID, but spreads to other channels as transfers, dials,
525
   linkedid is based on uniqueID, but spreads to other channels as transfers, dials,
513
   etc are performed. Thus the pieces of CDR can be grouped into multilegged sets.
526
   etc are performed. Thus the pieces of CDR can be grouped into multilegged sets.
514
 * Multiple files and formats can now be specified in cdr_custom.conf.
527
 * Multiple files and formats can now be specified in cdr_custom.conf.
515
 * cdr_syslog has been added which allows CDRs to be written directly to syslog.
528
 * cdr_syslog has been added which allows CDRs to be written directly to syslog.
516
   See configs/cdr_syslog.conf.sample for more information.
529
   See configs/cdr_syslog.conf.sample for more information.
517
 * A 'sequence' field has been added to CDRs which can be combined with
530
 * A 'sequence' field has been added to CDRs which can be combined with
518
   linkedid or uniqueid to uniquely identify a CDR.
531
   linkedid or uniqueid to uniquely identify a CDR.
519
 * Handling of billsec and duration field has changed. If your table definition
532
 * Handling of billsec and duration field has changed. If your table definition
520
   specifies those fields as float,double or similar they will now be logged with
533
   specifies those fields as float,double or similar they will now be logged with
521
   microsecond accuracy instead of a whole integer.
534
   microsecond accuracy instead of a whole integer.
522

    
   
535

   
523
Calendaring for Asterisk
536
Calendaring for Asterisk
524
------------------------
537
------------------------
525
 * A new set of modules were added supporing calendar integration with Asterisk.
538
 * A new set of modules were added supporing calendar integration with Asterisk.
526
   Dialplan functions for reading from and writing to calendars are included,
539
   Dialplan functions for reading from and writing to calendars are included,
527
   as well as the ability to execute dialplan logic upon calendar event notifications.
540
   as well as the ability to execute dialplan logic upon calendar event notifications.
528
   iCalendar, CalDAV, and Exchange Server calendars (via res_calendar_exchange for
541
   iCalendar, CalDAV, and Exchange Server calendars (via res_calendar_exchange for
529
   Exchange Server 2003 with no write or attendee support, and res_calendar_ews for
542
   Exchange Server 2003 with no write or attendee support, and res_calendar_ews for
530
   Exchange Server 2007+ with full write and attendee support) are supported (Exchange
543
   Exchange Server 2007+ with full write and attendee support) are supported (Exchange
531
   2003 support does not support forms-based authentication).
544
   2003 support does not support forms-based authentication).
532

    
   
545

   
533
Call Completion Supplementary Services for Asterisk
546
Call Completion Supplementary Services for Asterisk
534
---------------------------------------------------
547
---------------------------------------------------
535
 * Call completion support has been added for SIP, DAHDI/ISDN, and DAHDI/analog.
548
 * Call completion support has been added for SIP, DAHDI/ISDN, and DAHDI/analog.
536
   DAHDI/ISDN supports call completion for the following switch types:
549
   DAHDI/ISDN supports call completion for the following switch types:
537
   EuroIsdn(ETSI) for PTP and PTMP modes, and Qsig.
550
   EuroIsdn(ETSI) for PTP and PTMP modes, and Qsig.
538
   See doc/CCSS_architecture.pdf and doc/tex/ccss.tex(asterisk.pdf) for details.
551
   See doc/CCSS_architecture.pdf and doc/tex/ccss.tex(asterisk.pdf) for details.
539

    
   
552

   
540
Multicast RTP Support
553
Multicast RTP Support
541
---------------------
554
---------------------
542
 * A new RTP engine and channel driver have been added which supports Multicast RTP.
555
 * A new RTP engine and channel driver have been added which supports Multicast RTP.
543
   The channel driver can be used with the Page application to perform multicast RTP
556
   The channel driver can be used with the Page application to perform multicast RTP
544
   paging. The dial string format is: MulticastRTP/<type>/<destination>/<control address>
557
   paging. The dial string format is: MulticastRTP/<type>/<destination>/<control address>
545
   Type can be either basic or linksys.
558
   Type can be either basic or linksys.
546
   Destination is the IP address and port for the RTP packets.
559
   Destination is the IP address and port for the RTP packets.
547
   Control address is specific to the linksys type and is used for sending the control
560
   Control address is specific to the linksys type and is used for sending the control
548
   packets unique to them.
561
   packets unique to them.
549

    
   
562

   
550
Security Events Framework
563
Security Events Framework
551
-------------------------
564
-------------------------
552
 * Asterisk has a new C API for reporting security events.  The module res_security_log
565
 * Asterisk has a new C API for reporting security events.  The module res_security_log
553
   sends these events to the "security" logger level.  Currently, AMI is the only
566
   sends these events to the "security" logger level.  Currently, AMI is the only
554
   Asterisk component that reports security events.  However, SIP support will be
567
   Asterisk component that reports security events.  However, SIP support will be
555
   coming soon.  For more information on the security events framework, see the
568
   coming soon.  For more information on the security events framework, see the
556
   "Security Events" chapter of the included documentation - doc/tex/asterisk.pdf.
569
   "Security Events" chapter of the included documentation - doc/tex/asterisk.pdf.
557

    
   
570

   
558
Fax
571
Fax
559
---
572
---
560
 * A technology independent fax frontend (res_fax) has been added to Asterisk.
573
 * A technology independent fax frontend (res_fax) has been added to Asterisk.
561
 * A spandsp based fax backend (res_fax_spandsp) has been added.
574
 * A spandsp based fax backend (res_fax_spandsp) has been added.
562
 * The app_fax module has been deprecated in favor of the res_fax module and
575
 * The app_fax module has been deprecated in favor of the res_fax module and
563
   the new res_fax_spandsp backend.
576
   the new res_fax_spandsp backend.
564
 * The SendFAX and ReceiveFAX applications now send their log messages to a
577
 * The SendFAX and ReceiveFAX applications now send their log messages to a
565
   'fax' logger level, instead of to the generic logger levels. To see these
578
   'fax' logger level, instead of to the generic logger levels. To see these
566
   messages, the system's logger.conf file will need to direct the 'fax' logger
579
   messages, the system's logger.conf file will need to direct the 'fax' logger
567
   level to one or more destinations; the logger.conf.sample file includes an
580
   level to one or more destinations; the logger.conf.sample file includes an
568
   example of how to do this. Note that if the 'fax' logger level is *not*
581
   example of how to do this. Note that if the 'fax' logger level is *not*
569
   directed to at least one destination, log messages generated by these
582
   directed to at least one destination, log messages generated by these
570
   applications will be lost, and that if the 'fax' logger level is directed to
583
   applications will be lost, and that if the 'fax' logger level is directed to
571
   the console, the 'core set verbose' and 'core set debug' CLI commands will
584
   the console, the 'core set verbose' and 'core set debug' CLI commands will
572
   have no effect on whether the messages appear on the console or not.
585
   have no effect on whether the messages appear on the console or not.
573

    
   
586

   
574
Miscellaneous
587
Miscellaneous
575
-------------
588
-------------
576
 * The transmit_silence_during_record option in asterisk.conf.sample has been removed.
589
 * The transmit_silence_during_record option in asterisk.conf.sample has been removed.
577
   Now, in order to enable transmitting silence during record the transmit_silence
590
   Now, in order to enable transmitting silence during record the transmit_silence
578
   option should be used.  transmit_silence_during_record remains a valid option, but
591
   option should be used.  transmit_silence_during_record remains a valid option, but
579
   defaults to the behavior of the transmit_silence option.
592
   defaults to the behavior of the transmit_silence option.
580
 * Addition of the Unit Test Framework API for managing registration and execution
593
 * Addition of the Unit Test Framework API for managing registration and execution
581
   of unit tests with the purpose of verifying the operation of C functions.
594
   of unit tests with the purpose of verifying the operation of C functions.
582
 * SendText is now implemented in chan_gtalk and chan_jingle. It will simply send
595
 * SendText is now implemented in chan_gtalk and chan_jingle. It will simply send
583
   XMPP text messages to the remote JID.
596
   XMPP text messages to the remote JID.
584
 * Modules.conf has a new option - "require" - that marks a module as critical for 
597
 * Modules.conf has a new option - "require" - that marks a module as critical for 
585
   the execution of Asterisk.
598
   the execution of Asterisk.
586
   If one of the required modules fail to load, Asterisk will exit with a return
599
   If one of the required modules fail to load, Asterisk will exit with a return
587
   code set to 2.
600
   code set to 2.
588
 * An 'X' option has been added to the asterisk application which enables #exec support.
601
 * An 'X' option has been added to the asterisk application which enables #exec support.
589
   This allows #exec to be used in asterisk.conf.
602
   This allows #exec to be used in asterisk.conf.
590
 * jabber.conf supports a new option auth_policy that toggles auto user registration.
603
 * jabber.conf supports a new option auth_policy that toggles auto user registration.
591
 * A new lockconfdir option has been added to asterisk.conf to protect the
604
 * A new lockconfdir option has been added to asterisk.conf to protect the
592
   configuration directory (/etc/asterisk by default) during reloads.
605
   configuration directory (/etc/asterisk by default) during reloads.
593
 * The parkeddynamic option has been added to features.conf to enable the creation
606
 * The parkeddynamic option has been added to features.conf to enable the creation
594
   of dynamic parkinglots.
607
   of dynamic parkinglots.
595
 * chan_dahdi now supports reporting alarms over AMI either by channel or span via
608
 * chan_dahdi now supports reporting alarms over AMI either by channel or span via
596
   the reportalarms config option.
609
   the reportalarms config option.
597
 * chan_dahdi supports dialing configuring and dialing by device file name.
610
 * chan_dahdi supports dialing configuring and dialing by device file name.
598
   DAHDI/span-name!local!1 will use /dev/dahdi/span-name/local/1 . Likewise
611
   DAHDI/span-name!local!1 will use /dev/dahdi/span-name/local/1 . Likewise
599
   it may appear in chan_dahdi.conf as 'channel => span-name!local!1'.
612
   it may appear in chan_dahdi.conf as 'channel => span-name!local!1'.
600
 * A new options for chan_dahdi.conf: 'ignore_failed_channels'. Boolean.
613
 * A new options for chan_dahdi.conf: 'ignore_failed_channels'. Boolean.
601
   False by default. If set, chan_dahdi will ignore failed 'channel' entries.
614
   False by default. If set, chan_dahdi will ignore failed 'channel' entries.
602
   Handy for the above name-based syntax as it does not depend on
615
   Handy for the above name-based syntax as it does not depend on
603
   initialization order.
616
   initialization order.
604
 * The Realtime dialplan switch now caches entries for 1 second.  This provides a
617
 * The Realtime dialplan switch now caches entries for 1 second.  This provides a
605
   significant increase in performance (about 3X) for installations using this switchtype.
618
   significant increase in performance (about 3X) for installations using this switchtype.
606
 * Distributed devicestate now supports the use of the XMPP protocol, in addition to
619
 * Distributed devicestate now supports the use of the XMPP protocol, in addition to
607
   AIS.  For more information, please see doc/distributed_devstate-XMPP.txt
620
   AIS.  For more information, please see doc/distributed_devstate-XMPP.txt
608
 * The addition of G.719 pass-through support.
621
 * The addition of G.719 pass-through support.
609
 * Added support for 16khz Speex audio.  This can be enabled by using 'allow=speex16'
622
 * Added support for 16khz Speex audio.  This can be enabled by using 'allow=speex16'
610
   during device configuration.
623
   during device configuration.
611
 * The UNISTIM channel driver (chan_unistim) has been updated to support devices that
624
 * The UNISTIM channel driver (chan_unistim) has been updated to support devices that
612
   have less than 3 lines on the LCD.
625
   have less than 3 lines on the LCD.
613
 * Realtime now supports database failover.  See the sample extconfig.conf for details.
626
 * Realtime now supports database failover.  See the sample extconfig.conf for details.
614
 * The addition of improved translation path building for wideband codecs.  Sample
627
 * The addition of improved translation path building for wideband codecs.  Sample
615
   rate changes during translation are now avoided unless absolutely necessary.
628
   rate changes during translation are now avoided unless absolutely necessary.
616
 * The addition of the res_stun_monitor module for monitoring and reacting to network
629
 * The addition of the res_stun_monitor module for monitoring and reacting to network
617
   changes while behind a NAT.
630
   changes while behind a NAT.
618

    
   
631

   
619
CLI Changes
632
CLI Changes
620
-----------
633
-----------
621
 * The 'core set debug' and 'core set verbose' commands, in previous versions, could
634
 * The 'core set debug' and 'core set verbose' commands, in previous versions, could
622
   optionally accept a filename, to apply the setting only to the code generated from
635
   optionally accept a filename, to apply the setting only to the code generated from
623
   that source file when Asterisk was built. However, there are some modules in Asterisk
636
   that source file when Asterisk was built. However, there are some modules in Asterisk
624
   that are composed of multiple source files, so this did not result in the behavior
637
   that are composed of multiple source files, so this did not result in the behavior
625
   that users expected. In this version, 'core set debug' and 'core set verbose'
638
   that users expected. In this version, 'core set debug' and 'core set verbose'
626
   can optionally accept *module* names instead (with or without the .so extension),
639
   can optionally accept *module* names instead (with or without the .so extension),
627
   which applies the setting to the entire module specified, regardless of which source
640
   which applies the setting to the entire module specified, regardless of which source
628
   files it was built from.
641
   files it was built from.
629
 * New 'manager show settings' command showing the current settings loaded from
642
 * New 'manager show settings' command showing the current settings loaded from
630
   manager.conf. 
643
   manager.conf. 
631
 * Added 'all' keyword to the CLI command "channel request hangup" so that you can send
644
 * Added 'all' keyword to the CLI command "channel request hangup" so that you can send
632
   the channel hangup request to all channels.
645
   the channel hangup request to all channels.
633
 * Added a "core reload" CLI command that executes a global reload of Asterisk.
646
 * Added a "core reload" CLI command that executes a global reload of Asterisk.
634

    
   
647

   
635
------------------------------------------------------------------------------
648
------------------------------------------------------------------------------
636
--- Functionality changes from Asterisk 1.6.1 to Asterisk 1.6.2  -------------
649
--- Functionality changes from Asterisk 1.6.1 to Asterisk 1.6.2  -------------
637
------------------------------------------------------------------------------
650
------------------------------------------------------------------------------
638

    
   
651

   
639
SIP Changes
652
SIP Changes
640
-----------
653
-----------
641
 * Added support for SUBSCRIBE/NOTIFY with dialog-info based call pickups.
654
 * Added support for SUBSCRIBE/NOTIFY with dialog-info based call pickups.
642
   Snom phones use this for call pickup of extensions that the phone is
655
   Snom phones use this for call pickup of extensions that the phone is
643
   subscribed to.
656
   subscribed to.
644
 * Added support for setting the domain in the URI for caller of an
657
 * Added support for setting the domain in the URI for caller of an
645
   outbound call by using the SIPFROMDOMAIN channel variable.
658
   outbound call by using the SIPFROMDOMAIN channel variable.
646
 * Added a new configuration option "remotesecret" for authentication to
659
 * Added a new configuration option "remotesecret" for authentication to
647
   remote services. For backwards compatibility, "secret" still has the
660
   remote services. For backwards compatibility, "secret" still has the
648
   same function as before, but now you can configure both a remote secret and a
661
   same function as before, but now you can configure both a remote secret and a
649
   local secret for mutual authentication.
662
   local secret for mutual authentication.
650
 * If the channel variable  ATTENDED_TRANSFER_COMPLETE_SOUND is set, 
663
 * If the channel variable  ATTENDED_TRANSFER_COMPLETE_SOUND is set, 
651
   the sound will be played to the target of an attended transfer
664
   the sound will be played to the target of an attended transfer
652
 * Added two new configuration options, "qualifygap" and "qualifypeers", which allow
665
 * Added two new configuration options, "qualifygap" and "qualifypeers", which allow
653
   finer control over how many peers Asterisk will qualify and the gap between them
666
   finer control over how many peers Asterisk will qualify and the gap between them
654
   when all peers need to be qualified at the same time.
667
   when all peers need to be qualified at the same time.
655
 * Added a new 'ignoresdpversion' option to sip.conf.  When this is enabled
668
 * Added a new 'ignoresdpversion' option to sip.conf.  When this is enabled
656
   (either globally or for a specific peer), chan_sip will treat any SDP data
669
   (either globally or for a specific peer), chan_sip will treat any SDP data
657
   it receives as new data and update the media stream accordingly.  By
670
   it receives as new data and update the media stream accordingly.  By
658
   default, Asterisk will only modify the media stream if the SDP session
671
   default, Asterisk will only modify the media stream if the SDP session
659
   version received is different from the current SDP session version.  This
672
   version received is different from the current SDP session version.  This
660
   option is required to interoperate with devices that have non-standard SDP
673
   option is required to interoperate with devices that have non-standard SDP
661
   session version implementations (observed with Microsoft OCS).  This option
674
   session version implementations (observed with Microsoft OCS).  This option
662
   is disabled by default.
675
   is disabled by default.
663
 * The parsing of register => lines in sip.conf has been modified to allow a port
676
 * The parsing of register => lines in sip.conf has been modified to allow a port
664
   to be present in the "user" portion. Please see the sip.conf.sample file for more
677
   to be present in the "user" portion. Please see the sip.conf.sample file for more
665
   information
678
   information
666
 * Added support for subscribing to MWI on a remote server and making the status available
679
 * Added support for subscribing to MWI on a remote server and making the status available
667
   as a mailbox. Please see the sip.conf.sample file for more information.
680
   as a mailbox. Please see the sip.conf.sample file for more information.
668
 * Added a function to remove SIP headers added in the dialplan before the
681
 * Added a function to remove SIP headers added in the dialplan before the
669
   first INVITE is generated - SIPRemoveHeader()
682
   first INVITE is generated - SIPRemoveHeader()
670
 * Channel variables set with setvar= in a device configuration is now 
683
 * Channel variables set with setvar= in a device configuration is now 
671
   set both for inbound and outbound calls.
684
   set both for inbound and outbound calls.
672
 * Added support for ITU G.722.1 and G.722.1C (Siren7 and Siren14) media streams.
685
 * Added support for ITU G.722.1 and G.722.1C (Siren7 and Siren14) media streams.
673

    
   
686

   
674
IAX2 changes
687
IAX2 changes
675
------------
688
------------
676
  * Added immediate option to iax.conf
689
  * Added immediate option to iax.conf
677
  * Added forceencryption option to iax.conf
690
  * Added forceencryption option to iax.conf
678
  * Added Encryption and Trunk status to manager command "iaxpeers"
691
  * Added Encryption and Trunk status to manager command "iaxpeers"
679

    
   
692

   
680
Skinny Changes
693
Skinny Changes
681
--------------
694
--------------
682
 * The configuration file now holds separate sections for devices and lines.
695
 * The configuration file now holds separate sections for devices and lines.
683
   Please have a look at configs/skinny.conf.sample and change your skinny.conf
696
   Please have a look at configs/skinny.conf.sample and change your skinny.conf
684
   accordingly.
697
   accordingly.
685

    
   
698

   
686
DAHDI Changes
699
DAHDI Changes
687
-------------
700
-------------
688
 * chan_dahdi now supports MFC/R2 signaling when Asterisk is compiled with
701
 * chan_dahdi now supports MFC/R2 signaling when Asterisk is compiled with
689
   support for LibOpenR2.  http://www.libopenr2.org/
702
   support for LibOpenR2.  http://www.libopenr2.org/
690
 * The UK option waitfordialtone has been added for use with BT analog
703
 * The UK option waitfordialtone has been added for use with BT analog
691
   lines.
704
   lines.
692
 * Added a 'faxbuffers' configuration option to chan_dahdi.conf.  This option
705
 * Added a 'faxbuffers' configuration option to chan_dahdi.conf.  This option
693
   is used in conjunction with the 'faxdetect' configuration option.  When
706
   is used in conjunction with the 'faxdetect' configuration option.  When
694
   'faxbuffers' is used and fax tones are detected, the channel will dynamically
707
   'faxbuffers' is used and fax tones are detected, the channel will dynamically
695
   switch to the configured faxbuffers policy.  For example, to use 6 buffers
708
   switch to the configured faxbuffers policy.  For example, to use 6 buffers
696
   and a 'full' buffer policy for a fax transmission, add:
709
   and a 'full' buffer policy for a fax transmission, add:
697
     faxbuffers=>6,full
710
     faxbuffers=>6,full
698
   The faxbuffers configuration will be in affect until the call is torn down.
711
   The faxbuffers configuration will be in affect until the call is torn down.
699
 * Added service message support for 4ESS/5ESS switches.
712
 * Added service message support for 4ESS/5ESS switches.
700

    
   
713

   
701
Dialplan Functions
714
Dialplan Functions
702
------------------
715
------------------
703
 * For DAHDI channels, the CHANNEL() dialplan function now
716
 * For DAHDI channels, the CHANNEL() dialplan function now
704
   supports changing the channel's buffer policy (for the current
717
   supports changing the channel's buffer policy (for the current
705
   call only), using this syntax:
718
   call only), using this syntax:
706

    
   
719

   
707
   exten => s,n,Set(CHANNEL(buffers)=6,full)
720
   exten => s,n,Set(CHANNEL(buffers)=6,full)
708

    
   
721

   
709
   This would change the channel to the 'full' buffer policy and
722
   This would change the channel to the 'full' buffer policy and
710
   6 (six) buffers. Possible options for this setting are the same
723
   6 (six) buffers. Possible options for this setting are the same
711
   as those in chan_dahdi.conf.
724
   as those in chan_dahdi.conf.
712
 * Added a new dialplan function, CURLOPT, which permits setting various
725
 * Added a new dialplan function, CURLOPT, which permits setting various
713
   options that may be useful with the CURL dialplan function, such as
726
   options that may be useful with the CURL dialplan function, such as
714
   cookies, proxies, connection timeouts, passwords, etc.
727
   cookies, proxies, connection timeouts, passwords, etc.
715
 * Permit the syntax and synopsis fields of the corresponding dialplan
728
 * Permit the syntax and synopsis fields of the corresponding dialplan
716
   functions to be individually set from func_odbc.conf.
729
   functions to be individually set from func_odbc.conf.
717
 * Added debugging CLI functions to func_odbc, 'odbc read' and 'odbc write'.
730
 * Added debugging CLI functions to func_odbc, 'odbc read' and 'odbc write'.
718
 * func_odbc now may specify an insert query to execute, when the write query
731
 * func_odbc now may specify an insert query to execute, when the write query
719
   affects 0 rows (usually indicating that no such row exists).
732
   affects 0 rows (usually indicating that no such row exists).
720
 * Added a new dialplan function, LISTFILTER, which permits removing elements
733
 * Added a new dialplan function, LISTFILTER, which permits removing elements
721
   from a set list, by name.  Uses the same general syntax as the existing CUT
734
   from a set list, by name.  Uses the same general syntax as the existing CUT
722
   and FIELDQTY dialplan functions, which also manage lists.
735
   and FIELDQTY dialplan functions, which also manage lists.
723
 * Added REALTIME_FIELD and REALTIME_HASH, which should aid users in better
736
 * Added REALTIME_FIELD and REALTIME_HASH, which should aid users in better
724
   obtaining realtime data from the dialplan.
737
   obtaining realtime data from the dialplan.
725
 * Added LOCAL_PEEK, which allows access to variables in any stack frame within
738
 * Added LOCAL_PEEK, which allows access to variables in any stack frame within
726
   a subroutine when using the GoSub() and Return() applications.
739
   a subroutine when using the GoSub() and Return() applications.
727
 * Added AUDIOHOOK_INHERIT. For information on its use, please see the output
740
 * Added AUDIOHOOK_INHERIT. For information on its use, please see the output
728
   of "core show function AUDIOHOOK_INHERIT" from the CLI
741
   of "core show function AUDIOHOOK_INHERIT" from the CLI
729
 * Added AES_ENCRYPT. For information on its use, please see the output
742
 * Added AES_ENCRYPT. For information on its use, please see the output
730
   of "core show function AES_ENCRYPT" from the CLI
743
   of "core show function AES_ENCRYPT" from the CLI
731
 * Added AES_DECRYPT. For information on its use, please see the output
744
 * Added AES_DECRYPT. For information on its use, please see the output
732
   of "core show function AES_DECRYPT" from the CLI
745
   of "core show function AES_DECRYPT" from the CLI
733
 * func_odbc now supports database transactions across multiple queries.
746
 * func_odbc now supports database transactions across multiple queries.
734

    
   
747

   
735
Applications
748
Applications
736
------------
749
------------
737
 * Scheduled meetme conferences may now have their end times extended by
750
 * Scheduled meetme conferences may now have their end times extended by
738
   using MeetMeAdmin.
751
   using MeetMeAdmin.
739
 * app_authenticate now gives the ability to select a prompt other than
752
 * app_authenticate now gives the ability to select a prompt other than
740
   the default.
753
   the default.
741
 * app_directory now pays attention to the searchcontexts setting in
754
 * app_directory now pays attention to the searchcontexts setting in
742
   voicemail.conf and will look through all contexts, if no context is
755
   voicemail.conf and will look through all contexts, if no context is
743
   specified in the initial argument.
756
   specified in the initial argument.
744
 * A new application, Originate, has been introduced, that allows asynchronous
757
 * A new application, Originate, has been introduced, that allows asynchronous
745
   call origination from the dialplan.
758
   call origination from the dialplan.
746
 * Voicemail now permits setting the emailsubject and emailbody per mailbox,
759
 * Voicemail now permits setting the emailsubject and emailbody per mailbox,
747
   in addition to the setting in the "general" context.
760
   in addition to the setting in the "general" context.
748
 * Added ConfBridge dialplan application which does conference bridges without
761
 * Added ConfBridge dialplan application which does conference bridges without
749
   DAHDI. For information on its use, please see the output of
762
   DAHDI. For information on its use, please see the output of
750
   "core show application ConfBridge" from the CLI.
763
   "core show application ConfBridge" from the CLI.
751

    
   
764

   
752
Miscellaneous
765
Miscellaneous
753
-------------
766
-------------
754
 * The Asterisk CLI has a new command, "channel redirect", which is similar in
767
 * The Asterisk CLI has a new command, "channel redirect", which is similar in
755
   operation to the AMI Redirect action.
768
   operation to the AMI Redirect action.
756
 * extensions.conf now allows you to use keyword "same" to define an extension
769
 * extensions.conf now allows you to use keyword "same" to define an extension
757
   without actually specifying an extension.  It uses exactly the same pattern
770
   without actually specifying an extension.  It uses exactly the same pattern
758
   as previously used on the last "exten" line.  For example:
771
   as previously used on the last "exten" line.  For example:
759
     exten => 123,1,NoOp(something)
772
     exten => 123,1,NoOp(something)
760
     same  =>     n,SomethingElse()
773
     same  =>     n,SomethingElse()
761
 * musiconhold.conf classes of type 'files' can now use relative directory paths,
774
 * musiconhold.conf classes of type 'files' can now use relative directory paths,
762
   which are interpreted as relative to the astvarlibdir setting in asterisk.conf.
775
   which are interpreted as relative to the astvarlibdir setting in asterisk.conf.
763
 * All deprecated CLI commands are removed from the sourcecode. They are now handled
776
 * All deprecated CLI commands are removed from the sourcecode. They are now handled
764
   by the new clialiases module. See cli_aliases.conf.sample file.
777
   by the new clialiases module. See cli_aliases.conf.sample file.
765
 * Times within timespecs are now accurate down to the minute.  This is a change
778
 * Times within timespecs are now accurate down to the minute.  This is a change
766
   from historical Asterisk, which only provided timespecs rounded to the nearest
779
   from historical Asterisk, which only provided timespecs rounded to the nearest
767
   even (read: evenly divisible by 2) minute mark.
780
   even (read: evenly divisible by 2) minute mark.
768
 * The realtime switch now supports an option flag, 'p', which disables searches for
781
 * The realtime switch now supports an option flag, 'p', which disables searches for
769
   pattern matches.
782
   pattern matches.
770
 * In addition to a time range and date range, timespecs now accept a 5th optional
783
 * In addition to a time range and date range, timespecs now accept a 5th optional
771
   argument, timezone.  This allows you to perform time checks on alternate
784
   argument, timezone.  This allows you to perform time checks on alternate
772
   timezones, especially if those daylight savings time ranges vary from your
785
   timezones, especially if those daylight savings time ranges vary from your
773
   machine's native timezone.  See GotoIfTime, ExecIfTime, IFTIME(), and timed
786
   machine's native timezone.  See GotoIfTime, ExecIfTime, IFTIME(), and timed
774
   includes.
787
   includes.
775
 * The contrib/scripts/ directory now has a script called sip_nat_settings that will
788
 * The contrib/scripts/ directory now has a script called sip_nat_settings that will
776
   give you the correct output for an asterisk box behind nat. It will give you the
789
   give you the correct output for an asterisk box behind nat. It will give you the
777
   externhost and localnet settings.
790
   externhost and localnet settings.
778
 * The Asterisk core now supports ITU G.722.1 and G.722.1C media streams, and
791
 * The Asterisk core now supports ITU G.722.1 and G.722.1C media streams, and
779
   can connect calls in passthrough mode, as well as record and play back files.
792
   can connect calls in passthrough mode, as well as record and play back files.
780
 * Successful and unsuccessful call pickup can now be alerted through sounds, by
793
 * Successful and unsuccessful call pickup can now be alerted through sounds, by
781
   using pickupsound and pickupfailsound in features.conf.
794
   using pickupsound and pickupfailsound in features.conf.
782
 * ASTVARRUNDIR is now set to $(localstatedir)/run/asterisk by default.
795
 * ASTVARRUNDIR is now set to $(localstatedir)/run/asterisk by default.
783
   This means the asterisk pid file will now be in /var/run/asterisk/asterisk.pid on LINUX
796
   This means the asterisk pid file will now be in /var/run/asterisk/asterisk.pid on LINUX
784
   instead of the /var/run/asterisk.pid where it used to be. This will make
797
   instead of the /var/run/asterisk.pid where it used to be. This will make
785
   installs as non-root easier to manage.
798
   installs as non-root easier to manage.
786

    
   
799

   
787
CDR
800
CDR
788
---
801
---
789

    
   
802

   
790
* The cdr.conf file must exist and be correctly programmed in order for CDR records to
803
* The cdr.conf file must exist and be correctly programmed in order for CDR records to
791
  be written; they will no longer be explicitly written.
804
  be written; they will no longer be explicitly written.
792

    
   
805

   
793
Asterisk Manager Interface
806
Asterisk Manager Interface
794
--------------------------
807
--------------------------
795
 * When using the AMI over HTTP, you can now include a 'SuppressEvents' header (with
808
 * When using the AMI over HTTP, you can now include a 'SuppressEvents' header (with
796
   a non-empty value) in your request. If you do this, any pending AMI events will
809
   a non-empty value) in your request. If you do this, any pending AMI events will
797
   *not* be included in the response to your request as they would normally, but
810
   *not* be included in the response to your request as they would normally, but
798
   will be left in the event queue for the next request you make to retrieve. For
811
   will be left in the event queue for the next request you make to retrieve. For
799
   some applications, this will allow you to guarantee that you will only see
812
   some applications, this will allow you to guarantee that you will only see
800
   events in responses to 'WaitEvent' actions, and can better know when to expect them.
813
   events in responses to 'WaitEvent' actions, and can better know when to expect them.
801
   To know whether the Asterisk server supports this header or not, your client can
814
   To know whether the Asterisk server supports this header or not, your client can
802
   inspect the first response back from the server to see if it includes this header:
815
   inspect the first response back from the server to see if it includes this header:
803

    
   
816

   
804
   Pragma: SuppressEvents
817
   Pragma: SuppressEvents
805

    
   
818

   
806
   If this is included, the server supports event suppression.
819
   If this is included, the server supports event suppression.
807

    
   
820

   
808
 * Added 4 new Actions to list skinny device(s) and line(s)
821
 * Added 4 new Actions to list skinny device(s) and line(s)
809
   SKINNYdevices
822
   SKINNYdevices
810
   SKINNYshowdevice
823
   SKINNYshowdevice
811
   SKINNYlines
824
   SKINNYlines
812
   SKINNYshowline
825
   SKINNYshowline
813

    
   
826

   
814
LDAP Schema File Additions
827
LDAP Schema File Additions
815
--------------------------
828
--------------------------
816
 * Added AsteriskDialplan, AsteriskAccount and AsteriskMailbox  objectClasses
829
 * Added AsteriskDialplan, AsteriskAccount and AsteriskMailbox  objectClasses
817
   to allow standalone dialplan, account and mailbox entries (STRUCTURAL)
830
   to allow standalone dialplan, account and mailbox entries (STRUCTURAL)
818
 * Added new Fields:
831
 * Added new Fields:
819
   - AstAccountLanguage, AstAccountTransport, AstAccountPromiscRedir,
832
   - AstAccountLanguage, AstAccountTransport, AstAccountPromiscRedir,
820
   - AstAccountAccountCode, AstAccountSetVar, AstAccountAllowOverlap,
833
   - AstAccountAccountCode, AstAccountSetVar, AstAccountAllowOverlap,
821
   - AstAccountVideoSupport, AstAccountIgnoreSDPVersion
834
   - AstAccountVideoSupport, AstAccountIgnoreSDPVersion
822
 * Removed redundant IPaddr (there's already IPAddress)
835
 * Removed redundant IPaddr (there's already IPAddress)
823
   - Gives more configuration Flags for SIP-Users available (tested)
836
   - Gives more configuration Flags for SIP-Users available (tested)
824
   - Allows to create Asterisk Attributes in defined Asterisk ObjectClasses
837
   - Allows to create Asterisk Attributes in defined Asterisk ObjectClasses
825
     without extensibleObject (which really should be the last resort); gives
838
     without extensibleObject (which really should be the last resort); gives
826
     also additional possibilities for LDAP-filter 
839
     also additional possibilities for LDAP-filter 
827

    
   
840

   
828
------------------------------------------------------------------------------
841
------------------------------------------------------------------------------
829
--- Functionality changes from Asterisk 1.6.0 to Asterisk 1.6.1  -------------
842
--- Functionality changes from Asterisk 1.6.0 to Asterisk 1.6.1  -------------
830
------------------------------------------------------------------------------
843
------------------------------------------------------------------------------
831

    
   
844

   
832
Device State Handling
845
Device State Handling
833
---------------------
846
---------------------
834
 * The event infrastructure in Asterisk got another big update to help support
847
 * The event infrastructure in Asterisk got another big update to help support
835
    distributed events.  It currently supports distributed device state and
848
    distributed events.  It currently supports distributed device state and
836
    distributed Voicemail MWI (Message Waiting Indication).  A new module has
849
    distributed Voicemail MWI (Message Waiting Indication).  A new module has
837
    been merged, res_ais, which facilitates communicating events between servers.
850
    been merged, res_ais, which facilitates communicating events between servers.
838
    It uses the SAForum AIS (Service Availability Forum Application Interface
851
    It uses the SAForum AIS (Service Availability Forum Application Interface
839
    Specification) CLM (Cluster Management) and EVT (Event) services to maintain
852
    Specification) CLM (Cluster Management) and EVT (Event) services to maintain
840
    a cluster of Asterisk servers, and to share events between them.  For more
853
    a cluster of Asterisk servers, and to share events between them.  For more
841
    information on setting this up, see doc/distributed_devstate.txt.
854
    information on setting this up, see doc/distributed_devstate.txt.
842

    
   
855

   
843
Dialplan Functions
856
Dialplan Functions
844
------------------
857
------------------
845
 * Added a new dialplan function, AST_CONFIG(), which allows you to access
858
 * Added a new dialplan function, AST_CONFIG(), which allows you to access
846
   variables from an Asterisk configuration file.
859
   variables from an Asterisk configuration file.
847
 * The JACK_HOOK function now has a c() option to supply a custom client name.
860
 * The JACK_HOOK function now has a c() option to supply a custom client name.
848
 * Added two new dialplan functions from libspeex for audio gain control and 
861
 * Added two new dialplan functions from libspeex for audio gain control and 
849
   denoise, AGC() and DENOISE(). Both functions can be applied to the tx and 
862
   denoise, AGC() and DENOISE(). Both functions can be applied to the tx and 
850
   rx directions of a channel from the dialplan.
863
   rx directions of a channel from the dialplan.
851
 * The SMDI_MSG_RETRIEVE function now has the ability to search for SMDI messages
864
 * The SMDI_MSG_RETRIEVE function now has the ability to search for SMDI messages
852
   based on other parameters.  The default is still to search based on the
865
   based on other parameters.  The default is still to search based on the
853
   forwarding station ID.  However, there are new options that allow you to search
866
   forwarding station ID.  However, there are new options that allow you to search
854
   based on the message desk terminal ID, or the message desk number.
867
   based on the message desk terminal ID, or the message desk number.
855
 * TIMEOUT() has been modified to be accurate down to the millisecond.
868
 * TIMEOUT() has been modified to be accurate down to the millisecond.
856
 * ENUM*() functions now include the following new options:
869
 * ENUM*() functions now include the following new options:
857
     - 'u' returns the full URI and does not strip off the URI-scheme.
870
     - 'u' returns the full URI and does not strip off the URI-scheme.
858
     - 's' triggers ISN specific rewriting
871
     - 's' triggers ISN specific rewriting
859
     - 'i' looks for branches into an Infrastructure ENUM tree
872
     - 'i' looks for branches into an Infrastructure ENUM tree
860
     - 'd' for a direct DNS lookup without any flipping of digits.
873
     - 'd' for a direct DNS lookup without any flipping of digits.
861
 * TXCIDNAME() has a new zone-suffix parameter (which defaults to 'e164.arpa')
874
 * TXCIDNAME() has a new zone-suffix parameter (which defaults to 'e164.arpa')
862
 * CHANNEL() now has options for the maximum, minimum, and standard or normal
875
 * CHANNEL() now has options for the maximum, minimum, and standard or normal
863
   deviation of jitter, rtt, and loss for a call using chan_sip.
876
   deviation of jitter, rtt, and loss for a call using chan_sip.
864

    
   
877

   
865
DAHDI channel driver (chan_dahdi) Changes
878
DAHDI channel driver (chan_dahdi) Changes
866
----------------------------------------
879
----------------------------------------
867
 * Channels can now be configured using named sections in chan_dahdi.conf, just
880
 * Channels can now be configured using named sections in chan_dahdi.conf, just
868
   like other channel drivers, including the use of templates.
881
   like other channel drivers, including the use of templates.
869
 * The default for pridialplan has changed from 'national' to 'unknown'.
882
 * The default for pridialplan has changed from 'national' to 'unknown'.
870

    
   
883

   
871
PBX Changes
884
PBX Changes
872
-----------
885
-----------
873
 * It is now possible to specify a pattern match as a hint. Once a phone subscribes
886
 * It is now possible to specify a pattern match as a hint. Once a phone subscribes
874
   to something that matches the pattern a hint will be created using the contents
887
   to something that matches the pattern a hint will be created using the contents
875
   and variables evaluated.
888
   and variables evaluated.
876
 * Dialplan matching has been extended to allow an extension to return to the
889
 * Dialplan matching has been extended to allow an extension to return to the
877
   PBX core to wait for more digits.  This is done by using the new dialplan
890
   PBX core to wait for more digits.  This is done by using the new dialplan
878
   application called "Incomplete".  This will permit a whole new level of
891
   application called "Incomplete".  This will permit a whole new level of
879
   extension control, by giving the administrator more control over early
892
   extension control, by giving the administrator more control over early
880
   matches employing one of the short-circuit pattern match operators.  Note
893
   matches employing one of the short-circuit pattern match operators.  Note
881
   that custom applications can trigger this same behavior by returning the
894
   that custom applications can trigger this same behavior by returning the
882
   special value AST_PBX_INCOMPLETE.
895
   special value AST_PBX_INCOMPLETE.
883

    
   
896

   
884
Application Changes
897
Application Changes
885
-------------------
898
-------------------
886
 * Directory now permits both first and last names to be matched at the same
899
 * Directory now permits both first and last names to be matched at the same
887
   time.  In addition, the number of digits to enter of the name can be set in
900
   time.  In addition, the number of digits to enter of the name can be set in
888
   the arguments to Directory; previously, you could enter only 3, regardless
901
   the arguments to Directory; previously, you could enter only 3, regardless
889
   of how many names are in your company.  For large companies, this should be
902
   of how many names are in your company.  For large companies, this should be
890
   quite helpful.
903
   quite helpful.
891
 * Voicemail now permits a mailbox setting to wrap around from first to last
904
 * Voicemail now permits a mailbox setting to wrap around from first to last
892
   messages, if the "messagewrap" option is set to a true value.
905
   messages, if the "messagewrap" option is set to a true value.
893
 * Voicemail now permits an external script to be run, for password validation.
906
 * Voicemail now permits an external script to be run, for password validation.
894
   The script should output "VALID" or "INVALID" on stdout, depending upon the
907
   The script should output "VALID" or "INVALID" on stdout, depending upon the
895
   wish to validate or invalidate the password given.  Arguments are:
908
   wish to validate or invalidate the password given.  Arguments are:
896
   "mailbox" "context" "oldpass" "newpass".  See the sample voicemail.conf for
909
   "mailbox" "context" "oldpass" "newpass".  See the sample voicemail.conf for
897
   more details
910
   more details
898
 * Dial has a new option: F(context^extension^pri), which permits a callee to
911
 * Dial has a new option: F(context^extension^pri), which permits a callee to
899
   continue in the dialplan, at the specified label, if the caller hangs up.
912
   continue in the dialplan, at the specified label, if the caller hangs up.
900
 * ChanSpy and ExtenSpy have a new option, 's' which suppresses speaking the
913
 * ChanSpy and ExtenSpy have a new option, 's' which suppresses speaking the
901
   technology name (e.g. SIP, IAX, etc) of the channel being spied on.
914
   technology name (e.g. SIP, IAX, etc) of the channel being spied on.
902
 * The Jack application now has a c() option to supply a custom client name.
915
 * The Jack application now has a c() option to supply a custom client name.
903
 * Chanspy has a new option, 'B', which can be used to "barge" on a call. This is
916
 * Chanspy has a new option, 'B', which can be used to "barge" on a call. This is
904
   like the pre-existing whisper mode, except that the spy can also talk to the
917
   like the pre-existing whisper mode, except that the spy can also talk to the
905
   participant on the bridged channel as well.
918
   participant on the bridged channel as well.
906
 * Chanspy has a new option, 'n', which will allow for the spied-on party's name
919
 * Chanspy has a new option, 'n', which will allow for the spied-on party's name
907
   to be spoken instead of the channel name or number. For more information on the
920
   to be spoken instead of the channel name or number. For more information on the
908
   use of this option, issue the command "core show application ChanSpy" from the 
921
   use of this option, issue the command "core show application ChanSpy" from the 
909
   Asterisk CLI.
922
   Asterisk CLI.
910
 * Chanspy has a new option, 'd', which allows the spy to use DTMF to swap between
923
 * Chanspy has a new option, 'd', which allows the spy to use DTMF to swap between
911
   spy modes. Use of this feature overrides the typical use of numeric DTMF. In other
924
   spy modes. Use of this feature overrides the typical use of numeric DTMF. In other
912
   words, if using the 'd' option, it is not possible to enter a number to append to
925
   words, if using the 'd' option, it is not possible to enter a number to append to
913
   the first argument to Chanspy(). Pressing 4 will change to spy mode, pressing 5 will
926
   the first argument to Chanspy(). Pressing 4 will change to spy mode, pressing 5 will
914
   change to whisper mode, and pressing 6 will change to barge mode.
927
   change to whisper mode, and pressing 6 will change to barge mode.
915
 * ExternalIVR now takes several options that affect the way it performs, as
928
 * ExternalIVR now takes several options that affect the way it performs, as
916
   well as having several new commands.  Please see doc/externalivr.txt for the
929
   well as having several new commands.  Please see doc/externalivr.txt for the
917
   complete documentation.
930
   complete documentation.
918
 * Added ability to communicate over a TCP socket instead of forking a child process for the 
931
 * Added ability to communicate over a TCP socket instead of forking a child process for the 
919
   ExternalIVR application.
932
   ExternalIVR application.
920
 * ChanIsAvail has a new option, 'a', which will return all available channels instead
933
 * ChanIsAvail has a new option, 'a', which will return all available channels instead
921
   of just the first one if you give the function more then one channel to check.
934
   of just the first one if you give the function more then one channel to check.
922
 * PrivacyManager now takes an option where you can specify a context where the 
935
 * PrivacyManager now takes an option where you can specify a context where the 
923
   given number will be matched. This way you have more control over who is allowed
936
   given number will be matched. This way you have more control over who is allowed
924
   and it stops the people who blindly enter 10 digits.
937
   and it stops the people who blindly enter 10 digits.
925
 * ForkCDR has new options: 'a' updates the answer time on the new CDR; 'A' locks
938
 * ForkCDR has new options: 'a' updates the answer time on the new CDR; 'A' locks
926
   answer times, disposition, on orig CDR against updates; 'D' Copies the disposition
939
   answer times, disposition, on orig CDR against updates; 'D' Copies the disposition
927
   from the orig CDR to the new CDR after reset; 'e' sets the 'end' time on the
940
   from the orig CDR to the new CDR after reset; 'e' sets the 'end' time on the
928
   original CDR; 'R' prevents the new CDR from being reset; 's(var=val)' adds/changes
941
   original CDR; 'R' prevents the new CDR from being reset; 's(var=val)' adds/changes
929
   the 'var' variable on the original CDR; 'T' forces ast_cdr_end(), ast_cdr_answer(),
942
   the 'var' variable on the original CDR; 'T' forces ast_cdr_end(), ast_cdr_answer(),
930
   obey the LOCKED flag on cdr's in the chain, and also the ast_cdr_setvar() func.
943
   obey the LOCKED flag on cdr's in the chain, and also the ast_cdr_setvar() func.
931
 * The Dial() application no longer copies the language used by the caller to the callee's
944
 * The Dial() application no longer copies the language used by the caller to the callee's
932
   channel. If you desire for the caller's channel's language to be used for file playback
945
   channel. If you desire for the caller's channel's language to be used for file playback
933
   to the callee, then the file specified may be prepended with "${CHANNEL(language)}/" .
946
   to the callee, then the file specified may be prepended with "${CHANNEL(language)}/" .
934
 * SendImage() no longer hangs up the channel on error; instead, it sets the
947
 * SendImage() no longer hangs up the channel on error; instead, it sets the
935
   status variable SENDIMAGESTATUS to one of 'SUCCESS', 'FAILURE', or
948
   status variable SENDIMAGESTATUS to one of 'SUCCESS', 'FAILURE', or
936
   'UNSUPPORTED'.  This change makes SendImage() more consistent with other
949
   'UNSUPPORTED'.  This change makes SendImage() more consistent with other
937
   applications.
950
   applications.
938
 * Park has a new option, 's', which silences the announcement of the parking space number.
951
 * Park has a new option, 's', which silences the announcement of the parking space number.
939
 * A non-numeric, zero, or negative timeout specified to Dial() will now be interpreted as
952
 * A non-numeric, zero, or negative timeout specified to Dial() will now be interpreted as
940
   invalid input and will be assumed to mean that no timeout is desired.
953
   invalid input and will be assumed to mean that no timeout is desired.
941

    
   
954

   
942
SIP Changes
955
SIP Changes
943
-----------
956
-----------
944
 * Added DNS manager support to registrations for peers referencing peer entries.
957
 * Added DNS manager support to registrations for peers referencing peer entries.
945
   DNS manager runs in the background which allows DNS lookups to be run asynchronously 
958
   DNS manager runs in the background which allows DNS lookups to be run asynchronously 
946
   as well as periodically updating the IP address. These properties allow for
959
   as well as periodically updating the IP address. These properties allow for
947
   better performance as well as recovery in the event of an IP change.
960
   better performance as well as recovery in the event of an IP change.
948
 * Performance improvements via using hash tables (astobj2) and doubly-linked lists to improve 
961
 * Performance improvements via using hash tables (astobj2) and doubly-linked lists to improve 
949
   load/reload of large numbers of peers/users by ~40x (for large lists of peers).
962
   load/reload of large numbers of peers/users by ~40x (for large lists of peers).
950
   These changes also provide performance improvements for call setup and tear down.
963
   These changes also provide performance improvements for call setup and tear down.
951
 * Added ability to specify registration expiry time on a per registration basis in
964
 * Added ability to specify registration expiry time on a per registration basis in
952
   the register line.
965
   the register line.
953
 * Added support for T140 RED - redundancy in T.140 to prevent text loss due to
966
 * Added support for T140 RED - redundancy in T.140 to prevent text loss due to
954
   lost packets.
967
   lost packets.
955
 * Added t38pt_usertpsource option. See sip.conf.sample for details.
968
 * Added t38pt_usertpsource option. See sip.conf.sample for details.
956
 * Added SIPnotify AMI command, for sending arbitrary SIP notify commands.
969
 * Added SIPnotify AMI command, for sending arbitrary SIP notify commands.
957
 * 'sip show peers' and 'sip show users' display their entries sorted in
970
 * 'sip show peers' and 'sip show users' display their entries sorted in
958
    alphabetical order, as opposed to the order they were in, in the config 
971
    alphabetical order, as opposed to the order they were in, in the config 
959
    file or database. 
972
    file or database. 
960
 * Videosupport now supports an additional option, "always", which always sets
973
 * Videosupport now supports an additional option, "always", which always sets
961
    up video RTP ports, even on clients that don't support it.  This helps with
974
    up video RTP ports, even on clients that don't support it.  This helps with
962
    callfiles and certain transfers to ensure that if two video phones are
975
    callfiles and certain transfers to ensure that if two video phones are
963
    connected, they will always share video feeds.
976
    connected, they will always share video feeds.
964

    
   
977

   
965
IAX Changes
978
IAX Changes
966
-----------
979
-----------
967
 * Existing DNS manager lookups extended to check for SRV records.
980
 * Existing DNS manager lookups extended to check for SRV records.
968
 * IAX2 encryption support has been improved to support periodic key rotation
981
 * IAX2 encryption support has been improved to support periodic key rotation
969
   within a call for enhanced security.  The option "keyrotate" has been
982
   within a call for enhanced security.  The option "keyrotate" has been
970
   provided to disable this functionality to preserve backwards compatibility
983
   provided to disable this functionality to preserve backwards compatibility
971
   with older versions of IAX2 that do not support key rotation.
984
   with older versions of IAX2 that do not support key rotation.
972

    
   
985

   
973
CLI Changes
986
CLI Changes
974
-----------
987
-----------
975
  * New CLI command, "data get <path> [<search> [<filter>]]" which retrieves the
988
  * New CLI command, "data get <path> [<search> [<filter>]]" which retrieves the
976
     data tree based on the given <path>.
989
     data tree based on the given <path>.
977
  * New CLI command "data show providers" that will display all the registered
990
  * New CLI command "data show providers" that will display all the registered
978
     callbacks.
991
     callbacks.
979
  * New CLI command, "config reload <file.conf>" which reloads any module that
992
  * New CLI command, "config reload <file.conf>" which reloads any module that
980
     references that particular configuration file.  Also added "config list"
993
     references that particular configuration file.  Also added "config list"
981
     which shows which configuration files are in use.
994
     which shows which configuration files are in use.
982
  * New CLI commands, "pri show version" and "ss7 show version" that will
995
  * New CLI commands, "pri show version" and "ss7 show version" that will
983
     display which version of libpri and libss7 are being used, respectively.
996
     display which version of libpri and libss7 are being used, respectively.
984
     A new API call was added so trunk will now have to be compiled against
997
     A new API call was added so trunk will now have to be compiled against
985
     a versions of libpri and libss7 that have them or it will not know that
998
     a versions of libpri and libss7 that have them or it will not know that
986
     these libraries exist.
999
     these libraries exist.
987
  * The commands "core show globals", "core set global" and "core set chanvar" has
1000
  * The commands "core show globals", "core set global" and "core set chanvar" has
988
     been deprecated in favor of the more semanticly correct "dialplan show globals",
1001
     been deprecated in favor of the more semanticly correct "dialplan show globals",
989
     "dialplan set chanvar" and "dialplan set global".
1002
     "dialplan set chanvar" and "dialplan set global".
990
  * New CLI command "dialplan show chanvar" to list all variables associated
1003
  * New CLI command "dialplan show chanvar" to list all variables associated
991
    with a given channel.
1004
    with a given channel.
992

    
   
1005

   
993
DNS manager changes
1006
DNS manager changes
994
-------------------
1007
-------------------
995
  * Addresses managed by DNS manager now can check to see if there is a DNS
1008
  * Addresses managed by DNS manager now can check to see if there is a DNS
996
    SRV record for a given domain and will use that hostname/port if present.
1009
    SRV record for a given domain and will use that hostname/port if present.
997

    
   
1010

   
998
AMI - The manager (TCP/TLS/HTTP)
1011
AMI - The manager (TCP/TLS/HTTP)
999
--------------------------------
1012
--------------------------------
1000
  * The Status command now takes an optional list of variables to display
1013
  * The Status command now takes an optional list of variables to display
1001
    along with channel status.
1014
    along with channel status.
1002
  * The QueueEntry event now also includes the channel's uniqueid
1015
  * The QueueEntry event now also includes the channel's uniqueid
1003

    
   
1016

   
1004
ODBC Changes
1017
ODBC Changes
1005
------------
1018
------------
1006
  * res_odbc no longer has a limit of 1023 total possible unshared connections,
1019
  * res_odbc no longer has a limit of 1023 total possible unshared connections,
1007
    as some people were running into this limit.  This limit has been increased
1020
    as some people were running into this limit.  This limit has been increased
1008
    to 4.2 billion.
1021
    to 4.2 billion.
1009

    
   
1022

   
1010
Queue changes
1023
Queue changes
1011
-------------
1024
-------------
1012
  * The TRANSFER queue log entry now includes the the caller's original
1025
  * The TRANSFER queue log entry now includes the the caller's original
1013
    position in the transferred-from queue.
1026
    position in the transferred-from queue.
1014
  * A new configuration option, "timeoutpriority" has been added. Please see the section labeled
1027
  * A new configuration option, "timeoutpriority" has been added. Please see the section labeled
1015
    "QUEUE TIMING OPTIONS" in configs/queues.conf.sample for a detailed explanation of the option
1028
    "QUEUE TIMING OPTIONS" in configs/queues.conf.sample for a detailed explanation of the option
1016
    as well as an explanation about timeout options in general
1029
    as well as an explanation about timeout options in general
1017
  * Added a new option - C - for forcing the "answered elsewhere" flag on
1030
  * Added a new option - C - for forcing the "answered elsewhere" flag on
1018
    cancellation of calls in to members of the queue. This is to avoid the
1031
    cancellation of calls in to members of the queue. This is to avoid the
1019
    call to a member of a queue having the call listed as a "missed call".
1032
    call to a member of a queue having the call listed as a "missed call".
1020

    
   
1033

   
1021
Realtime changes
1034
Realtime changes
1022
----------------
1035
----------------
1023
  * Several (ODBC, Postgres, MySQL, SQLite) realtime drivers have been given
1036
  * Several (ODBC, Postgres, MySQL, SQLite) realtime drivers have been given
1024
    adaptive capabilities.  What this means in practical terms is that if your
1037
    adaptive capabilities.  What this means in practical terms is that if your
1025
    realtime table lacks critical fields, Asterisk will now emit warnings to
1038
    realtime table lacks critical fields, Asterisk will now emit warnings to
1026
    that effect.  Also, some of the realtime drivers have the ability (if
1039
    that effect.  Also, some of the realtime drivers have the ability (if
1027
    configured) to automatically add those columns to the table with the
1040
    configured) to automatically add those columns to the table with the
1028
    correct type and length.
1041
    correct type and length.
1029

    
   
1042

   
1030
Miscellaneous
1043
Miscellaneous
1031
-------------
1044
-------------
1032
  * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND can now be set using
1045
  * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND can now be set using
1033
    the 'setvar' option to cause a given audio file to be played upon completion
1046
    the 'setvar' option to cause a given audio file to be played upon completion
1034
    of an attended transfer.  Currently it works for DAHDI, IAX2, SIP, and
1047
    of an attended transfer.  Currently it works for DAHDI, IAX2, SIP, and
1035
    Skinny channels only.
1048
    Skinny channels only.
1036
  * You can now compile Asterisk against the Hoard Memory Allocator, see doc/hoard.txt
1049
  * You can now compile Asterisk against the Hoard Memory Allocator, see doc/hoard.txt
1037
    for more information.
1050
    for more information.
1038
  * Config file variables may now be appended to, by using the '+=' append
1051
  * Config file variables may now be appended to, by using the '+=' append
1039
    operator.  This is most helpful when working with long SQL queries in
1052
    operator.  This is most helpful when working with long SQL queries in
1040
    func_odbc.conf, as the queries no longer need to be specified on a single
1053
    func_odbc.conf, as the queries no longer need to be specified on a single
1041
    line.
1054
    line.
1042
  * CDR config file, cdr.conf, has an added option, "initiatedseconds", 
1055
  * CDR config file, cdr.conf, has an added option, "initiatedseconds", 
1043
    which will add a second to the billsec when the ending
1056
    which will add a second to the billsec when the ending
1044
    time is set, if the number in the microseconds field of the end time is 
1057
    time is set, if the number in the microseconds field of the end time is 
1045
    greater than the number of microseconds in the answer time. This allows
1058
    greater than the number of microseconds in the answer time. This allows
1046
    users to count the 'initiated' seconds in their billing records. 
1059
    users to count the 'initiated' seconds in their billing records. 
1047

    
   
1060

   
1048
------------------------------------------------------------------------------
1061
------------------------------------------------------------------------------
1049
--- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0  -------------
1062
--- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0  -------------
1050
------------------------------------------------------------------------------
1063
------------------------------------------------------------------------------
1051

    
   
1064

   
1052
AMI - The manager (TCP/TLS/HTTP)
1065
AMI - The manager (TCP/TLS/HTTP)
1053
--------------------------------
1066
--------------------------------
1054
  * Manager has undergone a lot of changes, all of them documented
1067
  * Manager has undergone a lot of changes, all of them documented
1055
    in doc/manager_1_1.txt
1068
    in doc/manager_1_1.txt
1056
  * Manager version has changed to 1.1
1069
  * Manager version has changed to 1.1
1057
  * Added a new action 'CoreShowChannels' to list currently defined channels
1070
  * Added a new action 'CoreShowChannels' to list currently defined channels
1058
     and some information about them. 
1071
     and some information about them. 
1059
  * Added a new action 'SIPshowregistry' to list SIP registrations.
1072
  * Added a new action 'SIPshowregistry' to list SIP registrations.
1060
  * Added TLS support for the manager interface and HTTP server
1073
  * Added TLS support for the manager interface and HTTP server
1061
  * Added the URI redirect option for the built-in HTTP server
1074
  * Added the URI redirect option for the built-in HTTP server
1062
  * The output of CallerID in Manager events is now more consistent.
1075
  * The output of CallerID in Manager events is now more consistent.
1063
     CallerIDNum is used for number and CallerIDName for name.
1076
     CallerIDNum is used for number and CallerIDName for name.
1064
  * Enable https support for builtin web server.
1077
  * Enable https support for builtin web server.
1065
     See configs/http.conf.sample for details.
1078
     See configs/http.conf.sample for details.
1066
  * Added a new action, GetConfigJSON, which can return the contents of an
1079
  * Added a new action, GetConfigJSON, which can return the contents of an
1067
     Asterisk configuration file in JSON format.  This is intended to help
1080
     Asterisk configuration file in JSON format.  This is intended to help
1068
     improve the performance of AJAX applications using the manager interface
1081
     improve the performance of AJAX applications using the manager interface
1069
     over HTTP.
1082
     over HTTP.
1070
  * SIP and IAX manager events now use "ChannelType" in all cases where we 
1083
  * SIP and IAX manager events now use "ChannelType" in all cases where we 
1071
     indicate channel driver. Previously, we used a mixture of "Channel"
1084
     indicate channel driver. Previously, we used a mixture of "Channel"
1072
     and "ChannelDriver" headers.
1085
     and "ChannelDriver" headers.
1073
  * Added a "Bridge" action which allows you to bridge any two channels that
1086
  * Added a "Bridge" action which allows you to bridge any two channels that
1074
     are currently active on the system.
1087
     are currently active on the system.
1075
  * Added a "ListAllVoicemailUsers" action that allows you to get a list of all
1088
  * Added a "ListAllVoicemailUsers" action that allows you to get a list of all
1076
     the voicemail users setup.
1089
     the voicemail users setup.
1077
  * Added 'DBDel' and 'DBDelTree' manager commands.
1090
  * Added 'DBDel' and 'DBDelTree' manager commands.
1078
  * cdr_manager now reports events via the "cdr" level, separating it from
1091
  * cdr_manager now reports events via the "cdr" level, separating it from
1079
     the very verbose "call" level.
1092
     the very verbose "call" level.
1080
  * Manager users are now stored in memory. If you change the manager account
1093
  * Manager users are now stored in memory. If you change the manager account
1081
    list (delete or add accounts) you need to reload manager.
1094
    list (delete or add accounts) you need to reload manager.
1082
  * Added Masquerade manager event for when a masquerade happens between
1095
  * Added Masquerade manager event for when a masquerade happens between
1083
     two channels.
1096
     two channels.
1084
  * Added "manager reload" command for the CLI
1097
  * Added "manager reload" command for the CLI
1085
  * Lots of commands that only provided information are now allowed under the
1098
  * Lots of commands that only provided information are now allowed under the
1086
     Reporting privilege, instead of only under Call or System.
1099
     Reporting privilege, instead of only under Call or System.
1087
  * The IAX* commands now require either System or Reporting privilege, to
1100
  * The IAX* commands now require either System or Reporting privilege, to
1088
     mirror the privileges of the SIP* commands.
1101
     mirror the privileges of the SIP* commands.
1089
  * Added ability to retrieve list of categories in a config file.
1102
  * Added ability to retrieve list of categories in a config file.
1090
  * Added ability to retrieve the content of a particular category.
1103
  * Added ability to retrieve the content of a particular category.
1091
  * Added ability to empty a context.
1104
  * Added ability to empty a context.
1092
  * Created new action to create a new file.
1105
  * Created new action to create a new file.
1093
  * Updated delete action to allow deletion by line number with respect to category.
1106
  * Updated delete action to allow deletion by line number with respect to category.
1094
  * Added new action insert to add new variable to category at specified line.
1107
  * Added new action insert to add new variable to category at specified line.
1095
  * Updated action newcat to allow new category to be inserted in file above another
1108
  * Updated action newcat to allow new category to be inserted in file above another
1096
    existing category.
1109
    existing category.
1097
  * Added new event "JitterBufStats" in the IAX2 channel
1110
  * Added new event "JitterBufStats" in the IAX2 channel
1098
  * Originate now requires the Originate privilege and, if you want to call out
1111
  * Originate now requires the Originate privilege and, if you want to call out
1099
    to a subshell, it requires the System privilege, as well.  This was done to
1112
    to a subshell, it requires the System privilege, as well.  This was done to
1100
    enhance manager security.
1113
    enhance manager security.
1101
  * Originate now accepts codec settings with "Codecs: alaw, ulaw, h264" 
1114
  * Originate now accepts codec settings with "Codecs: alaw, ulaw, h264" 
1102
  * New command: Atxfer. See doc/manager_1_1.txt for more details or 
1115
  * New command: Atxfer. See doc/manager_1_1.txt for more details or 
1103
    manager show command Atxfer from the CLI
1116
    manager show command Atxfer from the CLI
1104
  * New command: IAXregistry. See doc/manager_1_1.txt for more details or
1117
  * New command: IAXregistry. See doc/manager_1_1.txt for more details or
1105
    manager show command IAXregistry from the CLI
1118
    manager show command IAXregistry from the CLI
1106

    
   
1119

   
1107
Dialplan functions
1120
Dialplan functions
1108
------------------
1121
------------------
1109
  * Added the DEVICE_STATE() dialplan function which allows retrieving any device
1122
  * Added the DEVICE_STATE() dialplan function which allows retrieving any device
1110
     state in the dialplan, as well as creating custom device states that are
1123
     state in the dialplan, as well as creating custom device states that are
1111
     controllable from the dialplan.
1124
     controllable from the dialplan.
1112
  * Extend CALLERID() function with "pres" and "ton" parameters to
1125
  * Extend CALLERID() function with "pres" and "ton" parameters to
1113
     fetch string representation of calling number presentation indicator
1126
     fetch string representation of calling number presentation indicator
1114
     and numeric representation of type of calling number value.
1127
     and numeric representation of type of calling number value.
1115
  * MailboxExists converted to dialplan function
1128
  * MailboxExists converted to dialplan function
1116
  * A new option to Dial() for telling IP phones not to count the call
1129
  * A new option to Dial() for telling IP phones not to count the call
1117
     as "missed" when dial times out and cancels.
1130
     as "missed" when dial times out and cancels.
1118
  * Added LOCK(), TRYLOCK(), and UNLOCK(), which provide a single level dialplan
1131
  * Added LOCK(), TRYLOCK(), and UNLOCK(), which provide a single level dialplan
1119
     mutex.  No deadlocks are possible, as LOCK() only allows a single lock to be
1132
     mutex.  No deadlocks are possible, as LOCK() only allows a single lock to be
1120
     held for any given channel.  Also, locks are automatically freed when a
1133
     held for any given channel.  Also, locks are automatically freed when a
1121
     channel is hung up.
1134
     channel is hung up.
1122
  * Added HINT() dialplan function that allows retrieving hint information.
1135
  * Added HINT() dialplan function that allows retrieving hint information.
1123
     Hints are mappings between extensions and devices for the sake of 
1136
     Hints are mappings between extensions and devices for the sake of 
1124
     determining the state of an extension.  This function can retrieve the list
1137
     determining the state of an extension.  This function can retrieve the list
1125
     of devices or the name associated with a hint.
1138
     of devices or the name associated with a hint.
1126
  * Added EXTENSION_STATE() dialplan function which allows retrieving the state
1139
  * Added EXTENSION_STATE() dialplan function which allows retrieving the state
1127
    of any extension.
1140
    of any extension.
1128
  * Added SYSINFO() dialplan function which allows retrieval of system information
1141
  * Added SYSINFO() dialplan function which allows retrieval of system information
1129
  * Added a new dialplan function, DIALPLAN_EXISTS(), which allows you to check for
1142
  * Added a new dialplan function, DIALPLAN_EXISTS(), which allows you to check for
1130
     the existence of a dialplan target.
1143
     the existence of a dialplan target.
1131
  * Added two new dialplan functions, TOUPPER and TOLOWER, which convert a string to
1144
  * Added two new dialplan functions, TOUPPER and TOLOWER, which convert a string to
1132
     upper and lower case, respectively.
1145
     upper and lower case, respectively.
1133
  * When bridging, Asterisk sets the BRIDGEPVTCALLID to the channel drivers unique
1146
  * When bridging, Asterisk sets the BRIDGEPVTCALLID to the channel drivers unique
1134
     ID for the call (not the Asterisk call ID or unique ID), provided that the
1147
     ID for the call (not the Asterisk call ID or unique ID), provided that the
1135
     channel driver supports this. For SIP, you get the SIP call-ID for the
1148
     channel driver supports this. For SIP, you get the SIP call-ID for the
1136
     bridged channel which you can store in the CDR with a custom field.
1149
     bridged channel which you can store in the CDR with a custom field.
1137

    
   
1150

   
1138
CLI Changes
1151
CLI Changes
1139
-----------
1152
-----------
1140
  * Added CLI permissions, config file: cli_permissions.conf
1153
  * Added CLI permissions, config file: cli_permissions.conf
1141
     default is to allow all commands for every local user/group.
1154
     default is to allow all commands for every local user/group.
1142
     Also this new feature added three new CLI commands:
1155
     Also this new feature added three new CLI commands:
1143
      - cli check permissions {<username>|@<groupname>|<username>@<groupname>} [<command>]
1156
      - cli check permissions {<username>|@<groupname>|<username>@<groupname>} [<command>]
1144
      - cli reload permissions
1157
      - cli reload permissions
1145
      - cli show permissions
1158
      - cli show permissions
1146
  * New CLI command "core show hint" (usage: core show hint <exten>)
1159
  * New CLI command "core show hint" (usage: core show hint <exten>)
1147
  * New CLI command "core show settings"
1160
  * New CLI command "core show settings"
1148
  * Added 'core show channels count' CLI command.
1161
  * Added 'core show channels count' CLI command.
1149
  * Added the ability to set the core debug and verbose values on a per-file basis.
1162
  * Added the ability to set the core debug and verbose values on a per-file basis.
1150
  * Added 'queue pause member' and 'queue unpause member' CLI commands
1163
  * Added 'queue pause member' and 'queue unpause member' CLI commands
1151
  * Ability to set process limits ("ulimit") without restarting Asterisk
1164
  * Ability to set process limits ("ulimit") without restarting Asterisk
1152
  * Enhanced "agi debug" to print the channel name as a prefix to the debug
1165
  * Enhanced "agi debug" to print the channel name as a prefix to the debug
1153
     output to make debugging on busy systems much easier.
1166
     output to make debugging on busy systems much easier.
1154
  * New CLI commands "dialplan set extenpatternmatching true/false"
1167
  * New CLI commands "dialplan set extenpatternmatching true/false"
1155
  * New CLI command: "core set chanvar" to set a channel variable from the CLI.
1168
  * New CLI command: "core set chanvar" to set a channel variable from the CLI.
1156
  * Added an easy way to execute Asterisk CLI commands at startup.  Any commands
1169
  * Added an easy way to execute Asterisk CLI commands at startup.  Any commands
1157
    listed in the startup_commands section of cli.conf will get executed.
1170
    listed in the startup_commands section of cli.conf will get executed.
1158
  * Added a CLI command, "devstate change", which allows you to set custom device
1171
  * Added a CLI command, "devstate change", which allows you to set custom device
1159
     states from the func_devstate module that provides the DEVICE_STATE() function
1172
     states from the func_devstate module that provides the DEVICE_STATE() function
1160
     and handling of the "Custom:" devices.
1173
     and handling of the "Custom:" devices.
1161
  * New CLI command: "sip show sched" which shows all ast_sched entries for sip,
1174
  * New CLI command: "sip show sched" which shows all ast_sched entries for sip,
1162
    sorted into the different possible callbacks, with the number of entries
1175
    sorted into the different possible callbacks, with the number of entries
1163
    currently scheduled for each. Gives you a feel for how busy the sip channel
1176
    currently scheduled for each. Gives you a feel for how busy the sip channel
1164
    driver is.
1177
    driver is.
1165
  * Added 'skinny show lines verbose' CLI command. This will show the subs for every channel.
1178
  * Added 'skinny show lines verbose' CLI command. This will show the subs for every channel.
1166
  * Cleanup another bunch of CLI commands. Now all modules follow the same schema.
1179
  * Cleanup another bunch of CLI commands. Now all modules follow the same schema.
1167
    (Done by lmadsen, junky and mvanbaak during the devcon 2008)
1180
    (Done by lmadsen, junky and mvanbaak during the devcon 2008)
1168

    
   
1181

   
1169
SIP changes
1182
SIP changes
1170
-----------
1183
-----------
1171
 * Added a new 'faxdetect=yes|no' configuration option to sip.conf.  When this
1184
 * Added a new 'faxdetect=yes|no' configuration option to sip.conf.  When this
1172
    option is enabled, Asterisk will watch for a CNG tone in the incoming audio
1185
    option is enabled, Asterisk will watch for a CNG tone in the incoming audio
1173
    for a received call.  If it is detected, the channel will jump to the 
1186
    for a received call.  If it is detected, the channel will jump to the 
1174
    'fax' extension in the dialplan.
1187
    'fax' extension in the dialplan.
1175
  * The default SIP useragent= identifier now includes the Asterisk version
1188
  * The default SIP useragent= identifier now includes the Asterisk version
1176
  * A new option, match_auth_username in sip.conf changes the matching of incoming requests.
1189
  * A new option, match_auth_username in sip.conf changes the matching of incoming requests.
1177
     If set, and the incoming request carries authentication info,
1190
     If set, and the incoming request carries authentication info,
1178
     the username to match in the users list is taken from the Digest header
1191
     the username to match in the users list is taken from the Digest header
1179
     rather than from the From: field. This feature is considered experimental.
1192
     rather than from the From: field. This feature is considered experimental.
1180
  * The "musiconhold" and "musicclass" settings in sip.conf are now removed,
1193
  * The "musiconhold" and "musicclass" settings in sip.conf are now removed,
1181
     since they where replaced by "mohsuggest" and "mohinterpret" in version 1.4
1194
     since they where replaced by "mohsuggest" and "mohinterpret" in version 1.4
1182
  * The "localmask" setting was removed in version 1.2 and the reminder about it
1195
  * The "localmask" setting was removed in version 1.2 and the reminder about it
1183
     being removed is now also removed.
1196
     being removed is now also removed.
1184
  * A new option "busylevel" for setting a level of calls where asterisk reports
1197
  * A new option "busylevel" for setting a level of calls where asterisk reports
1185
     a device as busy, to separate it from call-limit. This value is also added
1198
     a device as busy, to separate it from call-limit. This value is also added
1186
     to the SIP_PEER dialplan function.
1199
     to the SIP_PEER dialplan function.
1187
  * A new realtime family called "sipregs" is now supported to store SIP registration
1200
  * A new realtime family called "sipregs" is now supported to store SIP registration
1188
     data. If this family is defined, "sippeers" will be used for configuration and
1201
     data. If this family is defined, "sippeers" will be used for configuration and
1189
     "sipregs" for registrations. If it's not defined, "sippeers" will be used for
1202
     "sipregs" for registrations. If it's not defined, "sippeers" will be used for
1190
     registration data, as before.
1203
     registration data, as before.
1191
  * The SIPPEER function have new options for port address, call and pickup groups
1204
  * The SIPPEER function have new options for port address, call and pickup groups
1192
  * Added support for T.140 realtime text in SIP/RTP
1205
  * Added support for T.140 realtime text in SIP/RTP
1193
  * The "checkmwi" option has been removed from sip.conf, as it is no longer
1206
  * The "checkmwi" option has been removed from sip.conf, as it is no longer
1194
     required due to the restructuring of how MWI is handled.  See the descriptions 
1207
     required due to the restructuring of how MWI is handled.  See the descriptions 
1195
     in this file of the "pollmailboxes" and "pollfreq" options to voicemail.conf 
1208
     in this file of the "pollmailboxes" and "pollfreq" options to voicemail.conf 
1196
     for more information.
1209
     for more information.
1197
  * Added rtpdest option to CHANNEL() dialplan function.
1210
  * Added rtpdest option to CHANNEL() dialplan function.
1198
  * Added SIPREFERRINGCONTEXT and SIPREFERREDBYHDR variables which are set when a transfer takes place.
1211
  * Added SIPREFERRINGCONTEXT and SIPREFERREDBYHDR variables which are set when a transfer takes place.
1199
  * SIP now adds a header to the CANCEL if the call was answered by another phone
1212
  * SIP now adds a header to the CANCEL if the call was answered by another phone
1200
     in the same dial command, or if the new c option in dial() is used.
1213
     in the same dial command, or if the new c option in dial() is used.
1201
  * The new default is that 100 Trying is not sent on REGISTER attempts as the RFC specifically
1214
  * The new default is that 100 Trying is not sent on REGISTER attempts as the RFC specifically
1202
     states it is not needed. For phones, however, that do require it the "registertrying" option
1215
     states it is not needed. For phones, however, that do require it the "registertrying" option
1203
     has been added so it can be enabled. 
1216
     has been added so it can be enabled. 
1204
  * A new option called "callcounter" (global/peer/user level) enables call counters needed
1217
  * A new option called "callcounter" (global/peer/user level) enables call counters needed
1205
     for better status reports needed for queues and SIP subscriptions. (Call-Limit was previously
1218
     for better status reports needed for queues and SIP subscriptions. (Call-Limit was previously
1206
     used to enable this functionality).
1219
     used to enable this functionality).
1207
  * New settings for timer T1 and timer B on a global level or per device. This makes it 
1220
  * New settings for timer T1 and timer B on a global level or per device. This makes it 
1208
     possible to force timeout faster on non-responsive SIP servers. These settings are
1221
     possible to force timeout faster on non-responsive SIP servers. These settings are
1209
     considered advanced, so don't use them unless you have a problem.
1222
     considered advanced, so don't use them unless you have a problem.
1210
  * Added a dial string option to be able to set the To: header in an INVITE to any
1223
  * Added a dial string option to be able to set the To: header in an INVITE to any
1211
     SIP uri.
1224
     SIP uri.
1212
  * Added a new global and per-peer option, qualifyfreq, which allows you to configure
1225
  * Added a new global and per-peer option, qualifyfreq, which allows you to configure
1213
     the qualify frequency.
1226
     the qualify frequency.
1214
  * Added SIP Session Timers support (RFC 4028).  This prevents stuck SIP sessions that
1227
  * Added SIP Session Timers support (RFC 4028).  This prevents stuck SIP sessions that
1215
     were not properly torn down due to network or endpoint failures during an established
1228
     were not properly torn down due to network or endpoint failures during an established
1216
     SIP session.
1229
     SIP session.
1217
  * Added experimental TCP and TLS support for SIP.  See doc/siptls.txt and 
1230
  * Added experimental TCP and TLS support for SIP.  See doc/siptls.txt and 
1218
     configs/sip.conf.sample for more information on how it is used.
1231
     configs/sip.conf.sample for more information on how it is used.
1219
  * Added a new configuration option "authfailureevents" that enables manager events when
1232
  * Added a new configuration option "authfailureevents" that enables manager events when
1220
    a peer can't authenticate properly. 
1233
    a peer can't authenticate properly. 
1221
  * Added DNS manager support to registrations for peers not referencing a peer entry.
1234
  * Added DNS manager support to registrations for peers not referencing a peer entry.
1222

    
   
1235

   
1223
IAX2 changes
1236
IAX2 changes
1224
------------
1237
------------
1225
  * Added the trunkmaxsize configuration option to chan_iax2.
1238
  * Added the trunkmaxsize configuration option to chan_iax2.
1226
  * Added the srvlookup option to iax.conf
1239
  * Added the srvlookup option to iax.conf
1227
  * Added support for OSP.  The token is set and retrieved through the CHANNEL()
1240
  * Added support for OSP.  The token is set and retrieved through the CHANNEL()
1228
     dialplan function.
1241
     dialplan function.
1229

    
   
1242

   
1230
XMPP Google Talk/Jingle changes
1243
XMPP Google Talk/Jingle changes
1231
-------------------------------
1244
-------------------------------
1232
  * Added the bindaddr option to gtalk.conf.
1245
  * Added the bindaddr option to gtalk.conf.
1233

    
   
1246

   
1234
Skinny changes
1247
Skinny changes
1235
-------------
1248
-------------
1236
  * Added skinny show device, skinny show line, and skinny show settings CLI commands.
1249
  * Added skinny show device, skinny show line, and skinny show settings CLI commands.
1237
  * Proper codec support in chan_skinny.
1250
  * Proper codec support in chan_skinny.
1238
  * Added settings for IP and Ethernet QoS requests
1251
  * Added settings for IP and Ethernet QoS requests
1239

    
   
1252

   
1240
MGCP changes
1253
MGCP changes
1241
------------
1254
------------
1242
  * Added separate settings for media QoS in mgcp.conf
1255
  * Added separate settings for media QoS in mgcp.conf
1243

    
   
1256

   
1244
Console Channel Driver changes
1257
Console Channel Driver changes
1245
------------------------------
1258
------------------------------
1246
  * Added experimental support for video send & receive to chan_oss.
1259
  * Added experimental support for video send & receive to chan_oss.
1247
    This requires SDL and ffmpeg/avcodec, plus Video4Linux or X11 to act as
1260
    This requires SDL and ffmpeg/avcodec, plus Video4Linux or X11 to act as
1248
    a video source.
1261
    a video source.
1249

    
   
1262

   
1250
Phone channel changes (chan_phone)
1263
Phone channel changes (chan_phone)
1251
----------------------------------
1264
----------------------------------
1252
  * Added G729 passthrough support to chan_phone for Sigma Designs boards.
1265
  * Added G729 passthrough support to chan_phone for Sigma Designs boards.
1253

    
   
1266

   
1254
H.323 channel Changes
1267
H.323 channel Changes
1255
---------------------
1268
---------------------
1256
  * H323 remote hold notification support added (by NOTIFY message
1269
  * H323 remote hold notification support added (by NOTIFY message
1257
     and/or H.450 supplementary service)
1270
     and/or H.450 supplementary service)
1258

    
   
1271

   
1259
Local channel changes
1272
Local channel changes
1260
---------------------
1273
---------------------
1261
  * The device state functionality in the Local channel driver has been updated
1274
  * The device state functionality in the Local channel driver has been updated
1262
     to indicate INUSE or NOT_INUSE when a Local channel is being used as opposed
1275
     to indicate INUSE or NOT_INUSE when a Local channel is being used as opposed
1263
     to just UNKNOWN if the extension exists.
1276
     to just UNKNOWN if the extension exists.
1264
  * Added jitterbuffer support for chan_local.  This allows you to use the
1277
  * Added jitterbuffer support for chan_local.  This allows you to use the
1265
     generic jitterbuffer on incoming calls going to Asterisk applications.
1278
     generic jitterbuffer on incoming calls going to Asterisk applications.
1266
     For example, this would allow you to use a jitterbuffer for an incoming
1279
     For example, this would allow you to use a jitterbuffer for an incoming
1267
     SIP call to Voicemail by putting a Local channel in the middle.  This
1280
     SIP call to Voicemail by putting a Local channel in the middle.  This
1268
     feature is enabled by using the 'j' option in the Dial string to the Local
1281
     feature is enabled by using the 'j' option in the Dial string to the Local
1269
     channel in conjunction with the existing 'n' option for local channels.
1282
     channel in conjunction with the existing 'n' option for local channels.
1270
  * A 'b' option has been added which causes chan_local to return the actual channel
1283
  * A 'b' option has been added which causes chan_local to return the actual channel
1271
     that is behind it when queried. This is useful for transfer scenarios as the
1284
     that is behind it when queried. This is useful for transfer scenarios as the
1272
     actual channel will be transferred, not the Local channel.
1285
     actual channel will be transferred, not the Local channel.
1273

    
   
1286

   
1274
Agent channel changes
1287
Agent channel changes
1275
----------------------
1288
----------------------
1276
  * The ackcall and endcall options are now supplemented with options acceptdtmf
1289
  * The ackcall and endcall options are now supplemented with options acceptdtmf
1277
    and enddtmf. These allow for the DTMF keypress to be configurable. The options
1290
    and enddtmf. These allow for the DTMF keypress to be configurable. The options
1278
    default to their old hard-coded values ('#' and '*' respectively) so this should
1291
    default to their old hard-coded values ('#' and '*' respectively) so this should
1279
    not break any existing agent installations.
1292
    not break any existing agent installations.
1280

    
   
1293

   
1281
DAHDI channel driver (chan_dahdi) Changes
1294
DAHDI channel driver (chan_dahdi) Changes
1282
----------------------------------------
1295
----------------------------------------
1283
  * SS7 support (via libss7 library)
1296
  * SS7 support (via libss7 library)
1284
  * In India, some carriers transmit CID via dtmf. Some code has been added
1297
  * In India, some carriers transmit CID via dtmf. Some code has been added
1285
     that will handle some situations. The cidstart=polarity_IN choice has been added for
1298
     that will handle some situations. The cidstart=polarity_IN choice has been added for
1286
     those carriers that transmit CID via dtmf after a polarity change.
1299
     those carriers that transmit CID via dtmf after a polarity change.
1287
  * CID matching information is now shown when doing 'dialplan show'.
1300
  * CID matching information is now shown when doing 'dialplan show'.
1288
  * Added dahdi show version CLI command.
1301
  * Added dahdi show version CLI command.
1289
  * Added setvar support to chan_dahdi.conf channel entries.
1302
  * Added setvar support to chan_dahdi.conf channel entries.
1290
  * Added two new options: mwimonitor and mwimonitornotify.  These options allow
1303
  * Added two new options: mwimonitor and mwimonitornotify.  These options allow
1291
     you to enable MWI monitoring on FXO lines.  When the MWI state changes,
1304
     you to enable MWI monitoring on FXO lines.  When the MWI state changes,
1292
     the script specified in the mwimonitornotify option is executed.  An internal
1305
     the script specified in the mwimonitornotify option is executed.  An internal
1293
     event indicating the new state of the mailbox is also generated, so that
1306
     event indicating the new state of the mailbox is also generated, so that
1294
     the normal MWI facilities in Asterisk work as usual.
1307
     the normal MWI facilities in Asterisk work as usual.
1295
  * Added signalling type 'auto', which attempts to use the same signalling type
1308
  * Added signalling type 'auto', which attempts to use the same signalling type
1296
     for a channel as configured in DAHDI. This is primarily designed for analog
1309
     for a channel as configured in DAHDI. This is primarily designed for analog
1297
     ports, but will also work for digital ports that are configured for FXS or FXO
1310
     ports, but will also work for digital ports that are configured for FXS or FXO
1298
     signalling types. This mode is also the default now, so if your chan_dahdi.conf
1311
     signalling types. This mode is also the default now, so if your chan_dahdi.conf
1299
     does not specify signalling for a channel (which is unlikely as the sample
1312
     does not specify signalling for a channel (which is unlikely as the sample
1300
     configuration file has always recommended specifying it for every channel) then
1313
     configuration file has always recommended specifying it for every channel) then
1301
     the 'auto' mode will be used for that channel if possible.
1314
     the 'auto' mode will be used for that channel if possible.
1302
  * Added a 'dahdi set dnd' command to allow CLI control of the Do-Not-Disturb
1315
  * Added a 'dahdi set dnd' command to allow CLI control of the Do-Not-Disturb
1303
     state for a channel; also ensured that the DNDState Manager event is
1316
     state for a channel; also ensured that the DNDState Manager event is
1304
     emitted no matter how the DND state is set or cleared.
1317
     emitted no matter how the DND state is set or cleared.
1305

    
   
1318

   
1306
New Channel Drivers
1319
New Channel Drivers
1307
-------------------
1320
-------------------
1308
  * Added a new channel driver, chan_unistim.  See doc/unistim.txt and
1321
  * Added a new channel driver, chan_unistim.  See doc/unistim.txt and
1309
     configs/unistim.conf.sample for details.  This new channel driver allows
1322
     configs/unistim.conf.sample for details.  This new channel driver allows
1310
     you to use Nortel i2002, i2004, and i2050 phones with Asterisk.
1323
     you to use Nortel i2002, i2004, and i2050 phones with Asterisk.
1311
  * Added a new channel driver, chan_console, which uses portaudio as a cross
1324
  * Added a new channel driver, chan_console, which uses portaudio as a cross
1312
     platform audio interface.  It was written as a channel driver that would
1325
     platform audio interface.  It was written as a channel driver that would
1313
     work with Mac CoreAudio, but portaudio supports a number of other audio
1326
     work with Mac CoreAudio, but portaudio supports a number of other audio
1314
     interfaces, as well. Note that this channel driver requires v19 or higher
1327
     interfaces, as well. Note that this channel driver requires v19 or higher
1315
     of portaudio; older versions have a different API.
1328
     of portaudio; older versions have a different API.
1316
 
1329
 
1317
DUNDi changes
1330
DUNDi changes
1318
-------------
1331
-------------
1319
  * Added the ability to specify arguments to the Dial application when using
1332
  * Added the ability to specify arguments to the Dial application when using
1320
     the DUNDi switch in the dialplan.
1333
     the DUNDi switch in the dialplan.
1321
  * Added the ability to set weights for responses dynamically.  This can be
1334
  * Added the ability to set weights for responses dynamically.  This can be
1322
     done using a global variable or a dialplan function.  Using the SHELL()
1335
     done using a global variable or a dialplan function.  Using the SHELL()
1323
     function would allow you to have an external script set the weight for
1336
     function would allow you to have an external script set the weight for
1324
     each response.
1337
     each response.
1325
  * Added two new dialplan functions, DUNDIQUERY and DUNDIRESULT.  These
1338
  * Added two new dialplan functions, DUNDIQUERY and DUNDIRESULT.  These
1326
     functions will allow you to initiate a DUNDi query from the dialplan,
1339
     functions will allow you to initiate a DUNDi query from the dialplan,
1327
     find out how many results there are, and access each one.
1340
     find out how many results there are, and access each one.
1328
  * Added the ability to specifiy a port for a dundi peer.
1341
  * Added the ability to specifiy a port for a dundi peer.
1329

    
   
1342

   
1330
ENUM changes
1343
ENUM changes
1331
------------
1344
------------
1332
  * Added two new dialplan functions, ENUMQUERY and ENUMRESULT.  These
1345
  * Added two new dialplan functions, ENUMQUERY and ENUMRESULT.  These
1333
     functions will allow you to initiate an ENUM lookup from the dialplan,
1346
     functions will allow you to initiate an ENUM lookup from the dialplan,
1334
     and Asterisk will cache the results.  ENUMRESULT can be used to access
1347
     and Asterisk will cache the results.  ENUMRESULT can be used to access
1335
     the results without doing multiple DNS queries.
1348
     the results without doing multiple DNS queries.
1336

    
   
1349

   
1337
Voicemail Changes
1350
Voicemail Changes
1338
-----------------
1351
-----------------
1339
  * Added the ability to customize which sound files are used for some of the
1352
  * Added the ability to customize which sound files are used for some of the
1340
     prompts within the Voicemail application by changing them in voicemail.conf
1353
     prompts within the Voicemail application by changing them in voicemail.conf
1341
  * Added the ability for the "voicemail show users" CLI command to show users
1354
  * Added the ability for the "voicemail show users" CLI command to show users
1342
     configured by the dynamic realtime configuration method.
1355
     configured by the dynamic realtime configuration method.
1343
  * MWI (Message Waiting Indication) handling has been significantly
1356
  * MWI (Message Waiting Indication) handling has been significantly
1344
     restructured internally to Asterisk.  It is now totally event based
1357
     restructured internally to Asterisk.  It is now totally event based
1345
     instead of polling based.  The voicemail application will notify other
1358
     instead of polling based.  The voicemail application will notify other
1346
     modules that have subscribed to MWI events when something in the mailbox
1359
     modules that have subscribed to MWI events when something in the mailbox
1347
     changes.
1360
     changes.
1348
    This also means that if any other entity outside of Asterisk is changing
1361
    This also means that if any other entity outside of Asterisk is changing
1349
     the contents of mailboxes, then the voicemail application still needs to
1362
     the contents of mailboxes, then the voicemail application still needs to
1350
     poll for changes.  Examples of situations that would require this option
1363
     poll for changes.  Examples of situations that would require this option
1351
     are web interfaces to voicemail or an email client in the case of using
1364
     are web interfaces to voicemail or an email client in the case of using
1352
     IMAP storage.  So, two new options have been added to voicemail.conf
1365
     IMAP storage.  So, two new options have been added to voicemail.conf
1353
     to account for this: "pollmailboxes" and "pollfreq".  See the sample
1366
     to account for this: "pollmailboxes" and "pollfreq".  See the sample
1354
     configuration file for details.
1367
     configuration file for details.
1355
  * Added "tw" language support
1368
  * Added "tw" language support
1356
  * Added support for storage of greetings using an IMAP server
1369
  * Added support for storage of greetings using an IMAP server
1357
  * Added ability to customize forward, reverse, stop, and pause keys for message playback
1370
  * Added ability to customize forward, reverse, stop, and pause keys for message playback
1358
  * SMDI is now enabled in voicemail using the smdienable option.
1371
  * SMDI is now enabled in voicemail using the smdienable option.
1359
  * A "lockmode" option has been added to asterisk.conf to configure the file
1372
  * A "lockmode" option has been added to asterisk.conf to configure the file
1360
     locking method used for voicemail, and potentially other things in the
1373
     locking method used for voicemail, and potentially other things in the
1361
     future.  The default is the old behavior, lockfile.  However, there is a
1374
     future.  The default is the old behavior, lockfile.  However, there is a
1362
     new method, "flock", that uses a different method for situations where the
1375
     new method, "flock", that uses a different method for situations where the
1363
     lockfile will not work, such as on SMB/CIFS mounts.
1376
     lockfile will not work, such as on SMB/CIFS mounts.
1364
  * Added the ability to backup deleted messages, to ease recovery in the case
1377
  * Added the ability to backup deleted messages, to ease recovery in the case
1365
     that a user accidentally deletes a message, and discovers that they need it.
1378
     that a user accidentally deletes a message, and discovers that they need it.
1366
  * Reworked the SMDI interface in Asterisk.  The new way to access SMDI information
1379
  * Reworked the SMDI interface in Asterisk.  The new way to access SMDI information
1367
     is through the new functions, SMDI_MSG_RETRIEVE() and SMDI_MSG().  The file
1380
     is through the new functions, SMDI_MSG_RETRIEVE() and SMDI_MSG().  The file
1368
     smdi.conf can now be configured with options to map SMDI station IDs to Asterisk
1381
     smdi.conf can now be configured with options to map SMDI station IDs to Asterisk
1369
     voicemail boxes.  The SMDI interface can also poll for MWI changes when some
1382
     voicemail boxes.  The SMDI interface can also poll for MWI changes when some
1370
     outside entity is modifying the state of the mailbox (such as IMAP storage or
1383
     outside entity is modifying the state of the mailbox (such as IMAP storage or
1371
     a web interface of some kind).
1384
     a web interface of some kind).
1372
  * Added the support for marking messages as "urgent." There are two methods to accomplish
1385
  * Added the support for marking messages as "urgent." There are two methods to accomplish
1373
     this. One is to pass the 'U' option to VoiceMail(). Another way to mark a message as urgent
1386
     this. One is to pass the 'U' option to VoiceMail(). Another way to mark a message as urgent
1374
     is to specify "review=yes" in voicemail.conf. Doing this will cause allow the user to mark
1387
     is to specify "review=yes" in voicemail.conf. Doing this will cause allow the user to mark
1375
     the message as urgent after he has recorded a voicemail by following the voice instructions.
1388
     the message as urgent after he has recorded a voicemail by following the voice instructions.
1376
    When listening to voicemails using VoiceMailMain urgent messages will be presented before other
1389
    When listening to voicemails using VoiceMailMain urgent messages will be presented before other
1377
     messages
1390
     messages
1378

    
   
1391

   
1379
Queue changes
1392
Queue changes
1380
-------------
1393
-------------
1381
  * Added the general option 'shared_lastcall' so that member's wrapuptime may be
1394
  * Added the general option 'shared_lastcall' so that member's wrapuptime may be
1382
     used across multiple queues.
1395
     used across multiple queues.
1383
  * Added QUEUE_VARIABLES function to set queue variables added setqueuevar and 
1396
  * Added QUEUE_VARIABLES function to set queue variables added setqueuevar and 
1384
     setqueueentryvar options for each queue, see queues.conf.sample for details.
1397
     setqueueentryvar options for each queue, see queues.conf.sample for details.
1385
  * Added keepstats option to queues.conf which will keep queue
1398
  * Added keepstats option to queues.conf which will keep queue
1386
     statistics during a reload.
1399
     statistics during a reload.
1387
  * setinterfacevar option in queues.conf also now sets a variable
1400
  * setinterfacevar option in queues.conf also now sets a variable
1388
     called MEMBERNAME which contains the member's name.
1401
     called MEMBERNAME which contains the member's name.
1389
  * Added 'Strategy' field to manager event QueueParams which represents
1402
  * Added 'Strategy' field to manager event QueueParams which represents
1390
     the queue strategy in use. 
1403
     the queue strategy in use. 
1391
  * Added option to run macro when a queue member is connected to a caller, 
1404
  * Added option to run macro when a queue member is connected to a caller, 
1392
     see queues.conf.sample for details.
1405
     see queues.conf.sample for details.
1393
  * app_queue now has a 'loose' option which is almost exactly like 'strict' except it
1406
  * app_queue now has a 'loose' option which is almost exactly like 'strict' except it
1394
     does not count paused queue members as unavailable.
1407
     does not count paused queue members as unavailable.
1395
  * Added min-announce-frequency option to queues.conf which allows you to control the
1408
  * Added min-announce-frequency option to queues.conf which allows you to control the
1396
     minimum amount of time between queue announcements for use when the caller's queue
1409
     minimum amount of time between queue announcements for use when the caller's queue
1397
     position changes frequently.
1410
     position changes frequently.
1398
  * Added additional information to EXITWITHTIMEOUT and EXITWITHKEY events in the
1411
  * Added additional information to EXITWITHTIMEOUT and EXITWITHKEY events in the
1399
     queue log.
1412
     queue log.
1400
  * Added ability for non-realtime queues to have realtime members
1413
  * Added ability for non-realtime queues to have realtime members
1401
  * Added the "linear" strategy to queues.
1414
  * Added the "linear" strategy to queues.
1402
  * Added the "wrandom" strategy to queues.
1415
  * Added the "wrandom" strategy to queues.
1403
  * Added new channel variable QUEUE_MIN_PENALTY
1416
  * Added new channel variable QUEUE_MIN_PENALTY
1404
  * QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY may be adjusted in mid-call by defining
1417
  * QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY may be adjusted in mid-call by defining
1405
     rules in queuerules.conf. See configs/queuerules.conf.sample for details
1418
     rules in queuerules.conf. See configs/queuerules.conf.sample for details
1406
  * Added a new parameter for member definition, called state_interface. This may be
1419
  * Added a new parameter for member definition, called state_interface. This may be
1407
    used so that a member may be called via one interface but have a different interface's
1420
    used so that a member may be called via one interface but have a different interface's
1408
    device state reported.
1421
    device state reported.
1409
  * Added new CLI and Manager commands relating to reloading queues. From the CLI, see
1422
  * Added new CLI and Manager commands relating to reloading queues. From the CLI, see
1410
    "queue reload", "queue reset stats". Also see "manager show command QueueReload" and
1423
    "queue reload", "queue reset stats". Also see "manager show command QueueReload" and
1411
    "manager show command QueueReset."
1424
    "manager show command QueueReset."
1412
  * New configuration option: randomperiodicannounce. If a list of periodic announcements is
1425
  * New configuration option: randomperiodicannounce. If a list of periodic announcements is
1413
    specified by the periodic-announce option, then one will be chosen randomly when it is time
1426
    specified by the periodic-announce option, then one will be chosen randomly when it is time
1414
    to play a periodic announcment
1427
    to play a periodic announcment
1415
  * New configuration options: announce-position now takes two more values in addition to "yes" and
1428
  * New configuration options: announce-position now takes two more values in addition to "yes" and
1416
    "no." Two new options, "limit" and "more," are allowed. These are tied to another option,
1429
    "no." Two new options, "limit" and "more," are allowed. These are tied to another option,
1417
    announce-position-limit. By setting announce-position to "limit" callers will only have their
1430
    announce-position-limit. By setting announce-position to "limit" callers will only have their
1418
    position announced if their position is less than what is specified by announce-position-limit.
1431
    position announced if their position is less than what is specified by announce-position-limit.
1419
    If announce-position is set to "more" then callers beyond the position specified by announce-position-limit
1432
    If announce-position is set to "more" then callers beyond the position specified by announce-position-limit
1420
    will be told that their are more than announce-position-limit callers waiting.
1433
    will be told that their are more than announce-position-limit callers waiting.
1421
  * Two new queue log events have been added. An ADDMEMBER event will be logged
1434
  * Two new queue log events have been added. An ADDMEMBER event will be logged
1422
    when a realtime queue member is added and a REMOVEMEMBER event will be logged
1435
    when a realtime queue member is added and a REMOVEMEMBER event will be logged
1423
    when a realtime queue member is removed. Since there is no calling channel associated
1436
    when a realtime queue member is removed. Since there is no calling channel associated
1424
    with these events, the string "REALTIME" is placed where the channel's unique id
1437
    with these events, the string "REALTIME" is placed where the channel's unique id
1425
    is typically placed.
1438
    is typically placed.
1426
  * The configuration method for the "joinempty" and "leavewhenempty" options has
1439
  * The configuration method for the "joinempty" and "leavewhenempty" options has
1427
    changed to a comma-separated list of methods of determining member availability
1440
    changed to a comma-separated list of methods of determining member availability
1428
    instead of vague terms such as "yes," "loose," "no," and "strict." These old four
1441
    instead of vague terms such as "yes," "loose," "no," and "strict." These old four
1429
    values are still accepted for backwards-compatibility, though.
1442
    values are still accepted for backwards-compatibility, though.
1430
  * The average talktime is now calculated on queues. This information is reported via the
1443
  * The average talktime is now calculated on queues. This information is reported via the
1431
    CLI commands "queue show" and "queues show"; through the AMI events AgentComplete, QueueSummary,
1444
    CLI commands "queue show" and "queues show"; through the AMI events AgentComplete, QueueSummary,
1432
    and QueueParams; and through the channelvariable QUEUETALKTIME if setinterfacevar=yes is set for
1445
    and QueueParams; and through the channelvariable QUEUETALKTIME if setinterfacevar=yes is set for
1433
    the queue.
1446
    the queue.
1434

    
   
1447

   
1435
MeetMe Changes
1448
MeetMe Changes
1436
--------------
1449
--------------
1437
  * The 'o' option to provide an optimization has been removed and its functionality 
1450
  * The 'o' option to provide an optimization has been removed and its functionality 
1438
     has been enabled by default.
1451
     has been enabled by default.
1439
  * When a conference is created, the UNIQUEID of the channel that caused it to be
1452
  * When a conference is created, the UNIQUEID of the channel that caused it to be
1440
     created is stored.  Then, every channel that joins the conference will have the
1453
     created is stored.  Then, every channel that joins the conference will have the
1441
     MEETMEUNIQUEID channel variable set with this ID.  This can be used to relate
1454
     MEETMEUNIQUEID channel variable set with this ID.  This can be used to relate
1442
     callers that come and go from long standing conferences.
1455
     callers that come and go from long standing conferences.
1443
  * Added a new application, MeetMeChannelAdmin, which is similar to MeetMeAdmin,
1456
  * Added a new application, MeetMeChannelAdmin, which is similar to MeetMeAdmin,
1444
     except it does operations on a channel by name, instead of number in a conference.
1457
     except it does operations on a channel by name, instead of number in a conference.
1445
     This is a very useful feature in combination with the 'X' option to ChanSpy.
1458
     This is a very useful feature in combination with the 'X' option to ChanSpy.
1446
  * Added 'C' option to Meetme which causes a caller to continue in the dialplan
1459
  * Added 'C' option to Meetme which causes a caller to continue in the dialplan
1447
     when kicked out.
1460
     when kicked out.
1448
  * Added new RealTime functionality to provide support for scheduled conferencing.
1461
  * Added new RealTime functionality to provide support for scheduled conferencing.
1449
     This includes optional messages to the caller if they attempt to join before
1462
     This includes optional messages to the caller if they attempt to join before
1450
     the schedule start time, or to allow the caller to join the conference early.
1463
     the schedule start time, or to allow the caller to join the conference early.
1451
     Also included is optional support for limiting the number of callers per
1464
     Also included is optional support for limiting the number of callers per
1452
     RealTime conference.
1465
     RealTime conference.
1453
  * Added the S() and L() options to the MeetMe application.  These are pretty
1466
  * Added the S() and L() options to the MeetMe application.  These are pretty
1454
     much identical to the S() and L() options to Dial().  They let you set
1467
     much identical to the S() and L() options to Dial().  They let you set
1455
     timeouts for the conference, as well as have warning sounds played to
1468
     timeouts for the conference, as well as have warning sounds played to
1456
     let the caller know how much time is left, and when it is running out.
1469
     let the caller know how much time is left, and when it is running out.
1457
  * Added the ability to do "meetme concise" with the "meetme" CLI command.
1470
  * Added the ability to do "meetme concise" with the "meetme" CLI command.
1458
     This extends the concise capabilities of this CLI command to include
1471
     This extends the concise capabilities of this CLI command to include
1459
     listing all conferences, instead of an addition to the other sub commands
1472
     listing all conferences, instead of an addition to the other sub commands
1460
     for the "meetme" command.
1473
     for the "meetme" command.
1461
  * Added the ability to specify the music on hold class used to play into the
1474
  * Added the ability to specify the music on hold class used to play into the
1462
     conference when there is only one member and the M option is used.
1475
     conference when there is only one member and the M option is used.
1463
  * Added MEETME_INFO dialplan function which provides a way to query
1476
  * Added MEETME_INFO dialplan function which provides a way to query
1464
     various properties of a Meetme conference.
1477
     various properties of a Meetme conference.
1465
  * Added new admin features: *81: Roll call, *82: eject all, *83: mute all, 
1478
  * Added new admin features: *81: Roll call, *82: eject all, *83: mute all, 
1466
     and *84: record in-conf
1479
     and *84: record in-conf
1467

    
   
1480

   
1468
Other Dialplan Application Changes
1481
Other Dialplan Application Changes
1469
----------------------------------
1482
----------------------------------
1470
  * Argument support for Gosub application
1483
  * Argument support for Gosub application
1471
  * From the to-do lists: straighten out the app timeout args:
1484
  * From the to-do lists: straighten out the app timeout args:
1472
     Wait() app now really does 0.3 seconds- was truncating arg to an int.
1485
     Wait() app now really does 0.3 seconds- was truncating arg to an int.
1473
     WaitExten() same as Wait().
1486
     WaitExten() same as Wait().
1474
     Congestion() - Now takes floating pt. argument.
1487
     Congestion() - Now takes floating pt. argument.
1475
     Busy() - now takes floating pt. argument.
1488
     Busy() - now takes floating pt. argument.
1476
     Read() - timeout now can be floating pt.
1489
     Read() - timeout now can be floating pt.
1477
     WaitForRing() now takes floating pt timeout arg.
1490
     WaitForRing() now takes floating pt timeout arg.
1478
     SpeechBackground() -- clarified in the docstrings that the timeout is an integer seconds.
1491
     SpeechBackground() -- clarified in the docstrings that the timeout is an integer seconds.
1479
  * Added 's' option to Page application.
1492
  * Added 's' option to Page application.
1480
  * Added an optional timeout argument to the Page application.
1493
  * Added an optional timeout argument to the Page application.
1481
  * Added 'E', 'V', and 'P' commands to ExternalIVR.
1494
  * Added 'E', 'V', and 'P' commands to ExternalIVR.
1482
  * Added 'o' and 'X' options to Chanspy.
1495
  * Added 'o' and 'X' options to Chanspy.
1483
  * Added a new dialplan application, Bridge, which allows you to bridge the
1496
  * Added a new dialplan application, Bridge, which allows you to bridge the
1484
     calling channel to any other active channel on the system.
1497
     calling channel to any other active channel on the system.
1485
  * Added the ability to specify a music on hold class to play instead of ringing
1498
  * Added the ability to specify a music on hold class to play instead of ringing
1486
     for the SLATrunk application.
1499
     for the SLATrunk application.
1487
  * The Read application no longer exits the dialplan on error.  Instead, it sets
1500
  * The Read application no longer exits the dialplan on error.  Instead, it sets
1488
     READSTATUS to ERROR, which you can catch and handle separately.
1501
     READSTATUS to ERROR, which you can catch and handle separately.
1489
  * Added 'm' option to Directory, which lists out names, 8 at a time, instead
1502
  * Added 'm' option to Directory, which lists out names, 8 at a time, instead
1490
     of asking for verification of each name, one at a time.
1503
     of asking for verification of each name, one at a time.
1491
  * Privacy() no longer uses privacy.conf, as all options are specifyable as
1504
  * Privacy() no longer uses privacy.conf, as all options are specifyable as
1492
     direct options to the app.
1505
     direct options to the app.
1493
  * AMD() has a new "maximum word length" option. "show application AMD" from the CLI
1506
  * AMD() has a new "maximum word length" option. "show application AMD" from the CLI
1494
     for more details
1507
     for more details
1495
  * GotoIfTime() now may branch based on a "false" condition, like other Goto-related applications
1508
  * GotoIfTime() now may branch based on a "false" condition, like other Goto-related applications
1496
  * The ChannelRedirect application no longer exits the dialplan if the given channel
1509
  * The ChannelRedirect application no longer exits the dialplan if the given channel
1497
     does not exist. It will now set the CHANNELREDIRECT_STATUS variable to SUCCESS upon success
1510
     does not exist. It will now set the CHANNELREDIRECT_STATUS variable to SUCCESS upon success
1498
     or NOCHANNEL if the given channel was not found.
1511
     or NOCHANNEL if the given channel was not found.
1499
  * The silencethreshold setting that was previously configurable in multiple
1512
  * The silencethreshold setting that was previously configurable in multiple
1500
     applications is now settable globally via dsp.conf.
1513
     applications is now settable globally via dsp.conf.
1501

    
   
1514

   
1502
Music On Hold Changes
1515
Music On Hold Changes
1503
---------------------
1516
---------------------
1504
  * A new option, "digit", has been added for music on hold classes in 
1517
  * A new option, "digit", has been added for music on hold classes in 
1505
     musiconhold.conf.  If this is set for a music on hold class, a caller
1518
     musiconhold.conf.  If this is set for a music on hold class, a caller
1506
     listening to music on hold can press this digit to switch to listening
1519
     listening to music on hold can press this digit to switch to listening
1507
     to this music on hold class.
1520
     to this music on hold class.
1508
  * Support for realtime music on hold has been added.
1521
  * Support for realtime music on hold has been added.
1509
  * In conjunction with the realtime music on hold, a general section has
1522
  * In conjunction with the realtime music on hold, a general section has
1510
     been added to musiconhold.conf, its sole variable is cachertclasses. If this
1523
     been added to musiconhold.conf, its sole variable is cachertclasses. If this
1511
     is set, then music on hold classes found in realtime will be cached in memory.
1524
     is set, then music on hold classes found in realtime will be cached in memory.
1512

    
   
1525

   
1513
AEL Changes
1526
AEL Changes
1514
-----------
1527
-----------
1515
  * AEL upgraded to use the Gosub with Arguments instead
1528
  * AEL upgraded to use the Gosub with Arguments instead
1516
     of Macro application, to hopefully reduce the problems
1529
     of Macro application, to hopefully reduce the problems
1517
     seen with the artificially low stack ceiling that 
1530
     seen with the artificially low stack ceiling that 
1518
     Macro bumps into. Macros can only call other Macros
1531
     Macro bumps into. Macros can only call other Macros
1519
     to a depth of 7. Tests run using gosub, show depths
1532
     to a depth of 7. Tests run using gosub, show depths
1520
     limited only by virtual memory. A small test demonstrated
1533
     limited only by virtual memory. A small test demonstrated
1521
     recursive call depths of 100,000 without problems.
1534
     recursive call depths of 100,000 without problems.
1522
     -- in addition to this, all apps that allowed a macro
1535
     -- in addition to this, all apps that allowed a macro
1523
     to be called, as in Dial, queues, etc, are now allowing
1536
     to be called, as in Dial, queues, etc, are now allowing
1524
     a gosub call in similar fashion.
1537
     a gosub call in similar fashion.
1525
  * AEL now generates LOCAL(argname) declarations when it
1538
  * AEL now generates LOCAL(argname) declarations when it
1526
     Set()'s the each arg name to the value of ${ARG1}, ${ARG2),
1539
     Set()'s the each arg name to the value of ${ARG1}, ${ARG2),
1527
     etc. That makes the arguments local in scope. The user
1540
     etc. That makes the arguments local in scope. The user
1528
     can define their own local variables in macros, now,
1541
     can define their own local variables in macros, now,
1529
     by saying "local myvar=someval;"  or using Set() in this
1542
     by saying "local myvar=someval;"  or using Set() in this
1530
     fashion:  Set(LOCAL(myvar)=someval);  ("local" is now
1543
     fashion:  Set(LOCAL(myvar)=someval);  ("local" is now
1531
     an AEL keyword).
1544
     an AEL keyword).
1532
  * utils/conf2ael introduced. Will convert an extensions.conf
1545
  * utils/conf2ael introduced. Will convert an extensions.conf
1533
     file into extensions.ael. Very crude and unfinished, but 
1546
     file into extensions.ael. Very crude and unfinished, but 
1534
     will be improved as time goes by. Should be useful for a
1547
     will be improved as time goes by. Should be useful for a
1535
     first pass at conversion.
1548
     first pass at conversion.
1536
  * aelparse will now read extensions.conf to see if a referenced
1549
  * aelparse will now read extensions.conf to see if a referenced
1537
     macro or context is there before issueing a warning.
1550
     macro or context is there before issueing a warning.
1538
  * AEL parser sets a local channel variable ~~EXTEN~~, to 
1551
  * AEL parser sets a local channel variable ~~EXTEN~~, to 
1539
    preserve the value of ${EXTEN} thru switch statements.
1552
    preserve the value of ${EXTEN} thru switch statements.
1540
  * New operator in $[...] expressions: the ~~ operator serves
1553
  * New operator in $[...] expressions: the ~~ operator serves
1541
    as a concatenation operator. AT THE MOMENT, it is really only
1554
    as a concatenation operator. AT THE MOMENT, it is really only
1542
    necessary and useful in AEL, especially in if() expressions.
1555
    necessary and useful in AEL, especially in if() expressions.
1543
    Operation: ${a} ~~ ${b|  with force both a and b to strings, strip 
1556
    Operation: ${a} ~~ ${b|  with force both a and b to strings, strip 
1544
    any enclosing double-quotes, and evaluate to the value of a
1557
    any enclosing double-quotes, and evaluate to the value of a
1545
    concatenated with the value of b.  For example if a is set to
1558
    concatenated with the value of b.  For example if a is set to
1546
    "xyz"  and b has the value "abc", then ${a} ~~ ${b| would
1559
    "xyz"  and b has the value "abc", then ${a} ~~ ${b| would
1547
    evaluate to xyzabc .
1560
    evaluate to xyzabc .
1548

    
   
1561

   
1549

    
   
1562

   
1550
Call Features (res_features) Changes
1563
Call Features (res_features) Changes
1551
------------------------------------
1564
------------------------------------
1552
  * Added the parkedcalltransfers option to features.conf
1565
  * Added the parkedcalltransfers option to features.conf
1553
  * Added parkedcallparking option to control one touch parking w/ parking
1566
  * Added parkedcallparking option to control one touch parking w/ parking
1554
    pickup
1567
    pickup
1555
  * Added parkedcallhangup option to control disconnect feature w/ parking
1568
  * Added parkedcallhangup option to control disconnect feature w/ parking
1556
    pickup
1569
    pickup
1557
  * Added parkedcallrecording option to control one-touch record w/ parking
1570
  * Added parkedcallrecording option to control one-touch record w/ parking
1558
    pickup
1571
    pickup
1559
  * Added parkedcallparking, parkedcallhangup, parkedcallrecording, and
1572
  * Added parkedcallparking, parkedcallhangup, parkedcallrecording, and
1560
    parkedcalltransfers option support for multiple parking lots.
1573
    parkedcalltransfers option support for multiple parking lots.
1561
  * Added BRIDGE_FEATURES variable to set available features for a channel
1574
  * Added BRIDGE_FEATURES variable to set available features for a channel
1562
  * The built-in method for doing attended transfers has been updated to
1575
  * The built-in method for doing attended transfers has been updated to
1563
     include some new options that allow you to have the transferee sent
1576
     include some new options that allow you to have the transferee sent
1564
     back to the person that did the transfer if the transfer is not successful.
1577
     back to the person that did the transfer if the transfer is not successful.
1565
     See the options "atxferdropcall", "atxferloopdelay", and "atxfercallbackretries"
1578
     See the options "atxferdropcall", "atxferloopdelay", and "atxfercallbackretries"
1566
     in features.conf.sample.
1579
     in features.conf.sample.
1567
  * Added support for configuring named groups of custom call features in
1580
  * Added support for configuring named groups of custom call features in
1568
     features.conf.  This means that features can be written a single time, and
1581
     features.conf.  This means that features can be written a single time, and
1569
     then mapped into groups of features for different key mappings or easier
1582
     then mapped into groups of features for different key mappings or easier
1570
     access control.
1583
     access control.
1571
  * Updated the ParkedCall application to allow you to not specify a parking
1584
  * Updated the ParkedCall application to allow you to not specify a parking
1572
     extension.  If you don't specify a parking space to pick up, it will grab
1585
     extension.  If you don't specify a parking space to pick up, it will grab
1573
     the first one available.
1586
     the first one available.
1574
  * Added cli command 'features reload' to reload call features from features.conf
1587
  * Added cli command 'features reload' to reload call features from features.conf
1575
  * Moved into core asterisk binary.
1588
  * Moved into core asterisk binary.
1576
  * Changed the default setting for featuredigittimeout to 2000 ms from 500 ms.
1589
  * Changed the default setting for featuredigittimeout to 2000 ms from 500 ms.
1577
  * Added the ability for custom parking lots to be configured with their own
1590
  * Added the ability for custom parking lots to be configured with their own
1578
    parking extension with the parkext option.
1591
    parking extension with the parkext option.
1579

    
   
1592

   
1580
Language Support Changes
1593
Language Support Changes
1581
------------------------
1594
------------------------
1582
  * Brazilian Portuguese (pt-BR) in VM, and say.c was added
1595
  * Brazilian Portuguese (pt-BR) in VM, and say.c was added
1583
  * Added support for the Hungarian language for saying numbers, dates, and times.
1596
  * Added support for the Hungarian language for saying numbers, dates, and times.
1584

    
   
1597

   
1585
AGI Changes
1598
AGI Changes
1586
-----------
1599
-----------
1587
  * Added SPEECH commands for speech recognition. A complete listing can be found
1600
  * Added SPEECH commands for speech recognition. A complete listing can be found
1588
    using agi show.
1601
    using agi show.
1589
  * If app_stack is loaded, GOSUB is a native AGI command that may be used to
1602
  * If app_stack is loaded, GOSUB is a native AGI command that may be used to
1590
    invoke subroutines in the dialplan.  Note that calling EXEC with Gosub
1603
    invoke subroutines in the dialplan.  Note that calling EXEC with Gosub
1591
    does not behave as expected; the native command needs to be used, instead.
1604
    does not behave as expected; the native command needs to be used, instead.
1592
  * Added the ability to perform SRV lookups on fast AGI calls. To use this
1605
  * Added the ability to perform SRV lookups on fast AGI calls. To use this
1593
    feature, simply use hagi: instead of agi: as the protocol portion
1606
    feature, simply use hagi: instead of agi: as the protocol portion
1594
    of the URI parameter to the AGI function call in your dial plan. Also note
1607
    of the URI parameter to the AGI function call in your dial plan. Also note
1595
    that specifying a port number in the AGI URI will disable SRV lookups,
1608
    that specifying a port number in the AGI URI will disable SRV lookups,
1596
    even if you use the hagi: protocol.
1609
    even if you use the hagi: protocol.
1597
  * No longer support MSG_OOB flag on HANGUP.
1610
  * No longer support MSG_OOB flag on HANGUP.
1598

    
   
1611

   
1599
Logger changes
1612
Logger changes
1600
--------------
1613
--------------
1601
  * Added rotatestrategy option to logger.conf, along with two new options:
1614
  * Added rotatestrategy option to logger.conf, along with two new options:
1602
     "timestamp" which will use the time to name the logger files instead of
1615
     "timestamp" which will use the time to name the logger files instead of
1603
     sequence number; and "rotate", which rotates the names of the log files,
1616
     sequence number; and "rotate", which rotates the names of the log files,
1604
     similar to the way syslog rotates files.
1617
     similar to the way syslog rotates files.
1605
  * Added exec_after_rotate option to logger.conf, which allows a system
1618
  * Added exec_after_rotate option to logger.conf, which allows a system
1606
     command to be run after rotation.  This is primarily useful with
1619
     command to be run after rotation.  This is primarily useful with
1607
     rotatestrategy=rotate, to allow a limit on the number of log files kept
1620
     rotatestrategy=rotate, to allow a limit on the number of log files kept
1608
     and to ensure that the oldest log file gets deleted.
1621
     and to ensure that the oldest log file gets deleted.
1609
  * Added realtime support for the queue log
1622
  * Added realtime support for the queue log
1610

    
   
1623

   
1611
Call Detail Records 
1624
Call Detail Records 
1612
-------------------
1625
-------------------
1613
  * The cdr_manager module has a [mappings] feature, like cdr_custom,
1626
  * The cdr_manager module has a [mappings] feature, like cdr_custom,
1614
    to add fields to the manager event from the CDR variables.
1627
    to add fields to the manager event from the CDR variables.
1615
  * Added cdr_adaptive_odbc, a new module that adapts to the structure of your
1628
  * Added cdr_adaptive_odbc, a new module that adapts to the structure of your
1616
     backend database CDR table.  Specifically, additional, non-standard
1629
     backend database CDR table.  Specifically, additional, non-standard
1617
     columns are supported, merely by setting the corresponding CDR variable in
1630
     columns are supported, merely by setting the corresponding CDR variable in
1618
     your dialplan.  In addition, you may alias any column to another name (for
1631
     your dialplan.  In addition, you may alias any column to another name (for
1619
     example, if you want the 'src' CDR variable to be column 'ANI' in the DB,
1632
     example, if you want the 'src' CDR variable to be column 'ANI' in the DB,
1620
     simply "alias src => ANI" in the configuration file).  Records may be
1633
     simply "alias src => ANI" in the configuration file).  Records may be
1621
     posted to more than one backend, simply by specifying multiple categories
1634
     posted to more than one backend, simply by specifying multiple categories
1622
     in the configuration file.  And finally, you may filter which CDRs get
1635
     in the configuration file.  And finally, you may filter which CDRs get
1623
     posted to each backend, by specifying a filter (which the record must
1636
     posted to each backend, by specifying a filter (which the record must
1624
     match) for the particular category.  Filters are additive (meaning all
1637
     match) for the particular category.  Filters are additive (meaning all
1625
     rules must match to post that CDR).
1638
     rules must match to post that CDR).
1626
  * The Postgres CDR module now supports some features of the cdr_adaptive_odbc
1639
  * The Postgres CDR module now supports some features of the cdr_adaptive_odbc
1627
     module.  Specifically, you may add additional columns into the table and
1640
     module.  Specifically, you may add additional columns into the table and
1628
     they will be set, if you set the corresponding CDR variable name.  Also,
1641
     they will be set, if you set the corresponding CDR variable name.  Also,
1629
     if you omit columns in your database table, they will be silently skipped
1642
     if you omit columns in your database table, they will be silently skipped
1630
     (but a record will still be inserted, based on what columns remain).  Note
1643
     (but a record will still be inserted, based on what columns remain).  Note
1631
     that the other two features from cdr_adaptive_odbc (alias and filter) are
1644
     that the other two features from cdr_adaptive_odbc (alias and filter) are
1632
     not currently supported.
1645
     not currently supported.
1633
  * The ResetCDR application now has an 'e' option that re-enables a CDR if it
1646
  * The ResetCDR application now has an 'e' option that re-enables a CDR if it
1634
     has been disabled using the NoCDR application.
1647
     has been disabled using the NoCDR application.
1635

    
   
1648

   
1636
Miscellaneous New Modules
1649
Miscellaneous New Modules
1637
-------------------------
1650
-------------------------
1638
  * Added a new CDR module, cdr_sqlite3_custom.
1651
  * Added a new CDR module, cdr_sqlite3_custom.
1639
  * Added a new realtime configuration module, res_config_sqlite
1652
  * Added a new realtime configuration module, res_config_sqlite
1640
  * Added a new codec translation module, codec_resample, which re-samples
1653
  * Added a new codec translation module, codec_resample, which re-samples
1641
     signed linear audio between 8 kHz and 16 kHz to help support wideband
1654
     signed linear audio between 8 kHz and 16 kHz to help support wideband
1642
     codecs.
1655
     codecs.
1643
  * Added a new module, res_phoneprov, which allows auto-provisioning of phones
1656
  * Added a new module, res_phoneprov, which allows auto-provisioning of phones
1644
     based on configuration templates that use Asterisk dialplan function and
1657
     based on configuration templates that use Asterisk dialplan function and
1645
     variable substitution.  It should be possible to create phone profiles and
1658
     variable substitution.  It should be possible to create phone profiles and
1646
     templates that work for the majority of phones provisioned over http. It
1659
     templates that work for the majority of phones provisioned over http. It
1647
     is currently only intended to provision a single user account per phone.
1660
     is currently only intended to provision a single user account per phone.
1648
     An example profile and set of templates for Polycom phones is provided.
1661
     An example profile and set of templates for Polycom phones is provided.
1649
     NOTE: Polycom firmware is not included, but should be placed in
1662
     NOTE: Polycom firmware is not included, but should be placed in
1650
     AST_DATA_DIR/phoneprov/configs to match up with the included templates.
1663
     AST_DATA_DIR/phoneprov/configs to match up with the included templates.
1651
  * Added a new module, app_jack, which provides interfaces to JACK, the Jack
1664
  * Added a new module, app_jack, which provides interfaces to JACK, the Jack
1652
     Audio Connection Kit (http://www.jackaudio.org/).  Two interfaces are
1665
     Audio Connection Kit (http://www.jackaudio.org/).  Two interfaces are
1653
     provided; there is a JACK() application, and a JACK_HOOK() function.  Both
1666
     provided; there is a JACK() application, and a JACK_HOOK() function.  Both
1654
     interfaces create an input and output JACK port.  The application makes
1667
     interfaces create an input and output JACK port.  The application makes
1655
     these ports the endpoint of the call.  The audio coming from the channel
1668
     these ports the endpoint of the call.  The audio coming from the channel
1656
     goes out the output port and whatever comes back in on the input port is
1669
     goes out the output port and whatever comes back in on the input port is
1657
     what gets sent to the channel.  The JACK_HOOK() function turns on a JACK
1670
     what gets sent to the channel.  The JACK_HOOK() function turns on a JACK
1658
     audiohook on the channel.  This lets you run the audio coming from a
1671
     audiohook on the channel.  This lets you run the audio coming from a
1659
     channel through JACK, and whatever comes back in is what gets forwarded
1672
     channel through JACK, and whatever comes back in is what gets forwarded
1660
     on as the channel's audio.  This is very useful for building custom
1673
     on as the channel's audio.  This is very useful for building custom
1661
     vocoders or doing recording or analysis of the channel's audio in another
1674
     vocoders or doing recording or analysis of the channel's audio in another
1662
     application.
1675
     application.
1663
  * Added a new module, res_config_curl, which permits using a HTTP POST url
1676
  * Added a new module, res_config_curl, which permits using a HTTP POST url
1664
     to retrieve, create, update, and delete realtime information from a remote
1677
     to retrieve, create, update, and delete realtime information from a remote
1665
     web server.  Note that this module requires func_curl.so to be loaded for
1678
     web server.  Note that this module requires func_curl.so to be loaded for
1666
     backend functionality.
1679
     backend functionality.
1667
  * Added a new module, res_config_ldap, which permits the use of an LDAP
1680
  * Added a new module, res_config_ldap, which permits the use of an LDAP
1668
     server for realtime data access.
1681
     server for realtime data access.
1669
  * Added support for writing and running your dialplan in lua using the pbx_lua
1682
  * Added support for writing and running your dialplan in lua using the pbx_lua
1670
     module.  See configs/extensions.lua.sample for examples of how to do this.
1683
     module.  See configs/extensions.lua.sample for examples of how to do this.
1671

    
   
1684

   
1672
Miscellaneous 
1685
Miscellaneous 
1673
-------------
1686
-------------
1674
  * Ability to use libcap to set high ToS bits when non-root
1687
  * Ability to use libcap to set high ToS bits when non-root
1675
     on Linux. If configure is unable to find libcap then you
1688
     on Linux. If configure is unable to find libcap then you
1676
     can use --with-cap to specify the path.
1689
     can use --with-cap to specify the path.
1677
  * Added maxfiles option to options section of asterisk.conf which allows you to specify
1690
  * Added maxfiles option to options section of asterisk.conf which allows you to specify
1678
     what Asterisk should set as the maximum number of open files when it loads.
1691
     what Asterisk should set as the maximum number of open files when it loads.
1679
  * Added the jittertargetextra configuration option.
1692
  * Added the jittertargetextra configuration option.
1680
  * Added support for setting the CoS for VLAN traffic (802.1p).  See the sample
1693
  * Added support for setting the CoS for VLAN traffic (802.1p).  See the sample
1681
     configuration files for the IP channel drivers.  The new option is "cos".
1694
     configuration files for the IP channel drivers.  The new option is "cos".
1682
     This information is also documented in doc/qos.tex, or the IP Quality of Service
1695
     This information is also documented in doc/qos.tex, or the IP Quality of Service
1683
     section of asterisk.pdf.
1696
     section of asterisk.pdf.
1684
  * When originating a call using AMI or pbx_spool that fails the reason for failure
1697
  * When originating a call using AMI or pbx_spool that fails the reason for failure
1685
     will now be available in the failed extension using the REASON dialplan variable.
1698
     will now be available in the failed extension using the REASON dialplan variable.
1686
  * Added support for reading the TOUCH_MONITOR_PREFIX channel variable.
1699
  * Added support for reading the TOUCH_MONITOR_PREFIX channel variable.
1687
     It allows you to configure a prefix for auto-monitor recordings.
1700
     It allows you to configure a prefix for auto-monitor recordings.
1688
  * A new extension pattern matching algorithm, based on a trie, is introduced
1701
  * A new extension pattern matching algorithm, based on a trie, is introduced
1689
     here, that could noticeably speed up mid-sized to large dialplans.
1702
     here, that could noticeably speed up mid-sized to large dialplans.
1690
     It is NOT used by default, as duplicating the behaviour of the old pattern
1703
     It is NOT used by default, as duplicating the behaviour of the old pattern
1691
     matcher is still under development. A config file option, in extensions.conf,
1704
     matcher is still under development. A config file option, in extensions.conf,
1692
     in the [general] section, called "extenpatternmatchingnew", is by default
1705
     in the [general] section, called "extenpatternmatchingnew", is by default
1693
     set to false; setting that to true will force the use of the new algorithm.
1706
     set to false; setting that to true will force the use of the new algorithm.
1694
     Also, the cli commands "dialplan set extenpatternmatchingnew true/false" can
1707
     Also, the cli commands "dialplan set extenpatternmatchingnew true/false" can
1695
     be used to switch the algorithms at run time.
1708
     be used to switch the algorithms at run time.
1696
  * A new option when starting a remote asterisk (rasterisk, asterisk -r) for
1709
  * A new option when starting a remote asterisk (rasterisk, asterisk -r) for
1697
     specifying which socket to use to connect to the running Asterisk daemon
1710
     specifying which socket to use to connect to the running Asterisk daemon
1698
     (-s)
1711
     (-s)
1699
  * Performance enhancements to the sched facility, which is used in
1712
  * Performance enhancements to the sched facility, which is used in
1700
    the channel drivers, etc. Added hashtabs and doubly-linked lists
1713
    the channel drivers, etc. Added hashtabs and doubly-linked lists
1701
    to speed up deletion; start at the beginning or end of list to
1714
    to speed up deletion; start at the beginning or end of list to
1702
    speed up insertion.
1715
    speed up insertion.
1703
  * Added Doubly-linked lists after the fashion of linkedlists.h. They are in
1716
  * Added Doubly-linked lists after the fashion of linkedlists.h. They are in
1704
    dlinkedlists.h. Doubly-linked lists feature fast deletion times.
1717
    dlinkedlists.h. Doubly-linked lists feature fast deletion times.
1705
    Added regression tests to the tests/ dir, also.
1718
    Added regression tests to the tests/ dir, also.
1706
  * Added a refcount trace feature to astobj2 for those trying to balance
1719
  * Added a refcount trace feature to astobj2 for those trying to balance
1707
    object creation, deletion; work, play; space and time. See the
1720
    object creation, deletion; work, play; space and time. See the
1708
    notes in astobj2.h. Also, see utils/refcounter as well, as a
1721
    notes in astobj2.h. Also, see utils/refcounter as well, as a
1709
    quick way to find unbalanced refcounts in what could be a sea
1722
    quick way to find unbalanced refcounts in what could be a sea
1710
    of objects that were balanced.
1723
    of objects that were balanced.
1711
  * Added logging to 'make update' command.  See update.log
1724
  * Added logging to 'make update' command.  See update.log
1712
  * Added strictrtp option to rtp.conf. If enabled this will drop RTP packets that
1725
  * Added strictrtp option to rtp.conf. If enabled this will drop RTP packets that
1713
     do not come from the remote party.
1726
     do not come from the remote party.
1714
  * Added the 'n' option to the SpeechBackground application to tell it to not
1727
  * Added the 'n' option to the SpeechBackground application to tell it to not
1715
     answer the channel if it has not already been answered.
1728
     answer the channel if it has not already been answered.
1716
  * Added a compiler flag, CHANNEL_TRACE, which permits channel tracing to be
1729
  * Added a compiler flag, CHANNEL_TRACE, which permits channel tracing to be
1717
     turned on, via the CHANNEL(trace) dialplan function.  Could be useful for
1730
     turned on, via the CHANNEL(trace) dialplan function.  Could be useful for
1718
     dialplan debugging.
1731
     dialplan debugging.
1719
  * iLBC source code no longer included (see UPGRADE.txt for details)
1732
  * iLBC source code no longer included (see UPGRADE.txt for details)
1720
  * If compiled with DETECT_DEADLOCKS enabled and if you have glibc, then if 
1733
  * If compiled with DETECT_DEADLOCKS enabled and if you have glibc, then if 
1721
     deadlock is detected, a backtrace of the stack which led to the lock calls
1734
     deadlock is detected, a backtrace of the stack which led to the lock calls
1722
     will be output to the CLI.
1735
     will be output to the CLI.
1723
  * If compiled with DEBUG_THREADS enabled and if you have glibc, then issuing
1736
  * If compiled with DEBUG_THREADS enabled and if you have glibc, then issuing
1724
     the "core show locks" CLI command will give lock information output as well
1737
     the "core show locks" CLI command will give lock information output as well
1725
     as a backtrace of the stack which led to the lock calls.
1738
     as a backtrace of the stack which led to the lock calls.
1726
  * users.conf now sports an optional alternateexts property, which permits
1739
  * users.conf now sports an optional alternateexts property, which permits
1727
    allocation of additional extensions which will reach the specified user.
1740
    allocation of additional extensions which will reach the specified user.
1728
  * A new option for the configure script, --enable-internal-poll, has been added
1741
  * A new option for the configure script, --enable-internal-poll, has been added
1729
    for use with systems which may have a buggy implementation of the poll system
1742
    for use with systems which may have a buggy implementation of the poll system
1730
    call. If you notice odd behavior such as the CLI being unresponsive on remote
1743
    call. If you notice odd behavior such as the CLI being unresponsive on remote
1731
    consoles, you may want to try using this option. This option is enabled by default
1744
    consoles, you may want to try using this option. This option is enabled by default
1732
    on Darwin systems since it is known that the Darwin poll() implementation has
1745
    on Darwin systems since it is known that the Darwin poll() implementation has
1733
    odd issues.
1746
    odd issues.
1734

    
   
1747

   
1735
Timer Changes
1748
Timer Changes
1736
--------------------
1749
--------------------
1737
* In addition to timing from DAHDI, there is a new timing module called
1750
* In addition to timing from DAHDI, there is a new timing module called
1738
  res_timing_timerfd. In order to use this, you must be running Linux with
1751
  res_timing_timerfd. In order to use this, you must be running Linux with
1739
  a kernel version 2.6.25 or newer as well as glibc 2.8 or newer. The configure
1752
  a kernel version 2.6.25 or newer as well as glibc 2.8 or newer. The configure
1740
  script will be able to tell if you have the requirements. From menuselect, select
1753
  script will be able to tell if you have the requirements. From menuselect, select
1741
  res_timing_timerfd from the Resource Modules menu.
1754
  res_timing_timerfd from the Resource Modules menu.
/trunk/channels/chan_sip.c
Diff Revision 3 Diff Revision 5
 
/trunk/channels/sip/include/sip.h
Diff Revision 3 Diff Revision 5
 
/trunk/configs/jabber.conf.sample
Diff Revision 3 Diff Revision 5
 
/trunk/configs/sip.conf.sample
Diff Revision 3 Diff Revision 5
 
/trunk/doc/asterisk-messaging.txt
Diff Revision 3 Diff Revision 5
 
/trunk/include/asterisk/_private.h
Diff Revision 3 Diff Revision 5
 
/trunk/include/asterisk/channel.h
Diff Revision 3 Diff Revision 5
 
/trunk/include/asterisk/jabber.h
Diff Revision 3 Diff Revision 5
 
/trunk/include/asterisk/message.h
Diff Revision 3 Diff Revision 5
 
/trunk/main/asterisk.c
Diff Revision 3 Diff Revision 5
 
/trunk/main/channel.c
Diff Revision 3 Diff Revision 5
 
/trunk/main/message.c
Diff Revision 3 Diff Revision 5
 
/trunk/res/res_jabber.c
Diff Revision 3 Diff Revision 5
 
  1. /trunk/CHANGES: Loading...
  2. /trunk/channels/chan_sip.c: Loading...
  3. /trunk/channels/sip/include/sip.h: Loading...
  4. /trunk/configs/jabber.conf.sample: Loading...
  5. /trunk/configs/sip.conf.sample: Loading...
  6. /trunk/doc/asterisk-messaging.txt: Loading...
  7. /trunk/include/asterisk/_private.h: Loading...
  8. /trunk/include/asterisk/channel.h: Loading...
  9. /trunk/include/asterisk/jabber.h: Loading...
  10. /trunk/include/asterisk/message.h: Loading...
  11. /trunk/main/asterisk.c: Loading...
  12. /trunk/main/channel.c: Loading...
  13. /trunk/main/message.c: Loading...
  14. /trunk/res/res_jabber.c: Loading...

https://reviewboard.asterisk.org/ runs on a server provided by Digium, Inc. and uses bandwidth donated to the open source Asterisk community by API Digital Communications in Huntsville, AL USA.
Please report problems with this site to asteriskteam@digium.com.