forked from asterisk/asterisk
/
CHANGES
4927 lines (4173 loc) · 239 KB
/
CHANGES
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
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
==============================================================================
===
=== This file documents the new and/or enhanced functionality added in
=== the Asterisk versions listed below. This file does NOT include
=== changes in behavior that would not be backwards compatible with
=== previous versions; for that information see the UPGRADE.txt file
=== and the other UPGRADE files for older releases.
===
==============================================================================
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 13 to Asterisk 14 --------------------
------------------------------------------------------------------------------
Applications
------------------
ConfBridge
------------------
* Added the ability to pass options to MixMonitor when recording is used with
ConfBridge. This includes the addition of the following configuration
parameters for the 'bridge' object:
- record_file_timestamp: whether or not to append the start time to the
recorded file name
- record_options: the options to pass to the MixMonitor application
- record_command: a command to execute when recording is finished
Note that these options may also be with the CONFBRIDGE function.
SMS
------------------
* Added the 'n' option, which prevents the SMS from being written to the log
file. This is needed for those countries with privacy laws that require
providers to not log SMS content.
Channel Drivers
------------------
chan_dahdi
------------------
* The CALLERID(ani2) value for incoming calls is now populated in featdmf
signaling mode. The information was previously discarded.
chan_iax2
------------------
* The iax.conf forcejitterbuffer option has been removed. It is now always
forced if you set iax.conf jitterbuffer=yes. If you put a jitter buffer
on a channel it will be on the channel.
* A new configuration parameters, 'calltokenexpiration', has been added that
controls the duration before a call token expires. Default duration is 10
seconds. Setting this to a higher value may help in lagged networks or those
experiencing high packet loss.
chan_sip
------------------
* New 'rtpbindaddr' global setting. This allows a user to define which
ipaddress to bind the rtpengine to. For example, chan_sip might bind
to eth0 (10.0.0.2) but rtpengine to eth1 (192.168.1.10).
* DTLS related configuration options can now be set at a general level.
Enabling DTLS support, though, requires enabling it at the user
or peer level.
chan_pjsip
------------------
* New 'user_eq_phone' endpoint setting. This adds a 'user=phone' parameter
to the request URI and From URI if the user is determined to be a phone number.
* New 'moh_passthrough' endpoint setting. This will pass hold and unhold requests
through using SIP re-invites with sendonly and sendrecv accordingly.
* Added the pjsip.conf system type disable_tcp_switch option. The option
allows the user to disable switching from UDP to TCP transports described
by RFC 3261 section 18.1.1.
* New 'line' and 'endpoint' options added on outbound registrations. This allows some
identifying information to be added to the Contact of the outbound registration.
If this information is present on messages received from the remote server
the message will automatically be associated with the configured endpoint on the
outbound registration.
Core
------------------
* The core of Asterisk uses a message bus called "Stasis" to distribute
information to internal components. For performance reasons, the message
distribution was modified to make use of a thread pool instead of a
dedicated thread per consumer in certain cases. The initial settings for
the thread pool can now be configured in 'stasis.conf'.
* A new core DNS API has been implemented which provides a common interface
for DNS functionality. Modules that use this functionality will require that
a DNS resolver module is loaded and available.
Functions
------------------
CHANNEL
------------------
* Added CHANNEL(onhold) item that returns 1 (onhold) and 0 (not-onhold) for
the hold status of a channel.
DTMF Features
------------------
* The transferdialattempts default value has been changed from 1 to 3. The
transferinvalidsound has been changed from "pbx-invalid" to "privacy-incorrect".
These were changed to make DTMF transfers be more user-friendly by default.
Resources
------------------
res_musiconhold
------------------
* Added sort=randstart to the sort options. It sorts the files by name and
then chooses the first file to play at random.
* Added preferchannelclass=no option to prefer the application-passed class
over the channel-set musicclass. This allows separate hold-music from
application (e.g. Queue or Dial) specified music.
res_resolver_unbound
------------------
* Added a res_resolver_unbound module which uses the libunbound resolver library
to perform DNS resolution. This module requires the libunbound library to be
installed in order to be used.
res_pjsip
------------------
* A new SIP resolver using the core DNS API has been implemented. This relies on
external SIP resolver support in PJSIP which is only available as of PJSIP
2.4. If this support is unavailable the existing built-in PJSIP SIP resolver
will be used instead. The new SIP resolver provides NAPTR support, improved
SRV support, and AAAA record support.
CEL Backends
------------------
cel_pgsql
------------------
* Added a new option, 'usegmtime', which causes timestamps in CEL events
to be logged in GMT.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 13.3.0 to Asterisk 13.4.0 ------------
------------------------------------------------------------------------------
chan_pjsip
------------------
* New 'rpid_immediate' option to control if connected line update information
goes to the caller immediately or waits for another reason to send the
connected line information update. See the online option documentation for
more information. Defaults to 'no' as setting it to 'yes' can result in
many unnecessary messages being sent to the caller.
* The configuration setting 'progressinband' now defaults to 'no', which
matches the actual behavior of previous versions.
res_pjsip
------------------
* A new CLI command has been added: "pjsip show settings", which shows
both the global and system configuration settings.
* A new aor option has been added: "qualify_timeout", which sets the timeout
in seconds for a qualify. The default is 3 seconds. This overrides the
hard coded 32 seconds in pjproject.
* Endpoint status will now change to "Unreachable" when all contacts are
unavailable. When any contact becomes available, the endpoint will status
will change back to "Reachable".
* A new global option has been added: "max_initial_qualify_time", which
sets the maximum amount of time from startup that qualifies should be
attempted on all contacts.
res_ari_channels
------------------
* Two new events, 'ChannelHold' and 'ChannelUnhold', have been added to the
events data model. These events are raised when a channel indicates a hold
or unhold, respectively.
func_holdintercept
------------------
* A new dialplan function, HOLD_INTERCEPT, has been added. This function, when
placed on a channel, intercepts hold/unhold indications signalled by the
channel and prevents them from moving on to other channels in a bridge with
the hold initiator. Instead, AMI or ARI events are raised indicating that
the channel wanted to place someone on hold. This allows external
applications to implement their own custom hold/unhold logic.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 13.2.0 to Asterisk 13.3.0 ------------
------------------------------------------------------------------------------
chan_pjsip/app_transfer
------------------
* The Transfer application, when used with chan_pjsip, now supports using
a PJSIP endpoint as the transfer destination. This is in addition to
explicitly specifying a SIP URI to transfer to.
res_ari_channels
------------------
* The ARI /channels resource now supports a new operation, 'redirect'. The
redirect operation will perform a technology and state specific redirection
on the channel to a specified endpoint or destination. In the case of SIP
technologies, this is either a 302 Redirect response to an on-going INVITE
dialog or a SIP REFER request.
res_pjsip
------------------
* A new 'endpoint_identifier_order' option has been added that allows one to
set the order by which endpoint identifiers are processed and checked. This
option is specified under the 'global' type configuration section.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 13.1.0 to Asterisk 13.2.0 ------------
------------------------------------------------------------------------------
* New 'PJSIP_AOR' and 'PJSIP_CONTACT' dialplan functions have been added which
allow examining PJSIP AORs or contacts from the dialplan.
res_pjsip_outbound_registration
------------------
* The 'pjsip send unregister' command now stops further registrations.
* A new command 'pjsip send register' has been added which allows you to
start or restart periodic registration. It can be used after a
'send unregister' or after a 401 permanent error.
res_pjsip_config_wizard
------------------
* This is a new module that adds streamlined configuration capability for
chan_pjsip. It's targeted at users who have lots of basic configuration
scenarios like 'phone' or 'agent' or 'trunk'. Additional information
can be found in the sample configuration file at
config/samples/pjsip_wizard.conf.sample.
res_fax
-----------
* The T.38 negotiation timeout was previously hard coded at 5000 milliseconds
and is now configurable via the 't38timeout' configuration option in
res_fax.conf and via the fax options dialplan function 'FAXOPT(t38timeout)'.
The default remains at 5000 milliseconds.
PJSIP Transports
----------
* The ca_list_path transport parameter has been added for TLS transports. This
option behaves similarly to the old sip.conf option "tlscapath". In order to
use this, you must be using PJProject version 2.4 or higher.
ARI
------------------
* The Originate operation now takes in an originator channel. The linked ID of
this originator channel is applied to the newly originated outgoing channel.
If using CEL this allows an association to be established between the two so
it can be recognized that the originator is dialing the originated channel.
* "language" (the default spoken language for the channel) is now included in
the standard channel state output for suitable events.
* The POST channels/{id} operation and the POST channels/{id}/continue operation
now have a new "label" parameter. This allows for origination or continuation
to a labeled priority in the dialplan instead of requiring a specific priority
number. The ARI version has been bumped to 1.7.0 as a result.
AMI
------------------
* "Language" (the default spoken language for the channel) is now included in
the standard channel state output for suitable events.
* AMI actions that return a list of events have been made to return consistent
headers for the action response event starting the list and the list complete
event. The AMI version has been bumped to 2.7.0 as a result.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 13.0.0 to Asterisk 13.1.0 ------------
------------------------------------------------------------------------------
AMI
------------------
* Event NewConnectedLine is emitted when the connected line information on
a channel changes.
ARI
------------------
* Event ChannelConnectedLine is emitted when the connected line information
on a channel changes.
Core Transfers
-----------------
The features.conf general section has three new configurable options:
* transferdialattempts
* transferretrysound
* transferinvalidsound
For more information on what these options do, see the Asterisk wiki:
https://wiki.asterisk.org/wiki/x/W4fAAQ
Channel Drivers
------------------
chan_pjsip
------------------
* New 'media_encryption_optimistic' endpoint setting. This will use SRTP
when possible but does not consider lack of it a failure.
res_pjsip_endpoint_identifer_ip
------------------
* New CLI commands have been added: "pjsip show identif(y|ies)", which lists
all configured PJSIP identify objects
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 12 to Asterisk 13 --------------------
------------------------------------------------------------------------------
Overview
------------------
Asterisk 13 is the next Long Term Support (LTS) release of Asterisk. As such,
the focus of development for this release of Asterisk was on improving the
usability and features developed in the previous Standard release, Asterisk 12.
Beyond a general refinement of end user features, development focussed heavily
on the Asterisk APIs - the Asterisk Manager Interface (AMI) and the Asterisk
REST Interface (ARI) - and the PJSIP stack in Asterisk. Some highlights of the
new features include:
* Asterisk security events are now provided via AMI, allowing end users to
monitor their Asterisk system in real time for security related issues.
* External control of Message Waiting Indicators (MWI) through both AMI and ARI.
* Reception/transmission of out of call text messages using any supported
channel driver/protocol stack through ARI.
* Resource List Server support in the PJSIP stack, providing subscriptions to
lists of resources and batched delivery of NOTIFY requests.
* Inter-Asterisk distributed device state and mailbox state using the PJSIP
stack.
It is important to note that Asterisk 13 is built on the architecture developed
during the previous Standard release, Asterisk 12. Users upgrading to
Asterisk 13 should read about the new features in Asterisk 12 later in this file
(see Functionality changes from Asterisk 11 to Asterisk 12), as well as the
UPGRADE-12.txt delivered with this release. In particular, users upgrading to
Asterisk 13 from a release prior to Asterisk 12 should read the specifications
on AMI, CDRs, and CEL on the Asterisk wiki:
* AMI - https://wiki.asterisk.org/wiki/x/dAFRAQ
* CEL - https://wiki.asterisk.org/wiki/x/4ICLAQ
* CDRs - https://wiki.asterisk.org/wiki/x/pwpRAQ
Many new featuers in Asterisk 13 were introduced in point releases of
Asterisk 12. Following this section - which documents the changes from all
versions of Asterisk 12 to Asterisk 13 - users should examine the new features
that were introduced in the point releases of Asterisk 12, as they are also
included in Asterisk 13.
Finally, all users upgrading to Asterisk 13 should read the UPGRADE.txt file
delivered with this release.
Build System
------------------
* Sample config files have been moved from configs/ to a sub-folder of that
directory, samples.
* The menuselect utility has been pulled into the Asterisk repository. As a
result, the libxml2 development library is now a required dependency for
Asterisk.
* A new Compiler Flag, REF_DEBUG, has been added. When enabled, reference
counted objects will emit additional debug information to the refs log file
located in the standard Asterisk log file directory. This log file is useful
in tracking down object leaks and other reference counting issues. Prior to
this version, this option was only available by modifying the source code
directly. This change also includes a new script, refcounter.py, in the
contrib folder that will process the refs log file. Note that this replaces
the refcounter utility that could be built from the utils directory.
Applications
------------------
DahdiBarge
------------------
* This module was deprecated and has been removed. Users of app_dahdibarge
should use ChanSpy instead.
MixMonitor
------------------
* New options to play a beep when starting a recording and stopping a recording
have been added. The option "p" will play a beep to the channel that starts
the recording. The option "P" will play a beep to the channel that stops the
recording.
Queue
------------------
* Queue rules can now be stored in a database table, queue_rules. Unlike other
RealTime tables, the queue_rules table is only examined on module load or
module reload. A new general setting has been added to queuerules.conf,
'realtime_rules', which, when set to 'yes', will cause app_queue to look in
RealTime for additional queue rules to parse. Note that both the file and
the database can be used as a provide of queue rules when 'realtime_rules'
is set to 'yes'.
When app_queue is reloaded, all rules are re-parsed and loaded into memory.
There is no caching of RealTime queue rules.
ReadFile
------------------
* This module was deprecated and has been removed. Users of app_readfile
should use func_env's FILE function instead.
Say
------------------
* The 'say' family of dialplan applications now support the Japanese
language. The 'language' parameter in say.conf now recognizes a setting of
'ja', which will enable Japanese language specific mechanisms for playing
back numbers, dates, and other items.
SayCountPL
------------------
* This module was deprecated and has been removed. Users of app_saycountpl
should use the Say family of applications.
SetMusicOnHold
------------------
* The SetMusicOnHold dialplan application was deprecated and has been removed.
Users of the application should use the CHANNEL function's musicclass
setting instead.
WaitMusicOnHold
------------------
* The WaitMusicOnHold dialplan application was deprecated and has been
removed. Users of the application should use MusicOnHold with a duration
parameter instead.
VoiceMail
------------------
* VoiceMail and VoiceMailMain now support the Japanese language. The
'language' parameter in voicemail.conf now recognizes a setting of 'ja',
which will enable prompts to be played back using a Japanese grammatical
structure. Additional prompts are necessary for this functionality,
including:
- jb-arimasu: there is
- jb-arimasen: there is not
- jb-oshitekudasai: please press
- jb-ni: article ni
- jb-ga: article ga
- jb-wa: article wa
- jb-wo: article wo
* Add the ability to specify multiple email addresses in configuration,
separated by a |.
CDR Backends
------------------
cdr_sqlite
-----------------
* This module was deprecated and has been removed. Users of cdr_sqlite
should use cdr_sqlite3_custom.
cdr_pgsql
------------------
* Added the ability to support PostgreSQL application_name on connections.
This allows PostgreSQL to display the configured name in the
pg_stat_activity view and CSV log entries. This setting is configurable
for cdr_pgsql via the appname configuration setting in cdr_pgsql.conf.
CEL Backends
------------------
cel_pgsql
------------------
* Added the ability to support PostgreSQL application_name on connections.
This allows PostgreSQL to display the configured name in the
pg_stat_activity view and CSV log entries. This setting is configurable
for cel_pgsql via the appname configuration setting in cel_pgsql.conf.
Channel Drivers
------------------
chan_dahdi
------------------
* SS7 support now requires libss7 v2.0 or later.
* Added SS7 support for connected line and redirecting.
* Most SS7 CLI commands are reworked as well as new SS7 commands added.
See online CLI help.
* Added several SS7 config option parameters described in
chan_dahdi.conf.sample.
chan_gtalk
------------------
* This module was deprecated and has been removed. Users of chan_gtalk
should use chan_motif.
chan_h323
------------------
* This module was deprecated and has been removed. Users of chan_h323
should use chan_ooh323.
chan_jingle
------------------
* This module was deprecated and has been removed. Users of chan_jingle
should use chan_motif.
chan_pjsip
------------------
* Added the CLI command 'pjsip list ciphers' so a user can know what
OpenSSL names are available on their system for the pjsip.conf cipher
option.
chan_sip
------------------
* The SIPPEER dialplan function no longer supports using a colon as a
delimiter for parameters. The parameters for the function should be
delimited using a comma.
* The SIPCHANINFO dialplan function was deprecated and has been removed. Users
of the function should use the CHANNEL function instead.
Core
------------------
Account Codes
------------------
* Added functional peeraccount support. Except for Queue, the
accountcode propagation is now consistently propagated to outgoing
channels before dialing. The channel accountcode can change from its
original non-empty value on channel creation for the following specific
reasons. One, dialplan sets it using CHANNEL(accountcode). Two, an
originate method that can specify an accountcode value. Three, the
calling channel propagates its peeraccount or accountcode to the
outgoing channel's accountcode before dialing. The change has two
visible effects. One, local channels now cross accountcode and
peeraccount across the special bridge between the ;1 and ;2 channels
just like channels between normal bridges. Two, the
CHANNEL(peeraccount) value can now be set before Dial and FollowMe to
set the accountcode on the outgoing channel(s).
For Queue, an outgoing channel's non-empty accountcode will not change
unless explicitly set by CHANNEL(accountcode). The change has three
visible effects. One, local channels now cross accountcode and
peeraccount across the special bridge between the ;1 and ;2 channels
just like channels between normal bridges. Two, the queue member will
get an accountcode if it doesn't have one and one is available from the
calling channel's peeraccount. Three, accountcode propagation includes
local channel members where the accountcodes are propagated early
enough to be available on the ;2 channel.
AMI
------------------
* New DeviceStateChanged and PresenceStateChanged AMI events have been added.
These events are emitted whenever a device state or presence state change
occurs. The events are controlled by res_manager_device_state.so and
res_manager_presence_state.so. If the high frequency of these events is
problematic for you, do not load these modules.
* Added DialplanExtensionAdd and DialplanExtensionRemove AMI commands. They
work in basically the same way as the 'dialplan add extension' and
'dialplan remove extension' CLI commands respectively.
* New AMI action LoggerRotate reloads and rotates logger in the same manner
as CLI command 'logger rotate'
* New AMI Actions FAXSessions, FAXSession, and FAXStats replicate the
functionality of CLI commands 'fax show sessions', 'fax show session',
and fax show stats' respectively.
* New AMI actions PRIDebugSet, PRIDebugFileSet, and PRIDebugFileUnset
enable manager control over PRI debugging levels and file output.
* AMI action PJSIPNotify may now send to a URI instead of only to a PJSIP
endpoint as long as a default outbound endpoint is set. This also applies
to the equivalent CLI command (pjsip send notify)
* The AMI action PJSIPShowEndpoint now includes ContactStatusDetail sections
that give information on Asterisk's attempts to qualify the endpoint.
* The DialEnd event will now contain a Forward header if the dial is ending
due to the call being forwarded. The contents of the Forward header is the
extension in the number to which the call is being forwarded.
CEL
------------------
* The "bridge_technology" extra field key has been added to BRIDGE_ENTER
and BRIDGE_EXIT events.
Features
------------------
* Channel variables are now substituted in arguments passed to applications
run by using dynamic features.
TLS
------------------
* The TLS core in Asterisk now supports Perfect Forward Secrecy (PFS).
Enabling PFS is attempted by default, and is dependent on the configuration
of the module using TLS.
- Ephemeral ECDH (ECDHE) is enabled by default. To disable it, do not
specify a ECDHE cipher suite in sip.conf, for example:
tlscipher=AES128-SHA:DES-CBC3-SHA
- Ephemeral DH (DHE) is disabled by default. To enable it, add DH parameters
into the private key file, e.g., sip.conf tlsprivatekey. For example, the
default dh2048.pem - see
http://www.opensource.apple.com/source/OpenSSL098/OpenSSL098-35.1/src/apps/dh2048.pem?txt
- Because clients expect the server to prefer PFS, and because OpenSSL sorts
its cipher suites by bit strength, see "openssl ciphers -v DEFAULT".
Consider re-ordering your cipher suites in the respective configuration
file. For example:
tlscipher=AES128+kEECDH:AES128+kEDH:3DES+kEDH:AES128-SHA:DES-CBC3-SHA:-ADH:-AECDH
will use PFS when offered by the client. Clients which do not offer PFS
fall-back to AES-128 (or even 3DES, as recommended by RFC 3261).
Functions
------------------
JACK_HOOK
------------------
* The JACK_HOOK function now supports audio with a sample rate higher than
8kHz.
Resources
------------------
res_config_pgsql
------------------
* Added the ability to support PostgreSQL application_name on connections.
This allows PostgreSQL to display the configured name in the
pg_stat_activity view and CSV log entries. This setting is configurable
for res_config_pgsql via the dbappname configuration setting in
res_pgsql.conf.
res_pjsip_outbound_publish
------------------
* A new module, res_pjsip_outbound_publish provides the mechanisms for sending
PUBLISH requests for specific event packages to another SIP User Agent.
res_pjsip_pubsub
------------------
* The publish/subscribe core module has been updated to support RFC 4662
Resource Lists, allowing Asterisk to act as a Resource List Server (RLS).
Resource lists are configured in pjsip.conf under a new object type,
resource_list. Resource lists can contain either message-summary or presence
events, and can be composed of specific resources that provide the event or
other resource lists.
* Inbound publication support is provided by a new object, inbound-publication.
This configures res_pjsip_pubsub to accept PUBLISH requests from a particular
resource. Which events are accepted is constructed dynamically; see
res_pjsip_publish_asterisk for more information.
res_pjsip_publish_asterisk
------------------
* A new module, res_pjsip_publish_asterisk adds support for PUBLISH requests of
Asterisk information to other Asterisk servers. This module is intended only
for Asterisk to Asterisk exchanges of information. Currently, this includes
both mailbox state and device state information.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 12.4.0 to Asterisk 12.5.0 ------------
------------------------------------------------------------------------------
ARI
------------------
* Stored recordings now support a new operation, copy. This will take an
existing stored recording and copy it to a new location in the recordings
directory.
* LiveRecording objects now have three additional fields that can be reported
in a RecordingFinished ARI event:
- total_duration: the duration of the recording
- talking_duration: optional. The duration of talking detected in the
recording. This is only available if max_silence_seconds was specified
when the recording was started.
- silence_duration: optional. The duration of silence detected in the
recording. This is only available if max_silence_seconds was specified
when the recording was started.
Note that all duration values are reported in seconds.
* Users of ARI can now send and receive out of call text messages. Messages
can be sent directly to a particular endpoint, or can be sent to the
endpoints resource directly and inferred from the URI scheme. Text
messages are passed to ARI clients as TextMessageReceived events. ARI
clients can choose to receive text messages by subscribing to the particular
endpoint technology or endpoints that they are interested in.
* The applications resource now supports subscriptions to all endpoints of
a particular channel technology. For example, subscribing to an eventSource
of 'endpoint:PJSIP' will subscribe to all PJSIP endpoints.
res_pjsip
------------------
* The endpoint configuration object now supports 'accountcode'. Any channel
created for an endpoint with this setting will have its accountcode set
to the specified value.
res_hep_rtcp
------------------
* A new module, res_hep_rtcp, has been added that will forward RTCP call
statistics to a HEP capture server. See res_hep for more information.
Functions
------------------
* Function AUDIOHOOK_INHERIT has been deprecated. Audiohooks are now
unconditionally inhereted through masquerades. As a side benefit, more
than one audiohook of a given type may persist through a masquerade now.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 12.3.0 to Asterisk 12.4.0 ------------
------------------------------------------------------------------------------
AgentRequest
------------------
* Returns new AGENT_STATUS value "NOT_CONNECTED" if the agent fails to
connect with an incoming caller after being alerted to the presence
of the incoming caller. The most likely reason this would happen is
the agent did not acknowledge the call in time.
AMI
------------------
* New events have been added for the TALK_DETECT function. When the function
is used on a channel, ChannelTalkingStart/ChannelTalkingStop events will be
emitted to connected AMI clients indicating the start/stop of talking on
the channel.
ARI
------------------
* New event models have been aded for the TALK_DETECT function. When the
function is used on a channel, ChannelTalkingStarted/ChannelTalkingFinished
events will be emitted to connected WebSockets subscribed to the channel,
indicating the start/stop of talking on the channel.
Functions
------------------
* A new function, TALK_DETECT, has been added. When set on a channel, this
fucntion causes events indicating the starting/stoping of talking on said
channel to be emitted to both AMI and ARI clients.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 12.2.0 to Asterisk 12.3.0 ------------
------------------------------------------------------------------------------
ARI
------------------
* A new Playback URI 'tone' has been added. Tones are specified either as
an indication name (e.g. 'tone:busy') from indications.conf or as a tone
pattern (e.g. 'tone:240/250,0/250'). Tones differ from normal playback
URIs in that they must be stopped manually and will continue to occupy
a channel's ARI control queue until they are stopped. They also can not
be rewound or fastforwarded.
* User events can now be generated from ARI. Events can be signalled with
arbitrary json variables, and include one or more of channel, bridge, or
endpoint snapshots. An application must be specified which will receive
the event message (other applications can subscribe to it). The message
will also be delivered via AMI provided a channel is attached. Dialplan
generated user event messages are still transmitted via the channel, and
will only be received by a stasis application they are attached to or if
the channel is subscribed to.
chan_sip
-----------
* SIP peers can now specify 'trust_id_outbound' which affects RPID/PAI
fields for prohibited callingpres information. Values are legacy, no, and
yes. By default, legacy is used.
trust_id_outbound=legacy - behavior remains the same as 1.8.26.1. When
dealing with prohibited callingpres and sendrpid=pai/rpid, RPID/PAI
headers are appended to outbound SIP messages just as they are with
allowed callingpres values, but data about the remote party's identity is
anonymized.
When sendrpid=rpid, only the remote party's domain is anonymized.
trust_id_outbound=no - when dealing with prohibited callingpres, RPID/PAI
headers are not sent.
trust_id_outbound=yes - RPID/PAI headers are applied with the full remote
party information in tact even for prohibited callingpres information.
In the case of PAI, a Privacy: id header will be appended for prohibited
calling information to communicate that the private information should
not be relayed to untrusted parties.
res_parking
------------------
* Manager action 'Park' now takes an additional argument 'AnnounceChannel'
which can be used to announce the parked call's location to an arbitrary
channel in a bridge. If 'Channel' and 'TimeoutChannel' are now the two
parties in a one to one bridge, 'TimeoutChannel' is treated as having
parked 'Channel' like with the Park Call DTMF feature and will receive
announcements prior to being hung up.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 12.1.0 to Asterisk 12.2.0 ------------
------------------------------------------------------------------------------
Record
------------------
* Record application now has an option 'o' which allows 0 to act as an exit
key setting the RECORD_STATUS variable to 'OPERATOR' instead of 'DTMF'
ChanSpy
--------------------------
* ChanSpy now accepts a channel uniqueid or a fully specified channel name
as the chanprefix parameter if the 'u' option is specified.
ConfBridge
--------------------------
* CONFBRIDGE dialplan function is now capable of creating/modifying dynamic
conference user menus.
* CONFBRIDGE dialplan function is now capable of removing dynamic conference
menus, bridge settings, and user settings that have been applied by the
CONFBRIDGE dialplan function.
* The ConfBridge dialplan application now sets a channel variable,
CONFBRIGE_RESULT, upon exiting. This variable can be used to determine
how a channel exited the conference.
* Added conference user option 'announce_join_leave_review'. This option
implies 'announce_join_leave' with the added effect that the user will
be asked if they want to confirm or re-record the recording of their
name when entering the conference
Directory
--------------------------
* At exit, the Directory application now sets a channel variable
DIRECTORY_RESULT to one of the following based on the reason for exiting:
OPERATOR user requested operator by pressing '0' for operator
ASSISTANT user requested assistant by pressing '*' for assistant
TIMEOUT user pressed nothing and Directory stopped waiting
HANGUP user's channel hung up
SELECTED user selected a user from the directory and is routed
USEREXIT user pressed '#' from the selection prompt to exit
FAILED directory failed in a way that wasn't accounted for. Dang.
Monitor
------------------
* Monitor() - A new option, B(), has been added that will turn on a periodic
beep while the call is being recorded.
MusicOnHold
--------------------------
* MusicOnHold streams (all modes other than "files") now support wide band
audio too.
Page
--------------------------
* Added options 'b' and 'B' to apply predial handlers for outgoing calls
and for the channel executing Page respectively.
PickupChan
--------------------------
* PickupChan now accepts channel uniqueids of channels to pickup.
Say
--------------------------
* If a channel variable SAY_DTMF_INTERRUPT is present on a channel and set
to 'true' (case insensitive), then any Say application (SayNumber,
SayDigits, SayAlpha, SayAlphaCase, SayUnixTime, and SayCounted) will
anticipate DTMF. If DTMF is received, these applications will behave like
the background application and jump to the received extension once a match
is established or after a short period of inactivity.
MixMonitor
-------------------------
* A new function, MIXMONITOR, has been added to allow access to individual
instances of MixMonitor on a channel.
* A new option, B(), has been added that will turn on a periodic beep while the
call is being recorded.
Channel Drivers
-------------------------
chan_sip
-------------------------
* TEL URI support for inbound INVITE requests has been added. chan_sip will
now handle TEL schemes in the Request and From URIs. The phone-context in
the Request URI will be stored in the SIPURIPHONECONTEXT channel variable on
the inbound channel.
Core
------------------
* Exposed sorcery-based configuration files like pjsip.conf to dialplans via
the new AST_SORCERY diaplan function.
* Core Show Locks output now includes Thread/LWP ID if the platform
supports this feature.
* New "logger add channel" and "logger remove channel" CLI commands have
been added to allow creation and deletion of dynamic logger channels
without configuration changes. These dynamic logger channels will only
exist until the next restart of asterisk.
ARI
------------------
* The live recording object on recording events now contains a target_uri
field which contains the URI of what is being recorded.
* The bridge type used when creating a bridge is now a comma separated list of
bridge properties. Valid options are: mixing, holding, dtmf_events, and
proxy_media.
* A channelId can now be provided when creating a channel, either in the
uri (POST channels/my-channel-id) or as query parameter. A local channel
will suffix the second channel id with ';2' unless provided as query
parameter otherChannelId.
* A bridgeId can now be provided when creating a bridge, either in the uri
(POST bridges/my-bridge-id) or as a query parameter.
* A playbackId can be provided when starting a playback, either in the uri
(POST channels/my-channel-id/play/my-playback-id /
POST bridges/my-bridge-id/play/my-playback-id) or as a query parameter.
* A snoop channel can be started with a snoopId, in the uri or query.
AMI
------------------
* Originate now takes optional parameters ChannelId and OtherChannelId,
used to set the UniqueId on creation. The other id is assigned to the
second channel when dialing LOCAL, or defaults to appending ;2 if only
the single Id is given.
* The Mixmonitor action now has a "Command" header that can be used to
indicate a post-process command to run once recording finishes.
RealTime
------------------
* A new set of Alembic scripts has been added for CDR tables. This will create
a 'cdr' table with the default schema that Asterisk expects.
Functions
------------------
* A new function was added: PERIODIC_HOOK. This allows running a periodic
dialplan hook on a channel. Any audio generated by this hook will be
injected into the call.
Resources
------------------
res_hep
------------------
* A new module, res_hep, has been added, that acts as a generic packet
capture agent for the Homer Encapsulation Protocol (HEP) version 3.
It can be configured via hep.conf. Other modules can use res_hep to send
message traffic to a HEP capture server.
res_hep_pjsip
------------------
* A new module, res_hep_pjsip, has been added that will forward PJSIP
message traffic to a HEP capture server. See res_hep for more
information.
res_pjsip
------------------
* transport and endpoint ToS options (tos, tos_audio, and tos_video) may now
be set as the named set of ToS values (cs0-cs7, af11-af43, ef).
* Added the following new CLI commands:
- "pjsip show contacts" - list all current PJSIP contacts.
- "pjsip show contact" - show specific information about a current PJSIP
contact.
- "pjsip show channel" - show detailed information about a PJSIP channel.
res_pjsip_multihomed
------------------
* A new module, res_pjsip_multihomed handles situations where the system
Asterisk is running out has multiple interfaces. res_pjsip_multihomed
determines which interface should be used during message sending.
res_pjsip_pidf_digium_body_supplement
------------------
* A new module, res_pjsip_pidf_digium_body_supplement provides NOTIFY
request body formatting for presence support in Digium phones.
res_pjsip_send_to_voicemail
------------------
* A new module, res_pjsip_send_to_voicemail allows for REFER requests with
particular headers to transfer a PJSIP channel directly to a particular
extension that has VoiceMail. This is intended to be used with Digium
phones that support this feature.
res_pjsip_outbound_registration
------------------
* A new CLI command has been added: "pjsip show registrations", which lists
all configured PJSIP registrations
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 12.0.0 to Asterisk 12.1.0 ------------
------------------------------------------------------------------------------
AMI
------------------
* Added a new module that provides AMI control over MWI within Asterisk,
res_mwi_external_ami. Note that this module depends on res_mwi_external;
for more information on enabling this module, see res_mwi_external.
This module provides the MWIGet/MWIUpdate/MWIDelete actions, as well as