INmCall
Use the INmCall interface methods to manage and retrieve information about incoming and outgoing calls during NetMeeting conferences. These methods allow you to accept, reject, and cancel new calls.
When to Implement
You do not need to implement this interface because the NetMeeting run time provides the INmCall implementation on the Call object. However, you need to implement the corresponding event handler methods for INmCallNotify.
When to Use
Call the INmCall methods from your NetMeeting client application to retrieve information about and manage incoming or outgoing calls for a conference.
Methods in Vtable Order
IUnknown methods | Description |
---|---|
QueryInterface | Returns pointers to supported interfaces. |
AddRef | Increments reference count. |
Release | Decrements reference count. |
INmCall methods | Description |
---|---|
IsIncoming | Boolean to show whether call is incoming or outgoing. |
GetState | Retrieves the state of the call. |
GetName | For incoming calls, retrieves the remote user's computer name. For outgoing calls, retrieves the remote user's computer name or IP address. |
GetAddr | For incoming calls, retrieves address of remote computer. For outgoing calls, retrieves address of person being called. |
GetUserData | Not implemented. To retrieve user information associated with a globally unique identifier (GUID). |
GetConference | Retrieves pointer to INmConference on the current conference object. |
Accept | Accepts an invitation to a conference. |
Reject | Rejects an invitation to a conference. |
Cancel | Cancels the request to join a conference or cancels placement of a call. |
Remarks
Use INmManager::CreateCall or INmManager::CallConference to create new outgoing calls. The NetMeeting run time also creates call objects for incoming calls. In addition, the NetMeeting run time calls the methods on INmCallNotify to signal events such as accepting or failing to accept a call, and to state changes and events that may interest the end user.
To list all the calls in progress, use INmManager::EnumCall to retrieve an IEnumNmCall enumerator interface.
The default time-out value for incoming calls is 20 seconds. There is no time-out on the outgoing call side. However, a client application using the No User Interface (UI) mode (NM_INIT_CONTROL) has full control over incoming calls and can accept, reject, or ignore them.
Client applications may choose to call IUnknown::Release on the call object when the call state changes to NM_CALL_ACCEPTED, NM_CALL_REJECTED, or NM_CALL_CANCELED because there will be no more notifications for this call. Copy any remaining properties of interest to another object before releasing the Call object.
NetMeeting 3 Notification Features
You can register to receive notifications about incoming calls when you first launch the conference manager by calling INmManager::Initialize with the puOptions parameter set to NM_INIT_CONTROL. Using the initialization constant NM_INIT_NORMAL registers you to receive notifications for outgoing calls and for call failures, but not for incoming calls.
For example, if you've registered to receive notifications, the NetMeeting run time calls INmManagerNotify::CallCreated when you create an outgoing call or receive an incoming call to notify your client application of the new call.
In the following two cases involving security, a notification of the incoming call is not generated even when your application has registered to receive these notifications. In these cases, the call is automatically rejected.
- The incoming NetMeeting call is not secure and security is required.
- The incoming NetMeeting call is secure and security is disallowed.
Call States
The following figure shows a NetMeeting client initiating a call to another NetMeeting client and the call objects generated as a result.
Requirements
** Windows NT/2000:** Requires Windows NT 4.0 SP3 or later.
** Windows 95/98:** Requires Windows 95 or later. Available as a redistributable for Windows 95.
** Header:** Imsconf2.idl.
See Also
Call Object, Call Notification Object, INmCallNotify, INmManager::CreateCall, INmManager::CallConference, INmManagerNotify::CallCreated, IEnumNmCall::Next