diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 6dc6e90f55..11db95e45d 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -626,8 +626,12 @@ static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_f if (tech_pvt->read_frame.datalen > 0) { size_t bytes = 0; int frames = 1; - + if (!switch_test_flag((&tech_pvt->read_frame), SFF_CNG)) { + if (!tech_pvt->read_codec.implementation) { + *frame = NULL; + return SWITCH_STATUS_GENERR; + } if ((bytes = tech_pvt->read_codec.implementation->encoded_bytes_per_frame)) { frames = (tech_pvt->read_frame.datalen / bytes); }