C 星号
我在C 星号,c,asterisk,C,Asterisk,我在apps/文件夹中添加了一个自定义模块,用于在ast\u channel\u topic\u all主题中注册。不幸的是,每次加载模块时都会出现段故障 #include "asterisk.h" #include "asterisk/module.h" #include "asterisk/json.h" #include "asterisk/stasis.h" #include "asterisk/stasis_channels.h" #include "asterisk/manager.
apps/
文件夹中添加了一个自定义模块,用于在ast\u channel\u topic\u all
主题中注册。不幸的是,每次加载模块时都会出现段故障
#include "asterisk.h"
#include "asterisk/module.h"
#include "asterisk/json.h"
#include "asterisk/stasis.h"
#include "asterisk/stasis_channels.h"
#include "asterisk/manager.h"
ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#define AST_MODULE "stasis_test"
static struct stasis_subscription *queue_stasis_message_sub;
static void queue_subscribe_callback(void *data, struct stasis_subscription *sub, struct stasis_topic *topic, struct stasis_message *message){
struct ast_channel_blob *payload = stasis_message_data(message);
// ...
}
static int unload_module(void) {
stasis_unsubscribe_and_join(queue_stasis_message_sub);
return 0;
}
static int load_module(void) {
queue_stasis_message_sub = stasis_subscribe(ast_channel_topic_all(), queue_subscribe_callback, NULL);
if ( !queue_stasis_message_sub ) {
unload_module();
return AST_MODULE_LOAD_DECLINE;
}
return AST_MODULE_LOAD_SUCCESS;
}
AST_MODULE_INFO(
ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, AST_MODULE,
.load = load_module,
.unload = unload_module
);
是什么导致了这个错误?期待您的回复。
顺便说一句,我使用的星号版本是13.10。这个问题是调试问题
闻起来好像你不能将
NULL
作为stasis\u subscribe
函数的第三个参数传递这是星号在源代码中正式做的,应该是正确的。