Commit Graph

300 Commits

Author SHA1 Message Date
Tilghman Lesher
b10343fd19 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/branches/1.4@217156 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-08 20:01:45 +00:00
Tilghman Lesher
63cc189747 AST-2009-005
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@211528 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-10 19:15:57 +00:00
Kevin P. Fleming
94fa4d11b5 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/branches/1.4@200991 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-16 17:05:38 +00:00
Joshua Colp
65494bfdf7 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/branches/1.4@195635 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-20 17:14:00 +00:00
Kevin P. Fleming
59f867a5cb revert commit that included extranous changes
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@182807 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-18 01:51:21 +00:00
Kevin P. Fleming
f1f417a9d8 Improve the build system to *properly* remove unnecessary symbols from the 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: https://origsvn.digium.com/svn/asterisk/branches/1.4@182802 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-18 01:28:42 +00:00
Jeff Peeler
21ca773c28 Fix malloc debug macros to work properly with h323.
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: https://origsvn.digium.com/svn/asterisk/branches/1.4@181133 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 03:25:04 +00:00
Russell Bryant
dadbbb0a56 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/branches/1.4@179532 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-02 23:34:13 +00:00
Mark Michelson
b30800adfb Remove unused variable and make dev-mode compilation happy
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@176252 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-16 21:39:21 +00:00
Mark Michelson
5ae664d5aa Open the DAHDI pseudo device and set it to be nonblocking atomically
Apparently on FreeBSD, attempting to set the O_NONBLOCKING flag separately
from opening the file was causing an "inappropriate ioctl for device" error.
While I cannot fathom why this would be happening, I certainly am not opposed
to making the code a bit more compact/efficient if it also fixes a bug.

(closes issue #14482)
Reported by: ys
Patches:
      meetme.patch uploaded by ys (license 281)
Tested by: ys



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@176249 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-16 21:34:27 +00:00
Joshua Colp
c8f9023696 If we are unable to request a DAHDI pseudo channel and we are using the user introduction without review option make sure it gets unset so other code does not blindly assume a DAHDI pseudo channel exists.
(closes issue #14282)
Reported by: cheesegrits


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@170147 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-22 16:50:54 +00:00
Jeff Peeler
e0bec5d67d (closes issue #13480)
Reported by: tzafrir

Replace a bunch of if defined checks for Zaptel/DAHDI through several new defines in dahdi_compat.h. This removes a lot of code duplication. Example from bug:

#ifdef HAVE_ZAPTEL
  fd = open("/dev/zap/pseudo", O_RDWR);
#else
  fd = open("/dev/dahdi/pseudo", O_RDWR);
#endif

is replaced with:
  fd = open(DAHDI_FILE_PSEUDO, O_RDRW);



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@165991 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-19 19:48:00 +00:00
Mark Michelson
a391fd9b1c Fix some memory leaks found while looking at how realtime
configs are handled.

Also cleaned up some coding guidelines violations in app_realtime.c,
mostly related to spacing



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@165255 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-17 20:51:38 +00:00
Russell Bryant
5d985ce022 Fix an issue where callers on an incoming call on an SLA trunk would not hear ringback.
We need to make sure that we don't start writing audio to the trunk channel until we're
actually ready to answer it.  Otherwise, the channel driver will treat it as inband
progress, even though all they are getting is silence.

(closes issue #12471)
Reported by: mthomasslo


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@162286 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-09 20:57:35 +00:00
Jeff Peeler
161a05a3d1 (closes issue #13899)
Reported by: akkornel

This fix is the result of a bug fix in ast_app_separate_args r124395. If an argument does not exist it should always be set to a null string rather than a null pointer.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@157365 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-18 19:13:33 +00:00
Tilghman Lesher
7e353eeaa1 If the SLA thread is not started, then reload causes a memory leak.
(closes issue #13889)
 Reported by: eliel
 Patches: 
       app_meetme.c.patch uploaded by eliel (license 64)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@156294 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-12 19:26:45 +00:00
Jeff Peeler
738ec1fb71 For whatever reason, gcc only warned me about the possible use of an uninitialized variable when compiling 1.6.1.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@156289 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-12 19:10:12 +00:00
Jeff Peeler
c9cec47bf0 (closes issue #13173)
Reported by: pep

This change adds an announce_thread responsible for playing announcements to an existing conference. This allows all announcing to be immediately stopped if necessary but more importantly allows other threads that need to play something to not block. There are multiple benefits to this, but the actual bug is for solving the scenario for a channel to be unusable after hang up for the entire duration of the parting announcement. The parting announcement can be extremely long depending on what the user recorded upon joining the conference.

Reviewed by Russell on Review Board:
http://reviewboard.digium.com/r/25/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@156178 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-12 17:53:44 +00:00
Kevin P. Fleming
2ebf0eee36 remove some more chan_zap references
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@137529 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-13 20:42:33 +00:00
Kevin P. Fleming
a57dd05769 convert this module to be able to handle DAHDI or Zaptel (reported on asterisk-users, don't know how this got missed before)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@137188 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-11 13:33:35 +00:00
Kevin P. Fleming
7b61edde36 build against the now-typedef-free dahdi/user.h
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@134254 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-29 22:05:57 +00:00
Jeff Peeler
f9818af8dd Adds DAHDI support alongside Zaptel. DAHDI usage favored, but all Zap stuff should continue working. Release announcement to follow.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@122314 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-12 19:08:20 +00:00
Tilghman Lesher
3ca503066a Flipflop the sections for two options, since the section for 'X' (exit context)
may otherwise absorb keypresses meant for 's' (admin/user menu).
(closes issue #12836)
 Reported by: blitzrage
 Patches: 
       20080611__bug12836.diff.txt uploaded by Corydon76 (license 14)
 Tested by: blitzrage


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@122137 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-12 15:18:39 +00:00
Joshua Colp
c99280a59e Include the proper headers for using mkdir on FreeBSD.
(closes issue #12430)
Reported by: ys
Patches:
      app_meetme.c.diff uploaded by ys (license 281)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@114167 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-16 14:10:46 +00:00
Joshua Colp
fb51aa974e Create the directory where name recordings will go if it does not exist.
(closes issue #12311)
Reported by: rkeene
Patches:
      12311-mkdir.diff uploaded by qwell (license 4)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@114029 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-10 15:09:04 +00:00
Russell Bryant
f3274be612 Fix a bug where when calls on the trunk side hang up while on hold, the state
is not properly reflected.

(closes issue #11990, reported by anakaoka, patched by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@110163 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-19 22:57:59 +00:00
Joshua Colp
d9e83f85a6 Add an additional check for setting conference parameter when using the marked user options. It was possible for it to return to a no listen/no talk state if a masquerade happened.
(closes issue #12136)
Reported by: aragon


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@107637 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-11 18:47:33 +00:00
Russell Bryant
a04b584272 Only start the SLA thread if SLA has actually been configured.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@106895 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-07 22:51:23 +00:00
Joshua Colp
0b110bb5e8 If entering a conference with the 'w' option ensure that we can't listen or speak until the marked user appears.
(closes issue #11835)
Reported by: alanmcmillan


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@103324 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-11 22:09:07 +00:00
Joshua Colp
fa640604de Replace current spy architecture with backport of audiohooks. This should take care of current known spy issues.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@98972 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-16 20:33:47 +00:00
Joshua Colp
7a3ee5a7fc Don't do conferencing totally in Zaptel if Monitor is running on the channel.
(closes issue #11709)
Reported by: BigJimmy
Patches:
      patch-meetmerec uploaded by BigJimmy (license 371)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@97450 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-09 16:11:17 +00:00
Jason Parker
4a869fa0c3 Don't increment user count until after name has been recorded (if enabled).
Issue 11048, tested by pep.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@92617 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-12 21:15:45 +00:00
Jason Parker
8315785663 Make sure we always close the conference fd if we have an open one.
Issue 11383, reported by markmhy, patch by eliel.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@90696 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-03 22:06:36 +00:00
Joshua Colp
1884c603d6 When unloading app_meetme destroy any auto created contexts created by SLA.
(closes issue #11367)
Reported by: eliel


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89571 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-26 14:41:03 +00:00
Russell Bryant
bd5b8a4014 Update the SLAStation application to account for the case where the SLA thread
has a call out to the station,  but the user has pressed a line button to answer
the call instead of picking up the handset.  If they do, the phone sends out a
new INVITE.  So, the SLAStation app must check to see if it is picking up a
ringing trunk, and ensure that the other stations stop ringing.

(reported internally, patched by me, tested by mogorman)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89296 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-15 17:19:28 +00:00
Luigi Rizzo
a0edff2477 Rename ast_string_field_free_pool to ast_string_field_free_memory,
and ast_string_field_free_all to ast_string_field_reset_all
to avoid misuse (due to too similar names and an error in
documentation). Fix two related memory leaks in app_meetme.

No need to merge to trunk, different fix already applied there.
Not applicable to 1.2



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@88471 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-04 22:38:13 +00:00
Joshua Colp
f66e8c91ea Fix up commit for my Zap channel with spies in Meetme fix. (thanks Tony Mountifield!)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@88026 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-01 13:27:37 +00:00
Joshua Colp
7ee6cdf0c7 If a Zap channel contains a spy or a spy is added take it out of the conference in kernel space and make it go through Asterisk so the spy gets audio from both sides.
(closes issue #10060)
Reported by: mparker


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@87970 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-01 01:53:55 +00:00
Dwayne M. Hubbard
e2611d2f54 remove a race condition for the creation of recordthread's, and fix a small memory leak. This closes issue# 10636
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82286 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-12 20:24:24 +00:00
Joshua Colp
e73fa2ba6f (closes issue #10122)
Reported by: stevefeinstein
Patches:
      meetme-unmute-manager.diff uploaded by qwell (license 4)
Tested by: stevefeinstein
After looking over the code I agree with Qwell. Setting the file descriptor to conference each time just causes a fight back and forth.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81776 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-06 19:40:37 +00:00
Russell Bryant
1996c3a71d Fix a problem with the combination of the 'F' option to pass DTMF through a
conference and options that use DTMF to activate various features.  The problem
was that the BEGIN frame would be passed through, but the END frame would get
intercepted to activate a feature.  Then, the other conference members would hear
DTMF for forever, which they didn't seem to like very much.
(closes issue #10400, reported by stevefeinstein, fixed by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78717 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-09 16:12:57 +00:00
Steve Murphy
17e2aff7de This fix solves problem with intense squelch noise when someone joins conf in bug 9430; We repro'd the problem with meetme opts of 'CciMo'; Josh Colp supplied this patch, and I'm applying it. It looks like playing the recorded username will louse up the next thing played into the channel. Josh rearranged the code so as to start things over before playing data directly into the conference.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@77191 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-25 22:39:27 +00:00
Tilghman Lesher
6cab645954 Using a freed frame causes crashes (closes issue #9317)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@75529 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-18 12:29:41 +00:00
Luigi Rizzo
e0b32b53b1 cast a time_t so that it does not conflict with the print format.
This change was already done on trunk so this change needs to be
blocked from merging.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@72453 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-28 18:37:20 +00:00
Russell Bryant
a959ed6f67 Remove a couple of duplicate unlocks
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@70726 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-21 15:21:16 +00:00
Joshua Colp
ff3d5422b6 Merged revisions 69894 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r69894 | file | 2007-06-19 09:54:03 -0400 (Tue, 19 Jun 2007) | 2 lines

Perform an extra hangup check just in case. (issue #9589 reported by bcnit)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@69895 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-19 13:55:25 +00:00
Russell Bryant
4bce51f79f The SLATRUNK_STATUS variable indicated "SUCCESS" for both an answer of the
incoming call on the trunk, or if the trunk reached its ring timeout.
This patch changes the variable to say "RINGTIMEOUT" in that case.
(issue #9973, reported by n00dle, patch by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@69518 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-15 15:27:34 +00:00
Joshua Colp
2a582ba2cf Really ignore NULL frames and check whether the channel hungup or not. (issue #9912 reported by junky)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@69144 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-13 19:08:24 +00:00
Russell Bryant
1a3e65a793 Fix some crashes related to the use of the "meetme" CLI command. The code for
this command was not locking the conference list at all.
(issue #9351, reported by and patch submitted by Junk-Y, committed patch
 is different and by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@67558 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-05 23:01:44 +00:00
Joshua Colp
aae1e3e377 Remove a double const.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@65452 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-22 15:04:46 +00:00