Module: kamailio
Branch: master
Commit: 18410da04c7f7bbc9628820427fedb92cf893526
URL:
https://github.com/kamailio/kamailio/commit/18410da04c7f7bbc9628820427fedb9…
Author: Theo <theodor.scherney(a)kapsch.net>
Committer: Theo <theodor.scherney(a)kapsch.net>
Date: 2020-12-17T14:32:39+01:00
tm: 200 OK not processed correctly by Proxy after final non-2xx
Description:
Problem:
Forwarding of 200 OK while sent 488 waits for ACK, destroys the UAS send buffer
Scenario:
During suspension of 200 OK by ims_qos module function Rx_AAR() at terminating
PCSCF,
The PCRF sends an AA Answer with result code DIAMETER_TOO_BUSY (3004), which
triggers
the PCSCF to send a 488 âSorry no QoS availableâ to the originating side
(ims_dialog
module function dlg_terminate()).
Afterwards neither the 200 OK nor the ACK(488) is processed correctly by the PCSCF.
Solution:
The UAS send buffer should not be overwritten during processing of 200 OK,
because non-2xx is needed to associate the ACK message in a correct way.
200 OK must be forwarded statelessly.
Side-Effect (potentially breaks existing function):
Some callbacks cannot be called for the 200 OK, to avoid messing the stored 488.
---
Modified: src/modules/tm/t_reply.c
---
Diff:
https://github.com/kamailio/kamailio/commit/18410da04c7f7bbc9628820427fedb9…
Patch:
https://github.com/kamailio/kamailio/commit/18410da04c7f7bbc9628820427fedb9…