This flag will treat every dtmf as if it were 50ms and queue it on recipt of the leading packet rather than at the end.
*/
+
+ RTP_BUG_ACCEPT_ANY_PACKETS = (1 << 7)
+
+ /*
+ Oracle's Contact Center Anywhere (CCA) likes to use a single RTP socket to send all its outbound audio.
+ This messes up our ability to auto adjust to NATTED RTP and causes us to ignore its audio packets.
+ This flag will allow compatibility with this dying product.
+ */
+
+
} switch_rtp_bug_flag_t;
#ifdef _MSC_VER
if (switch_stristr("~IGNORE_DTMF_DURATION", str)) {
*flag_pole &= ~RTP_BUG_IGNORE_DTMF_DURATION;
}
+
+ if (switch_stristr("ACCEPT_ANY_PACKETS", str)) {
+ *flag_pole |= RTP_BUG_ACCEPT_ANY_PACKETS;
+ }
+
+ if (switch_stristr("~ACCEPT_ANY_PACKETS", str)) {
+ *flag_pole &= ~RTP_BUG_ACCEPT_ANY_PACKETS;
+ }
}
char *sofia_glue_gen_contact_str(sofia_profile_t *profile, sip_t const *sip, sofia_dispatch_event_t *de, sofia_nat_parse_t *np)
goto recvfrom;
}
- } else if (!switch_cmp_addr(rtp_session->from_addr, rtp_session->remote_addr)) {
+ } else if (!(rtp_session->rtp_bugs & RTP_BUG_ACCEPT_ANY_PACKETS) && !switch_cmp_addr(rtp_session->from_addr, rtp_session->remote_addr)) {
goto recvfrom;
}