<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[Freeswitch-trunk][16154] </title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<div id="header">FreeSWITCH Subversion</div>
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://fisheye.freeswitch.org/changelog/FreeSWITCH?cs=16154">16154</a></dd>
<dt>Author</dt> <dd>gmaruzz</dd>
<dt>Date</dt> <dd>2010-01-05 09:55:24 -0600 (Tue, 05 Jan 2010)</dd>
</dl>

<h3>Log Message</h3>
<pre>gsmopen: INDENTED. continue to implement workaround for no CNMI (unsolicited message for incoming SMS) and no PDU mode. YOU DON'T WANT THIS ONE :-)</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#freeswitchbranchesgmaruzzmod_gsmopengsmopenh">freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen.h</a></li>
<li><a href="#freeswitchbranchesgmaruzzmod_gsmopengsmopen_protocolcpp">freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.cpp</a></li>
<li><a href="#freeswitchbranchesgmaruzzmod_gsmopenmod_gsmopencpp">freeswitch/branches/gmaruzz/mod_gsmopen/mod_gsmopen.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="freeswitchbranchesgmaruzzmod_gsmopengsmopenh"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen.h (16153 => 16154)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen.h        2010-01-05 15:44:53 UTC (rev 16153)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen.h        2010-01-05 15:55:24 UTC (rev 16154)
</span><span class="lines">@@ -449,7 +449,7 @@
</span><span class="cx"> 
</span><span class="cx"> typedef struct private_object private_t;
</span><span class="cx"> 
</span><del>-void *SWITCH_THREAD_FUNC gsmopen_api_thread_func(switch_thread_t *thread, void *obj);
</del><ins>+void *SWITCH_THREAD_FUNC gsmopen_api_thread_func(switch_thread_t * thread, void *obj);
</ins><span class="cx"> int gsmopen_audio_read(private_t * tech_pvt);
</span><span class="cx"> int gsmopen_audio_init(private_t * tech_pvt);
</span><span class="cx"> int gsmopen_signaling_read(private_t * tech_pvt);
</span><span class="lines">@@ -458,21 +458,21 @@
</span><span class="cx"> int gsmopen_senddigit(private_t * tech_pvt, char digit);
</span><span class="cx"> 
</span><span class="cx"> void *gsmopen_do_tcp_srv_thread_func(void *obj);
</span><del>-void *SWITCH_THREAD_FUNC gsmopen_do_tcp_srv_thread(switch_thread_t *thread, void *obj);
</del><ins>+void *SWITCH_THREAD_FUNC gsmopen_do_tcp_srv_thread(switch_thread_t * thread, void *obj);
</ins><span class="cx"> 
</span><span class="cx"> void *gsmopen_do_tcp_cli_thread_func(void *obj);
</span><del>-void *SWITCH_THREAD_FUNC gsmopen_do_tcp_cli_thread(switch_thread_t *thread, void *obj);
</del><ins>+void *SWITCH_THREAD_FUNC gsmopen_do_tcp_cli_thread(switch_thread_t * thread, void *obj);
</ins><span class="cx"> 
</span><span class="cx"> void *gsmopen_do_gsmopenapi_thread_func(void *obj);
</span><del>-void *SWITCH_THREAD_FUNC gsmopen_do_gsmopenapi_thread(switch_thread_t *thread, void *obj);
</del><ins>+void *SWITCH_THREAD_FUNC gsmopen_do_gsmopenapi_thread(switch_thread_t * thread, void *obj);
</ins><span class="cx"> int dtmf_received(private_t * tech_pvt, char *value);
</span><span class="cx"> int start_audio_threads(private_t * tech_pvt);
</span><span class="cx"> int new_inbound_channel(private_t * tech_pvt);
</span><span class="cx"> int outbound_channel_answered(private_t * tech_pvt);
</span><span class="cx"> //int gsmopen_signaling_write(private_t * tech_pvt, char *msg_to_gsmopen);
</span><span class="cx"> #if defined(WIN32) &amp;&amp; !defined(__CYGWIN__)
</span><del>-int gsmopen_pipe_read(switch_file_t *pipe, short *buf, int howmany);
-int gsmopen_pipe_write(switch_file_t *pipe, short *buf, int howmany);
</del><ins>+int gsmopen_pipe_read(switch_file_t * pipe, short *buf, int howmany);
+int gsmopen_pipe_write(switch_file_t * pipe, short *buf, int howmany);
</ins><span class="cx"> /* Visual C do not have strsep ? */
</span><span class="cx"> char *strsep(char **stringp, const char *delim);
</span><span class="cx"> #else
</span></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopengsmopen_protocolcpp"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.cpp (16153 => 16154)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.cpp        2010-01-05 15:44:53 UTC (rev 16153)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.cpp        2010-01-05 15:55:24 UTC (rev 16154)
</span><span class="lines">@@ -125,28 +125,28 @@
</span><span class="cx">         string ciapa;
</span><span class="cx"> 
</span><span class="cx"> #ifdef WIN32
</span><del>-            Ref&lt;Port&gt; port = new Win32SerialPort((string)tech_pvt-&gt;controldevice_name, 38400);
</del><ins>+        Ref &lt; Port &gt; port = new Win32SerialPort((string) tech_pvt-&gt;controldevice_name, 38400);
</ins><span class="cx"> #else
</span><del>-        //Ref&lt;Port&gt; port = new UnixSerialPort((string)argv[1], B38400);
-        Ref&lt;Port&gt; port = new UnixSerialPort((string)tech_pvt-&gt;controldevice_name, B115200);
</del><ins>+        //Ref&lt;Port&gt; port = new UnixSerialPort((string)argv[1], B38400);
+        Ref &lt; Port &gt; port = new UnixSerialPort((string) tech_pvt-&gt;controldevice_name, B115200);
</ins><span class="cx"> #endif
</span><del>-    MeTa m(port);
</del><ins>+        MeTa m(port);
</ins><span class="cx"> 
</span><del>-    //cout &lt;&lt; &quot;Creating GsmAt object&quot; &lt;&lt; endl;
-    Ref&lt;GsmAt&gt; gsmat =  new GsmAt(m);
-    
-    //cout &lt;&lt; &quot;Using GsmAt object&quot; &lt;&lt; endl;
-    //cout &lt;&lt; gsmat-&gt;chat(&quot;AT&quot;, &quot;OK&quot;, false, false) &lt;&lt; endl;
-    //cout &lt;&lt; gsmat-&gt;chat(&quot;D3472665618;&quot;) &lt;&lt; endl;
-    gsmat-&gt;putLine(&quot;ATI9&quot;, true);
-    for(i=0; i&lt;4; i++){
-            ciapa = gsmat-&gt;getLine();
-            //cout &lt;&lt; &quot;PRESO: |||&quot; &lt;&lt; ciapa &lt;&lt; &quot;|||&quot; &lt;&lt; endl;
-        ERRORA(&quot;PRESO %d |||%s|||\n&quot;, GSMOPEN_P_LOG, i, ciapa.c_str());
-            //usleep(5000);
-    }
</del><ins>+        //cout &lt;&lt; &quot;Creating GsmAt object&quot; &lt;&lt; endl;
+        Ref &lt; GsmAt &gt; gsmat = new GsmAt(m);
</ins><span class="cx"> 
</span><ins>+        //cout &lt;&lt; &quot;Using GsmAt object&quot; &lt;&lt; endl;
+        //cout &lt;&lt; gsmat-&gt;chat(&quot;AT&quot;, &quot;OK&quot;, false, false) &lt;&lt; endl;
+        //cout &lt;&lt; gsmat-&gt;chat(&quot;D3472665618;&quot;) &lt;&lt; endl;
+        gsmat-&gt;putLine(&quot;ATI9&quot;, true);
+        for (i = 0; i &lt; 4; i++) {
+                ciapa = gsmat-&gt;getLine();
+                //cout &lt;&lt; &quot;PRESO: |||&quot; &lt;&lt; ciapa &lt;&lt; &quot;|||&quot; &lt;&lt; endl;
+                ERRORA(&quot;PRESO %d |||%s|||\n&quot;, GSMOPEN_P_LOG, i, ciapa.c_str());
+                //usleep(5000);
+        }
</ins><span class="cx"> 
</span><ins>+
</ins><span class="cx">         return (-1);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -334,7 +334,7 @@
</span><span class="cx">         if (res) {
</span><span class="cx">                 DEBUGA_GSMOPEN(&quot;AT+CNMI=3,1,0,0,0 failed, continue\n&quot;, GSMOPEN_P_LOG);
</span><span class="cx">                 tech_pvt-&gt;sms_cnmi_not_supported = 1;
</span><del>-                tech_pvt-&gt;gsmopen_serial_sync_period = 30;
</del><ins>+                tech_pvt-&gt;gsmopen_serial_sync_period = 30;        //FIXME in config
</ins><span class="cx">         }
</span><span class="cx">         /* what is the Message Center address (number) to which the SMS has to be sent? */
</span><span class="cx">         res = gsmopen_serial_write_AT_ack(tech_pvt, &quot;AT+CSCA?&quot;);
</span><span class="lines">@@ -346,10 +346,10 @@
</span><span class="cx">         if (res) {
</span><span class="cx">                 DEBUGA_GSMOPEN(&quot;AT+CMGF? failed, continue\n&quot;, GSMOPEN_P_LOG);
</span><span class="cx">         }
</span><del>-        res = gsmopen_serial_write_AT_ack(tech_pvt, &quot;AT+CMGF=0&quot;);        
</del><ins>+        res = gsmopen_serial_write_AT_ack(tech_pvt, &quot;AT+CMGF=0&quot;);
</ins><span class="cx">         if (res) {
</span><span class="cx">                 ERRORA(&quot;Error setting SMS sending mode to PDU on the cellphone, falling back to TEXT mode. Continuing\n&quot;, GSMOPEN_P_LOG);
</span><del>-                res = gsmopen_serial_write_AT_ack(tech_pvt, &quot;AT+CMGF=1&quot;);        
</del><ins>+                res = gsmopen_serial_write_AT_ack(tech_pvt, &quot;AT+CMGF=1&quot;);
</ins><span class="cx">                 if (res) {
</span><span class="cx">                         ERRORA(&quot;Error setting SMS sending mode to TEXT on the cellphone, let's hope is TEXT by default. Continuing\n&quot;, GSMOPEN_P_LOG);
</span><span class="cx">                 }
</span><span class="lines">@@ -1170,7 +1170,8 @@
</span><span class="cx">                                                         DEBUGA_GSMOPEN(&quot;phonebook entry: |%s|\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;line_array.result[i]);
</span><span class="cx"> 
</span><span class="cx">                                                 err =
</span><del>-                                                        sscanf(&amp;tech_pvt-&gt;line_array.result[i][7], &quot;%d,\&quot;%255[0-9+]\&quot;,%d,\&quot;%255[^\&quot;]\&quot;&quot;, &amp;entry_id, entry_number, &amp;entry_type, entry_text);
</del><ins>+                                                        sscanf(&amp;tech_pvt-&gt;line_array.result[i][7], &quot;%d,\&quot;%255[0-9+]\&quot;,%d,\&quot;%255[^\&quot;]\&quot;&quot;, &amp;entry_id, entry_number, &amp;entry_type,
+                                                                   entry_text);
</ins><span class="cx">                                                 if (err &lt; 4) {
</span><span class="cx">                                                         ERRORA
</span><span class="cx">                                                                 (&quot;err=%d, phonebook entry: |%s| is not formatted as: |+CPBR: 504,\&quot;+39025458068\&quot;,145,\&quot;ciao a tutti\&quot;|\n&quot;,
</span><span class="lines">@@ -1206,7 +1207,8 @@
</span><span class="cx">                                                         DEBUGA_GSMOPEN(&quot;phonebook entry: |%s|\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;line_array.result[i]);
</span><span class="cx"> 
</span><span class="cx">                                                 err =
</span><del>-                                                        sscanf(&amp;tech_pvt-&gt;line_array.result[i][7], &quot;%d,\&quot;%255[0-9+]\&quot;,%d,\&quot;%255[^\&quot;]\&quot;&quot;, &amp;entry_id, entry_number, &amp;entry_type, entry_text);
</del><ins>+                                                        sscanf(&amp;tech_pvt-&gt;line_array.result[i][7], &quot;%d,\&quot;%255[0-9+]\&quot;,%d,\&quot;%255[^\&quot;]\&quot;&quot;, &amp;entry_id, entry_number, &amp;entry_type,
+                                                                   entry_text);
</ins><span class="cx">                                                 if (err &lt; 1) {        //we match only on the progressive id, maybe the remote party has not sent its number, and/or there is no corresponding text entry in the phone directory
</span><span class="cx">                                                         ERRORA
</span><span class="cx">                                                                 (&quot;err=%d, phonebook entry: |%s| is not formatted as: |+CPBR: 504,\&quot;+39025458068\&quot;,145,\&quot;ciao a tutti\&quot;|\n&quot;,
</span><span class="lines">@@ -1248,7 +1250,9 @@
</span><span class="cx">                         if ((strncmp(tech_pvt-&gt;line_array.result[i], &quot;*ECAV&quot;, 5) == 0) || (strncmp(tech_pvt-&gt;line_array.result[i], &quot;*ECAM&quot;, 5) == 0)) {        /* sony-ericsson call processing unsolicited messages */
</span><span class="cx">                                 int res, ccid, ccstatus, calltype, processid, exitcause, number, type;
</span><span class="cx">                                 res = ccid = ccstatus = calltype = processid = exitcause = number = type = 0;
</span><del>-                                res = sscanf(&amp;tech_pvt-&gt;line_array.result[i][6], &quot;%d,%d,%d,%d,%d,%d,%d&quot;, &amp;ccid, &amp;ccstatus, &amp;calltype, &amp;processid, &amp;exitcause, &amp;number, &amp;type);
</del><ins>+                                res =
+                                        sscanf(&amp;tech_pvt-&gt;line_array.result[i][6], &quot;%d,%d,%d,%d,%d,%d,%d&quot;, &amp;ccid, &amp;ccstatus, &amp;calltype, &amp;processid, &amp;exitcause, &amp;number,
+                                                   &amp;type);
</ins><span class="cx">                                 /* only changes the phone_callflow if enought parameters were parsed */
</span><span class="cx">                                 if (res &gt;= 3) {
</span><span class="cx">                                         switch (ccstatus) {
</span><span class="lines">@@ -1293,12 +1297,14 @@
</span><span class="cx">                                         case 5:
</span><span class="cx">                                                 if (option_debug &gt; 1)
</span><span class="cx">                                                         DEBUGA_GSMOPEN
</span><del>-                                                                (&quot;|%s| Sony-Ericsson *ECAM/*ECAV: don't know how to handle WAITING event\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;line_array.result[i]);
</del><ins>+                                                                (&quot;|%s| Sony-Ericsson *ECAM/*ECAV: don't know how to handle WAITING event\n&quot;, GSMOPEN_P_LOG,
+                                                                 tech_pvt-&gt;line_array.result[i]);
</ins><span class="cx">                                                 break;
</span><span class="cx">                                         case 6:
</span><span class="cx">                                                 if (option_debug &gt; 1)
</span><span class="cx">                                                         DEBUGA_GSMOPEN
</span><del>-                                                                (&quot;|%s| Sony-Ericsson *ECAM/*ECAV: don't know how to handle ALERTING event\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;line_array.result[i]);
</del><ins>+                                                                (&quot;|%s| Sony-Ericsson *ECAM/*ECAV: don't know how to handle ALERTING event\n&quot;, GSMOPEN_P_LOG,
+                                                                 tech_pvt-&gt;line_array.result[i]);
</ins><span class="cx">                                                 break;
</span><span class="cx">                                         case 7:
</span><span class="cx">                                                 if (tech_pvt-&gt;owner) {
</span><span class="lines">@@ -1404,7 +1410,7 @@
</span><span class="cx">                                 int c;
</span><span class="cx">                                 char sms_body[16000];
</span><span class="cx">                                 int err = 0;
</span><del>-                                        memset(sms_body, '\0', sizeof(sms_body));
</del><ins>+                                memset(sms_body, '\0', sizeof(sms_body));
</ins><span class="cx"> 
</span><span class="cx">                                 if (strncmp(tech_pvt-&gt;line_array.result[i], &quot;+CMGR&quot;, 5) == 0) {        /* we are reading the &quot;header&quot; of an SMS */
</span><span class="cx"> #if 1
</span><span class="lines">@@ -1424,16 +1430,19 @@
</span><span class="cx">                                                 if (tech_pvt-&gt;line_array.result[i][c] == ',' &amp;&amp; tech_pvt-&gt;line_array.result[i][c - 1] != '\\' &amp;&amp; inside_quote == 0) {
</span><span class="cx">                                                         if (inside_comma) {
</span><span class="cx">                                                                 inside_comma = 0;
</span><del>-                                                                NOTICA(&quot;inside_comma=%d, inside_quote=%d, we're at=%s\n&quot;, GSMOPEN_P_LOG, inside_comma, inside_quote, &amp;tech_pvt-&gt;line_array.result[i][c]);
</del><ins>+                                                                NOTICA(&quot;inside_comma=%d, inside_quote=%d, we're at=%s\n&quot;, GSMOPEN_P_LOG, inside_comma, inside_quote,
+                                                                           &amp;tech_pvt-&gt;line_array.result[i][c]);
</ins><span class="cx">                                                         } else {
</span><span class="cx">                                                                 inside_comma = 1;
</span><del>-                                                                NOTICA(&quot;inside_comma=%d, inside_quote=%d, we're at=%s\n&quot;, GSMOPEN_P_LOG, inside_comma, inside_quote, &amp;tech_pvt-&gt;line_array.result[i][c]);
</del><ins>+                                                                NOTICA(&quot;inside_comma=%d, inside_quote=%d, we're at=%s\n&quot;, GSMOPEN_P_LOG, inside_comma, inside_quote,
+                                                                           &amp;tech_pvt-&gt;line_array.result[i][c]);
</ins><span class="cx">                                                         }
</span><span class="cx">                                                 }
</span><span class="cx">                                                 if (tech_pvt-&gt;line_array.result[i][c] == '&quot;' &amp;&amp; tech_pvt-&gt;line_array.result[i][c - 1] != '\\') {
</span><span class="cx">                                                         if (inside_quote) {
</span><span class="cx">                                                                 inside_quote = 0;
</span><del>-                                                                NOTICA(&quot;END_CONTENT inside_comma=%d, inside_quote=%d, we're at=%s\n&quot;, GSMOPEN_P_LOG, inside_comma, inside_quote, &amp;tech_pvt-&gt;line_array.result[i][c]);
</del><ins>+                                                                NOTICA(&quot;END_CONTENT inside_comma=%d, inside_quote=%d, we're at=%s\n&quot;, GSMOPEN_P_LOG, inside_comma, inside_quote,
+                                                                           &amp;tech_pvt-&gt;line_array.result[i][c]);
</ins><span class="cx">                                                                 DEBUGA_GSMOPEN(&quot;%d content=%s\n&quot;, GSMOPEN_P_LOG, which_field, content);
</span><span class="cx"> 
</span><span class="cx">                                                                 //strncat(tech_pvt-&gt;sms_message, &quot;---&quot;, ((sizeof(tech_pvt-&gt;sms_message) - strlen(tech_pvt-&gt;sms_message)) - 1));
</span><span class="lines">@@ -1455,24 +1464,25 @@
</span><span class="cx"> 
</span><span class="cx">                                                                 //strncat(tech_pvt-&gt;sms_message, &quot;---&quot;, ((sizeof(tech_pvt-&gt;sms_message) - strlen(tech_pvt-&gt;sms_message)) - 1));
</span><span class="cx">                                                                 //if (!err)
</span><del>-                                                                        //strncat(tech_pvt-&gt;sms_message, content2, ((sizeof(tech_pvt-&gt;sms_message) - strlen(tech_pvt-&gt;sms_message)) - 1));
</del><ins>+                                                                //strncat(tech_pvt-&gt;sms_message, content2, ((sizeof(tech_pvt-&gt;sms_message) - strlen(tech_pvt-&gt;sms_message)) - 1));
</ins><span class="cx">                                                                 //strncat(tech_pvt-&gt;sms_message, &quot;|||&quot;, ((sizeof(tech_pvt-&gt;sms_message) - strlen(tech_pvt-&gt;sms_message)) - 1));
</span><span class="cx">                                                                 memset(content, '\0', sizeof(content));
</span><span class="cx">                                                                 d = 0;
</span><span class="cx">                                                                 if (which_field == 1) {
</span><span class="cx">                                                                         strncpy(tech_pvt-&gt;sms_sender, content2, sizeof(tech_pvt-&gt;sms_sender));
</span><del>-                                                                DEBUGA_GSMOPEN(&quot;%d content=%s\n&quot;, GSMOPEN_P_LOG, which_field, content2);
</del><ins>+                                                                        DEBUGA_GSMOPEN(&quot;%d content=%s\n&quot;, GSMOPEN_P_LOG, which_field, content2);
</ins><span class="cx"> 
</span><span class="cx">                                                                 } else if (which_field == 2) {
</span><span class="cx">                                                                         strncpy(tech_pvt-&gt;sms_date, content2, sizeof(tech_pvt-&gt;sms_date));
</span><del>-                                                                DEBUGA_GSMOPEN(&quot;%d content=%s\n&quot;, GSMOPEN_P_LOG, which_field, content2);
</del><ins>+                                                                        DEBUGA_GSMOPEN(&quot;%d content=%s\n&quot;, GSMOPEN_P_LOG, which_field, content2);
</ins><span class="cx">                                                                 } else if (which_field &gt; 2) {
</span><span class="cx">                                                                         WARNINGA(&quot;WHY which_field is &gt; 2 ? (which_field is %d)\n&quot;, GSMOPEN_P_LOG, which_field);
</span><span class="cx">                                                                 }
</span><span class="cx">                                                                 which_field++;
</span><span class="cx">                                                         } else {
</span><span class="cx">                                                                 inside_quote = 1;
</span><del>-                                                                WARNINGA(&quot;START_CONTENT inside_comma=%d, inside_quote=%d, we're at=%s\n&quot;, GSMOPEN_P_LOG, inside_comma, inside_quote, &amp;tech_pvt-&gt;line_array.result[i][c]);
</del><ins>+                                                                WARNINGA(&quot;START_CONTENT inside_comma=%d, inside_quote=%d, we're at=%s\n&quot;, GSMOPEN_P_LOG, inside_comma, inside_quote,
+                                                                                 &amp;tech_pvt-&gt;line_array.result[i][c]);
</ins><span class="cx">                                                         }
</span><span class="cx">                                                 }
</span><span class="cx">                                                 if (inside_quote &amp;&amp; tech_pvt-&gt;line_array.result[i][c] != '&quot;') {
</span><span class="lines">@@ -1488,67 +1498,68 @@
</span><span class="cx">                                 else {
</span><span class="cx">                                         DEBUGA_GSMOPEN(&quot;body=%s\n&quot;, GSMOPEN_P_LOG, sms_body);
</span><span class="cx">                                         DEBUGA_GSMOPEN(&quot;tech_pvt-&gt;line_array.result[i]=%s\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;line_array.result[i]);
</span><del>-  if (tech_pvt-&gt;sms_cnmi_not_supported) {
-                                        strncpy(tech_pvt-&gt;sms_message, tech_pvt-&gt;line_array.result[i], sizeof(tech_pvt-&gt;sms_message));
</del><ins>+                                        if (tech_pvt-&gt;sms_cnmi_not_supported) {
+                                                strncpy(tech_pvt-&gt;sms_message, tech_pvt-&gt;line_array.result[i], sizeof(tech_pvt-&gt;sms_message));
</ins><span class="cx"> 
</span><del>-                char content3[1000];
-                //int howmanyleft;
</del><ins>+                                                char content3[1000];
+                                                //int howmanyleft;
</ins><span class="cx"> 
</span><span class="cx"> 
</span><del>-                                        WARNINGA(&quot;sms_message=%s\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;sms_message);
-                                        ucs2_to_utf8(tech_pvt, tech_pvt-&gt;sms_message, content3, sizeof(content3));
-                                        WARNINGA(&quot;content3=%s\n&quot;, GSMOPEN_P_LOG, content3);
-                                        strncpy(tech_pvt-&gt;sms_body, content3, sizeof(tech_pvt-&gt;sms_body));
-                                        //sleep(10);
-                                        //cicopet
</del><ins>+                                                WARNINGA(&quot;sms_message=%s\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;sms_message);
+                                                ucs2_to_utf8(tech_pvt, tech_pvt-&gt;sms_message, content3, sizeof(content3));
+                                                WARNINGA(&quot;content3=%s\n&quot;, GSMOPEN_P_LOG, content3);
+                                                strncpy(tech_pvt-&gt;sms_body, content3, sizeof(tech_pvt-&gt;sms_body));
+                                                //sleep(10);
+                                                //cicopet
</ins><span class="cx">                                                 sms_incoming(tech_pvt);
</span><del>-                                        WARNINGA(&quot;2 content3=%s\n&quot;, GSMOPEN_P_LOG, content3);
-  }else{
-                SMSMessageRef sms;
-                char content2[1000];
</del><ins>+                                                WARNINGA(&quot;2 content3=%s\n&quot;, GSMOPEN_P_LOG, content3);
+                                        } else {
+                                                SMSMessageRef sms;
+                                                char content2[1000];
</ins><span class="cx"> //MessageType messagetype;
</span><span class="cx"> //Address servicecentreaddress;
</span><span class="cx"> //Timestamp servicecentretimestamp;
</span><span class="cx"> //Address sender_recipient_address;
</span><span class="cx"> 
</span><del>-                sms = SMSMessage::decode(tech_pvt-&gt;line_array.result[i]); // dataCodingScheme = 8 , text=ciao 123 belè новости לק ראת ﺎﻠﺠﻤﻋﺓ 人大
</del><ins>+                                                sms = SMSMessage::decode(tech_pvt-&gt;line_array.result[i]);        // dataCodingScheme = 8 , text=ciao 123 belè новости לק ראת ﺎﻠﺠﻤﻋﺓ 人大
</ins><span class="cx"> 
</span><del>-                NOTICA(&quot;SMS=\n%s\n&quot;, GSMOPEN_P_LOG, sms-&gt;toString().c_str());
</del><ins>+                                                NOTICA(&quot;SMS=\n%s\n&quot;, GSMOPEN_P_LOG, sms-&gt;toString().c_str());
</ins><span class="cx"> 
</span><del>-                memset(content2, '\0', sizeof(content2));
-                if(sms-&gt;dataCodingScheme().getAlphabet() == DCS_DEFAULT_ALPHABET){
-                        iso_8859_1_to_utf8(tech_pvt, (char *)sms-&gt;userData().c_str(), content2, sizeof(content2));
-                } else 
-                        if(sms-&gt;dataCodingScheme().getAlphabet() == DCS_SIXTEEN_BIT_ALPHABET){
-                                ucs2_to_utf8(tech_pvt, (char *)bufToHex((unsigned char *)sms-&gt;userData().data(), sms-&gt;userData().length()).c_str(), content2, sizeof(content2));
-                        }else {
-                                ERRORA(&quot;dataCodingScheme not supported=%d\n&quot;, GSMOPEN_P_LOG, sms-&gt;dataCodingScheme().getAlphabet());
</del><ins>+                                                memset(content2, '\0', sizeof(content2));
+                                                if (sms-&gt;dataCodingScheme().getAlphabet() == DCS_DEFAULT_ALPHABET) {
+                                                        iso_8859_1_to_utf8(tech_pvt, (char *) sms-&gt;userData().c_str(), content2, sizeof(content2));
+                                                } else if (sms-&gt;dataCodingScheme().getAlphabet() == DCS_SIXTEEN_BIT_ALPHABET) {
+                                                        ucs2_to_utf8(tech_pvt, (char *) bufToHex((unsigned char *) sms-&gt;userData().data(), sms-&gt;userData().length()).c_str(), content2,
+                                                                                 sizeof(content2));
+                                                } else {
+                                                        ERRORA(&quot;dataCodingScheme not supported=%d\n&quot;, GSMOPEN_P_LOG, sms-&gt;dataCodingScheme().getAlphabet());
</ins><span class="cx"> 
</span><del>-                        }
-                NOTICA(&quot;dataCodingScheme=%d\n&quot;, GSMOPEN_P_LOG, sms-&gt;dataCodingScheme().getAlphabet());
-                NOTICA(&quot;dataCodingScheme=%s\n&quot;, GSMOPEN_P_LOG, sms-&gt;dataCodingScheme().toString().c_str());
-                NOTICA(&quot;address=%s\n&quot;, GSMOPEN_P_LOG, sms-&gt;address().toString().c_str());
-                NOTICA(&quot;serviceCentreAddress=%s\n&quot;, GSMOPEN_P_LOG, sms-&gt;serviceCentreAddress().toString().c_str());
-                NOTICA(&quot;serviceCentreTimestamp=%s\n&quot;, GSMOPEN_P_LOG, sms-&gt;serviceCentreTimestamp().toString().c_str());
-                NOTICA(&quot;messageType=%d\n&quot;, GSMOPEN_P_LOG, sms-&gt;messageType());
-                NOTICA(&quot;userData= |||%s|||\n&quot;, GSMOPEN_P_LOG, content2);
</del><ins>+                                                }
+                                                NOTICA(&quot;dataCodingScheme=%d\n&quot;, GSMOPEN_P_LOG, sms-&gt;dataCodingScheme().getAlphabet());
+                                                NOTICA(&quot;dataCodingScheme=%s\n&quot;, GSMOPEN_P_LOG, sms-&gt;dataCodingScheme().toString().c_str());
+                                                NOTICA(&quot;address=%s\n&quot;, GSMOPEN_P_LOG, sms-&gt;address().toString().c_str());
+                                                NOTICA(&quot;serviceCentreAddress=%s\n&quot;, GSMOPEN_P_LOG, sms-&gt;serviceCentreAddress().toString().c_str());
+                                                NOTICA(&quot;serviceCentreTimestamp=%s\n&quot;, GSMOPEN_P_LOG, sms-&gt;serviceCentreTimestamp().toString().c_str());
+                                                NOTICA(&quot;messageType=%d\n&quot;, GSMOPEN_P_LOG, sms-&gt;messageType());
+                                                NOTICA(&quot;userData= |||%s|||\n&quot;, GSMOPEN_P_LOG, content2);
</ins><span class="cx"> 
</span><span class="cx"> 
</span><del>-                                        memset(sms_body, '\0', sizeof(sms_body));
-                                        strncpy(sms_body, content2, sizeof(sms_body));
-                                        DEBUGA_GSMOPEN(&quot;body=%s\n&quot;, GSMOPEN_P_LOG, sms_body);
-                                        strncpy(tech_pvt-&gt;sms_body, sms_body, sizeof(tech_pvt-&gt;sms_body));
-                                        strncpy(tech_pvt-&gt;sms_sender, sms-&gt;address().toString().c_str(), sizeof(tech_pvt-&gt;sms_sender));
-                                        strncpy(tech_pvt-&gt;sms_date,  sms-&gt;serviceCentreTimestamp().toString().c_str(), sizeof(tech_pvt-&gt;sms_date));
-                                        strncpy(tech_pvt-&gt;sms_datacodingscheme,  sms-&gt;dataCodingScheme().toString().c_str(), sizeof(tech_pvt-&gt;sms_datacodingscheme));
-                                        strncpy(tech_pvt-&gt;sms_servicecentreaddress,  sms-&gt;serviceCentreAddress().toString().c_str(), sizeof(tech_pvt-&gt;sms_servicecentreaddress));
-                                        tech_pvt-&gt;sms_messagetype = sms-&gt;messageType();
</del><ins>+                                                memset(sms_body, '\0', sizeof(sms_body));
+                                                strncpy(sms_body, content2, sizeof(sms_body));
+                                                DEBUGA_GSMOPEN(&quot;body=%s\n&quot;, GSMOPEN_P_LOG, sms_body);
+                                                strncpy(tech_pvt-&gt;sms_body, sms_body, sizeof(tech_pvt-&gt;sms_body));
+                                                strncpy(tech_pvt-&gt;sms_sender, sms-&gt;address().toString().c_str(), sizeof(tech_pvt-&gt;sms_sender));
+                                                strncpy(tech_pvt-&gt;sms_date, sms-&gt;serviceCentreTimestamp().toString().c_str(), sizeof(tech_pvt-&gt;sms_date));
+                                                strncpy(tech_pvt-&gt;sms_datacodingscheme, sms-&gt;dataCodingScheme().toString().c_str(), sizeof(tech_pvt-&gt;sms_datacodingscheme));
+                                                strncpy(tech_pvt-&gt;sms_servicecentreaddress, sms-&gt;serviceCentreAddress().toString().c_str(),
+                                                                sizeof(tech_pvt-&gt;sms_servicecentreaddress));
+                                                tech_pvt-&gt;sms_messagetype = sms-&gt;messageType();
</ins><span class="cx"> //messagetype = sms-&gt;messageType();
</span><span class="cx"> //servicecentreaddress = sms-&gt;serviceCentreAddress();
</span><span class="cx"> //servicecentretimestamp = sms-&gt;serviceCentreTimestamp();
</span><span class="cx"> //sender_recipient_address = sms-&gt;address();
</span><span class="cx"> 
</span><del>-  }
</del><ins>+                                        }
</ins><span class="cx"> 
</span><span class="cx"> #if 0
</span><span class="cx">                                         //strncat(tech_pvt-&gt;sms_message, &quot;---&quot;, ((sizeof(tech_pvt-&gt;sms_message) - strlen(tech_pvt-&gt;sms_message)) - 1));
</span><span class="lines">@@ -1562,7 +1573,7 @@
</span><span class="cx"> 
</span><span class="cx">                                         //strncat(tech_pvt-&gt;sms_message, &quot;---&quot;, ((sizeof(tech_pvt-&gt;sms_message) - strlen(tech_pvt-&gt;sms_message)) - 1));
</span><span class="cx">                                         //if (!err)
</span><del>-                                                //strncat(tech_pvt-&gt;sms_message, sms_body, ((sizeof(tech_pvt-&gt;sms_message) - strlen(tech_pvt-&gt;sms_message)) - 1));
</del><ins>+                                        //strncat(tech_pvt-&gt;sms_message, sms_body, ((sizeof(tech_pvt-&gt;sms_message) - strlen(tech_pvt-&gt;sms_message)) - 1));
</ins><span class="cx">                                         //strncat(tech_pvt-&gt;sms_message, &quot;|||&quot;, ((sizeof(tech_pvt-&gt;sms_message) - strlen(tech_pvt-&gt;sms_message)) - 1));
</span><span class="cx"> 
</span><span class="cx">                                         //DEBUGA_GSMOPEN(&quot;sms_message=%s\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;sms_message);
</span><span class="lines">@@ -2008,7 +2019,7 @@
</span><span class="cx">                 sprintf(stringa, &quot;0x%c%c&quot;, ucs2_in[c], ucs2_in[c + 1]);
</span><span class="cx">                 c++;
</span><span class="cx">                 hexnum = strtod(stringa, NULL);
</span><del>-                converted[i] = (char)hexnum;
</del><ins>+                converted[i] = (char) hexnum;
</ins><span class="cx">                 i++;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -2022,8 +2033,8 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         inbytesleft = i;
</span><del>-                DEBUGA_GSMOPEN(&quot;1 ciao in=%s, inleft=%d, out=%s, outleft=%d, converted=%s, utf8_out=%s\n&quot;,
-                                           GSMOPEN_P_LOG, inbuf, (int) inbytesleft, outbuf, (int) outbytesleft, converted, utf8_out);
</del><ins>+        DEBUGA_GSMOPEN(&quot;1 ciao in=%s, inleft=%d, out=%s, outleft=%d, converted=%s, utf8_out=%s\n&quot;,
+                                   GSMOPEN_P_LOG, inbuf, (int) inbytesleft, outbuf, (int) outbytesleft, converted, utf8_out);
</ins><span class="cx"> 
</span><span class="cx">         iconv_res = iconv(iconv_format, &amp;inbuf, &amp;inbytesleft, &amp;outbuf, &amp;outbytesleft);
</span><span class="cx">         if (iconv_res == (size_t) -1) {
</span><span class="lines">@@ -2072,13 +2083,13 @@
</span><span class="cx">         iconv_res = iconv(iconv_format, &amp;inbuf, &amp;inbytesleft, &amp;outbuf, &amp;outbytesleft);
</span><span class="cx">         if (iconv_res == (size_t) -1) {
</span><span class="cx">                 DEBUGA_GSMOPEN(&quot;ciao in=%s, inleft=%d, out=%s, outleft=%d, utf8_out=%s\n&quot;,
</span><del>-                                GSMOPEN_P_LOG, inbuf, (int) inbytesleft, outbuf, (int) outbytesleft, utf8_out);
</del><ins>+                                           GSMOPEN_P_LOG, inbuf, (int) inbytesleft, outbuf, (int) outbytesleft, utf8_out);
</ins><span class="cx">                 DEBUGA_GSMOPEN(&quot;error: %s %d\n&quot;, GSMOPEN_P_LOG, strerror(errno), errno);
</span><span class="cx">                 return -1;
</span><span class="cx">         }
</span><span class="cx">         DEBUGA_GSMOPEN
</span><span class="cx">                 (&quot; strlen(iso_8859_1_in)=%d, iconv_res=%d,  inbuf=%s, inleft=%d, out=%s, outleft=%d, utf8_out=%s\n&quot;,
</span><del>-                 GSMOPEN_P_LOG,  strlen(iso_8859_1_in), iconv_res, inbuf, (int) inbytesleft, outbuf, (int) outbytesleft, utf8_out);
</del><ins>+                 GSMOPEN_P_LOG, strlen(iso_8859_1_in), iconv_res, inbuf, (int) inbytesleft, outbuf, (int) outbytesleft, utf8_out);
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -2634,20 +2645,20 @@
</span><span class="cx">                 //sms = SMSMessage::decode(&quot;079194710167120004038571F1390099406180904480A0D41631067296EF7390383D07CD622E58CD95CB81D6EF39BDEC66BFE7207A794E2FBB4320AFB82C07E56020A8FC7D9687DBED32285C9F83A06F769A9E5EB340D7B49C3E1FA3C3663A0B24E4CBE76516680A7FCBE920725A5E5ED341F0B21C346D4E41E1BA790E4286DDE4BC0BD42CA3E5207258EE1797E5A0BA9B5E9683C86539685997EBEF61341B249BC966&quot;); // dataCodingScheme = 0
</span><span class="cx">                 //sms = SMSMessage::decode(&quot;0791934329002000040C9193432766658100009001211133318004D4F29C0E&quot;); // dataCodingScheme = 0
</span><span class="cx">                 //sms = SMSMessage::decode(&quot;0791934329002000040C919343276665810008900121612521801600CC00E800E900F900F200E00020006300690061006F&quot;); // dataCodingScheme = 8
</span><del>-                sms = SMSMessage::decode(&quot;0791934329002000040C919343276665810008900172002293404C006300690061006F0020003100320033002000620065006C00E80020043D043E0432043E044104420438002005DC05E7002005E805D005EA0020FE8EFEE0FEA0FEE4FECBFE9300204EBA5927&quot;); // dataCodingScheme = 8 , text=ciao 123 belè новости לק ראת ﺎﻠﺠﻤﻋﺓ 人大
</del><ins>+                sms = SMSMessage::decode(&quot;0791934329002000040C919343276665810008900172002293404C006300690061006F0020003100320033002000620065006C00E80020043D043E0432043E044104420438002005DC05E7002005E805D005EA0020FE8EFEE0FEA0FEE4FECBFE9300204EBA5927&quot;);        // dataCodingScheme = 8 , text=ciao 123 belè новости לק ראת ﺎﻠﺠﻤﻋﺓ 人大
</ins><span class="cx">                 //sms = SMSMessage::decode(&quot;07911497941902F00414D0E474989D769F5DE4320839001040122151820000&quot;); // dataCodingScheme = 0
</span><span class="cx">                 NOTICA(&quot;SMS=\n%s\n&quot;, GSMOPEN_P_LOG, sms-&gt;toString().c_str());
</span><span class="cx"> 
</span><span class="cx">                 memset(content2, '\0', sizeof(content2));
</span><del>-                if(sms-&gt;dataCodingScheme().getAlphabet() == DCS_DEFAULT_ALPHABET){
-                        iso_8859_1_to_utf8(tech_pvt, (char *)sms-&gt;userData().c_str(), content2, sizeof(content2));
-                } else 
-                        if(sms-&gt;dataCodingScheme().getAlphabet() == DCS_SIXTEEN_BIT_ALPHABET){
-                                ucs2_to_utf8(tech_pvt, (char *)bufToHex((unsigned char *)sms-&gt;userData().data(), sms-&gt;userData().length()).c_str(), content2, sizeof(content2));
-                        }else {
-                                ERRORA(&quot;dataCodingScheme not supported=%d\n&quot;, GSMOPEN_P_LOG, sms-&gt;dataCodingScheme().getAlphabet());
</del><ins>+                if (sms-&gt;dataCodingScheme().getAlphabet() == DCS_DEFAULT_ALPHABET) {
+                        iso_8859_1_to_utf8(tech_pvt, (char *) sms-&gt;userData().c_str(), content2, sizeof(content2));
+                } else if (sms-&gt;dataCodingScheme().getAlphabet() == DCS_SIXTEEN_BIT_ALPHABET) {
+                        ucs2_to_utf8(tech_pvt, (char *) bufToHex((unsigned char *) sms-&gt;userData().data(), sms-&gt;userData().length()).c_str(), content2,
+                                                 sizeof(content2));
+                } else {
+                        ERRORA(&quot;dataCodingScheme not supported=%d\n&quot;, GSMOPEN_P_LOG, sms-&gt;dataCodingScheme().getAlphabet());
</ins><span class="cx"> 
</span><del>-                        }
</del><ins>+                }
</ins><span class="cx">                 NOTICA(&quot;dataCodingScheme=%d\n&quot;, GSMOPEN_P_LOG, sms-&gt;dataCodingScheme().getAlphabet());
</span><span class="cx">                 NOTICA(&quot;userData= |||%s|||\n&quot;, GSMOPEN_P_LOG, content2);
</span><span class="cx"> 
</span><span class="lines">@@ -3041,7 +3052,7 @@
</span><span class="cx">         //char *stringp = NULL;
</span><span class="cx">         //int found = 0;
</span><span class="cx">         int failed = 0;
</span><del>-                int err = 0;
</del><ins>+        int err = 0;
</ins><span class="cx"> 
</span><span class="cx">         //strncpy(rdest, idest, sizeof(rdest) - 1);
</span><span class="cx">         DEBUGA_GSMOPEN(&quot;GSMopenSendsms: dest=%s text=%s\n&quot;, GSMOPEN_P_LOG, dest, text);
</span><span class="lines">@@ -3062,10 +3073,10 @@
</span><span class="cx">                 PUSHA_UNLOCKA(&amp;tech_pvt-&gt;controldev_lock);
</span><span class="cx">                 LOKKA(tech_pvt-&gt;controldev_lock);
</span><span class="cx"> 
</span><del>-                        err = gsmopen_serial_write_AT_ack(tech_pvt, &quot;AT+CMGF=1&quot;);
-                        if (err) {
-                                ERRORA(&quot;AT+CMGF=1 (set message sending to TEXT (as opposed to PDU)  do not got OK from the phone\n&quot;, GSMOPEN_P_LOG);
-                        }
</del><ins>+                err = gsmopen_serial_write_AT_ack(tech_pvt, &quot;AT+CMGF=1&quot;);
+                if (err) {
+                        ERRORA(&quot;AT+CMGF=1 (set message sending to TEXT (as opposed to PDU)  do not got OK from the phone\n&quot;, GSMOPEN_P_LOG);
+                }
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">                 if (tech_pvt-&gt;no_ucs2) {
</span><span class="lines">@@ -3178,10 +3189,10 @@
</span><span class="cx">                 POPPA_UNLOCKA(&amp;tech_pvt-&gt;controldev_lock);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-                        err = gsmopen_serial_write_AT_ack(tech_pvt, &quot;AT+CMGF=0&quot;);
-                        if (err) {
-                                ERRORA(&quot;AT+CMGF=0 (set message sending to PDU (as opposed to TEXT)  do not got OK from the phone\n&quot;, GSMOPEN_P_LOG);
-                        }
</del><ins>+        err = gsmopen_serial_write_AT_ack(tech_pvt, &quot;AT+CMGF=0&quot;);
+        if (err) {
+                ERRORA(&quot;AT+CMGF=0 (set message sending to PDU (as opposed to TEXT)  do not got OK from the phone\n&quot;, GSMOPEN_P_LOG);
+        }
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">         DEBUGA_GSMOPEN(&quot;FINISH\n&quot;, GSMOPEN_P_LOG);
</span><span class="lines">@@ -3233,7 +3244,7 @@
</span><span class="cx">                 int16_t *ptr = (int16_t *) data;
</span><span class="cx"> 
</span><span class="cx">                 for (i = 0; i &lt; samples_num; i++) {
</span><del>-                        x = (int)(ptr[i] * boost) / BOOST_SCALE;
</del><ins>+                        x = (int) (ptr[i] * boost) / BOOST_SCALE;
</ins><span class="cx">                         if (x &gt; 32767) {
</span><span class="cx">                                 x = 32767;
</span><span class="cx">                         } else if (x &lt; -32768) {
</span><span class="lines">@@ -3248,159 +3259,140 @@
</span><span class="cx"> 
</span><span class="cx"> int gsmopen_serial_getstatus_AT(private_t * tech_pvt)
</span><span class="cx"> {
</span><del>-  int res;
-  private_t *p = tech_pvt;
</del><ins>+        int res;
+        private_t *p = tech_pvt;
</ins><span class="cx"> 
</span><span class="cx"> #if 0
</span><del>-  if (p-&gt;owner) {
-    if (p-&gt;owner-&gt;_state != AST_STATE_UP &amp;&amp; p-&gt;owner-&gt;_state != AST_STATE_DOWN) {
-      DEBUGA_AT(&quot;No getstatus, we're neither UP nor DOWN\n&quot;, GSMOPEN_P_LOG);
-      return 0;
-    }
-  }
-#endif 
</del><ins>+        if (p-&gt;owner) {
+                if (p-&gt;owner-&gt;_state != AST_STATE_UP &amp;&amp; p-&gt;owner-&gt;_state != AST_STATE_DOWN) {
+                        DEBUGA_AT(&quot;No getstatus, we're neither UP nor DOWN\n&quot;, GSMOPEN_P_LOG);
+                        return 0;
+                }
+        }
+#endif
</ins><span class="cx"> 
</span><span class="cx"> 
</span><del>-  PUSHA_UNLOCKA(p-&gt;controldev_lock);
-  LOKKA(p-&gt;controldev_lock);
-  res = gsmopen_serial_write_AT_ack(p, &quot;AT&quot;);
-  if (res) {
-    ERRORA(&quot;AT was not acknowledged, continuing but maybe there is a problem\n&quot;,
-           GSMOPEN_P_LOG);
-  }
-  usleep(1000);
</del><ins>+        PUSHA_UNLOCKA(p-&gt;controldev_lock);
+        LOKKA(p-&gt;controldev_lock);
+        res = gsmopen_serial_write_AT_ack(p, &quot;AT&quot;);
+        if (res) {
+                ERRORA(&quot;AT was not acknowledged, continuing but maybe there is a problem\n&quot;, GSMOPEN_P_LOG);
+        }
+        usleep(1000);
</ins><span class="cx"> 
</span><del>-  if (strlen(p-&gt;at_query_battchg)) {
-    res =
-      gsmopen_serial_write_AT_expect(p, p-&gt;at_query_battchg, p-&gt;at_query_battchg_expect);
-    if (res) {
-      WARNINGA(&quot;%s does not get %s from the phone. Continuing.\n&quot;, GSMOPEN_P_LOG,
-               p-&gt;at_query_battchg, p-&gt;at_query_battchg_expect);
-    }
-    usleep(1000);
-  }
</del><ins>+        if (strlen(p-&gt;at_query_battchg)) {
+                res = gsmopen_serial_write_AT_expect(p, p-&gt;at_query_battchg, p-&gt;at_query_battchg_expect);
+                if (res) {
+                        WARNINGA(&quot;%s does not get %s from the phone. Continuing.\n&quot;, GSMOPEN_P_LOG, p-&gt;at_query_battchg, p-&gt;at_query_battchg_expect);
+                }
+                usleep(1000);
+        }
</ins><span class="cx"> 
</span><del>-  if (strlen(p-&gt;at_query_signal)) {
-    res =
-      gsmopen_serial_write_AT_expect(p, p-&gt;at_query_signal, p-&gt;at_query_signal_expect);
-    if (res) {
-      WARNINGA(&quot;%s does not get %s from the phone. Continuing.\n&quot;, GSMOPEN_P_LOG,
-               p-&gt;at_query_signal, p-&gt;at_query_signal_expect);
-    }
-    usleep(1000);
-  }
-  //FIXME all the following commands in config!
</del><ins>+        if (strlen(p-&gt;at_query_signal)) {
+                res = gsmopen_serial_write_AT_expect(p, p-&gt;at_query_signal, p-&gt;at_query_signal_expect);
+                if (res) {
+                        WARNINGA(&quot;%s does not get %s from the phone. Continuing.\n&quot;, GSMOPEN_P_LOG, p-&gt;at_query_signal, p-&gt;at_query_signal_expect);
+                }
+                usleep(1000);
+        }
+        //FIXME all the following commands in config!
</ins><span class="cx"> 
</span><del>-  if (p-&gt;sms_cnmi_not_supported) {
-    res = gsmopen_serial_write_AT_ack(p, &quot;AT+MMGL=\&quot;HEADER ONLY\&quot;&quot;);
-    if (res) {
-      WARNINGA
-        (&quot;%s does not get %s from the phone. If your phone is not Motorola, please contact the gsmopen developers. Else, if your phone IS a Motorola, probably a long msg is incoming. If this happens repeatedly, and you cannot correctly receive SMSs from this interface, please manually clean all messages from the cellphone/SIM. Continuing.\n&quot;,
-         GSMOPEN_P_LOG, &quot;AT+MMGL=\&quot;HEADER ONLY\&quot;&quot;, &quot;OK&quot;);
-    } else {
-      usleep(1000);
-      if (p-&gt;unread_sms_msg_id) {
-        char at_command[256];
</del><ins>+        if (p-&gt;sms_cnmi_not_supported) {
+                res = gsmopen_serial_write_AT_ack(p, &quot;AT+MMGL=\&quot;HEADER ONLY\&quot;&quot;);
+                if (res) {
+                        WARNINGA
+                                (&quot;%s does not get %s from the phone. If your phone is not Motorola, please contact the gsmopen developers. Else, if your phone IS a Motorola, probably a long msg is incoming. If this happens repeatedly, and you cannot correctly receive SMSs from this interface, please manually clean all messages from the cellphone/SIM. Continuing.\n&quot;,
+                                 GSMOPEN_P_LOG, &quot;AT+MMGL=\&quot;HEADER ONLY\&quot;&quot;, &quot;OK&quot;);
+                } else {
+                        usleep(1000);
+                        if (p-&gt;unread_sms_msg_id) {
+                                char at_command[256];
</ins><span class="cx"> 
</span><del>-        res = gsmopen_serial_write_AT_ack(p, &quot;AT+CSCS=\&quot;UCS2\&quot;&quot;);
-        if (res) {
-          ERRORA
-            (&quot;AT+CSCS=\&quot;UCS2\&quot; (set TE messages to ucs2)  do not got OK from the phone\n&quot;,
-             GSMOPEN_P_LOG);
-          memset(p-&gt;sms_message, 0, sizeof(p-&gt;sms_message));
-        }
</del><ins>+                                res = gsmopen_serial_write_AT_ack(p, &quot;AT+CSCS=\&quot;UCS2\&quot;&quot;);
+                                if (res) {
+                                        ERRORA(&quot;AT+CSCS=\&quot;UCS2\&quot; (set TE messages to ucs2)  do not got OK from the phone\n&quot;, GSMOPEN_P_LOG);
+                                        memset(p-&gt;sms_message, 0, sizeof(p-&gt;sms_message));
+                                }
</ins><span class="cx"> 
</span><del>-        memset(at_command, 0, sizeof(at_command));
-        sprintf(at_command, &quot;AT+CMGR=%d&quot;, p-&gt;unread_sms_msg_id);
-        memset(p-&gt;sms_message, 0, sizeof(p-&gt;sms_message));
</del><ins>+                                memset(at_command, 0, sizeof(at_command));
+                                sprintf(at_command, &quot;AT+CMGR=%d&quot;, p-&gt;unread_sms_msg_id);
+                                memset(p-&gt;sms_message, 0, sizeof(p-&gt;sms_message));
</ins><span class="cx"> 
</span><del>-        p-&gt;reading_sms_msg = 1;
-        res = gsmopen_serial_write_AT_ack(p, at_command);
-        p-&gt;reading_sms_msg = 0;
-        if (res) {
-          ERRORA
-            (&quot;AT+CMGR (read SMS) do not got OK from the phone, message sent was:|||%s|||\n&quot;,
-             GSMOPEN_P_LOG, at_command);
-        }
-        res = gsmopen_serial_write_AT_ack(p, &quot;AT+CSCS=\&quot;GSM\&quot;&quot;);
-        if (res) {
-          ERRORA
-            (&quot;AT+CSCS=\&quot;GSM\&quot; (set TE messages to GSM) do not got OK from the phone\n&quot;,
-             GSMOPEN_P_LOG);
-        }
-        memset(at_command, 0, sizeof(at_command));
-        sprintf(at_command, &quot;AT+CMGD=%d&quot;, p-&gt;unread_sms_msg_id);    /* delete the message */
-        p-&gt;unread_sms_msg_id = 0;
-        res = gsmopen_serial_write_AT_ack(p, at_command);
-        if (res) {
-          ERRORA
-            (&quot;AT+CMGD (Delete SMS) do not got OK from the phone, message sent was:|||%s|||\n&quot;,
-             GSMOPEN_P_LOG, at_command);
-        }
</del><ins>+                                p-&gt;reading_sms_msg = 1;
+                                res = gsmopen_serial_write_AT_ack(p, at_command);
+                                p-&gt;reading_sms_msg = 0;
+                                if (res) {
+                                        ERRORA(&quot;AT+CMGR (read SMS) do not got OK from the phone, message sent was:|||%s|||\n&quot;, GSMOPEN_P_LOG, at_command);
+                                }
+                                res = gsmopen_serial_write_AT_ack(p, &quot;AT+CSCS=\&quot;GSM\&quot;&quot;);
+                                if (res) {
+                                        ERRORA(&quot;AT+CSCS=\&quot;GSM\&quot; (set TE messages to GSM) do not got OK from the phone\n&quot;, GSMOPEN_P_LOG);
+                                }
+                                memset(at_command, 0, sizeof(at_command));
+                                sprintf(at_command, &quot;AT+CMGD=%d&quot;, p-&gt;unread_sms_msg_id);        /* delete the message */
+                                p-&gt;unread_sms_msg_id = 0;
+                                res = gsmopen_serial_write_AT_ack(p, at_command);
+                                if (res) {
+                                        ERRORA(&quot;AT+CMGD (Delete SMS) do not got OK from the phone, message sent was:|||%s|||\n&quot;, GSMOPEN_P_LOG, at_command);
+                                }
</ins><span class="cx"> 
</span><del>-        if (strlen(p-&gt;sms_message)) {
</del><ins>+                                if (strlen(p-&gt;sms_message)) {
</ins><span class="cx"> #if 0
</span><span class="cx"> 
</span><del>-          manager_event(EVENT_FLAG_SYSTEM, &quot;GSMOPENincomingsms&quot;, &quot;Interface: %s\r\nSMS_Message: %s\r\n&quot;, p-&gt;name, p-&gt;sms_message);
</del><ins>+                                        manager_event(EVENT_FLAG_SYSTEM, &quot;GSMOPENincomingsms&quot;, &quot;Interface: %s\r\nSMS_Message: %s\r\n&quot;, p-&gt;name, p-&gt;sms_message);
</ins><span class="cx"> 
</span><del>-          if (strlen(p-&gt;sms_receiving_program)) {
-            int fd1[2];
-            pid_t pid1;
-            char *arg1[] = { p-&gt;sms_receiving_program, (char *) NULL };
-            int i;
</del><ins>+                                        if (strlen(p-&gt;sms_receiving_program)) {
+                                                int fd1[2];
+                                                pid_t pid1;
+                                                char *arg1[] = { p-&gt;sms_receiving_program, (char *) NULL };
+                                                int i;
</ins><span class="cx"> 
</span><del>-            DEBUGA_AT(&quot;incoming SMS message:---%s---\n&quot;, GSMOPEN_P_LOG, p-&gt;sms_message);
-            pipe(fd1);
-            pid1 = fork();
</del><ins>+                                                DEBUGA_AT(&quot;incoming SMS message:---%s---\n&quot;, GSMOPEN_P_LOG, p-&gt;sms_message);
+                                                pipe(fd1);
+                                                pid1 = fork();
</ins><span class="cx"> 
</span><del>-            if (pid1 == 0) {    //child
-              int err;
</del><ins>+                                                if (pid1 == 0) {        //child
+                                                        int err;
</ins><span class="cx"> 
</span><del>-              dup2(fd1[0], 0);  // Connect stdin to pipe output
-              close(fd1[1]);    // close input pipe side
-              setsid();         //session id
-              err = execvp(arg1[0], arg1);  //exec our program, with stdin connected to pipe output
-              if (err) {
-                ERRORA
-                  (&quot;'sms_receiving_program' is set in config file to '%s', and it gave us back this error: %d, (%s). SMS received was:---%s---\n&quot;,
-                   GSMOPEN_P_LOG, p-&gt;sms_receiving_program, err, strerror(errno),
-                   p-&gt;sms_message);
-              }
-              close(fd1[0]);    // close output pipe side
-            }                   //starting here continue the parent
-            close(fd1[0]);      // close output pipe side
-            // write the msg on the pipe input
-            for (i = 0; i &lt; strlen(p-&gt;sms_message); i++) {
-              write(fd1[1], &amp;p-&gt;sms_message[i], 1);
-            }
-            close(fd1[1]);      // close pipe input, let our program know we've finished
-          } else {
-            ERRORA
-              (&quot;got SMS incoming message, but 'sms_receiving_program' is not set in config file. SMS received was:---%s---\n&quot;,
-               GSMOPEN_P_LOG, p-&gt;sms_message);
-          }
</del><ins>+                                                        dup2(fd1[0], 0);        // Connect stdin to pipe output
+                                                        close(fd1[1]);        // close input pipe side
+                                                        setsid();        //session id
+                                                        err = execvp(arg1[0], arg1);        //exec our program, with stdin connected to pipe output
+                                                        if (err) {
+                                                                ERRORA
+                                                                        (&quot;'sms_receiving_program' is set in config file to '%s', and it gave us back this error: %d, (%s). SMS received was:---%s---\n&quot;,
+                                                                         GSMOPEN_P_LOG, p-&gt;sms_receiving_program, err, strerror(errno), p-&gt;sms_message);
+                                                        }
+                                                        close(fd1[0]);        // close output pipe side
+                                                }                //starting here continue the parent
+                                                close(fd1[0]);        // close output pipe side
+                                                // write the msg on the pipe input
+                                                for (i = 0; i &lt; strlen(p-&gt;sms_message); i++) {
+                                                        write(fd1[1], &amp;p-&gt;sms_message[i], 1);
+                                                }
+                                                close(fd1[1]);        // close pipe input, let our program know we've finished
+                                        } else {
+                                                ERRORA
+                                                        (&quot;got SMS incoming message, but 'sms_receiving_program' is not set in config file. SMS received was:---%s---\n&quot;,
+                                                         GSMOPEN_P_LOG, p-&gt;sms_message);
+                                        }
</ins><span class="cx"> #endif //0
</span><del>-            WARNINGA (&quot;got SMS incoming message. SMS received was:---%s---\n&quot;, GSMOPEN_P_LOG, p-&gt;sms_message);
-        }
-#if 0                           //is this one needed? maybe it can interrupt an incoming call that is just to announce itself
-        if (p-&gt;phone_callflow == CALLFLOW_CALL_IDLE
-            &amp;&amp; p-&gt;interface_state == AST_STATE_DOWN &amp;&amp; p-&gt;owner == NULL) {
-          /* we're not in a call, neither calling */
-          res = gsmopen_serial_write_AT_ack(p, &quot;AT+CKPD=\&quot;EEE\&quot;&quot;);
-          if (res) {
-            ERRORA
-              (&quot;AT+CKPD=\&quot;EEE\&quot; (cellphone screen back to user) do not got OK from the phone\n&quot;,
-               GSMOPEN_P_LOG);
-          }
-        }
</del><ins>+                                        WARNINGA(&quot;got SMS incoming message. SMS received was:---%s---\n&quot;, GSMOPEN_P_LOG, p-&gt;sms_message);
+                                }
+#if 0                                                        //is this one needed? maybe it can interrupt an incoming call that is just to announce itself
+                                if (p-&gt;phone_callflow == CALLFLOW_CALL_IDLE &amp;&amp; p-&gt;interface_state == AST_STATE_DOWN &amp;&amp; p-&gt;owner == NULL) {
+                                        /* we're not in a call, neither calling */
+                                        res = gsmopen_serial_write_AT_ack(p, &quot;AT+CKPD=\&quot;EEE\&quot;&quot;);
+                                        if (res) {
+                                                ERRORA(&quot;AT+CKPD=\&quot;EEE\&quot; (cellphone screen back to user) do not got OK from the phone\n&quot;, GSMOPEN_P_LOG);
+                                        }
+                                }
</ins><span class="cx"> #endif
</span><del>-      }
-    }
-  }
</del><ins>+                        }
+                }
+        }
</ins><span class="cx"> 
</span><del>-  UNLOCKA(p-&gt;controldev_lock);
-  POPPA_UNLOCKA(p-&gt;controldev_lock);
-  return 0;
</del><ins>+        UNLOCKA(p-&gt;controldev_lock);
+        POPPA_UNLOCKA(p-&gt;controldev_lock);
+        return 0;
</ins><span class="cx"> }
</span><del>-
-
</del></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopenmod_gsmopencpp"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/gmaruzz/mod_gsmopen/mod_gsmopen.cpp (16153 => 16154)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/mod_gsmopen.cpp        2010-01-05 15:44:53 UTC (rev 16153)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/mod_gsmopen.cpp        2010-01-05 15:55:24 UTC (rev 16154)
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx">         &quot;HANG_RQ&quot;,
</span><span class="cx">         &quot;PREANSW&quot;
</span><span class="cx"> };
</span><del>-const char *phone_callflow[] = {                /* should match CALLFLOW_XXX in gsmopen.h */
</del><ins>+const char *phone_callflow[] = {        /* should match CALLFLOW_XXX in gsmopen.h */
</ins><span class="cx">         &quot;CALL_IDLE&quot;,
</span><span class="cx">         &quot;CALL_DOWN&quot;,
</span><span class="cx">         &quot;INCOMING_RNG&quot;,
</span><span class="lines">@@ -197,7 +197,8 @@
</span><span class="cx"> static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
</span><span class="cx">                                                                                                         switch_event_t *var_event,
</span><span class="cx">                                                                                                         switch_caller_profile_t *outbound_profile,
</span><del>-                                                                                                        switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags, switch_call_cause_t *cancel_cause);
</del><ins>+                                                                                                        switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags,
+                                                                                                        switch_call_cause_t *cancel_cause);
</ins><span class="cx"> static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
</span><span class="cx"> static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
</span><span class="cx"> static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig);
</span><span class="lines">@@ -451,7 +452,7 @@
</span><span class="cx">         switch_channel_t *channel;
</span><span class="cx">         private_t *tech_pvt = NULL;
</span><span class="cx"> 
</span><del>-        tech_pvt = ( private_t *)switch_core_session_get_private(session);
</del><ins>+        tech_pvt = (private_t *) switch_core_session_get_private(session);
</ins><span class="cx">         switch_assert(tech_pvt != NULL);
</span><span class="cx"> 
</span><span class="cx">         channel = switch_core_session_get_channel(session);
</span><span class="lines">@@ -477,7 +478,7 @@
</span><span class="cx"> {
</span><span class="cx">         private_t *tech_pvt = NULL;
</span><span class="cx"> 
</span><del>-        tech_pvt = ( private_t *)switch_core_session_get_private(session);
</del><ins>+        tech_pvt = (private_t *) switch_core_session_get_private(session);
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">         if (tech_pvt) {
</span><span class="lines">@@ -518,7 +519,7 @@
</span><span class="cx">         channel = switch_core_session_get_channel(session);
</span><span class="cx">         switch_assert(channel != NULL);
</span><span class="cx"> 
</span><del>-        tech_pvt = ( private_t *)switch_core_session_get_private(session);
</del><ins>+        tech_pvt = (private_t *) switch_core_session_get_private(session);
</ins><span class="cx">         switch_assert(tech_pvt != NULL);
</span><span class="cx"> 
</span><span class="cx">         tech_pvt-&gt;phone_callflow = CALLFLOW_CALL_HANGUP_REQUESTED;
</span><span class="lines">@@ -550,7 +551,7 @@
</span><span class="cx"> 
</span><span class="cx">         tech_pvt-&gt;interface_state = GSMOPEN_STATE_IDLE;
</span><span class="cx">         //FIXME if (tech_pvt-&gt;phone_callflow == CALLFLOW_STATUS_FINISHED) {
</span><del>-                tech_pvt-&gt;phone_callflow = CALLFLOW_CALL_IDLE;
</del><ins>+        tech_pvt-&gt;phone_callflow = CALLFLOW_CALL_IDLE;
</ins><span class="cx">         //FIXME }
</span><span class="cx">         switch_mutex_unlock(globals.mutex);
</span><span class="cx"> 
</span><span class="lines">@@ -565,7 +566,7 @@
</span><span class="cx">         channel = switch_core_session_get_channel(session);
</span><span class="cx">         switch_assert(channel != NULL);
</span><span class="cx"> 
</span><del>-        tech_pvt = ( private_t *)switch_core_session_get_private(session);
</del><ins>+        tech_pvt = (private_t *) switch_core_session_get_private(session);
</ins><span class="cx">         switch_assert(tech_pvt != NULL);
</span><span class="cx"> 
</span><span class="cx">         DEBUGA_GSMOPEN(&quot;%s CHANNEL ROUTING\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;name);
</span><span class="lines">@@ -582,7 +583,7 @@
</span><span class="cx">         channel = switch_core_session_get_channel(session);
</span><span class="cx">         switch_assert(channel != NULL);
</span><span class="cx"> 
</span><del>-        tech_pvt = ( private_t *)switch_core_session_get_private(session);
</del><ins>+        tech_pvt = (private_t *) switch_core_session_get_private(session);
</ins><span class="cx">         switch_assert(tech_pvt != NULL);
</span><span class="cx"> 
</span><span class="cx">         DEBUGA_GSMOPEN(&quot;%s CHANNEL EXECUTE\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;name);
</span><span class="lines">@@ -598,7 +599,7 @@
</span><span class="cx">         channel = switch_core_session_get_channel(session);
</span><span class="cx">         switch_assert(channel != NULL);
</span><span class="cx"> 
</span><del>-        tech_pvt = ( private_t *)switch_core_session_get_private(session);
</del><ins>+        tech_pvt = (private_t *) switch_core_session_get_private(session);
</ins><span class="cx">         switch_assert(tech_pvt != NULL);
</span><span class="cx"> 
</span><span class="cx">         DEBUGA_GSMOPEN(&quot;%s CHANNEL KILL_CHANNEL\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;name);
</span><span class="lines">@@ -628,7 +629,7 @@
</span><span class="cx"> {
</span><span class="cx">         private_t *tech_pvt = NULL;
</span><span class="cx"> 
</span><del>-        tech_pvt = ( private_t *)switch_core_session_get_private(session);
</del><ins>+        tech_pvt = (private_t *) switch_core_session_get_private(session);
</ins><span class="cx"> 
</span><span class="cx">         DEBUGA_GSMOPEN(&quot;%s CHANNEL CONSUME_MEDIA\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;name);
</span><span class="cx">         return SWITCH_STATUS_SUCCESS;
</span><span class="lines">@@ -638,7 +639,7 @@
</span><span class="cx"> static switch_status_t channel_on_exchange_media(switch_core_session_t *session)
</span><span class="cx"> {
</span><span class="cx">         private_t *tech_pvt = NULL;
</span><del>-        tech_pvt = ( private_t *)switch_core_session_get_private(session);
</del><ins>+        tech_pvt = (private_t *) switch_core_session_get_private(session);
</ins><span class="cx">         DEBUGA_GSMOPEN(&quot;%s CHANNEL EXCHANGE_MEDIA\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;name);
</span><span class="cx">         return SWITCH_STATUS_SUCCESS;
</span><span class="cx"> }
</span><span class="lines">@@ -646,14 +647,14 @@
</span><span class="cx"> static switch_status_t channel_on_soft_execute(switch_core_session_t *session)
</span><span class="cx"> {
</span><span class="cx">         private_t *tech_pvt = NULL;
</span><del>-        tech_pvt = ( private_t *)switch_core_session_get_private(session);
</del><ins>+        tech_pvt = (private_t *) switch_core_session_get_private(session);
</ins><span class="cx">         DEBUGA_GSMOPEN(&quot;%s CHANNEL SOFT_EXECUTE\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;name);
</span><span class="cx">         return SWITCH_STATUS_SUCCESS;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t * dtmf)
</del><ins>+static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf)
</ins><span class="cx"> {
</span><del>-        private_t *tech_pvt = ( private_t *)switch_core_session_get_private(session);
</del><ins>+        private_t *tech_pvt = (private_t *) switch_core_session_get_private(session);
</ins><span class="cx">         switch_assert(tech_pvt != NULL);
</span><span class="cx"> 
</span><span class="cx">         DEBUGA_GSMOPEN(&quot;%s CHANNEL SEND_DTMF\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;name);
</span><span class="lines">@@ -673,7 +674,7 @@
</span><span class="cx">         channel = switch_core_session_get_channel(session);
</span><span class="cx">         switch_assert(channel != NULL);
</span><span class="cx"> 
</span><del>-        tech_pvt = ( private_t *)switch_core_session_get_private(session);
</del><ins>+        tech_pvt = (private_t *) switch_core_session_get_private(session);
</ins><span class="cx">         switch_assert(tech_pvt != NULL);
</span><span class="cx"> 
</span><span class="cx">         if (!switch_channel_ready(channel) || !switch_test_flag(tech_pvt, TFLAG_IO)) {
</span><span class="lines">@@ -696,7 +697,7 @@
</span><span class="cx">         int samples;
</span><span class="cx"> 
</span><span class="cx">         //if ((samples = snd_pcm_readi(tech_pvt-&gt;alsac, tech_pvt-&gt;read_frame.data, tech_pvt-&gt;read_codec.implementation-&gt;samples_per_packet)) &gt; 0) 
</span><del>-        if ((samples = alsa_read(tech_pvt, (short *)tech_pvt-&gt;read_frame.data, tech_pvt-&gt;read_codec.implementation-&gt;samples_per_packet)) &gt; 0) {
</del><ins>+        if ((samples = alsa_read(tech_pvt, (short *) tech_pvt-&gt;read_frame.data, tech_pvt-&gt;read_codec.implementation-&gt;samples_per_packet)) &gt; 0) {
</ins><span class="cx"> 
</span><span class="cx">                 tech_pvt-&gt;read_frame.datalen = samples * 2;
</span><span class="cx">                 tech_pvt-&gt;read_frame.samples = samples;
</span><span class="lines">@@ -730,7 +731,7 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">         memset(digit_str, 0, sizeof(digit_str));
</span><del>-        teletone_dtmf_detect(&amp;tech_pvt-&gt;dtmf_detect, (int16_t *)tech_pvt-&gt;read_frame.data, tech_pvt-&gt;read_frame.samples);
</del><ins>+        teletone_dtmf_detect(&amp;tech_pvt-&gt;dtmf_detect, (int16_t *) tech_pvt-&gt;read_frame.data, tech_pvt-&gt;read_frame.samples);
</ins><span class="cx">         teletone_dtmf_get(&amp;tech_pvt-&gt;dtmf_detect, digit_str, sizeof(digit_str));
</span><span class="cx"> 
</span><span class="cx">         if (digit_str[0]) {
</span><span class="lines">@@ -808,7 +809,7 @@
</span><span class="cx">         channel = switch_core_session_get_channel(session);
</span><span class="cx">         switch_assert(channel != NULL);
</span><span class="cx"> 
</span><del>-        tech_pvt = ( private_t *)switch_core_session_get_private(session);
</del><ins>+        tech_pvt = (private_t *) switch_core_session_get_private(session);
</ins><span class="cx">         switch_assert(tech_pvt != NULL);
</span><span class="cx"> 
</span><span class="cx">         if (!switch_channel_ready(channel) || !switch_test_flag(tech_pvt, TFLAG_IO)) {
</span><span class="lines">@@ -829,7 +830,7 @@
</span><span class="cx">         //snd_pcm_writei(tech_pvt-&gt;alsap, (short *) frame-&gt;data, (int) (frame-&gt;datalen / 2));
</span><span class="cx"> 
</span><span class="cx">         gsmopen_sound_boost(frame-&gt;data, frame-&gt;samples, tech_pvt-&gt;playback_boost);
</span><del>-        sent = alsa_write(tech_pvt, (short *)frame-&gt;data, (int) (frame-&gt;datalen));
</del><ins>+        sent = alsa_write(tech_pvt, (short *) frame-&gt;data, (int) (frame-&gt;datalen));
</ins><span class="cx"> //DEBUGA_GSMOPEN(&quot;sent=%d \n&quot;, GSMOPEN_P_LOG, sent);
</span><span class="cx"> 
</span><span class="cx">         if (sent &amp;&amp; sent != frame-&gt;datalen / 2 &amp;&amp; sent != -1) {
</span><span class="lines">@@ -847,7 +848,7 @@
</span><span class="cx">         channel = switch_core_session_get_channel(session);
</span><span class="cx">         switch_assert(channel != NULL);
</span><span class="cx"> 
</span><del>-        tech_pvt = ( private_t *)switch_core_session_get_private(session);
</del><ins>+        tech_pvt = (private_t *) switch_core_session_get_private(session);
</ins><span class="cx">         switch_assert(tech_pvt != NULL);
</span><span class="cx"> 
</span><span class="cx">         //ERRORA(&quot;%s CHANNEL INIT\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;name);
</span><span class="lines">@@ -934,7 +935,7 @@
</span><span class="cx">         switch_assert(tech_pvt != NULL);
</span><span class="cx"> 
</span><span class="cx">         if (!body) {
</span><del>-                body = (char *)&quot;&quot;;
</del><ins>+                body = (char *) &quot;&quot;;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         WARNINGA(&quot;event: |||%s|||\n&quot;, GSMOPEN_P_LOG, body);
</span><span class="lines">@@ -970,7 +971,8 @@
</span><span class="cx"> static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
</span><span class="cx">                                                                                                         switch_event_t *var_event,
</span><span class="cx">                                                                                                         switch_caller_profile_t *outbound_profile,
</span><del>-                                                                                                        switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags, switch_call_cause_t *cancel_cause)
</del><ins>+                                                                                                        switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags,
+                                                                                                        switch_call_cause_t *cancel_cause)
</ins><span class="cx"> {
</span><span class="cx">         private_t *tech_pvt = NULL;
</span><span class="cx">         if ((*new_session = switch_core_session_request(gsmopen_endpoint_interface, SWITCH_CALL_DIRECTION_OUTBOUND, pool)) != 0) {
</span><span class="lines">@@ -1003,7 +1005,7 @@
</span><span class="cx">                                 /* Find the first idle interface using Round Robin */
</span><span class="cx">                                 DEBUGA_GSMOPEN(&quot;Finding one available gsmopen interface RR\n&quot;, GSMOPEN_P_LOG);
</span><span class="cx">                                 tech_pvt = find_available_gsmopen_interface_rr(NULL);
</span><del>-                                if (tech_pvt){
</del><ins>+                                if (tech_pvt) {
</ins><span class="cx">                                         found = 1;
</span><span class="cx">                                         DEBUGA_GSMOPEN(&quot;FOUND one available gsmopen interface RR\n&quot;, GSMOPEN_P_LOG);
</span><span class="cx">                                 }
</span><span class="lines">@@ -1365,7 +1367,7 @@
</span><span class="cx">                                         at_indicator_callsetupoutgoing_string = val;
</span><span class="cx">                                 } else if (!strcasecmp(var, &quot;at_indicator_callsetupremoteringing_string&quot;)) {
</span><span class="cx">                                         at_indicator_callsetupremoteringing_string = val;
</span><del>-                                //} else if (!strcasecmp(var, &quot;sms_receiving_program&quot;)) {
</del><ins>+                                        //} else if (!strcasecmp(var, &quot;sms_receiving_program&quot;)) {
</ins><span class="cx">                                         //sms_receiving_program = val;
</span><span class="cx">                                 } else if (!strcasecmp(var, &quot;alsacname&quot;)) {
</span><span class="cx">                                         alsacname = val;
</span><span class="lines">@@ -1431,7 +1433,8 @@
</span><span class="cx">                                 continue;
</span><span class="cx">                         }
</span><span class="cx">                         if (!switch_is_number(at_after_preinit_pause)) {
</span><del>-                                ERRORA(&quot;interface param 'at_after_preinit_pause' MUST be a number, now at_after_preinit_pause='%s'\n&quot;, GSMOPEN_P_LOG, at_after_preinit_pause);
</del><ins>+                                ERRORA(&quot;interface param 'at_after_preinit_pause' MUST be a number, now at_after_preinit_pause='%s'\n&quot;, GSMOPEN_P_LOG,
+                                           at_after_preinit_pause);
</ins><span class="cx">                                 continue;
</span><span class="cx">                         }
</span><span class="cx">                         if (!switch_is_number(at_initial_pause)) {
</span><span class="lines">@@ -1451,7 +1454,8 @@
</span><span class="cx">                                 continue;
</span><span class="cx">                         }
</span><span class="cx">                         if (!switch_is_number(alsa_periods_in_buffer)) {
</span><del>-                                ERRORA(&quot;interface param 'alsa_periods_in_buffer' MUST be a number, now alsa_periods_in_buffer='%s'\n&quot;, GSMOPEN_P_LOG, alsa_periods_in_buffer);
</del><ins>+                                ERRORA(&quot;interface param 'alsa_periods_in_buffer' MUST be a number, now alsa_periods_in_buffer='%s'\n&quot;, GSMOPEN_P_LOG,
+                                           alsa_periods_in_buffer);
</ins><span class="cx">                                 continue;
</span><span class="cx">                         }
</span><span class="cx">                         if (!switch_is_number(gsmopen_sound_rate)) {
</span><span class="lines">@@ -1604,21 +1608,21 @@
</span><span class="cx">                                         }
</span><span class="cx">                                 }
</span><span class="cx"> 
</span><del>-        if (alsa_init(&amp;globals.GSMOPEN_INTERFACES[interface_id])) {
-                ERRORA(&quot;alsa_init failed\n&quot;, GSMOPEN_P_LOG);
-                return SWITCH_STATUS_FALSE;
</del><ins>+                                if (alsa_init(&amp;globals.GSMOPEN_INTERFACES[interface_id])) {
+                                        ERRORA(&quot;alsa_init failed\n&quot;, GSMOPEN_P_LOG);
+                                        return SWITCH_STATUS_FALSE;
</ins><span class="cx"> 
</span><del>-        }
</del><ins>+                                }
</ins><span class="cx"> 
</span><del>-        if (alsa_shutdown(&amp;globals.GSMOPEN_INTERFACES[interface_id])) {
-                ERRORA(&quot;alsa_shutdown failed\n&quot;, GSMOPEN_P_LOG);
-                return SWITCH_STATUS_FALSE;
</del><ins>+                                if (alsa_shutdown(&amp;globals.GSMOPEN_INTERFACES[interface_id])) {
+                                        ERRORA(&quot;alsa_shutdown failed\n&quot;, GSMOPEN_P_LOG);
+                                        return SWITCH_STATUS_FALSE;
</ins><span class="cx"> 
</span><del>-        }
-                                //gsmopen_store_boost((char *)&quot;5&quot;, &amp;globals.GSMOPEN_INTERFACES[interface_id].capture_boost);        //FIXME
-                                //gsmopen_store_boost((char *)&quot;10&quot;, &amp;globals.GSMOPEN_INTERFACES[interface_id].playback_boost);        //FIXME
-                                gsmopen_store_boost((char *)capture_boost, &amp;globals.GSMOPEN_INTERFACES[interface_id].capture_boost);        //FIXME
-                                gsmopen_store_boost((char *)playback_boost, &amp;globals.GSMOPEN_INTERFACES[interface_id].playback_boost);        //FIXME
</del><ins>+                                }
+                                //gsmopen_store_boost((char *)&quot;5&quot;, &amp;globals.GSMOPEN_INTERFACES[interface_id].capture_boost);    //FIXME
+                                //gsmopen_store_boost((char *)&quot;10&quot;, &amp;globals.GSMOPEN_INTERFACES[interface_id].playback_boost);  //FIXME
+                                gsmopen_store_boost((char *) capture_boost, &amp;globals.GSMOPEN_INTERFACES[interface_id].capture_boost);        //FIXME
+                                gsmopen_store_boost((char *) playback_boost, &amp;globals.GSMOPEN_INTERFACES[interface_id].playback_boost);        //FIXME
</ins><span class="cx"> 
</span><span class="cx">                                 switch_sleep(100000);
</span><span class="cx">                                 switch_threadattr_create(&amp;gsmopen_api_thread_attr, gsmopen_module_pool);
</span><span class="lines">@@ -1662,7 +1666,8 @@
</span><span class="cx">         return SWITCH_STATUS_SUCCESS;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static switch_status_t chat_send(const char *proto, const char *from, const char *to, const char *subject, const char *body, const char *type, const char *hint)
</del><ins>+static switch_status_t chat_send(const char *proto, const char *from, const char *to, const char *subject, const char *body, const char *type,
+                                                                 const char *hint)
</ins><span class="cx"> {
</span><span class="cx">         char *user, *host, *f_user = NULL, *f_host = NULL, *f_resource = NULL;
</span><span class="cx">         private_t *tech_pvt = NULL;
</span><span class="lines">@@ -1708,7 +1713,8 @@
</span><span class="cx">                                 if (strlen(globals.GSMOPEN_INTERFACES[i].name)
</span><span class="cx">                                         &amp;&amp; (strncmp(globals.GSMOPEN_INTERFACES[i].name, hint, strlen(hint)) == 0)) {
</span><span class="cx">                                         tech_pvt = &amp;globals.GSMOPEN_INTERFACES[i];
</span><del>-                                        DEBUGA_GSMOPEN(&quot;Using interface: globals.GSMOPEN_INTERFACES[%d].name=|||%s|||\n&quot;, GSMOPEN_P_LOG, i, globals.GSMOPEN_INTERFACES[i].name);
</del><ins>+                                        DEBUGA_GSMOPEN(&quot;Using interface: globals.GSMOPEN_INTERFACES[%d].name=|||%s|||\n&quot;, GSMOPEN_P_LOG, i,
+                                                                   globals.GSMOPEN_INTERFACES[i].name);
</ins><span class="cx">                                         found = 1;
</span><span class="cx">                                         break;
</span><span class="cx">                                 }
</span><span class="lines">@@ -1762,7 +1768,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         *module_interface = switch_loadable_module_create_module_interface(pool, modname);
</span><del>-        gsmopen_endpoint_interface = (switch_endpoint_interface_t *)switch_loadable_module_create_interface(*module_interface, SWITCH_ENDPOINT_INTERFACE);
</del><ins>+        gsmopen_endpoint_interface = (switch_endpoint_interface_t *) switch_loadable_module_create_interface(*module_interface, SWITCH_ENDPOINT_INTERFACE);
</ins><span class="cx">         gsmopen_endpoint_interface-&gt;interface_name = &quot;gsmopen&quot;;
</span><span class="cx">         gsmopen_endpoint_interface-&gt;io_routines = &amp;gsmopen_io_routines;
</span><span class="cx">         gsmopen_endpoint_interface-&gt;state_handler = &amp;gsmopen_state_handlers;
</span><span class="lines">@@ -1773,7 +1779,8 @@
</span><span class="cx">                 SWITCH_ADD_API(commands_api_interface, &quot;sk&quot;, &quot;GSMopen console commands&quot;, sk_function, SK_SYNTAX);
</span><span class="cx">                 SWITCH_ADD_API(commands_api_interface, &quot;gsmopen&quot;, &quot;GSMopen interface commands&quot;, gsmopen_function, GSMOPEN_SYNTAX);
</span><span class="cx"> #endif //0
</span><del>-                SWITCH_ADD_API(commands_api_interface, &quot;gsmopen_sendsms&quot;, &quot;gsmopen_sendsms interface destination_number SMS_text&quot;, sendsms_function, SENDSMS_SYNTAX);
</del><ins>+                SWITCH_ADD_API(commands_api_interface, &quot;gsmopen_sendsms&quot;, &quot;gsmopen_sendsms interface destination_number SMS_text&quot;, sendsms_function,
+                                           SENDSMS_SYNTAX);
</ins><span class="cx">                 SWITCH_ADD_CHAT(chat_interface, MDL_CHAT_PROTO, chat_send);
</span><span class="cx"> 
</span><span class="cx">                 /* indicate that the module should continue to be loaded */
</span><span class="lines">@@ -1825,14 +1832,13 @@
</span><span class="cx">                                 x--;
</span><span class="cx">                                 switch_yield(50000);
</span><span class="cx">                         }
</span><del>-        fd = tech_pvt-&gt;controldevfd;
-                WARNINGA(&quot;SHUTDOWN tech_pvt-&gt;controldevfd=%d\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;controldevfd);
-        if (fd) {
-                //close(fd);
-                //tech_pvt-&gt;controldevfd = -1;
-                WARNINGA(&quot;SHUTDOWN tech_pvt-&gt;controldevfd=%d\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;controldevfd);
-        }
-
</del><ins>+                        fd = tech_pvt-&gt;controldevfd;
+                        WARNINGA(&quot;SHUTDOWN tech_pvt-&gt;controldevfd=%d\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;controldevfd);
+                        if (fd) {
+                                //close(fd);
+                                //tech_pvt-&gt;controldevfd = -1;
+                                WARNINGA(&quot;SHUTDOWN tech_pvt-&gt;controldevfd=%d\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;controldevfd);
+                        }
</ins><span class="cx"> #ifndef WIN32
</span><span class="cx">                         WARNINGA(&quot;SHUTDOWN interface_id=%d\n&quot;, GSMOPEN_P_LOG, interface_id);
</span><span class="cx">                         shutdown(tech_pvt-&gt;audiogsmopenpipe[0], 2);
</span><span class="lines">@@ -1864,7 +1870,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void *SWITCH_THREAD_FUNC gsmopen_do_gsmopenapi_thread(switch_thread_t *thread, void *obj)
</del><ins>+void *SWITCH_THREAD_FUNC gsmopen_do_gsmopenapi_thread(switch_thread_t * thread, void *obj)
</ins><span class="cx"> {
</span><span class="cx">         return gsmopen_do_gsmopenapi_thread_func(obj);
</span><span class="cx"> }
</span><span class="lines">@@ -2069,8 +2075,11 @@
</span><span class="cx"> 
</span><span class="cx">                         tech_pvt = &amp;globals.GSMOPEN_INTERFACES[interface_id];
</span><span class="cx">                         gsmopen_state = tech_pvt-&gt;interface_state;
</span><del>-                        DEBUGA_GSMOPEN(&quot;gsmopen interface: %d, name: %s, state: %d\n&quot;, GSMOPEN_P_LOG, interface_id, globals.GSMOPEN_INTERFACES[interface_id].name, gsmopen_state);
-                        if ((tech_pvt_calling ? strcmp(tech_pvt-&gt;gsmopen_user, tech_pvt_calling-&gt;gsmopen_user) : 1) &amp;&amp; (GSMOPEN_STATE_DOWN == gsmopen_state || 0 == gsmopen_state) &amp;&amp; (tech_pvt-&gt;phone_callflow == CALLFLOW_STATUS_FINISHED || 0 == tech_pvt-&gt;phone_callflow)) {
</del><ins>+                        DEBUGA_GSMOPEN(&quot;gsmopen interface: %d, name: %s, state: %d\n&quot;, GSMOPEN_P_LOG, interface_id, globals.GSMOPEN_INTERFACES[interface_id].name,
+                                                   gsmopen_state);
+                        if ((tech_pvt_calling ? strcmp(tech_pvt-&gt;gsmopen_user, tech_pvt_calling-&gt;gsmopen_user) : 1)
+                                &amp;&amp; (GSMOPEN_STATE_DOWN == gsmopen_state || 0 == gsmopen_state) &amp;&amp; (tech_pvt-&gt;phone_callflow == CALLFLOW_STATUS_FINISHED
+                                                                                                                                                                   || 0 == tech_pvt-&gt;phone_callflow)) {
</ins><span class="cx">                                 DEBUGA_GSMOPEN(&quot;returning as available gsmopen interface name: %s, state: %d callflow: %d\n&quot;, GSMOPEN_P_LOG, tech_pvt-&gt;name, gsmopen_state,
</span><span class="cx">                                                            tech_pvt-&gt;phone_callflow);
</span><span class="cx">                                 /*set to Dialing state to avoid other thread fint it, don't know if it is safe */
</span><span class="lines">@@ -2149,7 +2158,8 @@
</span><span class="cx">                                 if (strlen(globals.GSMOPEN_INTERFACES[i].name)
</span><span class="cx">                                         &amp;&amp; (strncmp(globals.GSMOPEN_INTERFACES[i].name, argv[1], strlen(argv[1])) == 0)) {
</span><span class="cx">                                         globals.sk_console = &amp;globals.GSMOPEN_INTERFACES[i];
</span><del>-                                        stream-&gt;write_function(stream, &quot;sk console is now: globals.GSMOPEN_INTERFACES[%d].name=|||%s|||\n&quot;, i, globals.GSMOPEN_INTERFACES[i].name);
</del><ins>+                                        stream-&gt;write_function(stream, &quot;sk console is now: globals.GSMOPEN_INTERFACES[%d].name=|||%s|||\n&quot;, i,
+                                                                                   globals.GSMOPEN_INTERFACES[i].name);
</ins><span class="cx">                                         stream-&gt;write_function(stream, &quot;sk console is: |||%s|||\n&quot;, globals.sk_console-&gt;name);
</span><span class="cx">                                         found = 1;
</span><span class="cx">                                         break;
</span><span class="lines">@@ -2423,7 +2433,7 @@
</span><span class="cx">                         usleep(100);                //give other threads a chance
</span><span class="cx">                         time(&amp;now_timestamp);
</span><span class="cx"> 
</span><del>-                        if ((now_timestamp - tech_pvt-&gt;gsmopen_serial_synced_timestamp) &gt; 30) {    //TODO find a sensible period. 5min? in config?
</del><ins>+                        if ((now_timestamp - tech_pvt-&gt;gsmopen_serial_synced_timestamp) &gt; 30) {        //TODO find a sensible period. 5min? in config?
</ins><span class="cx">                                 gsmopen_serial_sync(tech_pvt);
</span><span class="cx">                                 gsmopen_serial_getstatus_AT(tech_pvt);
</span><span class="cx">                         }
</span><span class="lines">@@ -2482,8 +2492,8 @@
</span><span class="cx">                         return SWITCH_STATUS_SUCCESS;
</span><span class="cx">                 } else {
</span><span class="cx">                         //gsmopen_sendsms(tech_pvt, (char *) argv[1], (char *) argv[2]);
</span><del>-                        NOTICA(&quot;chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, type=NULL, hint=%s)\n&quot;, GSMOPEN_P_LOG, MDL_CHAT_PROTO, tech_pvt-&gt;name, argv[1],
-                                   &quot;SIMPLE MESSAGE&quot;, switch_str_nil(argv[2]), tech_pvt-&gt;name);
</del><ins>+                        NOTICA(&quot;chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, type=NULL, hint=%s)\n&quot;, GSMOPEN_P_LOG, MDL_CHAT_PROTO, tech_pvt-&gt;name,
+                                   argv[1], &quot;SIMPLE MESSAGE&quot;, switch_str_nil(argv[2]), tech_pvt-&gt;name);
</ins><span class="cx"> 
</span><span class="cx">                         chat_send(MDL_CHAT_PROTO, tech_pvt-&gt;name, argv[1], &quot;SIMPLE MESSAGE&quot;, switch_str_nil(argv[2]), NULL, tech_pvt-&gt;name);
</span><span class="cx">                 }
</span><span class="lines">@@ -2549,9 +2559,9 @@
</span><span class="cx">                         //switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, &quot;from&quot;, tech_pvt-&gt;chatmessages[which].from_handle);
</span><span class="cx">                         switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, &quot;from&quot;, tech_pvt-&gt;sms_sender);
</span><span class="cx">                         switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, &quot;date&quot;, tech_pvt-&gt;sms_date);
</span><del>-                switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, &quot;datacodingscheme&quot;, tech_pvt-&gt;sms_datacodingscheme);
-                switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, &quot;servicecentreaddress&quot;, tech_pvt-&gt;sms_servicecentreaddress);
-                switch_event_add_header(event, SWITCH_STACK_BOTTOM, &quot;messagetype&quot;, &quot;%d&quot;, tech_pvt-&gt;sms_messagetype);
</del><ins>+                        switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, &quot;datacodingscheme&quot;, tech_pvt-&gt;sms_datacodingscheme);
+                        switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, &quot;servicecentreaddress&quot;, tech_pvt-&gt;sms_servicecentreaddress);
+                        switch_event_add_header(event, SWITCH_STACK_BOTTOM, &quot;messagetype&quot;, &quot;%d&quot;, tech_pvt-&gt;sms_messagetype);
</ins><span class="cx">                         switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, &quot;subject&quot;, &quot;SIMPLE MESSAGE&quot;);
</span><span class="cx">                         //switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, &quot;chatname&quot;, tech_pvt-&gt;chatmessages[which].chatname);
</span><span class="cx">                         //switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, &quot;id&quot;, tech_pvt-&gt;chatmessages[which].id);
</span><span class="lines">@@ -2625,8 +2635,8 @@
</span><span class="cx">                         NOTICA(&quot;chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, type=NULL, hint=%s)\n&quot;, GSMOPEN_P_LOG, MDL_CHAT_PROTO, tech_pvt-&gt;skype_user,
</span><span class="cx">                                    argv[1], &quot;SIMPLE MESSAGE&quot;, switch_str_nil((char *) &amp;cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]), tech_pvt-&gt;name);
</span><span class="cx"> 
</span><del>-                        chat_send(MDL_CHAT_PROTO, tech_pvt-&gt;skype_user, argv[1], &quot;SIMPLE MESSAGE&quot;, switch_str_nil((char *) &amp;cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]),
-                                          NULL, tech_pvt-&gt;name);
</del><ins>+                        chat_send(MDL_CHAT_PROTO, tech_pvt-&gt;skype_user, argv[1], &quot;SIMPLE MESSAGE&quot;,
+                                          switch_str_nil((char *) &amp;cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]), NULL, tech_pvt-&gt;name);
</ins><span class="cx"> 
</span><span class="cx">                         //NOTICA(&quot;TEXT is: %s\n&quot;, GSMOPEN_P_LOG, (char *) &amp;cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1] );
</span><span class="cx">                         //snprintf(skype_msg, sizeof(skype_msg), &quot;CHAT CREATE %s&quot;, argv[1]);
</span></span></pre>
</div>
</div>
<div id="footer">See you at ClueCon</div>

</body>
</html>