Revert attempt to standardize with _POSIX_C_SOURCE.
This did not function in the way that was intended, causing more compatibility
issues than it solved. It is best, therefore, that it be simply removed.
(Discussed with kpfleming; agreement to remove was reached.)
Re-send non-100 provisional responses to prevent cancellation
From section 13.3.1.1 of RFC 3261:
If the UAS desires an extended period of time to answer the INVITE,
it will need to ask for an "extension" in order to prevent proxies
from canceling the transaction. A proxy has the option of canceling
a transaction when there is a gap of 3 minutes between responses in a
transaction. To prevent cancellation, the UAS MUST send a non-100
provisional response at every minute, to handle the possibility of
lost provisional responses.
David Vossel [Wed, 2 Sep 2009 21:39:31 +0000 (21:39 +0000)]
port string to int conversion using sscanf
There are several instances where a port is parsed
from a uri or some other source and converted to
an int value using atoi(), if for some reason the
port string is empty, then a standard port is used.
This logic is used over and over, so I created a function
to handle it in a safer way using sscanf().
- lock channel before looking for a channel variable
- Init the parkings list member of struct parkinglot.
Thanks Sean for the explanation why this should be here.
Fix issue where DTMF CID detect was placing channels into signed linear mode
made analog_set_linear_mode return back the mode that was being overwritten
so it could be restored later.
Close up to the soft open file limit (same on Linux, but varies drastically on OS X).
Also, a Makefile fix for Darwin (OS X).
(closes issue #14542)
Reported by: jtodd
Patches:
20090901__issue14542.diff.txt uploaded by tilghman (license 14)
Tested by: jtodd, tilghman
Change-type: bugfix
David Vossel [Wed, 2 Sep 2009 17:26:40 +0000 (17:26 +0000)]
SIP uri parsing cleanup
Now, the scheme passed to parse_uri can either be a
single scheme, or a list of schemes ',' delimited.
This gets rid of the whole problem of having to create
two buffers and calling parse_uri twice to check for
separate schemes.
like in chan_sip's sip_new skinny should copy the configured parkinglot from a line to the newly created channel.
This makes callparking honor the configured parkinglot for skinny lines as well.
David Vossel [Wed, 2 Sep 2009 16:08:00 +0000 (16:08 +0000)]
SIP support for keep-alive event
keep-alive events are used by Sipura/Linksys for NAT keepalive.
There currently don't appear to be any problems with NAT, but
everytime a keep-alive event is received, Asterisk responds with a
"489 Bad event". This error may indicate to a user that NAT
problems exist just because this even is not supported. Now,
rather than respond with an error, the packet is consumed and
a "200 ok" is sent just to indicate we received the packet.
(issue #15084)
Patches:
chan_sip.keepalive.v1.diff uploaded by IgorG (license 20)
Honor configured parkinglot when parking and retrieving parked calls
Thank oej for pointing out the fact that sip_new did not copy parkinglot from the peer
into the newly created channel.
(closes issue #15538)
Reported by: gracedman
Patches:
2009090100_sipnewparkinglot-161.diff.txt uploaded by mvanbaak (license 7)
With mod by me to also fix callparking as well (this uploaded patch only fixed retrieving a parked call)
Tested by: gracedman, mvanbaak
Use strrchr() so SoftHangup will correctly truncate multi-hyphen channel names
In general channel names are in the form Foo/Bar-Z, but the channel name
could have multiple hyphens and look like Foo/B-a-r-Z. Use strrchr to
truncate the channel name at the last hyphen.
Russell Bryant [Tue, 1 Sep 2009 20:44:13 +0000 (20:44 +0000)]
Fix memory corruption caused by format_mp3.
format_mp3 claimed that it provided AST_FRIENDLY_OFFSET in frames returned by
read(). However, it lied. This means that other parts of the code that
attempted to make use of the offset buffer would end up corrupting the fields
in the ast_filestream structure. This resulted in quite a few crashes due to
unexpected values for fields in ast_filestream.
This patch closes out quite a few bugs. However, some of these bugs have been
open for a while and have been an area where more than one bug has been
discussed. So with that said, anyone that is following one of the issues
closed here, if you still have a problem, please open a new bug report for the
specific problem you are still having. If you do, please ensure that the bug
report is based on the newest version of Asterisk, and that this patch is
applied if format_mp3 is in use. Thanks!
Also unlock the "other" channel, when returning, due to glare.
(closes issue #15787)
Reported by: tim_ringenbach
Patches:
chan_local.diff uploaded by tim ringenbach (license 540)
Tested by: tim_ringenbach
........
Tilghman Lesher [Sun, 30 Aug 2009 18:37:17 +0000 (18:37 +0000)]
Various patches, to enable Asterisk to once again compile on Mac OS X.
One note on defining _POSIX_C_SOURCE: while this feature test macro
works to require certain behaviors on Linux, it works differently on *BSD
platforms to REMOVE certain API calls that are not in the POSIX specification,
such as vasprintf(3). Thus, defining it while depending upon vasprintf (and
other extensions to the POSIX standard) to be defined is a recipe to ensure
that Asterisk is only buildable on Linux.
Hence, this define which was meant to INCREASE portability, effectively
ensures the opposite.
Tilghman Lesher [Sun, 30 Aug 2009 06:43:04 +0000 (06:43 +0000)]
If lua is detected with the lua5.1 prefix (or not), adjust the include path accordingly.
Based upon feedback to a release announcement on the -users list. See
http://lists.digium.com/pipermail/asterisk-users/2009-August/236954.html
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.