return AST_MODULE_LOAD_FAILURE;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Bluetooth Mobile Device Channel Driver",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Bluetooth Mobile Device Channel Driver",
.load = load_module,
.unload = unload_module,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
);
return CLI_SUCCESS;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "MySQL RealTime Configuration Driver",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "MySQL RealTime Configuration Driver",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_REALTIME_DRIVER,
);
return AST_MODULE_LOAD_SUCCESS;
}
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Conference Bridge Application");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Conference Bridge Application",
+ .load = load_module,
+ .unload = unload_module,
+ .load_pri = AST_MODPRI_DEVSTATE_PROVIDER,
+);
return load_config(1);
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "MeetMe conference bridge",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "MeetMe conference bridge",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_DEVSTATE_PROVIDER,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "True Call Queueing",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "True Call Queueing",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_DEVSTATE_CONSUMER,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Adaptive ODBC CDR backend",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Adaptive ODBC CDR backend",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Comma Separated Values CDR Backend",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Comma Separated Values CDR Backend",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
);
return AST_MODULE_LOAD_SUCCESS;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Customizable Comma Separated Values CDR Backend",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Customizable Comma Separated Values CDR Backend",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
);
return load_config(1);
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Asterisk Manager Interface CDR Backend",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Asterisk Manager Interface CDR Backend",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
);
return odbc_load_module(1);
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "ODBC CDR Backend",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "ODBC CDR Backend",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
);
return config_module(1);
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "PostgreSQL CDR Backend",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PostgreSQL CDR Backend",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
);
return AST_MODULE_LOAD_SUCCESS;
}
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "RADIUS CDR Backend");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "RADIUS CDR Backend",
+ .load = load_module,
+ .unload = unload_module,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
+ );
return AST_MODULE_LOAD_DECLINE;
}
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "SQLite CDR Backend");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "SQLite CDR Backend",
+ .load = load_module,
+ .unload = unload_module,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
+);
return res;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "SQLite3 Custom CDR Module",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "SQLite3 Custom CDR Module",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
);
return res ? AST_MODULE_LOAD_DECLINE : AST_MODULE_LOAD_SUCCESS;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Customizable syslog CDR Backend",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Customizable syslog CDR Backend",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
);
return tds_unload_module();
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "FreeTDS CDR Backend",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "FreeTDS CDR Backend",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
);
return AST_MODULE_LOAD_SUCCESS;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Adaptive ODBC CEL backend",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Adaptive ODBC CEL backend",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
);
return AST_MODULE_LOAD_SUCCESS;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Customizable Comma Separated Values CEL Backend",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Customizable Comma Separated Values CEL Backend",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
);
return load_config(1);
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Asterisk Manager Interface CEL Backend",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Asterisk Manager Interface CEL Backend",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
);
return my_load_module(1);
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "PostgreSQL CEL Backend",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PostgreSQL CEL Backend",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
);
}
}
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "RADIUS CEL Backend");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "RADIUS CEL Backend",
+ .load = load_module,
+ .unload = unload_module,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
+);
return res;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "SQLite3 Custom CEL Module",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "SQLite3 Custom CEL Module",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
);
return tds_unload_module();
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "FreeTDS CEL Backend",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "FreeTDS CEL Backend",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CDR_DRIVER,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Agent Proxy Channel",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Agent Proxy Channel",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
);
return 0;
}
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "ALSA Console Channel Driver");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "ALSA Console Channel Driver",
+ .load = load_module,
+ .unload = unload_module,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
+ );
return 0;
}
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Bridge Interaction Channel");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Bridge Interaction Channel",
+ .load = load_module,
+ .unload = unload_module,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
+);
return load_config(1);
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Console Channel Driver",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Console Channel Driver",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
);
* AST_MODULE_INFO(, , "DAHDI Telephony"
*/
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, tdesc,
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, tdesc,
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Gtalk Channel Driver",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Gtalk Channel Driver",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "The NuFone Network's OpenH323 Channel Driver",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "The NuFone Network's OpenH323 Channel Driver",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
);
return AST_MODULE_LOAD_SUCCESS;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Inter Asterisk eXchange (Ver 2)",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Inter Asterisk eXchange (Ver 2)",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Jingle Channel Driver",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Jingle Channel Driver",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
);
return 0;
}
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Local Proxy Channel (Note: used internally by other modules)");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Local Proxy Channel (Note: used internally by other modules)",
+ .load = load_module,
+ .unload = unload_module,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
+ );
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Media Gateway Control Protocol (MGCP)",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Media Gateway Control Protocol (MGCP)",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
);
}
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Channel driver for mISDN Support (BRI/PRI)",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Channel driver for mISDN Support (BRI/PRI)",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
);
return 0;
}
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Multicast RTP Paging Channel");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Multicast RTP Paging Channel",
+ .load = load_module,
+ .unload = unload_module,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
+);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Session Initiation Protocol (SIP)",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Session Initiation Protocol (SIP)",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Skinny Client Control Protocol (Skinny)",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Skinny Client Control Protocol (Skinny)",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CHANNEL_DRIVER,
);
static int unload_module(void)
{
return ast_format_unregister(g719_f.name);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER,"ITU G.719",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "ITU G.719");
static int unload_module(void)
{
return ast_format_unregister(g723_1_f.name);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "G.723.1 Simple Timestamp File Format",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "G.723.1 Simple Timestamp File Format");
ast_log(LOG_WARNING, "Failed to unregister format %s.\n", f[i].name);
}
return(0);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw G.726 (16/24/32/40kbps) data",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw G.726 (16/24/32/40kbps) data");
static int unload_module(void)
{
return ast_format_unregister(g729_f.name);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw G729 data",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw G729 data");
static int unload_module(void)
{
return ast_format_unregister(gsm_f.name);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw GSM data",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw GSM data");
static int unload_module(void)
{
return ast_format_unregister(h263_f.name);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw H.263 data",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw H.263 data");
static int unload_module(void)
{
return ast_format_unregister(h264_f.name);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw H.264 data",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw H.264 data");
static int unload_module(void)
{
return ast_format_unregister(ilbc_f.name);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw iLBC data",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw iLBC data");
ast_image_unregister(&jpeg_format);
return 0;
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "jpeg (joint picture experts group) image format",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "jpeg (joint picture experts group) image format");
return ast_format_unregister(vorbis_f.name);
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "OGG/Vorbis audio",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "OGG/Vorbis audio");
|| ast_format_unregister(alaw_f.name)
|| ast_format_unregister(au_f.name)
|| ast_format_unregister(g722_f.name);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw/Sun uLaw/ALaw 8KHz (PCM,PCMA,AU), G.722 16Khz",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw/Sun uLaw/ALaw 8KHz (PCM,PCMA,AU), G.722 16Khz");
static int unload_module(void)
{
return ast_format_unregister(siren14_f.name);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "ITU G.722.1 Annex C (Siren14, licensed from Polycom)",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "ITU G.722.1 Annex C (Siren14, licensed from Polycom)");
static int unload_module(void)
{
return ast_format_unregister(siren7_f.name);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "ITU G.722.1 (Siren7, licensed from Polycom)",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "ITU G.722.1 (Siren7, licensed from Polycom)");
static int unload_module(void)
{
return ast_format_unregister(slin_f.name);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw Signed Linear Audio support (SLN)",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw Signed Linear Audio support (SLN)");
static int unload_module(void)
{
return ast_format_unregister(slin_f.name);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw Signed Linear 16KHz Audio support (SLN16)",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw Signed Linear 16KHz Audio support (SLN16)");
static int unload_module(void)
{
return ast_format_unregister(vox_f.name);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Dialogic VOX (ADPCM) File Format",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Dialogic VOX (ADPCM) File Format");
static int unload_module(void)
{
return ast_format_unregister(wav_f.name);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Microsoft WAV format (8000Hz Signed Linear)",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Microsoft WAV format (8000Hz Signed Linear)");
static int unload_module(void)
{
return ast_format_unregister(wav49_f.name);
-}
+}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Microsoft WAV format (Proprietary GSM)",
- .load = load_module,
- .unload = unload_module,
- .load_pri = 10,
-);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Microsoft WAV format (Proprietary GSM)");
return res;
}
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Load external URL");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Load external URL",
+ .load = load_module,
+ .unload = unload_module,
+ .load_pri = AST_MODPRI_REALTIME_DEPEND2,
+ );
return res;
}
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Gets or sets a device state in the dialplan");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Gets or sets a device state in the dialplan",
+ .load = load_module,
+ .unload = unload_module,
+ .load_pri = AST_MODPRI_DEVSTATE_PROVIDER,
+);
CONFIG_FLAG_FILEUNCHANGED = (1 << 1),
/*! Don't attempt to cache mtime on this config file. */
CONFIG_FLAG_NOCACHE = (1 << 2),
+ /*! Don't attempt to load from realtime (typically called from a realtime driver dependency) */
+ CONFIG_FLAG_NOREALTIME = (1 << 3),
};
#define CONFIG_STATUS_FILEMISSING (void *)0
AST_MODFLAG_LOAD_ORDER = (1 << 1),
};
+enum ast_module_load_priority {
+ AST_MODPRI_REALTIME_DEPEND = 10, /*!< Dependency for a realtime driver */
+ AST_MODPRI_REALTIME_DEPEND2 = 20, /*!< Second level dependency for a realtime driver (func_curl needs res_curl, but is needed by res_config_curl) */
+ AST_MODPRI_REALTIME_DRIVER = 30, /*!< A realtime driver, which provides configuration services for other modules */
+ AST_MODPRI_CHANNEL_DEPEND = 50, /*!< Channel driver dependency (may depend upon realtime, e.g. MOH) */
+ AST_MODPRI_CHANNEL_DRIVER = 60, /*!< Channel drivers (provide devicestate) */
+ AST_MODPRI_APP_DEPEND = 70, /*!< Dependency for an application */
+ AST_MODPRI_DEVSTATE_PROVIDER = 80, /*!< Applications and other modules that _provide_ devicestate (e.g. meetme) */
+ AST_MODPRI_DEVSTATE_PLUGIN = 90, /*!< Plugin for a module that provides devstate (e.g. res_calendar_*) */
+ AST_MODPRI_CDR_DRIVER = 100, /*!< CDR or CEL backend */
+ AST_MODPRI_DEFAULT = 128, /*!< Modules not otherwise defined (such as most apps) will load here */
+ AST_MODPRI_DEVSTATE_CONSUMER = 150, /*!< Certain modules, which consume devstate, need to load after all others (e.g. app_queue) */
+};
+
struct ast_module_info {
/*!
void ast_module_unref(struct ast_module *);
#if defined(__cplusplus) || defined(c_plusplus)
-#define AST_MODULE_INFO(keystr, flags_to_set, desc, load_func, unload_func, reload_func) \
+#define AST_MODULE_INFO(keystr, flags_to_set, desc, load_func, unload_func, reload_func, load_pri) \
static struct ast_module_info __mod_info = { \
NULL, \
load_func, \
keystr, \
flags_to_set, \
AST_BUILDOPT_SUM, \
+ load_pri, \
}; \
static void __attribute__((constructor)) __reg_module(void) \
{ \
static const __attribute__((unused)) struct ast_module_info *ast_module_info = &__mod_info
#define AST_MODULE_INFO_STANDARD(keystr, desc) \
- AST_MODULE_INFO(keystr, AST_MODFLAG_DEFAULT, desc, \
+ AST_MODULE_INFO(keystr, AST_MODFLAG_LOAD_ORDER, desc, \
load_module, \
unload_module, \
- NULL \
+ NULL, \
+ AST_MODPRI_DEFAULT \
)
#else /* plain C */
static const struct ast_module_info *ast_module_info = &__mod_info
#define AST_MODULE_INFO_STANDARD(keystr, desc) \
- AST_MODULE_INFO(keystr, AST_MODFLAG_DEFAULT, desc, \
+ AST_MODULE_INFO(keystr, AST_MODFLAG_LOAD_ORDER, desc, \
.load = load_module, \
.unload = unload_module, \
+ .load_pri = AST_MODPRI_DEFAULT, \
)
#endif /* plain C */
struct ast_variable *v;
char *config = DEFAULT_CONFIG_FILE;
char hostname[MAXHOSTNAMELEN] = "";
- struct ast_flags config_flags = { 0 };
+ struct ast_flags config_flags = { CONFIG_FLAG_NOREALTIME };
struct {
unsigned int dbdir:1;
unsigned int keydir:1;
struct ast_config *config, *configtmp;
struct ast_variable *v;
char *driver, *table, *database, *stringp, *tmp;
- struct ast_flags flags = { 0 };
+ struct ast_flags flags = { CONFIG_FLAG_NOREALTIME };
clear_config_maps();
cfg->include_level++;
- if (strcmp(filename, extconfig_conf) && strcmp(filename, "asterisk.conf") && config_engine_list) {
+ if (!ast_test_flag(&flags, CONFIG_FLAG_NOREALTIME) && config_engine_list) {
struct ast_config_engine *eng;
eng = find_engine(filename, db, sizeof(db), table, sizeof(table));
struct ast_module *a_mod = (struct ast_module *) a;
struct ast_module *b_mod = (struct ast_module *) b;
int res = -1;
- /* if load_pri is not set, default is 255. Lower is better*/
- unsigned char a_pri = ast_test_flag(a_mod->info, AST_MODFLAG_LOAD_ORDER) ? a_mod->info->load_pri : 255;
- unsigned char b_pri = ast_test_flag(b_mod->info, AST_MODFLAG_LOAD_ORDER) ? b_mod->info->load_pri : 255;
+ /* if load_pri is not set, default is 128. Lower is better*/
+ unsigned char a_pri = ast_test_flag(a_mod->info, AST_MODFLAG_LOAD_ORDER) ? a_mod->info->load_pri : 128;
+ unsigned char b_pri = ast_test_flag(b_mod->info, AST_MODFLAG_LOAD_ORDER) ? b_mod->info->load_pri : 128;
if (a_pri == b_pri) {
res = 0;
} else if (a_pri < b_pri) {
static void lua_create_autoservice_functions(lua_State *L);
static void lua_create_hangup_function(lua_State *L);
-void lua_state_destroy(void *data);
+static void lua_state_destroy(void *data);
static lua_State *lua_get_state(struct ast_channel *chan);
static int exists(struct ast_channel *chan, const char *context, const char *exten, int priority, const char *callerid, const char *data);
/*!
* \brief The destructor for lua_datastore
*/
-void lua_state_destroy(void *data)
+static void lua_state_destroy(void *data)
{
if (data)
lua_close(data);
return AST_MODULE_LOAD_SUCCESS;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Lua PBX Switch",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Lua PBX Switch",
.load = load_module,
.unload = unload_module,
.reload = reload,
return -1;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "ADSI Resource",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "ADSI Resource",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_APP_DEPEND,
);
return ast_register_application_xml(app, agi_exec);
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Asterisk Gateway Interface (AGI)",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Asterisk Gateway Interface (AGI)",
.load = load_module,
.unload = unload_module,
+ .load_pri = AST_MODPRI_APP_DEPEND,
);
return AST_MODULE_LOAD_SUCCESS;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Asterisk Calendar integration",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Asterisk Calendar integration",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_DEVSTATE_PROVIDER,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Asterisk CalDAV Calendar Integration",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Asterisk CalDAV Calendar Integration",
.load = load_module,
.unload = unload_module,
+ .load_pri = AST_MODPRI_DEVSTATE_PLUGIN,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Asterisk MS Exchange Web Service Calendar Integration",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Asterisk MS Exchange Web Service Calendar Integration",
.load = load_module,
.unload = unload_module,
+ .load_pri = AST_MODPRI_DEVSTATE_PLUGIN,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Asterisk MS Exchange Calendar Integration",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Asterisk MS Exchange Calendar Integration",
.load = load_module,
.unload = unload_module,
+ .load_pri = AST_MODPRI_DEVSTATE_PLUGIN,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Asterisk iCalendar .ics file integration",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Asterisk iCalendar .ics file integration",
.load = load_module,
.unload = unload_module,
+ .load_pri = AST_MODPRI_DEVSTATE_PLUGIN,
);
.require_func = require_curl,
};
+static int reload_module(void)
+{
+ struct ast_flags flags = { CONFIG_FLAG_NOREALTIME };
+ struct ast_config *cfg;
+ struct ast_variable *var;
+
+ if (!(cfg = ast_config_load("res_curl.conf", flags))) {
+ return 0;
+ } else if (cfg == CONFIG_STATUS_FILEINVALID) {
+ ast_log(LOG_WARNING, "res_curl.conf could not be parsed!\n");
+ return 0;
+ }
+
+ if (!(var = ast_variable_browse(cfg, "globals")) && !(var = ast_variable_browse(cfg, "global")) && !(var = ast_variable_browse(cfg, "general"))) {
+ ast_log(LOG_WARNING, "[globals] not found in res_curl.conf\n");
+ ast_config_destroy(cfg);
+ return 0;
+ }
+
+ for (; var; var = var->next) {
+ if (strncmp(var->name, "CURLOPT(", 8)) {
+ char name[256];
+ snprintf(name, sizeof(name), "CURLOPT(%s)", var->name);
+ pbx_builtin_setvar_helper(NULL, name, var->value);
+ } else {
+ pbx_builtin_setvar_helper(NULL, var->name, var->value);
+ }
+ }
+ ast_config_destroy(cfg);
+ return 0;
+}
+
static int unload_module(void)
{
ast_config_engine_deregister(&curl_engine);
}
}
+ if (!ast_module_check("func_curl.so")) {
+ if (ast_load_resource("func_curl.so") != AST_MODULE_LOAD_SUCCESS) {
+ ast_log(LOG_ERROR, "Cannot load func_curl, so res_config_curl cannot be loaded\n");
+ return AST_MODULE_LOAD_DECLINE;
+ }
+ }
+
+ reload_module();
+
ast_config_engine_register(&curl_engine);
ast_verb(1, "res_config_curl loaded.\n");
return 0;
}
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Realtime Curl configuration");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Realtime Curl configuration",
+ .load = load_module,
+ .unload = unload_module,
+ .reload = reload_module,
+ .load_pri = AST_MODPRI_REALTIME_DRIVER,
+ );
return CLI_SUCCESS;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "LDAP realtime interface",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "LDAP realtime interface",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_REALTIME_DRIVER,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Realtime ODBC configuration",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Realtime ODBC configuration",
.load = load_module,
.unload = unload_module,
.reload = reload_module,
+ .load_pri = AST_MODPRI_REALTIME_DRIVER,
);
}
/* needs usecount semantics defined */
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "PostgreSQL RealTime Configuration Driver",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PostgreSQL RealTime Configuration Driver",
.load = load_module,
.unload = unload_module,
- .reload = reload
+ .reload = reload,
+ .load_pri = AST_MODPRI_REALTIME_DRIVER,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Realtime SQLite configuration",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Realtime SQLite configuration",
.load = load_module,
.unload = unload_module,
+ .load_pri = AST_MODPRI_REALTIME_DRIVER,
);
}
/* needs usecount semantics defined */
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Cryptographic Digital Signatures",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Cryptographic Digital Signatures",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CHANNEL_DEPEND, /*!< Since we don't have a config file, we could move up to REALTIME_DEPEND, if necessary */
);
if (curl_global_init(CURL_GLOBAL_ALL)) {
ast_log(LOG_ERROR, "Unable to initialize the CURL library. Cannot load res_curl\n");
return AST_MODULE_LOAD_DECLINE;
- }
+ }
return res;
}
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "cURL Resource Module");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "cURL Resource Module",
+ .load = load_module,
+ .unload = unload_module,
+ .load_pri = AST_MODPRI_REALTIME_DEPEND,
+ );
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Generic FAX Applications",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Generic FAX Applications",
.load = load_module,
.unload = unload_module,
+ .load_pri = AST_MODPRI_APP_DEPEND,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "AJI - Asterisk Jabber Interface",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "AJI - Asterisk Jabber Interface",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CHANNEL_DEPEND,
);
}
/* usecount semantics need to be defined */
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Call Monitoring Resource",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Call Monitoring Resource",
.load = load_module,
.unload = unload_module,
+ .load_pri = AST_MODPRI_CHANNEL_DEPEND,
);
return res;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Music On Hold Resource",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Music On Hold Resource",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CHANNEL_DEPEND,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "ODBC resource",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "ODBC resource",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_REALTIME_DEPEND,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Asterisk RTP Stack",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Asterisk RTP Stack",
.load = load_module,
.unload = unload_module,
.reload = reload_module,
+ .load_pri = AST_MODPRI_CHANNEL_DEPEND,
);
return 0;
}
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Multicast RTP Engine");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Multicast RTP Engine",
+ .load = load_module,
+ .unload = unload_module,
+ .load_pri = AST_MODPRI_CHANNEL_DEPEND,
+);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Simplified Message Desk Interface (SMDI) Resource",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Simplified Message Desk Interface (SMDI) Resource",
.load = load_module,
.unload = unload_module,
.reload = reload,
+ .load_pri = AST_MODPRI_CHANNEL_DEPEND,
);
return AST_MODULE_LOAD_SUCCESS;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Generic Speech Recognition API",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Generic Speech Recognition API",
.load = load_module,
.unload = unload_module,
+ .load_pri = AST_MODPRI_APP_DEPEND,
);
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Secure RTP (SRTP)",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Secure RTP (SRTP)",
.load = load_module,
.unload = unload_module,
+ .load_pri = AST_MODPRI_CHANNEL_DEPEND,
);
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "DAHDI Timing Interface",
.load = load_module,
.unload = unload_module,
- .load_pri = 10,
+ .load_pri = AST_MODPRI_CHANNEL_DEPEND,
);
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "KQueue Timing Interface",
.load = load_module,
.unload = unload_module,
- .load_pri = 10,
+ .load_pri = AST_MODPRI_CHANNEL_DEPEND,
);
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "pthread Timing Interface",
.load = load_module,
.unload = unload_module,
- .load_pri = 10,
+ .load_pri = AST_MODPRI_CHANNEL_DEPEND,
);
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Timerfd Timing Interface",
.load = load_module,
.unload = unload_module,
- .load_pri = 10,
+ .load_pri = AST_MODPRI_CHANNEL_DEPEND,
);