我在 apps/
文件夹中添加了一个自定义模块到 ast_channel_topic_all
topic.2 topic.undefece,星号发生段故障每个负载the moudle。
#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。
这个问题是调试一个。
- 用调试符号编译星号
- 在asterisk.conf中启用核心转储
- 开始星号。
- 用GDB检查核心转储
https://wiki.asterisk.org/wiki/display/ast/getting a backtrace