*/
-#include "config.h"
-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "gsm-coding.h"
/* User data headers */
-static GSM_UDHHeader UDHHeaders[] = {
+GSM_UDHHeader UDHHeaders[] = {
{ GSM_ConcatenatedMessages, 0x05, "\x00\x03\x01\x00\x00" },
/* See GSM 03.40 section 9.2.3.24.1 */
{ GSM_DisableVoice, 0x04, "\x01\x02\x00\x00" },
#define ByteMask ((1 << Bits) - 1)
-#ifndef UCLINUX
-static int GSM_PackSevenBitsToEight(int offset, unsigned char *input, unsigned char *output)
+int GSM_PackSevenBitsToEight(int offset, unsigned char *input, unsigned char *output)
{
unsigned char *OUT = output; /* Current pointer to the output buffer */
unsigned char *IN = input; /* Current pointer to the input buffer */
}
/* See GSM 03.40 section 9.2.3.11 */
-static GSM_Error GSM_DecodeSMSDateTime(GSM_DateTime *DT, unsigned char *req)
+GSM_Error GSM_DecodeSMSDateTime(GSM_DateTime *DT, unsigned char *req)
{
DT->Year = DecodeWithBCDAlphabet(req[0]);
DT->Month = DecodeWithBCDAlphabet(req[1]);
return GE_NONE;
}
-static int GSM_EncodeETSISMSSubmitData(GSM_SMSMessage *SMS, GSM_ETSISMSMessage *ETSI)
+int GSM_EncodeETSISMSSubmitData(GSM_SMSMessage *SMS, GSM_ETSISMSMessage *ETSI)
{
int off,size=0,size2=0,w,i;
ETSI->TPDCS |= 0x08;
#ifdef DEBUG
- fprintf(stdout,_("SMS Length is %ld\n"),(long)strlen(SMS->MessageText));
+ fprintf(stdout,_("SMS Length is %i\n"),strlen(SMS->MessageText));
#endif
EncodeUnicode (ETSI->MessageText+off,SMS->MessageText,strlen(SMS->MessageText));
fprintf(stdout, " 7 bit SMS, body is (length %i): ",SMS->Length);
#endif /* DEBUG */
- DecodeDefault (SMS->MessageText, output, tmp);
+ DecodeDefault (SMS->MessageText, output, SMS->Length);
#ifdef DEBUG
fprintf(stdout, "%s\n",SMS->MessageText);
GSM_Error GSM_EncodeETSISMS(GSM_SMSMessage *SMS, GSM_ETSISMSMessage *ETSI, SMS_MessageType PDU, int *length)
{
int size=0;
+ GSM_Error error;
ETSI->firstbyte=0;
ETSI->TPPID=0;
/* Mask for request for delivery report from SMSC */
if (SMS->Type == GST_DR) ETSI->firstbyte |= 32;
- GSM_EncodeETSISMSSubmitHeader(SMS, ETSI);
- GSM_EncodeETSISMSSubmitValidity(SMS, ETSI);
+ error=GSM_EncodeETSISMSSubmitHeader(SMS, ETSI);
+ if (error!=GE_NONE) return error;
+ error=GSM_EncodeETSISMSSubmitValidity(SMS, ETSI);
+ if (error!=GE_NONE) return error;
size=GSM_EncodeETSISMSSubmitData(SMS, ETSI);
break;
/* Bits 1 and 0: 00. SMS-Deliver */
ETSI->firstbyte |= 0x00;
- GSM_EncodeETSISMSSubmitHeader(SMS, ETSI);
+ error=GSM_EncodeETSISMSSubmitHeader(SMS, ETSI);
+ if (error!=GE_NONE) return error;
GSM_EncodeSMSDateTime(&SMS->Time, ETSI->DeliveryDateTime);
size=GSM_EncodeETSISMSSubmitData(SMS, ETSI);
return GE_NONE;
}
-#endif /* UCLINUX */
-static void GSM_SetDefaultSMSData (GSM_SMSMessage *SMS)
+void GSM_SetDefaultSMSData (GSM_SMSMessage *SMS)
{
struct tm *now;
time_t nowh;
- GSM 03.40 version 6.1.0 Release 1997, section 9.2.3.24
- Smart Messaging Specification, Revision 1.0.0, September 15, 1997
*/
-#ifdef UCLINUX
-static
-#endif /* UCLINUX */
GSM_Error EncodeUDHHeader(char *text, GSM_UDH UDHType)
{
int i=0;
return GE_NONE;
}
-static int GSM_MakeSinglePartSMS2(GSM_SMSMessage *SMS,
+int GSM_MakeSinglePartSMS2(GSM_SMSMessage *SMS,
unsigned char *MessageBuffer,int cur, GSM_UDH UDHType, GSM_Coding_Type Coding){
int j;