Requesting Call Privileges
In addition to media mode, an application can specify the call privileges
it wants for the calls provided to it. With privileges, an application
specifies whether it wants to monitor calls or own them. For an inbound call, only
one application is selected as the owner, although all applications with monitor
interest in the call are also notified about the incoming call. The usual
privileges an application specifies are summarized in the following list:
- If the application only wants to monitor calls, it specifies
LINECALLPRIVILEGE_MONITOR. The application will also receive monitor handles to outgoing calls
placed by other applications (an application receives owner handles for outgoing
calls it places itself). It will also receive MONITOR handles for calls it
places itself on other instances of the same line.
- If the application wants to make outbound calls only, it specifies
LINECALLPRIVILEGE_NONE. An application that has NONE selected will not be automatically
informed of incoming calls. However, it can also become aware of calls on the
line with LINE_ADDRESSSTATE(numCalls) or LINE_LINEDEVSTATE(numCalls) messages. It can then call lineGetNewCalls..
- If the application wants to accept incoming calls of a specific media mode (or
modes), it specifies LINECALLPRIVILEGE_OWNER and one or more relevant
- If the application is willing to control unclassified calls (incoming calls of
as-yet unknown media mode), it specifies LINECALLPRIVILEGE_OWNER and
- In other cases, the application should specify the media mode it is interested
in handling and set dwPrivilege to LINECALLPRIVILEGE_OWNER.
An application that wants to be informed of all calls on the line regardless
of whether it can become an owner on the call can set both the
LINECALLPRIVILEGE_OWNER and LINECALLPRIVILEGE_MONITOR bits. It will get call handles with owner
privileges for incoming calls for which it is the highest priority application
for the highest priority media mode on the call, and monitor privileges for all
other incoming and outgoing calls.
An application that has successfully opened a line device can always initiate
calls using lineMakeCall
(with a NULL hCall
parameter), as well as use lineForward
(assuming that doing so is allowed by the device capabilities, line state,
and so on).
- Software for developers
Software for Android Developers
- More information resources
Unix Manual Pages