Sean Bright [Mon, 28 Dec 2009 12:43:36 +0000 (12:43 +0000)]
Avoid a crash with large numbers of MeetMe conferences.
Similar to changes made to Queue(), when we have large numbers of conferences in
meetme.conf (1000s) and we use alloca()/strdupa(), we can blow out the stack and
crash, so instead just use a single fixed buffer.
David Vossel [Tue, 22 Dec 2009 16:58:19 +0000 (16:58 +0000)]
fixes issue with p->method incorrectly set to ACK
It is possible for a second ACK to come in for a retransmitted message.
If an ack does not match an unacked message in our queue, restore the previous
p->method as this ACK is completely ignored.
Jeff Peeler [Mon, 21 Dec 2009 19:43:41 +0000 (19:43 +0000)]
Change Monitor to not assume file to write to does not contain pathing.
227944 changed the fname_base argument to always append the configured monitor
path. This change was necessary to properly compare files for uniqueness.
If a full path is given though, nothing needs to be appended and that is
handled correctly now.
Tilghman Lesher [Mon, 21 Dec 2009 16:45:03 +0000 (16:45 +0000)]
Send parking lot announcement to the channel which parked the call, not the park-ee.
(closes issue #16234)
Reported by: yeshuawatso
Patches:
20091210__issue16234.diff.txt uploaded by tilghman (license 14)
20091221__issue16234__1.4.diff.txt uploaded by tilghman (license 14)
Tested by: yeshuawatso
Jeff Peeler [Fri, 18 Dec 2009 22:29:51 +0000 (22:29 +0000)]
Correct CDR dispositions for BUSY/FAILED
This patch is simple in that it reorders the disposition defines so that the fix
for issue 12946 works properly (the default CDR disposition was changed to
AST_CDR_NOANSWER). Also, the AST_CDR_FLAG_ORIGINATED flag was set in ast_call to
ensure all CDR records are written.
The side effects of CDR changes are scary, so I'm documenting the test cases
performed to attempt to catch any regressions. The following tests were all
performed using 1.4 rev 195881 vs head (235571) + patch:
A calls B
C calls B (busy)
Hangup C
Hangup A
(Both SIP and features)
A calls B
A blind transfers to C
Hangup C
(Both SIP and features)
A calls B
A attended transfers to C
Hangup C
A calls B
A attended transfers to C (SIP)
C blind transfers to A (features)
Hangup A
All of the test scenario CDRs matched.
The following tests were performed just with the patch to ensure proper operation
(with unanswered=yes):
Tilghman Lesher [Thu, 17 Dec 2009 17:17:51 +0000 (17:17 +0000)]
Use context from which Macro is executed, not macro context, if applicable.
Also, ensure that the extension COULD match, not just that it won't match more.
(closes issue #16113)
Reported by: OrNix
Patches:
20091216__issue16113.diff.txt uploaded by tilghman (license 14)
Tested by: OrNix
Tilghman Lesher [Mon, 14 Dec 2009 21:09:56 +0000 (21:09 +0000)]
Deal with the situation where .flavor exists but .version does not.
Also make the script slightly more portable, in keeping with autoconf syntax.
(closes issue #14737)
Reported by: davidw
Olle Johansson [Mon, 14 Dec 2009 10:16:00 +0000 (10:16 +0000)]
Stop sending 183's after call hangup.
There where still cases where the 183 keep-alive mechanism would not stop
sending 183's even though the Asterisk server had sent a final reply to
the invite.
Jeff Peeler [Fri, 11 Dec 2009 22:37:21 +0000 (22:37 +0000)]
Fix talking detection status after conference user is muted.
This patch ensures that when a conference user is muted that the accompanying
AMI Meetme talking off event is sent. Also, the meetme list output is updated
to show the muted user as unmonitored.
Leif Madsen [Thu, 10 Dec 2009 15:49:12 +0000 (15:49 +0000)]
Update chan_spy documentation.
Update the documentation in ChanSpy and ExtenSpy to reflect that only a
single group can be specified to the g() option.
Russell Bryant [Wed, 9 Dec 2009 15:14:21 +0000 (15:14 +0000)]
Set a module load priority for format modules.
A recent change to app_voicemail made it such that the module now assumes that
all format modules are available while processing voicemail configuration.
However, when autoloading modules, it was possible that app_voicemail was
loaded before the format modules. Since format modules don't depend on
anything, set a module load priority on them to ensure that they get loaded
first when autoloading.
This version of the patch is specific to Asterisk 1.4 and 1.6.0. These versions
did not already support module load priority in the module API. This adds a
trivial version of this which is just a module flag to include it in a pass before
loading "everything".
Thanks to mmichelson for the review!
(closes issue #16412)
Reported by: jiddings
Tested by: russell
Russell Bryant [Fri, 4 Dec 2009 17:12:47 +0000 (17:12 +0000)]
Only do frame payload check for HOLD frames.
This code was added for helping to debug the source of invalid HOLD frames.
However, a side effect of this is that it will incorrectly report errors for
frames that have an integer payload. Make the check for this block specific
to the HOLD frame case.
Matthias Nick [Fri, 4 Dec 2009 15:17:03 +0000 (15:17 +0000)]
Warning message gets displayed only once
Added additional field 'int display_inband_dtmf_warning', which when set to '1' displays the warning ('Inband DTMF is not supported on codec %s. Use RFC2833'), and when set to '0' doesn't display the warning. Otherwise you would get hundreds of warnings every second.
Tilghman Lesher [Thu, 3 Dec 2009 20:10:19 +0000 (20:10 +0000)]
Deprecate "cz" in favor of "cs".
Also, change the use of language codes so that language registers as a prefix,
rather than an exact match.
(closes issue #16272)
Reported by: patrol-cz
Patches:
20091203__issue16272.diff.txt uploaded by tilghman (license 14)
Jeff Peeler [Tue, 1 Dec 2009 21:29:31 +0000 (21:29 +0000)]
Fix crash with invalid frame data
The crash was happening as a result of a frame containing an invalid data
pointer, but was set with data length of zero. The few times the issue was
reproduced it _seemed_ that the frame was queued properly, that is the data
pointer was set to NULL. I never could reproduce the crash so as a last resort
the crash has been fixed, but a check in __ast_read has been added to give as
much information about the source of problematic frames in the future.
Remove duplicate entries from voicemail format lists. This prevents app_voicemail from entering an infinite loop when the same format is specified twice in the format list.
David Vossel [Mon, 30 Nov 2009 16:32:58 +0000 (16:32 +0000)]
app_queue crashes randomly, often during call-transfers
In app_queue, it is possible for a call_queue to be destroyed
while another object still holds a pointer to it. This patch
converts call_queue objects to ao2 objects allowing them to be
ref counted. This makes it safe for the queue_ent object in
queue_exec() to reference it's parent call_queue even after it
has left the queue.
Kevin P. Fleming [Mon, 23 Nov 2009 15:31:02 +0000 (15:31 +0000)]
When 'sip set debug' is enabled, and the last line of an incoming SIP message
is not properly newline terminated, ensure that that line is included in the
debug output.
Copy the peer CDR's userfield to the bridge CDR if it exists. This is necessary for the recordagentcalls option in chan_agent to store the recorded file name in the bridge CDR.
Tilghman Lesher [Tue, 10 Nov 2009 22:09:16 +0000 (22:09 +0000)]
If two pattern classes start with the same digit and have the same number of characters, they will compare equal.
The example given in the issue report is that of [234] and [246], which have
these characteristics, yet they are clearly not equivalent. The code still
uses these two characteristics, yet when the two scores compare equal, an
additional check will be done to compare all characters within the class to
verify equality.
(closes issue #15421)
Reported by: jsmith
Patches:
20091109__issue15421__2.diff.txt uploaded by tilghman (license 14)
Tested by: jsmith, thedavidfactor
Joshua Colp [Tue, 10 Nov 2009 20:03:14 +0000 (20:03 +0000)]
Remove broken support for direct transcoding between G.726 RFC3551 and G.726 AAL2.
On some systems the translation core would actually consider g726aal2 -> g726 -> signed linear
to be a quicker path then g726aal2 -> signed linear which exposed this problem.
David Ruggles [Tue, 10 Nov 2009 17:23:59 +0000 (17:23 +0000)]
Document ExternalIVR event tag collision
ExternalIVR uses the D tag for two different event types. This documents that
behavior and how to differentiate between the two cases. Also includes a minor
spelling fix and clarification
David Vossel [Fri, 6 Nov 2009 22:33:27 +0000 (22:33 +0000)]
fixes audiohook write crash occuring in chan_spy whisper mode.
After writing to the audiohook list in ast_write(), frames
were being freed incorrectly. Under certain conditions this
resulted in a double free crash.
David Vossel [Fri, 6 Nov 2009 17:07:13 +0000 (17:07 +0000)]
fixes segfault in iLBC
For reasons not yet known, it appears possible for an ast_frame
to have a datalen greater than zero while the actual data is NULL
during Packet Loss Concealment. Most codecs don't support PLC so
this doesn't affect them. This patch catches the malformed frame
and prevents the crash from occuring. Additional efforts to determine
why it is possible for a frame to look like this are still being
investigated.
David Brooks [Thu, 5 Nov 2009 18:59:41 +0000 (18:59 +0000)]
chan_misdn Asterisk 1.4.27-rc2 crash
Crash related to chan_misdn connection. Patch submitted by gknispel_proformatique, tested
by francesco_r. "I have many crash since i have upgraded to Asterisk 1.4.27-rc2. Attached
a full bt." This patch zeros out an ast_frame.
Jeff Peeler [Wed, 4 Nov 2009 23:47:08 +0000 (23:47 +0000)]
Fix incorrect filename comparsion after monitor file change
The logic to detect if a requested file is indeed a different file from the
current file was incorrect. The main issue being confusion of the use of
filename_base which was previously set without pathing information and then
compared to another full path. Robust file comparison logic has been added
to properly check if two files are the same even if symlinks are used.
(closes issue #15313)
Reported by: caspy
Patches:
20091103__issue15313__1.4.diff.txt uploaded by jpeeler (license 325)
but mostly tilghman's work
Modify the SDP parsing code to parse session and media level items separately.
With the new code, media level proprieties should no longer be confused with session level proprieties. This change also reorganizes some of the SDP parsing code which should make it easier to manage in the future.
Joshua Colp [Wed, 4 Nov 2009 19:17:39 +0000 (19:17 +0000)]
Fix a security issue where sending a REGISTER with a differing username in the From
URI and Authorization header would reveal whether it was valid or not.
David Brooks [Mon, 2 Nov 2009 20:52:53 +0000 (20:52 +0000)]
SIP channel name uniqueness
SIP channel names were supposed to be unique by way of a name suffix derived from the
pointer to the channel's private data. Uniqueness was preserved on 32-bit systems, but
not on 64-bit systems. This patch, as suggested by kpfleming, replaces this suffix with
a simple incremented unsigned int.
Joshua Colp [Mon, 2 Nov 2009 18:08:11 +0000 (18:08 +0000)]
Fix a bug where the recorded privacy introduction file would not get removed if the caller hung up
while the called party had not yet answered.
This was fixed by introducing an argument to the 'n' option which, when enabled, removes the introduction
file under all scenarios. This was done to preserve the behavior that has existed for quite some time.
Tilghman Lesher [Mon, 2 Nov 2009 17:14:20 +0000 (17:14 +0000)]
Don't allow two separate instances of safe_asterisk when restarting from the init script.
(closes issue #14562)
Reported by: davidw
Patches:
Initially 20091022__issue14562.diff.txt uploaded by tilghman (license 14)
Modified to 20091030__Issue14562_diff.txt uploaded by davidw (license 780)
Tested by: davidw
Leif Madsen [Wed, 28 Oct 2009 20:06:13 +0000 (20:06 +0000)]
Update documentation in sip.conf.sample.
Update the documentation in sip.conf.sample in order to make it more clear
that directmedia/canreinvite do not cause Asterisk to ignore reINVITEs. It
is only used to stop Asterisk from generating a reINVITE, but does not stop
it from accepting them if necessary.
Tilghman Lesher [Tue, 27 Oct 2009 20:16:49 +0000 (20:16 +0000)]
Manager output is not always NULL-terminated, so force a NULL at the end of the filestream.
(closes issue #15495)
Reported by: pdf
Patches:
20090916__issue15495.diff.txt uploaded by tilghman (license 14)
Tested by: pdf