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

手机WAP编程

开发平台:

WINDOWS

  1. /*
  2.  * bearerbox.h
  3.  *
  4.  * General typedefs and functions for bearerbox
  5.  */
  6. #include "gwlib/gwlib.h"
  7. #include "msg.h"
  8. /* general bearerbox state */
  9. enum {
  10.     BB_RUNNING = 0,
  11.     BB_ISOLATED = 1, /* do not receive new messgaes from UDP/SMSC */
  12.     BB_SUSPENDED = 2, /* do not transfer any messages */
  13.     BB_SHUTDOWN = 3,
  14.     BB_DEAD = 4,
  15.     BB_FULL = 5         /* message queue to long, do not accept ne messages */
  16. };
  17. /* type of output given by various status functions */
  18. enum {
  19.     BBSTATUS_HTML = 0,
  20.     BBSTATUS_TEXT = 1,
  21.     BBSTATUS_WML = 2,
  22.     BBSTATUS_XML = 3
  23. };
  24. /*---------------------------------------------------------------
  25.  * Module interface to core bearerbox
  26.  *
  27.  * Modules implement one or more of the following interfaces:
  28.  *
  29.  * XXX_start(Cfg *config) - start the module
  30.  * XXX_restart(Cfg *config) - restart the module, according to new config
  31.  * XXX_shutdown() - start the avalanche - started from UDP/SMSC
  32.  * XXX_die() - final cleanup
  33.  *
  34.  * XXX_addwdp() - only for SMSC/UDP: add a new WDP message to outgoing system
  35.  */
  36. /*---------------
  37.  * bb_boxc.c (SMS and WAPBOX connections)
  38.  */
  39. int smsbox_start(Cfg *config);
  40. int smsbox_restart(Cfg *config);
  41. int wapbox_start(Cfg *config);
  42. Octstr *boxc_status(int status_type);
  43. /* tell total number of messages in seperate wapbox incoming queues */
  44. int boxc_incoming_wdp_queue(void);
  45. /* Clean up after box connections have died. */
  46. void boxc_cleanup(void);
  47. /*---------------
  48.  * bb_udp.c (UDP receiver/sender)
  49.  */
  50. int udp_start(Cfg *config);
  51. /* int udp_restart(Cfg *config); */
  52. int udp_shutdown(void);
  53. int udp_die(void); /* called when router dies */
  54. /* add outgoing WDP. If fails, return -1 and msg is untouched, so
  55.  * caller must think of new uses for it */
  56. int udp_addwdp(Msg *msg);
  57. /* tell total number of messages in seperate UDP outgoing port queues */
  58. int udp_outgoing_queue(void);
  59. /*---------------
  60.  * bb_smscconn.c (SMS Center connections)
  61.  */
  62. int smsc2_start(Cfg *config);
  63. int smsc2_restart(Cfg *config);
  64. void smsc2_suspend(void);    /* suspend (can still send but not receive) */
  65. void smsc2_resume(void);     /* resume */
  66. int smsc2_shutdown(void);
  67. void smsc2_cleanup(void); /* final clean-up */
  68. Octstr *smsc2_status(int status_type);
  69. /* Route message to SMSC. If finds a good one, puts into it and returns 1
  70.  * If finds only bad ones, but acceptable, queues and returns 0
  71.  * (like all acceptable currently disconnected)
  72.  * If cannot find nothing at all, returns -1 and message is NOT destroyed
  73.  * (otherwise it is) */
  74. int smsc2_rout(Msg *msg);
  75. int smsc2_stop_smsc(Octstr *id);   /* shutdown a specific smsc */
  76. int smsc2_restart_smsc(Octstr *id);  /* re-start a specific smsc */
  77. /*---------------
  78.  * bb_http.c (HTTP Admin)
  79.  */
  80. int httpadmin_start(Cfg *config);
  81. /* int http_restart(Cfg *config); */
  82. void httpadmin_stop(void);
  83. /*-----------------
  84.  * bb_store.c (SMS storing/retrieval functions)
  85.  */
  86. /* return number of SMS messages in current store (file) */
  87. long store_messages(void);
  88. /* assign ID and save given message to store. Return -1 if save failed */
  89. int store_save(Msg *msg);
  90. /* load store from file; delete any messages that have been relayed,
  91.  * and create a new store file from remaining. Calling this function
  92.  * might take a while, depending on store size
  93.  * Return -1 if something fails (bb can then PANIC normally)
  94.  */
  95. int store_load(void);
  96. /* dump currently non-acknowledged messages into file. This is done
  97.  * automatically now and then, but can be forced. Return -1 if file
  98.  * problems
  99.  */
  100. int store_dump(void);
  101. /* initialize system. Return -1 if fname is baad (too long), otherwise
  102.  * load data from disk */
  103. int store_init(Octstr *fname);
  104. /* init shutdown (system dies when all acks have been processed) */
  105. void store_shutdown(void);
  106. /* return all containing messages in the current store */
  107. Octstr *store_status(int status_type);
  108. /*----------------------------------------------------------------
  109.  * Core bearerbox public functions;
  110.  * used only via HTTP adminstration
  111.  */
  112. int bb_shutdown(void);
  113. int bb_isolate(void);
  114. int bb_suspend(void);
  115. int bb_resume(void);
  116. int bb_restart(void);
  117. int bb_flush_dlr(void);
  118. int bb_stop_smsc(Octstr *id);
  119. int bb_restart_smsc(Octstr *id);
  120. /* return string of current status */
  121. Octstr *bb_print_status(int status_type);
  122. /*----------------------------------------------------------------
  123.  * common function to all (in bearerbox.c)
  124.  */
  125. /* return linebreak for given output format, or NULL if format
  126.  * not supported */
  127. char *bb_status_linebreak(int status_type);