gpt4 book ai didi

c - Asterisk 停滞订阅

转载 作者:行者123 更新时间:2023-11-30 16:48:56 25 4
gpt4 key购买 nike

我在 apps/ 文件夹中添加了一个自定义模块,用于注册到 ast_channel_topic_all 主题。不幸的是,每次加载模块时, Asterisk 都会发生段错误。

#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
);

什么原因导致这个错误?期待你的答复。顺便说一句,我使用的 Asterisk 版本是 13.10。

最佳答案

这个问题是调试问题。

  1. 使用调试符号编译 Asterisk
  2. 在 asterisk.conf 中启用核心转储
  3. 以 Asterisk 开头。
  4. 使用 GDB 检查核心转储

https://wiki.asterisk.org/wiki/display/AST/Getting+a+Backtrace

关于c - Asterisk 停滞订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42805383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com