2017-03-15 9 views
0

apps/のカスタムモジュールをast_channel_topic_allに登録しました。残念なことに、アスタリスクが発生したときにセグメントエラーが発生しました。アスタリスクstasis subscribe

#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

  • チェックコアダンプはstasis_subscribe'機能 – LPs

  • +0

    'の第三引数として' NULL'を渡すことができないあなたのようなにおい右。 –

    答えて

    0

    この質問はデバッグワンです。

    1. コンパイルアスタリスクデバッグシンボル
    2. asterisk.confでスタートアスタリスクをコアダンプを有効にします。アスタリスクは正式にソースコードにどうやったのかこれは、あるべきGDB

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

    +0

    私はこのようにしています。あなたの返事に感謝します。 –