2017-03-15 1 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 
); 

어떤 오류가 있습니까? 귀하의 회신을 기대하겠습니다. BTW, 제가 사용하는 별표 버전은 13.10입니다.

+0

  • 확인 코어 덤프는 stasis_subscribe' 기능 – LPs

  • +0

    '의 세 번째 매개 변수로'NULL'을 전달할 수 없습니다 당신처럼 냄새 권리. –

    답변

    0

    이 질문은 디버그 질문입니다. 디버그 기호

    1. 컴파일 별표
    2. asterisk.conf에
    3. 시작 별표 코어 덤프를 활성화합니다. 별표 (*)가 공식적으로 소스 코드에서했던 방법이있다,해야 GDB

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

    +0

    나는이 방법을 시도하고있다. 답장을 보내 주셔서 감사합니다. –