diff --git a/src/include/private/switch_core_pvt.h b/src/include/private/switch_core_pvt.h index d50d93dcb7..c88bb51d86 100644 --- a/src/include/private/switch_core_pvt.h +++ b/src/include/private/switch_core_pvt.h @@ -186,6 +186,8 @@ struct switch_runtime { char *mailer_app_args; uint32_t max_dtmf_duration; uint32_t default_dtmf_duration; + switch_frame_t dummy_cng_frame; + char dummy_data[5]; }; extern struct switch_runtime runtime; diff --git a/src/switch_core.c b/src/switch_core.c index 3211245509..3195b7df69 100644 --- a/src/switch_core.c +++ b/src/switch_core.c @@ -842,6 +842,11 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc memset(&runtime, 0, sizeof(runtime)); + runtime.dummy_cng_frame.data = runtime.dummy_data; + runtime.dummy_cng_frame.datalen= sizeof(runtime.dummy_data); + runtime.dummy_cng_frame.buflen= sizeof(runtime.dummy_data); + runtime.dummy_cng_frame.flags = SFF_CNG; + switch_set_flag((&runtime), SCF_NO_NEW_SESSIONS); runtime.hard_log_level = SWITCH_LOG_DEBUG; runtime.mailer_app = "sendmail"; diff --git a/src/switch_core_io.c b/src/switch_core_io.c index c4dcf776ab..a2a63bf5bf 100644 --- a/src/switch_core_io.c +++ b/src/switch_core_io.c @@ -462,6 +462,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi even_more_done: + if (!*frame) { + *frame = &runtime.dummy_cng_frame; + } + return status; }