mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-30 07:41:39 +00:00
Let systems without a working fork() use res_musiconhold.
Files mode doesn't require anything special, so that can still be used just fine. AST-357 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@269426 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -28,7 +28,6 @@
|
||||
/*** MODULEINFO
|
||||
<conflict>win32</conflict>
|
||||
<use>dahdi</use>
|
||||
<depend>working_fork</depend>
|
||||
***/
|
||||
|
||||
#include "asterisk.h"
|
||||
@@ -353,6 +352,7 @@ static struct ast_generator moh_file_stream = {
|
||||
.generate = moh_files_generator,
|
||||
};
|
||||
|
||||
#ifdef HAVE_WORKING_FORK
|
||||
static int spawn_mp3(struct mohclass *class)
|
||||
{
|
||||
int fds[2];
|
||||
@@ -605,6 +605,7 @@ static void *monmp3thread(void *data)
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int moh0_exec(struct ast_channel *chan, void *data)
|
||||
{
|
||||
@@ -917,6 +918,7 @@ static int init_files_class(struct mohclass *class)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef HAVE_WORKING_FORK
|
||||
static int init_app_class(struct mohclass *class)
|
||||
{
|
||||
#ifdef HAVE_DAHDI
|
||||
@@ -959,6 +961,7 @@ static int init_app_class(struct mohclass *class)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*!
|
||||
* \note This function owns the reference it gets to moh
|
||||
@@ -988,10 +991,16 @@ static int moh_register(struct mohclass *moh, int reload)
|
||||
} else if (!strcasecmp(moh->mode, "mp3") || !strcasecmp(moh->mode, "mp3nb") ||
|
||||
!strcasecmp(moh->mode, "quietmp3") || !strcasecmp(moh->mode, "quietmp3nb") ||
|
||||
!strcasecmp(moh->mode, "httpmp3") || !strcasecmp(moh->mode, "custom")) {
|
||||
#ifdef HAVE_WORKING_FORK
|
||||
if (init_app_class(moh)) {
|
||||
moh = mohclass_unref(moh);
|
||||
return -1;
|
||||
}
|
||||
#else
|
||||
ast_log(LOG_WARNING, "Cannot use mode '%s' music on hold, as there is no working fork().\n", moh->mode);
|
||||
moh = mohclass_unref(moh);
|
||||
return -1;
|
||||
#endif
|
||||
} else {
|
||||
ast_log(LOG_WARNING, "Don't know how to do a mode '%s' music on hold\n", moh->mode);
|
||||
moh = mohclass_unref(moh);
|
||||
|
||||
Reference in New Issue
Block a user