FS-6865 #resolve add XMPP priority to dingaling
This commit is contained in:
parent
a39db86863
commit
8e408e9abe
|
@ -127,6 +127,7 @@ struct ldl_handle {
|
|||
char *password;
|
||||
char *server;
|
||||
char *status_msg;
|
||||
char *priority;
|
||||
uint16_t port;
|
||||
int features;
|
||||
int counter;
|
||||
|
@ -1470,7 +1471,7 @@ static int on_commands(void *user_data, ikspak *pak)
|
|||
static int on_result(void *user_data, ikspak *pak)
|
||||
{
|
||||
ldl_handle_t *handle = user_data;
|
||||
iks *msg, *ctag;
|
||||
iks *msg, *ctag, *tag;
|
||||
|
||||
if ((msg = iks_make_pres (IKS_SHOW_AVAILABLE, handle->status_msg))) {
|
||||
ctag = iks_insert(msg, "c");
|
||||
|
@ -1480,6 +1481,11 @@ static int on_result(void *user_data, ikspak *pak)
|
|||
iks_insert_attrib(ctag, "client", "libdingaling");
|
||||
iks_insert_attrib(ctag, "xmlns", "http://jabber.org/protocol/caps");
|
||||
|
||||
if (handle->priority && strlen(handle->priority)) {
|
||||
tag = iks_insert (msg, "priority");
|
||||
iks_insert_cdata(tag, handle->priority, 0);
|
||||
}
|
||||
|
||||
apr_queue_push(handle->queue, msg);
|
||||
msg = NULL;
|
||||
}
|
||||
|
@ -3117,6 +3123,7 @@ ldl_status ldl_handle_init(ldl_handle_t **handle,
|
|||
char *server,
|
||||
ldl_user_flag_t flags,
|
||||
char *status_msg,
|
||||
char *priority,
|
||||
ldl_loop_callback_t loop_callback,
|
||||
ldl_session_callback_t session_callback,
|
||||
ldl_response_callback_t response_callback,
|
||||
|
@ -3162,6 +3169,10 @@ ldl_status ldl_handle_init(ldl_handle_t **handle,
|
|||
new_handle->status_msg = apr_pstrdup(pool, status_msg);
|
||||
}
|
||||
|
||||
if (priority) {
|
||||
new_handle->priority = apr_pstrdup(pool, priority);
|
||||
}
|
||||
|
||||
if (loop_callback) {
|
||||
new_handle->loop_callback = loop_callback;
|
||||
}
|
||||
|
|
|
@ -666,6 +666,7 @@ ldl_status ldl_handle_init(ldl_handle_t **handle,
|
|||
char *server,
|
||||
ldl_user_flag_t flags,
|
||||
char *status_msg,
|
||||
char *priority,
|
||||
ldl_loop_callback_t loop_callback,
|
||||
ldl_session_callback_t session_callback,
|
||||
ldl_response_callback_t response_callback,
|
||||
|
|
|
@ -124,6 +124,7 @@ struct mdl_profile {
|
|||
char *login;
|
||||
char *password;
|
||||
char *message;
|
||||
char *priority;
|
||||
#ifdef AUTO_REPLY
|
||||
char *auto_reply;
|
||||
#endif
|
||||
|
@ -2844,7 +2845,7 @@ static switch_status_t init_profile(mdl_profile_t *profile, uint8_t login)
|
|||
profile->login,
|
||||
profile->password,
|
||||
profile->server,
|
||||
profile->user_flags, profile->message, handle_loop, handle_signalling, handle_response, profile) == LDL_STATUS_SUCCESS) {
|
||||
profile->user_flags, profile->message, profile->priority, handle_loop, handle_signalling, handle_response, profile) == LDL_STATUS_SUCCESS) {
|
||||
profile->purge = SWITCH_FALSE;
|
||||
switch_thread_rwlock_create(&profile->rwlock, module_pool);
|
||||
|
||||
|
@ -2923,6 +2924,8 @@ static void set_profile_val(mdl_profile_t *profile, char *var, char *val)
|
|||
profile->name = switch_core_strdup(module_pool, val);
|
||||
} else if (!strcasecmp(var, "message") && !zstr(val)) {
|
||||
profile->message = switch_core_strdup(module_pool, val);
|
||||
} else if (!strcasecmp(var, "priority") && !zstr(val)) {
|
||||
profile->priority = switch_core_strdup(module_pool, val);
|
||||
} else if (!strcasecmp(var, "local-network-acl") && !zstr(val)) {
|
||||
profile->local_network = switch_core_strdup(module_pool, val);
|
||||
} else if (!strcasecmp(var, "rtp-ip")) {
|
||||
|
@ -3189,6 +3192,8 @@ static switch_bool_t match_profile(mdl_profile_t *profile, mdl_profile_t *new_pr
|
|||
(new_profile->password && profile->password && !strcasecmp(new_profile->password, profile->password))) &&
|
||||
((!new_profile->message && !profile->message) ||
|
||||
(new_profile->message && profile->message && !strcasecmp(new_profile->message, profile->message))) &&
|
||||
((!new_profile->priority && !profile->priority) ||
|
||||
(new_profile->priority && profile->priority && !strcasecmp(new_profile->priority, profile->priority))) &&
|
||||
((!new_profile->avatar && !profile->avatar) || (new_profile->avatar && profile->avatar && !strcasecmp(new_profile->avatar, profile->avatar))) &&
|
||||
#ifdef AUTO_REPLY
|
||||
((!new_profile->auto_reply && !profile->auto_reply) ||
|
||||
|
@ -3310,6 +3315,7 @@ static switch_status_t soft_reload(void)
|
|||
|
||||
switch_set_flag(profile, TFLAG_AUTO);
|
||||
profile->message = "";
|
||||
profile->priority = "";
|
||||
profile->user_flags |= LDL_FLAG_COMPONENT;
|
||||
switch_mutex_init(&profile->mutex, SWITCH_MUTEX_NESTED, module_pool);
|
||||
switch_snprintf(dbname, sizeof(dbname), "dingaling_%s", profile->name);
|
||||
|
@ -3440,6 +3446,7 @@ static switch_status_t load_config(void)
|
|||
|
||||
switch_set_flag(profile, TFLAG_AUTO);
|
||||
profile->message = "";
|
||||
profile->priority = "";
|
||||
profile->user_flags |= LDL_FLAG_COMPONENT;
|
||||
switch_mutex_init(&profile->mutex, SWITCH_MUTEX_NESTED, module_pool);
|
||||
switch_snprintf(dbname, sizeof(dbname), "dingaling_%s", profile->name);
|
||||
|
|
Loading…
Reference in New Issue