/* G N O K I I A Linux/Unix toolset and driver for Nokia mobile phones. Released under the terms of the GNU GPL, see file COPYING for more details. This file provides an API for accessing functions on the sniff and similar phones. */ /* "Turn on" prototypes in n-sniff.h */ #define __n_sniff_c /* System header files */ #include #include #include #ifndef WIN32 #include "devices/device.h" #endif /* Various header file */ #ifndef VC6 #include "config.h" #endif #include "misc.h" #include "gsm-api.h" #include "gsm-common.h" #include "files/cfgreader.h" #include "newmodules/sniff/sniff.h" #include "newmodules/n6110.h" #include "newmodules/n7110.h" #include "gsm-networks.h" /* Global variables used by code in gsm-api.c to expose the functions supported by this model of phone. */ static char *realmodel; /* Model from .gnokiirc file. */ static char *Port; /* Port from .gnokiirc file */ static char *Initlength; /* Init length from .gnokiirc file */ static char *Connection; /* Connection type from .gnokiirc file */ static char *SynchronizeTime; /* If we set date and time from computer to phone (from .gnokiirc file) */ static char *BinDir; /* Binaries directory from .gnokiirc file - not used here yet */ static GSM_ConnectionType connectiontype; /* Here we initialise model specific functions. */ GSM_Functions Nsniff_Functions = { Nsniff_Initialise, Nsniff_DispatchMessage, NULL_Terminate, NULL_KeepAlive, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED, NOTSUPPORTED }; /* for all these Phones we support sniff */ GSM_Information Nsniff_Information = { "3210sniff|3310sniff|3330sniff|5110sniff|5130sniff|5190sniff|6110sniff|6130sniff|6150sniff|6190sniff|8210sniff|8850sniff|6210sniff|6250sniff|7110sniff", /* Supported models in FBUS */ "3210sniff|3310sniff|3330sniff|5110sniff|5130sniff|5190sniff|6110sniff|6130sniff|6150sniff|6190sniff|8210sniff|8850sniff|6210sniff|6250sniff|7110sniff", /* Supported models in MBUS */ "", /* Supported models in FBUS over infrared */ "", /* Supported models in FBUS over DLR3 */ "", "6210decode|6250decode|7110decode", /* Supported models in FBUS over Irda sockets */ "", 4, /* Max RF Level */ 0, /* Min RF Level */ GRF_Arbitrary, /* RF level units */ 4, /* Max Battery Level */ 0, /* Min Battery Level */ GBU_Arbitrary, /* Battery level units */ GDT_None, /* No date/time support */ GDT_None, /* No alarm support */ 0 /* Max alarms = 0 */ }; /* Initialise variables and state machine. */ GSM_Error Nsniff_Initialise(char *port_device, char *initlength, GSM_ConnectionType connection, void (*rlp_callback)(RLP_F96Frame *frame)) { GSM_PhonebookEntry phonebook; GSM_SpeedDial speed; GSM_SMSMessage sms; GSM_MemoryStatus status; GSM_NetworkInfo netinfo; GSM_SMSStatus smsstatus; GSM_SMSFolders folders; GSM_MessageCenter smsc; int secstatus; GSM_SecurityCode seccode; GSM_DateTime date; GSM_DateTime alarm; GSM_CalendarNote note; char netmon; GSM_Bitmap logo; GSM_Profile profile; GSM_CBMessage cb; GSM_Network netname; GSM_BinRingtone binring; GSM_AllSimlocks siml; if (Protocol->Initialise(port_device,initlength,connection,rlp_callback)!=GE_NONE) { return GE_NOTSUPPORTED; } CurrentLinkOK = true; CurrentPhonebookEntry=&phonebook; CurrentSpeedDialEntry=&speed; CurrentSMSMessage=&sms; CurrentMemoryStatus=&status; CurrentNetworkInfo=&netinfo; CurrentSMSStatus=&smsstatus; CurrentSMSFolders=&folders; CurrentMessageCenter=&smsc; CurrentSecurityCodeStatus=&secstatus; CurrentSecurityCode=&seccode; CurrentDateTime=&date; CurrentAlarm=&alarm; CurrentCalendarNote=¬e; CurrentNetmonitor=&netmon; CurrentGetBitmap=&logo; CurrentProfile=&profile; CurrentCBMessage=&cb; CurrentGetOperatorNameNetwork=&netname; CurrentGetBinRingtone=&binring; CurrentSimLock=⪝ /* Read config file, once again to get real model */ if (CFG_ReadConfig(&realmodel, &Port, &Initlength, &Connection, &BinDir, &SynchronizeTime,false) < 0) { exit(-1); } connectiontype = GetConnectionTypeFromString(Connection); return (GE_NONE); } void Nsniff_DispatchMessage(u16 MessageLength, u8 *MessageBuffer, u8 MessageType) { /* switch to real Model */ if (CheckModel (N6110_Information, realmodel, connectiontype)) N6110_DispatchMessage( MessageLength, MessageBuffer, MessageType); if (CheckModel (N7110_Information, realmodel, connectiontype)) N7110_DispatchMessage( MessageLength, MessageBuffer, MessageType); }