summaryrefslogtreecommitdiff
path: root/apps/app_meetme.c
AgeCommit message (Collapse)Author
2010-07-20Add load priority order, such that preload becomes unnecessary in most casesTilghman Lesher
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@278132 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-14ast_callerid restructuringRichard Mudgett
The purpose of this patch is to eliminate struct ast_callerid since it has turned into a miscellaneous collection of various party information. Eliminate struct ast_callerid and replace it with the following struct organization: struct ast_party_name { char *str; int char_set; int presentation; unsigned char valid; }; struct ast_party_number { char *str; int plan; int presentation; unsigned char valid; }; struct ast_party_subaddress { char *str; int type; unsigned char odd_even_indicator; unsigned char valid; }; struct ast_party_id { struct ast_party_name name; struct ast_party_number number; struct ast_party_subaddress subaddress; char *tag; }; struct ast_party_dialed { struct { char *str; int plan; } number; struct ast_party_subaddress subaddress; int transit_network_select; }; struct ast_party_caller { struct ast_party_id id; char *ani; int ani2; }; The new organization adds some new information as well. * The party name and number now have their own presentation value that can be manipulated independently. ISDN supplies the presentation value for the name and number at different times with the possibility that they could be different. * The party name and number now have a valid flag. Before this change the name or number string could be empty if the presentation were restricted. Most channel drivers assume that the name or number is then simply not available instead of indicating that the name or number was restricted. * The party name now has a character set value. SIP and Q.SIG have the ability to indicate what character set a name string is using so it could be presented properly. * The dialed party now has a numbering plan value that could be useful to have available. The various channel drivers will need to be updated to support the new core features as needed. They have simply been converted to supply current functionality at this time. The following items of note were either corrected or enhanced: * The CONNECTEDLINE() and REDIRECTING() dialplan functions were consolidated into func_callerid.c to share party id handling code. * CALLERPRES() is now deprecated because the name and number have their own presentation values. * Fixed app_alarmreceiver.c write_metadata(). The workstring[] could contain garbage. It also can only contain the caller id number so using ast_callerid_parse() on it is silly. There was also a typo in the CALLERNAME if test. * Fixed app_rpt.c using ast_callerid_parse() on the channel's caller id number string. ast_callerid_parse() alters the given buffer which in this case is the channel's caller id number string. Then using ast_shrink_phone_number() could alter it even more. * Fixed caller ID name and number memory leak in chan_usbradio.c. * Fixed uninitialized char arrays cid_num[] and cid_name[] in sig_analog.c. * Protected access to a caller channel with lock in chan_sip.c. * Clarified intent of code in app_meetme.c sla_ring_station() and dial_trunk(). Also made save all caller ID data instead of just the name and number strings. * Simplified cdr.c set_one_cid(). It hand coded the ast_callerid_merge() function. * Corrected some weirdness with app_privacy.c's use of caller presentation. Review: https://reviewboard.asterisk.org/r/702/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276347 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-13Merged revisions 275773 via svnmerge from Jeff Peeler
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r275773 | jpeeler | 2010-07-12 15:34:51 -0500 (Mon, 12 Jul 2010) | 12 lines Make user removals and traversals thread safe in meetme. Race conditions present in meetme involving the user list where a lack of locking has the potential for a user to be removed during a traversal or as in the case of the reporter after checking if the list is empty could cause a crash. Fixing this was done by convering the userlist to an ao2 container. (closes issue #17390) Reported by: Vince Review: https://reviewboard.asterisk.org/r/746/ ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276074 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-10When creating a conference for a unit test, it is not mandatory to open aEliel C. Sardanons
dahdi pseudo channel, so if we fail doing it, continue creating the conference. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@275509 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-09Get more information about the Bamboo test failuresTilghman Lesher
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@275312 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-09Weird, no output and Bamboo still fails...Tilghman Lesher
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@275227 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-09Add some diagnostic feedback to our data testsTilghman Lesher
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@275172 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-09Kill some startup warnings and errors and make some messages more helpful in ↵Tilghman Lesher
tracking down the source. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@275105 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-08Implement AstData API data providers as part of the GSOC 2010 project,Eliel C. Sardanons
midterm evaluation. Review: https://reviewboard.asterisk.org/r/757/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@274727 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-01Merged revisions 273474 via svnmerge from Jeff Peeler
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r273474 | jpeeler | 2010-07-01 15:19:16 -0500 (Thu, 01 Jul 2010) | 14 lines Allow admin user to join conference without using admin mode and no user pin. Configuring the conference in meetme.conf like the following: conf => 2345,,6666 did not prompt for pin when used without admin mode. This meant that the conference could not be joined as an admin even if the user knew the correct pin. The original bug report was submitted claiming that the blank user pin should deny entry into the conference. I think a better way to handle this would be with a feature enhancement that used the following syntax: conf => 2345,X,6666 - where X denotes no acceptable pin allowed (closes issue #15704) Reported by: modelnine ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@273522 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-01Merged revisions 273354 via svnmerge from Jeff Peeler
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r273354 | jpeeler | 2010-07-01 10:05:43 -0500 (Thu, 01 Jul 2010) | 12 lines Ensure channel placed in meetme in ringing state is properly hung up. An outgoing channel placed in meetme while still ringing which was then hung up would not exit meetme and the channel was not properly destroyed. Specifically checking for this scenario by looking at the appropriate control frames resolves the issue. (closes issue #15871) Reported by: Ivan Patches: meetme_congestion_trunk_v2.patch uploaded by Ivan (license 229) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@273355 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-23Fix previous merge. ast_test_flag != ast_test_flag64Paul Belanger
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@272259 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-23Merged revisions 272255 via svnmerge from Paul Belanger
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r272255 | pabelanger | 2010-06-23 16:57:01 -0400 (Wed, 23 Jun 2010) | 12 lines First caller into a dynamic conference now enter pin once. If MeetMe is configured to use dynamic conference numbers, then the first caller (which creates the conference) had to enter the PIN number twice. (closes issue #15878) Reported by: shawkris Patches: issue15878.patch uploaded by pabelanger (license 224) Tested by: pabelanger ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@272257 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-23Don't start the sla thread unless we realy need itTerry Wilson
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@272146 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-23Make sure reload updates SLA configTerry Wilson
Even if there are no stations or trunks defined, we need to start the sla thread to make sure we get the reload event. Also, when doing a reload we need to remove the existing trunks and stations or they end up hanging around. (closes issue #16818) Reported by: mbonin Patches: sla_reload.patch uploaded by twilson (license 396) Tested by: twilson git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@272109 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-17option w[(secs)] incorrectly capitalized in xmldocPaul Belanger
(closes issue #17516) Reported by: karlfife git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@271089 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-08Fix some doxygen warnings.Leif Madsen
(closes issue #17336) Reported by: snuffy Patches: doxygen-fixes1.diff uploaded by snuffy (license 35) Tested by: russell git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@268969 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-12Merged revisions 262662 via svnmerge from David Vossel
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r262662 | dvossel | 2010-05-12 12:00:04 -0500 (Wed, 12 May 2010) | 11 lines fixes app_meetme dsp error We attempted to detect silence after translating a frame from signed linear. This caused a flooding of errors. To resolve this the code to detect silence was moved before the translation. (closes issue #17133) Reported by: jsdyer ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@262744 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-03Add new admin features to meetme: Roll call, eject all, mute all, record ↵Jeff Peeler
in-conf This patch adds the following in-conference admin DTMF features: *81 - Roll call (or simply user count if INTROUSER isn't enabled) *82 - Eject all non-admins *83 - Mute/unmute all non-admins *84 - Start recording the conference on the fly FWIW, this code uses newly recorded prompts. (closes issue #16379) Reported by: rfinnie Patches: meetme-enhancements-232771-v1.patch uploaded by rfinnie (license 940) modified slightly by me git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@260757 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-02Export MEETMEBOOKID and fix pin-less conferences with realtime conferencesRussell Bryant
(closes issue #16866) Reported by: DEA Patches: rt-meetme-options.txt uploaded by DEA (license 3) Tested by: DEA Review: https://reviewboard.asterisk.org/r/582/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@256019 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-15Resolve a crash in SLATrunk when the specified trunk doesn't exist.Sean Bright
Reported by philipp64 in #asterisk-dev. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@252623 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-15Convert a few places to use ast_calloc_with_stringfields where applicable.Sean Bright
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@240368 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-06Fix misreverting from 177158.Jeff Peeler
(closes issue #15725) Reported by: shanermn Patches: v1-15725.patch uploaded by dimas (license 88) Tested by: shanermn git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@238181 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-28Merged revisions 236509 via svnmerge from Sean Bright
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r236509 | seanbright | 2009-12-28 07:43:36 -0500 (Mon, 28 Dec 2009) | 12 lines 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. (closes issue #16509) Reported by: Kashif Raza Patches: 20091223_16509.patch uploaded by seanbright (license 71) Tested by: seanbright ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@236510 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-11Merged revisions 234379 via svnmerge from Jeff Peeler
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r234379 | jpeeler | 2009-12-11 16:37:21 -0600 (Fri, 11 Dec 2009) | 11 lines 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. (closes issue #16247) Reported by: dimas Patches: v3-16247.patch uploaded by dimas (license 88) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@234380 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-10Add audio announcement option to app_pageJeff Peeler
As described in the CHANGES file: * MeetMe has a new option 'G' to play an announcement before joining a conference. * Page has a new option 'A(x)' which will playback an announcement simultaneously to all paged phones (and optionally excluding the caller's one using the new option 'n') before the call is bridged. To add the new option to meetme, the conference flag options had to be extended to 64 bits. (closes issue #14365) Reported by: dferrer Patches: page_announce.patch uploaded by dferrer (license 525) modified by me Review: https://reviewboard.asterisk.org/r/188/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@234173 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-13Display a list of channel variables in each channel-oriented event.Tilghman Lesher
(Closes AST-33) Reviewboard: https://reviewboard.asterisk.org/r/368/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@230111 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-05Yet another error message in the dialplan (thanks, rmudgett/russellb)Tilghman Lesher
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@228196 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-05MEETME_INFO should not return a literal error message to the dialplan.Tilghman Lesher
(closes issue #15450) Reported by: JimVanM Patches: meetmeinfopatch.diff.txt uploaded by dbrooks (license 790) Tested by: JimVanM git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@228191 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-04Expand codec bitfield from 32 bits to 64 bits.Tilghman Lesher
Reviewboard: https://reviewboard.asterisk.org/r/416/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@227580 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-22Merged revisions 225105 via svnmerge from Tilghman Lesher
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r225105 | tilghman | 2009-10-21 11:02:12 -0500 (Wed, 21 Oct 2009) | 4 lines Fix documentation for ast_softhangup() and correct the misuse thereof. (closes issue #16103) Reported by: majorbloodnok ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225360 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-21Apparently, I don't need to specify the ".so" suffix to get a matchTilghman Lesher
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225102 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-21Turn on DENOISE filter for all conference participants.Tilghman Lesher
(Fixes SWP-238) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225048 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-08Fix compilation of app_meetme.Sean Bright
Reported by ebroad in #asterisk-bugs git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@217286 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-08Merged revisions 217156 via svnmerge from Tilghman Lesher
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r217156 | tilghman | 2009-09-08 15:01:45 -0500 (Tue, 08 Sep 2009) | 7 lines When MOH is playing on the channel, announcements sent through the conference are not heard. (closes issue #14588) Reported by: voipas Patches: 20090716__issue14588__2.diff.txt uploaded by tilghman (license 14) Tested by: lmadsen, twisted, tilghman ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@217199 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-18Small doxygen changesOlle Johansson
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@212844 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-10AST-2009-005Tilghman Lesher
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@211539 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-07-14Document all meetme realtime fields, and in the process, make some field ↵Tilghman Lesher
lengths more consistent. (closes issue #15493) Reported by: lasko Patches: meetme.diff uploaded by lasko (license 833) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@206567 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-29A few const changes in app_meetme.c that I noticed while browsing the source.Sean Bright
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@204355 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-26Merge the new Channel Event Logging (CEL) subsystem.Russell Bryant
CEL is the new system for logging channel events. This was inspired after facing many problems trying to represent what is possible to happen to a call in Asterisk using CDR records. For more information on CEL, see the built in HTML or PDF documentation generated from the files in doc/tex/. Many thanks to Steve Murphy (murf) and Brian Degenhardt (bmd) for their hard work developing this code. Also, thanks to Matt Nicholson (mnicholson) and Sean Bright (seanbright) for their assistance in the final push to get this code ready for Asterisk trunk. Review: https://reviewboard.asterisk.org/r/239/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@203638 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-16Merged revisions 200991 via svnmerge from Kevin P. Fleming
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r200991 | kpfleming | 2009-06-16 12:05:38 -0500 (Tue, 16 Jun 2009) | 11 lines Improve support for media paths that can generate multiple frames at once. 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: https://origsvn.digium.com/svn/asterisk/trunk@201056 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-06Move function MEETME_INFO documentation to XML.Eliel C. Sardanons
Move function MEETME_INFO static documentation to the new AstXML form. (issue #15245) Reported by: eliel Patches: app_meetme_static_conversion.txt uploaded by lmadsen (license 10) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@199409 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-22Implement a new element in AstXML for AMI actions documentation.Eliel C. Sardanons
A new xml element was created to manage the AMI actions documentation, using AstXML. To register a manager action using XML documentation it is now possible using ast_manager_register_xml(). The CLI command 'manager show command' can be used to show the parsed documentation. Example manager xml documentation: <manager name="ami action name" language="en_US"> <synopsis> AMI action synopsis. </synopsis> <syntax> <xi:include xpointer="xpointer(...)" /> <-- for ActionID <parameter name="header1" required="true"> <para>Description</para> </parameter> ... </syntax> <description> <para>AMI action description</para> </description> <see-also> ... </see-also> </manager> git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196308 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-21Const-ify the world (or at least a good part of it)Kevin P. Fleming
This patch adds 'const' tags to a number of Asterisk APIs where they are appropriate (where the API already demanded that the function argument not be modified, but the compiler was not informed of that fact). The list includes: - CLI command handlers - CLI command handler arguments - AGI command handlers - AGI command handler arguments - Dialplan application handler arguments - Speech engine API function arguments In addition, various file-scope and function-scope constant arrays got 'const' and/or 'static' qualifiers where they were missing. Review: https://reviewboard.asterisk.org/r/251/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196072 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-20Merged revisions 195635 via svnmerge from Joshua Colp
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r195635 | file | 2009-05-20 14:14:00 -0300 (Wed, 20 May 2009) | 5 lines Fix a bug where the MeetMe option 'D' did not actually prompt for the pin. (closes issue #15050) Reported by: pmhaddad ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@195636 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-14Fix a bug where the 'T' option to Meetme did not work.Joshua Colp
(closes issue #15031) Reported by: Stochastic (closes issue #13801) Reported by: justdave git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@194434 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-12add 'const' qualifiers in various places where they should have beenKevin P. Fleming
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@193832 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-03app_meetme not setting filename and fileformat correctly for realtimeDavid Vossel
When app_meetme finds a realtime conference, it doesn't get the filename and fileformat correctly when 'r' is set. Now app_meetme first checks to see if fileformat and filename are declared in the db, if they're not it checks the .conf file, if its not declared there either it then uses defaults. (closes issue #14545) Reported by: dalbaech Patches: app_meetme-realtime5.patch uploaded by dvossel (license 671) Realtime_Conference_Record_workaround.txt uploaded by dalbaech (license 705) Tested by: dvossel, dalbaech Review: http://reviewboard.digium.com/r/180/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@179972 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-02Merged revisions 179532 via svnmerge from Russell Bryant
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r179532 | russell | 2009-03-02 17:34:13 -0600 (Mon, 02 Mar 2009) | 40 lines Move ast_waitfor() down to avoid the results of the API call becoming stale. 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: https://origsvn.digium.com/svn/asterisk/trunk@179533 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-18Re-add 'o' option to MeetMe, reverting rev 62297.Russell Bryant
Enabling this option by default proved to be a bad idea, as the talker detection is not very reliable. So, make it optional again, and off by default. (issue #13801) Reported by: justdave git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@177101 65c4cc65-6c06-0410-ace0-fbb531ad65f3