/*++
*******************************************************************************
* Copyright (c) 1990-98 Digi International Inc., All Rights Reserved				*
* 																										*
* This software contains proprietary and confidential information of Digi		*
* International Inc.  By accepting transfer of this copy, Recipient agrees		*
* to retain this software in confidence, to prevent disclosure to others,		*
* and to make no use of this software other than that for which it was			*
* delivered.  This is an unpublished copyrighted work of Digi International	*
* Inc.  Except as permitted by federal law, 17 USC 117, copying is strictly	*
* prohibited.																						*
* 																										*
* Restricted Rights Legend																		*
*																										*
* Use, duplication, or disclosure by the Government is subject to					*
* restrictions set forth in sub-paragraph (c)(1)(ii) of The Rights in			*
* Technical Data and Computer Software clause at DFARS 252.227-7031 or			*
* subparagraphs (c)(1) and (2) of the Commercial Computer Software -				*
* Restricted Rights at 48 CFR 52.227-19, as applicable.								*
*																										*
* Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343				*
*																										*
*******************************************************************************

Module Name:

   isdncall.h

Abstract:

   Call control management public routines.

Author:

   Michael Zarns

--*/

#ifndef ISDNCALL_H
#define ISDNCALL_H

PISDN_CALL IsdnCallConstruct( IN PISDN_ADAPTER pAdapter,
                              IN ULONG_PTR     iLine );
#define ISDN_LINE_ANY 0xFFFFFFFF

VOID IsdnCallDestruct( IN PISDN_CALL pCall );

NTSTATUS IsdnCallMgrThreadStart( IN PISDN_ADAPTER pAdapter );

VOID IsdnCallMgrThreadStop( IN PISDN_ADAPTER pAdapter );

NTSTATUS IsdnCallDial( IN PISDN_ADAPTER pAdapter,
                       IN HDRV_LINE     hdLine,
                       IN HTAPI_CALL    htCall,
                       IN ULONG         MediaMode,
                       IN ULONG         BearerMode,
                       IN ULONG         MinRate,
                       IN ULONG         MaxRate,
                       IN PCHAR        pDestAddr,
                       IN ULONG         cbDestAddr,
                       OUT PISDN_CALL   *ppCall );

NTSTATUS IsdnCallOffer( IN PISDN_CALL pAdapter );

NTSTATUS IsdnCallAnswer( IN PISDN_CALL pCall );

NTSTATUS IsdnCallDrop( IN PISDN_CALL pCall );

NTSTATUS IsdnCallCloseCall( IN PISDN_CALL pCall );

NTSTATUS IsdnCallClose( IN PISDN_CALL pCall );

NTSTATUS IsdnCallSend( IN PISDN_CALL       pCall, 
                       IN PNDIS_WAN_PACKET pPacket );

VOID IsdnCallOnConnect( IN PVOID          pOwner,
                        IN ULONG          Controller,
                        IN ULONG          Channel,
                        IN ISDN_CONN_TYPE ConnType );

VOID IsdnCallOnConnack( IN PVOID pOwner,
                        IN ULONG Controller,
                        IN ULONG Channel );

VOID IsdnCallOnCActive( IN PVOID pOwner );

VOID IsdnCallOnDisconn( IN PVOID pOwner,  
                        IN ULONG Controller,
                        IN ULONG Channel );

VOID IsdnCallOnConnend( IN PVOID pOwner,
                        IN ULONG Controller,
                        IN ULONG Channel );

VOID IsdnCallOnListen( IN PVOID pOwner );

VOID IsdnCallOnData( IN PVOID pOwner,
                     IN PVOID pData, 
                     IN ULONG cbData );

#endif
