Share via


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