skypopen: indented

This commit is contained in:
Giovanni Maruzzelli 2012-05-07 19:01:54 +02:00
parent 56f415a164
commit 00a6f61a67
3 changed files with 196 additions and 190 deletions

View File

@ -112,6 +112,7 @@ char *interface_status[] = { /* should match SKYPOPEN_STATE_xxx in skypopen.h */
"PREANSW",
"DEAD"
};
char *skype_callflow[] = { /* should match CALLFLOW_XXX in skypopen.h */
"IDLE",
"DOWN",
@ -381,7 +382,7 @@ static switch_status_t interface_exists(char *the_interface)
if (tech_pvt->running && tech_pvt->SkypopenHandles.disp) {
XEvent e;
Atom atom1 = XInternAtom(tech_pvt->SkypopenHandles.disp, "SKYPECONTROLAPI_MESSAGE_BEGIN", False);
switch_sleep(20000);
switch_sleep(20000);
XFlush(tech_pvt->SkypopenHandles.disp);
memset(&e, 0, sizeof(e));
e.xclient.type = ClientMessage;
@ -739,6 +740,7 @@ static switch_status_t channel_kill_channel(switch_core_session_t *session, int
return SWITCH_STATUS_SUCCESS;
}
static switch_status_t channel_on_consume_media(switch_core_session_t *session)
{
private_t *tech_pvt = NULL;
@ -765,6 +767,7 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session)
DEBUGA_SKYPE("%s CHANNEL SOFT_EXECUTE\n", SKYPOPEN_P_LOG, tech_pvt->name);
return SWITCH_STATUS_SUCCESS;
}
static switch_status_t channel_on_reset(switch_core_session_t *session)
{
private_t *tech_pvt = NULL;
@ -873,9 +876,9 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
switch_mutex_unlock(tech_pvt->mutex_audio_srv);
if (!bytes_read) {
switch_sleep(1000); //XXX don't like this
switch_sleep(1000); //XXX don't like this
try++;
if (try < 5){
if (try < 5) {
DEBUGA_SKYPE("skypopen_audio_read going back to read\n", SKYPOPEN_P_LOG);
goto read;
}
@ -940,19 +943,19 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
char *p = digit_str;
switch_channel_t *channel = switch_core_session_get_channel(session);
if(channel){
if (channel) {
while (p && *p) {
switch_dtmf_t dtmf = {0};
switch_dtmf_t dtmf = { 0 };
dtmf.digit = *p;
dtmf.duration = SWITCH_DEFAULT_DTMF_DURATION;
switch_channel_queue_dtmf(channel, &dtmf);
p++;
}
NOTICA("DTMF DETECTED: [%s] new_dtmf_timestamp: %u, delta_t: %u\n", SKYPOPEN_P_LOG, digit_str, (unsigned int) new_dtmf_timestamp,
(unsigned int) (new_dtmf_timestamp - tech_pvt->old_dtmf_timestamp));
NOTICA("DTMF DETECTED: [%s] new_dtmf_timestamp: %u, delta_t: %u\n", SKYPOPEN_P_LOG, digit_str,
(unsigned int) new_dtmf_timestamp, (unsigned int) (new_dtmf_timestamp - tech_pvt->old_dtmf_timestamp));
tech_pvt->old_dtmf_timestamp = new_dtmf_timestamp;
}else{
} else {
WARNINGA("NO CHANNEL ?\n", SKYPOPEN_P_LOG);
}
}
@ -1077,7 +1080,7 @@ static switch_status_t channel_answer_channel(switch_core_session_t *session)
return SWITCH_STATUS_SUCCESS;
}
static switch_status_t channel_receive_message(switch_core_session_t *session, switch_core_session_message_t * msg)
static switch_status_t channel_receive_message(switch_core_session_t *session, switch_core_session_message_t *msg)
{
switch_channel_t *channel;
private_t *tech_pvt;
@ -1648,7 +1651,7 @@ static switch_status_t load_config(int reload_type)
} else {
DEBUGA_SKYPE("Initialized XInitThreads!\n", SKYPOPEN_P_LOG);
}
switch_sleep(20000);
switch_sleep(20000);
#endif /* WIN32 */
if (interface_id && interface_id < SKYPOPEN_MAX_INTERFACES) {
@ -1751,8 +1754,7 @@ static switch_status_t load_config(int reload_type)
switch_threadattr_detach_set(skypopen_signaling_thread_attr, 0);
switch_threadattr_stacksize_set(skypopen_signaling_thread_attr, SWITCH_THREAD_STACKSIZE);
//switch_threadattr_priority_increase(skypopen_signaling_thread_attr);
switch_thread_create(&globals.SKYPOPEN_INTERFACES[interface_id].
skypopen_signaling_thread, skypopen_signaling_thread_attr,
switch_thread_create(&globals.SKYPOPEN_INTERFACES[interface_id].skypopen_signaling_thread, skypopen_signaling_thread_attr,
skypopen_signaling_thread_func, &globals.SKYPOPEN_INTERFACES[interface_id], skypopen_module_pool);
switch_sleep(100000);
@ -1858,8 +1860,8 @@ static switch_status_t load_config(int reload_type)
return SWITCH_STATUS_SUCCESS;
}
static switch_status_t chat_send(switch_event_t *message_event)
{
char *user = NULL, *host, *f_user = NULL, *f_host = NULL, *f_resource = NULL;
private_t *tech_pvt = NULL;
@ -1867,7 +1869,7 @@ static switch_status_t chat_send(switch_event_t *message_event)
char skype_msg[1024];
const char *proto;
const char *from;
const char *from;
const char *to;
const char *subject;
const char *body;
@ -1885,7 +1887,7 @@ static switch_status_t chat_send(switch_event_t *message_event)
switch_assert(proto != NULL);
//DEBUGA_SKYPE("chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, type=%s, hint=%s)\n", SKYPOPEN_P_LOG, proto, from, to, subject, body, type,
// hint ? hint : "NULL");
// hint ? hint : "NULL");
DEBUGA_SKYPE("chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, hint=%s)\n", SKYPOPEN_P_LOG, proto, from, to, subject, body,
hint ? hint : "NULL");
@ -1912,9 +1914,8 @@ static switch_status_t chat_send(switch_event_t *message_event)
if ((host = strchr(user, '@'))) {
*host++ = '\0';
}
//DEBUGA_SKYPE("chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, type=%s, hint=%s)\n", SKYPOPEN_P_LOG, proto, from, to, subject, body, type,
// hint ? hint : "NULL");
// hint ? hint : "NULL");
DEBUGA_SKYPE("chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, hint=%s)\n", SKYPOPEN_P_LOG, proto, from, to, subject, body,
hint ? hint : "NULL");
if (hint && strlen(hint)) {
@ -1950,7 +1951,7 @@ static switch_status_t chat_send(switch_event_t *message_event)
snprintf(skype_msg, sizeof(skype_msg), "CHAT CREATE %s", to);
skypopen_signaling_write(tech_pvt, skype_msg);
switch_sleep(20000);
switch_sleep(20000);
}
found = 0;
@ -1970,7 +1971,9 @@ static switch_status_t chat_send(switch_event_t *message_event)
}
tried++;
if (tried > 20) {
ERRORA("No chat with dialog_partner='%s' was found. (If you're using mod_sms this is a bug of mod_skypopen when using mod_sms, from next incoming message it will probably work...)\n", SKYPOPEN_P_LOG, to);
ERRORA
("No chat with dialog_partner='%s' was found. (If you're using mod_sms this is a bug of mod_skypopen when using mod_sms, from next incoming message it will probably work...)\n",
SKYPOPEN_P_LOG, to);
break;
}
switch_sleep(50000);
@ -2076,7 +2079,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_skypopen_shutdown)
XEvent e;
Atom atom1 = XInternAtom(tech_pvt->SkypopenHandles.disp, "SKYPECONTROLAPI_MESSAGE_BEGIN",
False);
switch_sleep(20000);
switch_sleep(20000);
XFlush(tech_pvt->SkypopenHandles.disp);
memset(&e, 0, sizeof(e));
e.xclient.type = ClientMessage;
@ -2172,7 +2175,7 @@ int dtmf_received(private_t *tech_pvt, char *value)
if (channel) {
if (switch_channel_test_flag(channel, CF_BRIDGED)
&& !switch_true(switch_channel_get_variable(channel, "skype_add_outband_dtmf_also_when_bridged"))) {
&& !switch_true(switch_channel_get_variable(channel, "skype_add_outband_dtmf_also_when_bridged"))) {
NOTICA
@ -2194,7 +2197,7 @@ int dtmf_received(private_t *tech_pvt, char *value)
WARNINGA("received %c DTMF, but no channel?\n", SKYPOPEN_P_LOG, value[0]);
}
switch_core_session_rwunlock(session);
}else{
} else {
WARNINGA("received %c DTMF, but no session?\n", SKYPOPEN_P_LOG, value[0]);
}
@ -2203,14 +2206,14 @@ int dtmf_received(private_t *tech_pvt, char *value)
void *SWITCH_THREAD_FUNC skypopen_do_mod_sms_thread(switch_thread_t *thread, void *obj)
{
switch_event_t *event;
switch_event_t *event;
event = obj;
switch_core_chat_send("GLOBAL", event); /* mod_sms */
switch_core_chat_send("GLOBAL", event); /* mod_sms */
return event;
}
@ -2218,7 +2221,7 @@ void *SWITCH_THREAD_FUNC skypopen_do_mod_sms_thread(switch_thread_t *thread, voi
int start_mod_sms_thread(private_t *tech_pvt, switch_event_t *event)
{
switch_threadattr_t *mod_sms_thread_thd_attr = NULL;
switch_thread_t *mod_sms_thread;
switch_thread_t *mod_sms_thread;
switch_threadattr_create(&mod_sms_thread_thd_attr, skypopen_module_pool);
@ -2274,7 +2277,8 @@ int start_audio_threads(private_t *tech_pvt)
switch_threadattr_priority_increase(tcp_srv_thread_thd_attr);
switch_mutex_lock(tech_pvt->mutex_thread_audio_srv);
//DEBUGA_SKYPE("debugging_hangup srv lock\n", SKYPOPEN_P_LOG);
if (switch_thread_create(&tech_pvt->tcp_srv_thread, tcp_srv_thread_thd_attr, skypopen_do_tcp_srv_thread, tech_pvt, skypopen_module_pool) == SWITCH_STATUS_SUCCESS) {
if (switch_thread_create(&tech_pvt->tcp_srv_thread, tcp_srv_thread_thd_attr, skypopen_do_tcp_srv_thread, tech_pvt, skypopen_module_pool) ==
SWITCH_STATUS_SUCCESS) {
DEBUGA_SKYPE("started tcp_srv_thread thread.\n", SKYPOPEN_P_LOG);
} else {
ERRORA("failed to start tcp_srv_thread thread.\n", SKYPOPEN_P_LOG);
@ -2291,7 +2295,8 @@ int start_audio_threads(private_t *tech_pvt)
switch_threadattr_priority_increase(tcp_cli_thread_thd_attr);
switch_mutex_lock(tech_pvt->mutex_thread_audio_cli);
//DEBUGA_SKYPE("debugging_hangup cli lock\n", SKYPOPEN_P_LOG);
if (switch_thread_create(&tech_pvt->tcp_cli_thread, tcp_cli_thread_thd_attr, skypopen_do_tcp_cli_thread, tech_pvt, skypopen_module_pool) == SWITCH_STATUS_SUCCESS) {
if (switch_thread_create(&tech_pvt->tcp_cli_thread, tcp_cli_thread_thd_attr, skypopen_do_tcp_cli_thread, tech_pvt, skypopen_module_pool) ==
SWITCH_STATUS_SUCCESS) {
DEBUGA_SKYPE("started tcp_cli_thread thread.\n", SKYPOPEN_P_LOG);
} else {
ERRORA("failed to start tcp_cli_thread thread.\n", SKYPOPEN_P_LOG);
@ -2509,24 +2514,25 @@ SWITCH_STANDARD_API(sk_function)
goto end;
}
if (!strcasecmp(argv[0], "balances")) {
stream->write_function(stream, " Name \tBalance\tCurrency\n");
stream->write_function(stream, " ==== \t=======\t========\n");
for (tmp_i = 0; tmp_i < SKYPOPEN_MAX_INTERFACES; tmp_i++) {
if (strlen(globals.SKYPOPEN_INTERFACES[tmp_i].name)) {
skypopen_signaling_write(&globals.SKYPOPEN_INTERFACES[tmp_i], "GET PROFILE PSTN_BALANCE");
switch_sleep(20000);
strncpy(tmp_message, globals.SKYPOPEN_INTERFACES[tmp_i].message, sizeof(globals.SKYPOPEN_INTERFACES[tmp_i].message));
skypopen_signaling_write(&globals.SKYPOPEN_INTERFACES[tmp_i], "GET PROFILE PSTN_BALANCE_CURRENCY");
switch_sleep(20000);
if(strlen(tmp_message)>21 && strlen(globals.SKYPOPEN_INTERFACES[tmp_i].message) > 30)
stream->write_function(stream, " %s \t%s\t%s\n", globals.SKYPOPEN_INTERFACES[tmp_i].name, tmp_message+21, globals.SKYPOPEN_INTERFACES[tmp_i].message+30);
}
}
stream->write_function(stream, " Name \tBalance\tCurrency\n");
stream->write_function(stream, " ==== \t=======\t========\n");
for (tmp_i = 0; tmp_i < SKYPOPEN_MAX_INTERFACES; tmp_i++) {
if (strlen(globals.SKYPOPEN_INTERFACES[tmp_i].name)) {
skypopen_signaling_write(&globals.SKYPOPEN_INTERFACES[tmp_i], "GET PROFILE PSTN_BALANCE");
switch_sleep(20000);
strncpy(tmp_message, globals.SKYPOPEN_INTERFACES[tmp_i].message, sizeof(globals.SKYPOPEN_INTERFACES[tmp_i].message));
skypopen_signaling_write(&globals.SKYPOPEN_INTERFACES[tmp_i], "GET PROFILE PSTN_BALANCE_CURRENCY");
switch_sleep(20000);
if (strlen(tmp_message) > 21 && strlen(globals.SKYPOPEN_INTERFACES[tmp_i].message) > 30)
stream->write_function(stream, " %s \t%s\t%s\n", globals.SKYPOPEN_INTERFACES[tmp_i].name, tmp_message + 21,
globals.SKYPOPEN_INTERFACES[tmp_i].message + 30);
}
}
}
if (!strcasecmp(argv[0], "list")) {
@ -2542,11 +2548,11 @@ SWITCH_STANDARD_API(sk_function)
for (i = 0; i < SKYPOPEN_MAX_INTERFACES; i++) {
if (strlen(globals.SKYPOPEN_INTERFACES[i].name)) {
next_flag_char = i == globals.next_interface ? '*' : ' ';
ib += globals.SKYPOPEN_INTERFACES[i].ib_calls;
ib_failed += globals.SKYPOPEN_INTERFACES[i].ib_failed_calls;
ob += globals.SKYPOPEN_INTERFACES[i].ob_calls;
ob_failed += globals.SKYPOPEN_INTERFACES[i].ob_failed_calls;
next_flag_char = i == globals.next_interface ? '*' : ' ';
ib += globals.SKYPOPEN_INTERFACES[i].ib_calls;
ib_failed += globals.SKYPOPEN_INTERFACES[i].ib_failed_calls;
ob += globals.SKYPOPEN_INTERFACES[i].ob_calls;
ob_failed += globals.SKYPOPEN_INTERFACES[i].ob_failed_calls;
stream->write_function(stream,
"%c %d\t[%s]\t%3u/%u\t%6u/%u\t%s\t%s\t%s\n",
@ -3011,14 +3017,14 @@ int incoming_chatmessage(private_t *tech_pvt, int which)
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "chatname", tech_pvt->chatmessages[which].chatname);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "id", tech_pvt->chatmessages[which].id);
/* mod_sms begin */
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to", tech_pvt->skype_user);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "hint", tech_pvt->name);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_proto", SKYPE_CHAT_PROTO);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_user", tech_pvt->chatmessages[which].from_handle);
//switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_host", "from_host");
//switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_full", "from_full");
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_user", tech_pvt->name);
//switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_host", "to_host");
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to", tech_pvt->skype_user);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "hint", tech_pvt->name);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_proto", SKYPE_CHAT_PROTO);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_user", tech_pvt->chatmessages[which].from_handle);
//switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_host", "from_host");
//switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_full", "from_full");
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_user", tech_pvt->name);
//switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_host", "to_host");
/* mod_sms end */
switch_event_add_body(event, "%s", tech_pvt->chatmessages[which].body);
@ -3075,18 +3081,18 @@ int incoming_chatmessage(private_t *tech_pvt, int which)
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "chatname", tech_pvt->chatmessages[which].chatname);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "id", tech_pvt->chatmessages[which].id);
/* mod_sms begin */
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to", tech_pvt->skype_user);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "hint", tech_pvt->name);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_proto", SKYPE_CHAT_PROTO);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_user", tech_pvt->chatmessages[which].from_handle);
//switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_host", "from_host");
//switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_full", "from_full");
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_user", tech_pvt->name);
//switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_host", "to_host");
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to", tech_pvt->skype_user);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "hint", tech_pvt->name);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_proto", SKYPE_CHAT_PROTO);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_user", tech_pvt->chatmessages[which].from_handle);
//switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_host", "from_host");
//switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_full", "from_full");
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_user", tech_pvt->name);
//switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_host", "to_host");
/* mod_sms end */
switch_event_add_body(event, "%s", tech_pvt->chatmessages[which].body);
//switch_core_chat_send("GLOBAL", event); /* mod_sms */
//switch_core_chat_send("GLOBAL", event); /* mod_sms */
start_mod_sms_thread(tech_pvt, event);
//usleep(20000);
@ -3110,19 +3116,19 @@ static switch_status_t compat_chat_send(const char *proto, const char *from, con
switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "subject", subject);
switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "type", type);
switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "hint", hint);
if (body) {
switch_event_add_body(message_event, "%s", body);
}
} else {
abort();
}
}
status = chat_send(message_event);
switch_event_destroy(&message_event);
return status;
}
SWITCH_STANDARD_API(skypopen_chat_function)
@ -3164,8 +3170,9 @@ SWITCH_STANDARD_API(skypopen_chat_function)
goto end;
} else {
NOTICA("chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, type=NULL, hint=%s)\n", SKYPOPEN_P_LOG, SKYPE_CHAT_PROTO, tech_pvt->skype_user,
argv[1], "SIMPLE MESSAGE", switch_str_nil((char *) &cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]), tech_pvt->name);
NOTICA("chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, type=NULL, hint=%s)\n", SKYPOPEN_P_LOG, SKYPE_CHAT_PROTO,
tech_pvt->skype_user, argv[1], "SIMPLE MESSAGE", switch_str_nil((char *) &cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]),
tech_pvt->name);
compat_chat_send(SKYPE_CHAT_PROTO, tech_pvt->skype_user, argv[1], "SIMPLE MESSAGE",
switch_str_nil((char *) &cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]), NULL, tech_pvt->name);

View File

@ -112,7 +112,7 @@ typedef enum {
#define WARNINGA(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "%-*s["SKYPOPEN_SVN_VERSION "] [WARNINGA %-5d][%-15s][%s,%s] " __VA_ARGS__ );
#define NOTICA(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "%-*s ["SKYPOPEN_SVN_VERSION "] [NOTICA %-5d][%-15s][%s,%s] " __VA_ARGS__ );
#define SKYPOPEN_P_LOG (int)((20 - (strlen(__FILE__))) + ((__LINE__ - 1000) < 0) + ((__LINE__ - 100) < 0)), " ", __LINE__, tech_pvt ? tech_pvt->name ? tech_pvt->name : "none" : "none", tech_pvt ? interface_status[tech_pvt->interface_state] : "N/A", tech_pvt ? skype_callflow[tech_pvt->skype_callflow] : "N/A"
#define SKYPOPEN_P_LOG (int)((20 - (strlen(__FILE__))) + ((__LINE__ - 1000) < 0) + ((__LINE__ - 100) < 0)), " ", __LINE__, tech_pvt ? tech_pvt->name ? tech_pvt->name : "none" : "none", tech_pvt ? interface_status[tech_pvt->interface_state] : "N/A", tech_pvt ? skype_callflow[tech_pvt->skype_callflow] : "N/A"
/*********************************/
#define SKYPOPEN_CAUSE_NORMAL 1

View File

@ -378,121 +378,121 @@ int skypopen_signaling_read(private_t *tech_pvt)
skypopen_strncpy(prop, where, sizeof(prop) - 1);
skypopen_strncpy(value, *stringp, sizeof(value) - 1);
if (!tech_pvt->report_incoming_chatmessages) {
if (!strcasecmp(prop, "STATUS") && !strcasecmp(value, "RECEIVED")) {
sprintf(msg_to_skype, "SET CHATMESSAGE %s SEEN", id);
skypopen_signaling_write(tech_pvt, msg_to_skype);
}
} else {
if (!strcasecmp(prop, "STATUS") && !strcasecmp(value, "RECEIVED")) {
DEBUGA_SKYPE("RECEIVED CHATMESSAGE %s, let's see which type it is\n", SKYPOPEN_P_LOG, id);
sprintf(msg_to_skype, "GET CHATMESSAGE %s TYPE", id);
skypopen_signaling_write(tech_pvt, msg_to_skype);
}
if (!strcasecmp(prop, "TYPE") && !strcasecmp(value, "SAID")) {
DEBUGA_SKYPE("CHATMESSAGE %s is of type SAID, let's get the other infos\n", SKYPOPEN_P_LOG, id);
found = 0;
for (i = 0; i < MAX_CHATMESSAGES; i++) {
if (strlen(tech_pvt->chatmessages[i].id) == 0) {
strncpy(tech_pvt->chatmessages[i].id, id, sizeof(tech_pvt->chatmessages[i].id));
strncpy(tech_pvt->chatmessages[i].type, value, sizeof(tech_pvt->chatmessages[i].type));
found = 1;
break;
}
}
if (!found) {
ERRORA("why we do not have a chatmessages slot free? we have more than %d chatmessages in parallel?\n", SKYPOPEN_P_LOG,
MAX_CHATMESSAGES);
} else {
DEBUGA_SKYPE("CHATMESSAGE %s is in position %d in the chatmessages array, type=%s, id=%s\n", SKYPOPEN_P_LOG, id, i,
tech_pvt->chatmessages[i].type, tech_pvt->chatmessages[i].id);
sprintf(msg_to_skype, "GET CHATMESSAGE %s CHATNAME", id);
skypopen_signaling_write(tech_pvt, msg_to_skype);
//skypopen_sleep(1000);
sprintf(msg_to_skype, "GET CHATMESSAGE %s FROM_HANDLE", id);
skypopen_signaling_write(tech_pvt, msg_to_skype);
//skypopen_sleep(1000);
sprintf(msg_to_skype, "GET CHATMESSAGE %s FROM_DISPNAME", id);
skypopen_signaling_write(tech_pvt, msg_to_skype);
//skypopen_sleep(1000);
sprintf(msg_to_skype, "GET CHATMESSAGE %s BODY", id);
if (!tech_pvt->report_incoming_chatmessages) {
if (!strcasecmp(prop, "STATUS") && !strcasecmp(value, "RECEIVED")) {
sprintf(msg_to_skype, "SET CHATMESSAGE %s SEEN", id);
skypopen_signaling_write(tech_pvt, msg_to_skype);
}
}
if (!strcasecmp(prop, "CHATNAME")) {
DEBUGA_SKYPE("CHATMESSAGE %s belongs to the CHAT %s\n", SKYPOPEN_P_LOG, id, value);
found = 0;
for (i = 0; i < MAX_CHATMESSAGES; i++) {
if (!strcmp(tech_pvt->chatmessages[i].id, id)) {
strncpy(tech_pvt->chatmessages[i].chatname, value, sizeof(tech_pvt->chatmessages[i].chatname));
found = 1;
break;
}
}
if (!found) {
DEBUGA_SKYPE("why chatmessage %s was not found in the chatmessages array??\n", SKYPOPEN_P_LOG, id);
}
}
if (!strcasecmp(prop, "FROM_HANDLE")) {
DEBUGA_SKYPE("CHATMESSAGE %s was sent by FROM_HANDLE %s\n", SKYPOPEN_P_LOG, id, value);
found = 0;
for (i = 0; i < MAX_CHATMESSAGES; i++) {
if (!strcmp(tech_pvt->chatmessages[i].id, id)) {
strncpy(tech_pvt->chatmessages[i].from_handle, value, sizeof(tech_pvt->chatmessages[i].from_handle));
found = 1;
break;
}
}
if (!found) {
DEBUGA_SKYPE("why chatmessage %s was not found in the chatmessages array??\n", SKYPOPEN_P_LOG, id);
} else {
if (!strcasecmp(prop, "STATUS") && !strcasecmp(value, "RECEIVED")) {
DEBUGA_SKYPE("RECEIVED CHATMESSAGE %s, let's see which type it is\n", SKYPOPEN_P_LOG, id);
sprintf(msg_to_skype, "GET CHATMESSAGE %s TYPE", id);
skypopen_signaling_write(tech_pvt, msg_to_skype);
}
}
if (!strcasecmp(prop, "FROM_DISPNAME")) {
DEBUGA_SKYPE("CHATMESSAGE %s was sent by FROM_DISPNAME %s\n", SKYPOPEN_P_LOG, id, value);
found = 0;
for (i = 0; i < MAX_CHATMESSAGES; i++) {
if (!strcmp(tech_pvt->chatmessages[i].id, id)) {
strncpy(tech_pvt->chatmessages[i].from_dispname, value, sizeof(tech_pvt->chatmessages[i].from_dispname));
found = 1;
break;
if (!strcasecmp(prop, "TYPE") && !strcasecmp(value, "SAID")) {
DEBUGA_SKYPE("CHATMESSAGE %s is of type SAID, let's get the other infos\n", SKYPOPEN_P_LOG, id);
found = 0;
for (i = 0; i < MAX_CHATMESSAGES; i++) {
if (strlen(tech_pvt->chatmessages[i].id) == 0) {
strncpy(tech_pvt->chatmessages[i].id, id, sizeof(tech_pvt->chatmessages[i].id));
strncpy(tech_pvt->chatmessages[i].type, value, sizeof(tech_pvt->chatmessages[i].type));
found = 1;
break;
}
}
}
if (!found) {
DEBUGA_SKYPE("why chatmessage %s was not found in the chatmessages array??\n", SKYPOPEN_P_LOG, id);
}
}
if (!strcasecmp(prop, "BODY")) {
DEBUGA_SKYPE("CHATMESSAGE %s has BODY %s\n", SKYPOPEN_P_LOG, id, value);
found = 0;
for (i = 0; i < MAX_CHATMESSAGES; i++) {
if (!strcmp(tech_pvt->chatmessages[i].id, id)) {
strncpy(tech_pvt->chatmessages[i].body, value, sizeof(tech_pvt->chatmessages[i].body));
found = 1;
break;
}
}
if (!found) {
DEBUGA_SKYPE("why chatmessage %s was not found in the chatmessages array??\n", SKYPOPEN_P_LOG, id);
} else {
DEBUGA_SKYPE
("CHATMESSAGE %s is in position %d in the chatmessages array, type=%s, id=%s, chatname=%s, from_handle=%s, from_dispname=%s, body=%s\n",
SKYPOPEN_P_LOG, id, i, tech_pvt->chatmessages[i].type, tech_pvt->chatmessages[i].id, tech_pvt->chatmessages[i].chatname,
tech_pvt->chatmessages[i].from_handle, tech_pvt->chatmessages[i].from_dispname, tech_pvt->chatmessages[i].body);
if (strcmp(tech_pvt->chatmessages[i].from_handle, tech_pvt->skype_user)) { //if the message was not sent by myself
incoming_chatmessage(tech_pvt, i);
memset(&tech_pvt->chatmessages[i], '\0', sizeof(&tech_pvt->chatmessages[i]));
sprintf(msg_to_skype, "SET CHATMESSAGE %s SEEN", id);
skypopen_signaling_write(tech_pvt, msg_to_skype);
if (!found) {
ERRORA("why we do not have a chatmessages slot free? we have more than %d chatmessages in parallel?\n", SKYPOPEN_P_LOG,
MAX_CHATMESSAGES);
} else {
DEBUGA_SKYPE("CHATMESSAGE %s is in position %d in the chatmessages array, type=%s, id=%s\n", SKYPOPEN_P_LOG, id, i,
tech_pvt->chatmessages[i].type, tech_pvt->chatmessages[i].id);
sprintf(msg_to_skype, "GET CHATMESSAGE %s CHATNAME", id);
skypopen_signaling_write(tech_pvt, msg_to_skype);
//skypopen_sleep(1000);
sprintf(msg_to_skype, "GET CHATMESSAGE %s FROM_HANDLE", id);
skypopen_signaling_write(tech_pvt, msg_to_skype);
//skypopen_sleep(1000);
sprintf(msg_to_skype, "GET CHATMESSAGE %s FROM_DISPNAME", id);
skypopen_signaling_write(tech_pvt, msg_to_skype);
//skypopen_sleep(1000);
sprintf(msg_to_skype, "GET CHATMESSAGE %s BODY", id);
skypopen_signaling_write(tech_pvt, msg_to_skype);
}
}
if (!strcasecmp(prop, "CHATNAME")) {
DEBUGA_SKYPE("CHATMESSAGE %s belongs to the CHAT %s\n", SKYPOPEN_P_LOG, id, value);
found = 0;
for (i = 0; i < MAX_CHATMESSAGES; i++) {
if (!strcmp(tech_pvt->chatmessages[i].id, id)) {
strncpy(tech_pvt->chatmessages[i].chatname, value, sizeof(tech_pvt->chatmessages[i].chatname));
found = 1;
break;
}
}
if (!found) {
DEBUGA_SKYPE("why chatmessage %s was not found in the chatmessages array??\n", SKYPOPEN_P_LOG, id);
}
}
if (!strcasecmp(prop, "FROM_HANDLE")) {
DEBUGA_SKYPE("CHATMESSAGE %s was sent by FROM_HANDLE %s\n", SKYPOPEN_P_LOG, id, value);
found = 0;
for (i = 0; i < MAX_CHATMESSAGES; i++) {
if (!strcmp(tech_pvt->chatmessages[i].id, id)) {
strncpy(tech_pvt->chatmessages[i].from_handle, value, sizeof(tech_pvt->chatmessages[i].from_handle));
found = 1;
break;
}
}
if (!found) {
DEBUGA_SKYPE("why chatmessage %s was not found in the chatmessages array??\n", SKYPOPEN_P_LOG, id);
}
}
if (!strcasecmp(prop, "FROM_DISPNAME")) {
DEBUGA_SKYPE("CHATMESSAGE %s was sent by FROM_DISPNAME %s\n", SKYPOPEN_P_LOG, id, value);
found = 0;
for (i = 0; i < MAX_CHATMESSAGES; i++) {
if (!strcmp(tech_pvt->chatmessages[i].id, id)) {
strncpy(tech_pvt->chatmessages[i].from_dispname, value, sizeof(tech_pvt->chatmessages[i].from_dispname));
found = 1;
break;
}
}
if (!found) {
DEBUGA_SKYPE("why chatmessage %s was not found in the chatmessages array??\n", SKYPOPEN_P_LOG, id);
}
}
if (!strcasecmp(prop, "BODY")) {
DEBUGA_SKYPE("CHATMESSAGE %s has BODY %s\n", SKYPOPEN_P_LOG, id, value);
found = 0;
for (i = 0; i < MAX_CHATMESSAGES; i++) {
if (!strcmp(tech_pvt->chatmessages[i].id, id)) {
strncpy(tech_pvt->chatmessages[i].body, value, sizeof(tech_pvt->chatmessages[i].body));
found = 1;
break;
}
}
if (!found) {
DEBUGA_SKYPE("why chatmessage %s was not found in the chatmessages array??\n", SKYPOPEN_P_LOG, id);
} else {
DEBUGA_SKYPE
("CHATMESSAGE %s is in position %d in the chatmessages array, type=%s, id=%s, chatname=%s, from_handle=%s, from_dispname=%s, body=%s\n",
SKYPOPEN_P_LOG, id, i, tech_pvt->chatmessages[i].type, tech_pvt->chatmessages[i].id, tech_pvt->chatmessages[i].chatname,
tech_pvt->chatmessages[i].from_handle, tech_pvt->chatmessages[i].from_dispname, tech_pvt->chatmessages[i].body);
if (strcmp(tech_pvt->chatmessages[i].from_handle, tech_pvt->skype_user)) { //if the message was not sent by myself
incoming_chatmessage(tech_pvt, i);
memset(&tech_pvt->chatmessages[i], '\0', sizeof(&tech_pvt->chatmessages[i]));
sprintf(msg_to_skype, "SET CHATMESSAGE %s SEEN", id);
skypopen_signaling_write(tech_pvt, msg_to_skype);
}
}
}
}
}
}
@ -896,7 +896,7 @@ void *skypopen_do_tcp_srv_thread_func(void *obj)
|| tech_pvt->skype_callflow == CALLFLOW_STATUS_REMOTEHOLD || tech_pvt->skype_callflow == SKYPOPEN_STATE_UP)) {
//unsigned int fdselect;
int rt=1;
int rt = 1;
//fd_set fs;
//struct timeval to;
int nospace;
@ -1033,7 +1033,7 @@ void *skypopen_do_tcp_cli_thread_func(void *obj)
if (!(running && tech_pvt->running))
break;
FD_ZERO(&fsgio);
togio.tv_usec = MS_SKYPOPEN * 1000 * 3;
togio.tv_usec = MS_SKYPOPEN * 1000 * 3;
togio.tv_sec = 0;
fdselectgio = s;
FD_SET(fdselectgio, &fsgio);
@ -1148,7 +1148,7 @@ int skypopen_senddigit(private_t *tech_pvt, char digit)
char msg_to_skype[1024];
DEBUGA_SKYPE("DIGIT received: %c\n", SKYPOPEN_P_LOG, digit);
if(digit != 'a' && digit != 'A' && digit != 'b' && digit != 'B' && digit != 'c' && digit != 'C' && digit != 'd' && digit != 'D'){
if (digit != 'a' && digit != 'A' && digit != 'b' && digit != 'B' && digit != 'c' && digit != 'C' && digit != 'd' && digit != 'D') {
sprintf(msg_to_skype, "SET CALL %s DTMF %c", tech_pvt->skype_call_id, digit);
skypopen_signaling_write(tech_pvt, msg_to_skype);
} else {
@ -1701,7 +1701,7 @@ void skypopen_clean_disp(void *data)
DEBUGA_SKYPE("NOT destroyed disp\n", SKYPOPEN_P_LOG);
}
DEBUGA_SKYPE("OUT destroyed disp\n", SKYPOPEN_P_LOG);
skypopen_sleep(20000);
skypopen_sleep(20000);
}
void *skypopen_do_skypeapi_thread_func(void *obj)
@ -1761,7 +1761,7 @@ void *skypopen_do_skypeapi_thread_func(void *obj)
if (session) {
switch_channel_t *channel = switch_core_session_get_channel(session);
if(channel){
if (channel) {
switch_mutex_lock(tech_pvt->flag_mutex);
switch_clear_flag(tech_pvt, TFLAG_IO);
@ -1798,7 +1798,7 @@ void *skypopen_do_skypeapi_thread_func(void *obj)
switch_channel_t *channel = switch_core_session_get_channel(session);
if(channel){
if (channel) {
switch_mutex_lock(tech_pvt->flag_mutex);
switch_clear_flag(tech_pvt, TFLAG_IO);
switch_clear_flag(tech_pvt, TFLAG_VOICE);
@ -1910,7 +1910,7 @@ void *skypopen_do_skypeapi_thread_func(void *obj)
case ClientMessage:
if (an_event.xclient.format != 8) {
//skypopen_sleep(1000); //0.1 msec
//skypopen_sleep(1000); //0.1 msec
break;
}
@ -1970,11 +1970,10 @@ void *skypopen_do_skypeapi_thread_func(void *obj)
//XFlush(disp);
there_were_continues = 0;
}
//skypopen_sleep(1000); //0.1 msec
//skypopen_sleep(1000); //0.1 msec
break;
default:
//skypopen_sleep(1000); //0.1 msec
//skypopen_sleep(1000); //0.1 msec
break;
} //switch event.type
} //while XPending