In r116240, get_msg_text() got an extra parameter to fix the unwanted
addition of trailing newlines to SIP MESSAGE bodies. This caused all
linefeeds to be trimmed, which isn't right either. This is a stop-gap;
the right fix is to return the original SIP request body.
Review: https://reviewboard.asterisk.org/r/1586
Reviewed by: Matt Jordan
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@346147 65c4cc65-6c06-0410-ace0-fbb531ad65f3
As a result of the fix for ASTERISK-18039, realtime caching MOH no longer
properly resumes playing back a file between different holds in the same call.
This is because scanning for new files causes the existing file array to be
emptied and we were just comparing that the saved pointer to the filename
matched the pointer to the filename in a particular position in the array. An
easy fix is to save the filename instead of a pointer to it and then do a
strcmp instead of comparing the addresses.
(closes issue ASTERISK-18912)
Review: https://reviewboard.asterisk.org/r/1596/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@346030 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The dnsmgr refresh would always get the first address found regardless of
the original address family requested. So if you asked for only IPv4
addresses originally, you might get an IPv6 address on refresh.
* Saved the original address family requested by ast_dnsmgr_lookup() to be
used when the address is refreshed.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@345976 65c4cc65-6c06-0410-ace0-fbb531ad65f3
It is possible to enumerate SIP usernames when the general and user/peer
nat settings differ in whether to respond to the port a request is sent
from or the port listed for responses in the Via header. In 1.4 and 1.6.2,
this would mean if one setting was nat=yes or nat=route and the other was
either nat=no or nat=never. In 1.8 and 10, this would mean when one was
nat=force_rport and the other was nat=no.
In order to address this problem, it was decided to switch the default
behavior to nat=yes/force_rport as it is the most commonly used option
and to strongly discourage setting nat per-peer/user when at all possible.
For more discussion of the issue, please see:
http://lists.digium.com/pipermail/asterisk-dev/2011-November/052191.html
(closes issue ASTERISK-18862)
Review: https://reviewboard.asterisk.org/r/1591/
........
Merged revisions 345776 from http://svn.asterisk.org/svn/asterisk/branches/1.4
........
Merged revisions 345800 from http://svn.asterisk.org/svn/asterisk/branches/1.6.2
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@345828 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Before, using the U flag in Voicemail with multiple recipients would put urgent messages
in the INBOX folder for all users past the first thanks to a bug with the message
copying function. This would also cause messages to fail to be sent if the INBOX
directory hadn't been created for that mailbox yet.
(closes issue ASTERISK-18245)
Reported by: Matt Jordan
(closes issue ASTERISK-18246)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/1589/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@345487 65c4cc65-6c06-0410-ace0-fbb531ad65f3
* Change from using send() to ast_agi_send() so the HANGUP shows up in the
AGI debug output.
(closes issue ASTERISK-18723)
Reported by: James Van Vleet
Patches:
jira_asterisk_18723_v1.8.patch (license #5621) patch uploaded by rmudgett
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@345431 65c4cc65-6c06-0410-ace0-fbb531ad65f3
It is fortunate that the typo does not alter generated code since the
e->restart.channel and e->ring.channel members are in the same position.
(closes issue ASTERISK-18868)
Reported by: zvision
Patches:
sig_pri.c.diff (License #5755) patch uploaded by zvision
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@345370 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The recent fix for ASTERISK-17288 to get RFC3578 SIP overlap support
working correctly removed a long standing ability to do overlap dialing
using DTMF in the early media phase of a call.
See ASTERISK-18702 it has a very good description of the issue.
I started with Pavel Troller's chan_sip.diff patch on issue
ASTERISK-18702.
* Added 'dtmf' enum value to sip.conf allowoverlap config option. The new
option value causes the Incomplte application to not send anything with
chan_sip so the caller can supply more digits via DTMF.
* Renames SIP_GET_DEST_PICKUP_EXTEN_FOUND to SIP_GET_DEST_EXTEN_MATCHMORE
since that is what it really means.
* Fixed get_destination() inconsistency with the pickup extension
matching.
* Fixed initialization of PAGE3 of global_flags in reload_config().
(closes issue ASTERISK-18702)
Reported by: Pavel Troller
Review: https://reviewboard.asterisk.org/r/1517/
Review: https://reviewboard.asterisk.org/r/1582/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@345273 65c4cc65-6c06-0410-ace0-fbb531ad65f3
int blah = 1;
...
write(chan->alertpipe[1], &blah, new_frames * sizeof(blah)) !=
(new_frames * sizeof(blah)))
is only valid when new_frames == 1. Otherwise we start reading into adjacent
variables declared on the stack. The read end discards what is read, so the
values don't matter but it's not a good idea to read past where we want even
though new_frames is almost always 1 and should never be large. This patch is
basically taken out of kpfleming's eventfd branch, as he mentioned that he
remembered fixing it there when I talked to him about this issue.
Review: https://reviewboard.asterisk.org/r/1583/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@345163 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The issue mentioned in the bug report had been fixed recently by
twilson. The reporter included this documentation fix.
(closes issue ASTERISK-18572)
Reported by: Richard Miller
Patch by: Richard Miller (modified)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@345160 65c4cc65-6c06-0410-ace0-fbb531ad65f3
When sip_send_mwi_to_peer was modified recently to avoid deadlocks, vmexten
was not expected to be null. This change handles that situation to avoid
a segfault.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@345063 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This change was made because forcegreeting and forcename settings in voicemail could be
circumvented by hanging up after entering a password, because the only way voicemail
currently observes whether a mailbox is new or not is by checking to see if the password
is the same as the mailbox number or not.
(closes issue ASTERISK-18282)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/1581/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@345062 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Realtime MOH class caching was implemented because without it, you would build
a completely new MOH class and would start the music over at the beginning each
time hold was pressed in a conversation. Unfortunately, this broke re-scanning
for file changes for realtime MOH classes. This patch corrects that issue.
(closes issue ASTERISK-18039)
Review: https://reviewboard.asterisk.org/r/1579/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@344899 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This patch fixes the format type check in ast_closestream and
filestream_destructor. Previously a comparison operator was used, but since
audio formats are no longer contiguous (and AST_FORMAT_AUDIO_MASK includes
formats that have a value greater than the video formats), a bitwise AND
operation is used instead. Duplicated code was also moved to filestream_close.
(closes issue ASTERISK-18682)
Reported by: Aldo Bedrij
Tested by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/1580/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@344823 65c4cc65-6c06-0410-ace0-fbb531ad65f3
If capability is adjusted when switching to UDPTL during fax transmission, fax
teardown fails. Make sure capability is only touched if RTP is active. This
regression was introduced in R344385.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@344769 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Holding the channel lock while the CLI "core show channel" command is
executing can slow down the system. It could block the system if the
console output is halted or paused.
* Made capture the CLI "core show channel" output into a buffer to be
output after the channel is unlocked.
* Removed use of C++ keyword as a variable name. out renamed to obuf.
* Checked allocation of obuf for failure so will not crash.
(closes issue ASTERISK-18571)
Reported by: Pavel Troller
Tested by: rmudgett
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@344661 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Attempting to call an extension which used Caller ID matching with a channel that
has an empty caller id string would result in a segmentation fault.
(closes issue ASTERISK-18392
Reported By: Ales Zelenik
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@344608 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Fixed app_queue.c:ring_entry() calling ast_call() with the channel locks
held. Chan_local attempts to do deadlock avoidance in its ast_call()
callback and could deadlock if a channel lock is already held.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@344539 65c4cc65-6c06-0410-ace0-fbb531ad65f3
It was strange that the AgentCalled AMI event would get most of its
information from the incoming channel but then get the CallerID
information from the outgoing channel. Before connected line support was
added, this information was always the same at this point.
(closes issue ASTERISK-18152)
Reported by: Thomas Farnham
Tested by: rmudgett
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@344536 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This fixes an issue where a user of a dynamic conference was asked for a PIN
twice. This also adds documentation to assist in future modifications to the
piece of code responsible for PIN checking.
(closes issue AST-670)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@344439 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Fix bug ASTERISK-16558 which dealt with the order of responses to incoming
streams defined by SDP.
Fix unreported bug where offering multiple same-type streams would cause
Asterisk to reply with an incorrect SDP response missing one or more streams
without a proper declination.
Fix bugs related to a single non-audio stream being offered with responses
requesting codecs that were not offered in the initial invite along with an
additional audio stream that was not in the initial invite.
Review: https://reviewboard.asterisk.org/r/1516/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@344385 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Another deadlock between the conlock/hints and channels/channel locking
orders.
* Don't hold the channel and private lock in sip_new() when calling
ast_exists_extension().
(closes issue ASTERISK-18740)
Reported by: Byron Clark
Patches:
sip_exists_exten_dlock_3.diff (license #5041) patch uploaded by Gregory Hinton Nietsky
ASTERISK-18740.patch (license #6157) patch uploaded by Byron Clark
Tested by: Byron Clark
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@344268 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The domain matching code prior to 1.8 used to manually remove the port
from the host:port string when determining if an incoming request
matched the list of domains. When switching to the new parsing
functions, the documentation implied that the "domain" was being
returned by these functions, when instead it was returning the
"hostport" as defined by RFC 3261. This led to confusion and resulted
in 1.8+ rejecting an incoming request from x.x.x.x:xxxxx when
domain=x.x.x.x was set in sip.conf.
This patch renames the "domain" variables in the parsing functions to
"hostport" to more accurately describe what it is that they are
returning and also properly truncates the resulting hostport strings
when dealing with domain matching.
Review: https://reviewboard.asterisk.org/r/1574/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@344215 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The last time this code was touched (by me), a subtlety was missed based on the
difference between needing to check a pin's validity and the need to prompt
for a pin.
(closes issue ASTERISK-18488)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@344102 65c4cc65-6c06-0410-ace0-fbb531ad65f3
"dialplan remove include x from y" crashed when the amount of arguments
was less than 6.
(closes issue ASTERISK-18762)
Reported by: Andrey Solovyev
Tested by: Andrey Solovyev
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@343936 65c4cc65-6c06-0410-ace0-fbb531ad65f3
* Fixed a LOG_ERROR message referencing the config variable list v that
had previously been processed and became NULL.
* Added error return value set that was missing in an ast_append_ha()
error return path.
(closes issue ASTERISK-18743)
Reported by: Michele
Patches:
issueA18743-fix_dynamic_exclude_static_bad_host_log.patch (license #5674) patch uploaded by Walter Doekes
Tested by: Michele
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@343851 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Changing an object value used as a container key requires removing the
object from the container and reinserting it.
* Created change_callid_pvt() to call instead of build_callid_pvt(). The
change_callid_pvt() will correctly change the dialog callid so the ao2
conainter can explicitly unlink it.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@343637 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Fix a locking inversion in sip_send_mwi_to_peer that was causing deadlocks.
This function now requires that both the peer and associated pvt be unlocked
before it is called for cases where peer and peer->mwipvt form a circular
reference.
(closes issue ASTERISK-18663)
Review: https://reviewboard.asterisk.org/r/1563/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@343621 65c4cc65-6c06-0410-ace0-fbb531ad65f3