diff --git a/channels/chan_pjsip.c b/channels/chan_pjsip.c index 2e715e9ffbcb70a15c34fd9046c7e0114fa1a437..a9549ff31001300385d9a1d46692823318453617 100644 --- a/channels/chan_pjsip.c +++ b/channels/chan_pjsip.c @@ -877,7 +877,7 @@ static int chan_pjsip_devicestate(const char *data) RAII_VAR(struct ast_sip_endpoint *, endpoint, ast_sorcery_retrieve_by_id(ast_sip_get_sorcery(), "endpoint", data), ao2_cleanup); enum ast_device_state state = AST_DEVICE_UNKNOWN; RAII_VAR(struct ast_endpoint_snapshot *, endpoint_snapshot, NULL, ao2_cleanup); - RAII_VAR(struct stasis_caching_topic *, caching_topic, NULL, ao2_cleanup); + RAII_VAR(struct stasis_cache *, cache, NULL, ao2_cleanup); struct ast_devstate_aggregate aggregate; int num, inuse = 0; @@ -894,19 +894,22 @@ static int chan_pjsip_devicestate(const char *data) state = AST_DEVICE_NOT_INUSE; } - if (!endpoint_snapshot->num_channels || !(caching_topic = ast_channel_topic_all_cached())) { + if (!endpoint_snapshot->num_channels || !(cache = ast_channel_cache())) { return state; } ast_devstate_aggregate_init(&aggregate); - ao2_ref(caching_topic, +1); + ao2_ref(cache, +1); for (num = 0; num < endpoint_snapshot->num_channels; num++) { - RAII_VAR(struct stasis_message *, msg, stasis_cache_get_extended(caching_topic, ast_channel_snapshot_type(), - endpoint_snapshot->channel_ids[num], 1), ao2_cleanup); + RAII_VAR(struct stasis_message *, msg, NULL, ao2_cleanup); struct ast_channel_snapshot *snapshot; + stasis_topic_wait(ast_channel_topic_all_cached()); + msg = stasis_cache_get(cache, ast_channel_snapshot_type(), + endpoint_snapshot->channel_ids[num]); + if (!msg) { continue; } diff --git a/res/res_pjsip_mwi.c b/res/res_pjsip_mwi.c index b1f696aae511f405e0d22efc7433eaea71388a6b..faf0a07b686417179f7c2238320a62ada40670d8 100644 --- a/res/res_pjsip_mwi.c +++ b/res/res_pjsip_mwi.c @@ -239,7 +239,7 @@ static int get_message_count(void *obj, void *arg, int flags) struct message_accumulator *counter = arg; struct ast_mwi_state *mwi_state; - msg = stasis_cache_get(ast_mwi_topic_cached(), ast_mwi_state_type(), mwi_stasis->mailbox); + msg = stasis_cache_get(ast_mwi_state_cache(), ast_mwi_state_type(), mwi_stasis->mailbox); if (!msg) { return 0; }