|
Call Handoffs
After an application has acquired ownership of the call, ownership can be
transferred to another application. Why would this be necessary? Normally, to allow
the call's media mode to be changed. In this case, the highest priority
application for the new media mode should take and handle the call. Media mode
changing usually occurs because of one of the following causes.
User command. Through a user interface or through window messages, the application learns
that the local user wants to change media mode. For example, the user has told
the new target application (which is not yet an owner) to obtain an existing
voice call for transmitting data. The target application must now take control of
the call. In this case, the current owner notices the number of owners
increase, and then relinquishes its control of the call. Alternatively, the user could
instruct the current owner of the call to hand it off to an application that
can handle the new media mode.
Media mode change. The service provider can detect a media mode change with lineMonitorMedia. As an example of this, the local application is playing a recorded voice
message to the caller. During this message, the caller spontaneously decides to
transmit a fax calling tone, and the local application can respond accordingly by
changing the media mode to fax and, if necessary, handing the call off to a
fax application. Another way this can work is for a monitoring application to
enable media mode monitoring, and, when the media mode in which it is interested
is detected on a call, it can request ownership of the call. This mechanism
makes it unnecessary for every application to monitor every call for every media
mode.
Remote party command. The remote party can interactively indicate a change in media modes during
an existing call. For example, the local application is using lineMonitorDigits to monitor DTMF input by the remote caller. Through this monitoring, the
caller indicates, for example, that a fax is about to be sent. Other ways the
caller can control local applications is with commands received on other data
connections and through ISDN user-user information messages.
A call handoff will have one of these outcomes:
- The call is given to another application (SUCCESS),
- The handing-off application is itself the target (TARGETSELF),
- The handoff fails (TARGETNOTFOUND).
If the application that is receiving the handed-off call already has a call
handle to the call, this old call handle is used. Otherwise a new call handle is
created. In either case, the application ends up with owner privileges to the
call. Whenever the handing-off application is not the same as the target
application, the target is informed about the handoff in a LINE_CALLSTATE message with dwParam3 set to LINECALLPRIVILEGE_OWNER, as if it were receiving a new call.
Note The LINE_CALLSTATE parameter dwParam3 is set to owner only if the LINE_CALLSTATE message is being sent to an
application that is the initial owner of a new call, is the target of a handoff, or
was previously a monitor or an owner of the call. The parameter dwParam3 can be set to monitor only if the LINE_CALLSTATE message is sent to the
application when it is presented a new call for monitoring. In all other cases (such
as when the application already has a handle to the call, and its ownership
state is not being changed), dwParam3 is set to 0.
If the current owner application is told to change modes, it does so by
handing off the call to an application used for the target media mode. The two types
of call handoffs are described in the following topics.
| Last news from Greatis Software |
 |
|
Nostalgia .Net |
|
.Net is powerful, but not all-powerful, so sometimes we need to use Win32 API for our .Net applications. It's simple enough with Platform Invoke if you have Win32 skill, but we do not always have time to dig the ancient documentation, declare the special types that are compatible with Win32, find the values of the Win32's constants and so on. Nostalgia .Net offers several simple-to-use classes, and components that will allow you to forget about the headache of Win32 and just use the power of Win32 in your application the same way as you use the native. Net classes. More » |
| Recommended software for developers |
 |
|
Ultimate Pack |
|
Component pack for Delphi and C++ Builder that contains runtime form designer, runtime object inspector, print suite and much more for the very special price. More » |
 |
|
Form Designer .Net |
|
Unique runtime form design solution that allows to edit any form in .Net WinForms application at runtime without manual coding. Full C# source codes are available More » |
 |
|
Print Suite .Net |
|
Print Suite .Net is a set of components for easy printing texts, images and grids from your WinForms applications. Full C# source codes are available More » |
 |
|
Gradient Controls .Net |
|
Gradient Controls .Net offers controls with gradient background feature. Labels, panels and so on... Full C# source codes are available More » |
 |
|
Greatis iGrid |
|
iGrid plots drawing grid right over your desktop, so you can use it everywhere, with any drawing application without any special plugins for different graphic editors. More » |
Related LinksSoftware for Visual Studio .NET developers Software for Delphi and C++ Builder developers Software for Visual Basic 6 developers Delphi Tips&Tricks MegaDetailed.NET More Online Helps Win32 Programmer's Reference Win32 Multimedia Programmer's Reference OLE Programmer's Reference Microsoft Windows Pen API Programmer's Reference Microsoft Windows Sockets 2 Reference Microsoft Windows Telephony API (TAPI) Programmer's Reference Unix Manual Pages
|