|
@@ -93,11 +93,14 @@ static int mod_init(void);
|
|
static int child_init(int);
|
|
static int child_init(int);
|
|
static void destroy(void);
|
|
static void destroy(void);
|
|
static int handle_dmq_fixup(void** param, int param_no);
|
|
static int handle_dmq_fixup(void** param, int param_no);
|
|
|
|
+static int send_dmq_fixup(void** param, int param_no);
|
|
static int parse_server_address(str* uri, struct sip_uri* parsed_uri);
|
|
static int parse_server_address(str* uri, struct sip_uri* parsed_uri);
|
|
|
|
|
|
static cmd_export_t cmds[] = {
|
|
static cmd_export_t cmds[] = {
|
|
{"handle_dmq_message", (cmd_function)handle_dmq_message, 0, handle_dmq_fixup, 0,
|
|
{"handle_dmq_message", (cmd_function)handle_dmq_message, 0, handle_dmq_fixup, 0,
|
|
REQUEST_ROUTE},
|
|
REQUEST_ROUTE},
|
|
|
|
+ {"send_dmq_message", (cmd_function)cfg_send_dmq_message, 3, send_dmq_fixup, 0,
|
|
|
|
+ ANY_ROUTE},
|
|
{"bind_dmq", (cmd_function)bind_dmq, 0, 0, 0,
|
|
{"bind_dmq", (cmd_function)bind_dmq, 0, 0, 0,
|
|
REQUEST_ROUTE},
|
|
REQUEST_ROUTE},
|
|
{0, 0, 0, 0, 0, 0}
|
|
{0, 0, 0, 0, 0, 0}
|
|
@@ -262,14 +265,16 @@ static int handle_dmq_fixup(void** param, int param_no) {
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static int send_dmq_fixup(void** param, int param_no) {
|
|
|
|
+ return fixup_spve_null(param, 1);
|
|
|
|
+}
|
|
|
|
+
|
|
static int parse_server_address(str* uri, struct sip_uri* parsed_uri) {
|
|
static int parse_server_address(str* uri, struct sip_uri* parsed_uri) {
|
|
if(!uri->s) {
|
|
if(!uri->s) {
|
|
- LM_ERR("server address missing\n");
|
|
|
|
goto empty;
|
|
goto empty;
|
|
}
|
|
}
|
|
uri->len = strlen(uri->s);
|
|
uri->len = strlen(uri->s);
|
|
if(!uri->len) {
|
|
if(!uri->len) {
|
|
- LM_ERR("empty server address\n");
|
|
|
|
goto empty;
|
|
goto empty;
|
|
}
|
|
}
|
|
if(parse_uri(uri->s, uri->len, parsed_uri) < 0) {
|
|
if(parse_uri(uri->s, uri->len, parsed_uri) < 0) {
|