00001 #ifndef DMQ_H
00002 #define DMQ_H
00003
00004 #include "../../dprint.h"
00005 #include "../../error.h"
00006 #include "../../sr_module.h"
00007 #include "../../modules/tm/tm_load.h"
00008 #include "../../parser/parse_uri.h"
00009 #include "../../modules/sl/sl.h"
00010 #include "bind_dmq.h"
00011 #include "peer.h"
00012 #include "worker.h"
00013
00014 #define DEFAULT_NUM_WORKERS 2
00015 #define MIN_PING_INTERVAL 60
00016
00017 extern int num_workers;
00018 extern dmq_worker_t* workers;
00019 extern dmq_peer_t* dmq_notification_peer;
00020 extern str dmq_server_address;
00021 extern dmq_peer_list_t* peer_list;
00022 extern str dmq_request_method;
00023 extern struct sip_uri dmq_server_uri;
00024 extern str dmq_notification_address;
00025 extern struct sip_uri dmq_notification_uri;
00026
00027 extern struct tm_binds tmb;
00028 extern sl_api_t slb;
00029
00030 extern str dmq_200_rpl;
00031 extern str dmq_400_rpl;
00032 extern str dmq_500_rpl;
00033 extern str dmq_404_rpl;
00034
00035 static inline int dmq_load_api(dmq_api_t* api) {
00036 bind_dmq_f binddmq;
00037 binddmq = (bind_dmq_f)find_export("bind_dmq", 0, 0);
00038 if ( binddmq == 0) {
00039 LM_ERR("cannot find bind_dmq\n");
00040 return -1;
00041 }
00042 if (binddmq(api) < 0)
00043 {
00044 LM_ERR("cannot bind dmq api\n");
00045 return -1;
00046 }
00047 return 0;
00048 }
00049
00050 int dmq_handle_message(struct sip_msg* msg, char* str1 ,char* str2);
00051
00052 #endif
00053