Modify comment to be a bit more accurate.
We have kept this comment around long enough, that it's pretty clear that we're
keeping the code, because changing the code would require a pretty fundamental
architectural shift. We've also taken criticism in some quarters, because it
was believed that it was referring to the code being nasty. No, the code isn't
nasty, just the operation itself is rather odd. Fixed for eternity (probably
not).
........
Kevin P. Fleming [Fri, 28 Aug 2009 20:01:21 +0000 (20:01 +0000)]
Ensure that CFLAGS and/or LDFLAGS provided to configure script are preserved.
Cross-compilation environments want to provide 'defaults' for compiler and
linker options, and frequently do this by specifying CFLAGS and LDFLAGS in the
environment or as command-line arguments to the configure script. This patch
modifies the configure script and Makefile to preserve these settings and
ensure they are used in the build process.
Tilghman Lesher [Thu, 27 Aug 2009 21:26:37 +0000 (21:26 +0000)]
Ensure that we check for the special value CONFIG_STATUS_FILEINVALID.
(closes issue #15786)
Reported by: a_villacis
Patches:
asterisk-1.6.2.0-beta4-manager-fix-crash-on-include-nonexistent-file.patch uploaded by a villacis (license 660)
(Plus a few of my own, to catch the remaining places within manager.c where it could have been a problem)
Jeff Peeler [Wed, 26 Aug 2009 23:13:19 +0000 (23:13 +0000)]
Add two new dialplan variables when using features
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.
In ast_write(), if a channel has a list of audiohooks, those
lists are written to and the resulting frame is what ast_write()
should continue with. The problem was the returned audiohook frame
was not being handled at all, and the original frame passed
into it did not contain the mixed audio, so essentially audio
was being lost. One result of this was chan_spy's whisper
mode no longer worked. To complicate the issue, frames
passed into ast_write may either be a single frame, or a list
of frames. So, as the list of frames is processed in the
audiohook_write, the returned frames had to be added to a new
list.
Tilghman Lesher [Tue, 25 Aug 2009 22:39:51 +0000 (22:39 +0000)]
Not all versions of gnu-linux use glibc, which contains iconv. Some (especially embedded systems) don't have iconv at all.
(closes issue #15169)
Reported by: pprindeville
Tilghman Lesher [Tue, 25 Aug 2009 06:51:12 +0000 (06:51 +0000)]
DUNDILOOKUP function in 1.6 should use comma delimiters.
(closes issue #15322)
Reported by: chappell
Patches:
dundilookup-0015322.patch uploaded by chappell (license 8)
Improve error message by informing user exactly which function is missing a parethesis.
(closes issue #15242)
Reported by: Nick_Lewis
Patches:
pbx.c-funcparenthesis.patch2 uploaded by dbrooks (license 790)
pbx.c-funcparenthesis-1.4.diff uploaded by loloski (license 68)
........
Tilghman Lesher [Tue, 25 Aug 2009 02:54:07 +0000 (02:54 +0000)]
The DTD should be installed in the same path as the rest of the XML documentation.
(closes issue #15344)
Reported by: tzafrir
Patches:
makefile_appdocs_dtd.diff uploaded by tzafrir (license 46)
Jeff Peeler [Mon, 24 Aug 2009 16:43:57 +0000 (16:43 +0000)]
Fix storage of greetings when using IMAP_STORAGE
The store macro was not getting called preventing storage of IMAP greetings
at all. This has been corrected along with fixing checking if the
imapgreetings option is turned on to store the greeting in IMAP. Lastly,
the attachment filename was incorrectly using the full path instead of just
the basename, which was causing problems with retrieval of the greeting.
Kevin P. Fleming [Fri, 21 Aug 2009 21:39:51 +0000 (21:39 +0000)]
Ensure that realtime mailboxes properly report status on subscription.
This patch modifies app_voicemail's response to mailbox status subscriptions
(via the internal event system) to ensure that a subscription triggers an
explicit poll of the mailbox, so the subscriber can get an immediate cached
event with that status. Previously, the cache was only populated with the
status of non-realtime mailboxes.
Permit DEBUG_FD_LEAKS to be used with C++ source files.
(closes issue #15698)
Reported by: slavon
Patches:
20090817__issue15698.diff.txt uploaded by tilghman (license 14)
Tested by: slavon, tilghman
........
Tilghman Lesher [Thu, 20 Aug 2009 22:13:26 +0000 (22:13 +0000)]
Add original position, when logging a caller entering a queue.
(closes issue #15146)
Reported by: arabe
Patches:
asterisk-trunk.patch uploaded by arabe (license 786)
Tilghman Lesher [Wed, 19 Aug 2009 21:05:17 +0000 (21:05 +0000)]
Better parsing for the "register" line
Allows characters that are otherwise used as delimiters to be used within
certain fields (like the secret).
(closes issue #15008, closes issue #15672)
Reported by: tilghman
Patches:
20090818__issue15008.diff.txt uploaded by tilghman (license 14)
Tested by: lmadsen, tilghman
Tilghman Lesher [Wed, 19 Aug 2009 20:29:41 +0000 (20:29 +0000)]
If we have realtime caching enabled, 'sip reload' must purge users/peers, even if the config files haven't changed.
(closes issue #12869)
Reported by: bcnit
Patches:
20090819__issue12869__2.diff.txt uploaded by tilghman (license 14)
Tested by: lasko
Richard Mudgett [Tue, 18 Aug 2009 23:53:55 +0000 (23:53 +0000)]
Add COLP support to chan_dahdi/sig_pri.
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.
Tilghman Lesher [Tue, 18 Aug 2009 19:25:09 +0000 (19:25 +0000)]
Make the default extconfig.conf match entries with the sample res_mysql.conf.
This eliminates a future source of possible confusion with the configuration of
1.6.1 and higher.
Delay the creation of temporary files until we have a valid manager command to handle.
Without this patch, asterisk creates a temporary file before determining if the
specified command is valid. If invalid, we weren't properly cleaning up the file.
If more ports were specified than configured in misdn.conf a reload would crash
asterisk. The problem was the unconfigured port was using data from the
previously configured port. When the data for an unconfigured port was freed a
crash would result from the double free.
Kevin P. Fleming [Mon, 17 Aug 2009 16:25:10 +0000 (16:25 +0000)]
Define our desires for POSIX and X/OPEN API features properly.
Based on a post on the gcc-help mailing list and some subsequent reading,
we can increase our portability to various platforms by directly defining
the POSIX and X/OPEN API feature sets we wish to have available. This patch
does that, and also includes a double-check to ensure that the system
we are compiling on can actually provide the requested feature sets.
Jeff Peeler [Fri, 14 Aug 2009 22:39:11 +0000 (22:39 +0000)]
More code that somehow got left out of sig_analog
* confirmanswer option now respected
* check and set waiting for dialtone timer
* unneeded needcallerid flag removed from analog_subchannel
* ss_astchan does not need to be a void pointer
* swap_channels callback updated to trunk
* analog_hangup now resets channel to default law
Richard Mudgett [Thu, 13 Aug 2009 17:33:44 +0000 (17:33 +0000)]
Send a generic return result when we receive a CallDeflection facility message in chan_misdn.
ETSI 300-196 implies that a facility return result without arguments does
not have the operation-value. This fact implies for ETSI that you can
only use the invoke-id to match requests with responses.
This patch adds support for choosing a realm based on the domain in the From or To header in the incoming request. Eligible domains are taken from the domains list in the config file. This functionality is enabled when domainsasrealm is enabled in the config file.
Make asterisk handle 423 Interval Too Short messages better.
This change uses separate values for the acceptable minimum expiry provided by the 423 error and the expiry value stored in the configuration file. Previously, the value pulled from the configuration file would be overwritten.
(closes issue #14366)
Reported by: Nick_Lewis
Patches:
sip-expiry-fix1.diff uploaded by mnicholson (license 96)
chan_sip.c-reqexpiry.patch uploaded by Nick (license 657)
Tested by: mnicholson
Backport fix so that outbound CANCEL requests have same branch as challenged INVITEs.
There already was code present to be sure that a CANCEL will contain the same branch-id
as the INVITE it is cancelling. However, for INVITES which are challenged downstream,
this mechanism did not work properly. Now this is taken care of.
This is a backport of a fix already present in all 1.6.X branches and in trunk. It also
fixes ABE-1907.
........
Russell Bryant [Wed, 12 Aug 2009 10:11:36 +0000 (10:11 +0000)]
Always specify which RTP engine is desired for a new RTP instance.
This fixes a crash reported in #asterisk-dev where chan_mgcp unexpectedly
allocated an RTP instance from res_rtp_multicast, since by not specifying an
engine, you get the first one in the list of engines.
Richard Mudgett [Mon, 10 Aug 2009 23:21:57 +0000 (23:21 +0000)]
Encapsulate testing for which signaling styles are used by sig_pri.
Created the dahdi_sig_pri_lib_handles() function and
SIG_PRI_LIB_HANDLE_CASES macro to simplify testing for which signaling
styles are handled by sig_pri.
Russell Bryant [Mon, 10 Aug 2009 15:46:39 +0000 (15:46 +0000)]
Fix up some issues with getting a channel by "name".
Even though the get_channel_by_name() API advertised that you could search by
name or uniqueid (just as the old API did), searching by uniqueid was not
actually implemented. This patch fixes that problem.
The ast_channel_get_full() function now makes a second search attempt by
uniqueid if the parameter was a name. The channel comparison function also
now knows how to compare by unqieueid.
Finally, a bug was fixed in passing where OBJ_POINTER was being passed in some
scenarios where it should not have been.
Richard Mudgett [Fri, 7 Aug 2009 23:30:32 +0000 (23:30 +0000)]
Fixed some unsafe down cast pointer operations for sig_pri.
You cannot cast the struct dahdi_pvt.sig_pvt pointer to a specific
signaling private pointer without first checking that it is in fact
pointing to the correct signaling private structure.
QUEUE_MEMBER_LIST _really_ wants the interface name, not the membername.
This is a partial revert of revision 82590, which was an attempted cleanup,
but in reality, it broke QUEUE_MEMBER_LIST, which has always been intended
as a method by which component interfaces could be queried from the queue.
Membername isn't useful here, because that field cannot be used to obtain
further information about the member. See the documentation on
QUEUE_MEMBER_LIST, RemoveQueueMember, QUEUE_MEMBER_PENALTY, and the various
AMI commands which take a member argument for further justification.
(closes issue #15664)
Reported by: rain
Patches:
app_queue-queue_member_list.diff uploaded by rain (license 327)
........
Workaround broken T.38 endpoints that offer tiny MaxDatagram sizes.
Some T.38 endpoints treat T38FaxMaxDatagram as the maximum IFP size that should
be sent to them, rather than the maximum packet payload size. If such an
endpoint also requests UDPRedundancy as the error correction mode, we'll end
up calculating a tiny maximum IFP size, so small as to be unusable. This patch
sets a lower bound on what we'll consider the remote's maximum IFP size to be,
assuming that endpoints that do this really can accept larger packets than
they've offered to accept.
Because channel information can be accessed outside of the channel thread, we must lock the channel prior to modifying it.
(closes issue #15397)
Reported by: caspy
Patches:
20090714__issue15397.diff.txt uploaded by tilghman (license 14)
Tested by: caspy
........
Richard Mudgett [Thu, 6 Aug 2009 20:15:11 +0000 (20:15 +0000)]
Miscellaneous minor fixes to sig_analog.
* Sanity adjustments to __analog_ss_thread for sig_analog environment.
* Deleted some duplicated code.
* Fixed analog_ss_thread_start passing the wrong pointer.
Joshua Colp [Thu, 6 Aug 2009 17:47:04 +0000 (17:47 +0000)]
Accept additional T.38 reinvites after an initial one has been handled.
Discussion of this subject has yielded that it is not actually acceptable to change
T.38 parameters after the initial reinvite but declining is harsh and can cause the
fax to fail when it may be possible to allow it to continue. This patch changes things
so that additional T.38 reinvites are accepted but parameter changes ignored. This gives
the fax a fighting chance.
This patch makes some small changes to handle watchdog timeouts in a better way,
and also uses a 'cleaner' method of including the spandsp header files.
(closes issue #14769)
Reported by: andrew
Patches:
app_fax-20090406.diff uploaded by andrew (license 240)
v1-14769.patch uploaded by dimas (license 88)
Tested by: freh, deti, caspy, dimas, sgimeno, Dovid