ANSWER(312) with billsec 0

From Kolmisoft Wiki
Revision as of 13:02, 2 April 2020 by Admin (talk | contribs)
Jump to navigationJump to search

Sometimes there is CDR with ANSWER disposition, HGC 312 and the billsec is 0s.

Answer312 0.png

How to interpret this case?

The following example will illustrate one such case.

The call flow is from the Origination Point (OP) to the Proxy, Proxy sends the call over Freeswitch (FS), then back through the Proxy to the Termination Point.

In short: OP -> Proxy -> FS -> Proxy -> TP

We have the following schema:

Answer312 0 1.png

OP sends the CANCEL at the time: 10:32:54.507296 and TP sends the ANSWER at the 10:32:54.506003. The difference is 0.0001293 seconds.

In this case, TP thinks the call is ANSWERED and OP thinks it CANCELLED the call.


A similar situation is described in Reason header RFC https://tools.ietf.org/html/rfc3326

3.2 Refusing an Offer that Comes in a Response

 A client sends an empty INVITE and receives an unacceptable offer in a 200 (OK)
 response.  The client sends an ACK with a correctly
 formatted answer and immediately sends a BYE to terminate the
 session.  The client includes a 488 (Not Acceptable Here) status code
 in a Reason header field.3.2 Refusing an Offer that Comes in a Response

So in our case, FS should send BYE with a Reason header to TP. That reason header contains some error code and TP should handle the call accordingly.

In the marked BYE packet we see:

Answer312 0 2.png

e.g. FS sent the reason that ANSWER is not accepted.

Sadly the TP did not honor the RFC and marked this call as ANSWERED with billsec 1s. (TP uses Speedflow's MediaCore switch).