[Freeswitch-branches] [commit] r11716 - freeswitch/branches/gmaruzz/mod_skypiax

FreeSWITCH SVN gmaruzz at freeswitch.org
Mon Feb 9 10:26:49 PST 2009


Author: gmaruzz
Date: Mon Feb  9 12:26:48 2009
New Revision: 11716

Log:
skypiax: skypiax_protocol.c 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/mod_skypiax/skypiax_protocol.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	Mon Feb  9 12:26:48 2009
@@ -339,387 +339,380 @@
   memset(message, 0, 4096);
   memset(message_2, 0, 4096);
 
-      howmany =
-        skypiax_pipe_read(tech_pvt->SkypiaxHandles.fdesc[0], (short *) read_from_pipe,
-                           sizeof(read_from_pipe));
-
-      a = 0;
-      for (i = 0; i < howmany; i++) {
-        message[a] = read_from_pipe[i];
-        a++;
-
-        if (read_from_pipe[i] == '\0') {
+  howmany =
+    skypiax_pipe_read(tech_pvt->SkypiaxHandles.fdesc[0], (short *) read_from_pipe,
+                      sizeof(read_from_pipe));
+
+  a = 0;
+  for (i = 0; i < howmany; i++) {
+    message[a] = read_from_pipe[i];
+    a++;
+
+    if (read_from_pipe[i] == '\0') {
+
+      DEBUGA_SKYPE("READING: |||%s||| \n", SKYPIAX_P_LOG, message);
+
+      if (!strcasecmp(message, "ERROR 68")) {
+        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);
+        skypiax_sleep(1000000);
+        skypiax_skype_write(tech_pvt, "PROTOCOL 6");
+        skypiax_sleep(10000);
+        return 0;
+      }
 
-          DEBUGA_SKYPE("READING: |||%s||| \n", SKYPIAX_P_LOG, message);
+      if (!strncasecmp(message, "ERROR 92 CALL", 12)) {
+        ERRORA("Skype got ERROR: |||%s|||, the number we called was not recognized\n",
+               SKYPIAX_P_LOG, message);
+        tech_pvt->skype_callflow = CALLFLOW_STATUS_FINISHED;
+        DEBUGA_SKYPE("skype_call now is DOWN\n", SKYPIAX_P_LOG);
+        tech_pvt->skype_call_id[0] = '\0';
+
+        if (tech_pvt->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
+          tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
+          return CALLFLOW_INCOMING_HANGUP;
+        } else {
+          tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
+        }
+      }
 
-          if (!strcasecmp(message, "ERROR 68")) { 
-            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);
-            skypiax_sleep(1000000);
-            skypiax_skype_write(tech_pvt, "PROTOCOL 6");
-            skypiax_sleep(10000);
-            return 0;
-          }
+      strncpy(message_2, message, sizeof(message) - 1);
 
-          if (!strncasecmp(message, "ERROR 92 CALL", 12)) {
-            ERRORA("Skype got ERROR: |||%s|||, the number we called was not recognized\n",
-                   SKYPIAX_P_LOG, message);
-            tech_pvt->skype_callflow = CALLFLOW_STATUS_FINISHED;
-            DEBUGA_SKYPE("skype_call now is DOWN\n", SKYPIAX_P_LOG);
-            tech_pvt->skype_call_id[0] = '\0';
+      buf = message;
+      stringp = &buf;
+      where = strsep(stringp, " ");
+      if (!where) {
+        WARNINGA("Skype MSG without spaces: %s\n", SKYPIAX_P_LOG, message);
+      }
+      if (!strcasecmp(message, "ERROR")) {
+        ERRORA("Skype got ERROR: |||%s|||\n", SKYPIAX_P_LOG, message);
+        tech_pvt->skype_callflow = CALLFLOW_STATUS_FINISHED;
+        DEBUGA_SKYPE("skype_call now is DOWN\n", SKYPIAX_P_LOG);
+        tech_pvt->skype_call_id[0] = '\0';
+
+        if (tech_pvt->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
+          tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
+          return CALLFLOW_INCOMING_HANGUP;
+        } else {
+          tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
+        }
+      }
+      if (!strcasecmp(message, "CURRENTUSERHANDLE")) {
+        strncpy(obj, where, sizeof(obj) - 1);
 
-            if (tech_pvt->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
-              tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
-              return CALLFLOW_INCOMING_HANGUP;
-            } else {
-              tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
-            }
-          }
+        where = strsep(stringp, " ");
 
-          strncpy(message_2, message, sizeof(message) - 1);
+        strncpy(id, where, sizeof(id) - 1);
 
-          buf = message;
-          stringp = &buf;
-          where = strsep(stringp, " ");
-          if (!where) {
-            WARNINGA("Skype MSG without spaces: %s\n", SKYPIAX_P_LOG, message);
-          }
-          if (!strcasecmp(message, "ERROR")) {
-            ERRORA("Skype got ERROR: |||%s|||\n", SKYPIAX_P_LOG, message);
-            tech_pvt->skype_callflow = CALLFLOW_STATUS_FINISHED;
-            DEBUGA_SKYPE("skype_call now is DOWN\n", SKYPIAX_P_LOG);
-            tech_pvt->skype_call_id[0] = '\0';
+        if (!strcasecmp(id, tech_pvt->skype_user)) {
+          tech_pvt->SkypiaxHandles.api_connected = 1;
+          DEBUGA_SKYPE
+            ("Skype MSG: message: %s, currentuserhandle: %s, cuh: %s, skype_user: %s!\n",
+             SKYPIAX_P_LOG, message, obj, id, tech_pvt->skype_user);
+        }
+      }
 
-            if (tech_pvt->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
-              tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
-              return CALLFLOW_INCOMING_HANGUP;
-            } else {
-              tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
-            }
-          }
-          if (!strcasecmp(message, "CURRENTUSERHANDLE")) {
-            strncpy(obj, where, sizeof(obj) - 1);
+      if (!strcasecmp(message, "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);
 
-            if (!strcasecmp(id, tech_pvt->skype_user)) {
-              tech_pvt->SkypiaxHandles.api_connected = 1;
-              DEBUGA_SKYPE
-                ("Skype MSG: message: %s, currentuserhandle: %s, cuh: %s, skype_user: %s!\n",
-                 SKYPIAX_P_LOG, message, obj, id, tech_pvt->skype_user);
-            }
-          }
+        where = strsep(stringp, " ");
 
-          if (!strcasecmp(message, "USER")) {
-            strncpy(obj, where, sizeof(obj) - 1);
+        strncpy(prop, where, sizeof(prop) - 1);
 
-            where = strsep(stringp, " ");
+        if (!strcasecmp(prop, "RECEIVEDAUTHREQUEST")) {
+          char msg_to_skype[256];
+          DEBUGA_SKYPE("Skype MSG: message: %s, obj: %s, id: %s, prop: %s!\n",
+                       SKYPIAX_P_LOG, message, obj, id, prop);
 
-            strncpy(id, where, sizeof(id) - 1);
+          //FIXME: TODO: allow authorization based on config param
+          sprintf(msg_to_skype, "SET USER %s ISAUTHORIZED TRUE", id);
+          skypiax_skype_write(tech_pvt, msg_to_skype);
+        }
+      }
 
-            where = strsep(stringp, " ");
+      if (!strcasecmp(message, "MESSAGE")) {
+        strncpy(obj, where, sizeof(obj) - 1);
 
-            strncpy(prop, where, sizeof(prop) - 1);
+        where = strsep(stringp, " ");
 
-            if (!strcasecmp(prop, "RECEIVEDAUTHREQUEST")) {
-              char msg_to_skype[256];
-              DEBUGA_SKYPE("Skype MSG: message: %s, obj: %s, id: %s, prop: %s!\n",
-                           SKYPIAX_P_LOG, message, obj, id, prop);
+        strncpy(id, where, sizeof(id) - 1);
 
-              //FIXME: TODO: allow authorization based on config param
-              sprintf(msg_to_skype, "SET USER %s ISAUTHORIZED TRUE", id);
-              skypiax_skype_write(tech_pvt, msg_to_skype);
-            }
-          }
+        where = strsep(stringp, " ");
 
-          if (!strcasecmp(message, "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(value, "RECEIVED")) {
+            char msg_to_skype[256];
+            DEBUGA_SKYPE("Skype MSG: message: %s, obj: %s, id: %s, prop: %s value: %s!\n",
+                         SKYPIAX_P_LOG, message, obj, id, prop, value);
+
+            //FIXME: TODO: allow authorization based on config param
+            sprintf(msg_to_skype, "SET MESSAGE %s SEEN", id);
+            skypiax_skype_write(tech_pvt, msg_to_skype);
+          }
+        } else if (!strcasecmp(prop, "BODY")) {
+          char msg_to_skype[256];
 
-            if (!strcasecmp(prop, "STATUS")) {
+          DEBUGA_SKYPE("Skype MSG: message: %s, obj: %s, id: %s, prop: %s!\n",
+                       SKYPIAX_P_LOG, message, obj, id, prop);
 
-              where = strsep(stringp, " ");
+          //FIXME: TODO: on config param ???
+          sprintf(msg_to_skype, "SET MESSAGE %s SEEN", id);
+          skypiax_skype_write(tech_pvt, msg_to_skype);
+        }
 
-              strncpy(value, where, sizeof(value) - 1);
+      }
 
-              if (!strcasecmp(value, "RECEIVED")) {
-                char msg_to_skype[256];
-                DEBUGA_SKYPE
-                  ("Skype MSG: message: %s, obj: %s, id: %s, prop: %s value: %s!\n",
-                   SKYPIAX_P_LOG, message, obj, id, prop, value);
+      if (!strcasecmp(message, "CALL")) {
 
-                //FIXME: TODO: allow authorization based on config param
-                sprintf(msg_to_skype, "SET MESSAGE %s SEEN", id);
-                skypiax_skype_write(tech_pvt, msg_to_skype);
-              }
-            } else if (!strcasecmp(prop, "BODY")) {
-              char msg_to_skype[256];
+        strncpy(obj, where, sizeof(obj) - 1);
 
-              DEBUGA_SKYPE("Skype MSG: message: %s, obj: %s, id: %s, prop: %s!\n",
-                           SKYPIAX_P_LOG, message, obj, id, prop);
+        where = strsep(stringp, " ");
 
-              //FIXME: TODO: on config param ???
-              sprintf(msg_to_skype, "SET MESSAGE %s SEEN", id);
-              skypiax_skype_write(tech_pvt, msg_to_skype);
-            }
+        strncpy(id, where, sizeof(id) - 1);
 
-          }
+        where = strsep(stringp, " ");
 
-          if (!strcasecmp(message, "CALL")) {
+        strncpy(prop, where, sizeof(prop) - 1);
 
-            strncpy(obj, where, sizeof(obj) - 1);
+        where = strsep(stringp, " ");
 
-            where = strsep(stringp, " ");
+        strncpy(value, where, sizeof(value) - 1);
 
-            strncpy(id, where, sizeof(id) - 1);
+        where = strsep(stringp, " ");
 
-            where = strsep(stringp, " ");
+        DEBUGA_SKYPE
+          ("Skype MSG: message: %s, obj: %s, id: %s, prop: %s, value: %s,where: %s!\n",
+           SKYPIAX_P_LOG, message, obj, id, prop, value, where ? where : "NULL");
 
-            strncpy(prop, where, sizeof(prop) - 1);
+        if (!strcasecmp(prop, "PARTNER_HANDLE")) {
+          strncpy(tech_pvt->callid_number, value, sizeof(tech_pvt->callid_number) - 1);
+          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;
+        }
+        if (!strcasecmp(prop, "PARTNER_DISPNAME")) {
+          snprintf(tech_pvt->callid_name, sizeof(tech_pvt->callid_name) - 1, "%s%s%s",
+                   value, where ? " " : "", where ? where : "");
+          DEBUGA_SKYPE
+            ("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 (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 (tech_pvt->interface_state == SKYPIAX_STATE_DOWN)
+            tech_pvt->interface_state = SKYPIAX_STATE_PRERING;
+        }
 
-            where = strsep(stringp, " ");
+        if (!strcasecmp(prop, "DTMF")) {
 
-            strncpy(value, where, sizeof(value) - 1);
+          DEBUGA_SKYPE("Call %s received a DTMF: %s\n", SKYPIAX_P_LOG, id, value);
 
-            where = strsep(stringp, " ");
+          dtmf_received(tech_pvt, value);
+        }
 
+        if (!strcasecmp(prop, "FAILUREREASON")) {
+          DEBUGA_SKYPE
+            ("Skype has FAILED on skype_call %s. Let's wait for the FAILED message.\n",
+             SKYPIAX_P_LOG, id);
+        }
+        if (!strcasecmp(prop, "DURATION") && (!strcasecmp(value, "1"))) {
+          if (strcasecmp(id, tech_pvt->skype_call_id)) {
+            strncpy(tech_pvt->skype_call_id, id, sizeof(tech_pvt->skype_call_id) - 1);
             DEBUGA_SKYPE
-              ("Skype MSG: message: %s, obj: %s, id: %s, prop: %s, value: %s,where: %s!\n",
-               SKYPIAX_P_LOG, message, obj, id, prop, value, where ? where : "NULL");
-
-            if (!strcasecmp(prop, "PARTNER_HANDLE")) {
-              strncpy(tech_pvt->callid_number, value,
-                      sizeof(tech_pvt->callid_number) - 1);
-              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;
-            }
-            if (!strcasecmp(prop, "PARTNER_DISPNAME")) {
-              snprintf(tech_pvt->callid_name, sizeof(tech_pvt->callid_name) - 1, "%s%s%s",
-                       value, where ? " " : "", where ? where : "");
-              DEBUGA_SKYPE
-                ("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 (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 (tech_pvt->interface_state == SKYPIAX_STATE_DOWN)
-                tech_pvt->interface_state = SKYPIAX_STATE_PRERING;
-            }
-
-            if (!strcasecmp(prop, "DTMF")) {
-
-              DEBUGA_SKYPE("Call %s received a DTMF: %s\n", SKYPIAX_P_LOG, id, value);
+              ("We called a Skype contact and he answered us on skype_call: %s.\n",
+               SKYPIAX_P_LOG, id);
+          }
+        }
 
-              dtmf_received(tech_pvt, value);
-            }
+        if (!strcasecmp(prop, "STATUS")) {
 
-            if (!strcasecmp(prop, "FAILUREREASON")) {
-              DEBUGA_SKYPE
-                ("Skype has FAILED on skype_call %s. Let's wait for the FAILED message.\n",
-                 SKYPIAX_P_LOG, id);
-            }
-            if (!strcasecmp(prop, "DURATION") && (!strcasecmp(value, "1"))) {
-              if (strcasecmp(id, tech_pvt->skype_call_id)) {
+          if (!strcasecmp(value, "RINGING")) {
+            char msg_to_skype[1024];
+            if (tech_pvt->interface_state != SKYPIAX_STATE_DIALING) {
+              /* we are not calling out */
+
+              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;
+                /* no owner, no active call, let's answer */
+                skypiax_skype_write(tech_pvt, "SET AGC OFF");
+                skypiax_sleep(10000);
+                skypiax_skype_write(tech_pvt, "SET AEC OFF");
+                skypiax_sleep(10000);
+                sprintf(msg_to_skype, "GET CALL %s PARTNER_DISPNAME", id);
+                skypiax_skype_write(tech_pvt, msg_to_skype);
+                skypiax_sleep(10000);
+                sprintf(msg_to_skype, "GET CALL %s PARTNER_HANDLE", id);
+                skypiax_skype_write(tech_pvt, msg_to_skype);
+                skypiax_sleep(10000);
+                sprintf(msg_to_skype, "ALTER CALL %s ANSWER", id);
+                skypiax_skype_write(tech_pvt, msg_to_skype);
+                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);
+              } 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(tech_pvt, msg_to_skype);
+                skypiax_sleep(10000);
                 DEBUGA_SKYPE
-                  ("We called a Skype contact and he answered us on skype_call: %s.\n",
+                  ("We have NOT answered a Skype RING on skype_call %s, because we are already in a skypiax call\n",
                    SKYPIAX_P_LOG, id);
+
               }
+            } else {
+              /* we are calling out */
+              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")) {
+            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")) {
+            //tech_pvt->skype_callflow = CALLFLOW_STATUS_FINISHED;
+            DEBUGA_SKYPE("skype_call %s now is DOWN\n", SKYPIAX_P_LOG, id);
+            tech_pvt->skype_call_id[0] = '\0';
 
-            if (!strcasecmp(prop, "STATUS")) {
-
-              if (!strcasecmp(value, "RINGING")) {
-                char msg_to_skype[1024];
-                if (tech_pvt->interface_state != SKYPIAX_STATE_DIALING) {
-                  /* we are not calling out */
-
-                  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;
-                    /* no owner, no active call, let's answer */
-                    skypiax_skype_write(tech_pvt, "SET AGC OFF");
-                    skypiax_sleep(10000);
-                    skypiax_skype_write(tech_pvt, "SET AEC OFF");
-                    skypiax_sleep(10000);
-                    sprintf(msg_to_skype, "GET CALL %s PARTNER_DISPNAME", id);
-                    skypiax_skype_write(tech_pvt, msg_to_skype);
-                    skypiax_sleep(10000);
-                    sprintf(msg_to_skype, "GET CALL %s PARTNER_HANDLE", id);
-                    skypiax_skype_write(tech_pvt, msg_to_skype);
-                    skypiax_sleep(10000);
-                    sprintf(msg_to_skype, "ALTER CALL %s ANSWER", id);
-                    skypiax_skype_write(tech_pvt, msg_to_skype);
-                    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);
-                  } 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(tech_pvt, msg_to_skype);
-                    skypiax_sleep(10000);
-                    DEBUGA_SKYPE
-                      ("We have NOT answered a Skype RING on skype_call %s, because we are already in a skypiax call\n",
-                       SKYPIAX_P_LOG, id);
-
-                  }
-                } else {
-                  /* we are calling out */
-                  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")) {
-                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")) {
-                //tech_pvt->skype_callflow = CALLFLOW_STATUS_FINISHED;
-                DEBUGA_SKYPE("skype_call %s now is DOWN\n", SKYPIAX_P_LOG, id);
-                tech_pvt->skype_call_id[0] = '\0';
-
-                if (tech_pvt->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
-                  //tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
-                  return CALLFLOW_INCOMING_HANGUP;
-                } else {
-                  tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
-                }
-
-              } else if (!strcasecmp(value, "CANCELLED")) {
-                tech_pvt->skype_callflow = CALLFLOW_STATUS_CANCELLED;
-                DEBUGA_SKYPE
-                  ("we tried to call Skype on skype_call %s and Skype has now CANCELLED\n",
-                   SKYPIAX_P_LOG, id);
-                tech_pvt->skype_call_id[0] = '\0';
-
-                if (tech_pvt->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
-                  tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
-                  return CALLFLOW_INCOMING_HANGUP;
-                } else {
-                  tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
-                }
-              } else if (!strcasecmp(value, "FAILED")) {
-                tech_pvt->skype_callflow = CALLFLOW_STATUS_FAILED;
-                DEBUGA_SKYPE
-                  ("we tried to call Skype on skype_call %s and Skype has now FAILED\n",
-                   SKYPIAX_P_LOG, id);
-                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;
-                return CALLFLOW_INCOMING_HANGUP;
-              } else if (!strcasecmp(value, "REFUSED")) {
-                if (!strcasecmp(id, tech_pvt->skype_call_id)) {
-                  /* this is the id of the call we are in, probably we generated it */
-                  tech_pvt->skype_callflow = CALLFLOW_STATUS_REFUSED;
-                  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);
-                  tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
-                  tech_pvt->skype_call_id[0] = '\0';
-                  return CALLFLOW_INCOMING_HANGUP;
-                } else {
-                  /* we're here because were us that refused an incoming call */
-                  DEBUGA_SKYPE("we REFUSED skype_call %s\n", SKYPIAX_P_LOG, id);
-
-                }
-              } else if (!strcasecmp(value, "ROUTING")) {
-                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")) {
-                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")) {
-                char msg_to_skype[1024];
-                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;
-                DEBUGA_SKYPE("skype_call: %s is now active\n", SKYPIAX_P_LOG, id);
-                sprintf(msg_to_skype, "ALTER CALL %s SET_INPUT PORT=\"%d\"", id,
-                        tech_pvt->tcp_cli_port);
-                skypiax_skype_write(tech_pvt, msg_to_skype);
-                start_audio_threads(tech_pvt);
-                sprintf(msg_to_skype, "ALTER CALL %s SET_OUTPUT PORT=\"%d\"", id,
-                        tech_pvt->tcp_srv_port);
-                skypiax_skype_write(tech_pvt, msg_to_skype);
-
-                tech_pvt->skype_callflow = SKYPIAX_STATE_UP;
+            if (tech_pvt->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
+              //tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
+              return CALLFLOW_INCOMING_HANGUP;
+            } else {
+              tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
+            }
 
-                if (!strlen(tech_pvt->session_uuid_str)) {
-                  DEBUGA_SKYPE("New Inbound Channel!\n", SKYPIAX_P_LOG);
-                  new_inbound_channel(tech_pvt);
-                } else {
-                  DEBUGA_SKYPE("Outbound Channel Answered!\n", SKYPIAX_P_LOG);
-                  outbound_channel_answered(tech_pvt);
-                }
+          } else if (!strcasecmp(value, "CANCELLED")) {
+            tech_pvt->skype_callflow = CALLFLOW_STATUS_CANCELLED;
+            DEBUGA_SKYPE
+              ("we tried to call Skype on skype_call %s and Skype has now CANCELLED\n",
+               SKYPIAX_P_LOG, id);
+            tech_pvt->skype_call_id[0] = '\0';
 
-              } else {
-                WARNINGA("skype_call: %s, STATUS: %s is not recognized\n", SKYPIAX_P_LOG,
-                         id, value);
+            if (tech_pvt->interface_state != SKYPIAX_STATE_HANGUP_REQUESTED) {
+              tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
+              return CALLFLOW_INCOMING_HANGUP;
+            } else {
+              tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
+            }
+          } else if (!strcasecmp(value, "FAILED")) {
+            tech_pvt->skype_callflow = CALLFLOW_STATUS_FAILED;
+            DEBUGA_SKYPE
+              ("we tried to call Skype on skype_call %s and Skype has now FAILED\n",
+               SKYPIAX_P_LOG, id);
+            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;
+            return CALLFLOW_INCOMING_HANGUP;
+          } else if (!strcasecmp(value, "REFUSED")) {
+            if (!strcasecmp(id, tech_pvt->skype_call_id)) {
+              /* this is the id of the call we are in, probably we generated it */
+              tech_pvt->skype_callflow = CALLFLOW_STATUS_REFUSED;
+              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);
+              tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
+              tech_pvt->skype_call_id[0] = '\0';
+              return CALLFLOW_INCOMING_HANGUP;
+            } else {
+              /* we're here because were us that refused an incoming call */
+              DEBUGA_SKYPE("we REFUSED skype_call %s\n", SKYPIAX_P_LOG, id);
 
-              }
-            }                   //STATUS
+            }
+          } else if (!strcasecmp(value, "ROUTING")) {
+            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")) {
+            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")) {
+            char msg_to_skype[1024];
+            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;
+            DEBUGA_SKYPE("skype_call: %s is now active\n", SKYPIAX_P_LOG, id);
+            sprintf(msg_to_skype, "ALTER CALL %s SET_INPUT PORT=\"%d\"", id,
+                    tech_pvt->tcp_cli_port);
+            skypiax_skype_write(tech_pvt, msg_to_skype);
+            start_audio_threads(tech_pvt);
+            sprintf(msg_to_skype, "ALTER CALL %s SET_OUTPUT PORT=\"%d\"", id,
+                    tech_pvt->tcp_srv_port);
+            skypiax_skype_write(tech_pvt, msg_to_skype);
+
+            tech_pvt->skype_callflow = SKYPIAX_STATE_UP;
+
+            if (!strlen(tech_pvt->session_uuid_str)) {
+              DEBUGA_SKYPE("New Inbound Channel!\n", SKYPIAX_P_LOG);
+              new_inbound_channel(tech_pvt);
+            } else {
+              DEBUGA_SKYPE("Outbound Channel Answered!\n", SKYPIAX_P_LOG);
+              outbound_channel_answered(tech_pvt);
+            }
 
-          }                     //CALL
+          } else {
+            WARNINGA("skype_call: %s, STATUS: %s is not recognized\n", SKYPIAX_P_LOG, id,
+                     value);
 
-	  /* the "numbered" messages that follows are used by the directory application, not yet ported */
-          if (!strcasecmp(message, "#333")) {
-            /* DEBUGA_SKYPE("Skype MSG: message_2: %s, message2[11]: %s\n", SKYPIAX_P_LOG,
-             * message_2, &message_2[11]); */
-            memset(tech_pvt->skype_friends, 0, 4096);
-            strncpy(tech_pvt->skype_friends, &message_2[11], 4095);
-          }
-          if (!strcasecmp(message, "#222")) {
-            /* DEBUGA_SKYPE("Skype MSG: message_2: %s, message2[10]: %s\n", SKYPIAX_P_LOG,
-             * message_2, &message_2[10]); */
-            memset(tech_pvt->skype_fullname, 0, 512);
-            strncpy(tech_pvt->skype_fullname, &message_2[10], 511);
-          }
-          if (!strcasecmp(message, "#765")) {
-            /* DEBUGA_SKYPE("Skype MSG: message_2: %s, message2[10]: %s\n", SKYPIAX_P_LOG,
-             * message_2, &message_2[10]); */
-            memset(tech_pvt->skype_displayname, 0, 512);
-            strncpy(tech_pvt->skype_displayname, &message_2[10], 511);
           }
+        }                       //STATUS
 
-          a = 0;
-        }                       //message end
-      }                         //read_from_pipe
+      }                         //CALL
 
+      /* the "numbered" messages that follows are used by the directory application, not yet ported */
+      if (!strcasecmp(message, "#333")) {
+        /* DEBUGA_SKYPE("Skype MSG: message_2: %s, message2[11]: %s\n", SKYPIAX_P_LOG,
+         * message_2, &message_2[11]); */
+        memset(tech_pvt->skype_friends, 0, 4096);
+        strncpy(tech_pvt->skype_friends, &message_2[11], 4095);
+      }
+      if (!strcasecmp(message, "#222")) {
+        /* DEBUGA_SKYPE("Skype MSG: message_2: %s, message2[10]: %s\n", SKYPIAX_P_LOG,
+         * message_2, &message_2[10]); */
+        memset(tech_pvt->skype_fullname, 0, 512);
+        strncpy(tech_pvt->skype_fullname, &message_2[10], 511);
+      }
+      if (!strcasecmp(message, "#765")) {
+        /* DEBUGA_SKYPE("Skype MSG: message_2: %s, message2[10]: %s\n", SKYPIAX_P_LOG,
+         * message_2, &message_2[10]); */
+        memset(tech_pvt->skype_displayname, 0, 512);
+        strncpy(tech_pvt->skype_displayname, &message_2[10], 511);
+      }
+
+      a = 0;
+    }                           //message end
+  }                             //read_from_pipe
 
   return 0;
 }



More information about the Freeswitch-branches mailing list