2017-03-15 31 views
0

我添加了一個自定義模塊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 
); 

什麼原因導致此錯誤?期待你的回覆。順便提一下,我使用的星號版本是13.10。

+0

聞起來就像你不能傳遞'NULL'作爲'stasis_subscribe'功能 – LPs

+0

第三個參數這是怎麼了星號正式在源代碼中所做的,應該是對。 –

回答