#endif
};
+static void rtp_learning_seq_init(struct ast_rtp *rtp, uint16_t seq);
+
+static void ast_rtp_on_ice_complete(pj_ice_sess *ice, pj_status_t status)
+{
+ struct ast_rtp *rtp = ice->user_data;
+
+ if (status != PJ_SUCCESS || !strictrtp) {
+ return;
+ }
+
+ rtp->strict_rtp_state = STRICT_RTP_LEARN;
+ rtp_learning_seq_init(rtp, (uint16_t)rtp->seqno);
+}
+
static void ast_rtp_on_ice_rx_data(pj_ice_sess *ice, unsigned comp_id, unsigned transport_id, void *pkt, pj_size_t size, const pj_sockaddr_t *src_addr, unsigned src_addr_len)
{
struct ast_rtp *rtp = ice->user_data;
/* ICE Session interface declaration */
static pj_ice_sess_cb ast_rtp_ice_sess_cb = {
+ .on_ice_complete = ast_rtp_on_ice_complete,
.on_rx_data = ast_rtp_on_ice_rx_data,
.on_tx_pkt = ast_rtp_on_ice_tx_pkt,
};