[Freeswitch-svn] [commit] r11679 - in freeswitch/branches/gmaruzz/mod_skypiax: . asterisk

FreeSWITCH SVN gmaruzz at freeswitch.org
Sat Feb 7 06:09:40 PST 2009


Author: gmaruzz
Date: Sat Feb  7 08:09:40 2009
New Revision: 11679

Log:
skypiax: * compile and works on Cygwin

Modified:
   freeswitch/branches/gmaruzz/mod_skypiax/asterisk/chan_skypiax.c
   freeswitch/branches/gmaruzz/mod_skypiax/asterisk/skypiax.conf
   freeswitch/branches/gmaruzz/mod_skypiax/asterisk/skypiax.h
   freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c

Modified: freeswitch/branches/gmaruzz/mod_skypiax/asterisk/chan_skypiax.c
==============================================================================
--- freeswitch/branches/gmaruzz/mod_skypiax/asterisk/chan_skypiax.c	(original)
+++ freeswitch/branches/gmaruzz/mod_skypiax/asterisk/chan_skypiax.c	Sat Feb  7 08:09:40 2009
@@ -1285,6 +1285,7 @@
       M_UINT("tcp_srv_port", tmp->tcp_srv_port)
       M_F("playback_boost", skypiax_store_boost(v->value, &tmp->playback_boost))
       M_F("capture_boost", skypiax_store_boost(v->value, &tmp->capture_boost))
+      M_STR("skype_user", tmp->skype_user)
       M_UINT("skypiax_dir_entry_extension_prefix",
              tmp->skypiax_dir_entry_extension_prefix)
       M_END(;);
@@ -1404,6 +1405,7 @@
     free(tmp);
     return NULL;
   }
+  /*
   res = pipe(tmp->SkypiaxHandles.fdesc);
   if (res) {
     ast_log(LOG_ERROR, "Unable to create skype pipe\n");
@@ -1415,6 +1417,7 @@
   }
   fcntl(tmp->SkypiaxHandles.fdesc[0], F_SETFL, O_NONBLOCK);
   fcntl(tmp->SkypiaxHandles.fdesc[1], F_SETFL, O_NONBLOCK);
+  */
   tmp->skype_thread = AST_PTHREADT_NULL;
 
   if (tmp->skype) {
@@ -1424,7 +1427,7 @@
               (unsigned long) AST_PTHREADT_NULL);
 #ifdef __CYGWIN__
     if (ast_pthread_create
-        (&tmp->skype_thread, NULL, do_skypeapi_thread, &tmp->SkypiaxHandles) < 0) {
+        (&tmp->skype_thread, NULL, do_skypeapi_thread, tmp) < 0) {
       ast_log(LOG_ERROR, "Unable to start skype_main thread.\n");
       if (option_debug > 10) {
         DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_TMP_LOG);

Modified: freeswitch/branches/gmaruzz/mod_skypiax/asterisk/skypiax.conf
==============================================================================
--- freeswitch/branches/gmaruzz/mod_skypiax/asterisk/skypiax.conf	(original)
+++ freeswitch/branches/gmaruzz/mod_skypiax/asterisk/skypiax.conf	Sat Feb  7 08:09:40 2009
@@ -53,6 +53,7 @@
 X11_display=:101
 tcp_cli_port=11234
 tcp_srv_port=11235
+skype_user=gmaruzz2
 ;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;
 ; audio boost settings, valid for all platforms, to compensate for different input/output audio signal levels
@@ -63,57 +64,58 @@
 playback_boost=0 ; 
 capture_boost=0 ; 
 
-[skypeclient2] 
-;;;;;;;;;;;;;;;;;;;;;;;;;
-;;;;;;;;;;;;;;;;;;;;;;;;;
-; general settings, valid on all platforms
-;
-; 
-; Default language 
-; 
-language=en 
-; 
-; Default context (in extensions.conf, can be overridden with @context syntax) 
-; 
-context=default 
-; 
-; Default extension (in extensions.conf) where incoming calls land
-; 
-extension=s 
-; 
-;;;;;;;;;;;;;;;;;;;;;;;;;
-;;;;;;;;;;;;;;;;;;;;;;;;;
-; Debugging settings, valid globally for all interfaces on all platforms
-;
-; the debug values are global for all the interfaces.
-;
-; default is no skypiax debugging output, you **have** to activate debugging here to obtain debugging from skypiax
-;
-; To see the debugging output you have to "set debug 100" from the Asterisk CLI or launch
-; Asterisk with -ddddddddddd option, and have the logger.conf file activating debug info for console and messages
-;
-; You can activate each of the following separately, but you can't disactivate. Eg: debug_at=no does not subtract debug_at from debug_all
-; debug_all activate all possible debugging info
-;
-;debug_all=yes
-debug_skype=yes
-debug_pbx=yes
-;debug_sound=yes
-;debug_locks=yes
-;debug_monitorlocks=yes
-
-skype=yes ; legacy setting, leave it to yes
-X11_display=:102
-tcp_cli_port=11236
-tcp_srv_port=11237
-;;;;;;;;;;;;;;;;;;;;;;;;;
-;;;;;;;;;;;;;;;;;;;;;;;;;
-; audio boost settings, valid for all platforms, to compensate for different input/output audio signal levels
-; tweak it if you get horrible (or not hearable) sound
-;
-;boost can be positive or negative (-40 to +40) in db
-;experiment to find which values are best for your computer
-playback_boost=0 ; 
-capture_boost=0 ; 
-
-
+;;;[skypeclient2] 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;; general settings, valid on all platforms
+;;;;
+;;;; 
+;;;; Default language 
+;;;; 
+;;;language=en 
+;;;; 
+;;;; Default context (in extensions.conf, can be overridden with @context syntax) 
+;;;; 
+;;;context=default 
+;;;; 
+;;;; Default extension (in extensions.conf) where incoming calls land
+;;;; 
+;;;extension=s 
+;;;; 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;; Debugging settings, valid globally for all interfaces on all platforms
+;;;;
+;;;; the debug values are global for all the interfaces.
+;;;;
+;;;; default is no skypiax debugging output, you **have** to activate debugging here to obtain debugging from skypiax
+;;;;
+;;;; To see the debugging output you have to "set debug 100" from the Asterisk CLI or launch
+;;;; Asterisk with -ddddddddddd option, and have the logger.conf file activating debug info for console and messages
+;;;;
+;;;; You can activate each of the following separately, but you can't disactivate. Eg: debug_at=no does not subtract debug_at from debug_all
+;;;; debug_all activate all possible debugging info
+;;;;
+;;;;debug_all=yes
+;;;debug_skype=yes
+;;;debug_pbx=yes
+;;;;debug_sound=yes
+;;;;debug_locks=yes
+;;;;debug_monitorlocks=yes
+;;;
+;;;skype=yes ; legacy setting, leave it to yes
+;;;X11_display=:102
+;;;tcp_cli_port=11236
+;;;tcp_srv_port=11237
+;;;skype_user=gmaruzz3
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;; audio boost settings, valid for all platforms, to compensate for different input/output audio signal levels
+;;;; tweak it if you get horrible (or not hearable) sound
+;;;;
+;;;;boost can be positive or negative (-40 to +40) in db
+;;;;experiment to find which values are best for your computer
+;;;playback_boost=0 ; 
+;;;capture_boost=0 ; 
+;;;
+;;;

Modified: freeswitch/branches/gmaruzz/mod_skypiax/asterisk/skypiax.h
==============================================================================
--- freeswitch/branches/gmaruzz/mod_skypiax/asterisk/skypiax.h	(original)
+++ freeswitch/branches/gmaruzz/mod_skypiax/asterisk/skypiax.h	Sat Feb  7 08:09:40 2009
@@ -230,7 +230,7 @@
   UINT win32_uiGlobal_MsgID_SkypeControlAPIAttach;
   UINT win32_uiGlobal_MsgID_SkypeControlAPIDiscover;
   int api_connected;
-  switch_file_t *fdesc[2];
+  int fdesc[2];
 };
 
 #endif //WIN32
@@ -329,10 +329,11 @@
 void skypiax_skype_clean_disp(void *data);
 #endif /* WANT_SKYPE_X11 */
 #ifdef __CYGWIN__
-int win32_Initialize_CreateWindowClass(void);
-void win32_DeInitialize_DestroyWindowClass(void);
-int win32_Initialize_CreateMainWindow(void);
-void win32_DeInitialize_DestroyMainWindow(void);
+
+int win32_Initialize_CreateWindowClass(private_t * tech_pvt);
+void win32_DeInitialize_DestroyWindowClass(private_t * tech_pvt);
+int win32_Initialize_CreateMainWindow(private_t * tech_pvt);
+void win32_DeInitialize_DestroyMainWindow(private_t * tech_pvt);
 #endif /* __CYGWIN__ */
 
 /* CHAN_SKYPIAX.C */

Modified: freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c
==============================================================================
--- freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c	(original)
+++ freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c	Sat Feb  7 08:09:40 2009
@@ -4,8 +4,8 @@
 #define skypiax_sleep usleep
 #define tech_pvt p
 extern int skypiax_debug;
-#define skypiax_file_write switch_file_write
-#define skypiax_file_read switch_file_read
+//#define skypiax_file_write switch_file_write
+//#define skypiax_file_read switch_file_read
 extern char *skypiax_console_active;
 #else /* FREESWITCH */
 #define skypiax_sleep switch_sleep
@@ -157,7 +157,7 @@
 
               howmany = len;
 
-#ifdef WIN32
+#if defined(WIN32) && !defined(__CYGWIN__) 
               skypiax_file_write(tech_pvt->audiopipe[1], totalbuf, &howmany);
 #else /* WIN32 */
               howmany = write(tech_pvt->audiopipe[1], totalbuf, howmany);
@@ -179,7 +179,7 @@
           //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
+#if defined(WIN32) && !defined(__CYGWIN__) 
               unsigned int howmany;
 
               howmany = len;
@@ -203,7 +203,7 @@
                   i++;
                 }
 
-#ifdef WIN32
+#if defined(WIN32) && !defined(__CYGWIN__) 
                 skypiax_file_write(tech_pvt->audiopipe[1], totalbuf, &howmany);
 #else /* WIN32 */
                 howmany = write(tech_pvt->audiopipe[1], totalbuf, howmany);
@@ -233,7 +233,7 @@
         skypiax_sleep(10000);
       }
     }
-#ifdef WIN32
+#if defined(WIN32) && !defined(__CYGWIN__) 
     kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
     skypiax_file_write(tech_pvt->audiopipe[1], kill_cli_buff, &kill_cli_size);
     kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
@@ -255,20 +255,20 @@
     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
-    close(fd);
-#else
+#if defined(WIN32) && !defined(__CYGWIN__) 
     closesocket(fd);
+#else
+    close(fd);
 #endif
     if (exit)
       break;
   }
 
   DEBUGA_SKYPE("server (I am it) GONE\n", SKYPIAX_P_LOG);
-#ifndef WIN32
-  close(s);
-#else
+#if defined(WIN32) && !defined(__CYGWIN__) 
   closesocket(s);
+#else
+  close(s);
 #endif
   if (option_debug > 100) {
     DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
@@ -321,10 +321,10 @@
     if (option_debug > 100) {
       DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
     }
-#ifndef WIN32
-    close(s);
+#if defined(WIN32) && !defined(__CYGWIN__) 
+  closesocket(s);
 #else
-    closesocket(s);
+    close(s);
 #endif
     return NULL;
   }
@@ -369,7 +369,7 @@
       if (rt > 0) {
         if ((SAMPLERATE_SKYPIAX - 8000) == 0) {
           got = SAMPLES_PER_FRAME * sizeof(short);
-#ifdef WIN32
+#if defined(WIN32) && !defined(__CYGWIN__) 
           skypiax_file_read(tech_pvt->audioskypepipe[0], cli_in, &got);
 #else /* WIN32 */
           got = read(tech_pvt->audioskypepipe[0], cli_in, got);
@@ -399,7 +399,7 @@
           }
         } else if (SAMPLERATE_SKYPIAX == 16000) {
           got = SAMPLES_PER_FRAME * sizeof(short);
-#ifdef WIN32
+#if defined(WIN32) && !defined(__CYGWIN__) 
           skypiax_file_read(tech_pvt->audioskypepipe[0], cli_in, &got);
 #else /* WIN32 */
           got = read(tech_pvt->audioskypepipe[0], cli_in, got);
@@ -436,19 +436,19 @@
 
     }
     DEBUGA_SKYPE("Skype server GONE\n", SKYPIAX_P_LOG);
-#ifndef WIN32
-    close(fd);
+#if defined(WIN32) && !defined(__CYGWIN__) 
+  closesocket(s);
 #else
-    closesocket(fd);
+    close(fd);
 #endif
     break;
   }
 
   DEBUGA_SKYPE("client (I am it) GONE\n", SKYPIAX_P_LOG);
-#ifndef WIN32
-  close(s);
-#else
+#if defined(WIN32) && !defined(__CYGWIN__) 
   closesocket(s);
+#else
+  close(s);
 #endif
   if (option_debug > 100) {
     DEBUGA_PBX("EXITING FUNC\n", SKYPIAX_P_LOG);
@@ -459,7 +459,7 @@
 int skypiax_skypeaudio_init(private_t * tech_pvt)
 {
 
-#ifdef WIN32
+#if defined(WIN32) && !defined(__CYGWIN__) 
   switch_status_t rv;
   rv =
     switch_file_pipe_create(&tech_pvt->audiopipe[0], &tech_pvt->audiopipe[1],
@@ -510,7 +510,7 @@
 #endif /* WIN32 */
   if (rt > 0) {
     samples = SAMPLES_PER_FRAME * sizeof(short);
-#ifdef WIN32
+#if defined(WIN32) && !defined(__CYGWIN__) 
     skypiax_file_read(tech_pvt->audiopipe[0], tech_pvt->read_frame.data, &samples);
 #else /* WIN32 */
     samples = read(tech_pvt->audiopipe[0], tech_pvt->read_frame.data, samples);
@@ -612,8 +612,13 @@
               sizeof(msg_from_skype) - 2);
 
       howmany = strlen(msg_from_skype) + 1;
+#if defined(WIN32) && !defined(__CYGWIN__) 
       skypiax_file_write(tech_pvt->SkypiaxHandles.fdesc[1], msg_from_skype, &howmany);
-      //NOTICA("From Skype API: %s\n", SKYPIAX_P_LOG, (const char *) poCopyData->lpData);
+      //NOTICA("From Skype API: %s\n", SKYPIAX_P_LOG, msg_from_skype);
+#else
+    howmany = write(tech_pvt->SkypiaxHandles.fdesc[1], msg_from_skype, howmany);
+      //NOTICA("From Skype API: %s\n", SKYPIAX_P_LOG, msg_from_skype);
+#endif
       lReturnCode = 1;
     }
     break;
@@ -758,9 +763,22 @@
   /*  destroy window class */
 
   private_t *tech_pvt = obj;
+#if defined(WIN32) && !defined(__CYGWIN__) 
+  switch_status_t rv;
 
   switch_file_pipe_create(&tech_pvt->SkypiaxHandles.fdesc[0],
                           &tech_pvt->SkypiaxHandles.fdesc[1], skypiax_module_pool);
+  rv =
+    switch_file_pipe_create(&tech_pvt->SkypiaxHandles.fdesc[0], &tech_pvt->SkypiaxHandles.fdesc[1],
+                            skypiax_module_pool);
+#else /* WIN32 */
+  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);
+  }
+#endif /* WIN32 */
+
+
   tech_pvt->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIAttach =
     RegisterWindowMessage("SkypeControlAPIAttach");
   tech_pvt->SkypiaxHandles.win32_uiGlobal_MsgID_SkypeControlAPIDiscover =
@@ -1156,7 +1174,7 @@
   if (rt > 0) {
     if (tech_pvt->SkypiaxHandles.fdesc[0]) {
       howmany = sizeof(read_from_pipe);
-#ifdef WIN32
+#if defined(WIN32) && !defined(__CYGWIN__) 
       skypiax_file_read(tech_pvt->SkypiaxHandles.fdesc[0], read_from_pipe, &howmany);
 #else /* WIN32 */
       howmany =
@@ -1256,7 +1274,7 @@
 
             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);
+              DEBUGA_SKYPE ("Skype MSG: messaggio: %s, currentuserhandle: %s, cuh: %s, skype_user: %s!\n", SKYPIAX_P_LOG, messaggio, obj, id, tech_pvt->skype_user);
             }
           }
 



More information about the Freeswitch-svn mailing list