<!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][16170] </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=16170">16170</a></dd>
<dt>Author</dt> <dd>gmaruzz</dd>
<dt>Date</dt> <dd>2010-01-06 06:29:05 -0600 (Wed, 06 Jan 2010)</dd>
</dl>
<h3>Log Message</h3>
<pre>gsmopen: added 'noalsa', 'nogsmlib_nocplusplus', 'nogsmlib_noalsa_nocplusplus', directories so you can compile it without alsa, gsmlib, and in pure c. Good for you embedded developer :)</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>
<h3>Added Paths</h3>
<ul>
<li>freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/</li>
<li>freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/</li>
<li><a href="#freeswitchbranchesgmaruzzmod_gsmopennoalsamod_gsmopenMakefile">freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/Makefile</a></li>
<li><a href="#freeswitchbranchesgmaruzzmod_gsmopennoalsamod_gsmopengsmopenh">freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/gsmopen.h</a></li>
<li><a href="#freeswitchbranchesgmaruzzmod_gsmopennoalsamod_gsmopengsmopen_protocolcpp">freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/gsmopen_protocol.cpp</a></li>
<li><a href="#freeswitchbranchesgmaruzzmod_gsmopennoalsamod_gsmopenmod_gsmopencpp">freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/mod_gsmopen.cpp</a></li>
<li>freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/</li>
<li>freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/</li>
<li><a href="#freeswitchbranchesgmaruzzmod_gsmopennogsmlib_noalsa_nocmod_gsmopenMakefile">freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/Makefile</a></li>
<li><a href="#freeswitchbranchesgmaruzzmod_gsmopennogsmlib_noalsa_nocmod_gsmopengsmopenh">freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/gsmopen.h</a></li>
<li><a href="#freeswitchbranchesgmaruzzmod_gsmopennogsmlib_noalsa_nocmod_gsmopengsmopen_protocolc">freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/gsmopen_protocol.c</a></li>
<li><a href="#freeswitchbranchesgmaruzzmod_gsmopennogsmlib_noalsa_nocmod_gsmopenmod_gsmopenc">freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/mod_gsmopen.c</a></li>
<li>freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/</li>
<li>freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/</li>
<li><a href="#freeswitchbranchesgmaruzzmod_gsmopennogsmlib_nocmod_gsmopenMakefile">freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/Makefile</a></li>
<li><a href="#freeswitchbranchesgmaruzzmod_gsmopennogsmlib_nocmod_gsmopengsmopenh">freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/gsmopen.h</a></li>
<li><a href="#freeswitchbranchesgmaruzzmod_gsmopennogsmlib_nocmod_gsmopengsmopen_protocolc">freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/gsmopen_protocol.c</a></li>
<li><a href="#freeswitchbranchesgmaruzzmod_gsmopennogsmlib_nocmod_gsmopenmod_gsmopenc">freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/mod_gsmopen.c</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 (16169 => 16170)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen.h        2010-01-06 04:31:20 UTC (rev 16169)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen.h        2010-01-06 12:29:05 UTC (rev 16170)
</span><span class="lines">@@ -52,7 +52,9 @@
</span><span class="cx"> #endif //GIOVA48
</span><span class="cx"> #define SAMPLERATE_GSMOPEN 8000
</span><span class="cx">
</span><ins>+#ifndef NO_ALSA
</ins><span class="cx"> #define GSMOPEN_ALSA
</span><ins>+#endif // NO_ALSA
</ins><span class="cx"> #include <switch.h>
</span><span class="cx"> #include <switch_version.h>
</span><span class="cx"> #include <termios.h>
</span></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopengsmopen_protocolcpp"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.cpp (16169 => 16170)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.cpp        2010-01-06 04:31:20 UTC (rev 16169)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.cpp        2010-01-06 12:29:05 UTC (rev 16170)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> #include "gsmopen.h"
</span><span class="cx"> //#include <iostream.h>
</span><ins>+#ifndef NO_GSMLIB
</ins><span class="cx"> #include <gsmlib/gsm_sms.h>
</span><span class="cx"> #ifdef WIN32
</span><span class="cx"> #include <gsmlib/gsm_win32_serial.h>
</span><span class="lines">@@ -12,6 +13,7 @@
</span><span class="cx">
</span><span class="cx"> using namespace std;
</span><span class="cx"> using namespace gsmlib;
</span><ins>+#endif// NO_GSMLIB
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> #ifdef ASTERISK
</span><span class="lines">@@ -42,6 +44,8 @@
</span><span class="cx">         int fd;
</span><span class="cx">         int rt;
</span><span class="cx">         struct termios tp;
</span><ins>+        unsigned int status = 0;
+        unsigned int flags = TIOCM_DTR;
</ins><span class="cx">
</span><span class="cx"> /* if there is a file descriptor, close it. But it is probably just an old value, so don't check for close success*/
</span><span class="cx">         fd = tech_pvt->controldevfd;
</span><span class="lines">@@ -91,14 +95,12 @@
</span><span class="cx">         if (rt == -1) {
</span><span class="cx">                 ERRORA("serial error: %s", GSMOPEN_P_LOG, strerror(errno));
</span><span class="cx">         }
</span><del>-        unsigned int status = 0;
</del><span class="cx"> #ifndef __CYGWIN__
</span><span class="cx">         ioctl(fd, TIOCMGET, &status);
</span><span class="cx">         status |= TIOCM_DTR;                /* Set DTR high */
</span><span class="cx">         status &= ~TIOCM_RTS;                /* Set RTS low */
</span><span class="cx">         ioctl(fd, TIOCMSET, &status);
</span><span class="cx">         ioctl(fd, TIOCMGET, &status);
</span><del>-        unsigned int flags = TIOCM_DTR;
</del><span class="cx">         ioctl(fd, TIOCMBIS, &flags);
</span><span class="cx">         flags = TIOCM_RTS;
</span><span class="cx">         ioctl(fd, TIOCMBIC, &flags);
</span><span class="lines">@@ -187,6 +189,30 @@
</span><span class="cx">
</span><span class="cx"> int gsmopen_serial_config(private_t * tech_pvt)
</span><span class="cx"> {
</span><ins>+#ifndef NO_GSMLIB
+                SMSMessageRef sms;
+                char content2[1000];
+                //sms = SMSMessage::decode("079194710167120004038571F1390099406180904480A0D41631067296EF7390383D07CD622E58CD95CB81D6EF39BDEC66BFE7207A794E2FBB4320AFB82C07E56020A8FC7D9687DBED32285C9F83A06F769A9E5EB340D7B49C3E1FA3C3663A0B24E4CBE76516680A7FCBE920725A5E5ED341F0B21C346D4E41E1BA790E4286DDE4BC0BD42CA3E5207258EE1797E5A0BA9B5E9683C86539685997EBEF61341B249BC966"); // dataCodingScheme = 0
+                //sms = SMSMessage::decode("0791934329002000040C9193432766658100009001211133318004D4F29C0E"); // dataCodingScheme = 0
+                //sms = SMSMessage::decode("0791934329002000040C919343276665810008900121612521801600CC00E800E900F900F200E00020006300690061006F"); // dataCodingScheme = 8
+                sms = SMSMessage::decode("0791934329002000040C919343276665810008900172002293404C006300690061006F0020003100320033002000620065006C00E80020043D043E0432043E044104420438002005DC05E7002005E805D005EA0020FE8EFEE0FEA0FEE4FECBFE9300204EBA5927");        // dataCodingScheme = 8 , text=ciao 123 belè новости לק ראת ﺎﻠﺠﻤﻋﺓ 人大
+                //sms = SMSMessage::decode("07911497941902F00414D0E474989D769F5DE4320839001040122151820000"); // dataCodingScheme = 0
+                NOTICA("SMS=\n%s\n", GSMOPEN_P_LOG, sms->toString().c_str());
+
+                memset(content2, '\0', sizeof(content2));
+                if (sms->dataCodingScheme().getAlphabet() == DCS_DEFAULT_ALPHABET) {
+                        iso_8859_1_to_utf8(tech_pvt, (char *) sms->userData().c_str(), content2, sizeof(content2));
+                } else if (sms->dataCodingScheme().getAlphabet() == DCS_SIXTEEN_BIT_ALPHABET) {
+                        ucs2_to_utf8(tech_pvt, (char *) bufToHex((unsigned char *) sms->userData().data(), sms->userData().length()).c_str(), content2,
+                                        sizeof(content2));
+                } else {
+                        ERRORA("dataCodingScheme not supported=%d\n", GSMOPEN_P_LOG, sms->dataCodingScheme().getAlphabet());
+
+                }
+                NOTICA("dataCodingScheme=%d\n", GSMOPEN_P_LOG, sms->dataCodingScheme().getAlphabet());
+                NOTICA("userData= |||%s|||\n", GSMOPEN_P_LOG, content2);
+#endif// NO_GSMLIB
+
</ins><span class="cx">         if (tech_pvt->controldevprotocol == PROTOCOL_AT)
</span><span class="cx">                 return gsmopen_serial_config_AT(tech_pvt);
</span><span class="cx"> #ifdef GSMOPEN_FBUS2
</span><span class="lines">@@ -197,12 +223,15 @@
</span><span class="cx">         if (tech_pvt->controldevprotocol == PROTOCOL_CVM_BUSMAIL)
</span><span class="cx">                 return gsmopen_serial_config_CVM_BUSMAIL(tech_pvt);
</span><span class="cx"> #endif /* GSMOPEN_CVM */
</span><ins>+
</ins><span class="cx">         return -1;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> int gsmopen_serial_config_AT(private_t * tech_pvt)
</span><span class="cx"> {
</span><span class="cx">         int res;
</span><ins>+        char at_command[5];
+        int i;
</ins><span class="cx">
</span><span class="cx"> /* initial_pause? */
</span><span class="cx">         if (tech_pvt->at_initial_pause) {
</span><span class="lines">@@ -300,8 +329,6 @@
</span><span class="cx">         }
</span><span class="cx">
</span><span class="cx">         /* various phone manufacturer identifier */
</span><del>-        char at_command[5];
-        int i;
</del><span class="cx">         for (i = 0; i < 10; i++) {
</span><span class="cx">                 memset(at_command, 0, sizeof(at_command));
</span><span class="cx">                 sprintf(at_command, "ATI%d", i);
</span><span class="lines">@@ -328,7 +355,6 @@
</span><span class="cx">                 DEBUGA_GSMOPEN("AT+CGSN failed\n", GSMOPEN_P_LOG);
</span><span class="cx">         }
</span><span class="cx">
</span><del>-/* this take a lot of time to complete on devices with slow serial link (eg.: 9600bps) */
</del><span class="cx">         /* signal incoming SMS with a +CMTI unsolicited msg */
</span><span class="cx">         res = gsmopen_serial_write_AT_ack(tech_pvt, "AT+CNMI=3,1,0,0,0");
</span><span class="cx">         if (res) {
</span><span class="lines">@@ -530,6 +556,7 @@
</span><span class="cx">         LOKKA(tech_pvt->controldev_lock);
</span><span class="cx">
</span><span class="cx">         while ((!tech_pvt->controldev_dead) && ((select_err = select(tech_pvt->controldevfd + 1, &read_fds, NULL, NULL, &timeout)) > 0)) {
</span><ins>+                char *token_ptr;
</ins><span class="cx">                 timeout.tv_sec = timeout_sec;        //reset the timeout, linux modify it
</span><span class="cx">                 timeout.tv_usec = timeout_usec;        //reset the timeout, linux modify it
</span><span class="cx">                 read_count = read(tech_pvt->controldevfd, tmp_answer_ptr, AT_BUFSIZ - (tmp_answer_ptr - tmp_answer));
</span><span class="lines">@@ -554,7 +581,6 @@
</span><span class="cx">                 }
</span><span class="cx">                 tmp_answer_ptr = tmp_answer_ptr + read_count;
</span><span class="cx">
</span><del>-                char *token_ptr;
</del><span class="cx">
</span><span class="cx">                 la_counter = 0;
</span><span class="cx">                 memset(tmp_answer2, 0, sizeof(char) * AT_BUFSIZ);
</span><span class="lines">@@ -638,13 +664,13 @@
</span><span class="cx">                         }
</span><span class="cx">
</span><span class="cx">                         if ((strncmp(tech_pvt->line_array.result[i], "+CLCC", 5) == 0)) {
</span><del>-                                /* with clcc we wait for clip */
-                                memset(tech_pvt->callid_name, 0, sizeof(tech_pvt->callid_name));
-                                memset(tech_pvt->callid_number, 0, sizeof(tech_pvt->callid_number));
</del><span class="cx">                                 int commacount = 0;
</span><span class="cx">                                 int a = 0;
</span><span class="cx">                                 int b = 0;
</span><span class="cx">                                 int c = 0;
</span><ins>+                                /* with clcc we wait for clip */
+                                memset(tech_pvt->callid_name, 0, sizeof(tech_pvt->callid_name));
+                                memset(tech_pvt->callid_number, 0, sizeof(tech_pvt->callid_number));
</ins><span class="cx">
</span><span class="cx">                                 for (a = 0; a < strlen(tech_pvt->line_array.result[i]); a++) {
</span><span class="cx">
</span><span class="lines">@@ -673,15 +699,15 @@
</span><span class="cx">                         }
</span><span class="cx">
</span><span class="cx">                         if ((strncmp(tech_pvt->line_array.result[i], "+CLIP", 5) == 0)) {
</span><del>-                                /* with CLIP, we want to answer right away */
-                                memset(tech_pvt->callid_name, 0, sizeof(tech_pvt->callid_name));
-                                memset(tech_pvt->callid_number, 0, sizeof(tech_pvt->callid_number));
-
</del><span class="cx">                                 int commacount = 0;
</span><span class="cx">                                 int a = 0;
</span><span class="cx">                                 int b = 0;
</span><span class="cx">                                 int c = 0;
</span><ins>+                                /* with CLIP, we want to answer right away */
+                                memset(tech_pvt->callid_name, 0, sizeof(tech_pvt->callid_name));
+                                memset(tech_pvt->callid_number, 0, sizeof(tech_pvt->callid_number));
</ins><span class="cx">
</span><ins>+
</ins><span class="cx">                                 for (a = 7; a < strlen(tech_pvt->line_array.result[i]); a++) {
</span><span class="cx">                                         if (tech_pvt->line_array.result[i][a] == ',') {
</span><span class="cx">                                                 commacount++;
</span><span class="lines">@@ -1451,15 +1477,15 @@
</span><span class="cx"> #if 1
</span><span class="cx">                                         char content[512];
</span><span class="cx">                                         char content2[512];
</span><ins>+                                        int inside_comma = 0;
+                                        int inside_quote = 0;
+                                        int which_field = 0;
+                                        int d = 0;
</ins><span class="cx">
</span><span class="cx">                                         ERRORA("HERE\n", GSMOPEN_P_LOG);
</span><span class="cx">
</span><span class="cx">                                         memset(content, '\0', sizeof(content));
</span><span class="cx">
</span><del>-                                        int inside_comma = 0;
-                                        int inside_quote = 0;
-                                        int which_field = 0;
-                                        int d = 0;
</del><span class="cx">
</span><span class="cx">                                         for (c = 0; c < strlen(tech_pvt->line_array.result[i]); c++) {
</span><span class="cx">                                                 if (tech_pvt->line_array.result[i][c] == ',' && tech_pvt->line_array.result[i][c - 1] != '\\' && inside_quote == 0) {
</span><span class="lines">@@ -1534,9 +1560,9 @@
</span><span class="cx">                                         DEBUGA_GSMOPEN("body=%s\n", GSMOPEN_P_LOG, sms_body);
</span><span class="cx">                                         DEBUGA_GSMOPEN("tech_pvt->line_array.result[i]=%s\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]);
</span><span class="cx">                                         if (tech_pvt->sms_cnmi_not_supported) {
</span><ins>+                                                char content3[1000];
</ins><span class="cx">                                                 strncpy(tech_pvt->sms_message, tech_pvt->line_array.result[i], sizeof(tech_pvt->sms_message));
</span><span class="cx">
</span><del>-                                                char content3[1000];
</del><span class="cx">                                                 //int howmanyleft;
</span><span class="cx">
</span><span class="cx">
</span><span class="lines">@@ -1549,8 +1575,9 @@
</span><span class="cx">                                                 sms_incoming(tech_pvt);
</span><span class="cx">                                                 WARNINGA("2 content3=%s\n", GSMOPEN_P_LOG, content3);
</span><span class="cx">                                         } else {
</span><ins>+#ifndef NO_GSMLIB
+                                                char content2[1000];
</ins><span class="cx">                                                 SMSMessageRef sms;
</span><del>-                                                char content2[1000];
</del><span class="cx"> //MessageType messagetype;
</span><span class="cx"> //Address servicecentreaddress;
</span><span class="cx"> //Timestamp servicecentretimestamp;
</span><span class="lines">@@ -1594,6 +1621,7 @@
</span><span class="cx"> //servicecentretimestamp = sms->serviceCentreTimestamp();
</span><span class="cx"> //sender_recipient_address = sms->address();
</span><span class="cx">
</span><ins>+#endif// NO_GSMLIB
</ins><span class="cx">                                         }
</span><span class="cx">
</span><span class="cx"> #if 0
</span><span class="lines">@@ -2095,10 +2123,10 @@
</span><span class="cx">         char *outbuf;
</span><span class="cx">         char *inbuf;
</span><span class="cx">         size_t inbytesleft;
</span><del>-        int c;
-        char stringa[5];
-        double hexnum;
-        int i = 0;
</del><ins>+        //int c;
+        //char stringa[5];
+        //double hexnum;
+        //int i = 0;
</ins><span class="cx">
</span><span class="cx">         memset(converted, '\0', sizeof(converted));
</span><span class="cx">
</span><span class="lines">@@ -2124,7 +2152,7 @@
</span><span class="cx">         }
</span><span class="cx">         DEBUGA_GSMOPEN
</span><span class="cx">                 (" strlen(iso_8859_1_in)=%d, iconv_res=%d, inbuf=%s, inleft=%d, out=%s, outleft=%d, utf8_out=%s\n",
</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, (int) 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">@@ -2333,7 +2361,7 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx">
</span><del>-#define GSMOPEN_ALSA
</del><ins>+//#define GSMOPEN_ALSA
</ins><span class="cx"> #ifdef GSMOPEN_ALSA
</span><span class="cx"> /*! \brief ALSA pcm format, according to endianess */
</span><span class="cx"> #if __BYTE_ORDER == __LITTLE_ENDIAN
</span><span class="lines">@@ -2447,6 +2475,7 @@
</span><span class="cx">         int stop_delay = 0;
</span><span class="cx">         snd_pcm_state_t state;
</span><span class="cx">         snd_pcm_info_t *info;
</span><ins>+        unsigned int chan_num;
</ins><span class="cx">
</span><span class="cx">         period_size = tech_pvt->alsa_period_size;
</span><span class="cx">
</span><span class="lines">@@ -2499,7 +2528,6 @@
</span><span class="cx">                 DEBUGA_GSMOPEN("Channels count set failed: %s\n", GSMOPEN_P_LOG, snd_strerror(err));
</span><span class="cx">         }
</span><span class="cx"> #if 1
</span><del>-        unsigned int chan_num;
</del><span class="cx">         err = snd_pcm_hw_params_get_channels(params, &chan_num);
</span><span class="cx">         if (err < 0) {
</span><span class="cx">                 ERRORA("Channels count non available: %s\n", GSMOPEN_P_LOG, snd_strerror(err));
</span><span class="lines">@@ -2675,6 +2703,7 @@
</span><span class="cx">                 }
</span><span class="cx">                 snd_pcm_dump(handle, output);
</span><span class="cx">
</span><ins>+#ifndef NO_GSMLIB
</ins><span class="cx">                 SMSMessageRef sms;
</span><span class="cx">                 char content2[1000];
</span><span class="cx">                 //sms = SMSMessage::decode("079194710167120004038571F1390099406180904480A0D41631067296EF7390383D07CD622E58CD95CB81D6EF39BDEC66BFE7207A794E2FBB4320AFB82C07E56020A8FC7D9687DBED32285C9F83A06F769A9E5EB340D7B49C3E1FA3C3663A0B24E4CBE76516680A7FCBE920725A5E5ED341F0B21C346D4E41E1BA790E4286DDE4BC0BD42CA3E5207258EE1797E5A0BA9B5E9683C86539685997EBEF61341B249BC966"); // dataCodingScheme = 0
</span><span class="lines">@@ -2696,6 +2725,7 @@
</span><span class="cx">                 }
</span><span class="cx">                 NOTICA("dataCodingScheme=%d\n", GSMOPEN_P_LOG, sms->dataCodingScheme().getAlphabet());
</span><span class="cx">                 NOTICA("userData= |||%s|||\n", GSMOPEN_P_LOG, content2);
</span><ins>+#endif// NO_GSMLIB
</ins><span class="cx">
</span><span class="cx">         }
</span><span class="cx">         if (option_debug > 1)
</span><span class="lines">@@ -2744,6 +2774,7 @@
</span><span class="cx">         return 0;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+#ifdef GSMOPEN_ALSA
</ins><span class="cx"> /*! \brief Write audio frames to interface */
</span><span class="cx"> int alsa_write(private_t * tech_pvt, short *data, int datalen)
</span><span class="cx"> {
</span><span class="lines">@@ -3014,10 +3045,10 @@
</span><span class="cx">                 r = snd_pcm_readi(tech_pvt->alsac, buf + readpos, left);
</span><span class="cx">                 //DEBUGA_GSMOPEN("r=%d, buf=%p, buf+readpos=%p, datalen=%d, left=%d\n", GSMOPEN_P_LOG, r, (void *)buf, (void *)(buf + readpos), datalen, left);
</span><span class="cx">         } else {
</span><ins>+                int a = 0;
+                int i = 0;
</ins><span class="cx">                 r = snd_pcm_readi(tech_pvt->alsac, buf2 + (readpos * 2), left);
</span><span class="cx">
</span><del>-                int a = 0;
-                int i = 0;
</del><span class="cx">                 for (i = 0; i < (GSMOPEN_FRAME_SIZE + AST_FRIENDLY_OFFSET / 2) * 2;) {
</span><span class="cx">                         __buf[a] = (__buf2[i] + __buf2[i + 1]) / 2;        //comment out this line to use only left
</span><span class="cx">                         //__buf[a] = __buf2[i]; // enable this line to use only left
</span><span class="lines">@@ -3042,10 +3073,10 @@
</span><span class="cx">                         if (tech_pvt->alsa_capture_is_mono) {
</span><span class="cx">                                 r = snd_pcm_readi(tech_pvt->alsac, buf + readpos, left);
</span><span class="cx">                         } else {
</span><ins>+                                int a = 0;
+                                int i = 0;
</ins><span class="cx">                                 r = snd_pcm_readi(tech_pvt->alsac, buf2 + (readpos * 2), left);
</span><span class="cx">
</span><del>-                                int a = 0;
-                                int i = 0;
</del><span class="cx">                                 for (i = 0; i < (GSMOPEN_FRAME_SIZE + AST_FRIENDLY_OFFSET / 2) * 2;) {
</span><span class="cx">                                         __buf[a] = (__buf2[i] + __buf2[i + 1]) / 2;
</span><span class="cx">                                         a++;
</span><span class="lines">@@ -3066,10 +3097,10 @@
</span><span class="cx">         left -= r;
</span><span class="cx">
</span><span class="cx">         if (readpos >= GSMOPEN_FRAME_SIZE) {
</span><ins>+                int i;
</ins><span class="cx">                 /* A real frame */
</span><span class="cx">                 readpos = 0;
</span><span class="cx">                 left = GSMOPEN_FRAME_SIZE;
</span><del>-                int i;
</del><span class="cx">                 for (i = 0; i < r; i++)
</span><span class="cx">                         data[i] = buf[i];
</span><span class="cx">
</span><span class="lines">@@ -3077,6 +3108,7 @@
</span><span class="cx">         return r;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+#endif // GSMOPEN_ALSA
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx">
</span><span class="lines">@@ -3179,7 +3211,7 @@
</span><span class="cx">                 }
</span><span class="cx">
</span><span class="cx">                 smscommand[strlen(smscommand)] = 0x1A;
</span><del>-                DEBUGA_GSMOPEN("smscommand len is: %d, text is:|||%s|||\n", GSMOPEN_P_LOG, strlen(smscommand), smscommand);
</del><ins>+                DEBUGA_GSMOPEN("smscommand len is: %d, text is:|||%s|||\n", GSMOPEN_P_LOG, (int) strlen(smscommand), smscommand);
</ins><span class="cx">
</span><span class="cx">                 err = gsmopen_serial_write_AT_ack_nocr_longtime(tech_pvt, smscommand);
</span><span class="cx">                 //TODO would be better to unlock controldev here
</span></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopenmod_gsmopencpp"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/gmaruzz/mod_gsmopen/mod_gsmopen.cpp (16169 => 16170)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/mod_gsmopen.cpp        2010-01-06 04:31:20 UTC (rev 16169)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/mod_gsmopen.cpp        2010-01-06 12:29:05 UTC (rev 16170)
</span><span class="lines">@@ -263,6 +263,7 @@
</span><span class="cx">         //teletone_dtmf_detect_init(&tech_pvt->dtmf_detect, tech_pvt->read_codec.implementation->actual_samples_per_second);
</span><span class="cx">         teletone_dtmf_detect_init(&tech_pvt->dtmf_detect, 8000);
</span><span class="cx">
</span><ins>+#ifdef GSMOPEN_ALSA
</ins><span class="cx">         if(tech_pvt->no_sound==0){
</span><span class="cx">                 if (alsa_init(tech_pvt)) {
</span><span class="cx">                         ERRORA("alsa_init failed\n", GSMOPEN_P_LOG);
</span><span class="lines">@@ -270,6 +271,7 @@
</span><span class="cx">
</span><span class="cx">                 }
</span><span class="cx">         }
</span><ins>+#endif// GSMOPEN_ALSA
</ins><span class="cx">         if (switch_core_timer_init(&tech_pvt->timer_read, "soft", 20, tech_pvt->read_codec.implementation->samples_per_packet, gsmopen_module_pool) !=
</span><span class="cx">                 SWITCH_STATUS_SUCCESS) {
</span><span class="cx">                 ERRORA("setup timer failed\n", GSMOPEN_P_LOG);
</span><span class="lines">@@ -497,9 +499,11 @@
</span><span class="cx">                 switch_core_timer_destroy(&tech_pvt->timer_read);
</span><span class="cx">                 switch_core_timer_destroy(&tech_pvt->timer_write);
</span><span class="cx">
</span><ins>+#ifdef GSMOPEN_ALSA
</ins><span class="cx">         if(tech_pvt->no_sound==0){
</span><span class="cx">                 alsa_shutdown(tech_pvt);
</span><span class="cx">         }
</span><ins>+#endif// GSMOPEN_ALSA
</ins><span class="cx">
</span><span class="cx">                 *tech_pvt->session_uuid_str = '\0';
</span><span class="cx">                 tech_pvt->interface_state = GSMOPEN_STATE_IDLE;
</span><span class="lines">@@ -674,6 +678,10 @@
</span><span class="cx">         switch_channel_t *channel = NULL;
</span><span class="cx">         private_t *tech_pvt = NULL;
</span><span class="cx">         switch_byte_t *data;
</span><ins>+#ifdef GSMOPEN_ALSA
+        int samples;
+        char digit_str[256];
+#endif// GSMOPEN_ALSA
</ins><span class="cx">
</span><span class="cx">         channel = switch_core_session_get_channel(session);
</span><span class="cx">         switch_assert(channel != NULL);
</span><span class="lines">@@ -698,8 +706,10 @@
</span><span class="cx">
</span><span class="cx">         switch_core_timer_next(&tech_pvt->timer_read);
</span><span class="cx">
</span><del>-        int samples;
-
</del><ins>+                if(tech_pvt->no_sound==1){
+                goto cng;
+                }
+#ifdef GSMOPEN_ALSA
</ins><span class="cx">         //if ((samples = snd_pcm_readi(tech_pvt->alsac, tech_pvt->read_frame.data, tech_pvt->read_codec.implementation->samples_per_packet)) > 0)
</span><span class="cx">         if ((samples = alsa_read(tech_pvt, (short *) tech_pvt->read_frame.data, tech_pvt->read_codec.implementation->samples_per_packet)) > 0) {
</span><span class="cx">
</span><span class="lines">@@ -721,9 +731,7 @@
</span><span class="cx">         }
</span><span class="cx">
</span><span class="cx">         if (samples != 160) {
</span><del>-                if(tech_pvt->no_sound==0){
-                        ERRORA("samples=%d\n", GSMOPEN_P_LOG, samples);
-                }
</del><ins>+                ERRORA("samples=%d\n", GSMOPEN_P_LOG, samples);
</ins><span class="cx">                 goto cng;
</span><span class="cx">         }
</span><span class="cx"> //DEBUGA_GSMOPEN("samples=%d tech_pvt->read_frame.timestamp=%d\n", GSMOPEN_P_LOG, samples, tech_pvt->read_frame.timestamp);
</span><span class="lines">@@ -733,7 +741,6 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx">
</span><del>-        char digit_str[256];
</del><span class="cx">
</span><span class="cx">
</span><span class="cx">         memset(digit_str, 0, sizeof(digit_str));
</span><span class="lines">@@ -794,7 +801,7 @@
</span><span class="cx">
</span><span class="cx">         DEBUGA_GSMOPEN("CHANNEL READ FALSE\n", GSMOPEN_P_LOG);
</span><span class="cx">         return SWITCH_STATUS_FALSE;
</span><del>-
</del><ins>+#endif// GSMOPEN_ALSA
</ins><span class="cx"> cng:
</span><span class="cx">         data = (switch_byte_t *) tech_pvt->read_frame.data;
</span><span class="cx">         data[0] = 65;
</span><span class="lines">@@ -810,7 +817,9 @@
</span><span class="cx"> {
</span><span class="cx">         switch_channel_t *channel = NULL;
</span><span class="cx">         private_t *tech_pvt = NULL;
</span><ins>+#ifdef GSMOPEN_ALSA
</ins><span class="cx">         unsigned int sent;
</span><ins>+#endif// GSMOPEN_ALSA
</ins><span class="cx">
</span><span class="cx">         channel = switch_core_session_get_channel(session);
</span><span class="cx">         switch_assert(channel != NULL);
</span><span class="lines">@@ -836,12 +845,14 @@
</span><span class="cx">         //snd_pcm_writei(tech_pvt->alsap, (short *) frame->data, (int) (frame->datalen / 2));
</span><span class="cx">
</span><span class="cx">         gsmopen_sound_boost(frame->data, frame->samples, tech_pvt->playback_boost);
</span><ins>+#ifdef GSMOPEN_ALSA
</ins><span class="cx">         sent = alsa_write(tech_pvt, (short *) frame->data, (int) (frame->datalen));
</span><span class="cx"> //DEBUGA_GSMOPEN("sent=%d \n", GSMOPEN_P_LOG, sent);
</span><span class="cx">
</span><span class="cx">         if (sent && sent != frame->datalen / 2 && sent != -1) {
</span><span class="cx">                 DEBUGA_GSMOPEN("sent %d\n", GSMOPEN_P_LOG, sent);
</span><span class="cx">         }
</span><ins>+#endif// GSMOPEN_ALSA
</ins><span class="cx">         //NOTICA("sent=%d\n", GSMOPEN_P_LOG, sent);
</span><span class="cx">         return SWITCH_STATUS_SUCCESS;
</span><span class="cx"> }
</span><span class="lines">@@ -896,8 +907,10 @@
</span><span class="cx"> {
</span><span class="cx">         switch_channel_t *channel;
</span><span class="cx">         private_t *tech_pvt;
</span><ins>+#ifdef GSMOPEN_ALSA
</ins><span class="cx">         int samples;
</span><span class="cx">         short tmp_buffer[1280];
</span><ins>+#endif// GSMOPEN_ALSA
</ins><span class="cx">
</span><span class="cx">         channel = switch_core_session_get_channel(session);
</span><span class="cx">         switch_assert(channel != NULL);
</span><span class="lines">@@ -915,9 +928,11 @@
</span><span class="cx">         case SWITCH_MESSAGE_INDICATE_AUDIO_SYNC:
</span><span class="cx">
</span><span class="cx">                 WARNINGA("%s CHANNEL got SWITCH_MESSAGE_INDICATE_AUDIO_SYNC\n", GSMOPEN_P_LOG, switch_channel_get_name(channel));
</span><ins>+#ifdef GSMOPEN_ALSA
</ins><span class="cx">                 while ((samples = alsa_read(tech_pvt, tmp_buffer, tech_pvt->read_codec.implementation->samples_per_packet * 4)) > 160) {
</span><span class="cx">                         //WARNINGA("read %d samples\n", GSMOPEN_P_LOG, samples);
</span><span class="cx">                 }
</span><ins>+#endif// GSMOPEN_ALSA
</ins><span class="cx">                 switch_core_timer_sync(&tech_pvt->timer_read);
</span><span class="cx">                 switch_core_timer_sync(&tech_pvt->timer_write);
</span><span class="cx">
</span><span class="lines">@@ -1237,7 +1252,11 @@
</span><span class="cx">                         const char *alsa_capture_is_mono = "1";
</span><span class="cx">                         const char *capture_boost = "5";
</span><span class="cx">                         const char *playback_boost = "10";
</span><ins>+#ifdef GSMOPEN_ALSA
</ins><span class="cx">                         const char *no_sound = "0";
</span><ins>+#else // GSMOPEN_ALSA
+                        const char *no_sound = "1";
+#endif // GSMOPEN_ALSA
</ins><span class="cx">
</span><span class="cx">                         uint32_t interface_id = 0;
</span><span class="cx">                         uint32_t controldevice_speed = B115200;        //FIXME TODO
</span><span class="lines">@@ -1495,6 +1514,7 @@
</span><span class="cx">                         if (interface_id && interface_id < GSMOPEN_MAX_INTERFACES) {
</span><span class="cx">                                 private_t newconf;
</span><span class="cx">                                 switch_threadattr_t *gsmopen_api_thread_attr = NULL;
</span><ins>+                                int res = 0;
</ins><span class="cx">
</span><span class="cx">                                 memset(&newconf, '\0', sizeof(newconf));
</span><span class="cx">                                 globals.GSMOPEN_INTERFACES[interface_id] = newconf;
</span><span class="lines">@@ -1564,22 +1584,30 @@
</span><span class="cx">                                 switch_set_string(globals.GSMOPEN_INTERFACES[interface_id].at_indicator_callsetupremoteringing_string,
</span><span class="cx">                                                                  at_indicator_callsetupremoteringing_string);
</span><span class="cx">                                 //switch_set_string(globals.GSMOPEN_INTERFACES[interface_id].sms_receiving_program, sms_receiving_program);
</span><ins>+#ifdef GSMOPEN_ALSA
</ins><span class="cx">                                 switch_set_string(globals.GSMOPEN_INTERFACES[interface_id].alsacname, alsacname);
</span><span class="cx">                                 switch_set_string(globals.GSMOPEN_INTERFACES[interface_id].alsapname, alsapname);
</span><ins>+#endif// GSMOPEN_ALSA
</ins><span class="cx">
</span><span class="cx">                                 globals.GSMOPEN_INTERFACES[interface_id].at_early_audio = atoi(at_early_audio);
</span><span class="cx">                                 globals.GSMOPEN_INTERFACES[interface_id].at_after_preinit_pause = atoi(at_after_preinit_pause);
</span><span class="cx">                                 globals.GSMOPEN_INTERFACES[interface_id].at_initial_pause = atoi(at_initial_pause);
</span><span class="cx">                                 globals.GSMOPEN_INTERFACES[interface_id].at_has_clcc = atoi(at_has_clcc);
</span><span class="cx">                                 globals.GSMOPEN_INTERFACES[interface_id].at_has_ecam = atoi(at_has_ecam);
</span><ins>+#ifdef GSMOPEN_ALSA
</ins><span class="cx">                                 globals.GSMOPEN_INTERFACES[interface_id].alsa_period_size = atoi(alsa_period_size);
</span><span class="cx">                                 globals.GSMOPEN_INTERFACES[interface_id].alsa_periods_in_buffer = atoi(alsa_periods_in_buffer);
</span><span class="cx">                                 globals.GSMOPEN_INTERFACES[interface_id].gsmopen_sound_rate = atoi(gsmopen_sound_rate);
</span><span class="cx">                                 globals.GSMOPEN_INTERFACES[interface_id].alsa_play_is_mono = atoi(alsa_play_is_mono);
</span><span class="cx">                                 globals.GSMOPEN_INTERFACES[interface_id].alsa_capture_is_mono = atoi(alsa_capture_is_mono);
</span><ins>+#endif// GSMOPEN_ALSA
</ins><span class="cx">                                 globals.GSMOPEN_INTERFACES[interface_id].capture_boost = atoi(capture_boost);
</span><span class="cx">                                 globals.GSMOPEN_INTERFACES[interface_id].playback_boost = atoi(playback_boost);
</span><ins>+#ifdef GSMOPEN_ALSA
</ins><span class="cx">                                 globals.GSMOPEN_INTERFACES[interface_id].no_sound = atoi(no_sound);
</span><ins>+#else // GSMOPEN_ALSA
+                                globals.GSMOPEN_INTERFACES[interface_id].no_sound = 1;
+#endif // GSMOPEN_ALSA
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx">
</span><span class="lines">@@ -1597,10 +1625,11 @@
</span><span class="cx">                                 DEBUGA_GSMOPEN("dialplan=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].dialplan);
</span><span class="cx">                                 DEBUGA_GSMOPEN("destination=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].destination);
</span><span class="cx">                                 DEBUGA_GSMOPEN("controldevice_name=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].controldevice_name);
</span><ins>+#ifdef GSMOPEN_ALSA
</ins><span class="cx">                                 DEBUGA_GSMOPEN("alsacname=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].alsacname);
</span><span class="cx">                                 DEBUGA_GSMOPEN("alsapname=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].alsapname);
</span><ins>+#endif// GSMOPEN_ALSA
</ins><span class="cx">
</span><del>-                                int res = 0;
</del><span class="cx">
</span><span class="cx">                                 /* init the serial port */
</span><span class="cx">                                 if (globals.GSMOPEN_INTERFACES[interface_id].controldevprotocol != PROTOCOL_NO_SERIAL) {
</span><span class="lines">@@ -1622,6 +1651,7 @@
</span><span class="cx">                                 }
</span><span class="cx">
</span><span class="cx">                                 if(globals.GSMOPEN_INTERFACES[interface_id].no_sound==0){
</span><ins>+#ifdef GSMOPEN_ALSA
</ins><span class="cx">                                         if (alsa_init(&globals.GSMOPEN_INTERFACES[interface_id])) {
</span><span class="cx">                                                 ERRORA("alsa_init failed\n", GSMOPEN_P_LOG);
</span><span class="cx">                                                 return SWITCH_STATUS_FALSE;
</span><span class="lines">@@ -1633,7 +1663,9 @@
</span><span class="cx">                                                 return SWITCH_STATUS_FALSE;
</span><span class="cx">
</span><span class="cx">                                         }
</span><ins>+#endif// GSMOPEN_ALSA
</ins><span class="cx">                                 }
</span><ins>+
</ins><span class="cx">                                 //gsmopen_store_boost((char *)"5", &globals.GSMOPEN_INTERFACES[interface_id].capture_boost); //FIXME
</span><span class="cx">                                 //gsmopen_store_boost((char *)"10", &globals.GSMOPEN_INTERFACES[interface_id].playback_boost); //FIXME
</span><span class="cx">                                 gsmopen_store_boost((char *) capture_boost, &globals.GSMOPEN_INTERFACES[interface_id].capture_boost);        //FIXME
</span><span class="lines">@@ -1669,8 +1701,10 @@
</span><span class="cx">                                 DEBUGA_GSMOPEN("dialplan=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[i].dialplan);
</span><span class="cx">                                 DEBUGA_GSMOPEN("destination=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[i].destination);
</span><span class="cx">                                 DEBUGA_GSMOPEN("controldevice_name=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[i].controldevice_name);
</span><ins>+#ifdef GSMOPEN_ALSA
</ins><span class="cx">                                 DEBUGA_GSMOPEN("alsacname=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[i].alsacname);
</span><span class="cx">                                 DEBUGA_GSMOPEN("alsapname=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[i].alsapname);
</span><ins>+#endif// GSMOPEN_ALSA
</ins><span class="cx">                         }
</span><span class="cx">                 }
</span><span class="cx">         }
</span></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopennoalsamod_gsmopenMakefile"></a>
<div class="addfile"><h4>Added: freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/Makefile (0 => 16170)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/Makefile         (rev 0)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/Makefile        2010-01-06 12:29:05 UTC (rev 16170)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+MODNAME=mod_gsmopen
+SVNDEF := -D'GSMOPEN_SVN_VERSION="$(shell svnversion -n .)"'
+LOCAL_CFLAGS += $(SVNDEF) -DNO_ALSA
+LOCAL_LDFLAGS=-lgsmme
+LOCAL_OBJS=gsmopen_protocol.o
+include ../../../../../../build/modmake.rules
</ins></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopennoalsamod_gsmopengsmopenh"></a>
<div class="addfile"><h4>Added: freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/gsmopen.h (0 => 16170)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/gsmopen.h         (rev 0)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/gsmopen.h        2010-01-06 12:29:05 UTC (rev 16170)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+link ../../gsmopen.h
</ins><span class="cx">\ No newline at end of file
</span><span class="cx">Property changes on: freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/gsmopen.h
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:special
</span><span class="cx"> + *
</span></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopennoalsamod_gsmopengsmopen_protocolcpp"></a>
<div class="addfile"><h4>Added: freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/gsmopen_protocol.cpp (0 => 16170)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/gsmopen_protocol.cpp         (rev 0)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/gsmopen_protocol.cpp        2010-01-06 12:29:05 UTC (rev 16170)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+link ../../gsmopen_protocol.cpp
</ins><span class="cx">\ No newline at end of file
</span><span class="cx">Property changes on: freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/gsmopen_protocol.cpp
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:special
</span><span class="cx"> + *
</span></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopennoalsamod_gsmopenmod_gsmopencpp"></a>
<div class="addfile"><h4>Added: freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/mod_gsmopen.cpp (0 => 16170)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/mod_gsmopen.cpp         (rev 0)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/mod_gsmopen.cpp        2010-01-06 12:29:05 UTC (rev 16170)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+link ../../mod_gsmopen.cpp
</ins><span class="cx">\ No newline at end of file
</span><span class="cx">Property changes on: freeswitch/branches/gmaruzz/mod_gsmopen/noalsa/mod_gsmopen/mod_gsmopen.cpp
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:special
</span><span class="cx"> + *
</span></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopennogsmlib_noalsa_nocmod_gsmopenMakefile"></a>
<div class="addfile"><h4>Added: freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/Makefile (0 => 16170)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/Makefile         (rev 0)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/Makefile        2010-01-06 12:29:05 UTC (rev 16170)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+MODNAME=mod_gsmopen
+SVNDEF := -D'GSMOPEN_SVN_VERSION="$(shell svnversion -n .)"'
+LOCAL_CFLAGS += $(SVNDEF) -DNO_GSMLIB -DNO_ALSA
+LOCAL_LDFLAGS=
+LOCAL_OBJS=gsmopen_protocol.o
+include ../../../../../../build/modmake.rules
</ins></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopennogsmlib_noalsa_nocmod_gsmopengsmopenh"></a>
<div class="addfile"><h4>Added: freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/gsmopen.h (0 => 16170)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/gsmopen.h         (rev 0)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/gsmopen.h        2010-01-06 12:29:05 UTC (rev 16170)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+link ../../gsmopen.h
</ins><span class="cx">\ No newline at end of file
</span><span class="cx">Property changes on: freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/gsmopen.h
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:special
</span><span class="cx"> + *
</span></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopennogsmlib_noalsa_nocmod_gsmopengsmopen_protocolc"></a>
<div class="addfile"><h4>Added: freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/gsmopen_protocol.c (0 => 16170)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/gsmopen_protocol.c         (rev 0)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/gsmopen_protocol.c        2010-01-06 12:29:05 UTC (rev 16170)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+link ../../gsmopen_protocol.cpp
</ins><span class="cx">\ No newline at end of file
</span><span class="cx">Property changes on: freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/gsmopen_protocol.c
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:special
</span><span class="cx"> + *
</span></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopennogsmlib_noalsa_nocmod_gsmopenmod_gsmopenc"></a>
<div class="addfile"><h4>Added: freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/mod_gsmopen.c (0 => 16170)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/mod_gsmopen.c         (rev 0)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/mod_gsmopen.c        2010-01-06 12:29:05 UTC (rev 16170)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+link ../../mod_gsmopen.cpp
</ins><span class="cx">\ No newline at end of file
</span><span class="cx">Property changes on: freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noalsa_noc++/mod_gsmopen/mod_gsmopen.c
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:special
</span><span class="cx"> + *
</span></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopennogsmlib_nocmod_gsmopenMakefile"></a>
<div class="addfile"><h4>Added: freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/Makefile (0 => 16170)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/Makefile         (rev 0)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/Makefile        2010-01-06 12:29:05 UTC (rev 16170)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+MODNAME=mod_gsmopen
+SVNDEF := -D'GSMOPEN_SVN_VERSION="$(shell svnversion -n .)"'
+LOCAL_CFLAGS += $(SVNDEF) -Wno-error=address -DNO_GSMLIB
+LOCAL_LDFLAGS=-lasound
+LOCAL_OBJS=gsmopen_protocol.o
+include ../../../../../../build/modmake.rules
</ins></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopennogsmlib_nocmod_gsmopengsmopenh"></a>
<div class="addfile"><h4>Added: freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/gsmopen.h (0 => 16170)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/gsmopen.h         (rev 0)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/gsmopen.h        2010-01-06 12:29:05 UTC (rev 16170)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+link ../../gsmopen.h
</ins><span class="cx">\ No newline at end of file
</span><span class="cx">Property changes on: freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/gsmopen.h
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:special
</span><span class="cx"> + *
</span></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopennogsmlib_nocmod_gsmopengsmopen_protocolc"></a>
<div class="addfile"><h4>Added: freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/gsmopen_protocol.c (0 => 16170)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/gsmopen_protocol.c         (rev 0)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/gsmopen_protocol.c        2010-01-06 12:29:05 UTC (rev 16170)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+link ../../gsmopen_protocol.cpp
</ins><span class="cx">\ No newline at end of file
</span><span class="cx">Property changes on: freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/gsmopen_protocol.c
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:special
</span><span class="cx"> + *
</span></span></pre></div>
<a id="freeswitchbranchesgmaruzzmod_gsmopennogsmlib_nocmod_gsmopenmod_gsmopenc"></a>
<div class="addfile"><h4>Added: freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/mod_gsmopen.c (0 => 16170)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/mod_gsmopen.c         (rev 0)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/mod_gsmopen.c        2010-01-06 12:29:05 UTC (rev 16170)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+link ../../mod_gsmopen.cpp
</ins><span class="cx">\ No newline at end of file
</span><span class="cx">Property changes on: freeswitch/branches/gmaruzz/mod_gsmopen/nogsmlib_noc++/mod_gsmopen/mod_gsmopen.c
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:special
</span><span class="cx"> + *
</span></span></pre>
</div>
</div>
<div id="footer">See you at ClueCon</div>
</body>
</html>