]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
gsmopen: FS-4155, mod_sms hookup
authorGiovanni Maruzzelli <gmaruzz@gmail.com>
Fri, 4 May 2012 12:46:14 +0000 (14:46 +0200)
committerGiovanni Maruzzelli <gmaruzz@gmail.com>
Fri, 4 May 2012 12:46:30 +0000 (14:46 +0200)
src/mod/endpoints/mod_gsmopen/gsmopen_protocol.cpp
src/mod/endpoints/mod_gsmopen/mod_gsmopen.cpp

index 53975b2cc1df96a50ba5ad79f46b6e5643d265b2..2294ee4aeec98309d771cb9bdbf81b1eeda98bc8 100644 (file)
@@ -571,7 +571,7 @@ int gsmopen_serial_read_AT(private_t *tech_pvt, int look_for_ack, int timeout_us
        timeout_in_msec = (timeout_sec * 1000) + (timeout_usec ? (timeout_usec / 1000) : 0);
 
        if (timeout_in_msec != 100)
-               ERRORA("TIMEOUT=%d\n", GSMOPEN_P_LOG, timeout_in_msec);
+               DEBUGA_GSMOPEN("TIMEOUT=%d\n", GSMOPEN_P_LOG, timeout_in_msec);
 
        if (!running || !tech_pvt->running) {
                return -1;
@@ -828,11 +828,10 @@ int gsmopen_serial_read_AT(private_t *tech_pvt, int look_for_ack, int timeout_us
                                                           tech_pvt->line_array.result[i], tech_pvt->callid_name, tech_pvt->callid_number);
                        }
 
-                       if ((strncmp(tech_pvt->line_array.result[i], "+CMS ERROR:", 11) == 0)) {
-                               ERRORA("Received: \"%s\", what was this error about?\n", GSMOPEN_P_LOG);
-                       }
                        if ((strcmp(tech_pvt->line_array.result[i], "+CMS ERROR: 500") == 0)) {
-                               ERRORA("Received: \"%s\", maybe this account ran OUT OF CREDIT?\n", GSMOPEN_P_LOG);
+                               ERRORA("Received: \"%s\", generic error, maybe this account ran OUT OF CREDIT?\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]);
+                       } else if ((strncmp(tech_pvt->line_array.result[i], "+CMS ERROR:", 11) == 0)) {
+                               ERRORA("Received: \"%s\", what was this error about?\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]);
                        }
                        if ((strcmp(tech_pvt->line_array.result[i], "BUSY") == 0)) {
                                tech_pvt->phone_callflow = CALLFLOW_CALL_LINEBUSY;
@@ -2113,7 +2112,7 @@ int gsmopen_serial_write_AT_ack_nocr_longtime(private_t *tech_pvt, const char *d
                return -1;
        }
 
-       at_result = gsmopen_serial_read_AT(tech_pvt, 1, 500000, 5, NULL, 1);    // 5.5 sec timeout
+       at_result = gsmopen_serial_read_AT(tech_pvt, 1, 500000, 20, NULL, 1);   // 20.5 sec timeout
        UNLOCKA(tech_pvt->controldev_lock);
        POPPA_UNLOCKA(tech_pvt->controldev_lock);
 
index 917f3fccc9044b489d85abad9fafb2620e36518e..51564e0f5fd96c99f9ea9f568ace58970a29e24a 100644 (file)
@@ -1795,6 +1795,9 @@ static switch_status_t chat_send(switch_event_t *message_event)
        if (hint == NULL || !strlen(hint)) {    //FIXME FIXME FIXME
                hint = from;
        }
+       if (subject == NULL || !strlen(subject)) {      //FIXME FIXME FIXME
+               subject = "SIMPLE MESSAGE";
+       }
        if (to && (user = strdup(to))) {
                if ((host = strchr(user, '@'))) {
                        *host++ = '\0';
@@ -2981,7 +2984,19 @@ int sms_incoming(private_t *tech_pvt)
                //switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "chatname", tech_pvt->chatmessages[which].chatname);
                //switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "id", tech_pvt->chatmessages[which].id);
                switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "subject", "SIMPLE MESSAGE");
+/* mod_sms begin */
+               switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to", tech_pvt->name);
+               switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "hint", tech_pvt->name);
+               switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_proto", GSMOPEN_CHAT_PROTO);
+               switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_user", tech_pvt->sms_sender);
+               //switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_host", "from_host");
+               //switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_full", "from_full");
+               switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_user", tech_pvt->name);
+               //switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_host", "to_host");
+/* mod_sms end */
                switch_event_add_body(event, "%s\n", tech_pvt->sms_body);
+                //switch_core_chat_send(GSMOPEN_CHAT_PROTO, event); /* mod_sms */
+                switch_core_chat_send("GLOBAL", event); /* mod_sms */
                if (session) {
                        switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "during-call", "true");
                        if (switch_core_session_queue_event(session, &event) != SWITCH_STATUS_SUCCESS) {