sms.h
上传用户:gzpyjq
上传日期:2013-01-31
资源大小:1852k
文件大小:2k
源码类别:

手机WAP编程

开发平台:

WINDOWS

  1. /*
  2.  * sms.h - definitions specific to SMS but not particular to any SMSC protocol.
  3.  *
  4.  * Sms features that are currently implemented separately in each protocol 
  5.  * should be extracted and placed here.
  6.  */
  7. /*
  8.  * DCS Encoding, acording to ETSI 03.38 v7.2.0
  9.  *
  10.  * 00abcdef
  11.  *      bit 5 (a) indicates compressed text
  12.  *      bit 4 (b) indicates Message Class value presence
  13.  *      bits 3,2 (c,d) indicates Data Coding (00=7bit, 01=8bit, 10=UCS2)
  14.  *      bits 1,0 (e,f) indicates Message Class, if bit 4(b) is active
  15.  *
  16.  * 11110abc
  17.  *      bit 2 (a) indicates 0=7bit, 1=8bit
  18.  *      bits 1,0 (b,c) indicates Message Class
  19.  *
  20.  * 11abc0de
  21.  *      bits 5,4 (a,b) indicates 00=discard message, 01=store message
  22.  *                               10=store message and text is UCS2
  23.  *      bit 3 (c) indicates indication active
  24.  *      bits 1,0 (d,e) indicates indicator (00=voice mail, 01=fax,
  25.  *                                          10=email, 11=other)
  26.  */
  27. #ifndef SMS_H
  28. #define SMS_H
  29. #include "msg.h"
  30. #define MC_UNDEF 0
  31. #define MC_CLASS0 1
  32. #define MC_CLASS1 2
  33. #define MC_CLASS2 3
  34. #define MC_CLASS3 4
  35. #define MWI_UNDEF 0
  36. #define MWI_VOICE_ON 1
  37. #define MWI_FAX_ON 2
  38. #define MWI_EMAIL_ON 3
  39. #define MWI_OTHER_ON 4
  40. #define MWI_VOICE_OFF 4
  41. #define MWI_FAX_OFF 6
  42. #define MWI_EMAIL_OFF 7
  43. #define MWI_OTHER_OFF 8
  44. #define DC_UNDEF 0
  45. #define DC_7BIT 1
  46. #define DC_8BIT 2
  47. #define DC_UCS2 3
  48. #define SMS_7BIT_MAX_LEN 160
  49. #define SMS_8BIT_MAX_LEN 140
  50. #define SMS_UCS2_MAX_LEN 70
  51. /* Encode DCS using sms fields
  52.  * mode = 0= encode using 00xxxxxx, 1= encode using 1111xxxx mode
  53.  */
  54. int fields_to_dcs(Msg *msg, int mode);
  55. /*
  56.  * Decode DCS to sms fields
  57.  *  returns 0 if dcs is invalid
  58.  */
  59. int dcs_to_fields(Msg **msg, int mode);
  60. /*
  61.  * Compute length of the message data in Msg after it will be converted 
  62.  * to the proper coding. 
  63.  * If coding is 7 bit, then sms_msgdata_len will return the number of 
  64.  * septets this message will convert to, taking into account GSM 03.38
  65.  * escape sequences of special chars, which would count as two septets.
  66.  */
  67. int sms_msgdata_len(Msg *msg);
  68. #endif