/* Copyright (C) 2007-2008 The Android Open Source Project
**
** This software is licensed under the terms of the GNU General Public
** License version 2, as published by the Free Software Foundation, and
** may be copied, distributed, and modified under those terms.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
*/
#ifndef _REMOTE_CALL_H
#define _REMOTE_CALL_H
#include "sms.h"
/* convert a base console port into a remote phone number, -1 on error */
extern int remote_number_from_port( int port );
/* convert a remote phone number into a remote console port, -1 on error */
extern int remote_number_to_port( int number );
extern int remote_number_string_to_port( const char* number );
typedef void (*RemoteResultFunc)( void* opaque, int success );
typedef enum {
REMOTE_CALL_DIAL = 0,
REMOTE_CALL_BUSY,
REMOTE_CALL_HANGUP,
REMOTE_CALL_HOLD,
REMOTE_CALL_ACCEPT,
REMOTE_CALL_SMS
} RemoteCallType;
/* call this function when you need to dial a remote voice call.
* this will try to connect to a remote emulator. the result function
* is called to indicate success or failure after some time.
*
* returns 0 if the number is to a remote phone, or -1 otherwise
*/
extern int remote_call_dial( const char* to_number,
int from_port,
RemoteResultFunc result_func,
void* result_opaque );
/* call this function to send a SMS to a remote emulator */
extern int remote_call_sms( const char* number, int from_port, SmsPDU pdu );
/* call this function to indicate that you're busy to a remote caller */
extern void remote_call_other( const char* to_number, int from_port, RemoteCallType type );
extern void remote_call_cancel( const char* to_number, int from_port );
#endif /* _REMOTE_CALL_H */