pua_mi.c
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include <stdio.h>
00030 #include <stdlib.h>
00031 #include <string.h>
00032 #include <time.h>
00033
00034 #include "../../sr_module.h"
00035 #include "../../parser/parse_expires.h"
00036 #include "../../dprint.h"
00037 #include "../../mem/shm_mem.h"
00038 #include "../../parser/msg_parser.h"
00039 #include "../../str.h"
00040 #include "../../mem/mem.h"
00041 #include "../../pt.h"
00042 #include "../tm/tm_load.h"
00043 #include "../pua/pua_bind.h"
00044 #include "mi_func.h"
00045
00046 MODULE_VERSION
00047
00048 pua_api_t pua;
00049
00050
00051
00052 static int mod_init(void);
00053
00054 send_publish_t pua_send_publish;
00055 send_subscribe_t pua_send_subscribe;
00056
00057
00058
00059
00060 static mi_export_t mi_cmds[] = {
00061 { "pua_publish", mi_pua_publish, MI_ASYNC_RPL_FLAG, 0, 0},
00062 { "pua_subscribe", mi_pua_subscribe, 0, 0, 0},
00063 { 0, 0, 0, 0, 0}
00064 };
00065
00066
00067 struct module_exports exports= {
00068 "pua_mi",
00069 DEFAULT_DLFLAGS,
00070 0,
00071 0,
00072 0,
00073 mi_cmds,
00074 0,
00075 0,
00076 mod_init,
00077 0,
00078 0,
00079 0
00080 };
00081
00082
00083
00084
00085 static int mod_init(void)
00086 {
00087 LM_DBG("...\n");
00088 bind_pua_t bind_pua;
00089
00090 bind_pua= (bind_pua_t)find_export("bind_pua", 1,0);
00091 if (!bind_pua)
00092 {
00093 LM_ERR("Can't bind pua\n");
00094 return -1;
00095 }
00096
00097 if (bind_pua(&pua) < 0)
00098 {
00099 LM_ERR("Can't bind pua\n");
00100 return -1;
00101 }
00102 if(pua.send_publish == NULL)
00103 {
00104 LM_ERR("Could not import send_publish\n");
00105 return -1;
00106 }
00107 pua_send_publish= pua.send_publish;
00108
00109 if(pua.send_subscribe == NULL)
00110 {
00111 LM_ERR("Could not import send_subscribe\n");
00112 return -1;
00113 }
00114 pua_send_subscribe= pua.send_subscribe;
00115
00116 if(pua.register_puacb(MI_ASYN_PUBLISH, mi_publ_rpl_cback, NULL)< 0)
00117 {
00118 LM_ERR("Could not register callback\n");
00119 return -1;
00120 }
00121
00122 return 0;
00123 }