Asterisk is an open source framework for building communications applications. Asterisk turns an ordinary computer into a communications server. Asterisk powers IP PBX systems, VoIP gateways, conference servers and other custom solutions. It is used by small businesses, large businesses, call centers, carriers and government agencies, worldwide. Asterisk is free and open source.
Homepage
Download
Recent Releases
20.9.219 Sep 2024 07:25
minor feature:
Commits: 1.
Commit Authors: 1.
Resolved: 0.
Security Advisories Resolved: 1.
GHSA-c4cg-9275-6w44: Write=originate, is sufficient permissions for code execution / System() dialplan.
20.8.126 May 2024 05:45
minor feature:
Commits: 1.
Commit Authors: 1.
Resolved: 0.
Security Advisories Resolved: 1.
GHSA-qqxj-v78h-hrf9: res_pjsip_endpoint_identifier_ip: wrongly matches ALL unauthorized SIP requests.
20.7.019 Mar 2024 15:45
minor feature:
Res_pjsip_stir_shaken.c: Add checks for missing parameters.
App_dial: Add dial time for progress/ringing.
App_voicemail: Properly reinitialize config after unit tests.
App_queue.c : "queue add member" usage string.
App_voicemail: Allow preventing mark messages as urgent.
Res_pjsip: Use consistent type for boolean columns.
Attestation_config.c: Use ast_free instead of ast_std_free.
Makefile: Add stir_shaken/cache to directories created on install.
Stir/Shaken Refactor.
Alembic: Synchronize alembic heads between supported branches.
Translate.c: implement new direct comp table mode.
README.md: Removed outdated link.
Strings.h: Ensure ast_str_buffer( ) returns a 0 terminated string.
Res_rtp_asterisk.c: Correct coefficient in MOS calculation.
Dsp.c: and improve potentially inaccurate log message.
Pjsip show channelstats: Prevent possible segfault when faxing.
Reduce startup/shutdown verbose logging.
Configure: Rerun bootstrap on modern platform.
Upgrade bundled pjproject to 2.14.
App_speech_utils.c: Allow partial speech results.
Utils: Make behavior of ast_strsep match strsep.
App_chanspy: Add 'D' option for dual-channel audio.
App_if: next priority calculation.
Res_pjsip_t38.c: Permit IPv6 SDP connection addresses.
BuildSystem: Bump autotools versions on OpenBSD.
Main/utils: Simplify the FreeBSD ast_get_tid() handling.
Res_pjsip_session.c: Correctly format SDP connection addresses.
Rtp_engine.c: Correct sample rate typo for L16/44100.
Manager.c: erroneous reloads in UpdateConfig.
Res_calendar_icalendar: Print iCalendar error on parsing failure.
App_confbridge: Don't emit warnings on valid configurations.
App_voicemail: add NoOp alembic script to maintain sync.
Chan_dahdi: Allow MWI to be manually toggled on channels.
Chan_rtp.c: MulticastRTP missing refcount without codec option.
Chan_rtp.c: Change MulticastRTP nameing to avoid memory leak.
Func_frame_trace: Add CLI command to dump frame queue.
20.2.104 Apr 2023 14:05
minor feature:
Res_pjsip_pubsub: subscription cleanup changes
There are two main parts of the change associated with this.
Commit. These are driven by the change in call order of
Pubsub_on_rx_refresh and pubsub_on_evsub_state by pjproject
When an in-dialog SUBSCRIBE is received.
First, the previous behavior was for pjproject to call.
Pubsub_on_rx_refresh before calling pubsub_on_evsub_state
When an in-dialog SUBSCRIBE was received that changes the
Subscription state.
If that change was a termination due to a re-SUBSCRIBE with
an expires of 0, we used to use the call to pubsub_on_rx_refresh
to set the substate of the evsub to TERMINATE_PENDING before.
Pjproject could call pubsub_on_evsub_state.
This substate let pubsub_on_evsub_state know that the.
Subscription TERMINATED event could be ignored as there was
Still a subsequent NOTIFY that needed to be generated and
Another call to pubsub_on_evsub_state to come with it.
That NOTIFY was sent via serialized_pubsub_on_refresh_timeout.
Which would see the TERMINATE_PENDING state and transition it
to TERMINATE_IN_PROGRESS before triggering another call to.
Pubsub_on_evsub_state (which now would clean up the evsub.)
The new pjproject behavior is to call pubsub_on_evsub_state.
Before pubsub_on_rx_refresh. This means we no longer can set
The state to TERMINATE_PENDING to tell pubsub_on_evsub_state
That it can ignore the first TERMINATED event.
To handle this, we now look directly at the event type.
Method type and the expires value to determine whether we
Want to ignore the event or use it to trigger the evsub
Cleanup.
Second, pjproject now expects the NOTIFY to actually be sent.
During pubsub_on_rx_refresh and avoids the protocol violation
Inherent in sending a NOTIFY before the SUBSCRIBE is
Acknowledged by caching the sent NOTIFY then sending it
After responding to the SUBSCRIBE.
This requires we send the NOTIFY using the non-serialized.
Pubsub_on_refresh_timeout directly and let pjproject handle
The protocol violation. Revert "pbx_ael: Gl
20.0.102 Dec 2022 12:45
minor feature:
Update CHANGES and UPGRADE.txt for 20.0.1
pjproject: 2.13 security
Backports two security (c4d3498 and 450baca) from pjproject 2.13. pjsip_transport_events: possible use after free on transport.
It was possible for a module that registered for transport monitor.
Events to pass in a pjsip_transport that had already been freed.
This caused pjsip_transport_events to crash when looking up the.
Monitor for the transport. The is a two pronged approach.
1. We now increment the reference count on pjsip_transports when we.
Create monitors for them, then decrement the count when the
Transport is going to be destroyed.
2. There are now APIs to register and unregister monitor callbacks
by "transport key" which is a string concatenation of the remote ip.
Address and port. This way the module needing to monitor the
Transport doesn't have to hold on to the transport object itself to
Unregister. It just has to save the transport_key.
Added the pjsip_transport reference increment and decrement.
Changed the internal transport monitor container key from the.
Transport- obj_name (which may not be unique anyway) to the
Transport_key.
Added a helper macro AST_SIP_MAKE_REMOTE_IPADDR_PORT_STR() that.
Fills a buffer with the transport_key using a passed-in
Pjsip_transport.
Added the following functions:
Ast_sip_transport_monitor_register_key
Ast_sip_transport_monitor_register_replace_key
Ast_sip_transport_monitor_unregister_key
And marked their non-key counterparts as deprecated.
Updated res_pjsip_pubsub and res_pjsip_outbound_register to use.
The new "key" monitor functions.
NOTE: res_pjsip_registrar also uses the transport monitor.
Functionality but doesn't have a persistent object other than
Contact to store a transport key. At this time, it continues to
Use the non-key monitor functions. manager: prevent file access outside of config dir
Add live_dangerously flag to manager and use this flag to.
Determine if a configuation file outside of AST_CONFIG_DIR
Should be read. ooh323c: not che
20.0.019 Oct 2022 19:49
minor feature: