The ETel client-side API consists of a session class RTelServer plus subsession classes to implement three fundamental abstractions: phones, lines and calls.
A phone is represented by the subsession class RPhone. This represents a particular telephony device. Its API provides access to the status and capabilities of the device and allows the client to be notified if these change.
A line is represented by the subsession class RLine. A phone can have one or more lines. RLine presents a single line and can be used to obtain status and capability information about it (for example, its hook status). As with RPhone, it also provides the capability to be notified if changes occur to the line.
A call is represented by the subsession class RCall. A line may have zero or more active calls, and an RCall object represents one such call. The RCall API is used to perform tasks such as dialing a number, waiting for an incoming call, and hanging up a call. As with the other subsessions, it can also be used to notify a client of changes to a call.