There's a bit of a difference between "states" and "types" when it comes to statistics. "states" refer to attributes to the telecommunications device or line, whilst "types" refer to the actual interaction/call taking place on the telecommunications line...
For example: "offhook", "onhook" and "AfterCallWork" (or "WrapUp") are states, whereas "CallInbound", "CallOutbound", "CallInternal" are types.
All of these "states" and "types" are reflected through the TServer as [i]Events[/i], all of which you can (with the right coding) extract and use in software which emulates handsets, etc. So, even if you do not have a physical handset from which to create "offhook" and "onhook", the state change will be emulated through an [i]Event[/i] which is sent via a TServer, from/to the Switch/PBX.
These [i]Events[/i] can work both ways; if you want to emulate "offhook" a command can be sent via software running on the Desktop, connected to the TServer, to instruct the Switch/PBX to show the device as "offhook". Similarly, if a call is answered through either hardware (a physical handset) or software (a softphone), the switch will confirm, via an Event to/through the TServer, that the device must be in an "offhook" state, before a call can be answered.
You probably didn't need all of that information, eh...?

Tony