Changeset 3593 for trunk/rms

Show
Ignore:
Timestamp:
10/23/03 13:04:17 (5 years ago)
Author:
emostar
Message:

Patch by Alon Altman for SMS support in RMS.

Location:
trunk/rms/src
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/rms/src/rms.cpp

    r3578 r3593  
    8080const unsigned short STATE_ENTERxURL = 6; 
    8181const unsigned short STATE_ENTERxAUTOxRESPONSE = 7; 
     82const unsigned short STATE_ENTERxSMSxMESSAGE = 8; 
     83const unsigned short STATE_ENTERxSMSxNUMBER = 9; 
    8284 
    8385#define NEXT_WORD(s) while (*s != '\0' && *s == ' ') s++; 
     
    9092}; 
    9193 
    92 static const unsigned short NUM_COMMANDS = 15; 
    93 static struct Command commands[NUM_COMMANDS] = 
     94static struct Command commands[] = 
    9495{ 
    9596  { "ADDUSER", &CRMSClient::Process_ADDUSER, 
     
    122123    "View event (next or specific user) { [ <uin> ] }." }, 
    123124  { "URL", &CRMSClient::Process_URL, 
    124     "Send a url { <uin> }." } 
     125    "Send a url { <uin> }." }, 
     126  { "SMS", &CRMSClient::Process_SMS, 
     127    "Send an sms { <uin> }." }, 
    125128}; 
    126129 
     130static const unsigned short NUM_COMMANDS = sizeof(commands)/sizeof(*commands); 
    127131 
    128132/*--------------------------------------------------------------------------- 
     
    563567      return Process_URL_url(); 
    564568    } 
     569    case STATE_ENTERxSMSxMESSAGE: 
     570    { 
     571      if (AddLineToText()) 
     572         return Process_SMS_message(); 
     573      break; 
     574    } 
     575    case STATE_ENTERxSMSxNUMBER: 
     576    { 
     577      return Process_SMS_number(); 
     578    } 
    565579    case STATE_ENTERxAUTOxRESPONSE: 
    566580    { 
     
    958972 
    959973/*--------------------------------------------------------------------------- 
     974 * CRMSClient::Process_SMS 
     975 * 
     976 * Command: 
     977 *   SMS <uin> 
     978 * 
     979 * Response: 
     980 *   CODE_ENTERxLINE | CODE_INVALIDxUSER 
     981 *     At which point the phone number should be entered on a line by itself 
     982 *     without the "+", but including country code.  Invalid user means the 
     983 *     uin was invalid (< 10000) and the url was aborted. 
     984 *   CODE_ENTERxTEXT 
     985 *     Now the message should be entered and terminated by a "." on a line 
     986 *     by itself. 
     987 *   CODE_COMMANDxSTART 
     988 *     < ...time... > 
     989 *   CODE_RESULTxSUCCESS | CODE_EVENTxTIMEDOUT | CODE_EVENTxERROR 
     990 *-------------------------------------------------------------------------*/ 
     991int CRMSClient::Process_SMS() 
     992{ 
     993  unsigned long nUin = strtoul(data_arg, (char**)NULL, 10); 
     994 
     995  if (nUin < 10000) 
     996  { 
     997    fprintf(fs, "%d Invalid UIN.\n", CODE_INVALIDxUSER); 
     998    return fflush(fs); 
     999  } 
     1000  fprintf(fs, "%d Enter NUMBER:\n", CODE_ENTERxLINE); 
     1001 
     1002  m_nUin = nUin; 
     1003  m_nTextPos = 0; 
     1004 
     1005  m_nState = STATE_ENTERxSMSxNUMBER; 
     1006  return fflush(fs); 
     1007} 
     1008 
     1009 
     1010int CRMSClient::Process_SMS_number() 
     1011{ 
     1012  strcpy(m_szLine, data_line); 
     1013 
     1014  fprintf(fs, "%d Enter message, terminate with a . on a line by itself:\n", 
     1015     CODE_ENTERxTEXT); 
     1016 
     1017  m_szText[0] = '\0'; 
     1018  m_nTextPos = 0; 
     1019 
     1020  m_nState = STATE_ENTERxSMSxMESSAGE; 
     1021  return fflush(fs); 
     1022} 
     1023 
     1024 
     1025int CRMSClient::Process_SMS_message() 
     1026{ 
     1027  unsigned long tag = licqDaemon->icqSendSms(m_szLine,m_szText,m_nUin); 
     1028 
     1029  fprintf(fs, "%d [%lu] Sending SMS to %lu (%s).\n", CODE_COMMANDxSTART, 
     1030     tag, m_nUin, m_szLine); 
     1031 
     1032  tags.push_back(tag); 
     1033  m_nState = STATE_COMMAND; 
     1034 
     1035  return fflush(fs); 
     1036} 
     1037 
     1038 
     1039/*--------------------------------------------------------------------------- 
    9601040 * CRMSClient::Process_AR 
    9611041 * 
  • trunk/rms/src/rms.h

    r3576 r3593  
    7676  int Process_MESSAGE(); 
    7777  int Process_URL(); 
     78  int Process_SMS(); 
    7879  int Process_LOG(); 
    7980  int Process_VIEW(); 
     
    107108  int Process_URL_url(); 
    108109  int Process_URL_text(); 
     110  int Process_SMS_number(); 
     111  int Process_SMS_message(); 
    109112  int Process_AR_text(); 
    110113