We were passing and storing the requested format as an int instead of format_t
resulting in truncation.
(closes issue #18238)
Reported by: whizemen
Patches:
0018238_speex16.patch uploaded by whizemen (license 1143)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@302412 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
........
r302265 | jpeeler | 2011-01-18 14:13:52 -0600 (Tue, 18 Jan 2011) | 27 lines
Convert device state callbacks to ao2 objects to fix a deadlock in chan_sip.
Lock scenario presented here:
Thread 1
holds ast_rdlock_contexts &conlock
holds handle_statechange hints
holds handle_statechange hint
waiting for cb_extensionstate
Locked Here: chan_sip.c line 7428 (find_call)
Thread 2
holds handle_request_do &netlock
holds find_call sip_pvt_ptr
waiting for ast_rdlock_contexts &conlock
Locked Here: pbx.c line 9911 (ast_rdlock_contexts)
Chan_sip has an established locking order of locking the sip_pvt and then
getting the context lock. So the as stated by the summary, the operations in
thread 2 have been modified to no longer require the context lock.
(closes issue #18310)
Reported by: one47
Patches:
statecbs_ao2.mk2.patch uploaded by one47 (license 23),
modified by me
Review: https://reviewboard.asterisk.org/r/1072/
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@302266 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r302173 | rmudgett | 2011-01-18 12:07:15 -0600 (Tue, 18 Jan 2011) | 95 lines
Merged revisions 302172 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r302172 | rmudgett | 2011-01-18 12:04:36 -0600 (Tue, 18 Jan 2011) | 88 lines
Issues with DTMF triggered attended transfers.
Issue #17999
1) A calls B. B answers.
2) B using DTMF dial *2 (code in features.conf for attended transfer).
3) A hears MOH. B dial number C
4) C ringing. A hears MOH.
5) B hangup. A still hears MOH. C ringing.
6) A hangup. C still ringing until "atxfernoanswertimeout" expires.
For v1.4 C will ring forever until C answers the dead line. (Issue #17096)
Problem: When A and B hangup, C is still ringing.
Issue #18395
SIP call limit of B is 1
1. A call B, B answered
2. B *2(atxfer) call C
3. B hangup, C ringing
4. Timeout waiting for C to answer
5. Recall to B fails because B has reached its call limit.
Because B reached its call limit, it cannot do anything until the transfer
it started completes.
Issue #17273
Same scenario as issue 18395 but party B is an FXS port. Party B cannot
do anything until the transfer it started completes. If B goes back off
hook before C answers, B hears ringback instead of the expected dialtone.
**********
Note for the issue #17273 and #18395 fix:
DTMF attended transfer works within the channel bridge. Unfortunately,
when either party A or B in the channel bridge hangs up, that channel is
not completely hung up until the transfer completes. This is a real
problem depending upon the channel technology involved.
For chan_dahdi, the channel is crippled until the hangup is complete.
Either the channel is not useable (analog) or the protocol disconnect
messages are held up (PRI/BRI/SS7) and the media is not released.
For chan_sip, a call limit of one is going to block that endpoint from any
further calls until the hangup is complete.
For party A this is a minor problem. The party A channel will only be in
this condition while party B is dialing and when party B and C are
conferring. The conversation between party B and C is expected to be a
short one. Party B is either asking a question of party C or announcing
party A. Also party A does not have much incentive to hangup at this
point.
For party B this can be a major problem during a blonde transfer. (A
blonde transfer is our term for an attended transfer that is converted
into a blind transfer. :)) Party B could be the operator. When party B
hangs up, he assumes that he is out of the original call entirely. The
party B channel will be in this condition while party C is ringing, while
attempting to recall party B, and while waiting between call attempts.
WARNING:
The ATXFER_NULL_TECH conditional is a hack to fix the problem. It will
replace the party B channel technology with a NULL channel driver to
complete hanging up the party B channel technology. The consequences of
this code is that the 'h' extension will not be able to access any channel
technology specific information like SIP statistics for the call.
ATXFER_NULL_TECH is not defined by default.
**********
(closes issue #17999)
Reported by: iskatel
Tested by: rmudgett
JIRA SWP-2246
(closes issue #17096)
Reported by: gelo
Tested by: rmudgett
JIRA SWP-1192
(closes issue #18395)
Reported by: shihchuan
Tested by: rmudgett
(closes issue #17273)
Reported by: grecco
Tested by: rmudgett
Review: https://reviewboard.asterisk.org/r/1047/
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@302174 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The sig_pri_new_ast_channel() is called with the channel private lock held
when pri_dchannel() calls it and no channel private lock held when
dahdi_request() calls it. The use of pri_grab() in
sig_pri_new_ast_channel() could leave the channel private lock held when
it returns if the lock was not held before calling it.
Make sig_pri_new_ast_channel() just lock the PRI span lock instead of
using pri_grab(). It is safe to do this because dahdi_request() does not
have the channel private lock and the deadlock potential with the PRI span
lock is only between pri_dchannel() and other threads.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@301946 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Two fixes:
1) One must always have the private unlocked before calling
pbx_builtin_setvar_helper to not invalidate locking order since it locks the
channel.
2) Unlock the channel before calling pbx_find_extension, which starts and stops
autoservice during the lookup. The problem scenario as illustrated by the
reporter:
Thread: do_monitor
-----------------------
handle_request_do
handle_incoming
handle_request_refer
ast_parking_ext_valid
pbx_find_extension
ast_autoservice_stop
while (chan_list_state == as_chan_list_state) { usleep(1000); }
Thread: autoservice_run
-----------------------
autoservice_run
chan = ast_waitfor_n
ast_waitfor_nandfds
ast_waitfor_nandfds_classic / simple / complex (depending on your system)
ast_channel_lock(c[x]);
handle_request_do and schedule_process_request_queue locks the owner
if it exists. The autoservice thread is waiting for the channel lock, which
wasn't ever released since the do_monitor thread was waiting for autoservice
operations to complete. Solved by unlocking the channel but keeping a reference
to guarantee safety.
(closes issue #18403)
Reported by: jthurman
Patches:
20110103-blind_deadlock.diff uploaded by jthurman (license 614)
issue18403.patch uploaded by jpeeler (license 325)
Tested by: jthurman
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@301790 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r301594 | mnicholson | 2011-01-12 12:50:31 -0600 (Wed, 12 Jan 2011) | 15 lines
Removed a usleep(1) that shouldn't be necessary in session_do, and removed the
ms_t member from the mansession_session structure.
Merged revisions 301591 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r301591 | mnicholson | 2011-01-12 12:39:03 -0600 (Wed, 12 Jan 2011) | 5 lines
Don't store the thread id for the manager session in the structure we pass to
the thread for the manager session.
ABE-2543
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@301595 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r301503 | jpeeler | 2011-01-12 12:11:49 -0600 (Wed, 12 Jan 2011) | 19 lines
Merged revisions 301502 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r301502 | jpeeler | 2011-01-12 12:10:42 -0600 (Wed, 12 Jan 2011) | 12 lines
Fix CPU spike when pressing DTMF after agent login.
The problem here is that DTMF was being continuously deferred and requeued
since ast_safe_sleep is called in a loop. There are serveral other places in the
code that sleeps and then loops in a similar fashion. Because of this fact I
opted to not defer DTMF any more, which will not affect the original fix:
https://reviewboard.asterisk.org/r/674
(closes issue #18130)
Reported by: rgj
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@301504 65c4cc65-6c06-0410-ace0-fbb531ad65f3
the warning, if no user interface for menuselect warning was found is not right.
you have to rerun configure before make menuselect after installing a proper user interface.
(closes issue #18594)
Reported by: Dovid
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@301444 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
........
r301220 | pabelanger | 2011-01-09 16:38:24 -0500 (Sun, 09 Jan 2011) | 14 lines
SOUND_CACHE_DIR now defaults to empty
Sounds files included in the Asterisk tarball were being ignored and
re-downloaded. Users wanting to cache the files can still override the setting
using the --with-sounds-cache option.
(closes issue #18589)
Reported by: pabelanger
Patches:
issue18589.patch uploaded by pabelanger (license 224)
Tested by: pabelanger
Review: https://reviewboard.asterisk.org/r/1074/
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@301221 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The DAHDI ISDN channel name is not dialable.
Make a channel name like DAHDI/i3/400-12 dialable when the sequence number
is stripped off of the name.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@301134 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
........
r301046 | jpeeler | 2011-01-07 13:57:42 -0600 (Fri, 07 Jan 2011) | 8 lines
Fix regression causing forwarding voicemails to not work with file storage.
I had actually already fixed this in 295200 in 1.4 and thought it wasn't
missing in the other branches for some reason.
(closes issue #18358)
Reported by: cabal95
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@301047 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r300951 | jpeeler | 2011-01-07 11:23:37 -0600 (Fri, 07 Jan 2011) | 14 lines
Merged revisions 300918 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r300918 | jpeeler | 2011-01-07 11:13:21 -0600 (Fri, 07 Jan 2011) | 7 lines
Ensure good bye prompt in voicemail is played at the correct time.
Specifically in the case of timing out but not leaving voicemail nothing
should be heard. And when leaving voicemail it should be heard.
ABE-2647
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@300955 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier
..........
r300711 | rmudgett | 2011-01-05 13:43:55 -0600 (Wed, 05 Jan 2011) | 14 lines
A call retrieved from hold may wind up with no audio.
If the retrieved call is natively bridged then the call may not have any
audio path. The following warning message is given:
"Failed to add <dfd> to conference <chan>/<chan>: Invalid argument".
* Open the media on a B channel when pri_fixup_principle() moves the call
from a no_b_channel channel to a real channel.
* Added lock protection while pri_fixup_principle() moves a call from one
private structure to another.
* Made some pri_fixup_principle() messages more meaningful.
..........
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@300714 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r300622 | tilghman | 2011-01-05 12:54:58 -0600 (Wed, 05 Jan 2011) | 17 lines
Merged revisions 300621 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r300621 | tilghman | 2011-01-05 12:47:46 -0600 (Wed, 05 Jan 2011) | 10 lines
Use the sanity check in place of the disconnect/connect cycle.
The disconnect/connect cycle has the potential to cause random crashes.
(closes issue #18243)
Reported by: ks3
Patches:
res_odbc.patch uploaded by ks3 (license 1147)
Tested by: ks3
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@300623 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r300298 | twilson | 2011-01-04 11:37:26 -0600 (Tue, 04 Jan 2011) | 22 lines
Merged revisions 300216 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r300216 | twilson | 2011-01-04 11:11:48 -0600 (Tue, 04 Jan 2011) | 15 lines
Don't authenticate SUBSCRIBE re-transmissions
This only skips authentication on retransmissions that are already
authenticated. A similar method is already used for INVITES. This
is the kind of thing we end up having to do when we don't have a
transaction layer...
(closes issue #18075)
Reported by: mdu113
Patches:
diff.txt uploaded by twilson (license 396)
Tested by: twilson, mdu113
Review: https://reviewboard.asterisk.org/r/1005/
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@300301 65c4cc65-6c06-0410-ace0-fbb531ad65f3
I've increased the size of the response field in a DUNDi mapping because of
some documentation I'm writing. Previously it was set to AST_MAX_EXTENSION which
is only 80 characters, which is far too small when you're using some dialplan
functions to craft a response. The example I'm using is:
extensions =>
RegisteredDevices,0,SIP,dundi:very_awesome_password/${IF($[${DB_EXISTS(phones/${NUMBER}/device)}]?${DB(phones/${NUMBER}/device)}:None)},nopartial
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@300082 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Change order of sending Terminal Capability Set and MasterSlave
Determination packets, MSD send when TCS exchange procedure is done
(we send tcs ack to remote and we have remote tcs ack already
or we receive tcs ack from remote and we have send our tcs ack to
remote already). Some endpoints can work in this sequence only,
i suggest they can't work with both (tcs and msd) exchange procedures
simultaneously.
Also changed StartH245 facility message sending. It send on
incoming calls only due to some endpoints can't proccess properly
this facility messages on their incoming calls.
(issue #18433)
Reported by: MrHanMan
Patches:
tcs-msd-h245-3.patch uploaded by may213 (license 454)
Tested by: MrHanMan, may213
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@299711 65c4cc65-6c06-0410-ace0-fbb531ad65f3