The PickupChan uses the ampersand as the argument separator.
Was documented as:
PickupChan(channel[,channel2[,...][,options]])
Fixed documentation to:
PickupChan(Technology/Resource[&Technology2/Resource2[&...]][,options])
This is a continuation of ASTERISK-17494 for v1.8 and later.
(closes issue ASTERISK-18144)
Reported by: Erik Smith
Patches:
pickupchan_ducumentation-v2.patch (License #6263) patch uploaded by Erik Smith
Tested by: Erik Smith
........
The functionality of inband DTMF in chan_sip relied upon
ast_rtp_instance_dtmf_mode_get/set not working properly to avoid calling
ast_rtp_instance_dtmf_begin/end on RTP streams with inband DTMF. According to
documentation, ast_rtp_instance_dtmf_begin/end is meant only for RFC2833 DTMF,
never inband. This fixes the regression introduced in revision 328823.
........
Revert partial attempt at handling pathnames with spaces.
Revision 299794 attempted to improve the build system to be able to handle
pathnames (primarily DESTDIR) with spaces in them, since this is common on
some platforms (including Mac OSX). Unfortunately, the changes were incomplete
and did not actually provide the desired behavior, and as a side effect the
functionality that ensured that stale headers in the Asterisk 'include' directory
were removed got broken. In addition, the check for stale (and possibly
incompatible) modules in the Asterisk 'modules' directory also got broken, and
would never report any stale modules. Users upgrading to this version or later
versions would then see unexpected module load errors.
Since there are few users who actually want to install Asterisk into paths
that contain spaces, and a proper fix for the build system would take many hours,
the best solution for now is to just revert the partial solution.
........
RTP bridge away with inband DTMF and feature detection
When deciding whether Asterisk was allowed to bridge the call away from the
core, chan_sip did not take into account the usage of features on dialed
channels that require monitoring of DTMF on channels utilizing inband DTMF.
This would cause Asterisk to allow the call to be locally or remotely bridged,
preventing access to the data required to detect activations of such features.
If a call to MeetMe includes both the dynamic(D) and always request PIN(P)
options, MeetMe will ask for the PIN two times: once for creating the
conference and once for entering the conference. This behavior was introduced
in rev 311616 when adding the CONFFLAG_ALWAYSPROMPT option to the logic branch
controlling PIN entry for joining a conference.
When starting a call with originate, and having the callee channel run Bridge() on pickup, we will double free the dialed_interface_info datastore, causing a crash. Make sure to check if the datastore still exists before trying to free it.
(closes issue ASTERISK-17917)
Reported by: Mark Murawski
Tested by: Mark Murawski
........
small gk processing fixes:
- decrease for 1 second registration ttl for very low expirations (some
providers expire few earlier than TTL)
- delete rrq and registration expire timers on URQ received as we make
new registration.
........
Introduce <support_level> tags in MODULEINFO.
This change introduces MODULEINFO into many modules in Asterisk in order to show
the community support level for those modules. This is used by changes committed
to menuselect by Russell Bryant recently (r917 in menuselect). More information about
the support level types and what they mean is available on the wiki at
https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States
........
David Vossel [Wed, 13 Jul 2011 22:09:34 +0000 (22:09 +0000)]
Preserve sample rate quality of wideband mixmonitor recordings.
MixMonitor has the ability to record in any file format Asterisk supports,
but the quality of wideband audio is not preserved. This is because
regardless of the sample rate the call is being recorded in, the audio
is always downsampled to 8khz and then upsampled to whatever wideband
format it is being written as. This patch resolves this by requesting
the audio from the audiohook in the signed linear format closest to the
sample rate of the format we are writing. This fix is only possible for
Asterisk 1.10 because audio hooks in 1.8 are not capable of wideband
audio.
Correct double-free situation in manager output processing.
The process_output() function calls ast_str_append() and xml_translate() on its
'out' parameter, which is a pointer to an ast_str buffer. If either of these
functions need to reallocate the ast_str so it will have more space, they will
free the existing buffer and allocate a new one, returning the address of the
new one. However, because process_output only receives a pointer to the ast_str,
not a pointer to its caller's variable holding the pointer, if the original
ast_str is freed, the caller will not know, and will continue to use it (and
later attempt to free it).
Added additional checks for mailbox / password beginning with '*' character
A bug existed such that if a user entered a password with '*', and the extension 'a' did not exist, an invalid mailbox would be created and the user authenticated. The code was changed to prevent this from occurring, and to prevent users from having mailboxes or passwords defined that begin with the '*' character.
(closes issue ASTERISK-17443)
Reported by: Kevin Scott Adams
Tested by: Matt Jordan
Use 'printf' (POSIX issue 4) instead of 'echo -n', for portability.
The problem with using 'echo -n' is that it is not portable. While BSD systems
required that the '-n' option be removed and interpreted, System V required
that all strings should be echoed with no interpretation of options. This
fundamental difference of behavior means that it is never possible to use the
'-n' flag to echo in tests which are meant to be portable.
In this case, on Mac OS X 10.6, the /bin/sh shell builtin 'echo' uses the
System V semantics of the command, and thus the SHELL test failed on that
platform.
Kinsey Moore [Tue, 12 Jul 2011 14:40:16 +0000 (14:40 +0000)]
Segfault on shutdown when confbridge is active
When undergoing a shutdown and channels are kicked out of a bridge, a segfault
occurs because ConfBridge tries to play sounds on the bridge after the
underlying channels have been blown away due to the shutdown.
Update chan_gtalk to work with changed GMail-based calls
The messages sent by the GMail client have changed, but include the
old-style messages as well. This patch checks for this case and
uses the old-style offer.
David Vossel [Mon, 11 Jul 2011 18:44:06 +0000 (18:44 +0000)]
Updates follow_talker video_mode in confbridge application.
follow_talker mode originally echoed the same video stream
to all participants. As the primary talker switched around, the
video stream would result in the talker seeing themselves. Now
the primary talker sees the last person who was talking rather than
themselves.
Alexandr Anikin [Sun, 10 Jul 2011 01:37:58 +0000 (01:37 +0000)]
Full T.38 handshaking and fax detection
Add full t.38 handshaking for OOH323 that are required for newest T.38
gateway codes.
Add fax detection (cng tone, t38) and dialplan redirection to fax ext on
fax event detected.
Add OOH323() function to set/get t38support and faxdetect parameters.
INVITE 403 Forbidden response always retransmits the maximum times.
Asterisk sends a 403 Forbidden response if authentication fails for an
INVITE as required. However, it ignores the ACK and keeps retransmitting
the response.
* Made not delete the to-tag in the dialog so the expected ACK can be
matched with the dialog and stop the retransmissions.
........
Reset our ast_str before passing it on to dialplan function backends.
It is possible for a dialplan backend to not modify the given buffer or ast_str
and still return success. This causes any previous value stored in the buffer
to be used as if the new function call provided it. Some functions also append
to the given buffer assuming it is empty.
The test_substitution unit test has also been modified to detect this problem.
David Vossel [Thu, 7 Jul 2011 19:39:17 +0000 (19:39 +0000)]
Adds pass-through support for codec CELT.
This patch adds pass-through support for CELT. CELT
formats are defined in codecs.conf and can be configured
to any sample rate a CELT endpoint supports. This patch also
addresses a crash in channel.c resulting from a frame list being
freed incorrectly. This crash was discovered while testing a CELT
translator which had to split encoded audio into multiple frames.
The codec translator is not a part of this patch, but may be
contributed in the future.
res_odbc patch by tilghman to fix integers with null values
Addresses some improper sql statements in res_odbc that would cause an update to fail on
realtime peers due to trying to set as "(NULL)" rather than an actual NULL.
Adds a new sub-command, "valgrind" to live_ast. It runs asterisk under
valgrind. The extra command-line parameters are passed to Asterisk as
usual, and parameters to valgrind are passed through LIVE_AST_VALGRIND_ARGS
in live.conf .
Terry Wilson [Wed, 6 Jul 2011 20:58:12 +0000 (20:58 +0000)]
Replace Berkeley DB with SQLite 3
There were some bugs in the very ancient version of Berkeley DB that Asterisk
used. Instead of spending the time tracking down the bugs in the Berkeley code
we move to the much better documented SQLite 3.
Conversion of the old astdb happens at runtime by running the included
astdb2sqlite3 utility. The ast_db API with SQLite 3 backend should behave
identically to the old Berkeley backend, but in the future we could offer a
much more robust interface.
We do not include the SQLite 3 library in the source tree, but instead rely
upon the distribution-provided libraries. SQLite is so ubiquitous that this
should not place undue burden on administrators.
jrose discovered a performance issue with this
fix that prevents his analog phones from working
when using timerfd as a timing source. Until
it is understood what is causing this performance
problem, this patch is being reverted.
........
Add the attribute "type" to each "<use>" for menuselect.
This matters only when autoconf fails to detect that weak linking is supported.
External optional dependencies will become optional in both cases, as they are
removed at compile time when not detected. However, runtime-optional modules
are made mandatory when weak linking is not found. This change affects only
the external optional dependencies; previously, they were incorrectly required
when weak linking support was not detected.
Patches:
20110702__issue18062__asterisk_trunk.diff.txt by tilghman (License #5003)
Updated filestream destructor to block until move is complete when cache is used
When a cache directory is used, the process is forked and a mv command is executed to move the temporary file to the permanent location. This caused issues with voicemail, where a race condition occurred when the parent expected the file to be in the permanent location prior to the mv command completing. The parent process is now blocked until the mv command completes.
Better way to get chan and pvt lock for issue ASTERISK-17431.
Redoes -r308945 for issue ASTERISK-17431 deadlock fix for
sip_set_udptl_peer() and sip_set_rtp_peer().
* Lock the channels in the defined order and avoid the need for a deadlock
avoidance loop.
* Lock the channel before getting the pointer to the private structure to
be sure that the pointer will not change due to a masquerade or channel
hangup.
* To preserve sanity, check that chan and p->owner are the same. (Pointer
rearangements should not happen without the protection of locks because
bad things tend to happen otherwise.)
........
Fax gateway functionality (i.e. translating between a T.30 terminal and a T.38
terminal). Can be enabled on a channel by setting FAXOPT(gateway)=yes in the
dialplan.
Big thanks to irroot for porting this code to use the framehooks api.
chan_sip: cleanup from the introduction of ast_str
Remove the length field from sip_req and sip_pkt in chan_sip since they are
redundant (ast_str holds its own length) and refactor the necessary functions.
Response to QueueRule manager command does not contain ActionID if it was specified.
* Add ActionID support as documented for the QueueRule AMI action.
* Remove documentation for ActionID with the Queues AMI action. The
output does not follow normal AMI response output and there is no place to
put an ActionID header.
Gregory Nietsky [Wed, 29 Jun 2011 06:39:26 +0000 (06:39 +0000)]
Commit "distrotech" app_queue changes to Trunk
* Added general option negative_penalty_invalid default off. when set
members are seen as invalid/logged out when there penalty is negative.
for realtime members when set remove from queue will set penalty to -1.
* Added queue option autopausedelay when autopause is enabled it will be
delayed for this number of seconds since last successful call if there
was no prior call the agent will be autopaused immediately.
* Added member option ignorebusy this when set and ringinuse is not
will allow per member control of multiple calls as ringinuse does for
the Queue.
- Mark QUEUE_MEMBER_PENALTY Deprecated it never worked for realtime members
- QUEUE_MEMBER is now R/W supporting setting paused, ignorebusy and penalty.