aboutsummaryrefslogtreecommitdiffstats
path: root/UPGRADE.txt
blob: c0e32e7792254fb09ef1593053771c4e800566bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
Information for Upgrading From Previous Asterisk Releases
=========================================================

Build Process (configure script):

Asterisk now uses an autoconf-generated configuration script to learn how it
should build itself for your system. As it is a standard script, running:

$ ./configure --help

will show you all the options available. This script can be used to tell the
build process what libraries you have on your system (if it cannot find them
automatically), which libraries you wish to have ignored even though they may
be present, etc.

You must run the configure script before Asterisk will build, although it will
attempt to automatically run it for you with no options specified; for most users,
that will result in a similar build to what they would have had before the
configure script was added to the build process (except for having to run 'make'
again after the configure script is run). Note that the configure script does NOT
need to be re-run just to rebuild Asterisk; you only need to re-run it when your
system configuration changes or you wish to build Asterisk with different options.

Build Process (module selection):

The Asterisk source tree now includes a basic module selection and build option
selection tool called 'menuselect'. Run 'make menuselect' to make your choices.
In this tool, you can disable building of modules that you don't care about,
turn on/off global options for the build and see which modules will not (and cannot)
be built because your system does not have the required external dependencies
installed.

(TODO: document where 'global' and 'per-user' menuselect input files should go
and what they need to contain)

PBX Core:

* The (very old and undocumented) ability to use BYEXTENSION for dialing
  instead of ${EXTEN} has been removed.

Command Line Interface:

* 'show channels concise', designed to be used by applications that will parse
  its output, previously used ':' characters to separate fields. However, some
  of those fields can easily contain that character, making the output not
  parseable. The delimiter has been changed to '!'.

Applications:

* In previous Asterisk releases, many applications would jump to priority n+101
  to indicate some kind of status or error condition.  This functionality was
  marked deprecated in Asterisk 1.2.  An option to disable it was provided with
  the default value set to 'on'.  The default value for the global priority
  jumping option is now 'off'.

* The applications Cut, Sort, DBGet, DBPut, SetCIDNum, SetCIDName, SetRDNIS,
  AbsoluteTimeout, DigitTimeout, ResponseTimeout, SetLanguage, GetGroupCount,
  and GetGroupMatchCount were all deprecated in version 1.2, and therefore have
  been removed in this version.  You should use the equivalent dialplan
  function in places where you have previously used one of these applications.

* The application SetVar has been renamed to Set.  The syntax SetVar was marked
  deprecated in version 1.2 and is no longer recognized in this version.

* app_read has been updated to use the newer options codes, using "skip" or
  "noanswer" will not work.  Use s or n.  Also there is a new feature i, for
  using indication tones, so typing in skip would give you unexpected results.

* OSPAuth is added to authenticate OSP tokens in in_bound call setup messages.

* The CONNECT event in the queue_log from app_queue now has a second field 
  in addition to the holdtime field. It contains the unique ID of the 
  queue member channel that is taking the call. This is useful when trying 
  to link recording filenames back to a particular call from the queue.  

* The old/current behavior of app_queue has a serial type behavior
  in that the queue will make all waiting callers wait in the queue
  even if there is more than one available member ready to take
  calls until the head caller is connected with the member they
  were trying to get to. The next waiting caller in line then
  becomes the head caller, and they are then connected with the
  next available member and all available members and waiting callers
  waits while this happens. This cycle continues until there are
  no more available members or waiting callers, whichever comes first.
  The new behavior, enabled by setting autofill=yes in queues.conf
  either at the [general] level to default for all queues or 
  to set on a per-queue level, makes sure that when the waiting 
  callers are connecting with available members in a parallel fashion 
  until there are no more available members or no more waiting callers,
  whichever comes first. This is probably more along the lines of how
  one would expect a queue should work and in most cases, you will want 
  to enable this new behavior. If you do not specify or comment out this 
  option, it will default to "no" to keep backward compatability with the old 
  behavior.

* The app_queue application now has the ability to use MixMonitor to 
  record conversations queue members are having with queue callers. Please
  see configs/queues.conf.sample for more information on this option.

* app_meetme: The 'm' option (monitor) is renamed to 'l' (listen only), and
  the 'm' option now provides the functionality of "initially muted". 
  In practice, most existing dialplans using the 'm' flag should not notice
  any difference, unless the keypad menu is enabled, allowing the user 
  to unmute themsleves.

* ast_play_and_record would attempt to cancel the recording if a DTMF
  '0' was received.  This behavior was not documented in most of the
  applications that used ast_play_and_record and the return codes from
  ast_play_and_record weren't checked for properly.
  ast_play_and_record has been changed so that '0' no longer cancels a
  recording.  If you want to allow DTMF digits to cancel an
  in-progress recording use ast_play_and_record_full which allows you
  to specify which DTMF digits can be used to accept a recording and
  which digits can be used to cancel a recording.

* ast_app_messagecount has been renamed to ast_app_inboxcount.  There is now a
  new ast_app_messagecount function which takes a single context/mailbox/folder
  mailbox specification and returns the message count for that folder only.
  This addresses the deficiency of not being able to count the number of
  messages in folders other than INBOX and Old.

Manager:

* After executing the 'status' manager action, the "Status" manager events
  included the header "CallerID:" which was actually only the CallerID number,
  and not the full CallerID string.  This header has been renamed to
  "CallerIDNum".  For compatibility purposes, the CallerID parameter will remain
  until after the release of 1.4, when it will be removed.  Please use the time
  during the 1.4 release to make this transition.

* The AgentConnect event now has an additional field called "BridgedChannel" 
  which contains the unique ID of the queue member channel that is taking the 
  call. This is useful when trying to link recording filenames back to 
  a particular call from the queue.

* app_userevent has been modified to always send Event: UserEvent with the
  additional header UserEvent: <userspec>.  Also, the Channel and UniqueID
  headers are not automatically sent, unless you specify them as separate
  arguments.  Please see the application help for the new syntax.

* app_meetme: Mute and Unmute events are now reported via the Manager API.
  Native Manager API commands MeetMeMute and MeetMeUnmute are provided, which
  are easier to use than "Action Command:". The MeetMeStopTalking event has
  also been deprecated in favor of the already existing MeetmeTalking event
  with a "Status" of "on" or "off" added.

Variables:

* The builtin variables ${CALLERID}, ${CALLERIDNAME}, ${CALLERIDNUM},
  ${CALLERANI}, ${DNID}, ${RDNIS}, ${DATETIME}, ${TIMESTAMP}, ${ACCOUNTCODE},
  and ${LANGUAGE} have all been deprecated in favor of their related dialplan
  functions.  You are encouraged to move towards the associated dialplan
  function, as these variables will be removed in a future release.

* The CDR-CSV variables uniqueid, userfield, and basing time on GMT are now 
  adjustable from cdr.conf, instead of recompiling.

* OSP applications exports several new variables, ${OSPINHANDLE},
  ${OSPOUTHANDLE}, ${OSPINTOKEN}, ${OSPOUTTOKEN}, ${OSPCALLING},
  ${OSPINTIMELIMIT}, and ${OSPOUTTIMELIMIT}

Functions:

* The function ${CHECK_MD5()} has been deprecated in favor of using an
  expression: $[${MD5(<string>)} = ${saved_md5}].

* The 'builtin' functions that used to be combined in pbx_functions.so are
  now built as separate modules. If you are not using 'autoload=yes' in your
  modules.conf file then you will need to explicitly load the modules that
  contain the functions you want to use.

* The ENUMLOOKUP() function with the 'c' option (for counting the number of records),
  but the lookup fails to match any records, the returned value will now be "0" instead of blank.

* The REALTIME() function is now available in version 1.4 and app_realtime has
  been deprecated in favor of the new function. app_realtime will be removed
  completely with the version 1.6 release so please take the time between
  releases to make any necessary changes

The IAX2 channel:

* The "mailboxdetail" option has been deprecated.  Previously, if this option
  was not enabled, the 2 byte MSGCOUNT information element would be set to all
  1's to indicate there there is some number of messages waiting.  With this
  option enabled, the number of new messages were placed in one byte and the
  number of old messages are placed in the other.  This is now the default
  (and the only) behavior.

The SIP channel:

* The "incominglimit" setting is replaced by the "call-limit" setting in sip.conf.

* OSP support code is removed from SIP channel to OSP applications. ospauth 
  option in sip.conf is removed to osp.conf as authpolicy. allowguest option
  in sip.conf cannot be set as osp anymore. 

The Zap channel:

* Support for MFC/R2 has been removed, as it has not been functional for some time
  and it has no maintainer.

Installation:

* On BSD systems, the installation directories have changed to more "FreeBSDish" directories. On startup, Asterisk will look for the main configuration in /usr/local/etc/asterisk/asterisk.conf
If you have an old installation, you might want to remove the binaries and move the configuration files to the new locations. The following directories are now default:
	ASTLIBDIR	/usr/local/lib/asterisk
	ASTVARLIBDIR	/usr/local/share/asterisk
	ASTETCDIR	/usr/local/etc/asterisk
	ASTBINDIR	/usr/local/bin/asterisk
	ASTSBINDIR	/usr/local/sbin/asterisk

Sounds:

* The phonetic sounds directory has been removed from the asterisk-sounds package
  because they are now included directly in Asterisk.  However, it is important to
  note that the phonetic sounds that existed in asterisk-sounds used a different
  naming convention than the sounds in Asterisk.  For example, instead of alpha.gsm
  and bravo.gsm, Asterisk has a_p.gsm and b_p.gsm.