aboutsummaryrefslogtreecommitdiffstats
path: root/res/res_musiconhold.c
AgeCommit message (Collapse)AuthorFilesLines
2010-04-30Merged revisions 260346 via svnmerge from mmichelson1-3/+14
https://origsvn.digium.com/svn/asterisk/trunk ................ r260346 | mmichelson | 2010-04-30 15:11:02 -0500 (Fri, 30 Apr 2010) | 24 lines Merged revisions 260345 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r260345 | mmichelson | 2010-04-30 15:08:15 -0500 (Fri, 30 Apr 2010) | 18 lines Fix potential crash from race condition due to accessing channel data without the channel locked. In res_musiconhold.c, there are several places where a channel's stream's existence is checked prior to calling ast_closestream on it. The issue here is that in several cases, the channel was not locked while checking the stream. The result was that if two threads checked the state of the channel's stream at approximately the same time, then there could be a situation where both threads attempt to call ast_closestream on the channel's stream. The result here is that the refcount for the stream would go below 0, resulting in a crash. I have added proper channel locking to res_musiconhold.c to ensure that we do not try to check chan->stream without the channel locked. A Digium customer has been using this patch for several weeks and has not had any crashes since applying the patch. ABE-2147 ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@260373 f38db490-d61c-443f-a65b-d21fe96a405b
2010-03-05Merged revisions 250787 via svnmerge from jpeeler1-1/+1
https://origsvn.digium.com/svn/asterisk/trunk ................ r250787 | jpeeler | 2010-03-04 19:05:46 -0600 (Thu, 04 Mar 2010) | 16 lines Merged revisions 250786 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r250786 | jpeeler | 2010-03-04 19:02:58 -0600 (Thu, 04 Mar 2010) | 9 lines Fix not being able to specify a URL in MOH class directory. Don't attempt to chdir on a URL! (closes issue #16875) Reported by: raarts Patches: moh-http.patch uploaded by raarts (license 937) ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@250790 f38db490-d61c-443f-a65b-d21fe96a405b
2010-01-16Merged revisions 240667 via svnmerge from seanbright1-0/+4
https://origsvn.digium.com/svn/asterisk/trunk ........ r240667 | seanbright | 2010-01-15 19:54:08 -0500 (Fri, 15 Jan 2010) | 2 lines Get MoH building on OpenSolaris. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@240670 f38db490-d61c-443f-a65b-d21fe96a405b
2009-12-10Merged revisions 234210 via svnmerge from tilghman1-0/+3
https://origsvn.digium.com/svn/asterisk/trunk ........ r234210 | tilghman | 2009-12-10 12:56:23 -0600 (Thu, 10 Dec 2009) | 2 lines Missed a case that emits a WARNING where none is warranted. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@234213 f38db490-d61c-443f-a65b-d21fe96a405b
2009-12-08Merged revisions 233718 via svnmerge from tilghman1-75/+40
https://origsvn.digium.com/svn/asterisk/trunk ........ r233718 | tilghman | 2009-12-08 12:22:44 -0600 (Tue, 08 Dec 2009) | 8 lines Find another ref leak and change how we manage module references. (closes issue #16388) Reported by: parisioa Patches: 20091208__issue16388.diff.txt uploaded by tilghman (license 14) Tested by: parisioa, tilghman Review: https://reviewboard.asterisk.org/r/442/ ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@233731 f38db490-d61c-443f-a65b-d21fe96a405b
2009-12-03Oops, really remove it this timetilghman1-2/+0
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@232678 f38db490-d61c-443f-a65b-d21fe96a405b
2009-12-03Recorded merge of revisions 232660-232661 via svnmerge from tilghman1-41/+188
https://origsvn.digium.com/svn/asterisk/trunk ........ r232660 | tilghman | 2009-12-02 18:08:55 -0600 (Wed, 02 Dec 2009) | 19 lines Fix multiple issues with musiconhold, which led to classes not getting destroyed properly. * Classes are now tracked past removal from the core container, and module removal is actively prevented until all references are freed. * A hanging reference stored in the channel has been removed. This could have caused a mismatch and the music state not properly cleared, if two or more reloads occurred between MOH being stopped and MOH being restarted. * In certain circumstances, duplicate classes were possible. * A race existed at reload time between a process being killed and the thread responsible for reading from the related pipe respawning that process. * Several reference counts have also been corrected. At least one could have caused deleted classes to stick around forever, consuming resources. This originally manifested as MOH external processes that were not killed at reload time. (closes issue #16279, closes issue #16207) Reported by: parisioa, dcabot Patches: 20091202__issue16279__2.diff.txt uploaded by tilghman (license 14) Tested by: parisioa, tilghman ........ r232661 | tilghman | 2009-12-02 18:09:36 -0600 (Wed, 02 Dec 2009) | 2 lines Remove debugging line ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@232675 f38db490-d61c-443f-a65b-d21fe96a405b
2009-10-06Merged revisions 222176 via svnmerge from kpfleming1-2/+2
https://origsvn.digium.com/svn/asterisk/trunk ................ r222176 | kpfleming | 2009-10-05 20:24:24 -0500 (Mon, 05 Oct 2009) | 27 lines Recorded merge of revisions 222152 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r222152 | kpfleming | 2009-10-05 20:16:36 -0500 (Mon, 05 Oct 2009) | 20 lines Fix ao2_iterator API to hold references to containers being iterated. See Mantis issue for details of what prompted this change. Additional notes: This patch changes the ao2_iterator API in two ways: F_AO2I_DONTLOCK has become an enum instead of a macro, with a name that fits our naming policy; also, it is now necessary to call ao2_iterator_destroy() on any iterator that has been created. Currently this only releases the reference to the container being iterated, but in the future this could also release other resources used by the iterator, if the iterator implementation changes to use additional resources. (closes issue #15987) Reported by: kpfleming Review: https://reviewboard.asterisk.org/r/383/ ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@222187 f38db490-d61c-443f-a65b-d21fe96a405b
2009-09-10Merged revisions 217730 via svnmerge from mnick1-7/+3
https://origsvn.digium.com/svn/asterisk/trunk ........ r217730 | mnick | 2009-09-10 14:39:41 -0500 (Thu, 10 Sep 2009) | 17 lines Sets the correct musicclass after an announcement (closes issue #15279) Reported by: mbeckwell Patches: patch.txt uploaded by mnick (license ) Tested by: mnick (closes issue #15832) Reported by: mbeckwell Patches: patch.txt uploaded by mnick (license 874) Tested by: mnick ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@217739 f38db490-d61c-443f-a65b-d21fe96a405b
2009-08-10AST-2009-005tilghman1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@211580 f38db490-d61c-443f-a65b-d21fe96a405b
2009-07-27Merged revisions 209197 via svnmerge from mmichelson1-20/+27
https://origsvn.digium.com/svn/asterisk/trunk ........ r209197 | mmichelson | 2009-07-27 15:11:42 -0500 (Mon, 27 Jul 2009) | 9 lines Honor channel's music class when using realtime music on hold. (closes issue #15051) Reported by: alexh Patches: 15051.patch uploaded by mmichelson (license 60) Tested by: alexh ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@209222 f38db490-d61c-443f-a65b-d21fe96a405b
2009-06-18Merged revisions 201610 via svnmerge from russell1-1/+2
https://origsvn.digium.com/svn/asterisk/trunk ................ r201610 | russell | 2009-06-18 10:27:10 -0500 (Thu, 18 Jun 2009) | 36 lines Merged revisions 201600 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r201600 | russell | 2009-06-18 10:24:31 -0500 (Thu, 18 Jun 2009) | 29 lines Fix memory corruption and leakage related reloads of non files mode MoH classes. For Music on Hold classes that are not files mode, meaning that we are executing an application that will feed us audio data, we use a thread to monitor the external application and read audio from it. This thread also makes use of the MoH class object. In the MoH class destructor, we used pthread_cancel() to ask the thread to exit. Unfortunately, the code did not wait to ensure that the thread actually went away. What needed to be done is a pthread_join() to ensure that the thread fully cleans up before we proceed. By adding this one line, we resolve two significant problems: 1) Since the thread was never joined, it never fully goes away. So, on every reload of non-files mode MoH, an unused thread was sticking around. 2) There was a race condition here where the application monitoring thread could still try to access the MoH class, even though the thread executing the MoH reload has already destroyed it. (issue #15109) Reported by: jvandal (issue #15123) Reported by: axisinternet (issue #15195) Reported by: amorsen (issue AST-208) ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@201614 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-13Merged revisions 188102 via svnmerge from mmichelson1-1/+3
https://origsvn.digium.com/svn/asterisk/trunk ........ r188102 | mmichelson | 2009-04-13 14:31:48 -0500 (Mon, 13 Apr 2009) | 5 lines Fix another crash related to cached realtime music on hold. This was another off-by-one problem caused by moh_register. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@188105 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-09Merged revisions 187421,187424 via svnmerge from mmichelson1-42/+51
https://origsvn.digium.com/svn/asterisk/trunk ........ r187421 | mmichelson | 2009-04-09 12:30:39 -0500 (Thu, 09 Apr 2009) | 21 lines Fix a crash in res_musiconhold when using cached realtime moh. The moh_register function links an mohclass and then immediately unrefs the class since the container now has a reference. The problem with using realtime music on hold is that the class is allocated, registered, and started in one fell swoop. The refcounting logic resulted in the count being off by one. The same problem did not happen when using a static config because the allocation and registration of an mohclass is a separate operation from starting moh. This also did not affect non-cached realtime moh because the classes are not registered at all. I also have modified res_musiconhold to use the _t_ variants of the ao2_ functions so that more info can be gleaned when attempting to trace the refcounts. I found this to be incredibly helpful for debugging this issue and there's no good reason to remove it. (closes issue #14661) Reported by: sum ........ r187424 | mmichelson | 2009-04-09 12:34:39 -0500 (Thu, 09 Apr 2009) | 3 lines Use safe macro practices even though they really aren't necessary. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@187496 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-08Merged revisions 187046 via svnmerge from mmichelson1-3/+3
https://origsvn.digium.com/svn/asterisk/trunk ................ r187046 | mmichelson | 2009-04-08 11:52:20 -0500 (Wed, 08 Apr 2009) | 16 lines Merged revisions 187045 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r187045 | mmichelson | 2009-04-08 11:52:03 -0500 (Wed, 08 Apr 2009) | 10 lines Fix a small logical error when loading moh classes. We were unconditionally incrementing the number of mohclasses registered. However, we should actually only increment if the call to moh_register was successful. While this probably has never caused problems, I noticed it and decided to fix it anyway. ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@187049 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-12Merged revisions 181664 via svnmerge from file1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r181664 | file | 2009-03-12 13:56:20 -0300 (Thu, 12 Mar 2009) | 2 lines Fix incorrect usage of strncasecmp... I really meant to use strcasecmp. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@181665 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-12Merged revisions 181659-181660 via svnmerge from file1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r181659 | file | 2009-03-12 13:50:37 -0300 (Thu, 12 Mar 2009) | 8 lines Fix another scenario where depending on configuration the stream would not get read. For custom commands we don't know whether the audio is coming from a stream or not so we are going to have to read the data despite no channels. (closes issue #14416) Reported by: caspy ........ r181660 | file | 2009-03-12 13:52:45 -0300 (Thu, 12 Mar 2009) | 2 lines Fix logic flaw in previous commit. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@181661 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-12Merged revisions 181655 via svnmerge from file1-2/+2
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r181655 | file | 2009-03-12 13:29:19 -0300 (Thu, 12 Mar 2009) | 10 lines Fix issue with streaming MOH failing if nobody is listening. When a music class is setup to actually provide music on hold from a stream we need to constantly read audio from it since it will constantly be providing audio. This is now done despite there being no channels listening to it. (closes issue #14416) Reported by: caspy ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@181656 f38db490-d61c-443f-a65b-d21fe96a405b
2009-02-09Merged revisions 174218 via svnmerge from file1-9/+3
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r174218 | file | 2009-02-09 10:48:21 -0400 (Mon, 09 Feb 2009) | 4 lines Don't overwrite our pointer to the music class when music on hold stops. We will use this if it starts again to see if we can resume the music where it left off. (closes issue #14407) Reported by: mostyn ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@174219 f38db490-d61c-443f-a65b-d21fe96a405b
2009-01-09Merged revisions 168198 via svnmerge from russell1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r168198 | russell | 2009-01-09 16:14:38 -0600 (Fri, 09 Jan 2009) | 2 lines Make this compile for mvanbaak ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@168200 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-22Cosmetic change - don't mix struct initializer styles.russell1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@166436 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-22Fix a bad typo.russell1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@166377 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-22Re-work ref count handling of MoH classes using astobj2 to resolve crashes.russell1-371/+419
(closes issue #13566) Reported by: igorcarneiro Tested by: russell Review: http://reviewboard.digium.com/r/106/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@166273 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-18Merged revisions 165661 via svnmerge from russell1-6/+7
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r165661 | russell | 2008-12-18 12:52:18 -0600 (Thu, 18 Dec 2008) | 7 lines Set the process group ID on the MOH process so that all children will get killed (closes issue #14099) Reported by: caspy Patches: res_musiconhold.c.patch.killpg.try2 uploaded by caspy (license 645) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@165662 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-16Merged revisions 164605 via svnmerge from russell1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r164605 | russell | 2008-12-16 08:28:10 -0600 (Tue, 16 Dec 2008) | 5 lines Don't try to change working directory if a directory was not configured. (closes issue #14089) Reported by: caspy ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@164606 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-10Merged revisions 162926 via svnmerge from jpeeler1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r162926 | jpeeler | 2008-12-10 16:52:51 -0600 (Wed, 10 Dec 2008) | 3 lines Oops, inverted logic for a strcasecmp check. Pointed out by mmichelson, thanks! ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@162927 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-10Merged revisions 162874 via svnmerge from jpeeler1-5/+5
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r162874 | jpeeler | 2008-12-10 16:04:18 -0600 (Wed, 10 Dec 2008) | 5 lines (closes issue #13229) Reported by: clegall_proformatique Ensure that moh_generate does not return prematurely before local_ast_moh_stop is called. Also, the sleep in mp3_spawn now only occurs for http locations since it seems to have been added originally only for failing media streams. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@162891 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-05Janitor, use ARRAY_LEN() when possible.eliel1-2/+2
(closes issue #13990) Reported by: eliel Patches: array_len.diff uploaded by eliel (license 64) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@161218 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-18This change prevents a crash from occurring if res_musiconhold.sommichelson1-0/+1
is unloaded and then Asterisk is stopped. The problem was that we are not unregistering the ast_moh_destroy function at exit. (closes issue #13761) Reported by: eliel Patches: res_musiconhold.c.patch uploaded by eliel (license 64) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@157592 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-02fix small bug introduced while cleaning up compiler warningskpfleming1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@153618 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-02bring over all the fixes for the warnings found by gcc 4.3.x from the 1.4 ↵kpfleming1-6/+18
branch, and add the ones needed for all the new code here too git-svn-id: http://svn.digium.com/svn/asterisk/trunk@153616 f38db490-d61c-443f-a65b-d21fe96a405b
2008-10-16support relative paths in musiconhold.conf, which makes moh work by default ↵kpfleming1-5/+15
when Asterisk was configured using --prefix and 'make samples' is run git-svn-id: http://svn.digium.com/svn/asterisk/trunk@149917 f38db490-d61c-443f-a65b-d21fe96a405b
2008-09-12Create a new config file status, CONFIG_STATUS_FILEINVALID for differentiatingtilghman1-1/+2
when a file is invalid from when a file is missing. This is most important when we have two configuration files. Consider the following example: Old system: sip.conf users.conf Old result New result ======== ========== ========== ========== Missing Missing SIP doesn't load SIP doesn't load Missing OK SIP doesn't load SIP doesn't load Missing Invalid SIP doesn't load SIP doesn't load OK Missing SIP loads SIP loads OK OK SIP loads SIP loads OK Invalid SIP loads incompletely SIP doesn't load Invalid Missing SIP doesn't load SIP doesn't load Invalid OK SIP doesn't load SIP doesn't load Invalid Invalid SIP doesn't load SIP doesn't load So in the case when users.conf doesn't load because there's a typo that disrupts the syntax, we may only partially load users, instead of failing with an error, which may cause some calls not to get processed. Worse yet, the old system would do this with no indication that anything was even wrong. (closes issue #10690) Reported by: dtyoo Patches: 20080716__bug10690.diff.txt uploaded by Corydon76 (license 14) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@142992 f38db490-d61c-443f-a65b-d21fe96a405b
2008-08-10All of the res/ stuff (other than res_jabber) from the RSW branch.seanbright1-19/+19
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@137028 f38db490-d61c-443f-a65b-d21fe96a405b
2008-07-01Add AMI events for start/stop of MOHtilghman1-0/+13
(closes issue #12909) Reported by: chris-mac Patches: res_musiconhold-event.patch uploaded by chris-mac (license 506) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@127169 f38db490-d61c-443f-a65b-d21fe96a405b
2008-06-26fix compile failure found by buildbot (go, buildbot!)kpfleming1-0/+2
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@125279 f38db490-d61c-443f-a65b-d21fe96a405b
2008-06-25Merged revisions 125132 via svnmerge from kpfleming1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r125132 | kpfleming | 2008-06-25 17:21:30 -0500 (Wed, 25 Jun 2008) | 10 lines allow tonezone to live in a different place than DAHDI/Zaptel, since dahdi-tools and dahdi-linux are now separate packages and can be installed in different places don't include tonezone.h in dahdi_compat.h, because only a couple of modules need it get app_rpt building again after the DAHDI changes (closes issue #12911) Reported by: tzafrir ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@125138 f38db490-d61c-443f-a65b-d21fe96a405b
2008-06-19Older versions of GNU gcc do not allow 'NULL' as sentinel.mvanbaak1-4/+4
They want (char *)NULL as sentinel. An example is OpenBSD (confirmed on 4.3) that ships with gcc 3.3.4 This commit introduces a contstant SENTINEL which is declared as: #define SENTINEL ((char *)NULL) All places I could test compile on my openbsd system are converted. Update CODING-GUIDELINES to tell about this constant. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@124127 f38db490-d61c-443f-a65b-d21fe96a405b
2008-06-12Goodbye Zaptel, hello DAHDI. Removes Zaptel driver support with DAHDI. ↵jpeeler1-12/+12
Configuration file and dialplan backwards compatability has been put in place where appropiate. Release announcement to follow. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@122234 f38db490-d61c-443f-a65b-d21fe96a405b
2008-05-22- revert change to ast_queue_hangup and create ast_queue_hangup_with_causemvanbaak1-1/+1
- make data member of the ast_frame struct a named union instead of a void Recently the ast_queue_hangup function got a new parameter, the hangupcause Feedback came in that this is no good and that instead a new function should be created. This I did. The hangupcause was stored in the seqno member of the ast_frame struct. This is not very elegant, and since there's already a data member that one should be used. Problem is, this member was a void *. Now it's a named union so it can hold a pointer, an uint32 and there's a padding in case someone wants to store another type in there in the future. This commit is so massive, because all ast_frame.data uses have to be altered to ast_frame.data.data Thanks russellb and kpfleming for the feedback. (closes issue #12674) Reported by: mvanbaak git-svn-id: http://svn.digium.com/svn/asterisk/trunk@117802 f38db490-d61c-443f-a65b-d21fe96a405b
2008-05-06Merged revisions 115418 via svnmerge from qwell1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r115418 | qwell | 2008-05-06 14:34:58 -0500 (Tue, 06 May 2008) | 7 lines Switch to using ast_random() rather than just rand(). This does not fix the bug reported, but I believe it is correct. (from issue #12446) Patches: bug_12446.diff uploaded by snuffy (license 35) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@115419 f38db490-d61c-443f-a65b-d21fe96a405b
2008-04-23Merged revisions 114594 via svnmerge from qwell1-17/+36
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r114594 | qwell | 2008-04-23 13:28:44 -0500 (Wed, 23 Apr 2008) | 8 lines Fix reload/unload for res_musiconhold module. (closes issue #11575) Reported by: sunder Patches: M11575_14_rev3.diff uploaded by junky (license 177) bug11575_trunk.diff.txt uploaded by jamesgolovich (license 176) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@114595 f38db490-d61c-443f-a65b-d21fe96a405b
2008-04-16Standardized routines for forking processes (keeps all the specialized code ↵tilghman1-20/+7
in one place). git-svn-id: http://svn.digium.com/svn/asterisk/trunk@114188 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-20Add some fixes that I made in regards to wideband codec handling to getrussell1-1/+1
G.722 music on hold working for me. (issue #12164, reported by milazzo and jsmith, patches by me) res/res_musiconhold.c: - I moved a single line so that the sample queue update happened before ast_write(). The reason that this was a bug is that the G.722 frame originally says it has 320 samples in it (which is correct). However, when the frame is written to a channel that uses RTP, main/rtp.c modifies the frame to cut the number of samples in half before it sends it on the wire. This is to account for the stupid incorrect G.722 spec that makes it so we have to lie about the number of samples with RTP. I should probably go and re-work the RTP code so it doesn't modify the frame so that a bug like this won't happen in the future. However, this change to MOH is harmless. main/channel.c: - I made two fixes in regards to generator timing. Generators use samples for timing. However, this code assumed 8 kHz samples. In one case, it was a hard coded 160 samples, that is now written as the sample rate / 50. The other place was dealing with timing a generator based on frames coming from the other direction. However, that would have only worked if the sample rates for the formats in both directions were the same. The code now takes into account that the sample rates may differ, and scales the generator samples accordingly. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@110268 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-19Merged revisions 110035 via svnmerge from file1-2/+8
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r110035 | file | 2008-03-19 16:11:33 -0300 (Wed, 19 Mar 2008) | 4 lines Add sanity checking for position resuming. We *have* to make sure that the position does not exceed the total number of files present, and we have to make sure that the position's filename is the same as previous. These values can change if a music class is reloaded and give unpredictable behavior. (closes issue #11663) Reported by: junky ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@110036 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-14Merged revisions 108682 via svnmerge from qwell1-12/+15
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r108682 | qwell | 2008-03-14 09:29:05 -0500 (Fri, 14 Mar 2008) | 4 lines Fix a potential segfault if chan (or chan->music_state) is NULL. Closes issue #12210, credit to edantie for pointing this out. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@108683 f38db490-d61c-443f-a65b-d21fe96a405b
2008-02-131. Deprecate SetMusicOnHold and WaitMusicOnHold.mmichelson1-15/+78
2. Add a duration parameter to MusicOnHold (closes issue #11904) Reported by: dimas Patches: v2-moh.patch uploaded by dimas (license 88) Tested by: dimas git-svn-id: http://svn.digium.com/svn/asterisk/trunk@103658 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-11Removing a pointless memset. The memory was just calloc'd, so the mmichelson1-1/+0
memory is already zeroed out git-svn-id: http://svn.digium.com/svn/asterisk/trunk@92402 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-28Merged revisions 90101 via svnmerge from file1-1/+3
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r90101 | file | 2007-11-28 18:59:28 -0400 (Wed, 28 Nov 2007) | 6 lines Fix a few memory leaks. (closes issue #11405) Reported by: eliel Patches: load_realtime.patch uploaded by eliel (license 64) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@90102 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-28Adding support for realtime music on hold. The following are the main points:mmichelson1-18/+235
1. When moh is started, we search first in memory to find the class. If we do not find it in memory, we search realtime instead. 2. When moh is restarted (as in, it had been started on this particular channel, stopped, and now we're starting it again), if using the "files" mode, then realtime will always be rechecked. If you are using other modes, however, we will simply reattach to the external running process which was playing moh earlier in the call. This is a necessary compromise so that we don't end up with too many background processes. 3. musiconhold.conf has a general section now. It has one option: cachertclasses. If set to yes, then moh classes found in realtime will be added to the in-memory list. This has the advantage of not requiring database lookups each time moh is started, but it has the disadvantage of not truly being realtime. I have tested this for functionality, and it passes. I also tested this under valgrind and there are no memory problems reported under typical use. Special thanks to Sergee for implementing this feature and enduring my complaints on the bugtracker! (closes issue #11196, reported and patched by sergee) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89946 f38db490-d61c-443f-a65b-d21fe96a405b