Subj. Call between two Asterisks. Mid call, a change of RPID info happens, Asterisk sends two almost simultaneous (0.000087 seconds apart) in-dialog requests:
Re-INVITE with SDP and new RPID, Cseq 102, followed by
UPDATE, no SDP, just new RPID, Cseq 103)
Now, sometimes the other Asterisk appears to receive and process the UPDATE first and responds with sequentially:
200 OK to the UPDATE, followed by
500 Invalid CSeq to the re-INVITE
On other identical calls, the Re-INVITE appears to reach the other Asterisk before the UPDATE, so the call goes on just fine:
200 OK to the re-INVITE, followed by
200 OK to the UPDATE
Problem is that it’s unpredictable and when the bad flow happens, one-way audio occurs (callee asterisk stops sending media)
Question is: how to avoid this sequential re-INVITE/UPDATE for the sole purpose of RPID update, can UPDATE be disabled entirely?
Note also that while Asterisk currently will parse an Allow header to learn
; what methods an endpoint supports, the only actual use for this currently
; is for determining if Asterisk may send connected line UPDATE requests and
; MESSAGE requests. Its use may be expanded in the future.
;
; disallowed_methods = UPDATE
Looks like having rpid_update=no on the peer has no effect, Asterisk keeps sending an UPDATE 1ms after the re-INVITE, occasionally triggering a 500 - Invalid Cseq from the other Asterisk. See below SIP trace graph.
Thus, the question stands: how to disable support for UPDATE method in PJSIP, either another workaround to this problem?