tweak to jingle

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3624 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2006-12-12 17:44:59 +00:00
parent 34be89ec13
commit 322ecbbb9b
4 changed files with 17 additions and 13 deletions

View File

@ -1 +1 @@
Fri Dec 1 21:13:04 EST 2006 Tue Dec 12 11:55:02 EST 2006

View File

@ -701,6 +701,8 @@ static int on_presence(void *user_data, ikspak *pak)
if (type && !strcasecmp(type, "unavailable")) { if (type && !strcasecmp(type, "unavailable")) {
signal = LDL_SIGNAL_PRESENCE_OUT; signal = LDL_SIGNAL_PRESENCE_OUT;
} else if (type && !strcasecmp(type, "probe")) {
signal = LDL_SIGNAL_PRESENCE_PROBE;
} else { } else {
signal = LDL_SIGNAL_PRESENCE_IN; signal = LDL_SIGNAL_PRESENCE_IN;
} }
@ -725,20 +727,15 @@ static int on_presence(void *user_data, ikspak *pak)
} }
if (resource && strstr(resource, "talk") && (buffer = apr_hash_get(handle->probe_hash, id, APR_HASH_KEY_STRING))) { if (resource && strstr(resource, "talk") && (buffer = apr_hash_get(handle->probe_hash, id, APR_HASH_KEY_STRING))) {
apr_cpystrn(buffer->buf, from, buffer->len); apr_cpystrn(buffer->buf, from, buffer->len);
fflush(stderr); fflush(stderr);
buffer->hit = 1; buffer->hit = 1;
} }
if (!type || (type && strcasecmp(type, "probe"))) { if (handle->session_callback) {
handle->session_callback(handle, NULL, signal, to, id, status ? status : "n/a", show ? show : "n/a");
if (handle->session_callback) { }
handle->session_callback(handle, NULL, signal, to, id, status ? status : "n/a", show ? show : "n/a");
}
}
return IKS_FILTER_EAT; return IKS_FILTER_EAT;
} }

View File

@ -125,6 +125,7 @@ typedef enum {
LDL_SIGNAL_MSG, LDL_SIGNAL_MSG,
LDL_SIGNAL_PRESENCE_IN, LDL_SIGNAL_PRESENCE_IN,
LDL_SIGNAL_PRESENCE_OUT, LDL_SIGNAL_PRESENCE_OUT,
LDL_SIGNAL_PRESENCE_PROBE,
LDL_SIGNAL_ROSTER, LDL_SIGNAL_ROSTER,
LDL_SIGNAL_SUBSCRIBE, LDL_SIGNAL_SUBSCRIBE,
LDL_SIGNAL_UNSUBSCRIBE, LDL_SIGNAL_UNSUBSCRIBE,

View File

@ -2107,7 +2107,7 @@ static ldl_status handle_signalling(ldl_handle_t *handle, ldl_session_t *dlsessi
} }
if (is_special(to)) { if (is_special(to)) {
ldl_handle_send_presence(profile->handle, to, from, NULL, "unknown", "Click To Call"); ldl_handle_send_presence(profile->handle, to, from, NULL, NULL, "Click To Call");
} }
#if 0 #if 0
@ -2116,7 +2116,7 @@ static ldl_status handle_signalling(ldl_handle_t *handle, ldl_session_t *dlsessi
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "proto", MDL_CHAT_PROTO); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "proto", MDL_CHAT_PROTO);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "login", "%s", profile->login); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "login", "%s", profile->login);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s", to); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s", to);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); //switch_event_add_header(event, SWITCH_STACK_BOTTOM, "rpid", "unknown");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "status", "Click To Call"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "status", "Click To Call");
switch_event_fire(&event); switch_event_fire(&event);
} }
@ -2130,6 +2130,11 @@ static ldl_status handle_signalling(ldl_handle_t *handle, ldl_session_t *dlsessi
switch_event_fire(&event); switch_event_fire(&event);
} }
break; break;
case LDL_SIGNAL_PRESENCE_PROBE:
if (is_special(to)) {
ldl_handle_send_presence(profile->handle, to, from, NULL, NULL, "Click To Call");
}
break;
case LDL_SIGNAL_PRESENCE_IN: case LDL_SIGNAL_PRESENCE_IN:
if ((sql = switch_mprintf("update subscriptions set show='%q', status='%q' where sub_from='%q'", msg, subject, from))) { if ((sql = switch_mprintf("update subscriptions set show='%q', status='%q' where sub_from='%q'", msg, subject, from))) {
@ -2148,7 +2153,7 @@ static ldl_status handle_signalling(ldl_handle_t *handle, ldl_session_t *dlsessi
if (is_special(to)) { if (is_special(to)) {
ldl_handle_send_presence(profile->handle, to, from, NULL, "unknown", "Click To Call"); ldl_handle_send_presence(profile->handle, to, from, NULL, NULL, "Click To Call");
} }
#if 0 #if 0
if (is_special(to)) { if (is_special(to)) {
@ -2156,13 +2161,14 @@ static ldl_status handle_signalling(ldl_handle_t *handle, ldl_session_t *dlsessi
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "proto", MDL_CHAT_PROTO); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "proto", MDL_CHAT_PROTO);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "login", "%s", profile->login); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "login", "%s", profile->login);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s", to); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s", to);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); //switch_event_add_header(event, SWITCH_STACK_BOTTOM, "rpid", "unknown");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "status", "Click To Call"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "status", "Click To Call");
switch_event_fire(&event); switch_event_fire(&event);
} }
} }
break; break;
#endif #endif
case LDL_SIGNAL_PRESENCE_OUT: case LDL_SIGNAL_PRESENCE_OUT:
if ((sql = switch_mprintf("update subscriptions set show='%q', status='%q' where sub_from='%q'", msg, subject, from))) { if ((sql = switch_mprintf("update subscriptions set show='%q', status='%q' where sub_from='%q'", msg, subject, from))) {