aboutsummaryrefslogtreecommitdiffstats
path: root/UPGRADE.txt
blob: 6f7a3bcbbefade7e7bb6da0b826406a9696d1c36 (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
Information for Upgrading From Asterisk 1.0
===========================================

Compiling:

* The Asterisk 1.2 source code now uses C language features
  supported only by 'modern' C compilers.  Generally, this means GCC
  version 3.0 or higher, although some GCC 2.96 releases will also
  work.  Some non-GCC compilers that support C99 and the common GCC
  extensions (including anonymous structures and unions) will also
  work.  All releases of GCC 2.95 do _not_ have the requisite feature
  support; systems using that compiler will need to be upgraded to
  a more recent compiler release.

Agents:

* The default for ackcall has been changed to "no" instead of "yes" 
  because of a bug which caused the "yes" behavior to generally act like
  "no".  You may need to adjust the value if your agents behave 
  differently than you expect with respect to acknowledgement.

Dialing:

* The Caller*ID of the outbound leg is now the extension that was 
  called, rather than the Caller*ID of the inbound leg of the call.  The 
  "o" flag for Dial can be used to restore the original behavior if 
  desired.  Note that if you are looking for the originating callerid
  from the manager event, there is a new manager event "Dial" which 
  provides the source and destination channels and callerid.

IAX: 

* The naming convention for IAX channels has changed in a minor way such 
  that the call number follows a "-" rather than a "/" character.

SIP:

* The global option "port" in 1.0.X that is used to set which port to
  bind to has been changed to "bindport" to be more consistent with
  the other channel drivers and to avoid confusion with the "port"
  option for users/peers.

* The "Registry" event now uses "Username" rather than "User" for 
  consistency with IAX.

Applications:

* With the addition of dialplan functions (which operate similarly
  to variables), the SetVar application has been renamed to Set.

* The CallerPres application has been removed.  Use SetCallerPres 
  instead.  It accepts both numeric and symbolic names.

* The applications GetGroupCount, GetGroupMatchCount, SetGroup, and
  CheckGroup have been deprecated in favor of functions.  Here is a
  table of their replacements:

  GetGroupCount([groupname][@category]	       GROUP_COUNT([groupname][@category])	Set(GROUPCOUNT=${GROUP_COUNT()})
  GroupMatchCount(groupmatch[@category])       GROUP_MATCH_COUNT(groupmatch[@category])	Set(GROUPCOUNT=${GROUP_MATCH_COUNT(SIP/.*)})
  SetGroup(groupname[@category])	       GROUP([category])=groupname		Set(GROUP()=test)
  CheckGroup(max[@category])		       N/A					GotoIf($[ ${GROUP_COUNT()} > 5 ]?103)

  Note that CheckGroup does not have a direct replacement.  There is
  also a new function called GROUP_LIST() which will return a space
  separated list of all of the groups set on a channel.  The GROUP()
  function can also return the name of the group set on a channel when
  used in a read environment.

* The applications DBGet and DBPut have been deprecated in favor of
  functions.  Here is a table of their replacements:

  DBGet(foo=family/key)        Set(foo=${DB(family/key)})
  DBPut(family/key=${foo})     Set(DB(family/key)=${foo})

* The application SetLanguage has been deprecated in favor of the
  function LANGUAGE().

  SetLanguage(fr)		Set(LANGUAGE()=fr)

  The LANGUAGE function can also return the currently set language:

  Set(MYLANG=${LANGUAGE()})

* The applications AbsoluteTimeout, DigitTimeout, and ResponseTimeout
  have been deprecated in favor of the function TIMEOUT(timeouttype):

  AbsoluteTimeout(300)		Set(TIMEOUT(absolute)=300)
  DigitTimeout(15)		Set(TIMEOUT(digit)=15)
  ResponseTimeout(15)		Set(TIMEOUT(response)=15)

  The TIMEOUT() function can also return the currently set timeouts:

  Set(DTIMEOUT=${TIMEOUT(digit)})

* The applications SetCIDName, SetCIDNum, and SetRDNIS have been
  deprecated in favor of the CALLERID(datatype) function:

  SetCIDName(Joe Cool)		Set(CALLERID(name)=Joe Cool)
  SetCIDNum(2025551212)		Set(CALLERID(number)=2025551212)
  SetRDNIS(2024561414)		Set(CALLERID(RDNIS)=2024561414)

* The application Record now uses the period to separate the filename
  from the format, rather than the colon.

* The application VoiceMail now supports a 'temporary' greeting for each
  mailbox. This greeting can be recorded by using option 4 in the
  'mailbox options' menu, and 'change your password' option has been
  moved to option 5.

Queues:

* A queue is now considered empty not only if there are no members but if
  none of the members are available (e.g. agents not logged on).  To
  restore the original behavior, use "leavewhenempty=strict" or 
  "joinwhenempty=strict" instead of "=yes" for those options.

* It is now possible to use multi-digit extensions in the exit context
  for a queue (although you should not have overlapping extensions,
  as there is no digit timeout). This means that the EXITWITHKEY event
  in queue_log can now contain a key field with more than a single
  character in it.

Extensions:

* By default, there is a new option called "autofallthrough" in
  extensions.conf that is set to yes.  Asterisk 1.0 (and earlier) 
  behavior was to wait for an extension to be dialed after there were no 
  more extensions to execute.  "autofallthrough" changes this behavior
  so that the call will immediately be terminated with BUSY,
  CONGESTION, or HANGUP based on Asterisk's best guess.  If you are
  writing an extension for IVR, you must use the WaitExten application
  if "autofallthrough" is set to yes.

AGI:

* AGI scripts did not always get SIGHUP at the end, previously.  That 
  behavior has been fixed.  If you do not want your script to terminate 
  at the end of AGI being called (e.g. on a hangup) then set SIGHUP to 
  be ignored within your application.

Music On Hold:

* The preferred format for musiconhold.conf has changed; please see the
  sample configuration file for the new format. The existing format
  is still supported but will generate warnings when the module is loaded.