diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 4b0b1ba05c..9912b9701f 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -2615,7 +2615,12 @@ uint8_t sofia_glue_negotiate_sdp(switch_core_session_t *session, sdp_session_t * tech_pvt->iananame = switch_core_session_strdup(session, (char *) mimp->iananame); tech_pvt->pt = (switch_payload_t) map->rm_pt; tech_pvt->rm_rate = map->rm_rate; - tech_pvt->codec_ms = mimp->microseconds_per_packet / 1000; + if (!strcasecmp((char *) mimp->iananame, "ilbc") && switch_strlen_zero((char*)map->rm_fmtp)) { + /* default to 30 when no mode is defined for ilbc ONLY */ + tech_pvt->codec_ms = 30; + } else { + tech_pvt->codec_ms = mimp->microseconds_per_packet / 1000; + } tech_pvt->remote_sdp_audio_ip = switch_core_session_strdup(session, (char *) connection->c_address); tech_pvt->rm_fmtp = switch_core_session_strdup(session, (char *) map->rm_fmtp); tech_pvt->remote_sdp_audio_port = (switch_port_t) m->m_port; diff --git a/src/switch_core_codec.c b/src/switch_core_codec.c index 6242a403c4..8a5942dba3 100644 --- a/src/switch_core_codec.c +++ b/src/switch_core_codec.c @@ -446,6 +446,8 @@ SWITCH_DECLARE(switch_status_t) switch_core_codec_init(switch_codec_t *codec, co ms = mms; } } + } else if (!strcasecmp(codec_name, "ilbc")) { + ms = 30; } /* If no specific codec interval is requested opt for 20ms above all else because lots of stuff assumes it */