This option can be used to enable #exec support in the asterisk.conf configuration file.
(closes issue #16260)
Reported by: atis
Patches:
exec_includes.patch uploaded by atis (license 242)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@232510 f38db490-d61c-443f-a65b-d21fe96a405b
* Add REPLACE function, which searches a given variable for a set of
characters and replaces each with a given character.
* Add PASSTHRU function, which passes a literal string back, like a NoOp for
functions. Intent is to be able to specify a literal string to another
function that takes a variable name as an argument.
* Let the array manipulation functions work with dialplan functions, in
addition to variables. This allows the array manipulation functions to
modify ASTDB and ODBC backends, assuming the func_odbc configuration has
both read and write functions.
(closes issue #15223)
Reported by: ajohnson
Patches:
20091112__issue15223.diff.txt uploaded by tilghman (license 14)
Tested by: lmadsen, tilghman
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@230994 f38db490-d61c-443f-a65b-d21fe96a405b
AVAILCAUSECODE dialplan variable instead of overwriting the device state in AVAILSTATUS.
(closes issue #14426)
Reported by: macli
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@229970 f38db490-d61c-443f-a65b-d21fe96a405b
Dial(DAHDI/g1[/extension[/options]])
Current options:
K(<keypad_digits>)
R Reverse charging indication (Collect calls)
The earlier Dial(DAHDI/g1[/K<keypad_digits>][/extension] format was
variable and did not allow for the easy addition of more options.
The earlier 'C' prefix character for reverse charge indiation would
conflict with the a-d DTMF digits if ISDN uses them.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@228691 f38db490-d61c-443f-a65b-d21fe96a405b
This change causes answertime to be correct even if the called channel hangs up during an announcement triggered by the A() option.
(closes issue #15936)
Reported by: falves11
Patches:
dial-macro-billsec-fix1.diff uploaded by mnicholson (license 96)
dial-caller-answer1.diff uploaded by mnicholson (license 96)
Tested by: falves11, mnicholson
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@227897 f38db490-d61c-443f-a65b-d21fe96a405b
This change adds a configuration option to SIP peers, unsolicited_mailbox, which
configures a virtual mailbox to use for received new/old MWI information. This
virtual mailbox can then be used by any device supporting MWI.
(closes issue #13028)
Reported by: AsteriskRocks
Patches:
bug_13028_chan_sip_external_mwi_20090707.patch uploaded by cmaj (license 830)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@226060 f38db490-d61c-443f-a65b-d21fe96a405b
* Added handling of received HOLD/RETRIEVE messages and the optional ability
to transfer a held call on disconnect similar to an analog phone.
* Added CallRerouting/CallDeflection support for Q.SIG, ETSI PTP, ETSI PTMP.
Will reroute/deflect an outgoing call when receive the message.
Can use the DAHDISendCallreroutingFacility to send the message for the
supported switches.
* Added ability to send/receive keypad digits in the SETUP message.
Send keypad digits in SETUP message: Dial(DAHDI/g1[/K<keypad_digits>][/extension])
Access any received keypad digits in SETUP message by: ${CHANNEL(keypad_digits)}
* Added support for BRI PTMP NT mode.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@225692 f38db490-d61c-443f-a65b-d21fe96a405b
The Telecom Specs in NZ suggests that SUB ADDRESS is always on, so doing
"desk to desk" between offices each with an asterisk box over the ISDN
should then be possible, without a whole load of DDI numbers required.
(closes issue #15604)
Reported by: alecdavis
Patches:
asterisk_subaddr_trunk.diff11.txt uploaded by alecdavis (license 585)
Some minor modificatons were made.
Tested by: alecdavis, rmudgett
Review: https://reviewboard.asterisk.org/r/405/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@225357 f38db490-d61c-443f-a65b-d21fe96a405b
This is the second commit for this and documents the text stream using the configured
IP address and fixes a bug in the original patch where the UDPTL stream would also
use the different IP address.
(closes issue #14729)
Reported by: _brent_
Patches:
media_address.patch uploaded by brent (license 388)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@225089 f38db490-d61c-443f-a65b-d21fe96a405b
Ability has been added to both manager command SIPnotify as well as console
command sip notify. Message body is stored in the "Content" variable. An
example is present in sip_notify.conf.
(closes issue #13926)
Reported by: jthurman
Patches:
sip-notify-svn189463.diff uploaded by gareth (license 208)
Tested by: gareth
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@224035 f38db490-d61c-443f-a65b-d21fe96a405b
The PRI channels can no longer change the channel name if a different B
channel is selected during call negotiation. To prevent using the channel
name to infer what B channel a call is using and to avoid name collisions,
the channel name format is changed.
The new channel naming for PRI channels is:
DAHDI/ISDN-<span>-<sequence-number>
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@221701 f38db490-d61c-443f-a65b-d21fe96a405b
JABBER_RECEIVE (along with JabberSend) makes Asterisk interact with users over
XMPP to process calls.
SendText can be used instead of JabberSend in the context of XMPP based voice
channels (chan_gtalk and chan_jingle).
(closes issue #12569)
Reported by: eech55
Tested by: phsultan, asannucci, lmadsen, jtodd, maxgo
Review: https://reviewboard.asterisk.org/r/88/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@220457 f38db490-d61c-443f-a65b-d21fe96a405b
In addition, there's a bit of cleanup to the arguments and documentation, in which
I discovered that the last feature added to this application duplicated an option
(oops!) and changed that option so that it now works.
(closes issue #14909)
Reported by: junky
Patches:
__20090901-spy_hangup_trunk.diff uploaded by lmadsen (license 10)
Tested by: amilcar, junky, flujan, lmadsen
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@219105 f38db490-d61c-443f-a65b-d21fe96a405b
Added DYNAMIC_FEATURENAME which holds the last triggered dynamic feature.
Added DYNAMIC_PEERNAME which holds the unique channel name on the other side
and is set when a dynamic feature is triggered.
(closes issue #14663)
Reported by: tamiel
Patches:
20090313_features.diff uploaded by tamiel (license 712)
Tested by: tamiel
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@214309 f38db490-d61c-443f-a65b-d21fe96a405b
Add Connected Line Presentation (COLP) support to chan_dahdi/libpri as an
addition to issue 8824. This is the chan_dahdi/sig_pri portion. COLP
support is now available for any switch for which libpri supports COLP
(currently ETSI PTP, ETSI PTMP, and Q.SIG) with this patch.
(closes issue #14068)
Tested by: rmudgett
Review: https://reviewboard.asterisk.org/r/340/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@213007 f38db490-d61c-443f-a65b-d21fe96a405b
https://origsvn.digium.com/svn/asterisk/be/branches/C.2-...
..........
r207316 | rmudgett | 2009-07-17 23:05:05 -0500 (Fri, 17 Jul 2009) | 20 lines
Fixed incoming calls being matched to MSNs without type-of-number prefix added.
For an incoming ISDN call the dialed.number is incorrectly matched against
the configured MSNs in misdn.conf. The numbers passed to the dialplan
include the configured prefix for the dialed.number_type, whereas the
check against the configured MSNs (to decide if the call is accepted at
all), is executed without the configured prefix.
e.g., dialed.number = 241168020, TON = national, configured national
prefix is "0". (This is the TON which is used by ISDN providers in the
Netherlands.)
In chan_misdn.c:cb_events() in case EVENT_SETUP the call to
misdn_cfg_is_msn_valid() uses the unnormalized number 241168020, but 57
lines later the call to read_config() adds the prefix, and the
dialed.number is now 0241168020, which is then used in the dialplan.
misdn_cfg_is_msn_valid() must use the normalized number, too.
JIRA ABE-1912
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@207318 f38db490-d61c-443f-a65b-d21fe96a405b
This is a continuation of revision 885 to LibPRI (Capture and expose the Reverse
Charging Indication IE on ISDN PRI) which added the ability to get/set Reverse
Charging Indication in LibPRI. This patch adds the ability to specify RCI on
the outbound leg of a PRI call from within Asterisk, by prefixing the dialed
number with a capital 'C' like:
...,Dial(DAHDI/g1/C4445556666)
And to read it off an inbound channel:
exten => s,1,Set(RCI=${CHANNEL(reversecharge)})
Thanks again to rmudgett for the thorough review.
(closes issue #13760)
Reported by: mrgabu
Review: https://reviewboard.asterisk.org/r/303/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@204749 f38db490-d61c-443f-a65b-d21fe96a405b
The original patch for this was written by Brett Bryant, and I split it out into
it's own module.
(closes issue #12876)
Reported by: bbryant
Patches:
06162008_cdr_custom_syslog.diff uploaded by bbryant (license 36)
05212009_cdr_syslog.patch uploaded by seanbright (license 71)
Tested by: seanbright
Review: https://reviewboard.asterisk.org/r/297/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@203846 f38db490-d61c-443f-a65b-d21fe96a405b
CEL is the new system for logging channel events. This was inspired after
facing many problems trying to represent what is possible to happen to a call
in Asterisk using CDR records. For more information on CEL, see the built in
HTML or PDF documentation generated from the files in doc/tex/.
Many thanks to Steve Murphy (murf) and Brian Degenhardt (bmd) for their hard
work developing this code. Also, thanks to Matt Nicholson (mnicholson) and
Sean Bright (seanbright) for their assistance in the final push to get this
code ready for Asterisk trunk.
Review: https://reviewboard.asterisk.org/r/239/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@203638 f38db490-d61c-443f-a65b-d21fe96a405b
chan_sip has an option to save the sysname on rtupdate. This patch copies that same logic to chan_iax.
(closes issue #14837)
Reported by: barthpbx
Patches:
iax2-rtsavesysname.patch uploaded by barthpbx (license 744)
rt_iax.diff uploaded by dvossel (license 671)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@201534 f38db490-d61c-443f-a65b-d21fe96a405b
Asterisk will now automatically ignore incorrect incoming SDP version numbers
when necessary to complete a T.38 re-INVITE operation.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@200726 f38db490-d61c-443f-a65b-d21fe96a405b
Up to now, cdr_custom would only accept a single filename/format from
cdr_custom.conf. This change allows you to specify multiple filename
& format directives.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@195165 f38db490-d61c-443f-a65b-d21fe96a405b
Select what to do with outgoing COLP information on this port.
0 - Send out COLP information unaltered. (default)
1 - Force COLP to restricted on all outgoing COLP information.
2 - Do not send COLP information.
outgoing_colp=0
Also fixed sending the EctInform message so it always has the
required redirectionNumber parameter when the status is active.
JIRA ABE-1853
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@194479 f38db490-d61c-443f-a65b-d21fe96a405b
In discussions today at the Europe Asterisk Developer Meet-Up, we determined that
the event_log was used in only 9 places in the entire tree, and really was not needed
at all. The users have been converted to use LOG_NOTICE, or the messages have been
removed since other messages were already in place that provided the same information.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@191785 f38db490-d61c-443f-a65b-d21fe96a405b
Adds ability for CHANNEL() dialplan function, when used on DAHDI channels,
to temporarily change the number of buffers and/or the buffer policy, and also
to enable, disable, or switch the echo canceller between FAX/data and voice
modes.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@191411 f38db490-d61c-443f-a65b-d21fe96a405b
chan_sip allows for outbound TLS connections, but does not allow the user to specify what protocol to use (default was SSLv2, and still is if this new option is not specified). This patch lets the user pick the SSL/TLS client method for outbound connections in sip.
(closes issue #14770)
Reported by: TheOldSaint
(closes issue #14768)
Reported by: TheOldSaint
Review: http://reviewboard.digium.com/r/240/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@191177 f38db490-d61c-443f-a65b-d21fe96a405b
For outgoing PTP redirected calls, you now need to use the inhibit(i)
option on all of the REDIRECTING statements before dialing the redirected-to
party. You still have to set the REDIRECTING(to-xxx,i) and the
REDIRECTING(from-xxx,i) values. The PTP call will update the redirecting-to
presentation when it becomes available and queue the redirecting update to
the calling channel.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@191175 f38db490-d61c-443f-a65b-d21fe96a405b
ast_tls_read_conf() is a new api call for handling SSL/TLS options across all conf files. Before this change, SSL/TLS options were not consistent. http.conf and manager.conf required the 'ssl' prefix while sip.conf used options with the 'tls' prefix. While the options had different names in different conf files, they all did the exact same thing. Now, instead of mixing 'ssl' or 'tls' prefixes to do the same thing depending on what conf file you're in, all SSL/TLS options use the 'tls' prefix. For example. 'sslenable' in http.conf and manager.conf is now 'tlsenable' which matches what already existed in sip.conf. Since this has the potential to break backwards compatibility, previous options containing the 'ssl' prefix still work, but they are no longer documented in the sample.conf files. The change is noted in the CHANGES file though.
Review: http://reviewboard.digium.com/r/237/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@191028 f38db490-d61c-443f-a65b-d21fe96a405b
* Wait for a DivertingLegInformation3 message after receiving a
DivertingLegInformation1 message to complete the redirecting-to information
before queuing a redirecting update to the other channel.
* A DivertingLegInformation2 message should be responded to with a
DivertingLegInformation3 when the COLR is determined. If the call
could or does experience another redirection, you should manually
determine the COLR to send to the switch by setting REDIRECTING(to-pres)
to the COLR and setting REDIRECTING(to-num) = ${EXTEN}.
* A DivertingLegInformation2 message must have an original called number
if the redirection count is greater than one. Since Asterisk does
not keep track of this information, we can only indicate that the
number is not available due to interworking.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@190735 f38db490-d61c-443f-a65b-d21fe96a405b
Adds option to specify a private key .pem file when configuring TLS or SSL in AMI, HTTP, and SIP. Before this, the certificate file was used for both the public and private key. It is possible for this file to hold both, but most configurations allow for a separate private key file to be specified. Clarified in .conf files how these options are to be used. The current conf files do not explain how the private key is handled at all, so without knowledge of Asterisk's TLS implementation, it would be hard to know for sure what was going on or how to set it up.
Review: http://reviewboard.digium.com/r/234/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@190545 f38db490-d61c-443f-a65b-d21fe96a405b
There is a lot that could be said about this, but the patch is a big
improvement for performance, stability, code maintainability,
and ease of future code development.
The channel list is no longer an unsorted linked list. The main container
for channels is an astobj2 hash table. All of the code related to searching
for channels or iterating active channels has been rewritten. Let n be
the number of active channels. Iterating the channel list has gone from
O(n^2) to O(n). Searching for a channel by name went from O(n) to O(1).
Searching for a channel by extension is still O(n), but uses a new method
for doing so, which is more efficient.
The ast_channel object is now a reference counted object. The benefits
here are plentiful. Some benefits directly related to issues in the
previous code include:
1) When threads other than the channel thread owning a channel wanted
access to a channel, it had to hold the lock on it to ensure that it didn't
go away. This is no longer a requirement. Holding a reference is
sufficient.
2) There are places that now require less dealing with channel locks.
3) There are places where channel locks are held for much shorter periods
of time.
4) There are places where dealing with more than one channel at a time becomes
_MUCH_ easier. ChanSpy is a great example of this. Writing code in the
future that deals with multiple channels will be much easier.
Some additional information regarding channel locking and reference count
handling can be found in channel.h, where a new section has been added that
discusses some of the rules associated with it.
Mark Michelson also assisted with the development of this patch. He did the
conversion of ChanSpy and introduced a new API, ast_autochan, which makes it
much easier to deal with holding on to a channel pointer for an extended period
of time and having it get automatically updated if the channel gets masqueraded.
Mark was also a huge help in the code review process.
Thanks to David Vossel for his assistance with this branch, as well. David
did the conversion of the DAHDIScan application by making it become a wrapper
for ChanSpy internally.
The changes come from the svn/asterisk/team/russell/ast_channel_ao2 branch.
Review: http://reviewboard.digium.com/r/203/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@190423 f38db490-d61c-443f-a65b-d21fe96a405b
This is the companion commit to libpri r732. Service messages are now supported
for switch types 4ess/5ess. A new option service_message_support has been added
to chan_dahdi.conf and is noted in the sample config file. The service message
support is turned off by default. The current implementation relies on AstDB
to keep track of channel state, which allows the statuses to be preserved
across Asterisk restarts. Below is a description of the storage format.
The state and reason for the service state are in the form <state>:<reason>,
where:
<state> ::= { 'O' } // 'O' – Out Of Service
<reason> ::= { '0' | '1' | '2' | '3' }, where:
'0' – No reason (backwards compatibility)
'1' – NEAR END
'2' – FAR END
'3' – both NEAR and FAR END
The new CLI commands to handle channel service state are:
pri service disable channel <chan>
pri service enable channel <chan>
Many people contributed to the development of this functionality. Because I
entered at the very end I do not know the exact history. Special thanks to
all who moved the bug forward one way or another:
cmaj, PCadach, markster, mattf, drmac, MikeJ, serge-v, murf, kanelbullar, Seb7,
tilghman, lmadsen, and especially dhubbard (he answered lots of my questions
and did a large portion of the work)
(closes issue #3450)
Reported by: cmaj
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@188342 f38db490-d61c-443f-a65b-d21fe96a405b
The F option to app_dial has been modified to accept no parameters and perform
the above functionality. I don't see anywhere else that is doing function
overloading, but this really is the best place for this operation because:
- It makes it close to the 'g' option in the argument list which provides
similar functionality.
- The existing code to support the current F option provides a very
convienient location to add this new feature.
(closes issue #12381)
Reported by: michael-fig
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@187491 f38db490-d61c-443f-a65b-d21fe96a405b
a dialplan variable.
This adds a dialplan variable (SIP_CODEC_OUTBOUND) which controls
the codec offered for an outgoing SIP call. This is much like the
SIP_CODEC dialplan variable and has the same restrictions. The codec
set must be one that is configured for the call.
(closes issue #13243)
Reported by: samdell3
Patches:
13243.diff uploaded by file (license 11)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@186624 f38db490-d61c-443f-a65b-d21fe96a405b
The channel drivers which have been most heavily tested with these enhancements are
chan_sip and chan_misdn. Further work is being done to add Q.SIG support and will be
introduced in a later commit. chan_skinny has code added to it here, but according
to user pj, the support on chan_skinny is not working as of now. This will be fixed in
a later commit.
A special thanks goes out to bugtracker user gareth for getting the ball rolling and
providing the initial support for this work. Without his initial work on this, this would
not have been nearly as painless as it was.
This functionality has been tested by Digium's product quality department, as well as a
customer site running thousands of calls every day. In addition, many many many many bugtracker
users have tested this, too.
(closes issue #8824)
Reported by: gareth
Review: http://reviewboard.digium.com/r/201
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@186525 f38db490-d61c-443f-a65b-d21fe96a405b
Progress DTMF was added into app_dial's D() option. In CHANGES it should have been updated under 1.6.3 rather than 1.6.2.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@182607 f38db490-d61c-443f-a65b-d21fe96a405b
The D() option in app_dial is only able to send DTMF after the call has been answered. A progress option has been added to D() to allow DTMF to be sent upon receiving PROGRESS. This allows DTMF to be sent before the call is answered.
(closes issue #12123)
Reported by: VoipForces
Patches:
app_dial.c_patch_trunk_valid uploaded by VoipForces (license 419)
dtmf_progress.patch uploaded by dvossel (license 671)
Tested by: VoipForces, dvossel
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@182596 f38db490-d61c-443f-a65b-d21fe96a405b
This commit introduces official support for R2 signaling in chan_dahdi. The
modifications to chan_dahdi, and the supporting library, LibOpenR2, were both
written by Moises Silva.
Many users are using this code, or a variant of it, in Asterisk 1.2, 1.4 and 1.6
in Brazil, México and Argentina. An unknown number of users (but at least 1)
are using it in each of the following countries: Colombia, Nepal, Thailand,
Venezuela, Perú, and probably others.
To use this code, LibOpenR2 must be installed from http://www.libopenr2.org/.
Information about configuration can be found in configs/chan_dahdi.conf.sample.
The code committed is the most up to date version, which was being maintained
in svn/asterisk/team/moy/mfcr2/.
I would also like to include a Thank You to the many others that tested this
code beyond those listed in this commit message. These are the names that I
could find in the mantis issue.
(closes issue #12509)
Reported by: moy
Patches:
chan_zap-mfr2.patch uploaded by moy (license 222)
Tested by: moy, korihor, viniciusfontes, Skarmeth, loloski, asbestoshead, titogarrido, heliocoelhojr, konsultex, ncorrare, ecarruda, rtorresduque, PTorres, ychen
Review: http://reviewboard.digium.com/r/40/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@182355 f38db490-d61c-443f-a65b-d21fe96a405b
(actually its $(localstatedir)/run/asterisk
Makes setups with asterisk as non-root easier to manage because you can
setup permissions on this dir instead of touching a file and setting
permissions on that.
Files that come to mind are asterisk.pid and asterisk.ctl socket.
Prodded by and ok @russell
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@180898 f38db490-d61c-443f-a65b-d21fe96a405b
This commit brings in the bridging core, bridging technologies,
and the ConfBridge application.
For usage information on the ConfBridge application please see
the output of "core show application ConfBridge" from the CLI.
For API documentation please see the doxygen page describing the
architecture and the documentation for each API call.
Review: http://reviewboard.digium.com/r/93/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@180369 f38db490-d61c-443f-a65b-d21fe96a405b
Manager command "iaxpeers" now shows if a link is trunked and encrypted. Instead of encryption saying simply "yes" or "no", it now displays what type of encryption is enabled and if keyrotation is on or not.
(closes issue #14427)
Reported by: snuffy
Patches:
iax_show_trunks.diff uploaded by snuffy (license 35)
2009022200_iax2_show_trunkencryption.diff.txt uploaded by mvanbaak (license 7)
Tested by: mvanbaak, dvossel, snuffy
Review: http://reviewboard.digium.com/r/173/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@178300 f38db490-d61c-443f-a65b-d21fe96a405b
From a user point-of-view, this adds new CLI commands and Manager Actions to
better facilitate the reloading of queues and the resetting of their statistics.
The new CLI commands are the "queue reload" and "queue reset stats" commands.
The new manager actions are the QueueReload and QueueReset commands.
Review: http://reviewboard.digium.com/r/115
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@175663 f38db490-d61c-443f-a65b-d21fe96a405b
This patch adds forceencryption=yes as an iax.conf option. When force encryption is enabled, no unencrypted connections are allowed. This insures all connections are encrypted. This is a new feature, so CHANGES and iax.conf.sample are updated as well.
(closes issue #13285)
Reported by: sgofferj
Tested by: russell
Review: http://reviewboard.digium.com/r/150/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@175344 f38db490-d61c-443f-a65b-d21fe96a405b
This is very similar to the DAHDI immediate=yes option. When the phone is picked up, instead of giving a dialtone it connects directly to the "s" extension. Changes where implemented in chan_iax2.c to directly connect to the "s" extension in the appropriate context when this option is enabled. Examples explaining its use are added to iax2.conf.sample. CHANGES has been updated as well.
(closes issue #14266)
Reported by: jcovert
Patches:
chan_iax2.c.patch-trunk uploaded by jcovert (license 551)
iax.conf.sample.patch uploaded by jcovert (license 551)
Tested by: jcovert, dvossel
Review: http://reviewboard.digium.com/r/143/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@174046 f38db490-d61c-443f-a65b-d21fe96a405b
reviewboard this before committing again...
reopened 11583 until all Russell's issues are
resolved.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@172929 f38db490-d61c-443f-a65b-d21fe96a405b
to be used within the dial app, before a call is bridged.
Many thanks to sobomax for submitting this patch.
Quoting from bug 11582:
"So the goal of the patch was to use the user configured feature code during the
call setup phase. The original ast_feature_interpret() function is not well suited
for this purpose as it uses much call bridge specific data and doesn't separate a
detection of feature from a feature handler call. So a new function ast_feature_detect()
has been extracted off the ast_feature_interpret() function but keeping the original
logic intact except some insignificant changes to locking.
"Having created the ast_feature_detect() function the possibility to use feature detection
in almost any place of the asterisk code. So a call to this function has been added to
wait_for_answer() function of app_dial.so module. This code doesn't call the feature handler
however and uses old call leg disconnect logic to make the changes as small and simple as
possible to prevent unexpected problems. A disconnect feature currently is the only one
supported during call setup as other features as call parking and call transfer don't make much
sense during call setup. However if need in some of the features would arise it is much easier to
implement as the infrastructure changes are already in place with this patch."
I have cleaned up the patch somewhat, and verified that the existing functionality is not
harmed, and that the new functionality works. Terry has committed his stuff, and there were
no conflicts (see 14274).
(closes issue #11583)
Reported by: sobomax
Patches:
patch-apps__app_dial.c uploaded by sobomax (license 359)
patch-include__asterisk__features.h uploaded by sobomax (license 359)
patch-res__res_features.c uploaded by sobomax (license 359)
enable-features-during-call-setup.diff uploaded by sobomax (license 359)
11583.newdiff uploaded by murf (license 17)
enable-features-during-call-setup-1.diff uploaded by sobomax (license 359)
11583.latest-patch uploaded by murf (license 17)
Tested by: sobomax, murf
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@172890 f38db490-d61c-443f-a65b-d21fe96a405b
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r172517 | twilson | 2009-01-30 11:47:41 -0600 (Fri, 30 Jan 2009) | 37 lines
Fix feature inheritance with builtin features
When using builtin features like parking and transfers, the AST_FEATURE_* flags
would not be set correctly for all instances when either performing a builtin
attended transfer, or parking a call and getting the timeout callback. Also,
there was no way on a per-call basis to specify what features someone should
have on picking up a parked call (since that doesn't involve the Dial() command).
There was a global option for setting whether or not all users who pickup a
parked call should have AST_FEATURE_REDIRECT set, but nothing for DISCONNECT,
AUTOMON, or PARKCALL.
This patch:
1) adds the BRIDGE_FEATURES dialplan variable which can be set either in the
dialplan or with setvar in channels that support it. This variable can be set
to any combination of 't', 'k', 'w', and 'h' (case insensitive matching of the
equivalent dial options), to set what features should be activated on this
channel. The patch moves the setting of the features datastores into the
bridging code instead of app_dial to help facilitate this.
2) adds global options parkedcallparking, parkedcallhangup, and
parkedcallrecording to be similar to the parkedcalltransfers option for
globally setting features.
3) has builtin_atxfer call builtin_parkcall if being transfered to the parking
extension since tracking everything through multiple masquerades, etc. is
difficult and error-prone
4) attempts to fix all cases of return calls from parking and completed builtin
transfers not having the correct permissions
(closes issue #14274)
Reported by: aragon
Patches:
fix_feature_inheritence.diff.txt uploaded by otherwiseguy (license 396)
Tested by: aragon, otherwiseguy
Review http://reviewboard.digium.com/r/138/
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@172580 f38db490-d61c-443f-a65b-d21fe96a405b
With this commit, a register => line in sip.conf may contain a port number in the
"user" section of the line. Please see CHANGES and sip.conf.sample for more
details regarding this.
(closes issue #14198)
Reported by: Nick_Lewis
Patches:
chan_sip.c-domainport2.patch uploaded by Nick (license 657)
Tested by: Nick_Lewis
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@168575 f38db490-d61c-443f-a65b-d21fe96a405b
This patch adds the functionality to app_queue of calculating
the average amount of time that channels are bridged for a
queue. The algorithm used to calculate the average is the same
exponential average currently used to calculate the average holdtime.
See the CHANGES file to see the methods you may use to view this
information.
(closes issue #13960)
Reported by: coolmig
Patches:
app_queue.c.diff.trunk-r158840 uploaded by coolmig (license 621)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@167792 f38db490-d61c-443f-a65b-d21fe96a405b
This function is being added as a method to allow for
an audiohook to move to a new channel during a channel
masquerade. The most obvious use for such a facility is
for MixMonitor when a transfer is performed. Prior to
the addition of this functionality, if a channel
running MixMonitor was transferred by another party, then
the recording would stop once the transfer had completed.
By using AUDIOHOOK_INHERIT, you can make MixMonitor
continue recording the call even after the transfer
has completed.
It has also been determined that since this is seen
by most as a bug fix and is not an invasive change,
this functionality will also be backported to 1.4 and
merged into the 1.6.0 branches, even though they are
feature-frozen.
(closes issue #13538)
Reported by: mbit
Patches:
13538.patch uploaded by putnopvut (license 60)
Tested by: putnopvut
Review: http://reviewboard.digium.com/r/102/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@166092 f38db490-d61c-443f-a65b-d21fe96a405b
enabled (either globally or for a specific peer), chan_sip will treat any SDP
data it receives as new data and update the media stream accordingly. By
default, Asterisk will only modify the media stream if the SDP session version
received is different from the current SDP session version. This option is
required to interoperate with devices that have non-standard SDP session
version implementations (observed by toc on the bug tracker with Microsoft OCS
which always uses 0 as the session version).
http://reviewboard.digium.com/r/94/
(closes issue #13958)
Reported by: toc
Tested by: toc
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@165180 f38db490-d61c-443f-a65b-d21fe96a405b
Terry Wilson created the original patch for this functionality, which I slightly modified and added
the faxdetect=yes|no configuration option. This patch is only for T38 fax detection and does not
do anything for G711 over SIP fax detection. By default, this option is disabled.
Reviewboard: http://reviewboard.digium.com/r/69/
This functionality is for issue AST-140.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@161115 f38db490-d61c-443f-a65b-d21fe96a405b
Based on cli_permissions.conf configuration file, we are able to permit or deny
cli commands based on some patterns and the local user and group running rasterisk.
(Sorry if I missed some of the testers).
Reviewboard: http://reviewboard.digium.com/r/11/
(closes issue #11123)
Reported by: eliel
Tested by: eliel, IgorG, Laureano, otherwiseguy, mvanbaak
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@160062 f38db490-d61c-443f-a65b-d21fe96a405b
- Add CLI aliases module to asterisk.
- Remove all deprecated CLI commands from the code
Initial work done by file.
Junk-Y and lmadsen did a lot of work and testing to
get the list of deprecated commands into the configuration file.
Deprecated CLI commands are now handled by this new module,
see cli_aliases.conf for more info about that.
ok russellb@ via reviewboard
(closes issue #13735)
Reported by: mvanbaak
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@156120 f38db490-d61c-443f-a65b-d21fe96a405b
remotesecret => our password for a remote service
secret => our authentication when someone calls us
Secret => still has both functions if remotesecret is not used.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@153904 f38db490-d61c-443f-a65b-d21fe96a405b
had no effect
* Updated dialing API documentation to indicate that timeouts
are specified in milliseconds
* Added a new timeout argument to the Page application. If time
expires, any endpoints which have not answered will be hung up.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@153223 f38db490-d61c-443f-a65b-d21fe96a405b
the low default value of featuredigittimeout, I decided it
was high time to change it. I have changed the default to
2000 ms based on a suggestion from Leif Madsen.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@152807 f38db490-d61c-443f-a65b-d21fe96a405b
for more details of this command.
(closes issue #13326)
Reported by: ib2
Patches:
bug13326_trunk_20080822.diff uploaded by snuffy (license 35)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@150311 f38db490-d61c-443f-a65b-d21fe96a405b
and "leavewhenempty" options are configured in queues.conf.
Instead of using vague terms like "yes," "no," "loose," and
"strict," we now accept a comma-separated list of values
to determine when to consider a member available.
Extended details can be found in the queues.conf.sample
file. Note also that the above four referenced values are
still accepted for backwards-compatibility, but are mapped
internally to the new method of representing the option.
AST-105
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@146640 f38db490-d61c-443f-a65b-d21fe96a405b
call-id in the dialog-info event package used with extension state subscriptions
on Snom phones. Then, when the phone sends an INVITE with Replaces for the
special callid, Asterisk will perform a pickup on the extension that was
subscribed to.
The original code on this issue was submitted by xylome. However, contributions
have been made by (at least) mgernoth and pkempgen. The final patch was written
by seanbright, and includes the necessary logic to allow this work in a
technology independent way.
(closes issue #5014)
Reported by: xylome
Patches:
issue5014-trunk.diff uploaded by seanbright (license 71)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@145226 f38db490-d61c-443f-a65b-d21fe96a405b
This will print the subs and their status for every line (if any).
wedhorn did most of the work with his patch which introduced
'skinny show debug' but a discussion on IRC stated that it should be
added to 'skinny show lines'
Input on the output format by Qwell on IRC.
(closes issue #13344)
Reported by: wedhorn
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@140938 f38db490-d61c-443f-a65b-d21fe96a405b
Reported by: erousseau
This was a reasonable enhancement request, which was
easy to implement. Since it's an enhancement, it
could only be applied to trunk.
Basically, for accounting where "initiated" seconds
are billed for, if the microseconds field on the end
time is greater than the microseconds field for the
answer time, add one second to the billsec field.
The implementation was requested by erousseau, and
I've implemented it as requested. I've updated the
CHANGES, the cdr.conf.sample, and the .h files
accordingly, to accept and set a flag for the
corresponding new option. cdr.c adds in the extra
second based on the usec fields if the option is
set. Tested, seems to be working fine.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@140057 f38db490-d61c-443f-a65b-d21fe96a405b
This set of changes enhances IAX2 encryption support by adding key rotation
to provide enhanced security. The key used for encryption is rotated right
after the call gets set up, and then again every few minutes. This was
discussed at the last AstriDevCon. For interoperability with older versions
of Asterisk, there is an option that disables key rotation.
(closes issue #13018)
Reported by: bbryant
Patches:
07072008__iax2_key_rotation.diff uploaded by bbryant (license 36)
Tested by: russell, bbryant
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@135158 f38db490-d61c-443f-a65b-d21fe96a405b
driver into a common place for multiple channel drivers.
(closes issue #13152)
Reported by: caio1982
Patches:
atxfer_complete_sound3.diff uploaded by caio1982 (license 22)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@134401 f38db490-d61c-443f-a65b-d21fe96a405b
implementations. Asterisk has, for a long time,
had its own implementation of poll(2) which
just used the input arguments to call select(2).
In 1.4, this internal implementation was used
for Darwin systems. This was removed in Asterisk
trunk at some point, but it seems as though this
was not the right move to make.
On Mac OS X, it appears as though the poll used
to gather CLI input does not respond properly
when connecting via a remote Asterisk console.
Reverting to the use of Asterisk's poll fixed
the issue.
Also, there is now an option for the configure
script, --enable-internal-poll, which will allow
for anyone to use Asterisk's internal poll
implementation in case they suspect that their
system's poll implementation is buggy.
closes issue #11928)
Reported by: adriavidal
Patches:
1.6.0-configurev2.patch uploaded by putnopvut (license 60)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@134125 f38db490-d61c-443f-a65b-d21fe96a405b
fail to setup video RTP if the two endpoints will not support it. This assists
with call files and certain transfers to ensure that if two video phones are
ever connected, they will always share a video feed.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@130951 f38db490-d61c-443f-a65b-d21fe96a405b
acceptdtmf and enddtmf. These allow for the DTMF pressed to be configurable
instead of being hardcoded to '#' and '*'.
(AST-86)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@127558 f38db490-d61c-443f-a65b-d21fe96a405b
to how language is handled between two channels whose native
language is different. Prior to this patch, app_dial would have
the callee inherit the caller's language, and app_queue would not.
After this patch, app_dial no longer has the language inheritance
capability. This seems to make the most sense since it seems more
natural for a person to hear files played back in his/her native
language instead of the language of the person on the far end of
the call. See the CHANGES file for hints on how to keep the
previous behavior of app_dial if desired.
(closes issue #12489)
Reported by: bcnit
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@125647 f38db490-d61c-443f-a65b-d21fe96a405b
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r122127 | murf | 2008-06-12 08:51:44 -0600 (Thu, 12 Jun 2008) | 1 line
Arkadia tried to warn me, but the code added to ast_cdr_busy, _failed, and _noanswer was redundant. Didn't spot it until I was resolving conflicts in trunk. Ugh. Redundant code removed. It wasn't harmful. Just dumb.
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@122128 f38db490-d61c-443f-a65b-d21fe96a405b
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r122046 | murf | 2008-06-12 07:47:34 -0600 (Thu, 12 Jun 2008) | 37 lines
(closes issue #10668)
Reported by: arkadia
Tested by: murf, arkadia
Options added to forkCDR() app and the CDR() func to
remove some roadblocks for CDR applications.
The "show application ForkCDR" output was upgraded
to more fully explain the inner workings of forkCDR.
The A option was added to forkCDR to force the
CDR system to NOT change the disposition on the
original CDR, after the fork. This involves
ast_cdr_answer, _busy, _failed, and so on.
The T option was added to forkCDR to force
obedience of the cdr LOCKED flag in the
ast_cdr_end, all the disposition changing
funcs (ast_cdr_answer, etc), and in the
ast_cdr_setvar func.
The CHANGES file was updated to explain ALL
the new options added to satisfy this bug report
(and some requests made verbally and via
email, irc, etc, over the past months/year)
The 's' option was added to the CDR() func,
to force it to skip LOCKED cdr's in the
chain.
Again, the new options should be totally transparent
to existing apps! Current behavior of CDR,
forkCDR, and the rest of the CDR system should
not change one little bit. Until you add the
new options, at least!
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@122091 f38db490-d61c-443f-a65b-d21fe96a405b
This commit merges in the rest of the code needed to support distributed device
state. There are two main parts to this commit.
Core changes:
- The device state handling in the core has been updated to understand device
state across a cluster of Asterisk servers. Every time the state of a device
changes, it looks at all of the device states on each node, and determines the
aggregate device state. That resulting device state is what is provided to
modules in Asterisk that take actions based on the state of a device.
New module, res_ais:
- A module has been written to facilitate the communication of events between
nodes in a cluster of Asterisk servers. This module uses the SAForum AIS
(Service Availability Forum Application Interface Specification) CLM and EVT
services (Cluster Management and Event) to handle this task. This module
currently supports sharing Voicemail MWI (Message Waiting Indication) and
device state events between servers. It has been tested with openais, though
other implementations of the spec do exist.
For more information on testing distributed device state, see the following doc:
- doc/distributed_devstate.txt
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@121559 f38db490-d61c-443f-a65b-d21fe96a405b
where the entered phone number is checked.
You can now define a set of extensions/exten patterns that describe
valid phone numbers. PrivacyManager will check that context for a match
with the given phone number.
This way you get better control. For example people blindly hitting
10 digits just to get past privacymanager
Example line in extensions.conf:
exten => incoming,n,PrivacyManager(3,10,,route-outgoing)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@121197 f38db490-d61c-443f-a65b-d21fe96a405b
a dynamic realtime queue member is added to the queue, and the
REMOVEMEMBER event is logged when a dynamic realtime member is
removed. Since no calling channel is associated with these events
the string "REALTIME" is placed where the channel's unique id is
normally placed.
(closes issue #12774)
Reported by: atis
Patches:
queue_log_rt_members.patch uploaded by atis (license 242)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@120166 f38db490-d61c-443f-a65b-d21fe96a405b
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r118646 | file | 2008-05-28 11:23:34 -0300 (Wed, 28 May 2008) | 4 lines
Add an option to use the source IP address of RTP as the destination IP address of UDPTL when a specific option is enabled. If the remote side is properly configured (ports forwarded) then UDPTL will flow.
(closes issue #10417)
Reported by: cstadlmann
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@118647 f38db490-d61c-443f-a65b-d21fe96a405b
If a deadlock is detected, then the typical lock information will be
printed along with a backtrace of the stack for the offending threads.
Use of this requires compiling with DETECT_DEADLOCKS and having glibc
installed.
Furthermore, issuing the "core show locks" CLI command will print the
normal lock information as well as a backtraces for each lock. This
requires that DEBUG_THREADS is enabled and that glibc is installed.
All the backtrace features may be disabled by running the configure
script with --without-execinfo as an argument
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@118173 f38db490-d61c-443f-a65b-d21fe96a405b
If you give chanisavail a list of channels, it will only
return the first available channel.
When this option is set, it will return all the available
channels from the given list.
(closes issue #12248)
Reported by: dagmoller
Patches:
app_chanisavail-snv.patch-v2.txt uploaded by dagmoller (license 436)
- major changes by me because russellb pointed out some buffer overflows
and codeguideline issues.
Converted it all to the ast_str_* api
Tested by: dagmoller, mvanbaak
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@118101 f38db490-d61c-443f-a65b-d21fe96a405b
(closes issue #12705)
Reported by: ctooley
Patches:
new_externalivr_argument_format-v2.diff uploaded by ctooley (license 136)
new_externalivr_documentation.diff uploaded by ctooley (license 136)
and a few additional fixes by me
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@117725 f38db490-d61c-443f-a65b-d21fe96a405b
'unknown', and better document the use of each parameter.
(closes issue #12633)
Reported by: tzafrir
Patches:
pridialplan_unknown_2.diff uploaded by tzafrir (license 46)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@117182 f38db490-d61c-443f-a65b-d21fe96a405b
press DTMF digits to switch between spying modes. Pressing 4 activates spy mode,
pressing 5 activates whisper mode, and pressing 6 activates barge mode. Use of
this feature overrides the normal operation of DTMF numbers.
This feature is courtesy of Switchvox.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@116522 f38db490-d61c-443f-a65b-d21fe96a405b
marked "urgent" are considered to be higher priority than other messages
and so they will be played before any other messages in a user's mailbox.
There are two ways to leave an urgent message.
1. send the 'U' option to VoiceMail().
2. Set review=yes in voicemail.conf. This will give instructions for
a caller to mark a message as urgent after the message has been recorded.
I have tested that this works correctly with file and ODBC storage, and James
Rothenberger (who wrote initial support for this feature) has tested its use
with IMAP storage.
(closes issue #11817)
Reported by: jaroth
Based on branch http://svn.digium.com/svn/asterisk/team/jrothenberger/asterisk-urgent
Tested by: putnopvut, jaroth
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@115588 f38db490-d61c-443f-a65b-d21fe96a405b
This commit adds some new features to the SMDI_MSG_RETRIEVE() dialplan function.
Previously, this function only allowed searching by the forwarding station.
I have added some options to allow you to also search for messages in the queue
by the message desk terminal ID, as well as the message desk number.
This originally came up as a suggestion on the asterisk-dev mailing list.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@115021 f38db490-d61c-443f-a65b-d21fe96a405b
and denoising to a channel, AGC() and DENOISE(). Also included, is a change
to the audiohook API to add a new function (ast_audiohook_remove) that can
remove an audiohook from a channel before it is detached.
This code is based on a contribution from Switchvox.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@114926 f38db490-d61c-443f-a65b-d21fe96a405b
to announce-position, "limit" and "more," as well as a new option,
announce-position-limit. For more information on the use of these options,
see CHANGES or configs/queues.conf.sample.
(closes issue #10991)
Reported by: slavon
Patches:
app_q.diff uploaded by slavon (license 288)
Tested by: slavon, putnopvut
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@114906 f38db490-d61c-443f-a65b-d21fe96a405b
party to be spoken instead of the channel name or number.
This was accomplished by adding a new function pointer to point to a function in app_voicemail
which retrieves the name file and plays it. This makes for an easy way that applications may play
a user's name should it be necessary. app_directory, in particular, can be simplified greatly by
this change.
This change comes as a suggestion from Switchvox, which already has this feature. AST-23
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@114813 f38db490-d61c-443f-a65b-d21fe96a405b
barge on the call. It is like the existing whisper option, except that
it allows the spy to talk to both sides of the conversation on which
he is spying.
This feature has existed in Switchvox, and this merges the functionality
into Asterisk.
(AST-32)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@114678 f38db490-d61c-443f-a65b-d21fe96a405b
a custom client name. Using the channel name is still the default. This was done
at the request of Jared Smith.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@114533 f38db490-d61c-443f-a65b-d21fe96a405b