[sr-dev] git:master:18410da0: tm: 200 OK not processed correctly by Proxy after final non-2xx

Theo theodor.scherney at kapsch.net
Mon Jan 25 11:17:22 CET 2021


Module: kamailio
Branch: master
Commit: 18410da04c7f7bbc9628820427fedb92cf893526
URL: https://github.com/kamailio/kamailio/commit/18410da04c7f7bbc9628820427fedb92cf893526

Author: Theo <theodor.scherney at kapsch.net>
Committer: Theo <theodor.scherney at 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/18410da04c7f7bbc9628820427fedb92cf893526.diff
Patch: https://github.com/kamailio/kamailio/commit/18410da04c7f7bbc9628820427fedb92cf893526.patch




More information about the sr-dev mailing list