ForkCDR
Synopsis
Forks the Call Data RecordForkCDR()
Causes the Call Data Record to fork an additional cdr record starting from the time of the fork call.
Description
Fork The CDR into 2 separate entities.Related issues
Take a look at the "notransfer=yes" (1.2) resp. "transfer=no" (1.4) setting in iax.confVersion information
- ForkCDR() was added YYYY and was part of Asterisk version XXXX
Background info on confusing CDRs
The core of Asterisk is a threading model but a very conservative one. Only origination channels and channels executing an application have threads. The B leg of any call operate only within the same thread as the A leg and when something happens like a call transfer the channel must first be transferred to a threaded mode which often times includes a practice called channel masquerade, a process where all the internals of a channel are torn from one dynamic memory object and placed into another. A practice that was once described in the code comments as being “nasty”.The same went for the opposite operation the thread was discarded by cloning the channel and letting the original hang-up which also required hacking the cdr structure to avoid seeing it as a new call. One will often see 3 or 4 channels up for a single call during a call transfer because of this. For Asterisk 1.6 (or later) we might see a completely re-designed method to generate and store CDR data; see bug 11093
See also
- Asterisk cmd NoCDR
- Asterisk cmd ResetCDR
- cdr_shell - 3rd party solution that executes a script with the cdr data in its argv[] 0-18
- Asterisk billing: More information on CDR and billing in Asterisk
- CDR
Asterisk | Applications | Functions | Variables | Expressions | Asterisk FAQ
Page Changes