-
Notifications
You must be signed in to change notification settings - Fork 183
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorrect Re-INVITE SDP handling when payload type changes #276
Comments
Any idea what might be wrong in this case? |
I haven't dive deeply in the code, but I think this is because the origin in the SDP is the same as in previously sent to the peer:
RFC 3264, sec. 8 - Modifing the session:
In fact, such request is typically recognized as session refresh request (RFC 4028, sec. 7.4), when also I suggest to try to send the re-INVITE with version in origin incremented to indicate this is an update of the session. |
Thanks for the suggestion, but this is not the case here unfortunately. PT is still not updated correctly. Attaching trace from local testing: 20241220_freeswitch_issue_276.zip |
Describe the bug
E.g.:
Initial offer presented in 200OK:
Initial answer in ACK:
Re-INVITE offer(exactly the same as initial answer, only payload type is different):
answer to Re-INVITE offer(new payload type ignored, using initial value):
Intrestingly, new payload type is respected and is being used while sending RTP packets. This issue here is that the other party either rejects this answer as it is invalid(breaking RFC3264), or accepts it and starts sending RTP packets for this invalid payload type.
According to RFC 3264 8.3.2 this should be allowed:
and it is working well in exactly the same scenario but when there is SDP present in initial INVITE, so the only difference between the two is that there is no offer in initial INVITE.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Answer Re-INVITE with 200OK with valid payload type, e.g. 10 in the example
Package version or git hash
Trace logs
freeswitch_invalid_payload_type.log
The text was updated successfully, but these errors were encountered: