diff -urN asterisk-16.3.0.orig/res/res_pjsip/pjsip_message_filter.c asterisk-16.3.0/res/res_pjsip/pjsip_message_filter.c --- asterisk-16.5.0/res/res_pjsip/pjsip_message_filter.c 2019-04-04 16:49:57.000000000 +0200 +++ asterisk-16.5.0/res/res_pjsip/pjsip_message_filter.c 2019-06-18 14:46:57.784000000 +0200 @@ -340,6 +340,23 @@ } } + /* set new sdp version */ + ast_debug(5, "increment SDP version, starting from %x\n",sdp->origin.version); + time_t sec; + time_t cseqt=1; + sec = time(NULL); + cseq = pjsip_msg_find_hdr(tdata->msg, PJSIP_H_CSEQ, NULL); + if (cseq) { + cseqt=cseq->cseq; + } + if (sec + cseqt <= sdp->origin.version) { + /* actual time can be same if sdp is generated more often than once a second */ + sdp->origin.version = sec + cseqt + (sdp->origin.version - (sec + cseqt)) + 1; + } + else { + sdp->origin.version=sec + cseqt; + } + pjsip_tx_data_invalidate_msg(tdata); }