aboutsummaryrefslogtreecommitdiffstats
path: root/apps
AgeCommit message (Collapse)AuthorFilesLines
2009-06-17StopMixMonitor race condition (not giving up file immediately)dvossel1-26/+64
StopMixMonitor only indicates to the MixMonitor thread to stop writing to the file. It does not guarantee that the recording's file handle is available to the dialplan immediately after execution. This results in a race condition. To resolve this, the filestream pointer is placed in a datastore on the channel. When StopMixMonitor is called, the datastore is retrieved from the channel and the filestream is closed immediately before returning to the dialplan. Documentation indicating the use of StopMixMonitor to free files has been updated as well. (closes issue #15259) Reported by: travisghansen Tested by: dvossel Review: https://reviewboard.asterisk.org/r/283/ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@201423 f38db490-d61c-443f-a65b-d21fe96a405b
2009-06-16Improve support for media paths that can generate multiple frames at once.kpfleming3-14/+31
There are various media paths in Asterisk (codec translators and UDPTL, primarily) that can generate more than one frame to be generated when the application calling them expects only a single frame. This patch addresses a number of those cases, at least the primary ones to solve the known problems. In addition it removes the broken TRACE_FRAMES support, fixes a number of bugs in various frame-related API functions, and cleans up various code paths affected by these changes. https://reviewboard.asterisk.org/r/175/ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@200991 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-30Treat an empty FORWARD_CONTEXT the same way we treat a missing one.seanbright1-0/+3
(closes issue #15056) Reported by: p_lindheimer Patches: 05292009_bug15056.diff uploaded by seanbright (license 71) Tested by: p_lindheimer git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@198251 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-28Update MixMonitor documentation.lmadsen1-0/+4
Updated the MixMonitor documentation for the 'b' option so that it is more obvious that you must not optimize awat the Local channel when using this option. (issue #14829) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@197895 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-28Add flags to chanspy audiohook so that audio stays in sync.mmichelson1-0/+2
There are two flags being added to the chanspy audiohook here. One is the pre-existing AST_AUDIOHOOK_TRIGGER_SYNC flag. With this set, we ensure that the read and write slinfactories on the audiohook do not skew beyond a certain tolerance. In addition, there is a new audiohook flag added here, AST_AUDIOHOOK_SMALL_QUEUE. With this flag set, we do not allow for a slinfactory to build up a substantial amount of audio before flushing it. For this particular issue, this means that the person spying on the call will hear the conversations in real time with very little delay in the audio. (closes issue #13745) Reported by: geoffs Patches: 13745.patch uploaded by mmichelson (license 60) Tested by: snblitz git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@197537 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-27Fix handling of the 'state_interface' option of the 'queue add member' CLIseanbright1-1/+3
command. This change relates to r184980, which was a backport of the state interface changes to app_queue from trunk. trunk and all of the 1.6.x branches are not affected. 'queue add member' allows for specifying an interface to use for device state when adding a queue member via CLI, but the validation code was not properly updated to reflect this optional argument. (closes issue #15198) Reported by: loloski Patches: 05272009_app_queue.diff uploaded by seanbright (license 71) Tested by: loloski git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@197024 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-20Fix a bug where the MeetMe option 'D' did not actually prompt for the pin.file1-1/+1
(closes issue #15050) Reported by: pmhaddad git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@195635 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-19Ensure thread keys are initialized before attempting to access them.tilghman1-0/+3
(closes issue #14889) Reported by: jaroth Patches: app_voicemail.c.patch uploaded by msirota (license 758) Tested by: msirota, BlargMaN git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@195520 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-18Add a similar dependency on SMDI for voicemail as already exists for ADSI.tilghman1-0/+13
(closes issue #14846) Reported by: pj Patches: 20090413__bug14846__1.4.diff.txt uploaded by tilghman (license 14) 20090507__issue14846__1.6.0.diff.txt uploaded by tilghman (license 14) 20090507__issue14846__1.6.1.diff.txt uploaded by tilghman (license 14) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@195366 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-12This change modifies app_queue to properly generate CDR records in failuremnicholson1-0/+39
situations. This involves setting a proper cdr disposition coresponding to the given failure condition and ensuring the proper information is stored in the cdr record. (closes issue #13691) Reported by: dferrer Tested by: mnicholson (closes issue #13637) Reported by: atis Tested by: atis git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@194028 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-12Avoid initializing routines if the authentication fails. Fixes a crash (RR) ↵tilghman1-4/+7
issue. (closes issue #14508) Reported by: tiziano Patches: 20090221_2_wrongmailbox.diff.txt uploaded by tiziano (license 377) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@193955 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-11Move 300 bytes around on the stack, to make more room for an extension buffer.tilghman1-3/+6
This allows more concurrent extensions to be copied for a single voicemail, without creating a possibility of upsetting existing users, where a dialplan could run out of stack space where it had run fine before. Alternatively, we could have allocated off the heap, but that is a larger change and would have increased the chance for instability introduced by this change. This is really solved starting in 1.6.0.11, as the use of an ast_str buffer allows an unlimited number of extensions (up to available memory). We additionally create a new warning message when the buffer length is exceeded, permitting administrators to see an issue after the fact, whereas previously the list was silently truncated. (closes issue #14739) Reported by: p_lindheimer Patches: 20090417__bug14739.diff.txt uploaded by tilghman (license 14) Tested by: p_lindheimer git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@193755 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-05Fix a bug where the followme application would continue trying numbers after ↵file1-4/+4
the caller hung up. (closes issue #13624) Reported by: sgenyuk git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@192429 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-02Fix a bug which resulted from the Hebrew voicemail commit.mmichelson1-37/+47
This fixes a case where a certain message could get played twice. (closes issue #13155) Reported by: greenfieldtech Patches: app_voicemail.c.multi-lang-patch uploaded by greenfieldtech (license 369) Tested by: greenfieldtech git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@191778 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-02Kevin has informed me that thi sort of thing is not necessary.mmichelson1-2/+2
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@191629 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-02Move static buffers to outside for loops in app_chanspy.mmichelson1-2/+2
Similar to seanbright's commit 191422, this moves some static buffers to be defined outside of for loops since it is undefined if memory will be re-used or if the stack will grow with each iteration of the loop. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@191628 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-01Move the defintion of the a couple arrays out of loops.seanbright1-2/+2
According to Kevin, it is unspecified as to whether a variable defined inside a block is allocated once by the compiler or for each pass through the block (loops being the only interesting case), so just define these before we get into our loop to be sure. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@191422 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-29Fix a crash in app_queue with very long member lists.seanbright1-4/+4
A user reported via #asterisk that with very long lists of members, a crash occurs in ast_strdupa, so just use a single buffer and ast_copy_string instead of stack allocating copys of each interface name. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@191041 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-20Update CDR appropriately when AST_CAUSE_NO_ANSWER is settwilson1-0/+3
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@189465 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-20Don't treat a NOANSWER like a CHANUNAVAILtwilson1-0/+1
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@189463 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-16Umask should not be exported into global namespace.tilghman1-1/+1
(closes issue #14912) Reported by: jcapp git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@188773 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-09Permit zero-length text messages in SIP.tilghman1-1/+3
(Related to an issue posted to the -users list, subject "AEL2, BASE64_DECODE and hexadecimal") git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@187362 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-08Fix a crash due to too few arguments to RetryDial.mmichelson1-1/+1
(closes issue #14852) Reported by: junky Patches: retry_fix.diff uploaded by junky (license 177) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@187135 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-07Fix Macro documentation to match current (and intended) behavior.tilghman1-7/+13
(See -dev mailing list) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@186775 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-06Revert commit 186445 because it causes the build to fail when IMAP_STORAGE ↵mmichelson1-1/+1
is used. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@186565 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-03Found a conflict in the last commit, due to multiple targetstilghman1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@186445 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-03Distinguish in a sent email between simple sends and forwards.tilghman1-20/+94
(closes issue #11678) Reported by: jamessan Patches: 20090330__bug11678.diff.txt uploaded by tilghman (license 14) Tested by: tilghman, lmadsen git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@186415 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-31Fix crash that would occur if an empty member was specified in queues.conf.mmichelson1-0/+5
(closes issue #14796) Reported by: pida git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@185599 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-31Fix Russian voicemail intro to say the word "messages" properly.mmichelson1-6/+2
(closes issue #14736) Reported by: chappell Patches: voicemail_no_messages.diff uploaded by chappell (license 8) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@185468 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-31Fix some state_interface stuff that was in trunk but not in the backport to 1.4.mmichelson1-4/+4
Issue #14359 was fixed between the time that I posted the review of the backport of the state interface change for 1.4. This merges the changes from that issue back into 1.4. (closes issue #14359) Reported by: francesco_r git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@185298 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-30Fix queue weight behavior so that calls in low-weight queues are not ↵mmichelson1-70/+82
inappropriately blocked. (This is copied and pasted from the review request I made for this patch) Asterisk has some odd behavior when queue weights are used. The current logic used when potentially calling a queue member is: If the member we are going to call is part of another queue and _that other queue has any callers in it_ and has a higher weight than the queue we are calling from, then don't try to contact that member. The issue here is what I have marked with underscores. If the higher-weighted queue has any callers in it at all, then the queue member will be unreachable from the lower-weighted queue. This has the potential to be really really bad if using a queue strategy, such as leastrecent or fewestcalls, with the potential to call the same member repeatedly. The fix proposed by garychen on issue 13220 is very simple and, as far as I can see, works well for this situation. With this set of changes, the logic used becomes: If the member we are going to call is part of another queue, the other queue has a higher weight than the queue we are calling from, and the higher weight queue has at least as many callers as available members, then do not try to contact the queue member. If the higher weighted queue has fewer callers than available members, then there is no reason to deny the call to this member since the other queue can afford to spare a member. Since the fix involved writing a generic function for determining the number of available members in the queue, I also modified the is_our_turn function to make use of the new num_available_members function to determine if it is our turn to try calling a member. There is one small behavior change. Before writing this patch, if you had autofill disabled, then if you were the head caller in a queue, you would automatically be told that it was your turn to try calling a member. This did not take into account whether there were actually any queue members available to take the call. Now we actually make sure there is at least one member available to take the call if autofill is disabled. (closes issue #13220) Reported by: garychen Review: http://reviewboard.digium.com/r/202/ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@185031 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-30Backport state interface changes to app_queue from trunk.mmichelson1-44/+83
After several issues raised on the Asterisk bugtracker against the 1.4 branch were determined to be fixable with the state interface change available in the 1.6.X series, it finally came time to just suck it up and backport the change. For a detailed explanation of what this change entails, the original trunk commit for this feature may be found here: http://svn.digium.com/view/asterisk?view=revision&revision=97203 In addition, the details for the use of this change to fix the problems stated in issue #12970 may be found in the review request I made for this change. It is linked below. (closes issue #12970) Reported by: edugs15 Review: http://reviewboard.digium.com/r/116 git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@184980 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-29Ensure targs variable is fully initialized.russell1-1/+1
(closes issue #14758) Reported by: tim_ringenbach git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@184842 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-26pri loop TestClient/TestServer fails: server SEND DTMF 8dvossel1-41/+41
app_test was failing when sending the last DTMF digit, 8, because of the 100ms pause issued after DTMF is sent. During this pause the other side would hang up causing the test to look like it failed. Now the other side waits a second before hanging up. (closes issue #12442) Reported by: tzafrir git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@184388 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-24Change NULL pointer check to be ast_strlen_zero.mmichelson1-1/+1
The 'digit' variable is guaranteed to be non-NULL, so the if statement could never evaluate true. Changing to ast_strlen_zero makes the logic correct. This was found while reviewing ast_channel_ao2 code review. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@184078 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-19Add missing datastore inherit (exists in all other branches)twilson1-0/+1
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@183481 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-19Cleaning up a few things in detect disconnect patchdvossel1-1/+1
Initialized ast_call_feature in detect_disconnect to avoid accessing uninitialized memory. Cleaned up /param tags in features.h. No longer send dynamic features in ast_feature_detect. issue #11583 git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@183386 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-19Allow disconnect feature before a call is bridgeddvossel1-4/+35
feature.conf has a disconnect option. By default this option is set to '*', but it could be anything. If a user wishes to disconnect a call before the other side answers, only '*' will work, regardless if the disconnect option is set to something else. This is because features are unavailable until bridging takes place. The default disconnect option, '*', was hardcoded in app_dial, which doesn't make any sense from a user perspective since they may expect it to be something different. This patch allows features to be detected from outside of the bridge, but not operated on. In this case, the disconnect feature can be detected before briding and handled outside of features.c. (closes issue #11583) Reported by: sobomax Patches: patch-apps__app_dial.c uploaded by sobomax (license 359) 11583.latest-patch uploaded by murf (license 17) detect_disconnect.diff uploaded by dvossel (license 671) Tested by: sobomax, dvossel Review: http://reviewboard.digium.com/r/195/ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@183126 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-18Fix cases where the internal poll() was not being used when it needed to be.russell2-2/+2
We have seen a number of problems caused by poll() not working properly on Mac OSX. If you search around, you'll find a number of references to using select() instead of poll() to work around these issues. In Asterisk, we've had poll.c which implements poll() using select() internally. However, we were still getting reports of problems. vadim investigated a bit and realized that at least on his system, even though we were compiling in poll.o, the system poll() was still being used. So, the primary purpose of this patch is to ensure that we're using the internal poll() when we want it to be used. The changes are: 1) Remove logic for when internal poll should be used from the Makefile. Instead, put it in the configure script. The logic in the configure script is the same as it was in the Makefile. Ideally, we would have a functionality test for the problem, but that's not actually possible, since we would have to be able to run an application on the _target_ system to test poll() behavior. 2) Always include poll.o in the build, but it will be empty if AST_POLL_COMPAT is not defined. 3) Change uses of poll() throughout the source tree to ast_poll(). I feel that it is good practice to give the API call a new name when we are changing its behavior and not using the system version directly in all cases. So, normally, ast_poll() is just redefined to poll(). On systems where AST_POLL_COMPAT is defined, ast_poll() is redefined to ast_internal_poll(). 4) Change poll() in main/poll.c to be ast_internal_poll(). It's worth noting that any code that still uses poll() directly will work fine (if they worked fine before). So, for example, out of tree modules that are using poll() will not stop working or anything. However, for modules to work properly on Mac OSX, ast_poll() needs to be used. (closes issue #13404) Reported by: agalbraith Tested by: russell, vadim http://reviewboard.digium.com/r/198/ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@182810 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-18revert commit that included extranous changeskpfleming3-31/+14
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@182807 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-18Improve the build system to *properly* remove unnecessary symbols from the ↵kpfleming3-14/+31
runtime global namespace. Along the way, change the prefixes on some internal-only API calls to use a common prefix. With these changes, for a module to export symbols into the global namespace, it must have *both* the AST_MODFLAG_GLOBAL_SYMBOLS flag and a linker script that allows the linker to leave the symbols exposed in the module's .so file (see res_odbc.exports for an example). git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@182802 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-17Allow dahdichanname to work as advertised.qwell1-1/+1
(closes issue #14056) Reported by: dsedivec Patches: load_from_zapata_conf.patch uploaded by dsedivec (license 638) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@182652 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-11Fix malloc debug macros to work properly with h323.jpeeler1-3/+3
The main problem here was that cstdlib was undefining free thereby causing the proper debug macros to not be used. ast_h323.cxx has been changed to call ast_free instead to avoid the issue. Because using the ast prefix calls are a better choice, ast_free_ptr is the new wrapper for free to pass to functions. Also, a little bit of clean up was done to avoid the debug macros intentionally being redefined. (closes issue #13593) Reported by: pj git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@181133 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-06Make compilation succeed in dev-mode when IMAP storage is enabled.mmichelson1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@180567 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-05[IMAP] Fix message retrieval issues when identical mailbox names were ↵mmichelson1-0/+2
defined in separate contexts. There was a fix put in a while back so that an X-Asterisk-VM-Context message header was added to stored IMAP voicemails. This would allow for us to differentiate if the same mailbox name was used in multiple contexts. The problem still left was that not all places where messages were retrieved actually attempted to use this header for information when retrieving messages. This commit fixes that so that MWI and message retrieval from VoiceMailMain work as expected. (closes issue #13853) Reported by: vicks1 Patches: 13853_v2.patch uploaded by mmichelson (license 60) Tested by: lmadsen git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@180464 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-05Fix broken mailbox parsing when searchcontexts option is enabled.mmichelson1-10/+18
When using the searchcontexts option in voicemail.conf, the code made the assumption that all mailbox names defined were unique across all contexts. However, the code did nothing to actually enforce this assumption, nor did it do anything to alert a user that he may have created an ambiguity in his voicemail.conf file by defining the same mailbox name in multiple contexts. With this change, we now will issue a nice long warning if searchcontexts is on and we encounter the same mailbox name in multiple contexts and ignore any duplicates after the first box. Whether searchcontexts is enabled or not, if we come across a duplicate mailbox in the same context, then we will issue a warning and ignore the duplicated mailbox. I have also added a small note to voicemail.conf.sample in the explanation for searchcontexts explaining that you cannot define the same mailbox in multiple contexts if you have enabled the option. (closes issue #14599) Reported by: lmadsen Patches: 14599.patch uploaded by mmichelson (license 60) (with slight modification) Tested by: lmadsen git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@180380 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-03Clarify some documentation of queues.conf.samplemmichelson1-0/+4
It had always been possible to explicitly specify a "blank" value for a sound file in queues.conf and have no sound played back. The problem with this is that it would result in some ugly CLI warnings from file.c. This commit introduces a check when playing a file in app_queue to see if the name of the file is zero-length and return early if that is the case. Also, the ability to specify the blank sound files in queues.conf is now mentioned more clearly in queues.conf.sample (closes issue #14227) Reported by: caspy git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@180006 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-02Move ast_waitfor() down to avoid the results of the API call becoming stale.russell1-4/+3
This call to ast_waitfor() was being done way too soon in this section of code. Specifically, there was code in between the call to waitfor and the code that uses the result that puts the channel in autoservice. By putting the channel in autoservice, the previous results of ast_waitfor() become meaningless, as the autoservice thread will do it's own ast_waitfor() and ast_read() on the channel. So, when we came back out of autoservice and eventually hit the block of code that calls ast_read() on the channel, there may not actually be any input on the channel available. Even though the previous call to ast_waitfor() in app_meetme said there was input, the autoservice thread has since serviced the channel for some period of time. This bug manifested itself while dvossel was doing some testing of MeetMe in Asterisk trunk. He was using the timerfd timing module. When the code hit ast_read() erroneously, it determined that it must have been called because of input on the timer fd, as chan->fdno was set to AST_TIMING_FD, since that was the cause of the last legitimate call to ast_read() done by autoservice. In this test, an IAX2 channel was calling into the MeetMe conference. It was _much_ more likely to be seen with an IAX2 channel because of the way audio is handled. Every audio frame that comes in results in a call to ast_queue_frame(), which then uses ast_timer_enable_continuous() to notify the channel thread that a frame is waiting to be handled. So, the chances of ast_waitfor() indicating that a channel needs servicing due to a timer event on an IAX2 event is very high. Finally, it is interesting to note that if a different timing interface was being used, this bug would probably not be noticed. When ast_read() is called and erroneously thinks that there is a timer event to handle, it calls the ast_timer_ack() function. The pthread and dahdi timing modules handle the ack() function being called when there is no event by simply ignoring it. In the case of the timerfd module, it results in a read() on the timer fd that will block forever, as there is no data to read. This caused Asterisk to lock up very quickly. Thanks to dvossel and mmichelson for the fun debugging session. :-) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@179532 f38db490-d61c-443f-a65b-d21fe96a405b
2009-02-24Change include order to make compile on Centos 5 with DAHDItwilson1-2/+3
If BIT_TYPES_DEFINED gets defined before linux/types.h is included, the __s32 type doesn't get defined git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@178266 f38db490-d61c-443f-a65b-d21fe96a405b
2009-02-19Fix up potential crashes, by reducing the sharing between interactive and ↵tilghman1-3/+42
non-interactive threads. (closes issue #14253) Reported by: Skavin Patches: 20090219__bug14253.diff.txt uploaded by Corydon76 (license 14) Tested by: Skavin git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@177536 f38db490-d61c-443f-a65b-d21fe96a405b