The LINECALLINFO structure stores a large amount of information about a call, and is thus an important source of data. Generally, a logging application reads from LINECALLINFO and writes this information into its log file.
A separate LINECALLINFO structure exists for every incoming and outgoing call. Information in this structure is obtained by an application with lineGetCallInfo. An application typically reads the information from LINECALLINFO at the following times:
Both the LINE_CALLSTATE message and the LINE_CALLINFO message also supply the call's handle as a parameter.
Much of the information held in LINECALLINFO remains fixed for the duration of the call. Information about a call that changes dynamically, such as call progress status, is available in the LINECALLSTATUS structure, which is returned with the lineGetCallStatus function. Other information needed by logging applications that is not stored in LINECALLINFO is call start time, call stop time, and the call's duration, which it determines by checking the system time when the corresponding LINE_CALLSTATE messages are received.
LINECALLINFO stays intact after the call is disconnected, so the logging application can later read it in order to write additional information into the log. LINECALLINFO remains available only until the last application that had a handle for the call (owner and monitor handles) deallocates its handle.