Freeswitch-branches
Threads by month
- ----- 2026 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
January 2009
- 5 participants
- 136 discussions
[commit] r11121 - freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax
by FreeSWITCH SVN 11 Jan '09
by FreeSWITCH SVN 11 Jan '09
11 Jan '09
Author: gmaruzz
Date: Sun Jan 11 07:28:39 2009
New Revision: 11121
Log:
skypiax: beginning cleaning
Modified:
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c Sun Jan 11 07:28:39 2009
@@ -2,7 +2,7 @@
SWITCH_MODULE_LOAD_FUNCTION(mod_skypiax_load);
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_skypiax_shutdown);
-SWITCH_MODULE_DEFINITION(mod_skypiax, mod_skypiax_load, mod_skypiax_shutdown, NULL); //mod_skypiax_runtime);
+SWITCH_MODULE_DEFINITION(mod_skypiax, mod_skypiax_load, mod_skypiax_shutdown, NULL);
static struct {
int debug;
@@ -152,7 +152,7 @@
if (strlen(tech_pvt->skype_call_id)) {
//switch_thread_cond_signal(tech_pvt->cond);
- WARNINGA("hanging up skype call: %s\n", SKYPIAX_P_LOG, tech_pvt->skype_call_id);
+ DEBUGA_SKYPE("hanging up skype call: %s\n", SKYPIAX_P_LOG, tech_pvt->skype_call_id);
sprintf(msg_to_skype, "ALTER CALL %s HANGUP", tech_pvt->skype_call_id);
skypiax_skype_write(tech_pvt, msg_to_skype);
}
@@ -260,7 +260,7 @@
private_t *tech_pvt = switch_core_session_get_private(session);
switch_assert(tech_pvt != NULL);
- NOTICA("DTMF: %c\n", SKYPIAX_P_LOG, dtmf->digit);
+ DEBUGA_SKYPE("DTMF: %c\n", SKYPIAX_P_LOG, dtmf->digit);
skypiax_skype_senddigit(tech_pvt, dtmf->digit);
@@ -411,7 +411,7 @@
break;
default:
{
- WARNINGA("MSG_ID=%d\n", SKYPIAX_P_LOG, msg->message_id);
+ DEBUGA_SKYPE("MSG_ID=%d\n", SKYPIAX_P_LOG, msg->message_id);
}
break;
}
@@ -493,7 +493,6 @@
DEBUGA_SKYPE("globals.SKYPIAX_INTERFACES[%d].name=|||%s|||?\n", SKYPIAX_P_LOG,
i, globals.SKYPIAX_INTERFACES[i].name);
tech_pvt = &globals.SKYPIAX_INTERFACES[i]; //FIXME
- //globals.SKYPIAX_INTERFACES[i].tech_pvt = tech_pvt; //FIXME
found = 1;
break;
}
@@ -527,15 +526,6 @@
snprintf(name, sizeof(name), "skypiax/%s", outbound_profile->destination_number);
//snprintf(name, sizeof(name), "skypiax/%s", tech_pvt->name);
switch_channel_set_name(channel, name);
- NOTICA("outbound_profile->destination_number=|||%s|||\n", SKYPIAX_P_LOG,
- outbound_profile->destination_number);
- NOTICA("outbound_profile->username=|||%s|||\n", SKYPIAX_P_LOG,
- outbound_profile->username);
- NOTICA("outbound_profile->caller_id_name=|||%s|||\n", SKYPIAX_P_LOG,
- outbound_profile->caller_id_name);
- NOTICA("outbound_profile->caller_id_number=|||%s|||\n", SKYPIAX_P_LOG,
- outbound_profile->caller_id_number);
-
caller_profile = switch_caller_profile_clone(*new_session, outbound_profile);
switch_channel_set_caller_profile(channel, caller_profile);
tech_pvt->caller_profile = caller_profile;
@@ -560,7 +550,7 @@
* \brief This thread runs during a call, and monitor the interface serial port for signaling, like hangup, caller id, etc
*
*/
-static void *SWITCH_THREAD_FUNC skypiax_do_controldev_thread(switch_thread_t * thread,
+static void *SWITCH_THREAD_FUNC skypiax_signaling_thread_func(switch_thread_t * thread,
void *obj)
{
private_t *tech_pvt = obj;
@@ -569,7 +559,7 @@
DEBUGA_PBX("ENTERING FUNC\n", SKYPIAX_P_LOG);
- DEBUGA_SKYPE("In skypiax_do_controldev_thread: started, p=%p\n", SKYPIAX_P_LOG,
+ DEBUGA_SKYPE("In skypiax_signaling_thread_func: started, p=%p\n", SKYPIAX_P_LOG,
(void *) tech_pvt);
while (forever) {
@@ -789,8 +779,8 @@
if (interface_id && interface_id < SKYPIAX_MAX_INTERFACES) {
private_t newconf;
- switch_threadattr_t *do_skype_thd_attr = NULL;
- switch_threadattr_t *skypiax_do_controldev_thread_thd_attr = NULL;
+ switch_threadattr_t *skypiax_skypeapi_thread_attr = NULL;
+ switch_threadattr_t *skypiax_signaling_thread_attr = NULL;
memset(&newconf, '\0', sizeof(newconf));
globals.SKYPIAX_INTERFACES[interface_id] = newconf;
@@ -849,25 +839,25 @@
("interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].dialplan=%s\n",
SKYPIAX_P_LOG, interface_id,
globals.SKYPIAX_INTERFACES[interface_id].dialplan);
- NOTICA("STARTING interface_id=%d\n", SKYPIAX_P_LOG, interface_id);
+ DEBUGA_SKYPE("STARTING interface_id=%d\n", SKYPIAX_P_LOG, interface_id);
- switch_threadattr_create(&do_skype_thd_attr, skypiax_module_pool);
- switch_threadattr_stacksize_set(do_skype_thd_attr, SWITCH_THREAD_STACKSIZE);
+ switch_threadattr_create(&skypiax_skypeapi_thread_attr, skypiax_module_pool);
+ switch_threadattr_stacksize_set(skypiax_skypeapi_thread_attr, SWITCH_THREAD_STACKSIZE);
switch_thread_create(&globals.SKYPIAX_INTERFACES[interface_id].
- skypiax_do_skype_thread_thread, do_skype_thd_attr,
- do_skype_thread, &globals.SKYPIAX_INTERFACES[interface_id],
+ skypiax_skypeapi_thread, skypiax_skypeapi_thread_attr,
+ skypiax_skypeapi_thread_func, &globals.SKYPIAX_INTERFACES[interface_id],
skypiax_module_pool);
switch_sleep(100000);
- switch_threadattr_create(&skypiax_do_controldev_thread_thd_attr,
+ switch_threadattr_create(&skypiax_signaling_thread_attr,
skypiax_module_pool);
- switch_threadattr_stacksize_set(skypiax_do_controldev_thread_thd_attr,
+ switch_threadattr_stacksize_set(skypiax_signaling_thread_attr,
SWITCH_THREAD_STACKSIZE);
switch_thread_create(&globals.SKYPIAX_INTERFACES[interface_id].
- skypiax_do_controldev_thread_thread,
- skypiax_do_controldev_thread_thd_attr,
- skypiax_do_controldev_thread,
+ skypiax_signaling_thread,
+ skypiax_signaling_thread_attr,
+ skypiax_signaling_thread_func,
&globals.SKYPIAX_INTERFACES[interface_id],
skypiax_module_pool);
@@ -878,7 +868,7 @@
while (globals.SKYPIAX_INTERFACES[interface_id].SkypiaxHandles.api_connected == 0) {
switch_sleep(1000);
}
- NOTICA("STARTED interface_id=%d\n", SKYPIAX_P_LOG, interface_id);
+ DEBUGA_SKYPE("STARTED interface_id=%d\n", SKYPIAX_P_LOG, interface_id);
} else {
ERRORA("interface id %d is higher than SKYPIAX_MAX_INTERFACES (%d)\n",
@@ -944,7 +934,7 @@
for (interface_id = 0; interface_id < SKYPIAX_MAX_INTERFACES; interface_id++) {
tech_pvt = &globals.SKYPIAX_INTERFACES[interface_id];
- if (globals.SKYPIAX_INTERFACES[interface_id].skypiax_do_controldev_thread_thread) {
+ if (globals.SKYPIAX_INTERFACES[interface_id].skypiax_signaling_thread) {
#ifdef WIN32
switch_file_write(tech_pvt->SkypiaxHandles.fdesc[1], "sciutati", &howmany); // let's the controldev_thread die
#else /* WIN32 */
@@ -952,9 +942,9 @@
#endif /* WIN32 */
}
- if (globals.SKYPIAX_INTERFACES[interface_id].skypiax_do_skype_thread_thread) {
+ if (globals.SKYPIAX_INTERFACES[interface_id].skypiax_skypeapi_thread) {
#ifdef WIN32
- if (SendMessage(tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle, WM_DESTROY, 0, 0) == FALSE) { // let's the do_skype_thread die
+ if (SendMessage(tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle, WM_DESTROY, 0, 0) == FALSE) { // let's the skypiax_skypeapi_thread_func die
ERRORA("WHY FALSE HERE? %d\n", SKYPIAX_P_LOG, GetLastError());
}
#else
@@ -978,15 +968,15 @@
x--;
switch_yield(20000);
}
- if (globals.SKYPIAX_INTERFACES[interface_id].skypiax_do_controldev_thread_thread) {
+ if (globals.SKYPIAX_INTERFACES[interface_id].skypiax_signaling_thread) {
switch_thread_join(&status,
globals.SKYPIAX_INTERFACES[interface_id].
- skypiax_do_controldev_thread_thread);
+ skypiax_signaling_thread);
}
- if (globals.SKYPIAX_INTERFACES[interface_id].skypiax_do_skype_thread_thread) {
+ if (globals.SKYPIAX_INTERFACES[interface_id].skypiax_skypeapi_thread) {
switch_thread_join(&status,
globals.SKYPIAX_INTERFACES[interface_id].
- skypiax_do_skype_thread_thread);
+ skypiax_skypeapi_thread);
}
}
return SWITCH_STATUS_SUCCESS;
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h Sun Jan 11 07:28:39 2009
@@ -41,8 +41,6 @@
#include <X11/Xlib.h>
#include <X11/Xlibint.h>
#include <X11/Xatom.h>
-#else //WIN32
-//FIXME include?
#endif //WIN32
#ifdef _MSC_VER
@@ -53,7 +51,6 @@
#define SAMPLERATE_SKYPIAX 16000
#define SAMPLES_PER_FRAME SAMPLERATE_SKYPIAX/50
-//#define SKYPIAX_SVN_VERSION "SVN 123456"
#define SKYPIAX_SVN_VERSION SWITCH_VERSION_REVISION
typedef enum {
@@ -164,7 +161,6 @@
switch_caller_profile_t *caller_profile;
switch_mutex_t *mutex;
switch_mutex_t *flag_mutex;
- //private_t *p;
//switch_thread_cond_t *cond;
char interface_id[80];
@@ -195,7 +191,6 @@
double playback_boost;
double capture_boost;
int stripmsd;
- switch_thread_t *skype_thread;
char skype_call_id[512];
int skype_call_ongoing;
char skype_friends[4096];
@@ -213,8 +208,8 @@
#endif /* WIN32 */
switch_thread_t *tcp_srv_thread;
switch_thread_t *tcp_cli_thread;
- switch_thread_t *skypiax_do_controldev_thread_thread;
- switch_thread_t *skypiax_do_skype_thread_thread;
+ switch_thread_t *skypiax_signaling_thread;
+ switch_thread_t *skypiax_skypeapi_thread;
short audiobuf[SAMPLES_PER_FRAME];
int audiobuf_is_loaded;
@@ -228,7 +223,6 @@
//int phonebook_text_lenght;
FILE *phonebook_writing_fp;
int skypiax_dir_entry_extension_prefix;
- //void *tech_pvt;
char skype_user[256];
char skype_password[256];
@@ -236,13 +230,13 @@
typedef struct private_object private_t;
-void *SWITCH_THREAD_FUNC do_skype_thread(switch_thread_t * thread, void *obj);
+void *SWITCH_THREAD_FUNC skypiax_skypeapi_thread_func(switch_thread_t * thread, void *obj);
void skypiax_tech_init(private_t * tech_pvt, switch_core_session_t * session);
switch_status_t skypiax_skypeaudio_read(private_t * tech_pvt);
-int skypiax_skypeaudio_init(private_t * p);
-int skypiax_skype_write(private_t * p, char *msg_to_skype);
-int skypiax_skype_read(private_t * p);
+int skypiax_skypeaudio_init(private_t * tech_pvt);
+int skypiax_skype_write(private_t * tech_pvt, char *msg_to_skype);
+int skypiax_skype_read(private_t * tech_pvt);
-int skypiax_skype_call(private_t * p, char *idest, int timeout,
+int skypiax_skype_call(private_t * tech_pvt, char *idest, int timeout,
switch_core_session_t * session);
-int skypiax_skype_senddigit(private_t * p, char digit);
+int skypiax_skype_senddigit(private_t * tech_pvt, char digit);
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c Sun Jan 11 07:28:39 2009
@@ -460,9 +460,6 @@
}
#endif /* WIN32 */
- ERRORA("tech_pvt->audiopipe[0] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[0]);
- ERRORA("tech_pvt->audiopipe[1] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[1]);
-
if (option_debug > 10) {
DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
}
@@ -728,7 +725,7 @@
DWORD win32_dwThreadId;
-void *SWITCH_THREAD_FUNC do_skype_thread(switch_thread_t * thread, void *obj)
+void *SWITCH_THREAD_FUNC skypiax_skypeapi_thread_func(switch_thread_t * thread, void *obj)
{
/* create window class */
/* create dummy/hidden window for processing messages */
@@ -877,7 +874,7 @@
switch_sleep(1000);
}
-void *SWITCH_THREAD_FUNC do_skype_thread(switch_thread_t * thread, void *obj)
+void *SWITCH_THREAD_FUNC skypiax_skypeapi_thread_func(switch_thread_t * thread, void *obj)
{
private_t *tech_pvt = obj;
@@ -1288,7 +1285,7 @@
if (!strcasecmp(prop, "PARTNER_HANDLE")) {
strncpy(tech_pvt->callid_number, value,
sizeof(tech_pvt->callid_number) - 1);
- WARNINGA
+ DEBUGA_SKYPE
("the skype_call %s caller PARTNER_HANDLE (tech_pvt->callid_number) is: %s\n",
SKYPIAX_P_LOG, id, tech_pvt->callid_number);
return CALLFLOW_INCOMING_RING;
@@ -1296,7 +1293,7 @@
if (!strcasecmp(prop, "PARTNER_DISPNAME")) {
snprintf(tech_pvt->callid_name, sizeof(tech_pvt->callid_name) - 1, "%s%s%s",
value, where ? " " : "", where ? where : "");
- WARNINGA
+ DEBUGA_SKYPE
("the skype_call %s caller PARTNER_DISPNAME (tech_pvt->callid_name) is: %s\n",
SKYPIAX_P_LOG, id, tech_pvt->callid_name);
}
@@ -1325,7 +1322,7 @@
if (channel) {
switch_dtmf_t dtmf =
{ (char) value[0], switch_core_default_dtmf_duration(0) };
- NOTICA("%c DTMF %s\n", SKYPIAX_P_LOG, dtmf.digit,
+ DEBUGA_SKYPE("%c DTMF %s\n", SKYPIAX_P_LOG, dtmf.digit,
switch_channel_get_name(channel));
switch_mutex_lock(tech_pvt->flag_mutex);
switch_channel_queue_dtmf(channel, &dtmf);
@@ -1536,7 +1533,7 @@
//private_t *tech_pvt = NULL;
switch_channel_t *channel = NULL;
- NOTICA("New Inbound Channel!\n", SKYPIAX_P_LOG);
+ DEBUGA_SKYPE("New Inbound Channel!\n", SKYPIAX_P_LOG);
if ((session =
switch_core_session_request(skypiax_endpoint_interface,
@@ -1580,7 +1577,6 @@
switch_core_session_destroy(&session);
}
}
- //DEBUGA_SKYPE("skype_call: %s, answered\n", SKYPIAX_P_LOG, id);
switch_channel_mark_answered(channel);
} else {
switch_core_session_t *session = NULL;
@@ -1635,7 +1631,7 @@
DEBUGA_PBX("ENTERING FUNC\n", SKYPIAX_P_LOG);
}
- NOTICA("DIGIT received: %c\n", SKYPIAX_P_LOG, digit);
+ DEBUGA_SKYPE("DIGIT received: %c\n", SKYPIAX_P_LOG, digit);
sprintf(msg_to_skype, "SET CALL %s DTMF %c", tech_pvt->skype_call_id, digit);
@@ -1665,9 +1661,7 @@
rdest = strchr(idest, '/');
*rdest++ = '\0';
- if (option_debug)
- DEBUGA_SKYPE("Calling Skype, rdest is: %s\n", SKYPIAX_P_LOG, rdest);
- NOTICA("Calling Skype, rdest is: %s\n", SKYPIAX_P_LOG, rdest);
+ DEBUGA_SKYPE("Calling Skype, rdest is: %s\n", SKYPIAX_P_LOG, rdest);
skypiax_skype_write(tech_pvt, "SET AGC OFF");
switch_sleep(10000);
skypiax_skype_write(tech_pvt, "SET AEC OFF");
1
0
[commit] r11120 - freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax
by FreeSWITCH SVN 11 Jan '09
by FreeSWITCH SVN 11 Jan '09
11 Jan '09
Author: gmaruzz
Date: Sun Jan 11 06:15:27 2009
New Revision: 11120
Log:
skypiax: indent -gnu -ts4 -br -brs -cdw -lp -ce -nbfda -npcs -nprs -npsl -nbbo -saf -sai -saw -cs -bbo -nhnl -nut -sob -l90
Modified:
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c Sun Jan 11 06:15:27 2009
@@ -146,7 +146,6 @@
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
-
switch_clear_flag_locked(tech_pvt, TFLAG_IO);
switch_clear_flag_locked(tech_pvt, TFLAG_VOICE);
//switch_set_flag_locked(tech_pvt, TFLAG_HANGUP);
@@ -352,7 +351,6 @@
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
-
if (!switch_test_flag(tech_pvt, TFLAG_IO)) {
ERRORA("CIAPA \n", SKYPIAX_P_LOG);
return SWITCH_STATUS_FALSE;
@@ -387,7 +385,6 @@
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
-
DEBUGA_SKYPE("ANSWERED! \n", SKYPIAX_P_LOG);
return SWITCH_STATUS_SUCCESS;
@@ -405,7 +402,6 @@
tech_pvt = (private_t *) switch_core_session_get_private(session);
assert(tech_pvt != NULL);
-
switch (msg->message_id) {
case SWITCH_MESSAGE_INDICATE_ANSWER:
{
@@ -496,7 +492,7 @@
DEBUGA_SKYPE("globals.SKYPIAX_INTERFACES[%d].name=|||%s|||?\n", SKYPIAX_P_LOG,
i, globals.SKYPIAX_INTERFACES[i].name);
- tech_pvt = &globals.SKYPIAX_INTERFACES[i]; //FIXME
+ tech_pvt = &globals.SKYPIAX_INTERFACES[i]; //FIXME
//globals.SKYPIAX_INTERFACES[i].tech_pvt = tech_pvt; //FIXME
found = 1;
break;
@@ -879,8 +875,7 @@
skypiax_skypeaudio_init(&globals.SKYPIAX_INTERFACES[interface_id]);
- while (globals.SKYPIAX_INTERFACES[interface_id].SkypiaxHandles.
- api_connected == 0) {
+ while (globals.SKYPIAX_INTERFACES[interface_id].SkypiaxHandles.api_connected == 0) {
switch_sleep(1000);
}
NOTICA("STARTED interface_id=%d\n", SKYPIAX_P_LOG, interface_id);
@@ -951,7 +946,7 @@
if (globals.SKYPIAX_INTERFACES[interface_id].skypiax_do_controldev_thread_thread) {
#ifdef WIN32
- switch_file_write(tech_pvt->SkypiaxHandles.fdesc[1], "sciutati", &howmany); // let's the controldev_thread die
+ switch_file_write(tech_pvt->SkypiaxHandles.fdesc[1], "sciutati", &howmany); // let's the controldev_thread die
#else /* WIN32 */
howmany = write(tech_pvt->SkypiaxHandles.fdesc[1], "sciutati", howmany);
#endif /* WIN32 */
@@ -959,13 +954,14 @@
if (globals.SKYPIAX_INTERFACES[interface_id].skypiax_do_skype_thread_thread) {
#ifdef WIN32
- if (SendMessage(tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle, WM_DESTROY, 0, 0) == FALSE) { // let's the do_skype_thread die
+ if (SendMessage(tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle, WM_DESTROY, 0, 0) == FALSE) { // let's the do_skype_thread die
ERRORA("WHY FALSE HERE? %d\n", SKYPIAX_P_LOG, GetLastError());
}
#else
XEvent e;
Atom atom1 =
- XInternAtom(tech_pvt->SkypiaxHandles.disp, "SKYPECONTROLAPI_MESSAGE_BEGIN", False);
+ XInternAtom(tech_pvt->SkypiaxHandles.disp, "SKYPECONTROLAPI_MESSAGE_BEGIN",
+ False);
memset(&e, 0, sizeof(e));
e.xclient.type = ClientMessage;
e.xclient.message_type = atom1; /* leading message */
@@ -973,7 +969,8 @@
e.xclient.window = tech_pvt->SkypiaxHandles.skype_win;
e.xclient.format = 8;
- XSendEvent(tech_pvt->SkypiaxHandles.disp, tech_pvt->SkypiaxHandles.win, False, 0, &e);
+ XSendEvent(tech_pvt->SkypiaxHandles.disp, tech_pvt->SkypiaxHandles.win, False, 0,
+ &e);
XSync(tech_pvt->SkypiaxHandles.disp, False);
#endif
}
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h Sun Jan 11 06:15:27 2009
@@ -154,77 +154,6 @@
#endif //WIN32
-#if 0
-private_t {
- char interface_id[80];
- char name[80];
- char dialplan[80];
- char context[80];
- char dial_regex[256];
- char fail_dial_regex[256];
- char hold_music[256];
- char type[256];
- char X11_display[256];
-#ifdef WIN32
- unsigned short tcp_cli_port;
- unsigned short tcp_srv_port;
-#else
- int tcp_cli_port;
- int tcp_srv_port;
-#endif
- struct SkypiaxHandles SkypiaxHandles;
-
- int interface_state; /*!< \brief 'state' of the interface (channel) */
- char language[80]; /*!< \brief default Asterisk dialplan language for this interface */
- char exten[80]; /*!< \brief default Asterisk dialplan extension for this interface */
- int skypiax_sound_rate; /*!< \brief rate of the sound device, in Hz, eg: 8000 */
- switch_file_t *skypiax_sound_capt_fd; /*!< \brief file descriptor for sound capture dev */
- char callid_name[50];
- char callid_number[50];
- double playback_boost;
- double capture_boost;
- int stripmsd;
- switch_thread_t *skype_thread;
- char skype_call_id[512];
- int skype_call_ongoing;
- char skype_friends[4096];
- char skype_fullname[512];
- char skype_displayname[512];
- int skype_callflow; /*!< \brief 'callflow' of the skype interface (as opposed to phone interface) */
- int skype; /*!< \brief config flag, bool, Skype support on this interface (0 if false, -1 if true) */
- int control_to_send;
-#ifdef WIN32
- switch_file_t *audiopipe[2];
- switch_file_t *audioskypepipe[2];
-#else /* WIN32 */
- int audiopipe[2];
- int audioskypepipe[2];
-#endif /* WIN32 */
- switch_thread_t *tcp_srv_thread;
- switch_thread_t *tcp_cli_thread;
- switch_thread_t *skypiax_do_controldev_thread_thread;
- switch_thread_t *skypiax_do_skype_thread_thread;
- short audiobuf[SAMPLES_PER_FRAME];
- int audiobuf_is_loaded;
-
- //int phonebook_listing;
- //int phonebook_querying;
- //int phonebook_listing_received_calls;
-
- //int phonebook_first_entry;
- //int phonebook_last_entry;
- //int phonebook_number_lenght;
- //int phonebook_text_lenght;
- FILE *phonebook_writing_fp;
- int skypiax_dir_entry_extension_prefix;
- void *tech_pvt;
- char skype_user[256];
- char skype_password[256];
-};
-
-typedef private_t private_t;
-#endif
-
struct private_object {
unsigned int flags;
switch_codec_t read_codec;
@@ -303,9 +232,6 @@
char skype_user[256];
char skype_password[256];
-
-
-
};
typedef struct private_object private_t;
@@ -313,10 +239,10 @@
void *SWITCH_THREAD_FUNC do_skype_thread(switch_thread_t * thread, void *obj);
void skypiax_tech_init(private_t * tech_pvt, switch_core_session_t * session);
switch_status_t skypiax_skypeaudio_read(private_t * tech_pvt);
-int skypiax_skypeaudio_init(private_t *p);
-int skypiax_skype_write(private_t *p, char *msg_to_skype);
-int skypiax_skype_read(private_t *p);
+int skypiax_skypeaudio_init(private_t * p);
+int skypiax_skype_write(private_t * p, char *msg_to_skype);
+int skypiax_skype_read(private_t * p);
-int skypiax_skype_call(private_t *p, char *idest, int timeout,
+int skypiax_skype_call(private_t * p, char *idest, int timeout,
switch_core_session_t * session);
-int skypiax_skype_senddigit(private_t *p, char digit);
+int skypiax_skype_senddigit(private_t * p, char digit);
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c Sun Jan 11 06:15:27 2009
@@ -108,8 +108,8 @@
if ((SAMPLERATE_SKYPIAX - 8000) == 0) {
- ERRORA("tech_pvt->audiopipe[0] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[0]);
- ERRORA("tech_pvt->audiopipe[1] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[1]);
+ ERRORA("tech_pvt->audiopipe[0] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[0]);
+ ERRORA("tech_pvt->audiopipe[1] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[1]);
if (len > 0) {
a = 0;
for (i = 0; i < len / sizeof(short); i++) {
@@ -156,8 +156,8 @@
}
} else if (SAMPLERATE_SKYPIAX == 16000) {
- //ERRORA("tech_pvt->audiopipe[0] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[0]);
- //ERRORA("tech_pvt->audiopipe[1] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[1]);
+ //ERRORA("tech_pvt->audiopipe[0] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[0]);
+ //ERRORA("tech_pvt->audiopipe[1] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[1]);
if (len > 0) {
if (len == SAMPLES_PER_FRAME * sizeof(short)) {
#ifdef WIN32
@@ -288,7 +288,7 @@
memset(&my_addr, 0, sizeof(my_addr));
my_addr.sin_family = AF_INET;
my_addr.sin_addr.s_addr = htonl(0x7f000001); /* use the localhost */
- my_addr.sin_port = htons(tech_pvt->tcp_cli_port); //FIXME configurable!
+ my_addr.sin_port = htons(tech_pvt->tcp_cli_port); //FIXME configurable!
if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
ERRORA("socket Error\n", SKYPIAX_P_LOG);
@@ -438,12 +438,14 @@
return NULL;
}
-int skypiax_skypeaudio_init(private_t *tech_pvt)
+int skypiax_skypeaudio_init(private_t * tech_pvt)
{
#ifdef WIN32
switch_status_t rv;
- rv = switch_file_pipe_create(&tech_pvt->audiopipe[0], &tech_pvt->audiopipe[1], skypiax_module_pool);
+ rv =
+ switch_file_pipe_create(&tech_pvt->audiopipe[0], &tech_pvt->audiopipe[1],
+ skypiax_module_pool);
rv =
switch_file_pipe_create(&tech_pvt->audioskypepipe[0], &tech_pvt->audioskypepipe[1],
skypiax_module_pool);
@@ -496,8 +498,8 @@
samples = read(tech_pvt->audiopipe[0], tech_pvt->read_frame.data, samples);
#endif /* WIN32 */
- //ERRORA("tech_pvt->audiopipe[0] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[0]);
- //ERRORA("tech_pvt->audiopipe[1] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[1]);
+ //ERRORA("tech_pvt->audiopipe[0] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[0]);
+ //ERRORA("tech_pvt->audiopipe[1] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[1]);
if (samples != SAMPLES_PER_FRAME * sizeof(short)) {
if (samples)
ERRORA("SRV PIPE READ=====> NOT GOOD samples=%u expected=%lu\n", SKYPIAX_P_LOG,
@@ -599,7 +601,8 @@
break;
default:
if (p && tech_pvt->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach) {
- if (uiMessage == tech_pvt->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach) {
+ if (uiMessage ==
+ tech_pvt->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach) {
switch (ulParam) {
case SKYPECONTROLAPI_ATTACH_SUCCESS:
if (!tech_pvt->SkypiaxHandles.api_connected) {
@@ -618,7 +621,8 @@
SendMessage(HWND_BROADCAST,
tech_pvt->SkypiaxHandles.
win32_uiGlobal_MsgID_SkypeControlAPIDiscover,
- (WPARAM) tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle, 0);
+ (WPARAM) tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle,
+ 0);
}
break;
case SKYPECONTROLAPI_ATTACH_REFUSED:
@@ -634,7 +638,8 @@
SendMessage(HWND_BROADCAST,
tech_pvt->SkypiaxHandles.
win32_uiGlobal_MsgID_SkypeControlAPIDiscover,
- (WPARAM) tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle, 0);
+ (WPARAM) tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle,
+ 0);
}
break;
default:
@@ -652,7 +657,7 @@
return (lReturnCode);
}
-int win32_Initialize_CreateWindowClass(private_t *tech_pvt)
+int win32_Initialize_CreateWindowClass(private_t * tech_pvt)
{
unsigned char *paucUUIDString;
RPC_STATUS lUUIDResult;
@@ -669,7 +674,8 @@
WNDCLASS oWindowClass;
strcpy(tech_pvt->SkypiaxHandles.win32_acInit_WindowClassName, "Skype-API-Skypiax-");
- strcat(tech_pvt->SkypiaxHandles.win32_acInit_WindowClassName, (char *) paucUUIDString);
+ strcat(tech_pvt->SkypiaxHandles.win32_acInit_WindowClassName,
+ (char *) paucUUIDString);
oWindowClass.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
oWindowClass.lpfnWndProc = (WNDPROC) & skypiax_skype_present;
@@ -694,7 +700,7 @@
return (fReturnStatus);
}
-void win32_DeInitialize_DestroyWindowClass(private_t *tech_pvt)
+void win32_DeInitialize_DestroyWindowClass(private_t * tech_pvt)
{
UnregisterClass(tech_pvt->SkypiaxHandles.win32_acInit_WindowClassName,
tech_pvt->SkypiaxHandles.win32_hInit_ProcessHandle);
@@ -702,17 +708,18 @@
tech_pvt->SkypiaxHandles.win32_hInit_ProcessHandle = NULL;
}
-int win32_Initialize_CreateMainWindow(private_t *tech_pvt)
+int win32_Initialize_CreateMainWindow(private_t * tech_pvt)
{
tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle =
CreateWindowEx(WS_EX_APPWINDOW | WS_EX_WINDOWEDGE,
tech_pvt->SkypiaxHandles.win32_acInit_WindowClassName, "",
WS_BORDER | WS_SYSMENU | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT,
- 128, 128, NULL, 0, tech_pvt->SkypiaxHandles.win32_hInit_ProcessHandle, p);
+ 128, 128, NULL, 0, tech_pvt->SkypiaxHandles.win32_hInit_ProcessHandle,
+ p);
return (tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle != NULL ? 1 : 0);
}
-void win32_DeInitialize_DestroyMainWindow(private_t *tech_pvt)
+void win32_DeInitialize_DestroyMainWindow(private_t * tech_pvt)
{
if (tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle != NULL)
DestroyWindow(tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle),
@@ -831,10 +838,9 @@
//XLockDisplay(disp);
status =
- XGetWindowProperty(SkypiaxHandles->disp,
- DefaultRootWindow(SkypiaxHandles->disp), skype_inst, 0, 1,
- False, XA_WINDOW, &type_ret, &format_ret, &nitems_ret,
- &bytes_after_ret, &prop);
+ XGetWindowProperty(SkypiaxHandles->disp, DefaultRootWindow(SkypiaxHandles->disp),
+ skype_inst, 0, 1, False, XA_WINDOW, &type_ret, &format_ret,
+ &nitems_ret, &bytes_after_ret, &prop);
//XUnlockDisplay(disp);
/* sanity check */
@@ -986,7 +992,7 @@
}
#endif // WIN32
-int skypiax_skype_write(private_t *tech_pvt, char *msg_to_skype)
+int skypiax_skype_write(private_t * tech_pvt, char *msg_to_skype)
{
#ifdef WIN32
static char acInputRow[1024];
@@ -1050,7 +1056,7 @@
}
-int skypiax_skype_read(private_t *tech_pvt)
+int skypiax_skype_read(private_t * tech_pvt)
{
char read_from_pipe[4096];
@@ -1280,15 +1286,16 @@
SKYPIAX_P_LOG, messaggio, obj, id, prop, value, where ? where : "NULL");
if (!strcasecmp(prop, "PARTNER_HANDLE")) {
- strncpy(tech_pvt->callid_number, value, sizeof(tech_pvt->callid_number) - 1);
+ strncpy(tech_pvt->callid_number, value,
+ sizeof(tech_pvt->callid_number) - 1);
WARNINGA
("the skype_call %s caller PARTNER_HANDLE (tech_pvt->callid_number) is: %s\n",
SKYPIAX_P_LOG, id, tech_pvt->callid_number);
return CALLFLOW_INCOMING_RING;
}
if (!strcasecmp(prop, "PARTNER_DISPNAME")) {
- snprintf(tech_pvt->callid_name, sizeof(tech_pvt->callid_name) - 1, "%s%s%s", value,
- where ? " " : "", where ? where : "");
+ snprintf(tech_pvt->callid_name, sizeof(tech_pvt->callid_name) - 1, "%s%s%s",
+ value, where ? " " : "", where ? where : "");
WARNINGA
("the skype_call %s caller PARTNER_DISPNAME (tech_pvt->callid_name) is: %s\n",
SKYPIAX_P_LOG, id, tech_pvt->callid_name);
@@ -1349,7 +1356,7 @@
if (tech_pvt->interface_state != SKYPIAX_STATE_DIALING) {
/* we are not calling out */
- if (!strlen(tech_pvt->skype_call_id)) { //FIXME
+ if (!strlen(tech_pvt->skype_call_id)) { //FIXME
/* we are not inside an active call */
tech_pvt->skype_callflow = CALLFLOW_STATUS_RINGING;
tech_pvt->interface_state = SKYPIAX_STATE_RING;
@@ -1369,7 +1376,8 @@
if (option_debug)
DEBUGA_SKYPE("We answered a Skype RING on skype_call %s\n",
SKYPIAX_P_LOG, id);
- strncpy(tech_pvt->skype_call_id, id, sizeof(tech_pvt->skype_call_id) - 1);
+ strncpy(tech_pvt->skype_call_id, id,
+ sizeof(tech_pvt->skype_call_id) - 1);
} else {
/* we're owned, we're in a call, let's refuse */
sprintf(msg_to_skype, "ALTER CALL %s END HANGUP", id);
@@ -1385,7 +1393,8 @@
tech_pvt->skype_callflow = CALLFLOW_STATUS_RINGING;
tech_pvt->interface_state = SKYPIAX_STATE_RINGING;
//FIXME ast_queue_control(tech_pvt->owner, SKYPIAX_CONTROL_RINGING);
- strncpy(tech_pvt->skype_call_id, id, sizeof(tech_pvt->skype_call_id) - 1);
+ strncpy(tech_pvt->skype_call_id, id,
+ sizeof(tech_pvt->skype_call_id) - 1);
DEBUGA_SKYPE("Our remote party in skype_call %s is RINGING\n",
SKYPIAX_P_LOG, id);
}
@@ -1452,7 +1461,8 @@
DEBUGA_SKYPE
("we tried to call Skype on skype_call %s and Skype has now REFUSED\n",
SKYPIAX_P_LOG, id);
- strncpy(tech_pvt->skype_call_id, id, sizeof(tech_pvt->skype_call_id) - 1);
+ strncpy(tech_pvt->skype_call_id, id,
+ sizeof(tech_pvt->skype_call_id) - 1);
tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
tech_pvt->skype_call_id[0] = '\0';
if (option_debug > 100) {
@@ -1493,14 +1503,16 @@
switch_threadattr_detach_set(thd_attr, 1);
switch_threadattr_stacksize_set(thd_attr, SWITCH_THREAD_STACKSIZE);
switch_thread_create(&tech_pvt->tcp_srv_thread, thd_attr,
- skypiax_do_tcp_srv_thread, tech_pvt, skypiax_module_pool);
+ skypiax_do_tcp_srv_thread, tech_pvt,
+ skypiax_module_pool);
DEBUGA_SKYPE("started tcp_srv_thread thread.\n", SKYPIAX_P_LOG);
switch_threadattr_create(&thd_attr, skypiax_module_pool);
switch_threadattr_detach_set(thd_attr, 1);
switch_threadattr_stacksize_set(thd_attr, SWITCH_THREAD_STACKSIZE);
switch_thread_create(&tech_pvt->tcp_cli_thread, thd_attr,
- skypiax_do_tcp_cli_thread, tech_pvt, skypiax_module_pool);
+ skypiax_do_tcp_cli_thread, tech_pvt,
+ skypiax_module_pool);
DEBUGA_SKYPE("started tcp_cli_thread thread.\n", SKYPIAX_P_LOG);
switch_sleep(100000);
sprintf(msg_to_skype, "ALTER CALL %s SET_OUTPUT PORT=\"%d\"", id,
@@ -1530,10 +1542,13 @@
switch_core_session_request(skypiax_endpoint_interface,
NULL)) != 0) {
switch_core_session_add_stream(session, NULL);
- channel = switch_core_session_get_channel(session);
- skypiax_tech_init(tech_pvt, session);
+ channel = switch_core_session_get_channel(session);
+ skypiax_tech_init(tech_pvt, session);
#if 0
- if ((tech_pvt = (private_t *) switch_core_session_alloc(session, sizeof(private_t))) != 0) {
+ if ((tech_pvt =
+ (private_t *) switch_core_session_alloc(session,
+ sizeof(private_t))) !=
+ 0) {
channel = switch_core_session_get_channel(session);
skypiax_tech_init(tech_pvt, session);
} else {
@@ -1545,9 +1560,11 @@
if ((tech_pvt->caller_profile =
switch_caller_profile_new(switch_core_session_get_pool(session),
- "skypiax", "XML", tech_pvt->callid_name,
- tech_pvt->callid_number, NULL, "calling_ani",
- NULL, NULL, "mod_skypiax", "public",
+ "skypiax", "XML",
+ tech_pvt->callid_name,
+ tech_pvt->callid_number, NULL,
+ "calling_ani", NULL, NULL,
+ "mod_skypiax", "public",
"5000")) != 0) {
char name[128];
//switch_snprintf(name, sizeof(name), "skypiax/%s/%s", tech_pvt->name, tech_pvt->caller_profile->destination_number);
@@ -1611,7 +1628,7 @@
return 0;
}
-int skypiax_skype_senddigit(private_t *tech_pvt, char digit)
+int skypiax_skype_senddigit(private_t * tech_pvt, char digit)
{
char msg_to_skype[1024];
if (option_debug > 10) {
@@ -1630,7 +1647,7 @@
return 0;
}
-int skypiax_skype_call(private_t *tech_pvt, char *idest, int timeout,
+int skypiax_skype_call(private_t * tech_pvt, char *idest, int timeout,
switch_core_session_t * session)
{
char *rdest;
1
0
[commit] r11119 - freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax
by FreeSWITCH SVN 11 Jan '09
by FreeSWITCH SVN 11 Jan '09
11 Jan '09
Author: gmaruzz
Date: Sun Jan 11 06:13:49 2009
New Revision: 11119
Log:
skypiax: no more skypiax_interface pointers, only private_t pointers
Modified:
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c Sun Jan 11 06:13:49 2009
@@ -19,7 +19,7 @@
int fd;
int calls;
char hold_music[256];
- skypiax_interface_t SKYPIAX_INTERFACES[SKYPIAX_MAX_INTERFACES];
+ private_t SKYPIAX_INTERFACES[SKYPIAX_MAX_INTERFACES];
switch_mutex_t *mutex;
} globals;
@@ -56,7 +56,6 @@
static switch_status_t skypiax_codec(private_t * tech_pvt, int sample_rate, int codec_ms)
{
- skypiax_interface_t *p = NULL;
if (switch_core_codec_init
(&tech_pvt->read_codec, "L16", NULL, sample_rate, codec_ms, 1,
SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE, NULL,
@@ -84,8 +83,7 @@
}
-void skypiax_tech_init(private_t * tech_pvt, switch_core_session_t * session,
- skypiax_interface_t * p)
+void skypiax_tech_init(private_t * tech_pvt, switch_core_session_t * session)
{
DEBUGA_PBX("ENTERING FUNC\n", SKYPIAX_P_LOG);
@@ -97,13 +95,8 @@
switch_core_session_get_pool(session));
switch_core_session_set_private(session, tech_pvt);
tech_pvt->session = session;
- if (p) {
- tech_pvt->p = p;
- p->tech_pvt = tech_pvt;
-
- }
if (skypiax_codec(tech_pvt, SAMPLERATE_SKYPIAX, 20) != SWITCH_STATUS_SUCCESS) {
- ERRORA("skypiax_docec FAILED\n", SKYPIAX_P_LOG);
+ ERRORA("skypiax_codec FAILED\n", SKYPIAX_P_LOG);
} else {
DEBUGA_SKYPE("skypiax_codec SUCCESS\n", SKYPIAX_P_LOG);
}
@@ -120,7 +113,6 @@
{
switch_channel_t *channel;
private_t *tech_pvt = NULL;
- skypiax_interface_t *p = NULL;
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
@@ -146,7 +138,6 @@
{
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
- skypiax_interface_t *p = NULL;
char msg_to_skype[256];
channel = switch_core_session_get_channel(session);
@@ -155,17 +146,16 @@
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- p = tech_pvt->p;
switch_clear_flag_locked(tech_pvt, TFLAG_IO);
switch_clear_flag_locked(tech_pvt, TFLAG_VOICE);
//switch_set_flag_locked(tech_pvt, TFLAG_HANGUP);
- if (strlen(p->skype_call_id)) {
+ if (strlen(tech_pvt->skype_call_id)) {
//switch_thread_cond_signal(tech_pvt->cond);
- WARNINGA("hanging up skype call: %s\n", SKYPIAX_P_LOG, p->skype_call_id);
- sprintf(msg_to_skype, "ALTER CALL %s HANGUP", p->skype_call_id);
- skypiax_skype_write(p, msg_to_skype);
+ WARNINGA("hanging up skype call: %s\n", SKYPIAX_P_LOG, tech_pvt->skype_call_id);
+ sprintf(msg_to_skype, "ALTER CALL %s HANGUP", tech_pvt->skype_call_id);
+ skypiax_skype_write(tech_pvt, msg_to_skype);
}
if (tech_pvt->read_codec.implementation) {
@@ -191,7 +181,6 @@
{
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
- skypiax_interface_t *p = NULL;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
@@ -209,7 +198,6 @@
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
- skypiax_interface_t *p = NULL;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
@@ -226,7 +214,6 @@
{
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
- skypiax_interface_t *p = NULL;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
@@ -256,14 +243,14 @@
static switch_status_t channel_on_exchange_media(switch_core_session_t * session)
{
- skypiax_interface_t *p = NULL;
+ private_t *tech_pvt = NULL;
DEBUGA_SKYPE("CHANNEL LOOPBACK\n", SKYPIAX_P_LOG);
return SWITCH_STATUS_SUCCESS;
}
static switch_status_t channel_on_soft_execute(switch_core_session_t * session)
{
- skypiax_interface_t *p = NULL;
+ private_t *tech_pvt = NULL;
DEBUGA_SKYPE("CHANNEL TRANSMIT\n", SKYPIAX_P_LOG);
return SWITCH_STATUS_SUCCESS;
}
@@ -271,15 +258,12 @@
static switch_status_t channel_send_dtmf(switch_core_session_t * session,
const switch_dtmf_t * dtmf)
{
- skypiax_interface_t *p = NULL;
private_t *tech_pvt = switch_core_session_get_private(session);
switch_assert(tech_pvt != NULL);
- p = tech_pvt->p;
-
NOTICA("DTMF: %c\n", SKYPIAX_P_LOG, dtmf->digit);
- skypiax_skype_senddigit(p, dtmf->digit);
+ skypiax_skype_senddigit(tech_pvt, dtmf->digit);
return SWITCH_STATUS_SUCCESS;
}
@@ -291,7 +275,6 @@
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
switch_byte_t *data;
- skypiax_interface_t *p = NULL;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
@@ -362,7 +345,6 @@
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
unsigned int sent;
- struct skypiax_interface *p = NULL;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
@@ -370,8 +352,6 @@
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- p = tech_pvt->p;
- assert(p != NULL);
if (!switch_test_flag(tech_pvt, TFLAG_IO)) {
ERRORA("CIAPA \n", SKYPIAX_P_LOG);
@@ -385,9 +365,9 @@
sent = frame->datalen;
#ifdef WIN32
- switch_file_write(p->audioskypepipe[1], frame->data, &sent);
+ switch_file_write(tech_pvt->audioskypepipe[1], frame->data, &sent);
#else /* WIN32 */
- sent = write(p->audioskypepipe[1], frame->data, sent);
+ sent = write(tech_pvt->audioskypepipe[1], frame->data, sent);
#endif /* WIN32 */
if (sent != frame->datalen && sent != -1) {
DEBUGA_SKYPE("CLI PIPE write %d\n", SKYPIAX_P_LOG, sent);
@@ -400,7 +380,6 @@
{
private_t *tech_pvt;
switch_channel_t *channel = NULL;
- struct skypiax_interface *p;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
@@ -408,7 +387,6 @@
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- p = tech_pvt->p;
DEBUGA_SKYPE("ANSWERED! \n", SKYPIAX_P_LOG);
@@ -420,7 +398,6 @@
{
switch_channel_t *channel;
private_t *tech_pvt;
- struct skypiax_interface *p;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
@@ -428,7 +405,6 @@
tech_pvt = (private_t *) switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- p = tech_pvt->p;
switch (msg->message_id) {
case SWITCH_MESSAGE_INDICATE_ANSWER:
@@ -452,7 +428,6 @@
{
struct private_object *tech_pvt = switch_core_session_get_private(session);
char *body = switch_event_get_body(event);
- skypiax_interface_t *p = NULL;
switch_assert(tech_pvt != NULL);
if (!body) {
@@ -495,7 +470,6 @@
private_t *tech_pvt;
switch_channel_t *channel;
switch_caller_profile_t *caller_profile;
- skypiax_interface_t *p = NULL;
switch_core_session_add_stream(*new_session, NULL);
@@ -522,8 +496,8 @@
DEBUGA_SKYPE("globals.SKYPIAX_INTERFACES[%d].name=|||%s|||?\n", SKYPIAX_P_LOG,
i, globals.SKYPIAX_INTERFACES[i].name);
- tech_pvt->p = &globals.SKYPIAX_INTERFACES[i]; //FIXME
- globals.SKYPIAX_INTERFACES[i].tech_pvt = tech_pvt; //FIXME
+ tech_pvt = &globals.SKYPIAX_INTERFACES[i]; //FIXME
+ //globals.SKYPIAX_INTERFACES[i].tech_pvt = tech_pvt; //FIXME
found = 1;
break;
}
@@ -544,7 +518,7 @@
}
channel = switch_core_session_get_channel(*new_session);
- skypiax_tech_init(tech_pvt, *new_session, NULL);
+ skypiax_tech_init(tech_pvt, *new_session);
} else {
ERRORA("Hey where is my memory pool?\n", SKYPIAX_P_LOG);
switch_core_session_destroy(new_session);
@@ -555,7 +529,7 @@
char name[128];
snprintf(name, sizeof(name), "skypiax/%s", outbound_profile->destination_number);
- //snprintf(name, sizeof(name), "skypiax/%s", p->name);
+ //snprintf(name, sizeof(name), "skypiax/%s", tech_pvt->name);
switch_channel_set_name(channel, name);
NOTICA("outbound_profile->destination_number=|||%s|||\n", SKYPIAX_P_LOG,
outbound_profile->destination_number);
@@ -575,7 +549,7 @@
return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
}
- skypiax_skype_call(tech_pvt->p, caller_profile->destination_number, 30, *new_session);
+ skypiax_skype_call(tech_pvt, caller_profile->destination_number, 30, *new_session);
switch_channel_set_flag(channel, CF_OUTBOUND);
switch_set_flag_locked(tech_pvt, TFLAG_OUTBOUND);
@@ -593,27 +567,26 @@
static void *SWITCH_THREAD_FUNC skypiax_do_controldev_thread(switch_thread_t * thread,
void *obj)
{
- struct skypiax_interface *p = obj;
+ private_t *tech_pvt = obj;
int res;
int forever = 1;
DEBUGA_PBX("ENTERING FUNC\n", SKYPIAX_P_LOG);
DEBUGA_SKYPE("In skypiax_do_controldev_thread: started, p=%p\n", SKYPIAX_P_LOG,
- (void *) p);
+ (void *) tech_pvt);
while (forever) {
if (!running)
break;
- res = skypiax_skype_read(p);
+ res = skypiax_skype_read(tech_pvt);
if (res == CALLFLOW_INCOMING_HANGUP) {
switch_core_session_t *session = NULL;
- private_t *tech_pvt = NULL;
+ //private_t *tech_pvt = NULL;
switch_channel_t *channel = NULL;
DEBUGA_SKYPE("skype call ended\n", SKYPIAX_P_LOG);
- tech_pvt = p->tech_pvt;
if (tech_pvt) {
session = tech_pvt->session;
@@ -630,7 +603,7 @@
} else {
ERRORA("no tech_pvt?\n", SKYPIAX_P_LOG);
}
- p->interface_state = SKYPIAX_STATE_DOWN;
+ tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
tech_pvt->session = NULL; //FIXME
}
}
@@ -642,7 +615,7 @@
{
char *cf = "skypiax.conf";
switch_xml_t cfg, xml, global_settings, param, interfaces, myinterface;
- skypiax_interface_t *p = NULL;
+ private_t *tech_pvt = NULL;
switch_mutex_init(&globals.mutex, SWITCH_MUTEX_NESTED, skypiax_module_pool);
if (!(xml = switch_xml_open_cfg(cf, &cfg, NULL))) {
@@ -819,7 +792,7 @@
#endif /* WIN32 */
if (interface_id && interface_id < SKYPIAX_MAX_INTERFACES) {
- struct skypiax_interface newconf;
+ private_t newconf;
switch_threadattr_t *do_skype_thd_attr = NULL;
switch_threadattr_t *skypiax_do_controldev_thread_thd_attr = NULL;
@@ -943,7 +916,7 @@
SWITCH_MODULE_LOAD_FUNCTION(mod_skypiax_load)
{
- struct skypiax_interface *p = NULL; //for logging
+ private_t *tech_pvt = NULL; //for logging
skypiax_module_pool = pool;
@@ -966,7 +939,7 @@
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_skypiax_shutdown)
{
int x = 100;
- struct skypiax_interface *p = NULL;
+ private_t *tech_pvt = NULL;
switch_status_t status;
unsigned int howmany = 8;
int interface_id;
@@ -974,34 +947,34 @@
running = 0;
for (interface_id = 0; interface_id < SKYPIAX_MAX_INTERFACES; interface_id++) {
- p = &globals.SKYPIAX_INTERFACES[interface_id];
+ tech_pvt = &globals.SKYPIAX_INTERFACES[interface_id];
if (globals.SKYPIAX_INTERFACES[interface_id].skypiax_do_controldev_thread_thread) {
#ifdef WIN32
- switch_file_write(p->SkypiaxHandles.fdesc[1], "sciutati", &howmany); // let's the controldev_thread die
+ switch_file_write(tech_pvt->SkypiaxHandles.fdesc[1], "sciutati", &howmany); // let's the controldev_thread die
#else /* WIN32 */
- howmany = write(p->SkypiaxHandles.fdesc[1], "sciutati", howmany);
+ howmany = write(tech_pvt->SkypiaxHandles.fdesc[1], "sciutati", howmany);
#endif /* WIN32 */
}
if (globals.SKYPIAX_INTERFACES[interface_id].skypiax_do_skype_thread_thread) {
#ifdef WIN32
- if (SendMessage(p->SkypiaxHandles.win32_hInit_MainWindowHandle, WM_DESTROY, 0, 0) == FALSE) { // let's the do_skype_thread die
+ if (SendMessage(tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle, WM_DESTROY, 0, 0) == FALSE) { // let's the do_skype_thread die
ERRORA("WHY FALSE HERE? %d\n", SKYPIAX_P_LOG, GetLastError());
}
#else
XEvent e;
Atom atom1 =
- XInternAtom(p->SkypiaxHandles.disp, "SKYPECONTROLAPI_MESSAGE_BEGIN", False);
+ XInternAtom(tech_pvt->SkypiaxHandles.disp, "SKYPECONTROLAPI_MESSAGE_BEGIN", False);
memset(&e, 0, sizeof(e));
e.xclient.type = ClientMessage;
e.xclient.message_type = atom1; /* leading message */
- e.xclient.display = p->SkypiaxHandles.disp;
- e.xclient.window = p->SkypiaxHandles.skype_win;
+ e.xclient.display = tech_pvt->SkypiaxHandles.disp;
+ e.xclient.window = tech_pvt->SkypiaxHandles.skype_win;
e.xclient.format = 8;
- XSendEvent(p->SkypiaxHandles.disp, p->SkypiaxHandles.win, False, 0, &e);
- XSync(p->SkypiaxHandles.disp, False);
+ XSendEvent(tech_pvt->SkypiaxHandles.disp, tech_pvt->SkypiaxHandles.win, False, 0, &e);
+ XSync(tech_pvt->SkypiaxHandles.disp, False);
#endif
}
while (x) {
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h Sun Jan 11 06:13:49 2009
@@ -79,7 +79,7 @@
#define WARNINGA(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "rev "SKYPIAX_SVN_VERSION "[%p|%-7lx][WARNINGA %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
#define NOTICA(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "rev "SKYPIAX_SVN_VERSION "[%p|%-7lx][NOTICA %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
-#define SKYPIAX_P_LOG NULL, (unsigned long)55, __LINE__, p ? p->name ? p->name : "none" : "none", -1, p ? p->interface_state : -1, p ? p->skype_callflow : -1
+#define SKYPIAX_P_LOG NULL, (unsigned long)55, __LINE__, tech_pvt ? tech_pvt->name ? tech_pvt->name : "none" : "none", -1, tech_pvt ? tech_pvt->interface_state : -1, tech_pvt ? tech_pvt->skype_callflow : -1
/*********************************/
#define SKYPIAX_CAUSE_NORMAL 1
@@ -154,7 +154,8 @@
#endif //WIN32
-struct skypiax_interface {
+#if 0
+private_t {
char interface_id[80];
char name[80];
char dialplan[80];
@@ -221,7 +222,8 @@
char skype_password[256];
};
-typedef struct skypiax_interface skypiax_interface_t;
+typedef private_t private_t;
+#endif
struct private_object {
unsigned int flags;
@@ -233,20 +235,88 @@
switch_caller_profile_t *caller_profile;
switch_mutex_t *mutex;
switch_mutex_t *flag_mutex;
- skypiax_interface_t *p;
+ //private_t *p;
//switch_thread_cond_t *cond;
+
+ char interface_id[80];
+ char name[80];
+ char dialplan[80];
+ char context[80];
+ char dial_regex[256];
+ char fail_dial_regex[256];
+ char hold_music[256];
+ char type[256];
+ char X11_display[256];
+#ifdef WIN32
+ unsigned short tcp_cli_port;
+ unsigned short tcp_srv_port;
+#else
+ int tcp_cli_port;
+ int tcp_srv_port;
+#endif
+ struct SkypiaxHandles SkypiaxHandles;
+
+ int interface_state; /*!< \brief 'state' of the interface (channel) */
+ char language[80]; /*!< \brief default Asterisk dialplan language for this interface */
+ char exten[80]; /*!< \brief default Asterisk dialplan extension for this interface */
+ int skypiax_sound_rate; /*!< \brief rate of the sound device, in Hz, eg: 8000 */
+ switch_file_t *skypiax_sound_capt_fd; /*!< \brief file descriptor for sound capture dev */
+ char callid_name[50];
+ char callid_number[50];
+ double playback_boost;
+ double capture_boost;
+ int stripmsd;
+ switch_thread_t *skype_thread;
+ char skype_call_id[512];
+ int skype_call_ongoing;
+ char skype_friends[4096];
+ char skype_fullname[512];
+ char skype_displayname[512];
+ int skype_callflow; /*!< \brief 'callflow' of the skype interface (as opposed to phone interface) */
+ int skype; /*!< \brief config flag, bool, Skype support on this interface (0 if false, -1 if true) */
+ int control_to_send;
+#ifdef WIN32
+ switch_file_t *audiopipe[2];
+ switch_file_t *audioskypepipe[2];
+#else /* WIN32 */
+ int audiopipe[2];
+ int audioskypepipe[2];
+#endif /* WIN32 */
+ switch_thread_t *tcp_srv_thread;
+ switch_thread_t *tcp_cli_thread;
+ switch_thread_t *skypiax_do_controldev_thread_thread;
+ switch_thread_t *skypiax_do_skype_thread_thread;
+ short audiobuf[SAMPLES_PER_FRAME];
+ int audiobuf_is_loaded;
+
+ //int phonebook_listing;
+ //int phonebook_querying;
+ //int phonebook_listing_received_calls;
+
+ //int phonebook_first_entry;
+ //int phonebook_last_entry;
+ //int phonebook_number_lenght;
+ //int phonebook_text_lenght;
+ FILE *phonebook_writing_fp;
+ int skypiax_dir_entry_extension_prefix;
+ //void *tech_pvt;
+ char skype_user[256];
+ char skype_password[256];
+
+
+
+
};
typedef struct private_object private_t;
void *SWITCH_THREAD_FUNC do_skype_thread(switch_thread_t * thread, void *obj);
-void skypiax_tech_init(private_t * tech_pvt, switch_core_session_t * session,
- skypiax_interface_t * p);
+void skypiax_tech_init(private_t * tech_pvt, switch_core_session_t * session);
switch_status_t skypiax_skypeaudio_read(private_t * tech_pvt);
-int skypiax_skypeaudio_init(struct skypiax_interface *p);
-int skypiax_skype_write(struct skypiax_interface *p, char *msg_to_skype);
-int skypiax_skype_read(struct skypiax_interface *p);
+int skypiax_skypeaudio_init(private_t *p);
+int skypiax_skype_write(private_t *p, char *msg_to_skype);
+int skypiax_skype_read(private_t *p);
-int skypiax_skype_call(struct skypiax_interface *p, char *idest, int timeout,
+int skypiax_skype_call(private_t *p, char *idest, int timeout,
switch_core_session_t * session);
-int skypiax_skype_senddigit(struct skypiax_interface *p, char digit);
+int skypiax_skype_senddigit(private_t *p, char digit);
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c Sun Jan 11 06:13:49 2009
@@ -8,7 +8,7 @@
static void *SWITCH_THREAD_FUNC skypiax_do_tcp_srv_thread(switch_thread_t * thread,
void *obj)
{
- struct skypiax_interface *p = obj;
+ private_t *tech_pvt = obj;
int s;
#ifdef WIN32
unsigned int len;
@@ -40,7 +40,7 @@
memset(&my_addr, 0, sizeof(my_addr));
my_addr.sin_family = AF_INET;
my_addr.sin_addr.s_addr = htonl(0x7f000001); /* use the localhost */
- my_addr.sin_port = htons(p->tcp_srv_port);
+ my_addr.sin_port = htons(tech_pvt->tcp_srv_port);
if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
ERRORA("socket Error\n", SKYPIAX_P_LOG);
@@ -66,9 +66,9 @@
DEBUGA_SKYPE("ACCEPTED\n", SKYPIAX_P_LOG);
if (!running)
break;
- while (p->interface_state != SKYPIAX_STATE_DOWN
- && (p->skype_callflow == CALLFLOW_STATUS_INPROGRESS
- || p->skype_callflow == SKYPIAX_STATE_UP)) {
+ while (tech_pvt->interface_state != SKYPIAX_STATE_DOWN
+ && (tech_pvt->skype_callflow == CALLFLOW_STATUS_INPROGRESS
+ || tech_pvt->skype_callflow == SKYPIAX_STATE_UP)) {
#ifdef WIN32
unsigned int fdselect;
@@ -108,6 +108,8 @@
if ((SAMPLERATE_SKYPIAX - 8000) == 0) {
+ ERRORA("tech_pvt->audiopipe[0] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[0]);
+ ERRORA("tech_pvt->audiopipe[1] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[1]);
if (len > 0) {
a = 0;
for (i = 0; i < len / sizeof(short); i++) {
@@ -116,17 +118,17 @@
a++;
}
- if (!p->audiobuf_is_loaded) {
+ if (!tech_pvt->audiobuf_is_loaded) {
for (i = 0; i < (len / sizeof(short)) / 2; i++) {
- p->audiobuf[i] = srv_out[i];
+ tech_pvt->audiobuf[i] = srv_out[i];
}
- p->audiobuf_is_loaded = 1;
+ tech_pvt->audiobuf_is_loaded = 1;
} else {
unsigned int howmany;
howmany = len / 2 / 2;
for (i = 0; i < howmany; i++)
- totalbuf[i] = p->audiobuf[i];
+ totalbuf[i] = tech_pvt->audiobuf[i];
howmany = len / 2 / 2;
for (a = 0; a < howmany; a++) {
@@ -137,11 +139,11 @@
howmany = len;
#ifdef WIN32
- switch_file_write(p->audiopipe[1], totalbuf, &howmany);
+ switch_file_write(tech_pvt->audiopipe[1], totalbuf, &howmany);
#else /* WIN32 */
- howmany = write(p->audiopipe[1], totalbuf, howmany);
+ howmany = write(tech_pvt->audiopipe[1], totalbuf, howmany);
#endif /* WIN32 */
- p->audiobuf_is_loaded = 0;
+ tech_pvt->audiobuf_is_loaded = 0;
}
} else if (len == 0) {
@@ -154,38 +156,40 @@
}
} else if (SAMPLERATE_SKYPIAX == 16000) {
+ //ERRORA("tech_pvt->audiopipe[0] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[0]);
+ //ERRORA("tech_pvt->audiopipe[1] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[1]);
if (len > 0) {
if (len == SAMPLES_PER_FRAME * sizeof(short)) {
#ifdef WIN32
unsigned int howmany;
howmany = len;
- switch_file_write(p->audiopipe[1], srv_in, &howmany);
+ switch_file_write(tech_pvt->audiopipe[1], srv_in, &howmany);
#else /* WIN32 */
- len = write(p->audiopipe[1], srv_in, len);
+ len = write(tech_pvt->audiopipe[1], srv_in, len);
#endif /* WIN32 */
} else if (len == SAMPLES_PER_FRAME * sizeof(short) / 2) {
- if (!p->audiobuf_is_loaded) {
+ if (!tech_pvt->audiobuf_is_loaded) {
for (i = 0; i < (len / sizeof(short)); i++) {
- p->audiobuf[i] = srv_in[i];
+ tech_pvt->audiobuf[i] = srv_in[i];
}
- p->audiobuf_is_loaded = 1;
+ tech_pvt->audiobuf_is_loaded = 1;
} else {
unsigned int howmany = SAMPLES_PER_FRAME * sizeof(short);
for (i = 0; i < (len / sizeof(short)); i++)
- totalbuf[i] = p->audiobuf[i];
+ totalbuf[i] = tech_pvt->audiobuf[i];
for (a = 0; a < (len / sizeof(short)); a++) {
totalbuf[i] = srv_in[a];
i++;
}
#ifdef WIN32
- switch_file_write(p->audiopipe[1], totalbuf, &howmany);
+ switch_file_write(tech_pvt->audiopipe[1], totalbuf, &howmany);
#else /* WIN32 */
- howmany = write(p->audiopipe[1], totalbuf, howmany);
+ howmany = write(tech_pvt->audiopipe[1], totalbuf, howmany);
#endif /* WIN32 */
- p->audiobuf_is_loaded = 0;
+ tech_pvt->audiobuf_is_loaded = 0;
}
} else {
@@ -212,24 +216,24 @@
}
#ifdef WIN32
kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- switch_file_write(p->audiopipe[1], kill_cli_buff, &kill_cli_size);
+ switch_file_write(tech_pvt->audiopipe[1], kill_cli_buff, &kill_cli_size);
kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- switch_file_write(p->audioskypepipe[1], kill_cli_buff, &kill_cli_size);
- p->interface_state = SKYPIAX_STATE_DOWN;
+ switch_file_write(tech_pvt->audioskypepipe[1], kill_cli_buff, &kill_cli_size);
+ tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- switch_file_write(p->audiopipe[1], kill_cli_buff, &kill_cli_size);
+ switch_file_write(tech_pvt->audiopipe[1], kill_cli_buff, &kill_cli_size);
kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- switch_file_write(p->audioskypepipe[1], kill_cli_buff, &kill_cli_size);
+ switch_file_write(tech_pvt->audioskypepipe[1], kill_cli_buff, &kill_cli_size);
#else /* WIN32 */
kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- len = write(p->audiopipe[1], kill_cli_buff, kill_cli_size);
+ len = write(tech_pvt->audiopipe[1], kill_cli_buff, kill_cli_size);
kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- len = write(p->audioskypepipe[1], kill_cli_buff, kill_cli_size);
- p->interface_state = SKYPIAX_STATE_DOWN;
+ len = write(tech_pvt->audioskypepipe[1], kill_cli_buff, kill_cli_size);
+ tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- len = write(p->audiopipe[1], kill_cli_buff, kill_cli_size);
+ len = write(tech_pvt->audiopipe[1], kill_cli_buff, kill_cli_size);
kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- len = write(p->audioskypepipe[1], kill_cli_buff, kill_cli_size);
+ len = write(tech_pvt->audioskypepipe[1], kill_cli_buff, kill_cli_size);
#endif /* WIN32 */
DEBUGA_SKYPE("Skype client GONE\n", SKYPIAX_P_LOG);
#ifndef WIN32
@@ -255,7 +259,7 @@
static void *SWITCH_THREAD_FUNC skypiax_do_tcp_cli_thread(switch_thread_t * thread,
void *obj)
{
- struct skypiax_interface *p = obj;
+ private_t *tech_pvt = obj;
int s;
struct sockaddr_in my_addr;
struct sockaddr_in remote_addr;
@@ -284,7 +288,7 @@
memset(&my_addr, 0, sizeof(my_addr));
my_addr.sin_family = AF_INET;
my_addr.sin_addr.s_addr = htonl(0x7f000001); /* use the localhost */
- my_addr.sin_port = htons(p->tcp_cli_port); //FIXME configurable!
+ my_addr.sin_port = htons(tech_pvt->tcp_cli_port); //FIXME configurable!
if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
ERRORA("socket Error\n", SKYPIAX_P_LOG);
@@ -315,9 +319,9 @@
DEBUGA_SKYPE("ACCEPTED\n", SKYPIAX_P_LOG);
if (!running)
break;
- while (p->interface_state != SKYPIAX_STATE_DOWN
- && (p->skype_callflow == CALLFLOW_STATUS_INPROGRESS
- || p->skype_callflow == SKYPIAX_STATE_UP)) {
+ while (tech_pvt->interface_state != SKYPIAX_STATE_DOWN
+ && (tech_pvt->skype_callflow == CALLFLOW_STATUS_INPROGRESS
+ || tech_pvt->skype_callflow == SKYPIAX_STATE_UP)) {
#ifdef WIN32
unsigned int fdselect;
#else
@@ -332,7 +336,7 @@
#ifdef WIN32
fdselect = fd; //cannot select on audioskypepipe, let's select on socket write
#else /* WIN32 */
- fdselect = p->audioskypepipe[0];
+ fdselect = tech_pvt->audioskypepipe[0];
#endif /* WIN32 */
FD_ZERO(&fs);
FD_SET(fdselect, &fs);
@@ -348,9 +352,9 @@
if ((SAMPLERATE_SKYPIAX - 8000) == 0) {
got = SAMPLES_PER_FRAME * sizeof(short);
#ifdef WIN32
- switch_file_read(p->audioskypepipe[0], cli_in, &got);
+ switch_file_read(tech_pvt->audioskypepipe[0], cli_in, &got);
#else /* WIN32 */
- got = read(p->audioskypepipe[0], cli_in, got);
+ got = read(tech_pvt->audioskypepipe[0], cli_in, got);
#endif /* WIN32 */
if (got > 0) {
@@ -378,9 +382,9 @@
} else if (SAMPLERATE_SKYPIAX == 16000) {
got = SAMPLES_PER_FRAME * sizeof(short);
#ifdef WIN32
- switch_file_read(p->audioskypepipe[0], cli_in, &got);
+ switch_file_read(tech_pvt->audioskypepipe[0], cli_in, &got);
#else /* WIN32 */
- got = read(p->audioskypepipe[0], cli_in, got);
+ got = read(tech_pvt->audioskypepipe[0], cli_in, got);
#endif /* WIN32 */
if (got > 0) {
@@ -434,25 +438,29 @@
return NULL;
}
-int skypiax_skypeaudio_init(struct skypiax_interface *p)
+int skypiax_skypeaudio_init(private_t *tech_pvt)
{
#ifdef WIN32
switch_status_t rv;
- rv = switch_file_pipe_create(&p->audiopipe[0], &p->audiopipe[1], skypiax_module_pool);
+ rv = switch_file_pipe_create(&tech_pvt->audiopipe[0], &tech_pvt->audiopipe[1], skypiax_module_pool);
rv =
- switch_file_pipe_create(&p->audioskypepipe[0], &p->audioskypepipe[1],
+ switch_file_pipe_create(&tech_pvt->audioskypepipe[0], &tech_pvt->audioskypepipe[1],
skypiax_module_pool);
#else /* WIN32 */
- if (pipe(p->audiopipe)) {
- fcntl(p->audiopipe[0], F_SETFL, O_NONBLOCK);
- fcntl(p->audiopipe[1], F_SETFL, O_NONBLOCK);
- }
- if (pipe(p->audioskypepipe)) {
- fcntl(p->audioskypepipe[0], F_SETFL, O_NONBLOCK);
- fcntl(p->audioskypepipe[1], F_SETFL, O_NONBLOCK);
+ if (pipe(tech_pvt->audiopipe)) {
+ fcntl(tech_pvt->audiopipe[0], F_SETFL, O_NONBLOCK);
+ fcntl(tech_pvt->audiopipe[1], F_SETFL, O_NONBLOCK);
+ }
+ if (pipe(tech_pvt->audioskypepipe)) {
+ fcntl(tech_pvt->audioskypepipe[0], F_SETFL, O_NONBLOCK);
+ fcntl(tech_pvt->audioskypepipe[1], F_SETFL, O_NONBLOCK);
}
#endif /* WIN32 */
+
+ ERRORA("tech_pvt->audiopipe[0] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[0]);
+ ERRORA("tech_pvt->audiopipe[1] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[1]);
+
if (option_debug > 10) {
DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
}
@@ -461,7 +469,7 @@
switch_status_t skypiax_skypeaudio_read(private_t * tech_pvt)
{
- struct skypiax_interface *p;
+ //private_t *p;
unsigned int samples;
int rt;
#ifndef WIN32
@@ -470,11 +478,10 @@
struct timeval to;
#endif /* WIN32 */
- p = tech_pvt->p;
#ifdef WIN32
rt = 1;
#else /* WIN32 */
- fdselect = p->audiopipe[0];
+ fdselect = tech_pvt->audiopipe[0];
FD_ZERO(&fs);
FD_SET(fdselect, &fs);
to.tv_usec = 2000000; //2000 msec
@@ -484,15 +491,18 @@
if (rt > 0) {
samples = SAMPLES_PER_FRAME * sizeof(short);
#ifdef WIN32
- switch_file_read(p->audiopipe[0], tech_pvt->read_frame.data, &samples);
+ switch_file_read(tech_pvt->audiopipe[0], tech_pvt->read_frame.data, &samples);
#else /* WIN32 */
- samples = read(p->audiopipe[0], tech_pvt->read_frame.data, samples);
+ samples = read(tech_pvt->audiopipe[0], tech_pvt->read_frame.data, samples);
#endif /* WIN32 */
+ //ERRORA("tech_pvt->audiopipe[0] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[0]);
+ //ERRORA("tech_pvt->audiopipe[1] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[1]);
if (samples != SAMPLES_PER_FRAME * sizeof(short)) {
if (samples)
ERRORA("SRV PIPE READ=====> NOT GOOD samples=%u expected=%lu\n", SKYPIAX_P_LOG,
samples, SAMPLES_PER_FRAME * sizeof(short));
+ assert(samples == SAMPLES_PER_FRAME * sizeof(short)); //do a crash, please
//do nothing
} else {
/* A real frame */
@@ -554,24 +564,24 @@
{
LRESULT lReturnCode;
int fIssueDefProc;
- struct skypiax_interface *p = NULL;
+ //private_t *p = NULL;
lReturnCode = 0;
fIssueDefProc = 0;
- p = (struct skypiax_interface *) GetWindowLong(hWindow, GWL_USERDATA);
+ tech_pvt = (private_t *) GetWindowLong(hWindow, GWL_USERDATA);
switch (uiMessage) {
case WM_CREATE:
- p = (struct skypiax_interface *) ((LPCREATESTRUCT) ulParam)->lpCreateParams;
+ tech_pvt = (private_t *) ((LPCREATESTRUCT) ulParam)->lpCreateParams;
SetWindowLong(hWindow, GWL_USERDATA, (LONG) p);
DEBUGA_SKYPE("got CREATE\n", SKYPIAX_P_LOG);
break;
case WM_DESTROY:
NOTICA("got DESTROY\n", SKYPIAX_P_LOG);
- p->SkypiaxHandles.win32_hInit_MainWindowHandle = NULL;
+ tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle = NULL;
PostQuitMessage(0);
break;
case WM_COPYDATA:
- if (p->SkypiaxHandles.win32_hGlobal_SkypeAPIWindowHandle == (HWND) uiParam) {
+ if (tech_pvt->SkypiaxHandles.win32_hGlobal_SkypeAPIWindowHandle == (HWND) uiParam) {
unsigned int howmany;
char msg_from_skype[2048];
@@ -582,21 +592,21 @@
sizeof(msg_from_skype) - 2);
howmany = strlen(msg_from_skype) + 1;
- switch_file_write(p->SkypiaxHandles.fdesc[1], msg_from_skype, &howmany);
+ switch_file_write(tech_pvt->SkypiaxHandles.fdesc[1], msg_from_skype, &howmany);
//NOTICA("From Skype API: %s\n", SKYPIAX_P_LOG, (const char *) poCopyData->lpData);
lReturnCode = 1;
}
break;
default:
- if (p && p->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach) {
- if (uiMessage == p->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach) {
+ if (p && tech_pvt->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach) {
+ if (uiMessage == tech_pvt->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach) {
switch (ulParam) {
case SKYPECONTROLAPI_ATTACH_SUCCESS:
- if (!p->SkypiaxHandles.api_connected) {
+ if (!tech_pvt->SkypiaxHandles.api_connected) {
NOTICA("\n\n\tConnected to Skype API!\n", SKYPIAX_P_LOG);
- p->SkypiaxHandles.win32_hGlobal_SkypeAPIWindowHandle = (HWND) uiParam;
- p->SkypiaxHandles.win32_hGlobal_SkypeAPIWindowHandle =
- p->SkypiaxHandles.win32_hGlobal_SkypeAPIWindowHandle;
+ tech_pvt->SkypiaxHandles.win32_hGlobal_SkypeAPIWindowHandle = (HWND) uiParam;
+ tech_pvt->SkypiaxHandles.win32_hGlobal_SkypeAPIWindowHandle =
+ tech_pvt->SkypiaxHandles.win32_hGlobal_SkypeAPIWindowHandle;
}
break;
case SKYPECONTROLAPI_ATTACH_PENDING_AUTHORIZATION:
@@ -604,11 +614,11 @@
("\n\n\tIf I do not (almost) immediately connect to Skype API,\n\tplease give the Skype client authorization to be connected \n\tby Asterisk and to not ask you again.\n\n",
SKYPIAX_P_LOG);
switch_sleep(5000);
- if (!p->SkypiaxHandles.api_connected) {
+ if (!tech_pvt->SkypiaxHandles.api_connected) {
SendMessage(HWND_BROADCAST,
- p->SkypiaxHandles.
+ tech_pvt->SkypiaxHandles.
win32_uiGlobal_MsgID_SkypeControlAPIDiscover,
- (WPARAM) p->SkypiaxHandles.win32_hInit_MainWindowHandle, 0);
+ (WPARAM) tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle, 0);
}
break;
case SKYPECONTROLAPI_ATTACH_REFUSED:
@@ -620,11 +630,11 @@
case SKYPECONTROLAPI_ATTACH_API_AVAILABLE:
DEBUGA_SKYPE("Skype API available\n", SKYPIAX_P_LOG);
switch_sleep(5000);
- if (!p->SkypiaxHandles.api_connected) {
+ if (!tech_pvt->SkypiaxHandles.api_connected) {
SendMessage(HWND_BROADCAST,
- p->SkypiaxHandles.
+ tech_pvt->SkypiaxHandles.
win32_uiGlobal_MsgID_SkypeControlAPIDiscover,
- (WPARAM) p->SkypiaxHandles.win32_hInit_MainWindowHandle, 0);
+ (WPARAM) tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle, 0);
}
break;
default:
@@ -642,7 +652,7 @@
return (lReturnCode);
}
-int win32_Initialize_CreateWindowClass(struct skypiax_interface *p)
+int win32_Initialize_CreateWindowClass(private_t *tech_pvt)
{
unsigned char *paucUUIDString;
RPC_STATUS lUUIDResult;
@@ -651,26 +661,26 @@
fReturnStatus = 0;
lUUIDResult = UuidCreate(&oUUID);
- p->SkypiaxHandles.win32_hInit_ProcessHandle =
+ tech_pvt->SkypiaxHandles.win32_hInit_ProcessHandle =
(HINSTANCE) OpenProcess(PROCESS_DUP_HANDLE, FALSE, GetCurrentProcessId());
- if (p->SkypiaxHandles.win32_hInit_ProcessHandle != NULL
+ if (tech_pvt->SkypiaxHandles.win32_hInit_ProcessHandle != NULL
&& (lUUIDResult == RPC_S_OK || lUUIDResult == RPC_S_UUID_LOCAL_ONLY)) {
if (UuidToString(&oUUID, &paucUUIDString) == RPC_S_OK) {
WNDCLASS oWindowClass;
- strcpy(p->SkypiaxHandles.win32_acInit_WindowClassName, "Skype-API-Skypiax-");
- strcat(p->SkypiaxHandles.win32_acInit_WindowClassName, (char *) paucUUIDString);
+ strcpy(tech_pvt->SkypiaxHandles.win32_acInit_WindowClassName, "Skype-API-Skypiax-");
+ strcat(tech_pvt->SkypiaxHandles.win32_acInit_WindowClassName, (char *) paucUUIDString);
oWindowClass.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
oWindowClass.lpfnWndProc = (WNDPROC) & skypiax_skype_present;
oWindowClass.cbClsExtra = 0;
oWindowClass.cbWndExtra = 0;
- oWindowClass.hInstance = p->SkypiaxHandles.win32_hInit_ProcessHandle;
+ oWindowClass.hInstance = tech_pvt->SkypiaxHandles.win32_hInit_ProcessHandle;
oWindowClass.hIcon = NULL;
oWindowClass.hCursor = NULL;
oWindowClass.hbrBackground = NULL;
oWindowClass.lpszMenuName = NULL;
- oWindowClass.lpszClassName = p->SkypiaxHandles.win32_acInit_WindowClassName;
+ oWindowClass.lpszClassName = tech_pvt->SkypiaxHandles.win32_acInit_WindowClassName;
if (RegisterClass(&oWindowClass) != 0)
fReturnStatus = 1;
@@ -679,34 +689,34 @@
}
}
if (fReturnStatus == 0)
- CloseHandle(p->SkypiaxHandles.win32_hInit_ProcessHandle),
- p->SkypiaxHandles.win32_hInit_ProcessHandle = NULL;
+ CloseHandle(tech_pvt->SkypiaxHandles.win32_hInit_ProcessHandle),
+ tech_pvt->SkypiaxHandles.win32_hInit_ProcessHandle = NULL;
return (fReturnStatus);
}
-void win32_DeInitialize_DestroyWindowClass(struct skypiax_interface *p)
+void win32_DeInitialize_DestroyWindowClass(private_t *tech_pvt)
{
- UnregisterClass(p->SkypiaxHandles.win32_acInit_WindowClassName,
- p->SkypiaxHandles.win32_hInit_ProcessHandle);
- CloseHandle(p->SkypiaxHandles.win32_hInit_ProcessHandle),
- p->SkypiaxHandles.win32_hInit_ProcessHandle = NULL;
+ UnregisterClass(tech_pvt->SkypiaxHandles.win32_acInit_WindowClassName,
+ tech_pvt->SkypiaxHandles.win32_hInit_ProcessHandle);
+ CloseHandle(tech_pvt->SkypiaxHandles.win32_hInit_ProcessHandle),
+ tech_pvt->SkypiaxHandles.win32_hInit_ProcessHandle = NULL;
}
-int win32_Initialize_CreateMainWindow(struct skypiax_interface *p)
+int win32_Initialize_CreateMainWindow(private_t *tech_pvt)
{
- p->SkypiaxHandles.win32_hInit_MainWindowHandle =
+ tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle =
CreateWindowEx(WS_EX_APPWINDOW | WS_EX_WINDOWEDGE,
- p->SkypiaxHandles.win32_acInit_WindowClassName, "",
+ tech_pvt->SkypiaxHandles.win32_acInit_WindowClassName, "",
WS_BORDER | WS_SYSMENU | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT,
- 128, 128, NULL, 0, p->SkypiaxHandles.win32_hInit_ProcessHandle, p);
- return (p->SkypiaxHandles.win32_hInit_MainWindowHandle != NULL ? 1 : 0);
+ 128, 128, NULL, 0, tech_pvt->SkypiaxHandles.win32_hInit_ProcessHandle, p);
+ return (tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle != NULL ? 1 : 0);
}
-void win32_DeInitialize_DestroyMainWindow(struct skypiax_interface *p)
+void win32_DeInitialize_DestroyMainWindow(private_t *tech_pvt)
{
- if (p->SkypiaxHandles.win32_hInit_MainWindowHandle != NULL)
- DestroyWindow(p->SkypiaxHandles.win32_hInit_MainWindowHandle),
- p->SkypiaxHandles.win32_hInit_MainWindowHandle = NULL;
+ if (tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle != NULL)
+ DestroyWindow(tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle),
+ tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle = NULL;
}
DWORD win32_dwThreadId;
@@ -722,28 +732,27 @@
/* destroy main window */
/* destroy window class */
- struct skypiax_interface *p;
+ private_t *tech_pvt = obj;
- p = obj;
- switch_file_pipe_create(&p->SkypiaxHandles.fdesc[0],
- &p->SkypiaxHandles.fdesc[1], skypiax_module_pool);
- p->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach =
+ switch_file_pipe_create(&tech_pvt->SkypiaxHandles.fdesc[0],
+ &tech_pvt->SkypiaxHandles.fdesc[1], skypiax_module_pool);
+ tech_pvt->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach =
RegisterWindowMessage("SkypeControlAPIAttach");
- p->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIDiscover =
+ tech_pvt->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIDiscover =
RegisterWindowMessage("SkypeControlAPIDiscover");
switch_sleep(2000000);
- if (p->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach != 0
- && p->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIDiscover != 0) {
+ if (tech_pvt->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach != 0
+ && tech_pvt->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIDiscover != 0) {
if (win32_Initialize_CreateWindowClass(p)) {
if (win32_Initialize_CreateMainWindow(p)) {
if (SendMessage
(HWND_BROADCAST,
- p->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIDiscover,
- (WPARAM) p->SkypiaxHandles.win32_hInit_MainWindowHandle, 0) != 0) {
- p->SkypiaxHandles.win32_hInit_MainWindowHandle =
- p->SkypiaxHandles.win32_hInit_MainWindowHandle;
+ tech_pvt->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIDiscover,
+ (WPARAM) tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle, 0) != 0) {
+ tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle =
+ tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle;
while (1) {
MSG oMessage;
if (!running)
@@ -818,7 +827,7 @@
unsigned long bytes_after_ret;
unsigned char *prop;
int status;
- struct skypiax_interface *p = NULL;
+ private_t *tech_pvt = NULL;
//XLockDisplay(disp);
status =
@@ -846,7 +855,7 @@
int *dispptr;
int disp;
- struct skypiax_interface *p = NULL;
+ private_t *tech_pvt = NULL;
dispptr = data;
disp = *dispptr;
@@ -865,28 +874,27 @@
void *SWITCH_THREAD_FUNC do_skype_thread(switch_thread_t * thread, void *obj)
{
- struct skypiax_interface *p;
+ private_t *tech_pvt = obj;
struct SkypiaxHandles *SkypiaxHandles;
char buf[512];
Display *disp = NULL;
Window root = -1;
Window win = -1;
- p = obj;
DEBUGA_PBX("ENTERING FUNC\n", SKYPIAX_P_LOG);
- if (pipe(p->SkypiaxHandles.fdesc)) {
- fcntl(p->SkypiaxHandles.fdesc[0], F_SETFL, O_NONBLOCK);
- fcntl(p->SkypiaxHandles.fdesc[1], F_SETFL, O_NONBLOCK);
+ if (pipe(tech_pvt->SkypiaxHandles.fdesc)) {
+ fcntl(tech_pvt->SkypiaxHandles.fdesc[0], F_SETFL, O_NONBLOCK);
+ fcntl(tech_pvt->SkypiaxHandles.fdesc[1], F_SETFL, O_NONBLOCK);
}
- SkypiaxHandles = &p->SkypiaxHandles;
- disp = XOpenDisplay(p->X11_display);
+ SkypiaxHandles = &tech_pvt->SkypiaxHandles;
+ disp = XOpenDisplay(tech_pvt->X11_display);
if (!disp) {
ERRORA("Cannot open X Display '%s', exiting skype thread\n", SKYPIAX_P_LOG,
- p->X11_display);
+ tech_pvt->X11_display);
return NULL;
} else {
- DEBUGA_SKYPE("X Display '%s' opened\n", SKYPIAX_P_LOG, p->X11_display);
+ DEBUGA_SKYPE("X Display '%s' opened\n", SKYPIAX_P_LOG, tech_pvt->X11_display);
}
int xfd;
@@ -978,7 +986,7 @@
}
#endif // WIN32
-int skypiax_skype_write(struct skypiax_interface *p, char *msg_to_skype)
+int skypiax_skype_write(private_t *tech_pvt, char *msg_to_skype)
{
#ifdef WIN32
static char acInputRow[1024];
@@ -1003,14 +1011,14 @@
oCopyData.cbData = strlen(acInputRow) + 1;
if (oCopyData.cbData != 1) {
if (SendMessage
- (p->SkypiaxHandles.win32_hGlobal_SkypeAPIWindowHandle, WM_COPYDATA,
- (WPARAM) p->SkypiaxHandles.win32_hInit_MainWindowHandle,
+ (tech_pvt->SkypiaxHandles.win32_hGlobal_SkypeAPIWindowHandle, WM_COPYDATA,
+ (WPARAM) tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle,
(LPARAM) & oCopyData) == FALSE) {
ERRORA
("Sending message failed - probably Skype crashed.\n\nPlease shutdown Skypiax (Asterisk), then restart Skype from the menu, then launch Skypiax and try again.\n",
SKYPIAX_P_LOG);
- p->skype = 0;
- p->skype_thread = NULL;
+ tech_pvt->skype = 0;
+ tech_pvt->skype_thread = NULL;
if (option_debug > 100) {
DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
}
@@ -1022,7 +1030,7 @@
if (option_debug > 100) {
DEBUGA_PBX("ENTERING FUNC\n", SKYPIAX_P_LOG);
}
- SkypiaxHandles = &p->SkypiaxHandles;
+ SkypiaxHandles = &tech_pvt->SkypiaxHandles;
if (!skypiax_skype_send_message(SkypiaxHandles, msg_to_skype)) {
ERRORA
@@ -1042,7 +1050,7 @@
}
-int skypiax_skype_read(struct skypiax_interface *p)
+int skypiax_skype_read(private_t *tech_pvt)
{
char read_from_pipe[4096];
@@ -1059,9 +1067,6 @@
fd_set fs;
struct timeval to;
#endif /* WIN32 */
- private_t *tech_pvt = NULL;
-
- tech_pvt = p->tech_pvt;
if (option_debug > 100) {
DEBUGA_PBX("ENTERING FUNC\n", SKYPIAX_P_LOG);
@@ -1074,7 +1079,7 @@
#ifdef WIN32
rt = 1;
#else /* WIN32 */
- fdselect = p->SkypiaxHandles.fdesc[0];
+ fdselect = tech_pvt->SkypiaxHandles.fdesc[0];
FD_ZERO(&fs);
FD_SET(fdselect, &fs);
to.tv_usec = 2000000; //500 msec
@@ -1083,13 +1088,13 @@
#endif /* WIN32 */
if (rt > 0) {
- if (p->SkypiaxHandles.fdesc[0]) {
+ if (tech_pvt->SkypiaxHandles.fdesc[0]) {
howmany = sizeof(read_from_pipe);
#ifdef WIN32
- switch_file_read(p->SkypiaxHandles.fdesc[0], read_from_pipe, &howmany);
+ switch_file_read(tech_pvt->SkypiaxHandles.fdesc[0], read_from_pipe, &howmany);
#else /* WIN32 */
howmany =
- read(p->SkypiaxHandles.fdesc[0], read_from_pipe, sizeof(read_from_pipe));
+ read(tech_pvt->SkypiaxHandles.fdesc[0], read_from_pipe, sizeof(read_from_pipe));
#endif /* WIN32 */
a = 0;
@@ -1099,8 +1104,8 @@
if (read_from_pipe[i] == '\0') {
- DEBUGA_SKYPE("read_skype: howmany=%d, i=%d, a=%d, |||%s||| \n", SKYPIAX_P_LOG,
- howmany, i, a, messaggio);
+ //DEBUGA_SKYPE("read_skype: howmany=%d, i=%d, a=%d, |||%s||| \n", SKYPIAX_P_LOG, howmany, i, a, messaggio);
+ DEBUGA_SKYPE("READING: |||%s||| \n", SKYPIAX_P_LOG, messaggio);
if (!strcasecmp(messaggio, "ERROR 68")) { /* not yet protocol specified,
just authorized */
@@ -1108,7 +1113,7 @@
("If I don't connect immediately, please give the Skype client authorization to be connected by Skypiax (and to not ask you again)\n",
SKYPIAX_P_LOG);
switch_sleep(1000000);
- skypiax_skype_write(p, "PROTOCOL 6");
+ skypiax_skype_write(tech_pvt, "PROTOCOL 6");
switch_sleep(10000);
return 0;
}
@@ -1116,19 +1121,19 @@
if (!strncasecmp(messaggio, "ERROR 92 CALL", 12)) {
ERRORA("Skype got ERROR: |||%s|||, the number we called was not recognized\n",
SKYPIAX_P_LOG, messaggio);
- p->skype_callflow = CALLFLOW_STATUS_FINISHED;
+ tech_pvt->skype_callflow = CALLFLOW_STATUS_FINISHED;
if (option_debug)
DEBUGA_SKYPE("skype_call now is DOWN\n", SKYPIAX_P_LOG);
- p->skype_call_id[0] = '\0';
+ tech_pvt->skype_call_id[0] = '\0';
- if (p->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
+ if (tech_pvt->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
if (option_debug > 100) {
DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
}
- p->interface_state = SKYPIAX_STATE_DOWN;
+ tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
return CALLFLOW_INCOMING_HANGUP;
} else {
- p->interface_state = SKYPIAX_STATE_DOWN;
+ tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
}
}
@@ -1144,36 +1149,36 @@
if (!strcasecmp(messaggio, "#333")) {
/* DEBUGA_SKYPE("Skype MSG: messaggio_2: %s, messaggio2[11]: %s\n", SKYPIAX_P_LOG,
* messaggio_2, &messaggio_2[11]); */
- memset(p->skype_friends, 0, 4096);
- strncpy(p->skype_friends, &messaggio_2[11], 4095);
+ memset(tech_pvt->skype_friends, 0, 4096);
+ strncpy(tech_pvt->skype_friends, &messaggio_2[11], 4095);
}
if (!strcasecmp(messaggio, "#222")) {
/* DEBUGA_SKYPE("Skype MSG: messaggio_2: %s, messaggio2[10]: %s\n", SKYPIAX_P_LOG,
* messaggio_2, &messaggio_2[10]); */
- memset(p->skype_fullname, 0, 512);
- strncpy(p->skype_fullname, &messaggio_2[10], 511);
+ memset(tech_pvt->skype_fullname, 0, 512);
+ strncpy(tech_pvt->skype_fullname, &messaggio_2[10], 511);
}
if (!strcasecmp(messaggio, "#765")) {
/* DEBUGA_SKYPE("Skype MSG: messaggio_2: %s, messaggio2[10]: %s\n", SKYPIAX_P_LOG,
* messaggio_2, &messaggio_2[10]); */
- memset(p->skype_displayname, 0, 512);
- strncpy(p->skype_displayname, &messaggio_2[10], 511);
+ memset(tech_pvt->skype_displayname, 0, 512);
+ strncpy(tech_pvt->skype_displayname, &messaggio_2[10], 511);
}
if (!strcasecmp(messaggio, "ERROR")) {
ERRORA("Skype got ERROR: |||%s|||\n", SKYPIAX_P_LOG, messaggio);
- p->skype_callflow = CALLFLOW_STATUS_FINISHED;
+ tech_pvt->skype_callflow = CALLFLOW_STATUS_FINISHED;
if (option_debug)
DEBUGA_SKYPE("skype_call now is DOWN\n", SKYPIAX_P_LOG);
- p->skype_call_id[0] = '\0';
+ tech_pvt->skype_call_id[0] = '\0';
- if (p->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
+ if (tech_pvt->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
if (option_debug > 100) {
DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
}
- p->interface_state = SKYPIAX_STATE_DOWN;
+ tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
return CALLFLOW_INCOMING_HANGUP;
} else {
- p->interface_state = SKYPIAX_STATE_DOWN;
+ tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
}
}
if (!strcasecmp(messaggio, "CURRENTUSERHANDLE")) {
@@ -1183,9 +1188,9 @@
strncpy(id, where, sizeof(id) - 1);
- if (!strcasecmp(id, p->skype_user)) {
- p->SkypiaxHandles.api_connected = 1;
- //DEBUGA_SKYPE ("Skype MSG: messaggio: %s, currentuserhandle: %s, cuh: %s, skype_user: %s!\n", SKYPIAX_P_LOG, messaggio, obj, id, p->skype_user);
+ if (!strcasecmp(id, tech_pvt->skype_user)) {
+ tech_pvt->SkypiaxHandles.api_connected = 1;
+ //DEBUGA_SKYPE ("Skype MSG: messaggio: %s, currentuserhandle: %s, cuh: %s, skype_user: %s!\n", SKYPIAX_P_LOG, messaggio, obj, id, tech_pvt->skype_user);
}
}
@@ -1207,7 +1212,7 @@
//FIXME: TODO: allow authorization based on config param
sprintf(msg_to_skype, "SET USER %s ISAUTHORIZED TRUE", id);
- skypiax_skype_write(p, msg_to_skype);
+ skypiax_skype_write(tech_pvt, msg_to_skype);
}
}
@@ -1236,7 +1241,7 @@
//FIXME: TODO: allow authorization based on config param
sprintf(msg_to_skype, "SET MESSAGE %s SEEN", id);
- skypiax_skype_write(p, msg_to_skype);
+ skypiax_skype_write(tech_pvt, msg_to_skype);
}
} else if (!strcasecmp(prop, "BODY")) {
char msg_to_skype[256];
@@ -1246,7 +1251,7 @@
//FIXME: TODO: on config param ???
sprintf(msg_to_skype, "SET MESSAGE %s SEEN", id);
- skypiax_skype_write(p, msg_to_skype);
+ skypiax_skype_write(tech_pvt, msg_to_skype);
}
}
@@ -1275,39 +1280,38 @@
SKYPIAX_P_LOG, messaggio, obj, id, prop, value, where ? where : "NULL");
if (!strcasecmp(prop, "PARTNER_HANDLE")) {
- strncpy(p->callid_number, value, sizeof(p->callid_number) - 1);
+ strncpy(tech_pvt->callid_number, value, sizeof(tech_pvt->callid_number) - 1);
WARNINGA
- ("the skype_call %s caller PARTNER_HANDLE (p->callid_number) is: %s\n",
- SKYPIAX_P_LOG, id, p->callid_number);
+ ("the skype_call %s caller PARTNER_HANDLE (tech_pvt->callid_number) is: %s\n",
+ SKYPIAX_P_LOG, id, tech_pvt->callid_number);
return CALLFLOW_INCOMING_RING;
}
if (!strcasecmp(prop, "PARTNER_DISPNAME")) {
- snprintf(p->callid_name, sizeof(p->callid_name) - 1, "%s%s%s", value,
+ snprintf(tech_pvt->callid_name, sizeof(tech_pvt->callid_name) - 1, "%s%s%s", value,
where ? " " : "", where ? where : "");
WARNINGA
- ("the skype_call %s caller PARTNER_DISPNAME (p->callid_name) is: %s\n",
- SKYPIAX_P_LOG, id, p->callid_name);
+ ("the skype_call %s caller PARTNER_DISPNAME (tech_pvt->callid_name) is: %s\n",
+ SKYPIAX_P_LOG, id, tech_pvt->callid_name);
}
if (!strcasecmp(prop, "CONF_ID") && !strcasecmp(value, "0")) {
DEBUGA_SKYPE("the skype_call %s is NOT a conference call\n", SKYPIAX_P_LOG,
id);
- if (p->interface_state == SKYPIAX_STATE_DOWN)
- p->interface_state = SKYPIAX_STATE_PRERING;
+ if (tech_pvt->interface_state == SKYPIAX_STATE_DOWN)
+ tech_pvt->interface_state = SKYPIAX_STATE_PRERING;
}
if (!strcasecmp(prop, "CONF_ID") && strcasecmp(value, "0")) {
DEBUGA_SKYPE("the skype_call %s is a conference call\n", SKYPIAX_P_LOG, id);
- if (p->interface_state == SKYPIAX_STATE_DOWN)
- p->interface_state = SKYPIAX_STATE_PRERING;
+ if (tech_pvt->interface_state == SKYPIAX_STATE_DOWN)
+ tech_pvt->interface_state = SKYPIAX_STATE_PRERING;
}
if (!strcasecmp(prop, "DTMF")) {
switch_core_session_t *session = NULL;
- private_t *tech_pvt = NULL;
switch_channel_t *channel = NULL;
DEBUGA_SKYPE("Call %s received a DTMF: %s\n", SKYPIAX_P_LOG, id, value);
- tech_pvt = p->tech_pvt;
+ //tech_pvt = p;
session = tech_pvt->session;
channel = switch_core_session_get_channel(session);
@@ -1329,8 +1333,8 @@
SKYPIAX_P_LOG, id);
}
if (!strcasecmp(prop, "DURATION") && (!strcasecmp(value, "1"))) {
- if (strcasecmp(id, p->skype_call_id)) {
- strncpy(p->skype_call_id, id, sizeof(p->skype_call_id) - 1);
+ if (strcasecmp(id, tech_pvt->skype_call_id)) {
+ strncpy(tech_pvt->skype_call_id, id, sizeof(tech_pvt->skype_call_id) - 1);
if (option_debug > 1)
DEBUGA_SKYPE
("We called a Skype contact and he answered us on skype_call: %s.\n",
@@ -1342,34 +1346,34 @@
if (!strcasecmp(value, "RINGING")) {
char msg_to_skype[1024];
- if (p->interface_state != SKYPIAX_STATE_DIALING) {
+ if (tech_pvt->interface_state != SKYPIAX_STATE_DIALING) {
/* we are not calling out */
- if (!strlen(p->skype_call_id)) { //FIXME
+ if (!strlen(tech_pvt->skype_call_id)) { //FIXME
/* we are not inside an active call */
- p->skype_callflow = CALLFLOW_STATUS_RINGING;
- p->interface_state = SKYPIAX_STATE_RING;
+ tech_pvt->skype_callflow = CALLFLOW_STATUS_RINGING;
+ tech_pvt->interface_state = SKYPIAX_STATE_RING;
/* no owner, no active call, let's answer */
- skypiax_skype_write(p, "SET AGC OFF");
+ skypiax_skype_write(tech_pvt, "SET AGC OFF");
switch_sleep(10000);
- skypiax_skype_write(p, "SET AEC OFF");
+ skypiax_skype_write(tech_pvt, "SET AEC OFF");
switch_sleep(10000);
sprintf(msg_to_skype, "GET CALL %s PARTNER_DISPNAME", id);
- skypiax_skype_write(p, msg_to_skype);
+ skypiax_skype_write(tech_pvt, msg_to_skype);
switch_sleep(10000);
sprintf(msg_to_skype, "GET CALL %s PARTNER_HANDLE", id);
- skypiax_skype_write(p, msg_to_skype);
+ skypiax_skype_write(tech_pvt, msg_to_skype);
switch_sleep(10000);
sprintf(msg_to_skype, "ALTER CALL %s ANSWER", id);
- skypiax_skype_write(p, msg_to_skype);
+ skypiax_skype_write(tech_pvt, msg_to_skype);
if (option_debug)
DEBUGA_SKYPE("We answered a Skype RING on skype_call %s\n",
SKYPIAX_P_LOG, id);
- strncpy(p->skype_call_id, id, sizeof(p->skype_call_id) - 1);
+ strncpy(tech_pvt->skype_call_id, id, sizeof(tech_pvt->skype_call_id) - 1);
} else {
/* we're owned, we're in a call, let's refuse */
sprintf(msg_to_skype, "ALTER CALL %s END HANGUP", id);
- skypiax_skype_write(p, msg_to_skype);
+ skypiax_skype_write(tech_pvt, msg_to_skype);
switch_sleep(10000);
DEBUGA_SKYPE
("We have NOT answered a Skype RING on skype_call %s, because we are already in a skypiax call\n",
@@ -1378,79 +1382,79 @@
}
} else {
/* we are calling out */
- p->skype_callflow = CALLFLOW_STATUS_RINGING;
- p->interface_state = SKYPIAX_STATE_RINGING;
- //FIXME ast_queue_control(p->owner, SKYPIAX_CONTROL_RINGING);
- strncpy(p->skype_call_id, id, sizeof(p->skype_call_id) - 1);
+ tech_pvt->skype_callflow = CALLFLOW_STATUS_RINGING;
+ tech_pvt->interface_state = SKYPIAX_STATE_RINGING;
+ //FIXME ast_queue_control(tech_pvt->owner, SKYPIAX_CONTROL_RINGING);
+ strncpy(tech_pvt->skype_call_id, id, sizeof(tech_pvt->skype_call_id) - 1);
DEBUGA_SKYPE("Our remote party in skype_call %s is RINGING\n",
SKYPIAX_P_LOG, id);
}
} else if (!strcasecmp(value, "EARLYMEDIA")) {
- p->skype_callflow = CALLFLOW_STATUS_EARLYMEDIA;
- p->interface_state = SKYPIAX_STATE_DIALING;
- //FIXME ast_queue_control(p->owner, SKYPIAX_CONTROL_RINGING);
+ tech_pvt->skype_callflow = CALLFLOW_STATUS_EARLYMEDIA;
+ tech_pvt->interface_state = SKYPIAX_STATE_DIALING;
+ //FIXME ast_queue_control(tech_pvt->owner, SKYPIAX_CONTROL_RINGING);
DEBUGA_SKYPE("Our remote party in skype_call %s is EARLYMEDIA\n",
SKYPIAX_P_LOG, id);
} else if (!strcasecmp(value, "MISSED")) {
DEBUGA_SKYPE("We missed skype_call %s\n", SKYPIAX_P_LOG, id);
} else if (!strcasecmp(value, "FINISHED")) {
- //p->skype_callflow = CALLFLOW_STATUS_FINISHED;
+ //tech_pvt->skype_callflow = CALLFLOW_STATUS_FINISHED;
if (option_debug)
DEBUGA_SKYPE("skype_call %s now is DOWN\n", SKYPIAX_P_LOG, id);
- p->skype_call_id[0] = '\0';
+ tech_pvt->skype_call_id[0] = '\0';
- if (p->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
+ if (tech_pvt->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
if (option_debug > 100) {
DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
}
- //p->interface_state = SKYPIAX_STATE_DOWN;
+ //tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
return CALLFLOW_INCOMING_HANGUP;
} else {
- p->interface_state = SKYPIAX_STATE_DOWN;
+ tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
}
} else if (!strcasecmp(value, "CANCELLED")) {
- p->skype_callflow = CALLFLOW_STATUS_CANCELLED;
+ tech_pvt->skype_callflow = CALLFLOW_STATUS_CANCELLED;
if (option_debug)
DEBUGA_SKYPE
("we tried to call Skype on skype_call %s and Skype has now CANCELLED\n",
SKYPIAX_P_LOG, id);
- p->skype_call_id[0] = '\0';
+ tech_pvt->skype_call_id[0] = '\0';
- if (p->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
+ if (tech_pvt->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
if (option_debug > 100) {
DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
}
- p->interface_state = SKYPIAX_STATE_DOWN;
+ tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
return CALLFLOW_INCOMING_HANGUP;
} else {
- p->interface_state = SKYPIAX_STATE_DOWN;
+ tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
}
} else if (!strcasecmp(value, "FAILED")) {
- p->skype_callflow = CALLFLOW_STATUS_FAILED;
+ tech_pvt->skype_callflow = CALLFLOW_STATUS_FAILED;
if (option_debug)
DEBUGA_SKYPE
("we tried to call Skype on skype_call %s and Skype has now FAILED\n",
SKYPIAX_P_LOG, id);
- p->skype_call_id[0] = '\0';
- strncpy(p->skype_call_id, id, sizeof(p->skype_call_id) - 1);
- p->interface_state = SKYPIAX_STATE_DOWN;
+ tech_pvt->skype_call_id[0] = '\0';
+ strncpy(tech_pvt->skype_call_id, id, sizeof(tech_pvt->skype_call_id) - 1);
+ tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
if (option_debug > 100) {
DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
}
return CALLFLOW_INCOMING_HANGUP;
} else if (!strcasecmp(value, "REFUSED")) {
- if (!strcasecmp(id, p->skype_call_id)) {
+ if (!strcasecmp(id, tech_pvt->skype_call_id)) {
/* this is the id of the call we are in, probably we generated it */
- p->skype_callflow = CALLFLOW_STATUS_REFUSED;
+ tech_pvt->skype_callflow = CALLFLOW_STATUS_REFUSED;
if (option_debug)
DEBUGA_SKYPE
("we tried to call Skype on skype_call %s and Skype has now REFUSED\n",
SKYPIAX_P_LOG, id);
- strncpy(p->skype_call_id, id, sizeof(p->skype_call_id) - 1);
- p->interface_state = SKYPIAX_STATE_DOWN;
- p->skype_call_id[0] = '\0';
+ strncpy(tech_pvt->skype_call_id, id, sizeof(tech_pvt->skype_call_id) - 1);
+ tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
+ tech_pvt->skype_call_id[0] = '\0';
if (option_debug > 100) {
DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
}
@@ -1461,19 +1465,19 @@
}
} else if (!strcasecmp(value, "ROUTING")) {
- p->skype_callflow = CALLFLOW_STATUS_ROUTING;
- p->interface_state = SKYPIAX_STATE_DIALING;
- strncpy(p->skype_call_id, id, sizeof(p->skype_call_id) - 1);
+ tech_pvt->skype_callflow = CALLFLOW_STATUS_ROUTING;
+ tech_pvt->interface_state = SKYPIAX_STATE_DIALING;
+ strncpy(tech_pvt->skype_call_id, id, sizeof(tech_pvt->skype_call_id) - 1);
DEBUGA_SKYPE("skype_call: %s is now ROUTING\n", SKYPIAX_P_LOG, id);
} else if (!strcasecmp(value, "UNPLACED")) {
- p->skype_callflow = CALLFLOW_STATUS_UNPLACED;
- p->interface_state = SKYPIAX_STATE_DIALING;
- strncpy(p->skype_call_id, id, sizeof(p->skype_call_id) - 1);
+ tech_pvt->skype_callflow = CALLFLOW_STATUS_UNPLACED;
+ tech_pvt->interface_state = SKYPIAX_STATE_DIALING;
+ strncpy(tech_pvt->skype_call_id, id, sizeof(tech_pvt->skype_call_id) - 1);
DEBUGA_SKYPE("skype_call: %s is now UNPLACED\n", SKYPIAX_P_LOG, id);
} else if (!strcasecmp(value, "INPROGRESS")) {
- p->skype_callflow = CALLFLOW_STATUS_INPROGRESS;
- strncpy(p->skype_call_id, id, sizeof(p->skype_call_id) - 1);
- p->interface_state = SKYPIAX_STATE_UP;
+ tech_pvt->skype_callflow = CALLFLOW_STATUS_INPROGRESS;
+ strncpy(tech_pvt->skype_call_id, id, sizeof(tech_pvt->skype_call_id) - 1);
+ tech_pvt->interface_state = SKYPIAX_STATE_UP;
if (option_debug > 1)
DEBUGA_SKYPE("skype_call: %s is now active\n", SKYPIAX_P_LOG, id);
@@ -1488,36 +1492,36 @@
switch_threadattr_create(&thd_attr, skypiax_module_pool);
switch_threadattr_detach_set(thd_attr, 1);
switch_threadattr_stacksize_set(thd_attr, SWITCH_THREAD_STACKSIZE);
- switch_thread_create(&p->tcp_srv_thread, thd_attr,
- skypiax_do_tcp_srv_thread, p, skypiax_module_pool);
+ switch_thread_create(&tech_pvt->tcp_srv_thread, thd_attr,
+ skypiax_do_tcp_srv_thread, tech_pvt, skypiax_module_pool);
DEBUGA_SKYPE("started tcp_srv_thread thread.\n", SKYPIAX_P_LOG);
switch_threadattr_create(&thd_attr, skypiax_module_pool);
switch_threadattr_detach_set(thd_attr, 1);
switch_threadattr_stacksize_set(thd_attr, SWITCH_THREAD_STACKSIZE);
- switch_thread_create(&p->tcp_cli_thread, thd_attr,
- skypiax_do_tcp_cli_thread, p, skypiax_module_pool);
+ switch_thread_create(&tech_pvt->tcp_cli_thread, thd_attr,
+ skypiax_do_tcp_cli_thread, tech_pvt, skypiax_module_pool);
DEBUGA_SKYPE("started tcp_cli_thread thread.\n", SKYPIAX_P_LOG);
switch_sleep(100000);
sprintf(msg_to_skype, "ALTER CALL %s SET_OUTPUT PORT=\"%d\"", id,
- p->tcp_srv_port);
- skypiax_skype_write(p, msg_to_skype);
+ tech_pvt->tcp_srv_port);
+ skypiax_skype_write(tech_pvt, msg_to_skype);
switch_sleep(100000);
sprintf(msg_to_skype, "ALTER CALL %s SET_INPUT PORT=\"%d\"", id,
- p->tcp_cli_port);
- skypiax_skype_write(p, msg_to_skype);
+ tech_pvt->tcp_cli_port);
+ skypiax_skype_write(tech_pvt, msg_to_skype);
switch_sleep(100000);
}
- p->skype_callflow = SKYPIAX_STATE_UP;
+ tech_pvt->skype_callflow = SKYPIAX_STATE_UP;
//FIXME switch_core_session_t **new_session;
//FIXME *new_session=switch_loadable_module_create_interface(skypiax_endpoint_interface, pool);
- if (!p->tech_pvt || !tech_pvt->session) { //FIXME FIXME FIXME
+ if (!tech_pvt->session) { //FIXME FIXME FIXME
switch_core_session_t *session = NULL;
- private_t *tech_pvt = NULL;
+ //private_t *tech_pvt = NULL;
switch_channel_t *channel = NULL;
NOTICA("New Inbound Channel!\n", SKYPIAX_P_LOG);
@@ -1526,27 +1530,28 @@
switch_core_session_request(skypiax_endpoint_interface,
NULL)) != 0) {
switch_core_session_add_stream(session, NULL);
- if ((tech_pvt =
- (private_t *) switch_core_session_alloc(session,
- sizeof(private_t))) !=
- 0) {
channel = switch_core_session_get_channel(session);
- skypiax_tech_init(tech_pvt, session, p);
+ skypiax_tech_init(tech_pvt, session);
+#if 0
+ if ((tech_pvt = (private_t *) switch_core_session_alloc(session, sizeof(private_t))) != 0) {
+ channel = switch_core_session_get_channel(session);
+ skypiax_tech_init(tech_pvt, session);
} else {
ERRORA("Hey where is my memory pool?\n", SKYPIAX_P_LOG);
switch_core_session_destroy(&session);
break;
}
+#endif
if ((tech_pvt->caller_profile =
switch_caller_profile_new(switch_core_session_get_pool(session),
- "skypiax", "XML", p->callid_name,
- p->callid_number, NULL, "calling_ani",
+ "skypiax", "XML", tech_pvt->callid_name,
+ tech_pvt->callid_number, NULL, "calling_ani",
NULL, NULL, "mod_skypiax", "public",
"5000")) != 0) {
char name[128];
- //switch_snprintf(name, sizeof(name), "skypiax/%s/%s", p->name, tech_pvt->caller_profile->destination_number);
- switch_snprintf(name, sizeof(name), "skypiax/%s", p->name);
+ //switch_snprintf(name, sizeof(name), "skypiax/%s/%s", tech_pvt->name, tech_pvt->caller_profile->destination_number);
+ switch_snprintf(name, sizeof(name), "skypiax/%s", tech_pvt->name);
switch_channel_set_name(channel, name);
switch_channel_set_caller_profile(channel,
tech_pvt->caller_profile);
@@ -1562,14 +1567,8 @@
switch_channel_mark_answered(channel);
} else {
switch_core_session_t *session = NULL;
- private_t *tech_pvt = NULL;
switch_channel_t *channel = NULL;
- if (p->tech_pvt) {
- tech_pvt = p->tech_pvt;
- } else {
- ERRORA("No p->tech_pvt???\n", SKYPIAX_P_LOG);
- }
if (tech_pvt->session) {
session = tech_pvt->session;
} else {
@@ -1612,7 +1611,7 @@
return 0;
}
-int skypiax_skype_senddigit(struct skypiax_interface *p, char digit)
+int skypiax_skype_senddigit(private_t *tech_pvt, char digit)
{
char msg_to_skype[1024];
if (option_debug > 10) {
@@ -1621,9 +1620,9 @@
NOTICA("DIGIT received: %c\n", SKYPIAX_P_LOG, digit);
- sprintf(msg_to_skype, "SET CALL %s DTMF %c", p->skype_call_id, digit);
+ sprintf(msg_to_skype, "SET CALL %s DTMF %c", tech_pvt->skype_call_id, digit);
- skypiax_skype_write(p, msg_to_skype);
+ skypiax_skype_write(tech_pvt, msg_to_skype);
if (option_debug > 10) {
DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
@@ -1631,15 +1630,15 @@
return 0;
}
-int skypiax_skype_call(struct skypiax_interface *p, char *idest, int timeout,
+int skypiax_skype_call(private_t *tech_pvt, char *idest, int timeout,
switch_core_session_t * session)
{
char *rdest;
char msg_to_skype[1024];
- private_t *tech_pvt;
+ //private_t *tech_pvt;
switch_caller_profile_t *caller_profile;
- tech_pvt = p->tech_pvt;
+ //tech_pvt = p;
if (option_debug > 10) {
DEBUGA_PBX("ENTERING FUNC\n", SKYPIAX_P_LOG);
@@ -1652,13 +1651,13 @@
if (option_debug)
DEBUGA_SKYPE("Calling Skype, rdest is: %s\n", SKYPIAX_P_LOG, rdest);
NOTICA("Calling Skype, rdest is: %s\n", SKYPIAX_P_LOG, rdest);
- skypiax_skype_write(p, "SET AGC OFF");
+ skypiax_skype_write(tech_pvt, "SET AGC OFF");
switch_sleep(10000);
- skypiax_skype_write(p, "SET AEC OFF");
+ skypiax_skype_write(tech_pvt, "SET AEC OFF");
switch_sleep(10000);
sprintf(msg_to_skype, "CALL %s", rdest);
- if (skypiax_skype_write(p, msg_to_skype) < 0) {
+ if (skypiax_skype_write(tech_pvt, msg_to_skype) < 0) {
ERRORA("failed to communicate with Skype client, now exit\n", SKYPIAX_P_LOG);
if (option_debug > 10) {
@@ -1670,6 +1669,6 @@
caller_profile = tech_pvt->caller_profile;
caller_profile->destination_number = rdest;
- //FIXME ast_queue_control(p->owner, SKYPIAX_CONTROL_RINGING);
+ //FIXME ast_queue_control(tech_pvt->owner, SKYPIAX_CONTROL_RINGING);
return 0;
}
1
0
[commit] r11118 - freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax
by FreeSWITCH SVN 11 Jan '09
by FreeSWITCH SVN 11 Jan '09
11 Jan '09
Author: gmaruzz
Date: Sun Jan 11 03:08:36 2009
New Revision: 11118
Log:
skypiax: cosmetics
Modified:
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c Sun Jan 11 03:08:36 2009
@@ -906,7 +906,7 @@
skypiax_skypeaudio_init(&globals.SKYPIAX_INTERFACES[interface_id]);
- while (globals.SKYPIAX_INTERFACES[interface_id].AsteriskHandlesAst.
+ while (globals.SKYPIAX_INTERFACES[interface_id].SkypiaxHandles.
api_connected == 0) {
switch_sleep(1000);
}
@@ -978,30 +978,30 @@
if (globals.SKYPIAX_INTERFACES[interface_id].skypiax_do_controldev_thread_thread) {
#ifdef WIN32
- switch_file_write(p->AsteriskHandlesAst.fdesc[1], "sciutati", &howmany); // let's the controldev_thread die
+ switch_file_write(p->SkypiaxHandles.fdesc[1], "sciutati", &howmany); // let's the controldev_thread die
#else /* WIN32 */
- howmany = write(p->AsteriskHandlesAst.fdesc[1], "sciutati", howmany);
+ howmany = write(p->SkypiaxHandles.fdesc[1], "sciutati", howmany);
#endif /* WIN32 */
}
if (globals.SKYPIAX_INTERFACES[interface_id].skypiax_do_skype_thread_thread) {
#ifdef WIN32
- if (SendMessage(p->AsteriskHandlesAst.win32_hInit_MainWindowHandle, WM_DESTROY, 0, 0) == FALSE) { // let's the do_skype_thread die
+ if (SendMessage(p->SkypiaxHandles.win32_hInit_MainWindowHandle, WM_DESTROY, 0, 0) == FALSE) { // let's the do_skype_thread die
ERRORA("WHY FALSE HERE? %d\n", SKYPIAX_P_LOG, GetLastError());
}
#else
XEvent e;
Atom atom1 =
- XInternAtom(p->AsteriskHandlesAst.disp, "SKYPECONTROLAPI_MESSAGE_BEGIN", False);
+ XInternAtom(p->SkypiaxHandles.disp, "SKYPECONTROLAPI_MESSAGE_BEGIN", False);
memset(&e, 0, sizeof(e));
e.xclient.type = ClientMessage;
e.xclient.message_type = atom1; /* leading message */
- e.xclient.display = p->AsteriskHandlesAst.disp;
- e.xclient.window = p->AsteriskHandlesAst.skype_win;
+ e.xclient.display = p->SkypiaxHandles.disp;
+ e.xclient.window = p->SkypiaxHandles.skype_win;
e.xclient.format = 8;
- XSendEvent(p->AsteriskHandlesAst.disp, p->AsteriskHandlesAst.win, False, 0, &e);
- XSync(p->AsteriskHandlesAst.disp, False);
+ XSendEvent(p->SkypiaxHandles.disp, p->SkypiaxHandles.win, False, 0, &e);
+ XSync(p->SkypiaxHandles.disp, False);
#endif
}
while (x) {
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax.h Sun Jan 11 03:08:36 2009
@@ -132,7 +132,7 @@
#define SKYPIAX_MAX_INTERFACES 64
#ifndef WIN32
-struct AsteriskHandles {
+struct SkypiaxHandles {
Window skype_win;
Display *disp;
Window win;
@@ -141,7 +141,7 @@
};
#else //WIN32
-struct AsteriskHandles {
+struct SkypiaxHandles {
HWND win32_hInit_MainWindowHandle;
HWND win32_hGlobal_SkypeAPIWindowHandle;
HINSTANCE win32_hInit_ProcessHandle;
@@ -171,7 +171,7 @@
int tcp_cli_port;
int tcp_srv_port;
#endif
- struct AsteriskHandles AsteriskHandlesAst;
+ struct SkypiaxHandles SkypiaxHandles;
int interface_state; /*!< \brief 'state' of the interface (channel) */
char language[80]; /*!< \brief default Asterisk dialplan language for this interface */
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c Sun Jan 11 03:08:36 2009
@@ -567,11 +567,11 @@
break;
case WM_DESTROY:
NOTICA("got DESTROY\n", SKYPIAX_P_LOG);
- p->AsteriskHandlesAst.win32_hInit_MainWindowHandle = NULL;
+ p->SkypiaxHandles.win32_hInit_MainWindowHandle = NULL;
PostQuitMessage(0);
break;
case WM_COPYDATA:
- if (p->AsteriskHandlesAst.win32_hGlobal_SkypeAPIWindowHandle == (HWND) uiParam) {
+ if (p->SkypiaxHandles.win32_hGlobal_SkypeAPIWindowHandle == (HWND) uiParam) {
unsigned int howmany;
char msg_from_skype[2048];
@@ -582,21 +582,21 @@
sizeof(msg_from_skype) - 2);
howmany = strlen(msg_from_skype) + 1;
- switch_file_write(p->AsteriskHandlesAst.fdesc[1], msg_from_skype, &howmany);
+ switch_file_write(p->SkypiaxHandles.fdesc[1], msg_from_skype, &howmany);
//NOTICA("From Skype API: %s\n", SKYPIAX_P_LOG, (const char *) poCopyData->lpData);
lReturnCode = 1;
}
break;
default:
- if (p && p->AsteriskHandlesAst.win32_uiGlobal_MsgID_SkypeControlAPIAttach) {
- if (uiMessage == p->AsteriskHandlesAst.win32_uiGlobal_MsgID_SkypeControlAPIAttach) {
+ if (p && p->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach) {
+ if (uiMessage == p->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach) {
switch (ulParam) {
case SKYPECONTROLAPI_ATTACH_SUCCESS:
- if (!p->AsteriskHandlesAst.api_connected) {
+ if (!p->SkypiaxHandles.api_connected) {
NOTICA("\n\n\tConnected to Skype API!\n", SKYPIAX_P_LOG);
- p->AsteriskHandlesAst.win32_hGlobal_SkypeAPIWindowHandle = (HWND) uiParam;
- p->AsteriskHandlesAst.win32_hGlobal_SkypeAPIWindowHandle =
- p->AsteriskHandlesAst.win32_hGlobal_SkypeAPIWindowHandle;
+ p->SkypiaxHandles.win32_hGlobal_SkypeAPIWindowHandle = (HWND) uiParam;
+ p->SkypiaxHandles.win32_hGlobal_SkypeAPIWindowHandle =
+ p->SkypiaxHandles.win32_hGlobal_SkypeAPIWindowHandle;
}
break;
case SKYPECONTROLAPI_ATTACH_PENDING_AUTHORIZATION:
@@ -604,11 +604,11 @@
("\n\n\tIf I do not (almost) immediately connect to Skype API,\n\tplease give the Skype client authorization to be connected \n\tby Asterisk and to not ask you again.\n\n",
SKYPIAX_P_LOG);
switch_sleep(5000);
- if (!p->AsteriskHandlesAst.api_connected) {
+ if (!p->SkypiaxHandles.api_connected) {
SendMessage(HWND_BROADCAST,
- p->AsteriskHandlesAst.
+ p->SkypiaxHandles.
win32_uiGlobal_MsgID_SkypeControlAPIDiscover,
- (WPARAM) p->AsteriskHandlesAst.win32_hInit_MainWindowHandle, 0);
+ (WPARAM) p->SkypiaxHandles.win32_hInit_MainWindowHandle, 0);
}
break;
case SKYPECONTROLAPI_ATTACH_REFUSED:
@@ -620,11 +620,11 @@
case SKYPECONTROLAPI_ATTACH_API_AVAILABLE:
DEBUGA_SKYPE("Skype API available\n", SKYPIAX_P_LOG);
switch_sleep(5000);
- if (!p->AsteriskHandlesAst.api_connected) {
+ if (!p->SkypiaxHandles.api_connected) {
SendMessage(HWND_BROADCAST,
- p->AsteriskHandlesAst.
+ p->SkypiaxHandles.
win32_uiGlobal_MsgID_SkypeControlAPIDiscover,
- (WPARAM) p->AsteriskHandlesAst.win32_hInit_MainWindowHandle, 0);
+ (WPARAM) p->SkypiaxHandles.win32_hInit_MainWindowHandle, 0);
}
break;
default:
@@ -651,26 +651,26 @@
fReturnStatus = 0;
lUUIDResult = UuidCreate(&oUUID);
- p->AsteriskHandlesAst.win32_hInit_ProcessHandle =
+ p->SkypiaxHandles.win32_hInit_ProcessHandle =
(HINSTANCE) OpenProcess(PROCESS_DUP_HANDLE, FALSE, GetCurrentProcessId());
- if (p->AsteriskHandlesAst.win32_hInit_ProcessHandle != NULL
+ if (p->SkypiaxHandles.win32_hInit_ProcessHandle != NULL
&& (lUUIDResult == RPC_S_OK || lUUIDResult == RPC_S_UUID_LOCAL_ONLY)) {
if (UuidToString(&oUUID, &paucUUIDString) == RPC_S_OK) {
WNDCLASS oWindowClass;
- strcpy(p->AsteriskHandlesAst.win32_acInit_WindowClassName, "Skype-API-Skypiax-");
- strcat(p->AsteriskHandlesAst.win32_acInit_WindowClassName, (char *) paucUUIDString);
+ strcpy(p->SkypiaxHandles.win32_acInit_WindowClassName, "Skype-API-Skypiax-");
+ strcat(p->SkypiaxHandles.win32_acInit_WindowClassName, (char *) paucUUIDString);
oWindowClass.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
oWindowClass.lpfnWndProc = (WNDPROC) & skypiax_skype_present;
oWindowClass.cbClsExtra = 0;
oWindowClass.cbWndExtra = 0;
- oWindowClass.hInstance = p->AsteriskHandlesAst.win32_hInit_ProcessHandle;
+ oWindowClass.hInstance = p->SkypiaxHandles.win32_hInit_ProcessHandle;
oWindowClass.hIcon = NULL;
oWindowClass.hCursor = NULL;
oWindowClass.hbrBackground = NULL;
oWindowClass.lpszMenuName = NULL;
- oWindowClass.lpszClassName = p->AsteriskHandlesAst.win32_acInit_WindowClassName;
+ oWindowClass.lpszClassName = p->SkypiaxHandles.win32_acInit_WindowClassName;
if (RegisterClass(&oWindowClass) != 0)
fReturnStatus = 1;
@@ -679,34 +679,34 @@
}
}
if (fReturnStatus == 0)
- CloseHandle(p->AsteriskHandlesAst.win32_hInit_ProcessHandle),
- p->AsteriskHandlesAst.win32_hInit_ProcessHandle = NULL;
+ CloseHandle(p->SkypiaxHandles.win32_hInit_ProcessHandle),
+ p->SkypiaxHandles.win32_hInit_ProcessHandle = NULL;
return (fReturnStatus);
}
void win32_DeInitialize_DestroyWindowClass(struct skypiax_interface *p)
{
- UnregisterClass(p->AsteriskHandlesAst.win32_acInit_WindowClassName,
- p->AsteriskHandlesAst.win32_hInit_ProcessHandle);
- CloseHandle(p->AsteriskHandlesAst.win32_hInit_ProcessHandle),
- p->AsteriskHandlesAst.win32_hInit_ProcessHandle = NULL;
+ UnregisterClass(p->SkypiaxHandles.win32_acInit_WindowClassName,
+ p->SkypiaxHandles.win32_hInit_ProcessHandle);
+ CloseHandle(p->SkypiaxHandles.win32_hInit_ProcessHandle),
+ p->SkypiaxHandles.win32_hInit_ProcessHandle = NULL;
}
int win32_Initialize_CreateMainWindow(struct skypiax_interface *p)
{
- p->AsteriskHandlesAst.win32_hInit_MainWindowHandle =
+ p->SkypiaxHandles.win32_hInit_MainWindowHandle =
CreateWindowEx(WS_EX_APPWINDOW | WS_EX_WINDOWEDGE,
- p->AsteriskHandlesAst.win32_acInit_WindowClassName, "",
+ p->SkypiaxHandles.win32_acInit_WindowClassName, "",
WS_BORDER | WS_SYSMENU | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT,
- 128, 128, NULL, 0, p->AsteriskHandlesAst.win32_hInit_ProcessHandle, p);
- return (p->AsteriskHandlesAst.win32_hInit_MainWindowHandle != NULL ? 1 : 0);
+ 128, 128, NULL, 0, p->SkypiaxHandles.win32_hInit_ProcessHandle, p);
+ return (p->SkypiaxHandles.win32_hInit_MainWindowHandle != NULL ? 1 : 0);
}
void win32_DeInitialize_DestroyMainWindow(struct skypiax_interface *p)
{
- if (p->AsteriskHandlesAst.win32_hInit_MainWindowHandle != NULL)
- DestroyWindow(p->AsteriskHandlesAst.win32_hInit_MainWindowHandle),
- p->AsteriskHandlesAst.win32_hInit_MainWindowHandle = NULL;
+ if (p->SkypiaxHandles.win32_hInit_MainWindowHandle != NULL)
+ DestroyWindow(p->SkypiaxHandles.win32_hInit_MainWindowHandle),
+ p->SkypiaxHandles.win32_hInit_MainWindowHandle = NULL;
}
DWORD win32_dwThreadId;
@@ -725,25 +725,25 @@
struct skypiax_interface *p;
p = obj;
- switch_file_pipe_create(&p->AsteriskHandlesAst.fdesc[0],
- &p->AsteriskHandlesAst.fdesc[1], skypiax_module_pool);
- p->AsteriskHandlesAst.win32_uiGlobal_MsgID_SkypeControlAPIAttach =
+ switch_file_pipe_create(&p->SkypiaxHandles.fdesc[0],
+ &p->SkypiaxHandles.fdesc[1], skypiax_module_pool);
+ p->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach =
RegisterWindowMessage("SkypeControlAPIAttach");
- p->AsteriskHandlesAst.win32_uiGlobal_MsgID_SkypeControlAPIDiscover =
+ p->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIDiscover =
RegisterWindowMessage("SkypeControlAPIDiscover");
switch_sleep(2000000);
- if (p->AsteriskHandlesAst.win32_uiGlobal_MsgID_SkypeControlAPIAttach != 0
- && p->AsteriskHandlesAst.win32_uiGlobal_MsgID_SkypeControlAPIDiscover != 0) {
+ if (p->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach != 0
+ && p->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIDiscover != 0) {
if (win32_Initialize_CreateWindowClass(p)) {
if (win32_Initialize_CreateMainWindow(p)) {
if (SendMessage
(HWND_BROADCAST,
- p->AsteriskHandlesAst.win32_uiGlobal_MsgID_SkypeControlAPIDiscover,
- (WPARAM) p->AsteriskHandlesAst.win32_hInit_MainWindowHandle, 0) != 0) {
- p->AsteriskHandlesAst.win32_hInit_MainWindowHandle =
- p->AsteriskHandlesAst.win32_hInit_MainWindowHandle;
+ p->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIDiscover,
+ (WPARAM) p->SkypiaxHandles.win32_hInit_MainWindowHandle, 0) != 0) {
+ p->SkypiaxHandles.win32_hInit_MainWindowHandle =
+ p->SkypiaxHandles.win32_hInit_MainWindowHandle;
while (1) {
MSG oMessage;
if (!running)
@@ -766,7 +766,7 @@
}
#else /* NOT WIN32 */
-int skypiax_skype_send_message(struct AsteriskHandles *AsteriskHandlesAst,
+int skypiax_skype_send_message(struct SkypiaxHandles *SkypiaxHandles,
const char *message_P)
{
@@ -774,9 +774,9 @@
Display *disp;
Window handle_P;
- w_P = AsteriskHandlesAst->skype_win;
- disp = AsteriskHandlesAst->disp;
- handle_P = AsteriskHandlesAst->win;
+ w_P = SkypiaxHandles->skype_win;
+ disp = SkypiaxHandles->disp;
+ handle_P = SkypiaxHandles->win;
Atom atom1 = XInternAtom(disp, "SKYPECONTROLAPI_MESSAGE_BEGIN", False);
Atom atom2 = XInternAtom(disp, "SKYPECONTROLAPI_MESSAGE", False);
@@ -808,9 +808,9 @@
return 1;
}
-int skypiax_skype_present(struct AsteriskHandles *AsteriskHandlesAst)
+int skypiax_skype_present(struct SkypiaxHandles *SkypiaxHandles)
{
- Atom skype_inst = XInternAtom(AsteriskHandlesAst->disp, "_SKYPE_INSTANCE", True);
+ Atom skype_inst = XInternAtom(SkypiaxHandles->disp, "_SKYPE_INSTANCE", True);
Atom type_ret;
int format_ret;
@@ -822,22 +822,22 @@
//XLockDisplay(disp);
status =
- XGetWindowProperty(AsteriskHandlesAst->disp,
- DefaultRootWindow(AsteriskHandlesAst->disp), skype_inst, 0, 1,
+ XGetWindowProperty(SkypiaxHandles->disp,
+ DefaultRootWindow(SkypiaxHandles->disp), skype_inst, 0, 1,
False, XA_WINDOW, &type_ret, &format_ret, &nitems_ret,
&bytes_after_ret, &prop);
//XUnlockDisplay(disp);
/* sanity check */
if (status != Success || format_ret != 32 || nitems_ret != 1) {
- AsteriskHandlesAst->skype_win = (Window) - 1;
+ SkypiaxHandles->skype_win = (Window) - 1;
DEBUGA_SKYPE("Skype instance not found\n", SKYPIAX_P_LOG);
return 0;
}
- AsteriskHandlesAst->skype_win = *(const unsigned long *) prop & 0xffffffff;
+ SkypiaxHandles->skype_win = *(const unsigned long *) prop & 0xffffffff;
DEBUGA_SKYPE("Skype instance found with id #%d\n", SKYPIAX_P_LOG,
- (unsigned int) AsteriskHandlesAst->skype_win);
+ (unsigned int) SkypiaxHandles->skype_win);
return 1;
}
@@ -866,7 +866,7 @@
{
struct skypiax_interface *p;
- struct AsteriskHandles *AsteriskHandlesAst;
+ struct SkypiaxHandles *SkypiaxHandles;
char buf[512];
Display *disp = NULL;
Window root = -1;
@@ -875,11 +875,11 @@
p = obj;
DEBUGA_PBX("ENTERING FUNC\n", SKYPIAX_P_LOG);
- if (pipe(p->AsteriskHandlesAst.fdesc)) {
- fcntl(p->AsteriskHandlesAst.fdesc[0], F_SETFL, O_NONBLOCK);
- fcntl(p->AsteriskHandlesAst.fdesc[1], F_SETFL, O_NONBLOCK);
+ if (pipe(p->SkypiaxHandles.fdesc)) {
+ fcntl(p->SkypiaxHandles.fdesc[0], F_SETFL, O_NONBLOCK);
+ fcntl(p->SkypiaxHandles.fdesc[1], F_SETFL, O_NONBLOCK);
}
- AsteriskHandlesAst = &p->AsteriskHandlesAst;
+ SkypiaxHandles = &p->SkypiaxHandles;
disp = XOpenDisplay(p->X11_display);
if (!disp) {
ERRORA("Cannot open X Display '%s', exiting skype thread\n", SKYPIAX_P_LOG,
@@ -895,9 +895,9 @@
//FIXME pthread_cleanup_push(skypiax_skype_clean_disp, &xfd);
- AsteriskHandlesAst->disp = disp;
+ SkypiaxHandles->disp = disp;
- if (skypiax_skype_present(AsteriskHandlesAst)) {
+ if (skypiax_skype_present(SkypiaxHandles)) {
root = DefaultRootWindow(disp);
win =
XCreateSimpleWindow(disp, root, 0, 0, 1, 1, 0,
@@ -905,11 +905,11 @@
DefaultScreen
(disp)));
- AsteriskHandlesAst->win = win;
+ SkypiaxHandles->win = win;
snprintf(buf, 512, "NAME skypiax");
- if (!skypiax_skype_send_message(AsteriskHandlesAst, buf)) {
+ if (!skypiax_skype_send_message(SkypiaxHandles, buf)) {
ERRORA
("Sending message failed - probably Skype crashed. Please run/restart Skype manually and launch Skypiax again\n",
SKYPIAX_P_LOG);
@@ -918,7 +918,7 @@
}
snprintf(buf, 512, "PROTOCOL 6");
- if (!skypiax_skype_send_message(AsteriskHandlesAst, buf)) {
+ if (!skypiax_skype_send_message(SkypiaxHandles, buf)) {
ERRORA
("Sending message failed - probably Skype crashed. Please run/restart Skype manually and launch Skypiax again\n",
SKYPIAX_P_LOG);
@@ -957,7 +957,7 @@
howmany = strlen(b) + 1;
- howmany = write(AsteriskHandlesAst->fdesc[1], b, howmany);
+ howmany = write(SkypiaxHandles->fdesc[1], b, howmany);
memset(buffer, '\0', 17000);
}
@@ -984,7 +984,7 @@
static char acInputRow[1024];
COPYDATASTRUCT oCopyData;
#else /* WIN32 */
- struct AsteriskHandles *AsteriskHandlesAst;
+ struct SkypiaxHandles *SkypiaxHandles;
#endif /* WIN32 */
DEBUGA_SKYPE("SENDING: |||%s||||\n", SKYPIAX_P_LOG, msg_to_skype);
@@ -1003,8 +1003,8 @@
oCopyData.cbData = strlen(acInputRow) + 1;
if (oCopyData.cbData != 1) {
if (SendMessage
- (p->AsteriskHandlesAst.win32_hGlobal_SkypeAPIWindowHandle, WM_COPYDATA,
- (WPARAM) p->AsteriskHandlesAst.win32_hInit_MainWindowHandle,
+ (p->SkypiaxHandles.win32_hGlobal_SkypeAPIWindowHandle, WM_COPYDATA,
+ (WPARAM) p->SkypiaxHandles.win32_hInit_MainWindowHandle,
(LPARAM) & oCopyData) == FALSE) {
ERRORA
("Sending message failed - probably Skype crashed.\n\nPlease shutdown Skypiax (Asterisk), then restart Skype from the menu, then launch Skypiax and try again.\n",
@@ -1022,9 +1022,9 @@
if (option_debug > 100) {
DEBUGA_PBX("ENTERING FUNC\n", SKYPIAX_P_LOG);
}
- AsteriskHandlesAst = &p->AsteriskHandlesAst;
+ SkypiaxHandles = &p->SkypiaxHandles;
- if (!skypiax_skype_send_message(AsteriskHandlesAst, msg_to_skype)) {
+ if (!skypiax_skype_send_message(SkypiaxHandles, msg_to_skype)) {
ERRORA
("Sending message failed - probably Skype crashed.\n\nPlease shutdown Skypiax (Asterisk), then restart Skype from the menu, then launch Skypiax and try again.\n",
SKYPIAX_P_LOG);
@@ -1074,7 +1074,7 @@
#ifdef WIN32
rt = 1;
#else /* WIN32 */
- fdselect = p->AsteriskHandlesAst.fdesc[0];
+ fdselect = p->SkypiaxHandles.fdesc[0];
FD_ZERO(&fs);
FD_SET(fdselect, &fs);
to.tv_usec = 2000000; //500 msec
@@ -1083,13 +1083,13 @@
#endif /* WIN32 */
if (rt > 0) {
- if (p->AsteriskHandlesAst.fdesc[0]) {
+ if (p->SkypiaxHandles.fdesc[0]) {
howmany = sizeof(read_from_pipe);
#ifdef WIN32
- switch_file_read(p->AsteriskHandlesAst.fdesc[0], read_from_pipe, &howmany);
+ switch_file_read(p->SkypiaxHandles.fdesc[0], read_from_pipe, &howmany);
#else /* WIN32 */
howmany =
- read(p->AsteriskHandlesAst.fdesc[0], read_from_pipe, sizeof(read_from_pipe));
+ read(p->SkypiaxHandles.fdesc[0], read_from_pipe, sizeof(read_from_pipe));
#endif /* WIN32 */
a = 0;
@@ -1184,7 +1184,7 @@
strncpy(id, where, sizeof(id) - 1);
if (!strcasecmp(id, p->skype_user)) {
- p->AsteriskHandlesAst.api_connected = 1;
+ p->SkypiaxHandles.api_connected = 1;
//DEBUGA_SKYPE ("Skype MSG: messaggio: %s, currentuserhandle: %s, cuh: %s, skype_user: %s!\n", SKYPIAX_P_LOG, messaggio, obj, id, p->skype_user);
}
}
1
0
[commit] r11117 - freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax
by FreeSWITCH SVN 11 Jan '09
by FreeSWITCH SVN 11 Jan '09
11 Jan '09
Author: gmaruzz
Date: Sun Jan 11 03:03:00 2009
New Revision: 11117
Log:
skypiax: cosmetics
Modified:
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c Sun Jan 11 03:03:00 2009
@@ -23,17 +23,10 @@
switch_mutex_t *mutex;
} globals;
-/*************************************************/
-/*************************************************/
-/*************************************************/
int option_debug = 100;
switch_endpoint_interface_t *skypiax_endpoint_interface;
switch_memory_pool_t *skypiax_module_pool = NULL;
int running = 1;
-//switch_core_session_t *global_session = NULL;
-/*************************************************/
-/*************************************************/
-/*************************************************/
SWITCH_DECLARE_GLOBAL_STRING_FUNC(set_global_dialplan, globals.dialplan);
SWITCH_DECLARE_GLOBAL_STRING_FUNC(set_global_codec_string, globals.codec_string);
@@ -171,7 +164,6 @@
if (strlen(p->skype_call_id)) {
//switch_thread_cond_signal(tech_pvt->cond);
WARNINGA("hanging up skype call: %s\n", SKYPIAX_P_LOG, p->skype_call_id);
- //sprintf(msg_to_skype, "SET CALL %s STATUS FINISHED", p->skype_call_id);
sprintf(msg_to_skype, "ALTER CALL %s HANGUP", p->skype_call_id);
skypiax_skype_write(p, msg_to_skype);
}
@@ -315,8 +307,6 @@
} else {
switch_set_flag_locked(tech_pvt, TFLAG_VOICE);
- //ERRORA( "skypiax_skypeaudio_read SUCCESS\n");
-
}
while (switch_test_flag(tech_pvt, TFLAG_IO)) {
@@ -330,7 +320,6 @@
DEBUGA_SKYPE("CHANNEL READ FRAME not IO\n", SKYPIAX_P_LOG);
return SWITCH_STATUS_FALSE;
}
- //DEBUGA_SKYPE( "============>\n");
if (switch_test_flag(tech_pvt, TFLAG_IO) && switch_test_flag(tech_pvt, TFLAG_VOICE)) {
switch_clear_flag_locked(tech_pvt, TFLAG_VOICE);
@@ -375,8 +364,6 @@
unsigned int sent;
struct skypiax_interface *p = NULL;
- //DEBUGA_SKYPE( "CHANNEL WRITE FRAME\n");
-
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
@@ -397,7 +384,6 @@
#endif
sent = frame->datalen;
- //DEBUGA_SKYPE("CLI PIPE to write %d\n", SKYPIAX_P_LOG, sent);
#ifdef WIN32
switch_file_write(p->audioskypepipe[1], frame->data, &sent);
#else /* WIN32 */
@@ -405,12 +391,9 @@
#endif /* WIN32 */
if (sent != frame->datalen && sent != -1) {
DEBUGA_SKYPE("CLI PIPE write %d\n", SKYPIAX_P_LOG, sent);
- } else {
- //NOTICA("CLI PIPE write %d\n", SKYPIAX_P_LOG, sent);
}
return SWITCH_STATUS_SUCCESS;
-
}
static switch_status_t channel_answer_channel(switch_core_session_t * session)
@@ -450,7 +433,6 @@
switch (msg->message_id) {
case SWITCH_MESSAGE_INDICATE_ANSWER:
{
- //WARNINGA("TO BE ANSWERED! \n", SKYPIAX_P_LOG);
DEBUGA_SKYPE("MSG_ID=%d, TO BE ANSWERED!\n", SKYPIAX_P_LOG, msg->message_id);
channel_answer_channel(session);
}
@@ -561,8 +543,6 @@
return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
}
- //tech_pvt->p = &globals.SKYPIAX_INTERFACES[19]; //FIXME
- //globals.SKYPIAX_INTERFACES[19].tech_pvt = tech_pvt; //FIXME
channel = switch_core_session_get_channel(*new_session);
skypiax_tech_init(tech_pvt, *new_session, NULL);
} else {
@@ -600,12 +580,10 @@
switch_channel_set_flag(channel, CF_OUTBOUND);
switch_set_flag_locked(tech_pvt, TFLAG_OUTBOUND);
switch_channel_set_state(channel, CS_INIT);
- //switch_channel_mark_pre_answered(channel);
return SWITCH_CAUSE_SUCCESS;
}
return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
-
}
/*!
@@ -627,9 +605,7 @@
while (forever) {
if (!running)
break;
- //switch_sleep(1000); //cicopet
res = skypiax_skype_read(p);
- //if (res == CALLFLOW_INCOMING_HANGUP && p->interface_state != SKYPIAX_STATE_DOWN)
if (res == CALLFLOW_INCOMING_HANGUP) {
switch_core_session_t *session = NULL;
private_t *tech_pvt = NULL;
@@ -643,20 +619,14 @@
if (session) {
channel = switch_core_session_get_channel(session);
- //DEBUGA_SKYPE("before channel_on_hangup\n", SKYPIAX_P_LOG);
-
if (channel) {
switch_channel_hangup(channel, SWITCH_CAUSE_NORMAL_CLEARING);
- //DEBUGA_SKYPE("after channel_on_hangup\n", SKYPIAX_P_LOG);
-
} else {
ERRORA("no channel?\n", SKYPIAX_P_LOG);
}
-
} else {
ERRORA("no session?\n", SKYPIAX_P_LOG);
}
-
} else {
ERRORA("no tech_pvt?\n", SKYPIAX_P_LOG);
}
@@ -664,12 +634,8 @@
tech_pvt->session = NULL; //FIXME
}
}
-
- //if (option_debug > 10) {
DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
- //}
return NULL;
-
}
static switch_status_t load_config(void)
@@ -875,8 +841,6 @@
globals.SKYPIAX_INTERFACES[interface_id].tcp_cli_port = atoi(tcp_cli_port);
globals.SKYPIAX_INTERFACES[interface_id].tcp_srv_port = atoi(tcp_srv_port);
#endif /* WIN32 */
- //switch_set_string(globals.SKYPIAX_INTERFACES[interface_id].tcp_cli_port, tcp_cli_port);
- //switch_set_string(globals.SKYPIAX_INTERFACES[interface_id].tcp_srv_port, tcp_srv_port);
switch_set_string(globals.SKYPIAX_INTERFACES[interface_id].X11_display,
X11_display);
switch_set_string(globals.SKYPIAX_INTERFACES[interface_id].skype_user,
@@ -919,7 +883,6 @@
NOTICA("STARTING interface_id=%d\n", SKYPIAX_P_LOG, interface_id);
switch_threadattr_create(&do_skype_thd_attr, skypiax_module_pool);
- //switch_threadattr_detach_set(do_skype_thd_attr, 1);
switch_threadattr_stacksize_set(do_skype_thd_attr, SWITCH_THREAD_STACKSIZE);
switch_thread_create(&globals.SKYPIAX_INTERFACES[interface_id].
skypiax_do_skype_thread_thread, do_skype_thd_attr,
@@ -930,7 +893,6 @@
switch_threadattr_create(&skypiax_do_controldev_thread_thd_attr,
skypiax_module_pool);
- //switch_threadattr_detach_set(skypiax_do_controldev_thread_thd_attr, 1);
switch_threadattr_stacksize_set(skypiax_do_controldev_thread_thd_attr,
SWITCH_THREAD_STACKSIZE);
switch_thread_create(&globals.SKYPIAX_INTERFACES[interface_id].
@@ -945,8 +907,9 @@
skypiax_skypeaudio_init(&globals.SKYPIAX_INTERFACES[interface_id]);
while (globals.SKYPIAX_INTERFACES[interface_id].AsteriskHandlesAst.
- api_connected == 0)
+ api_connected == 0) {
switch_sleep(1000);
+ }
NOTICA("STARTED interface_id=%d\n", SKYPIAX_P_LOG, interface_id);
} else {
@@ -985,7 +948,6 @@
skypiax_module_pool = pool;
memset(&globals, '\0', sizeof(globals));
- //memset(globals.SKYPIAX_INTERFACES, '\0', sizeof(globals.SKYPIAX_INTERFACES));
load_config();
@@ -1001,13 +963,6 @@
return SWITCH_STATUS_SUCCESS;
}
-/*
-SWITCH_MODULE_RUNTIME_FUNCTION(mod_skypiax_runtime)
-{
- return SWITCH_STATUS_TERM;
-}
-*/
-
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_skypiax_shutdown)
{
int x = 100;
@@ -1016,8 +971,6 @@
unsigned int howmany = 8;
int interface_id;
- //p = &globals.SKYPIAX_INTERFACES[2];
-
running = 0;
for (interface_id = 0; interface_id < SKYPIAX_MAX_INTERFACES; interface_id++) {
1
0
[commit] r11116 - freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax
by FreeSWITCH SVN 11 Jan '09
by FreeSWITCH SVN 11 Jan '09
11 Jan '09
Author: gmaruzz
Date: Sun Jan 11 02:47:02 2009
New Revision: 11116
Log:
skypiax: cosmetics
Modified:
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c Sun Jan 11 02:47:02 2009
@@ -1,26 +1,10 @@
#include "skypiax.h"
-//#include <netinet/tcp.h>
extern switch_memory_pool_t *skypiax_module_pool;
extern int option_debug;
extern switch_endpoint_interface_t *skypiax_endpoint_interface;
extern int running;
-/**********************************************************/
-/**********************************************************/
-/**********************************************************/
-
-//extern switch_core_session_t *global_session;
-
-#ifdef WIN32
-#else /* NOT WIN32 */
-#define SKYPE_X11_BUF_SIZE 512
-#endif /* WIN32 */
-
-/**********************************************************/
-/**********************************************************/
-/**********************************************************/
-
static void *SWITCH_THREAD_FUNC skypiax_do_tcp_srv_thread(switch_thread_t * thread,
void *obj)
{
@@ -49,7 +33,6 @@
unsigned int kill_cli_size;
short kill_cli_buff[SAMPLES_PER_FRAME];
short totalbuf[SAMPLES_PER_FRAME];
- //int one = 1;
if (option_debug > 100) {
DEBUGA_SKYPE("ENTERING FUNC\n", SKYPIAX_P_LOG);
@@ -66,7 +49,6 @@
}
return NULL;
}
- //setsockopt(s, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one));
if (bind(s, (struct sockaddr *) &my_addr, sizeof(struct sockaddr)) < 0) {
ERRORA("bind Error\n", SKYPIAX_P_LOG);
@@ -105,11 +87,10 @@
fdselect = fd;
FD_ZERO(&fs);
FD_SET(fdselect, &fs);
- to.tv_usec = 2000000; //20 msec
+ to.tv_usec = 2000000; //2000 msec
to.tv_sec = 0;
rt = select(fdselect + 1, &fs, NULL, NULL, &to);
- //rt=1;
if (rt > 0) {
#ifdef WIN32
@@ -123,13 +104,10 @@
}
if (len)
len = received;
-
- //len = recv(fd, srv_in, SAMPLES_PER_FRAME * sizeof(short), 0); //seems that Skype only sends 320 bytes at time
#endif /* WIN32 */
if ((SAMPLERATE_SKYPIAX - 8000) == 0) {
- /****************************************************************/
if (len > 0) {
a = 0;
for (i = 0; i < len / sizeof(short); i++) {
@@ -164,7 +142,6 @@
howmany = write(p->audiopipe[1], totalbuf, howmany);
#endif /* WIN32 */
p->audiobuf_is_loaded = 0;
- //DEBUGA_SKYPE("read=====> req=%d recv=%d to sent=%d sent=%d\n", SKYPIAX_P_LOG, sizeof(short)*SAMPLES_PER_FRAME, len, (len*sizeof(short))/2, howmany);
}
} else if (len == 0) {
@@ -175,30 +152,19 @@
exit = 1;
break;
}
- /****************************************************************/
} else if (SAMPLERATE_SKYPIAX == 16000) {
- /****************************************************************/
if (len > 0) {
if (len == SAMPLES_PER_FRAME * sizeof(short)) {
#ifdef WIN32
unsigned int howmany;
- howmany = len;
-
- //WARNINGA("SRV recv %d\n", SKYPIAX_P_LOG, len);
+ howmany = len;
switch_file_write(p->audiopipe[1], srv_in, &howmany);
#else /* WIN32 */
len = write(p->audiopipe[1], srv_in, len);
#endif /* WIN32 */
- //p->audiobuf_is_loaded = 0;
- //WARNINGA("SRV PIPE WRITE=====> req=%lu recv=%d to sent=%d sent=%u\n",
- //SKYPIAX_P_LOG, sizeof(short) * SAMPLES_PER_FRAME, len, len,
- //howmany);
} else if (len == SAMPLES_PER_FRAME * sizeof(short) / 2) {
-
-#if 1
-
if (!p->audiobuf_is_loaded) {
for (i = 0; i < (len / sizeof(short)); i++) {
p->audiobuf[i] = srv_in[i];
@@ -206,7 +172,6 @@
p->audiobuf_is_loaded = 1;
} else {
unsigned int howmany = SAMPLES_PER_FRAME * sizeof(short);
- //short totalbuf[SAMPLES_PER_FRAME];
for (i = 0; i < (len / sizeof(short)); i++)
totalbuf[i] = p->audiobuf[i];
@@ -221,39 +186,30 @@
howmany = write(p->audiopipe[1], totalbuf, howmany);
#endif /* WIN32 */
p->audiobuf_is_loaded = 0;
- //NOTICA("SRV PIPE WRITE=====> req=%d recv=%d to sent=%d sent=%d\n", SKYPIAX_P_LOG, SAMPLES_PER_FRAME * sizeof(short), len, SAMPLES_PER_FRAME * sizeof(short), howmany);
}
-#endif
} else {
-
ERRORA("SRV len=%d\n", SKYPIAX_P_LOG, len);
-
}
} else if (len == 0) {
DEBUGA_SKYPE("Skype client GONE\n", SKYPIAX_P_LOG);
switch_sleep(1000);
- //break;
} else {
ERRORA("SRV len=%d\n", SKYPIAX_P_LOG, len);
exit = 1;
break;
}
- /****************************************************************/
} else {
-
ERRORA("SAMPLERATE_SKYPIAX can only be 8000 or 16000\n", SKYPIAX_P_LOG);
}
} else {
-
if (rt)
ERRORA("SRV rt=%d\n", SKYPIAX_P_LOG, rt);
switch_sleep(10000);
}
}
-
#ifdef WIN32
kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
switch_file_write(p->audiopipe[1], kill_cli_buff, &kill_cli_size);
@@ -275,9 +231,7 @@
kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
len = write(p->audioskypepipe[1], kill_cli_buff, kill_cli_size);
#endif /* WIN32 */
-
DEBUGA_SKYPE("Skype client GONE\n", SKYPIAX_P_LOG);
-
#ifndef WIN32
close(fd);
#else
@@ -300,7 +254,6 @@
}
static void *SWITCH_THREAD_FUNC skypiax_do_tcp_cli_thread(switch_thread_t * thread,
void *obj)
-//void *skypiax_do_tcp_cli_thread(void *data)
{
struct skypiax_interface *p = obj;
int s;
@@ -324,7 +277,6 @@
short cli_out[SAMPLES_PER_FRAME * 2];
short cli_in[SAMPLES_PER_FRAME];
#endif /* WIN32 */
- //int one = 1;
if (option_debug > 100) {
DEBUGA_SKYPE("ENTERING FUNC\n", SKYPIAX_P_LOG);
@@ -341,7 +293,6 @@
}
return NULL;
}
- //setsockopt(s, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one));
if (bind(s, (struct sockaddr *) &my_addr, sizeof(struct sockaddr)) < 0) {
ERRORA("bind Error\n", SKYPIAX_P_LOG);
@@ -385,7 +336,7 @@
#endif /* WIN32 */
FD_ZERO(&fs);
FD_SET(fdselect, &fs);
- to.tv_usec = 2000000; //20 msec
+ to.tv_usec = 2000000; //2000 msec
to.tv_sec = 0;
#ifdef WIN32
@@ -393,11 +344,7 @@
#else /* WIN32 */
rt = select(fdselect + 1, &fs, NULL, NULL, &to);
#endif /* WIN32 */
- //switch_sleep(1000);//FIXME
- //memset(cli_in, '\0', sizeof(cli_in));
- //rt = 0;
if (rt > 0) {
- /*********************************************/
if ((SAMPLERATE_SKYPIAX - 8000) == 0) {
got = SAMPLES_PER_FRAME * sizeof(short);
#ifdef WIN32
@@ -407,7 +354,6 @@
#endif /* WIN32 */
if (got > 0) {
- //DEBUGA_SKYPE("CLI PIPE read %d\n", SKYPIAX_P_LOG, got);
a = 0;
for (i = 0; i < got / sizeof(short); i++) {
cli_out[a] = cli_in[i];
@@ -421,8 +367,6 @@
#else /* WIN32 */
len = send(fd, cli_out, got * 2, 0);
#endif /* WIN32 */
- //DEBUGA_SKYPE("CLI PIPE send %d\n", SKYPIAX_P_LOG, len);
-
if (len == 0) {
ERRORA("Skype server GONE\n", SKYPIAX_P_LOG);
break;
@@ -430,12 +374,8 @@
} else {
switch_sleep(1000);
ERRORA("CLI PIPE give us: %u\n", SKYPIAX_P_LOG, got);
- //break;
}
- }
- /*********************************************/
- /*********************************************/
- else if (SAMPLERATE_SKYPIAX == 16000) {
+ } else if (SAMPLERATE_SKYPIAX == 16000) {
got = SAMPLES_PER_FRAME * sizeof(short);
#ifdef WIN32
switch_file_read(p->audioskypepipe[0], cli_in, &got);
@@ -465,7 +405,6 @@
ERRORA("CLI PIPE give us: %u\n", SKYPIAX_P_LOG, got);
}
}
- /*********************************************/
} else {
switch_sleep(1000);
@@ -514,12 +453,6 @@
fcntl(p->audioskypepipe[1], F_SETFL, O_NONBLOCK);
}
#endif /* WIN32 */
- //rv = switch_file_pipe_timeout_set(p->audiopipe[0], 100);
-
-/* the pipe is our audio fd for pbx to poll on */
- //p->skypiax_sound_capt_fd = p->audiopipe[0];
-
- //rv = switch_file_pipe_timeout_set(p->audioskypepipe[0], 20000);
if (option_debug > 10) {
DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
}
@@ -538,30 +471,21 @@
#endif /* WIN32 */
p = tech_pvt->p;
-
- //DEBUGA_PBX("ENTERING FUNC\n", SKYPIAX_P_LOG);
-
#ifdef WIN32
rt = 1;
#else /* WIN32 */
-
fdselect = p->audiopipe[0];
FD_ZERO(&fs);
FD_SET(fdselect, &fs);
- to.tv_usec = 2000000; //20 msec
+ to.tv_usec = 2000000; //2000 msec
to.tv_sec = 0;
rt = select(fdselect + 1, &fs, NULL, NULL, &to);
#endif /* WIN32 */
-
if (rt > 0) {
-
samples = SAMPLES_PER_FRAME * sizeof(short);
-
#ifdef WIN32
switch_file_read(p->audiopipe[0], tech_pvt->read_frame.data, &samples);
#else /* WIN32 */
-
- //samples = read(p->audiopipe[0], buf, SAMPLES_PER_FRAME * sizeof(short));
samples = read(p->audiopipe[0], tech_pvt->read_frame.data, samples);
#endif /* WIN32 */
@@ -571,49 +495,17 @@
samples, SAMPLES_PER_FRAME * sizeof(short));
//do nothing
} else {
- tech_pvt->read_frame.datalen = samples;
- //NOTICA("SRV PIPE READ=====> GOOD samples=%d\n", SKYPIAX_P_LOG, samples);
/* A real frame */
+ tech_pvt->read_frame.datalen = samples;
}
} else {
if (rt)
DEBUGA_SKYPE("select returned %d\n", SKYPIAX_P_LOG, rt);
-
}
-
- //DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
-
return SWITCH_STATUS_SUCCESS;
}
#ifdef WIN32
-#if 0
-int LaunchSkype(struct skypiax_interface *p)
-{
- LPTSTR pszMessage;
- DWORD dwLastError;
- char skypelogin[256];
-
- memset(skypelogin, '\0', sizeof(skypelogin));
- sprintf(skypelogin, "/secondary /username:%s /password:%s", p->skype_user,
- p->skype_password);
-
- ShellExecute(NULL, "open", "C:\\Program Files\\Skype\\Phone\\Skype.exe", skypelogin,
- ".", SW_SHOWNORMAL);
-
- dwLastError = GetLastError();
-
- FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dwLastError, MAKELANGID(LANG_NEUTRAL,
- SUBLANG_DEFAULT),
- (LPTSTR) & pszMessage, 0, NULL);
-
- NOTICA("ShellExecute gave: %s\n", SKYPIAX_P_LOG, pszMessage);
- LocalFree(pszMessage);
- return 1;
-
-}
-#endif
enum {
SKYPECONTROLAPI_ATTACH_SUCCESS = 0, /* Client is successfully
@@ -703,13 +595,14 @@
if (!p->AsteriskHandlesAst.api_connected) {
NOTICA("\n\n\tConnected to Skype API!\n", SKYPIAX_P_LOG);
p->AsteriskHandlesAst.win32_hGlobal_SkypeAPIWindowHandle = (HWND) uiParam;
- //switch_sleep(5000);
p->AsteriskHandlesAst.win32_hGlobal_SkypeAPIWindowHandle =
p->AsteriskHandlesAst.win32_hGlobal_SkypeAPIWindowHandle;
}
break;
case SKYPECONTROLAPI_ATTACH_PENDING_AUTHORIZATION:
- //WARNINGA ("\n\n\tIf I do not (almost) immediately connect to Skype API,\n\tplease give the Skype client authorization to be connected \n\tby Asterisk and to not ask you again.\n\n", SKYPIAX_P_LOG);
+ DEBUGA_SKYPE
+ ("\n\n\tIf I do not (almost) immediately connect to Skype API,\n\tplease give the Skype client authorization to be connected \n\tby Asterisk and to not ask you again.\n\n",
+ SKYPIAX_P_LOG);
switch_sleep(5000);
if (!p->AsteriskHandlesAst.api_connected) {
SendMessage(HWND_BROADCAST,
@@ -830,34 +723,25 @@
/* destroy window class */
struct skypiax_interface *p;
- //DWORD MsgWaitResult;
- p = obj;
+ p = obj;
switch_file_pipe_create(&p->AsteriskHandlesAst.fdesc[0],
&p->AsteriskHandlesAst.fdesc[1], skypiax_module_pool);
- //switch_file_pipe_timeout_set(p->AsteriskHandlesAst.fdesc[0], 100);
-
p->AsteriskHandlesAst.win32_uiGlobal_MsgID_SkypeControlAPIAttach =
RegisterWindowMessage("SkypeControlAPIAttach");
p->AsteriskHandlesAst.win32_uiGlobal_MsgID_SkypeControlAPIDiscover =
RegisterWindowMessage("SkypeControlAPIDiscover");
- //LaunchSkype(p);
switch_sleep(2000000);
if (p->AsteriskHandlesAst.win32_uiGlobal_MsgID_SkypeControlAPIAttach != 0
&& p->AsteriskHandlesAst.win32_uiGlobal_MsgID_SkypeControlAPIDiscover != 0) {
if (win32_Initialize_CreateWindowClass(p)) {
if (win32_Initialize_CreateMainWindow(p)) {
-#if 1
if (SendMessage
(HWND_BROADCAST,
p->AsteriskHandlesAst.win32_uiGlobal_MsgID_SkypeControlAPIDiscover,
(WPARAM) p->AsteriskHandlesAst.win32_hInit_MainWindowHandle, 0) != 0) {
-#else
-
- if (1) {
-#endif
p->AsteriskHandlesAst.win32_hInit_MainWindowHandle =
p->AsteriskHandlesAst.win32_hInit_MainWindowHandle;
while (1) {
@@ -865,7 +749,6 @@
if (!running)
break;
while (GetMessage(&oMessage, 0, 0, 0)) {
- //break;
TranslateMessage(&oMessage);
DispatchMessage(&oMessage);
}
@@ -883,30 +766,6 @@
}
#else /* NOT WIN32 */
-#if 0
-int X11_errors_handler(Display * dpy, XErrorEvent * err)
-{
- (void) dpy;
- struct skypiax_interface *p = NULL;
-
- xerror = err->error_code;
- DEBUGA_SKYPE("Received error code %d from X Server\n", SKYPIAX_P_LOG, xerror);
- return 0; /* ignore the error */
-}
-
-static void X11_errors_trap(void)
-{
- xerror = 0;
- old_handler = XSetErrorHandler(X11_errors_handler);
-}
-
-static int X11_errors_untrap(void)
-{
- XSetErrorHandler(old_handler);
- return (xerror != BadValue) && (xerror != BadWindow);
-}
-#endif
-
int skypiax_skype_send_message(struct AsteriskHandles *AsteriskHandlesAst,
const char *message_P)
{
@@ -914,7 +773,6 @@
Window w_P;
Display *disp;
Window handle_P;
- //struct skypiax_interface *p = NULL;
w_P = AsteriskHandlesAst->skype_win;
disp = AsteriskHandlesAst->disp;
@@ -925,7 +783,6 @@
unsigned int pos = 0;
unsigned int len = strlen(message_P);
XEvent e;
- //int ok;
memset(&e, 0, sizeof(e));
e.xclient.type = ClientMessage;
@@ -934,7 +791,6 @@
e.xclient.window = handle_P;
e.xclient.format = 8;
- //X11_errors_trap();
//XLockDisplay(disp);
do {
unsigned int i;
@@ -948,11 +804,7 @@
XSync(disp, False);
//XUnlockDisplay(disp);
- //ok = X11_errors_untrap();
-
- //if (!ok) DEBUGA_SKYPE("Sending message failed with status %d\n", SKYPIAX_P_LOG, xerror);
- //return ok;
return 1;
}
@@ -968,7 +820,6 @@
int status;
struct skypiax_interface *p = NULL;
- //X11_errors_trap();
//XLockDisplay(disp);
status =
XGetWindowProperty(AsteriskHandlesAst->disp,
@@ -976,7 +827,6 @@
False, XA_WINDOW, &type_ret, &format_ret, &nitems_ret,
&bytes_after_ret, &prop);
//XUnlockDisplay(disp);
- //X11_errors_untrap();
/* sanity check */
if (status != Success || format_ret != 32 || nitems_ret != 1) {
@@ -986,7 +836,6 @@
}
AsteriskHandlesAst->skype_win = *(const unsigned long *) prop & 0xffffffff;
- //DEBUGA_SKYPE("Skype instance found with id #%x\n", SKYPIAX_P_LOG,
DEBUGA_SKYPE("Skype instance found with id #%d\n", SKYPIAX_P_LOG,
(unsigned int) AsteriskHandlesAst->skype_win);
return 1;
@@ -1018,7 +867,7 @@
struct skypiax_interface *p;
struct AsteriskHandles *AsteriskHandlesAst;
- char buf[SKYPE_X11_BUF_SIZE];
+ char buf[512];
Display *disp = NULL;
Window root = -1;
Window win = -1;
@@ -1026,14 +875,11 @@
p = obj;
DEBUGA_PBX("ENTERING FUNC\n", SKYPIAX_P_LOG);
- //switch_file_pipe_create(&p->AsteriskHandlesAst.fdesc[0], &p->AsteriskHandlesAst.fdesc[1], skypiax_module_pool);
if (pipe(p->AsteriskHandlesAst.fdesc)) {
fcntl(p->AsteriskHandlesAst.fdesc[0], F_SETFL, O_NONBLOCK);
fcntl(p->AsteriskHandlesAst.fdesc[1], F_SETFL, O_NONBLOCK);
}
- //switch_file_pipe_timeout_set(p->AsteriskHandlesAst.fdesc[0], 100);
AsteriskHandlesAst = &p->AsteriskHandlesAst;
- //disp = XOpenDisplay(getenv("DISPLAY"));
disp = XOpenDisplay(p->X11_display);
if (!disp) {
ERRORA("Cannot open X Display '%s', exiting skype thread\n", SKYPIAX_P_LOG,
@@ -1048,7 +894,6 @@
fcntl(xfd, F_SETFD, FD_CLOEXEC);
//FIXME pthread_cleanup_push(skypiax_skype_clean_disp, &xfd);
- DEBUGA_SKYPE("PUSH disp %d\n", SKYPIAX_P_LOG, xfd);
AsteriskHandlesAst->disp = disp;
@@ -1060,13 +905,9 @@
DefaultScreen
(disp)));
- //DEBUGA_SKYPE("skype_win=%d win=%d\n", SKYPIAX_P_LOG, (unsigned int) skype_win, (unsigned int) win);
-
- //AsteriskHandlesAst->skype_win = skype_win;
- //AsteriskHandlesAst->disp = disp;
AsteriskHandlesAst->win = win;
- snprintf(buf, SKYPE_X11_BUF_SIZE, "NAME skypiax");
+ snprintf(buf, 512, "NAME skypiax");
if (!skypiax_skype_send_message(AsteriskHandlesAst, buf)) {
ERRORA
@@ -1076,7 +917,7 @@
return NULL;
}
- snprintf(buf, SKYPE_X11_BUF_SIZE, "PROTOCOL 6");
+ snprintf(buf, 512, "PROTOCOL 6");
if (!skypiax_skype_send_message(AsteriskHandlesAst, buf)) {
ERRORA
("Sending message failed - probably Skype crashed. Please run/restart Skype manually and launch Skypiax again\n",
@@ -1095,7 +936,6 @@
b = buffer;
while (1) {
- //switch_sleep(10000);
XNextEvent(disp, &an_event);
if (!running)
break;
@@ -1110,10 +950,6 @@
buf[i] = '\0';
- //NOTICA("ClientMessage buf:|||%s||| buffer:|||%s||| serial=%ld|||\r\n",SKYPIAX_P_LOG,buf, buffer,an_event.xclient.serial);
- //NOTICA ("SKYPE read: |||%s|||%d\n", SKYPIAX_P_LOG, buf, strlen(buf));
- //NOTICA ("SKYPE buffer: |||%s|||%d\n", SKYPIAX_P_LOG, buffer, strlen(buffer));
-
strcat(buffer, buf);
if (i < 20) { /* last fragment */
@@ -1121,11 +957,7 @@
howmany = strlen(b) + 1;
- //switch_file_write(AsteriskHandlesAst->fdesc[1], b, &howmany);
howmany = write(AsteriskHandlesAst->fdesc[1], b, howmany);
- //write(AsteriskHandlesAst->fdesc[1], "\0", 1);
- //FIXME DEBUGA_SKYPE("SKYPE pipewrite: |||%s|||len=%d serial=%ld\n\n\n", SKYPIAX_P_LOG, b, strlen(b) + 1, an_event.xclient.serial);
- //switch_sleep(1000);
memset(buffer, '\0', 17000);
}
@@ -1178,7 +1010,6 @@
("Sending message failed - probably Skype crashed.\n\nPlease shutdown Skypiax (Asterisk), then restart Skype from the menu, then launch Skypiax and try again.\n",
SKYPIAX_P_LOG);
p->skype = 0;
- //FIXME p->skype_thread = SKYPIAX_PTHREADT_NULL;
p->skype_thread = NULL;
if (option_debug > 100) {
DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
@@ -1243,7 +1074,6 @@
#ifdef WIN32
rt = 1;
#else /* WIN32 */
-
fdselect = p->AsteriskHandlesAst.fdesc[0];
FD_ZERO(&fs);
FD_SET(fdselect, &fs);
@@ -1269,7 +1099,6 @@
if (read_from_pipe[i] == '\0') {
- //if (option_debug > 101)
DEBUGA_SKYPE("read_skype: howmany=%d, i=%d, a=%d, |||%s||| \n", SKYPIAX_P_LOG,
howmany, i, a, messaggio);
@@ -1479,9 +1308,7 @@
DEBUGA_SKYPE("Call %s received a DTMF: %s\n", SKYPIAX_P_LOG, id, value);
tech_pvt = p->tech_pvt;
- //if(tech_pvt)
session = tech_pvt->session;
- //if(session)
channel = switch_core_session_get_channel(session);
if (channel) {
@@ -1541,7 +1368,6 @@
strncpy(p->skype_call_id, id, sizeof(p->skype_call_id) - 1);
} else {
/* we're owned, we're in a call, let's refuse */
- //sprintf(msg_to_skype, "SET CALL %s STATUS REFUSED", id);
sprintf(msg_to_skype, "ALTER CALL %s END HANGUP", id);
skypiax_skype_write(p, msg_to_skype);
switch_sleep(10000);
@@ -1657,26 +1483,21 @@
if (1) { //FIXME
char msg_to_skype[1024];
+ switch_threadattr_t *thd_attr = NULL;
- if (1) { //FIXME
- switch_threadattr_t *thd_attr = NULL;
-
- switch_threadattr_create(&thd_attr, skypiax_module_pool);
- switch_threadattr_detach_set(thd_attr, 1);
- switch_threadattr_stacksize_set(thd_attr, SWITCH_THREAD_STACKSIZE);
- switch_thread_create(&p->tcp_srv_thread, thd_attr,
- skypiax_do_tcp_srv_thread, p,
- skypiax_module_pool);
- DEBUGA_SKYPE("started tcp_srv_thread thread.\n", SKYPIAX_P_LOG);
-
- switch_threadattr_create(&thd_attr, skypiax_module_pool);
- switch_threadattr_detach_set(thd_attr, 1);
- switch_threadattr_stacksize_set(thd_attr, SWITCH_THREAD_STACKSIZE);
- switch_thread_create(&p->tcp_cli_thread, thd_attr,
- skypiax_do_tcp_cli_thread, p,
- skypiax_module_pool);
- DEBUGA_SKYPE("started tcp_cli_thread thread.\n", SKYPIAX_P_LOG);
- }
+ switch_threadattr_create(&thd_attr, skypiax_module_pool);
+ switch_threadattr_detach_set(thd_attr, 1);
+ switch_threadattr_stacksize_set(thd_attr, SWITCH_THREAD_STACKSIZE);
+ switch_thread_create(&p->tcp_srv_thread, thd_attr,
+ skypiax_do_tcp_srv_thread, p, skypiax_module_pool);
+ DEBUGA_SKYPE("started tcp_srv_thread thread.\n", SKYPIAX_P_LOG);
+
+ switch_threadattr_create(&thd_attr, skypiax_module_pool);
+ switch_threadattr_detach_set(thd_attr, 1);
+ switch_threadattr_stacksize_set(thd_attr, SWITCH_THREAD_STACKSIZE);
+ switch_thread_create(&p->tcp_cli_thread, thd_attr,
+ skypiax_do_tcp_cli_thread, p, skypiax_module_pool);
+ DEBUGA_SKYPE("started tcp_cli_thread thread.\n", SKYPIAX_P_LOG);
switch_sleep(100000);
sprintf(msg_to_skype, "ALTER CALL %s SET_OUTPUT PORT=\"%d\"", id,
p->tcp_srv_port);
@@ -1690,8 +1511,6 @@
p->skype_callflow = SKYPIAX_STATE_UP;
- /**************************/
-
//FIXME switch_core_session_t **new_session;
//FIXME *new_session=switch_loadable_module_create_interface(skypiax_endpoint_interface, pool);
@@ -1719,8 +1538,6 @@
break;
}
- // if ((tech_pvt->caller_profile = switch_caller_profile_new(switch_core_session_get_pool(session), NULL, dialplan, cid_name, cid_num, ip, NULL, NULL, NULL, modname, NULL, dest)) != 0)
-
if ((tech_pvt->caller_profile =
switch_caller_profile_new(switch_core_session_get_pool(session),
"skypiax", "XML", p->callid_name,
@@ -1757,23 +1574,20 @@
session = tech_pvt->session;
} else {
ERRORA("No tech_pvt->session???\n", SKYPIAX_P_LOG);
-
}
- //session = global_session;
if (session) {
channel = switch_core_session_get_channel(session);
- //DEBUGA_SKYPE("skype_call: %s, answered\n", SKYPIAX_P_LOG, id);
- switch_channel_mark_answered(channel);
} else {
-
ERRORA("No session???\n", SKYPIAX_P_LOG);
-
}
-
- //switch_channel_set_state(channel, CS_EXECUTE);
+ if (channel) {
+ switch_channel_mark_answered(channel);
+ //DEBUGA_SKYPE("skype_call: %s, answered\n", SKYPIAX_P_LOG, id);
+ } else {
+ ERRORA("No channel???\n", SKYPIAX_P_LOG);
+ }
}
- /**************************/
} else {
WARNINGA("skype_call: %s, STATUS: %s is not recognized\n", SKYPIAX_P_LOG,
1
0
[commit] r11115 - freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax
by FreeSWITCH SVN 11 Jan '09
by FreeSWITCH SVN 11 Jan '09
11 Jan '09
Author: gmaruzz
Date: Sun Jan 11 01:56:56 2009
New Revision: 11115
Log:
skypiax: indent -gnu -ts4 -br -brs -cdw -lp -ce -nbfda -npcs -nprs -npsl -nbbo -saf -sai -saw -cs -bbo -nhnl -nut -sob -l90
Modified:
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c Sun Jan 11 01:56:56 2009
@@ -1,6 +1,5 @@
#include "skypiax.h"
-
SWITCH_MODULE_LOAD_FUNCTION(mod_skypiax_load);
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_skypiax_shutdown);
SWITCH_MODULE_DEFINITION(mod_skypiax, mod_skypiax_load, mod_skypiax_shutdown, NULL); //mod_skypiax_runtime);
@@ -69,7 +68,7 @@
(&tech_pvt->read_codec, "L16", NULL, sample_rate, codec_ms, 1,
SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE, NULL,
NULL) != SWITCH_STATUS_SUCCESS) {
- ERRORA( "Can't load codec?\n", SKYPIAX_P_LOG);
+ ERRORA("Can't load codec?\n", SKYPIAX_P_LOG);
return SWITCH_STATUS_FALSE;
}
@@ -77,7 +76,7 @@
(&tech_pvt->write_codec, "L16", NULL, sample_rate, codec_ms, 1,
SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE, NULL,
NULL) != SWITCH_STATUS_SUCCESS) {
- ERRORA( "Can't load codec?\n", SKYPIAX_P_LOG);
+ ERRORA("Can't load codec?\n", SKYPIAX_P_LOG);
switch_core_codec_destroy(&tech_pvt->read_codec);
return SWITCH_STATUS_FALSE;
}
@@ -111,9 +110,9 @@
}
if (skypiax_codec(tech_pvt, SAMPLERATE_SKYPIAX, 20) != SWITCH_STATUS_SUCCESS) {
- ERRORA( "skypiax_docec FAILED\n", SKYPIAX_P_LOG);
+ ERRORA("skypiax_docec FAILED\n", SKYPIAX_P_LOG);
} else {
- DEBUGA_SKYPE( "skypiax_codec SUCCESS\n", SKYPIAX_P_LOG);
+ DEBUGA_SKYPE("skypiax_codec SUCCESS\n", SKYPIAX_P_LOG);
}
DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
@@ -146,8 +145,7 @@
globals.calls++;
switch_mutex_unlock(globals.mutex);
- DEBUGA_SKYPE( "%s CHANNEL INIT\n", SKYPIAX_P_LOG,
- switch_channel_get_name(channel));
+ DEBUGA_SKYPE("%s CHANNEL INIT\n", SKYPIAX_P_LOG, switch_channel_get_name(channel));
return SWITCH_STATUS_SUCCESS;
}
@@ -186,8 +184,7 @@
switch_core_codec_destroy(&tech_pvt->write_codec);
}
- DEBUGA_SKYPE( "%s CHANNEL HANGUP\n", SKYPIAX_P_LOG,
- switch_channel_get_name(channel));
+ DEBUGA_SKYPE("%s CHANNEL HANGUP\n", SKYPIAX_P_LOG, switch_channel_get_name(channel));
switch_mutex_lock(globals.mutex);
globals.calls--;
if (globals.calls < 0) {
@@ -210,8 +207,7 @@
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- DEBUGA_SKYPE( "%s CHANNEL ROUTING\n", SKYPIAX_P_LOG,
- switch_channel_get_name(channel));
+ DEBUGA_SKYPE("%s CHANNEL ROUTING\n", SKYPIAX_P_LOG, switch_channel_get_name(channel));
return SWITCH_STATUS_SUCCESS;
}
@@ -229,8 +225,7 @@
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- DEBUGA_SKYPE( "%s CHANNEL EXECUTE\n", SKYPIAX_P_LOG,
- switch_channel_get_name(channel));
+ DEBUGA_SKYPE("%s CHANNEL EXECUTE\n", SKYPIAX_P_LOG, switch_channel_get_name(channel));
return SWITCH_STATUS_SUCCESS;
}
@@ -249,17 +244,15 @@
switch (sig) {
case SWITCH_SIG_KILL:
- DEBUGA_SKYPE(
- "%s CHANNEL got SWITCH_SIG_KILL\n", SKYPIAX_P_LOG,
- switch_channel_get_name(channel));
+ DEBUGA_SKYPE("%s CHANNEL got SWITCH_SIG_KILL\n", SKYPIAX_P_LOG,
+ switch_channel_get_name(channel));
switch_clear_flag_locked(tech_pvt, TFLAG_IO);
switch_clear_flag_locked(tech_pvt, TFLAG_VOICE);
switch_set_flag_locked(tech_pvt, TFLAG_HANGUP);
break;
case SWITCH_SIG_BREAK:
- DEBUGA_SKYPE(
- "%s CHANNEL got SWITCH_SIG_BREAK\n", SKYPIAX_P_LOG,
- switch_channel_get_name(channel));
+ DEBUGA_SKYPE("%s CHANNEL got SWITCH_SIG_BREAK\n", SKYPIAX_P_LOG,
+ switch_channel_get_name(channel));
switch_set_flag_locked(tech_pvt, TFLAG_BREAK);
break;
default:
@@ -272,14 +265,14 @@
static switch_status_t channel_on_exchange_media(switch_core_session_t * session)
{
skypiax_interface_t *p = NULL;
- DEBUGA_SKYPE( "CHANNEL LOOPBACK\n", SKYPIAX_P_LOG);
+ DEBUGA_SKYPE("CHANNEL LOOPBACK\n", SKYPIAX_P_LOG);
return SWITCH_STATUS_SUCCESS;
}
static switch_status_t channel_on_soft_execute(switch_core_session_t * session)
{
skypiax_interface_t *p = NULL;
- DEBUGA_SKYPE( "CHANNEL TRANSMIT\n", SKYPIAX_P_LOG);
+ DEBUGA_SKYPE("CHANNEL TRANSMIT\n", SKYPIAX_P_LOG);
return SWITCH_STATUS_SUCCESS;
}
@@ -292,9 +285,9 @@
p = tech_pvt->p;
- NOTICA( "DTMF: %c\n", SKYPIAX_P_LOG, dtmf->digit);
+ NOTICA("DTMF: %c\n", SKYPIAX_P_LOG, dtmf->digit);
-skypiax_skype_senddigit(p, dtmf->digit);
+ skypiax_skype_senddigit(p, dtmf->digit);
return SWITCH_STATUS_SUCCESS;
}
@@ -318,8 +311,7 @@
if (skypiax_skypeaudio_read(tech_pvt) != SWITCH_STATUS_SUCCESS) {
- ERRORA(
- "skypiax_skypeaudio_read ERROR\n", SKYPIAX_P_LOG);
+ ERRORA("skypiax_skypeaudio_read ERROR\n", SKYPIAX_P_LOG);
} else {
switch_set_flag_locked(tech_pvt, TFLAG_VOICE);
@@ -330,14 +322,12 @@
while (switch_test_flag(tech_pvt, TFLAG_IO)) {
if (switch_test_flag(tech_pvt, TFLAG_BREAK)) {
switch_clear_flag(tech_pvt, TFLAG_BREAK);
- DEBUGA_SKYPE(
- "CHANNEL READ FRAME goto CNG\n", SKYPIAX_P_LOG);
+ DEBUGA_SKYPE("CHANNEL READ FRAME goto CNG\n", SKYPIAX_P_LOG);
goto cng;
}
if (!switch_test_flag(tech_pvt, TFLAG_IO)) {
- DEBUGA_SKYPE(
- "CHANNEL READ FRAME not IO\n", SKYPIAX_P_LOG);
+ DEBUGA_SKYPE("CHANNEL READ FRAME not IO\n", SKYPIAX_P_LOG);
return SWITCH_STATUS_FALSE;
}
//DEBUGA_SKYPE( "============>\n");
@@ -345,8 +335,7 @@
if (switch_test_flag(tech_pvt, TFLAG_IO) && switch_test_flag(tech_pvt, TFLAG_VOICE)) {
switch_clear_flag_locked(tech_pvt, TFLAG_VOICE);
if (!tech_pvt->read_frame.datalen) {
- DEBUGA_SKYPE(
- "CHANNEL READ CONTINUE\n", SKYPIAX_P_LOG);
+ DEBUGA_SKYPE("CHANNEL READ CONTINUE\n", SKYPIAX_P_LOG);
continue;
}
*frame = &tech_pvt->read_frame;
@@ -358,12 +347,12 @@
return SWITCH_STATUS_SUCCESS;
}
- DEBUGA_SKYPE( "CHANNEL READ no TFLAG_IO\n", SKYPIAX_P_LOG);
+ DEBUGA_SKYPE("CHANNEL READ no TFLAG_IO\n", SKYPIAX_P_LOG);
return SWITCH_STATUS_FALSE;
}
- DEBUGA_SKYPE( "CHANNEL READ FALSE\n", SKYPIAX_P_LOG);
+ DEBUGA_SKYPE("CHANNEL READ FALSE\n", SKYPIAX_P_LOG);
return SWITCH_STATUS_FALSE;
cng:
@@ -488,7 +477,7 @@
body = "";
}
- WARNINGA( "event: |||%s|||\n", SKYPIAX_P_LOG, body);
+ WARNINGA("event: |||%s|||\n", SKYPIAX_P_LOG, body);
return SWITCH_STATUS_SUCCESS;
}
@@ -524,58 +513,60 @@
private_t *tech_pvt;
switch_channel_t *channel;
switch_caller_profile_t *caller_profile;
- skypiax_interface_t *p = NULL;
+ skypiax_interface_t *p = NULL;
switch_core_session_add_stream(*new_session, NULL);
-
if ((tech_pvt =
(private_t *) switch_core_session_alloc(*new_session, sizeof(private_t))) != 0) {
- int found=0;
- char interface_name[256];
-
-
- if (strlen(outbound_profile->destination_number)) {
- int i;
- char *slash;
-
- strncpy(interface_name, outbound_profile->destination_number, 255);
- slash=strrchr(interface_name, '/');
- *slash='\0';
+ int found = 0;
+ char interface_name[256];
+ if (strlen(outbound_profile->destination_number)) {
+ int i;
+ char *slash;
+
+ strncpy(interface_name, outbound_profile->destination_number, 255);
+ slash = strrchr(interface_name, '/');
+ *slash = '\0';
+
+ for (i = 0; i < SKYPIAX_MAX_INTERFACES; i++) {
+
+ if (strlen(globals.SKYPIAX_INTERFACES[i].name)
+ &&
+ (strncmp
+ (globals.SKYPIAX_INTERFACES[i].name, interface_name,
+ strlen(interface_name)) == 0)) {
+
+ DEBUGA_SKYPE("globals.SKYPIAX_INTERFACES[%d].name=|||%s|||?\n", SKYPIAX_P_LOG,
+ i, globals.SKYPIAX_INTERFACES[i].name);
+ tech_pvt->p = &globals.SKYPIAX_INTERFACES[i]; //FIXME
+ globals.SKYPIAX_INTERFACES[i].tech_pvt = tech_pvt; //FIXME
+ found = 1;
+ break;
+ }
- for(i=0; i< SKYPIAX_MAX_INTERFACES; i++){
-
- if( strlen(globals.SKYPIAX_INTERFACES[i].name) && (strncmp(globals.SKYPIAX_INTERFACES[i].name, interface_name, strlen(interface_name)) == 0 )) {
-
- DEBUGA_SKYPE( "globals.SKYPIAX_INTERFACES[%d].name=|||%s|||?\n", SKYPIAX_P_LOG, i, globals.SKYPIAX_INTERFACES[i].name);
- tech_pvt->p = &globals.SKYPIAX_INTERFACES[i]; //FIXME
- globals.SKYPIAX_INTERFACES[i].tech_pvt = tech_pvt; //FIXME
- found=1;
- break;
- }
-
- }
+ }
- } else {
- ERRORA( "Doh! no destination number?\n", SKYPIAX_P_LOG);
- switch_core_session_destroy(new_session);
- return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
- }
+ } else {
+ ERRORA("Doh! no destination number?\n", SKYPIAX_P_LOG);
+ switch_core_session_destroy(new_session);
+ return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
+ }
- if(!found){
- ERRORA( "Doh! no matching interface for |||%s|||?\n", SKYPIAX_P_LOG, interface_name);
- switch_core_session_destroy(new_session);
- return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
+ if (!found) {
+ ERRORA("Doh! no matching interface for |||%s|||?\n", SKYPIAX_P_LOG,
+ interface_name);
+ switch_core_session_destroy(new_session);
+ return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
- }
+ }
//tech_pvt->p = &globals.SKYPIAX_INTERFACES[19]; //FIXME
//globals.SKYPIAX_INTERFACES[19].tech_pvt = tech_pvt; //FIXME
channel = switch_core_session_get_channel(*new_session);
skypiax_tech_init(tech_pvt, *new_session, NULL);
} else {
- ERRORA(
- "Hey where is my memory pool?\n", SKYPIAX_P_LOG);
+ ERRORA("Hey where is my memory pool?\n", SKYPIAX_P_LOG);
switch_core_session_destroy(new_session);
return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
}
@@ -586,23 +577,26 @@
snprintf(name, sizeof(name), "skypiax/%s", outbound_profile->destination_number);
//snprintf(name, sizeof(name), "skypiax/%s", p->name);
switch_channel_set_name(channel, name);
- NOTICA( "outbound_profile->destination_number=|||%s|||\n", SKYPIAX_P_LOG, outbound_profile->destination_number);
- NOTICA( "outbound_profile->username=|||%s|||\n", SKYPIAX_P_LOG, outbound_profile->username);
- NOTICA( "outbound_profile->caller_id_name=|||%s|||\n", SKYPIAX_P_LOG, outbound_profile->caller_id_name);
- NOTICA( "outbound_profile->caller_id_number=|||%s|||\n", SKYPIAX_P_LOG, outbound_profile->caller_id_number);
+ NOTICA("outbound_profile->destination_number=|||%s|||\n", SKYPIAX_P_LOG,
+ outbound_profile->destination_number);
+ NOTICA("outbound_profile->username=|||%s|||\n", SKYPIAX_P_LOG,
+ outbound_profile->username);
+ NOTICA("outbound_profile->caller_id_name=|||%s|||\n", SKYPIAX_P_LOG,
+ outbound_profile->caller_id_name);
+ NOTICA("outbound_profile->caller_id_number=|||%s|||\n", SKYPIAX_P_LOG,
+ outbound_profile->caller_id_number);
caller_profile = switch_caller_profile_clone(*new_session, outbound_profile);
switch_channel_set_caller_profile(channel, caller_profile);
tech_pvt->caller_profile = caller_profile;
} else {
- ERRORA( "Doh! no caller profile\n", SKYPIAX_P_LOG);
+ ERRORA("Doh! no caller profile\n", SKYPIAX_P_LOG);
switch_core_session_destroy(new_session);
return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
}
skypiax_skype_call(tech_pvt->p, caller_profile->destination_number, 30, *new_session);
-
switch_channel_set_flag(channel, CF_OUTBOUND);
switch_set_flag_locked(tech_pvt, TFLAG_OUTBOUND);
switch_channel_set_state(channel, CS_INIT);
@@ -667,7 +661,7 @@
ERRORA("no tech_pvt?\n", SKYPIAX_P_LOG);
}
p->interface_state = SKYPIAX_STATE_DOWN;
- tech_pvt->session = NULL; //FIXME
+ tech_pvt->session = NULL; //FIXME
}
}
@@ -696,44 +690,36 @@
char *val = (char *) switch_xml_attr_soft(param, "value");
if (!strcasecmp(var, "debug")) {
- DEBUGA_SKYPE( "globals.debug=%d\n", SKYPIAX_P_LOG,
- globals.debug);
+ DEBUGA_SKYPE("globals.debug=%d\n", SKYPIAX_P_LOG, globals.debug);
globals.debug = atoi(val);
- DEBUGA_SKYPE( "globals.debug=%d\n", SKYPIAX_P_LOG,
- globals.debug);
+ DEBUGA_SKYPE("globals.debug=%d\n", SKYPIAX_P_LOG, globals.debug);
} else if (!strcasecmp(var, "hold-music")) {
switch_set_string(globals.hold_music, val);
- DEBUGA_SKYPE( "globals.hold_music=%s\n", SKYPIAX_P_LOG,
- globals.hold_music);
+ DEBUGA_SKYPE("globals.hold_music=%s\n", SKYPIAX_P_LOG, globals.hold_music);
} else if (!strcmp(var, "port")) {
globals.port = atoi(val);
- DEBUGA_SKYPE( "globals.port=%d\n", SKYPIAX_P_LOG,
- globals.port);
+ DEBUGA_SKYPE("globals.port=%d\n", SKYPIAX_P_LOG, globals.port);
} else if (!strcmp(var, "ip")) {
set_global_ip(val);
- DEBUGA_SKYPE( "globals.ip=%s\n", SKYPIAX_P_LOG,
- globals.ip);
+ DEBUGA_SKYPE("globals.ip=%s\n", SKYPIAX_P_LOG, globals.ip);
} else if (!strcmp(var, "codec-master")) {
if (!strcasecmp(val, "us")) {
switch_set_flag(&globals, GFLAG_MY_CODEC_PREFS);
}
- DEBUGA_SKYPE(
- "codec-master globals.debug=%d\n", SKYPIAX_P_LOG, globals.debug);
+ DEBUGA_SKYPE("codec-master globals.debug=%d\n", SKYPIAX_P_LOG, globals.debug);
} else if (!strcmp(var, "dialplan")) {
set_global_dialplan(val);
- DEBUGA_SKYPE( "globals.dialplan=%s\n", SKYPIAX_P_LOG,
- globals.dialplan);
+ DEBUGA_SKYPE("globals.dialplan=%s\n", SKYPIAX_P_LOG, globals.dialplan);
} else if (!strcmp(var, "codec-prefs")) {
set_global_codec_string(val);
- DEBUGA_SKYPE(
- "globals.codec_string=%s\n", SKYPIAX_P_LOG, globals.codec_string);
+ DEBUGA_SKYPE("globals.codec_string=%s\n", SKYPIAX_P_LOG, globals.codec_string);
globals.codec_order_last =
switch_separate_string(globals.codec_string, ',', globals.codec_order,
SWITCH_MAX_CODECS);
} else if (!strcmp(var, "codec-rates")) {
set_global_codec_rates_string(val);
- DEBUGA_SKYPE(
- "globals.codec_rates_string=%s\n", SKYPIAX_P_LOG, globals.codec_rates_string);
+ DEBUGA_SKYPE("globals.codec_rates_string=%s\n", SKYPIAX_P_LOG,
+ globals.codec_rates_string);
globals.codec_rates_last =
switch_separate_string(globals.codec_rates_string, ',', globals.codec_rates,
SWITCH_MAX_CODECS);
@@ -805,50 +791,41 @@
}
if (!skype_user) {
- ERRORA(
- "interface missing REQUIRED param 'skype_user'\n", SKYPIAX_P_LOG);
+ ERRORA("interface missing REQUIRED param 'skype_user'\n", SKYPIAX_P_LOG);
continue;
}
if (!skype_password) {
- ERRORA(
- "interface missing REQUIRED param 'skype_password'\n", SKYPIAX_P_LOG);
+ ERRORA("interface missing REQUIRED param 'skype_password'\n", SKYPIAX_P_LOG);
continue;
}
if (!X11_display) {
- ERRORA(
- "interface missing REQUIRED param 'X11_display'\n", SKYPIAX_P_LOG);
+ ERRORA("interface missing REQUIRED param 'X11_display'\n", SKYPIAX_P_LOG);
continue;
}
if (!tcp_cli_port) {
- ERRORA(
- "interface missing REQUIRED param 'tcp_cli_port'\n", SKYPIAX_P_LOG);
+ ERRORA("interface missing REQUIRED param 'tcp_cli_port'\n", SKYPIAX_P_LOG);
continue;
}
if (!tcp_srv_port) {
- ERRORA(
- "interface missing REQUIRED param 'tcp_srv_port'\n", SKYPIAX_P_LOG);
+ ERRORA("interface missing REQUIRED param 'tcp_srv_port'\n", SKYPIAX_P_LOG);
continue;
}
if (!id) {
- ERRORA(
- "interface missing REQUIRED param 'id'\n", SKYPIAX_P_LOG);
+ ERRORA("interface missing REQUIRED param 'id'\n", SKYPIAX_P_LOG);
continue;
}
if (switch_is_number(id)) {
interface_id = atoi(id);
- DEBUGA_SKYPE( "interface_id=%d\n", SKYPIAX_P_LOG,
- interface_id);
+ DEBUGA_SKYPE("interface_id=%d\n", SKYPIAX_P_LOG, interface_id);
} else {
- ERRORA(
- "interface param 'id' MUST be a number, now id='%s'\n", SKYPIAX_P_LOG, id);
+ ERRORA("interface param 'id' MUST be a number, now id='%s'\n", SKYPIAX_P_LOG, id);
continue;
}
if (!name) {
- WARNINGA(
- "interface missing param 'name', not nice, but works\n", SKYPIAX_P_LOG);
+ WARNINGA("interface missing param 'name', not nice, but works\n", SKYPIAX_P_LOG);
}
if (!tonegroup) {
@@ -864,7 +841,7 @@
}
if (name) {
- DEBUGA_SKYPE( "name=%s\n", SKYPIAX_P_LOG, name);
+ DEBUGA_SKYPE("name=%s\n", SKYPIAX_P_LOG, name);
}
#ifndef WIN32
if (!XInitThreads()) {
@@ -882,8 +859,7 @@
memset(&newconf, '\0', sizeof(newconf));
globals.SKYPIAX_INTERFACES[interface_id] = newconf;
- DEBUGA_SKYPE(
- "CONFIGURING interface_id=%d\n", SKYPIAX_P_LOG, interface_id);
+ DEBUGA_SKYPE("CONFIGURING interface_id=%d\n", SKYPIAX_P_LOG, interface_id);
switch_set_string(globals.SKYPIAX_INTERFACES[interface_id].interface_id, id);
if (name) {
switch_set_string(globals.SKYPIAX_INTERFACES[interface_id].name, name);
@@ -910,38 +886,37 @@
switch_set_string(globals.SKYPIAX_INTERFACES[interface_id].context, context);
switch_set_string(globals.SKYPIAX_INTERFACES[interface_id].dialplan, dialplan);
- DEBUGA_SKYPE(
- "interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].X11_display=%s\n", SKYPIAX_P_LOG,
- interface_id,
- globals.SKYPIAX_INTERFACES[interface_id].X11_display);
- DEBUGA_SKYPE(
- "interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].skype_user=%s\n", SKYPIAX_P_LOG,
- interface_id,
- globals.SKYPIAX_INTERFACES[interface_id].skype_user);
- DEBUGA_SKYPE(
- "interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].skype_password=%s\n", SKYPIAX_P_LOG,
- interface_id,
- globals.SKYPIAX_INTERFACES[interface_id].skype_password);
- DEBUGA_SKYPE(
- "interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].tcp_cli_port=%d\n", SKYPIAX_P_LOG,
- interface_id,
- globals.SKYPIAX_INTERFACES[interface_id].tcp_cli_port);
- DEBUGA_SKYPE(
- "interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].tcp_srv_port=%d\n", SKYPIAX_P_LOG,
- interface_id,
- globals.SKYPIAX_INTERFACES[interface_id].tcp_srv_port);
- DEBUGA_SKYPE(
- "interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].name=%s\n", SKYPIAX_P_LOG,
- interface_id, globals.SKYPIAX_INTERFACES[interface_id].name);
- DEBUGA_SKYPE(
- "interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].context=%s\n", SKYPIAX_P_LOG,
- interface_id, globals.SKYPIAX_INTERFACES[interface_id].context);
- DEBUGA_SKYPE(
- "interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].dialplan=%s\n", SKYPIAX_P_LOG,
- interface_id,
- globals.SKYPIAX_INTERFACES[interface_id].dialplan);
- NOTICA(
- "STARTING interface_id=%d\n", SKYPIAX_P_LOG, interface_id);
+ DEBUGA_SKYPE
+ ("interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].X11_display=%s\n",
+ SKYPIAX_P_LOG, interface_id,
+ globals.SKYPIAX_INTERFACES[interface_id].X11_display);
+ DEBUGA_SKYPE
+ ("interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].skype_user=%s\n",
+ SKYPIAX_P_LOG, interface_id,
+ globals.SKYPIAX_INTERFACES[interface_id].skype_user);
+ DEBUGA_SKYPE
+ ("interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].skype_password=%s\n",
+ SKYPIAX_P_LOG, interface_id,
+ globals.SKYPIAX_INTERFACES[interface_id].skype_password);
+ DEBUGA_SKYPE
+ ("interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].tcp_cli_port=%d\n",
+ SKYPIAX_P_LOG, interface_id,
+ globals.SKYPIAX_INTERFACES[interface_id].tcp_cli_port);
+ DEBUGA_SKYPE
+ ("interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].tcp_srv_port=%d\n",
+ SKYPIAX_P_LOG, interface_id,
+ globals.SKYPIAX_INTERFACES[interface_id].tcp_srv_port);
+ DEBUGA_SKYPE("interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].name=%s\n",
+ SKYPIAX_P_LOG, interface_id,
+ globals.SKYPIAX_INTERFACES[interface_id].name);
+ DEBUGA_SKYPE
+ ("interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].context=%s\n",
+ SKYPIAX_P_LOG, interface_id, globals.SKYPIAX_INTERFACES[interface_id].context);
+ DEBUGA_SKYPE
+ ("interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].dialplan=%s\n",
+ SKYPIAX_P_LOG, interface_id,
+ globals.SKYPIAX_INTERFACES[interface_id].dialplan);
+ NOTICA("STARTING interface_id=%d\n", SKYPIAX_P_LOG, interface_id);
switch_threadattr_create(&do_skype_thd_attr, skypiax_module_pool);
//switch_threadattr_detach_set(do_skype_thd_attr, 1);
@@ -969,16 +944,14 @@
skypiax_skypeaudio_init(&globals.SKYPIAX_INTERFACES[interface_id]);
-
- while(globals.SKYPIAX_INTERFACES[interface_id].AsteriskHandlesAst.api_connected == 0)
- switch_sleep(1000);
- NOTICA(
- "STARTED interface_id=%d\n", SKYPIAX_P_LOG, interface_id);
+ while (globals.SKYPIAX_INTERFACES[interface_id].AsteriskHandlesAst.
+ api_connected == 0)
+ switch_sleep(1000);
+ NOTICA("STARTED interface_id=%d\n", SKYPIAX_P_LOG, interface_id);
} else {
- ERRORA(
- "interface id %d is higher than SKYPIAX_MAX_INTERFACES (%d)\n", SKYPIAX_P_LOG,
- interface_id, SKYPIAX_MAX_INTERFACES);
+ ERRORA("interface id %d is higher than SKYPIAX_MAX_INTERFACES (%d)\n",
+ SKYPIAX_P_LOG, interface_id, SKYPIAX_MAX_INTERFACES);
continue;
}
@@ -986,21 +959,16 @@
for (i = 0; i < SKYPIAX_MAX_INTERFACES; i++) {
if (strlen(globals.SKYPIAX_INTERFACES[i].name)) {
- DEBUGA_SKYPE(
- "i=%d globals.SKYPIAX_INTERFACES[%d].interface_id=%s\n", SKYPIAX_P_LOG, i, i,
- globals.SKYPIAX_INTERFACES[i].interface_id);
- DEBUGA_SKYPE(
- "i=%d globals.SKYPIAX_INTERFACES[%d].X11_display=%s\n", SKYPIAX_P_LOG, i, i,
- globals.SKYPIAX_INTERFACES[i].X11_display);
- DEBUGA_SKYPE(
- "i=%d globals.SKYPIAX_INTERFACES[%d].name=%s\n", SKYPIAX_P_LOG, i, i,
- globals.SKYPIAX_INTERFACES[i].name);
- DEBUGA_SKYPE(
- "i=%d globals.SKYPIAX_INTERFACES[%d].context=%s\n", SKYPIAX_P_LOG, i, i,
- globals.SKYPIAX_INTERFACES[i].context);
- DEBUGA_SKYPE(
- "i=%d globals.SKYPIAX_INTERFACES[%d].dialplan=%s\n", SKYPIAX_P_LOG, i, i,
- globals.SKYPIAX_INTERFACES[i].dialplan);
+ DEBUGA_SKYPE("i=%d globals.SKYPIAX_INTERFACES[%d].interface_id=%s\n",
+ SKYPIAX_P_LOG, i, i, globals.SKYPIAX_INTERFACES[i].interface_id);
+ DEBUGA_SKYPE("i=%d globals.SKYPIAX_INTERFACES[%d].X11_display=%s\n",
+ SKYPIAX_P_LOG, i, i, globals.SKYPIAX_INTERFACES[i].X11_display);
+ DEBUGA_SKYPE("i=%d globals.SKYPIAX_INTERFACES[%d].name=%s\n", SKYPIAX_P_LOG, i, i,
+ globals.SKYPIAX_INTERFACES[i].name);
+ DEBUGA_SKYPE("i=%d globals.SKYPIAX_INTERFACES[%d].context=%s\n", SKYPIAX_P_LOG, i,
+ i, globals.SKYPIAX_INTERFACES[i].context);
+ DEBUGA_SKYPE("i=%d globals.SKYPIAX_INTERFACES[%d].dialplan=%s\n", SKYPIAX_P_LOG,
+ i, i, globals.SKYPIAX_INTERFACES[i].dialplan);
}
}
}
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c Sun Jan 11 01:56:56 2009
@@ -115,17 +115,14 @@
#ifdef WIN32
len = recv(fd, (char *) srv_in, 320, 0); //seems that Skype only sends 320 bytes at time
#else /* WIN32 */
- while(received < SAMPLES_PER_FRAME * sizeof(short)){
- len = recv(fd, srv_in + (received / sizeof(short)), (SAMPLES_PER_FRAME * sizeof(short)) - received, 0); //seems that Skype only sends 320 bytes at time
- received += len;
- if(len == 0)
- break;
- }
- if(len)
- len = received;
-
-
-
+ while (received < SAMPLES_PER_FRAME * sizeof(short)) {
+ len = recv(fd, srv_in + (received / sizeof(short)), (SAMPLES_PER_FRAME * sizeof(short)) - received, 0); //seems that Skype only sends 320 bytes at time
+ received += len;
+ if (len == 0)
+ break;
+ }
+ if (len)
+ len = received;
//len = recv(fd, srv_in, SAMPLES_PER_FRAME * sizeof(short), 0); //seems that Skype only sends 320 bytes at time
#endif /* WIN32 */
@@ -196,8 +193,8 @@
#endif /* WIN32 */
//p->audiobuf_is_loaded = 0;
//WARNINGA("SRV PIPE WRITE=====> req=%lu recv=%d to sent=%d sent=%u\n",
- //SKYPIAX_P_LOG, sizeof(short) * SAMPLES_PER_FRAME, len, len,
- //howmany);
+ //SKYPIAX_P_LOG, sizeof(short) * SAMPLES_PER_FRAME, len, len,
+ //howmany);
} else if (len == SAMPLES_PER_FRAME * sizeof(short) / 2) {
#if 1
@@ -508,14 +505,14 @@
switch_file_pipe_create(&p->audioskypepipe[0], &p->audioskypepipe[1],
skypiax_module_pool);
#else /* WIN32 */
- if(pipe(p->audiopipe)){
- fcntl(p->audiopipe[0], F_SETFL, O_NONBLOCK);
- fcntl(p->audiopipe[1], F_SETFL, O_NONBLOCK);
-}
- if (pipe(p->audioskypepipe)){
- fcntl(p->audioskypepipe[0], F_SETFL, O_NONBLOCK);
- fcntl(p->audioskypepipe[1], F_SETFL, O_NONBLOCK);
-}
+ if (pipe(p->audiopipe)) {
+ fcntl(p->audiopipe[0], F_SETFL, O_NONBLOCK);
+ fcntl(p->audiopipe[1], F_SETFL, O_NONBLOCK);
+ }
+ if (pipe(p->audioskypepipe)) {
+ fcntl(p->audioskypepipe[0], F_SETFL, O_NONBLOCK);
+ fcntl(p->audioskypepipe[1], F_SETFL, O_NONBLOCK);
+ }
#endif /* WIN32 */
//rv = switch_file_pipe_timeout_set(p->audiopipe[0], 100);
@@ -1030,23 +1027,20 @@
DEBUGA_PBX("ENTERING FUNC\n", SKYPIAX_P_LOG);
//switch_file_pipe_create(&p->AsteriskHandlesAst.fdesc[0], &p->AsteriskHandlesAst.fdesc[1], skypiax_module_pool);
-if(pipe(p->AsteriskHandlesAst.fdesc)){
- fcntl(p->AsteriskHandlesAst.fdesc[0], F_SETFL, O_NONBLOCK);
- fcntl(p->AsteriskHandlesAst.fdesc[1], F_SETFL, O_NONBLOCK);
-}
-
+ if (pipe(p->AsteriskHandlesAst.fdesc)) {
+ fcntl(p->AsteriskHandlesAst.fdesc[0], F_SETFL, O_NONBLOCK);
+ fcntl(p->AsteriskHandlesAst.fdesc[1], F_SETFL, O_NONBLOCK);
+ }
//switch_file_pipe_timeout_set(p->AsteriskHandlesAst.fdesc[0], 100);
AsteriskHandlesAst = &p->AsteriskHandlesAst;
//disp = XOpenDisplay(getenv("DISPLAY"));
disp = XOpenDisplay(p->X11_display);
if (!disp) {
- ERRORA(
- "Cannot open X Display '%s', exiting skype thread\n", SKYPIAX_P_LOG,
- p->X11_display);
+ ERRORA("Cannot open X Display '%s', exiting skype thread\n", SKYPIAX_P_LOG,
+ p->X11_display);
return NULL;
} else {
- DEBUGA_SKYPE( "X Display '%s' opened\n", SKYPIAX_P_LOG,
- p->X11_display);
+ DEBUGA_SKYPE("X Display '%s' opened\n", SKYPIAX_P_LOG, p->X11_display);
}
int xfd;
@@ -1234,10 +1228,9 @@
fd_set fs;
struct timeval to;
#endif /* WIN32 */
- private_t *tech_pvt = NULL;
-
- tech_pvt = p->tech_pvt;
+ private_t *tech_pvt = NULL;
+ tech_pvt = p->tech_pvt;
if (option_debug > 100) {
DEBUGA_PBX("ENTERING FUNC\n", SKYPIAX_P_LOG);
@@ -1280,15 +1273,17 @@
DEBUGA_SKYPE("read_skype: howmany=%d, i=%d, a=%d, |||%s||| \n", SKYPIAX_P_LOG,
howmany, i, a, messaggio);
- if (!strcasecmp(messaggio, "ERROR 68")) { /* not yet protocol specified,
- just authorized */
- DEBUGA_SKYPE ("If I don't connect immediately, please give the Skype client authorization to be connected by Skypiax (and to not ask you again)\n", SKYPIAX_P_LOG);
+ if (!strcasecmp(messaggio, "ERROR 68")) { /* not yet protocol specified,
+ just authorized */
+ DEBUGA_SKYPE
+ ("If I don't connect immediately, please give the Skype client authorization to be connected by Skypiax (and to not ask you again)\n",
+ SKYPIAX_P_LOG);
switch_sleep(1000000);
skypiax_skype_write(p, "PROTOCOL 6");
switch_sleep(10000);
return 0;
}
-
+
if (!strncasecmp(messaggio, "ERROR 92 CALL", 12)) {
ERRORA("Skype got ERROR: |||%s|||, the number we called was not recognized\n",
SKYPIAX_P_LOG, messaggio);
@@ -1365,66 +1360,67 @@
}
}
- if (!strcasecmp(messaggio, "USER")) {
- strncpy(obj, where, sizeof(obj) - 1);
-
- where = strsep(stringp, " ");
-
- strncpy(id, where, sizeof(id) - 1);
-
- where = strsep(stringp, " ");
-
- strncpy(prop, where, sizeof(prop) - 1);
-
- if (!strcasecmp(prop,"RECEIVEDAUTHREQUEST" )) {
- char msg_to_skype[256];
- DEBUGA_SKYPE ("Skype MSG: messaggio: %s, obj: %s, id: %s, prop: %s!\n", SKYPIAX_P_LOG, messaggio, obj, id, prop);
+ if (!strcasecmp(messaggio, "USER")) {
+ strncpy(obj, where, sizeof(obj) - 1);
- //FIXME: TODO: allow authorization based on config param
- sprintf(msg_to_skype, "SET USER %s ISAUTHORIZED TRUE", id);
- skypiax_skype_write(p, msg_to_skype);
- }
- }
+ where = strsep(stringp, " ");
+ strncpy(id, where, sizeof(id) - 1);
- if (!strcasecmp(messaggio, "MESSAGE")) {
- strncpy(obj, where, sizeof(obj) - 1);
+ where = strsep(stringp, " ");
- where = strsep(stringp, " ");
+ strncpy(prop, where, sizeof(prop) - 1);
- strncpy(id, where, sizeof(id) - 1);
+ if (!strcasecmp(prop, "RECEIVEDAUTHREQUEST")) {
+ char msg_to_skype[256];
+ DEBUGA_SKYPE("Skype MSG: messaggio: %s, obj: %s, id: %s, prop: %s!\n",
+ SKYPIAX_P_LOG, messaggio, obj, id, prop);
+
+ //FIXME: TODO: allow authorization based on config param
+ sprintf(msg_to_skype, "SET USER %s ISAUTHORIZED TRUE", id);
+ skypiax_skype_write(p, msg_to_skype);
+ }
+ }
- where = strsep(stringp, " ");
+ if (!strcasecmp(messaggio, "MESSAGE")) {
+ strncpy(obj, where, sizeof(obj) - 1);
- strncpy(prop, where, sizeof(prop) - 1);
+ where = strsep(stringp, " ");
- if (!strcasecmp(prop,"STATUS" )) {
+ strncpy(id, where, sizeof(id) - 1);
- where = strsep(stringp, " ");
+ where = strsep(stringp, " ");
- strncpy(value, where, sizeof(value) - 1);
+ strncpy(prop, where, sizeof(prop) - 1);
+ if (!strcasecmp(prop, "STATUS")) {
- if (!strcasecmp(value,"RECEIVED" )) {
- char msg_to_skype[256];
- DEBUGA_SKYPE ("Skype MSG: messaggio: %s, obj: %s, id: %s, prop: %s value: %s!\n", SKYPIAX_P_LOG, messaggio, obj, id, prop, value);
+ where = strsep(stringp, " ");
- //FIXME: TODO: allow authorization based on config param
- sprintf(msg_to_skype, "SET MESSAGE %s SEEN", id);
- skypiax_skype_write(p, msg_to_skype);
- }
- } else if (!strcasecmp(prop,"BODY" )) {
- char msg_to_skype[256];
+ strncpy(value, where, sizeof(value) - 1);
- DEBUGA_SKYPE ("Skype MSG: messaggio: %s, obj: %s, id: %s, prop: %s!\n", SKYPIAX_P_LOG, messaggio, obj, id, prop);
+ if (!strcasecmp(value, "RECEIVED")) {
+ char msg_to_skype[256];
+ DEBUGA_SKYPE
+ ("Skype MSG: messaggio: %s, obj: %s, id: %s, prop: %s value: %s!\n",
+ SKYPIAX_P_LOG, messaggio, obj, id, prop, value);
+
+ //FIXME: TODO: allow authorization based on config param
+ sprintf(msg_to_skype, "SET MESSAGE %s SEEN", id);
+ skypiax_skype_write(p, msg_to_skype);
+ }
+ } else if (!strcasecmp(prop, "BODY")) {
+ char msg_to_skype[256];
- //FIXME: TODO: on config param ???
- sprintf(msg_to_skype, "SET MESSAGE %s SEEN", id);
- skypiax_skype_write(p, msg_to_skype);
- }
+ DEBUGA_SKYPE("Skype MSG: messaggio: %s, obj: %s, id: %s, prop: %s!\n",
+ SKYPIAX_P_LOG, messaggio, obj, id, prop);
- }
+ //FIXME: TODO: on config param ???
+ sprintf(msg_to_skype, "SET MESSAGE %s SEEN", id);
+ skypiax_skype_write(p, msg_to_skype);
+ }
+ }
if (!strcasecmp(messaggio, "CALL")) {
@@ -1491,8 +1487,8 @@
if (channel) {
switch_dtmf_t dtmf =
{ (char) value[0], switch_core_default_dtmf_duration(0) };
- NOTICA("%c DTMF %s\n", SKYPIAX_P_LOG,
- dtmf.digit, switch_channel_get_name(channel));
+ NOTICA("%c DTMF %s\n", SKYPIAX_P_LOG, dtmf.digit,
+ switch_channel_get_name(channel));
switch_mutex_lock(tech_pvt->flag_mutex);
switch_channel_queue_dtmf(channel, &dtmf);
switch_set_flag(tech_pvt, TFLAG_DTMF);
@@ -1700,13 +1696,12 @@
//FIXME *new_session=switch_loadable_module_create_interface(skypiax_endpoint_interface, pool);
- if (!p->tech_pvt || !tech_pvt->session) { //FIXME FIXME FIXME
+ if (!p->tech_pvt || !tech_pvt->session) { //FIXME FIXME FIXME
switch_core_session_t *session = NULL;
private_t *tech_pvt = NULL;
switch_channel_t *channel = NULL;
- NOTICA(
- "New Inbound Channel!\n", SKYPIAX_P_LOG);
+ NOTICA("New Inbound Channel!\n", SKYPIAX_P_LOG);
if ((session =
switch_core_session_request(skypiax_endpoint_interface,
@@ -1719,8 +1714,7 @@
channel = switch_core_session_get_channel(session);
skypiax_tech_init(tech_pvt, session, p);
} else {
- ERRORA(
- "Hey where is my memory pool?\n", SKYPIAX_P_LOG);
+ ERRORA("Hey where is my memory pool?\n", SKYPIAX_P_LOG);
switch_core_session_destroy(&session);
break;
}
@@ -1743,8 +1737,7 @@
switch_channel_set_state(channel, CS_INIT);
if (switch_core_session_thread_launch(session) !=
SWITCH_STATUS_SUCCESS) {
- ERRORA(
- "Error spawning thread\n", SKYPIAX_P_LOG);
+ ERRORA("Error spawning thread\n", SKYPIAX_P_LOG);
switch_core_session_destroy(&session);
}
}
@@ -1755,27 +1748,27 @@
private_t *tech_pvt = NULL;
switch_channel_t *channel = NULL;
- if(p->tech_pvt){
- tech_pvt = p->tech_pvt;
- } else {
- ERRORA("No p->tech_pvt???\n", SKYPIAX_P_LOG);
- }
- if(tech_pvt->session){
- session = tech_pvt->session;
- }else {
- ERRORA("No tech_pvt->session???\n", SKYPIAX_P_LOG);
+ if (p->tech_pvt) {
+ tech_pvt = p->tech_pvt;
+ } else {
+ ERRORA("No p->tech_pvt???\n", SKYPIAX_P_LOG);
+ }
+ if (tech_pvt->session) {
+ session = tech_pvt->session;
+ } else {
+ ERRORA("No tech_pvt->session???\n", SKYPIAX_P_LOG);
- }
+ }
//session = global_session;
- if(session){
- channel = switch_core_session_get_channel(session);
- //DEBUGA_SKYPE("skype_call: %s, answered\n", SKYPIAX_P_LOG, id);
- switch_channel_mark_answered(channel);
- }else {
+ if (session) {
+ channel = switch_core_session_get_channel(session);
+ //DEBUGA_SKYPE("skype_call: %s, answered\n", SKYPIAX_P_LOG, id);
+ switch_channel_mark_answered(channel);
+ } else {
- ERRORA("No session???\n", SKYPIAX_P_LOG);
+ ERRORA("No session???\n", SKYPIAX_P_LOG);
- }
+ }
//switch_channel_set_state(channel, CS_EXECUTE);
@@ -1830,7 +1823,7 @@
char *rdest;
char msg_to_skype[1024];
private_t *tech_pvt;
- switch_caller_profile_t *caller_profile;
+ switch_caller_profile_t *caller_profile;
tech_pvt = p->tech_pvt;
@@ -1863,7 +1856,6 @@
caller_profile = tech_pvt->caller_profile;
caller_profile->destination_number = rdest;
-
//FIXME ast_queue_control(p->owner, SKYPIAX_CONTROL_RINGING);
return 0;
}
1
0
[commit] r11114 - freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax
by FreeSWITCH SVN 10 Jan '09
by FreeSWITCH SVN 10 Jan '09
10 Jan '09
Author: gmaruzz
Date: Sat Jan 10 12:54:35 2009
New Revision: 11114
Log:
skypiax: various minor adjustments
Modified:
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c Sat Jan 10 12:54:35 2009
@@ -540,7 +540,7 @@
char *slash;
strncpy(interface_name, outbound_profile->destination_number, 255);
- slash=strchr(interface_name, '/');
+ slash=strrchr(interface_name, '/');
*slash='\0';
@@ -584,11 +584,12 @@
char name[128];
snprintf(name, sizeof(name), "skypiax/%s", outbound_profile->destination_number);
+ //snprintf(name, sizeof(name), "skypiax/%s", p->name);
switch_channel_set_name(channel, name);
- //NOTICA( "outbound_profile->destination_number=|||%s|||\n", SKYPIAX_P_LOG, outbound_profile->destination_number);
- //NOTICA( "outbound_profile->username=|||%s|||\n", SKYPIAX_P_LOG, outbound_profile->username);
- //NOTICA( "outbound_profile->caller_id_name=|||%s|||\n", SKYPIAX_P_LOG, outbound_profile->caller_id_name);
- //NOTICA( "outbound_profile->caller_id_number=|||%s|||\n", SKYPIAX_P_LOG, outbound_profile->caller_id_number);
+ NOTICA( "outbound_profile->destination_number=|||%s|||\n", SKYPIAX_P_LOG, outbound_profile->destination_number);
+ NOTICA( "outbound_profile->username=|||%s|||\n", SKYPIAX_P_LOG, outbound_profile->username);
+ NOTICA( "outbound_profile->caller_id_name=|||%s|||\n", SKYPIAX_P_LOG, outbound_profile->caller_id_name);
+ NOTICA( "outbound_profile->caller_id_number=|||%s|||\n", SKYPIAX_P_LOG, outbound_profile->caller_id_number);
caller_profile = switch_caller_profile_clone(*new_session, outbound_profile);
switch_channel_set_caller_profile(channel, caller_profile);
@@ -601,6 +602,7 @@
skypiax_skype_call(tech_pvt->p, caller_profile->destination_number, 30, *new_session);
+
switch_channel_set_flag(channel, CF_OUTBOUND);
switch_set_flag_locked(tech_pvt, TFLAG_OUTBOUND);
switch_channel_set_state(channel, CS_INIT);
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c Sat Jan 10 12:54:35 2009
@@ -570,7 +570,7 @@
if (samples != SAMPLES_PER_FRAME * sizeof(short)) {
if (samples)
- ERRORA("SRV PIPE READ=====> NOT GOOD samples=%u expected=%u\n", SKYPIAX_P_LOG,
+ ERRORA("SRV PIPE READ=====> NOT GOOD samples=%u expected=%lu\n", SKYPIAX_P_LOG,
samples, SAMPLES_PER_FRAME * sizeof(short));
//do nothing
} else {
@@ -1734,9 +1734,8 @@
NULL, NULL, "mod_skypiax", "public",
"5000")) != 0) {
char name[128];
- switch_snprintf(name, sizeof(name), "skypiax/%s-%04x",
- tech_pvt->caller_profile->destination_number,
- rand() & 0xffff);
+ //switch_snprintf(name, sizeof(name), "skypiax/%s/%s", p->name, tech_pvt->caller_profile->destination_number);
+ switch_snprintf(name, sizeof(name), "skypiax/%s", p->name);
switch_channel_set_name(channel, name);
switch_channel_set_caller_profile(channel,
tech_pvt->caller_profile);
@@ -1756,12 +1755,27 @@
private_t *tech_pvt = NULL;
switch_channel_t *channel = NULL;
+ if(p->tech_pvt){
tech_pvt = p->tech_pvt;
+ } else {
+ ERRORA("No p->tech_pvt???\n", SKYPIAX_P_LOG);
+ }
+ if(tech_pvt->session){
session = tech_pvt->session;
+ }else {
+ ERRORA("No tech_pvt->session???\n", SKYPIAX_P_LOG);
+
+ }
//session = global_session;
+ if(session){
channel = switch_core_session_get_channel(session);
//DEBUGA_SKYPE("skype_call: %s, answered\n", SKYPIAX_P_LOG, id);
switch_channel_mark_answered(channel);
+ }else {
+
+ ERRORA("No session???\n", SKYPIAX_P_LOG);
+
+ }
//switch_channel_set_state(channel, CS_EXECUTE);
@@ -1816,6 +1830,7 @@
char *rdest;
char msg_to_skype[1024];
private_t *tech_pvt;
+ switch_caller_profile_t *caller_profile;
tech_pvt = p->tech_pvt;
@@ -1845,6 +1860,9 @@
return -1;
}
tech_pvt->session = session;
+ caller_profile = tech_pvt->caller_profile;
+ caller_profile->destination_number = rdest;
+
//FIXME ast_queue_control(p->owner, SKYPIAX_CONTROL_RINGING);
return 0;
1
0
[commit] r11111 - freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax
by FreeSWITCH SVN 10 Jan '09
by FreeSWITCH SVN 10 Jan '09
10 Jan '09
Author: gmaruzz
Date: Sat Jan 10 06:18:35 2009
New Revision: 11111
Log:
skypiax: always (will be under config param) mark the MESSAGE received by Skype client as SEEN (READ) and so deleting them from the unread list
Modified:
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c Sat Jan 10 06:18:35 2009
@@ -1365,26 +1365,65 @@
}
}
- if (!strcasecmp(messaggio, "USER")) {
- strncpy(obj, where, sizeof(obj) - 1);
+ if (!strcasecmp(messaggio, "USER")) {
+ strncpy(obj, where, sizeof(obj) - 1);
- where = strsep(stringp, " ");
+ where = strsep(stringp, " ");
- strncpy(id, where, sizeof(id) - 1);
+ strncpy(id, where, sizeof(id) - 1);
- where = strsep(stringp, " ");
+ where = strsep(stringp, " ");
- strncpy(prop, where, sizeof(prop) - 1);
+ strncpy(prop, where, sizeof(prop) - 1);
- if (!strcasecmp(prop,"RECEIVEDAUTHREQUEST" )) {
- char msg_to_skype[256];
- DEBUGA_SKYPE ("Skype MSG: messaggio: %s, obj: %s, id: %s, prop: %s!\n", SKYPIAX_P_LOG, messaggio, obj, id, prop);
+ if (!strcasecmp(prop,"RECEIVEDAUTHREQUEST" )) {
+ char msg_to_skype[256];
+ DEBUGA_SKYPE ("Skype MSG: messaggio: %s, obj: %s, id: %s, prop: %s!\n", SKYPIAX_P_LOG, messaggio, obj, id, prop);
- //FIXME: TODO: allow authorization based on config param
- sprintf(msg_to_skype, "SET USER %s ISAUTHORIZED TRUE", id);
- skypiax_skype_write(p, msg_to_skype);
- }
- }
+ //FIXME: TODO: allow authorization based on config param
+ sprintf(msg_to_skype, "SET USER %s ISAUTHORIZED TRUE", id);
+ skypiax_skype_write(p, msg_to_skype);
+ }
+ }
+
+
+ if (!strcasecmp(messaggio, "MESSAGE")) {
+ strncpy(obj, where, sizeof(obj) - 1);
+
+ where = strsep(stringp, " ");
+
+ strncpy(id, where, sizeof(id) - 1);
+
+ where = strsep(stringp, " ");
+
+ strncpy(prop, where, sizeof(prop) - 1);
+
+ if (!strcasecmp(prop,"STATUS" )) {
+
+ where = strsep(stringp, " ");
+
+ strncpy(value, where, sizeof(value) - 1);
+
+
+ if (!strcasecmp(value,"RECEIVED" )) {
+ char msg_to_skype[256];
+ DEBUGA_SKYPE ("Skype MSG: messaggio: %s, obj: %s, id: %s, prop: %s value: %s!\n", SKYPIAX_P_LOG, messaggio, obj, id, prop, value);
+
+ //FIXME: TODO: allow authorization based on config param
+ sprintf(msg_to_skype, "SET MESSAGE %s SEEN", id);
+ skypiax_skype_write(p, msg_to_skype);
+ }
+ } else if (!strcasecmp(prop,"BODY" )) {
+ char msg_to_skype[256];
+
+ DEBUGA_SKYPE ("Skype MSG: messaggio: %s, obj: %s, id: %s, prop: %s!\n", SKYPIAX_P_LOG, messaggio, obj, id, prop);
+
+ //FIXME: TODO: on config param ???
+ sprintf(msg_to_skype, "SET MESSAGE %s SEEN", id);
+ skypiax_skype_write(p, msg_to_skype);
+ }
+
+ }
if (!strcasecmp(messaggio, "CALL")) {
1
0
[commit] r11110 - freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax
by FreeSWITCH SVN 10 Jan '09
by FreeSWITCH SVN 10 Jan '09
10 Jan '09
Author: gmaruzz
Date: Sat Jan 10 05:16:41 2009
New Revision: 11110
Log:
skypiax: always (will be under config param) authorize to be added as a contact and seen online
Modified:
freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c (original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/skypiax_protocol.c Sat Jan 10 05:16:41 2009
@@ -1365,6 +1365,28 @@
}
}
+ if (!strcasecmp(messaggio, "USER")) {
+ strncpy(obj, where, sizeof(obj) - 1);
+
+ where = strsep(stringp, " ");
+
+ strncpy(id, where, sizeof(id) - 1);
+
+ where = strsep(stringp, " ");
+
+ strncpy(prop, where, sizeof(prop) - 1);
+
+ if (!strcasecmp(prop,"RECEIVEDAUTHREQUEST" )) {
+ char msg_to_skype[256];
+ DEBUGA_SKYPE ("Skype MSG: messaggio: %s, obj: %s, id: %s, prop: %s!\n", SKYPIAX_P_LOG, messaggio, obj, id, prop);
+
+ //FIXME: TODO: allow authorization based on config param
+ sprintf(msg_to_skype, "SET USER %s ISAUTHORIZED TRUE", id);
+ skypiax_skype_write(p, msg_to_skype);
+ }
+ }
+
+
if (!strcasecmp(messaggio, "CALL")) {
strncpy(obj, where, sizeof(obj) - 1);
1
0