gsmopen: indented

This commit is contained in:
Giovanni Maruzzelli 2012-04-06 19:49:13 +02:00
parent 35d8aa44f8
commit 907254061d
3 changed files with 590 additions and 713 deletions

View File

@ -52,10 +52,6 @@
#define ALARM_NETWORK_NO_SIGNAL 4 #define ALARM_NETWORK_NO_SIGNAL 4
#define ALARM_NETWORK_LOW_SIGNAL 5 #define ALARM_NETWORK_LOW_SIGNAL 5
#undef GIOVA48 #undef GIOVA48
#ifndef GIOVA48 #ifndef GIOVA48
@ -64,7 +60,6 @@
#define SAMPLES_PER_FRAME 960 #define SAMPLES_PER_FRAME 960
#endif // GIOVA48 #endif // GIOVA48
#ifndef GIOVA48 #ifndef GIOVA48
#define GSMOPEN_FRAME_SIZE 160 #define GSMOPEN_FRAME_SIZE 160
#else //GIOVA48 #else //GIOVA48
@ -90,7 +85,6 @@
#include <alsa/asoundlib.h> #include <alsa/asoundlib.h>
#endif /* GSMOPEN_ALSA */ #endif /* GSMOPEN_ALSA */
//#include "celliax_spandsp.h" //#include "celliax_spandsp.h"
#ifndef WIN32 #ifndef WIN32
#include <sys/time.h> #include <sys/time.h>
@ -342,7 +336,6 @@ struct private_object {
unsigned long ib_failed_calls; unsigned long ib_failed_calls;
unsigned long ob_failed_calls; unsigned long ob_failed_calls;
char controldevice_name[50]; /*!< \brief name of the serial device controlling the interface, possibly none */ char controldevice_name[50]; /*!< \brief name of the serial device controlling the interface, possibly none */
int controldevprotocol; /*!< \brief which protocol is used for serial control of this interface */ int controldevprotocol; /*!< \brief which protocol is used for serial control of this interface */
char controldevprotocolname[50]; /*!< \brief name of the serial device controlling protocol, one of "at" "fbus2" "no_serial" "alsa_voicemodem" */ char controldevprotocolname[50]; /*!< \brief name of the serial device controlling protocol, one of "at" "fbus2" "no_serial" "alsa_voicemodem" */
@ -429,7 +422,6 @@ struct private_object {
time_t gsmopen_serial_synced_timestamp; time_t gsmopen_serial_synced_timestamp;
struct s_result line_array; struct s_result line_array;
int unread_sms_msg_id; int unread_sms_msg_id;
int reading_sms_msg; int reading_sms_msg;
char sms_message[4800]; char sms_message[4800];
@ -443,7 +435,6 @@ struct private_object {
int sms_pdu_not_supported; int sms_pdu_not_supported;
//char sms_receiving_program[256]; //char sms_receiving_program[256];
struct timeval call_incoming_time; struct timeval call_incoming_time;
switch_mutex_t *controldev_lock; switch_mutex_t *controldev_lock;
@ -552,10 +543,6 @@ int gsmopen_transfer(private_t * tech_pvt, char *id, char *value);
#endif //0 #endif //0
int gsmopen_socket_create_and_bind(private_t *tech_pvt, int *which_port); int gsmopen_socket_create_and_bind(private_t *tech_pvt, int *which_port);
void *gsmopen_do_controldev_thread(void *data); void *gsmopen_do_controldev_thread(void *data);
//#ifdef WIN32 //#ifdef WIN32
int gsmopen_serial_init(private_t *tech_pvt, int controldevice_speed); int gsmopen_serial_init(private_t *tech_pvt, int controldevice_speed);
@ -630,7 +617,6 @@ int alsa_read(private_t * tech_pvt, short *data, int datalen);
#endif /* GSMOPEN_ALSA */ #endif /* GSMOPEN_ALSA */
void gsmopen_store_boost(char *s, double *boost); void gsmopen_store_boost(char *s, double *boost);
int gsmopen_sound_boost(void *data, int samples_num, double boost); int gsmopen_sound_boost(void *data, int samples_num, double boost);
int sms_incoming(private_t *tech_pvt); int sms_incoming(private_t *tech_pvt);
@ -639,13 +625,10 @@ int gsmopen_ring(private_t * tech_pvt);
int iso_8859_1_to_utf8(private_t *tech_pvt, char *iso_8859_1_in, char *utf8_out, size_t outbytesleft); int iso_8859_1_to_utf8(private_t *tech_pvt, char *iso_8859_1_in, char *utf8_out, size_t outbytesleft);
int gsmopen_serial_getstatus_AT(private_t *tech_pvt); int gsmopen_serial_getstatus_AT(private_t *tech_pvt);
int dump_event(private_t *tech_pvt); int dump_event(private_t *tech_pvt);
int alarm_event(private_t *tech_pvt, int alarm_code, const char *alarm_message); int alarm_event(private_t *tech_pvt, int alarm_code, const char *alarm_message);
int dump_event_full(private_t *tech_pvt, int is_alarm, int alarm_code, const char *alarm_message); int dump_event_full(private_t *tech_pvt, int is_alarm, int alarm_code, const char *alarm_message);
int gsmopen_serial_init_audio_port(private_t *tech_pvt, int controldevice_audio_speed); int gsmopen_serial_init_audio_port(private_t *tech_pvt, int controldevice_audio_speed);
int serial_audio_init(private_t *tech_pvt); int serial_audio_init(private_t *tech_pvt);
int serial_audio_shutdown(private_t *tech_pvt); int serial_audio_shutdown(private_t *tech_pvt);

View File

@ -151,7 +151,6 @@ int gsmopen_serial_init(private_t * tech_pvt, int controldevice_speed)
#endif // NOTDEF #endif // NOTDEF
} }
int gsmopen_serial_read(private_t *tech_pvt) int gsmopen_serial_read(private_t *tech_pvt)
{ {
if (tech_pvt->controldevprotocol == PROTOCOL_AT) if (tech_pvt->controldevprotocol == PROTOCOL_AT)
@ -167,7 +166,6 @@ int gsmopen_serial_read(private_t * tech_pvt)
return -1; return -1;
} }
int gsmopen_serial_sync(private_t *tech_pvt) int gsmopen_serial_sync(private_t *tech_pvt)
{ {
if (tech_pvt->controldevprotocol == PROTOCOL_AT) if (tech_pvt->controldevprotocol == PROTOCOL_AT)
@ -286,8 +284,6 @@ int gsmopen_serial_config_AT(private_t * tech_pvt)
return -1; return -1;
} }
/* for motorola, bring it back to "normal" mode if it happens to be in another mode */ /* for motorola, bring it back to "normal" mode if it happens to be in another mode */
res = gsmopen_serial_write_AT_ack(tech_pvt, "AT+mode=0"); res = gsmopen_serial_write_AT_ack(tech_pvt, "AT+mode=0");
if (res) { if (res) {
@ -549,13 +545,13 @@ int gsmopen_serial_config_AT(private_t * tech_pvt)
return 0; return 0;
} }
int gsmopen_serial_sync_AT(private_t *tech_pvt) int gsmopen_serial_sync_AT(private_t *tech_pvt)
{ {
gsmopen_sleep(10000); /* 10msec */ gsmopen_sleep(10000); /* 10msec */
time(&tech_pvt->gsmopen_serial_synced_timestamp); time(&tech_pvt->gsmopen_serial_synced_timestamp);
return 0; return 0;
} }
int gsmopen_serial_read_AT(private_t *tech_pvt, int look_for_ack, int timeout_usec, int timeout_sec, const char *expected_string, int expect_crlf) int gsmopen_serial_read_AT(private_t *tech_pvt, int look_for_ack, int timeout_usec, int timeout_sec, const char *expected_string, int expect_crlf)
{ {
int select_err = 1; int select_err = 1;
@ -581,7 +577,6 @@ if(timeout1 != 100)
if (!running || !tech_pvt->running) { if (!running || !tech_pvt->running) {
return -1; return -1;
} }
////FD_ZERO(&read_fds); ////FD_ZERO(&read_fds);
//FD_SET(tech_pvt->controldevfd, &read_fds); //FD_SET(tech_pvt->controldevfd, &read_fds);
@ -595,7 +590,10 @@ if(timeout1 != 100)
LOKKA(tech_pvt->controldev_lock); LOKKA(tech_pvt->controldev_lock);
//while ((!tech_pvt->controldev_dead) && ((select_err = select(tech_pvt->controldevfd + 1, &read_fds, NULL, NULL, &timeout)) > 0)) { //while ((!tech_pvt->controldev_dead) && ((select_err = select(tech_pvt->controldevfd + 1, &read_fds, NULL, NULL, &timeout)) > 0)) {
while ( (!tech_pvt->controldev_dead) && (read_count = tech_pvt->serialPort_serial_control->Readv(tmp_answer_ptr, AT_BUFSIZ - (tmp_answer_ptr - tmp_answer), (timeout_sec * 1000) + (timeout_usec ? (timeout_usec / 1000) : 0 ) ) > 0) ) { while ((!tech_pvt->controldev_dead)
&& (read_count =
tech_pvt->serialPort_serial_control->Readv(tmp_answer_ptr, AT_BUFSIZ - (tmp_answer_ptr - tmp_answer),
(timeout_sec * 1000) + (timeout_usec ? (timeout_usec / 1000) : 0)) > 0)) {
char *token_ptr; char *token_ptr;
timeout.tv_sec = timeout_sec; //reset the timeout, linux modify it timeout.tv_sec = timeout_sec; //reset the timeout, linux modify it
timeout.tv_usec = timeout_usec; //reset the timeout, linux modify it timeout.tv_usec = timeout_usec; //reset the timeout, linux modify it
@ -629,7 +627,6 @@ if(timeout1 != 100)
} }
tmp_answer_ptr = tmp_answer_ptr + read_count; tmp_answer_ptr = tmp_answer_ptr + read_count;
la_counter = 0; la_counter = 0;
memset(tmp_answer2, 0, sizeof(char) * AT_BUFSIZ); memset(tmp_answer2, 0, sizeof(char) * AT_BUFSIZ);
strcpy(tmp_answer2, tmp_answer); strcpy(tmp_answer2, tmp_answer);
@ -755,7 +752,6 @@ if(timeout1 != 100)
memset(tech_pvt->callid_name, 0, sizeof(tech_pvt->callid_name)); memset(tech_pvt->callid_name, 0, sizeof(tech_pvt->callid_name));
memset(tech_pvt->callid_number, 0, sizeof(tech_pvt->callid_number)); memset(tech_pvt->callid_number, 0, sizeof(tech_pvt->callid_number));
for (a = 7; a < strlen(tech_pvt->line_array.result[i]); a++) { for (a = 7; a < strlen(tech_pvt->line_array.result[i]); a++) {
if (tech_pvt->line_array.result[i][a] == ',') { if (tech_pvt->line_array.result[i][a] == ',') {
commacount++; commacount++;
@ -949,7 +945,8 @@ if(timeout1 != 100)
tech_pvt->not_registered = 1; tech_pvt->not_registered = 1;
tech_pvt->home_network_registered = 0; tech_pvt->home_network_registered = 0;
tech_pvt->roaming_registered = 0; tech_pvt->roaming_registered = 0;
alarm_event(tech_pvt, ALARM_NO_NETWORK_REGISTRATION, "CELLPHONE is not registered to network, consider to move it or additional antenna"); alarm_event(tech_pvt, ALARM_NO_NETWORK_REGISTRATION,
"CELLPHONE is not registered to network, consider to move it or additional antenna");
} else if (stat == 1) { } else if (stat == 1) {
DEBUGA_GSMOPEN("|%s| CELLPHONE is registered to the HOME network\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); DEBUGA_GSMOPEN("|%s| CELLPHONE is registered to the HOME network\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]);
tech_pvt->not_registered = 0; tech_pvt->not_registered = 0;
@ -1048,16 +1045,6 @@ if(timeout1 != 100)
ERRORA("Why NO CARRIER now?\n", GSMOPEN_P_LOG); ERRORA("Why NO CARRIER now?\n", GSMOPEN_P_LOG);
} }
} }
if ((strcmp(tech_pvt->line_array.result[i], tech_pvt->at_call_incoming) == 0)) { if ((strcmp(tech_pvt->line_array.result[i], tech_pvt->at_call_incoming) == 0)) {
@ -1277,7 +1264,6 @@ if(timeout1 != 100)
tech_pvt->reading_sms_msg++; tech_pvt->reading_sms_msg++;
} }
if ((strcmp(tech_pvt->line_array.result[i], "+MCST: 17") == 0)) { /* motorola call processing unsolicited messages */ if ((strcmp(tech_pvt->line_array.result[i], "+MCST: 17") == 0)) { /* motorola call processing unsolicited messages */
tech_pvt->phone_callflow = CALLFLOW_CALL_INFLUX; tech_pvt->phone_callflow = CALLFLOW_CALL_INFLUX;
if (option_debug > 1) if (option_debug > 1)
@ -1614,7 +1600,6 @@ if(timeout1 != 100)
memset(content, '\0', sizeof(content)); memset(content, '\0', sizeof(content));
for (c = 0; c < strlen(tech_pvt->line_array.result[i]); c++) { for (c = 0; c < strlen(tech_pvt->line_array.result[i]); c++) {
if (tech_pvt->line_array.result[i][c] == ',' && tech_pvt->line_array.result[i][c - 1] != '\\' && inside_quote == 0) { if (tech_pvt->line_array.result[i][c] == ',' && tech_pvt->line_array.result[i][c - 1] != '\\' && inside_quote == 0) {
if (inside_comma) { if (inside_comma) {
@ -1693,7 +1678,6 @@ if(timeout1 != 100)
//int howmanyleft; //int howmanyleft;
DEBUGA_GSMOPEN("sms_message=%s\n", GSMOPEN_P_LOG, tech_pvt->sms_message); DEBUGA_GSMOPEN("sms_message=%s\n", GSMOPEN_P_LOG, tech_pvt->sms_message);
ucs2_to_utf8(tech_pvt, tech_pvt->sms_message, content3, sizeof(content3)); ucs2_to_utf8(tech_pvt, tech_pvt->sms_message, content3, sizeof(content3));
DEBUGA_GSMOPEN("content3=%s\n", GSMOPEN_P_LOG, content3); DEBUGA_GSMOPEN("content3=%s\n", GSMOPEN_P_LOG, content3);
@ -1962,7 +1946,6 @@ int gsmopen_serial_write_AT_ack(private_t * tech_pvt, const char *data)
UNLOCKA(tech_pvt->controldev_lock); UNLOCKA(tech_pvt->controldev_lock);
return -1; return -1;
} }
//cicopet at_result = gsmopen_serial_read_AT(tech_pvt, 1, 500000, 2, NULL, 1); // 2.5 sec timeout //cicopet at_result = gsmopen_serial_read_AT(tech_pvt, 1, 500000, 2, NULL, 1); // 2.5 sec timeout
at_result = gsmopen_serial_read_AT(tech_pvt, 1, 100000, 0, NULL, 1); // 1/10th sec timeout at_result = gsmopen_serial_read_AT(tech_pvt, 1, 100000, 0, NULL, 1); // 1/10th sec timeout
UNLOCKA(tech_pvt->controldev_lock); UNLOCKA(tech_pvt->controldev_lock);
@ -2049,7 +2032,6 @@ int gsmopen_serial_answer(private_t * tech_pvt)
return -1; return -1;
} }
int gsmopen_serial_answer_AT(private_t *tech_pvt) int gsmopen_serial_answer_AT(private_t *tech_pvt)
{ {
int res; int res;
@ -2088,7 +2070,6 @@ int gsmopen_serial_hangup(private_t * tech_pvt)
return -1; return -1;
} }
int gsmopen_serial_hangup_AT(private_t *tech_pvt) int gsmopen_serial_hangup_AT(private_t *tech_pvt)
{ {
int res; int res;
@ -2117,7 +2098,6 @@ int gsmopen_serial_hangup_AT(private_t * tech_pvt)
return 0; return 0;
} }
int gsmopen_serial_call(private_t *tech_pvt, char *dstr) int gsmopen_serial_call(private_t *tech_pvt, char *dstr)
{ {
if (tech_pvt->controldevprotocol == PROTOCOL_AT) if (tech_pvt->controldevprotocol == PROTOCOL_AT)
@ -2254,7 +2234,6 @@ int iso_8859_1_to_utf8(private_t * tech_pvt, char *iso_8859_1_in, char *utf8_out
return -1; return -1;
} }
inbytesleft = strlen(iso_8859_1_in) * 2; inbytesleft = strlen(iso_8859_1_in) * 2;
iconv_res = iconv(iconv_format, &inbuf, &inbytesleft, &outbuf, &outbytesleft); iconv_res = iconv(iconv_format, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
if (iconv_res == (size_t) -1) { if (iconv_res == (size_t) -1) {
@ -2267,15 +2246,12 @@ int iso_8859_1_to_utf8(private_t * tech_pvt, char *iso_8859_1_in, char *utf8_out
(" strlen(iso_8859_1_in)=%d, iconv_res=%d, inbuf=%s, inleft=%d, out=%s, outleft=%d, utf8_out=%s\n", (" strlen(iso_8859_1_in)=%d, iconv_res=%d, inbuf=%s, inleft=%d, out=%s, outleft=%d, utf8_out=%s\n",
GSMOPEN_P_LOG, (int) strlen(iso_8859_1_in), iconv_res, inbuf, (int) inbytesleft, outbuf, (int) outbytesleft, utf8_out); GSMOPEN_P_LOG, (int) strlen(iso_8859_1_in), iconv_res, inbuf, (int) inbytesleft, outbuf, (int) outbytesleft, utf8_out);
iconv_close(iconv_format); iconv_close(iconv_format);
#endif //WIN32 #endif //WIN32
return 0; return 0;
} }
int utf_to_ucs2(private_t *tech_pvt, char *utf_in, size_t inbytesleft, char *ucs2_out, size_t outbytesleft) int utf_to_ucs2(private_t *tech_pvt, char *utf_in, size_t inbytesleft, char *ucs2_out, size_t outbytesleft)
{ {
/* cicopet */ /* cicopet */
@ -2327,7 +2303,6 @@ int utf_to_ucs2(private_t * tech_pvt, char *utf_in, size_t inbytesleft, char *uc
return 0; return 0;
} }
/*! \brief Answer incoming call, /*! \brief Answer incoming call,
* Part of PBX interface */ * Part of PBX interface */
int gsmopen_answer(private_t *tech_pvt) int gsmopen_answer(private_t *tech_pvt)
@ -2412,14 +2387,12 @@ int gsmopen_ring(private_t * tech_pvt)
} }
if (option_debug) { if (option_debug) {
DEBUGA_PBX("EXITING FUNC\n", GSMOPEN_P_LOG); DEBUGA_PBX("EXITING FUNC\n", GSMOPEN_P_LOG);
} }
return res; return res;
} }
/*! \brief Hangup gsmopen call /*! \brief Hangup gsmopen call
* Part of PBX interface, called from ast_hangup */ * Part of PBX interface, called from ast_hangup */
@ -2434,7 +2407,6 @@ int gsmopen_hangup(private_t * tech_pvt)
DEBUGA_GSMOPEN("ENTERING FUNC\n", GSMOPEN_P_LOG); DEBUGA_GSMOPEN("ENTERING FUNC\n", GSMOPEN_P_LOG);
if (tech_pvt->controldevprotocol != PROTOCOL_NO_SERIAL) { if (tech_pvt->controldevprotocol != PROTOCOL_NO_SERIAL) {
if (tech_pvt->interface_state != GSMOPEN_STATE_DOWN) { if (tech_pvt->interface_state != GSMOPEN_STATE_DOWN) {
/* actually hangup through the serial port */ /* actually hangup through the serial port */
@ -2472,8 +2444,6 @@ int gsmopen_hangup(private_t * tech_pvt)
return 0; return 0;
} }
#ifdef GSMOPEN_ALSA #ifdef GSMOPEN_ALSA
/*! \brief ALSA pcm format, according to endianess */ /*! \brief ALSA pcm format, according to endianess */
#if __BYTE_ORDER == __LITTLE_ENDIAN #if __BYTE_ORDER == __LITTLE_ENDIAN
@ -2842,7 +2812,6 @@ int gsmopen_call(private_t * tech_pvt, char *rdest, int timeout)
return 0; return 0;
} }
int gsmopen_senddigit(private_t *tech_pvt, char digit) int gsmopen_senddigit(private_t *tech_pvt, char digit)
{ {
@ -2883,7 +2852,6 @@ int alsa_write(private_t * tech_pvt, short *data, int datalen)
return res; return res;
} }
memset(sizbuf, 255, sizeof(sizbuf)); memset(sizbuf, 255, sizeof(sizbuf));
memset(sizbuf2, 255, sizeof(sizbuf)); memset(sizbuf2, 255, sizeof(sizbuf));
memset(silencebuf, 255, sizeof(sizbuf)); memset(silencebuf, 255, sizeof(sizbuf));
@ -2899,7 +2867,6 @@ int alsa_write(private_t * tech_pvt, short *data, int datalen)
len += datalen; len += datalen;
pos = 0; pos = 0;
#ifdef ALSA_MONITOR #ifdef ALSA_MONITOR
alsa_monitor_write(sizbuf, len); alsa_monitor_write(sizbuf, len);
#endif #endif
@ -3105,15 +3072,12 @@ int alsa_read(private_t * tech_pvt, short *data, int datalen)
//DEBUGA_GSMOPEN("buf=%p, datalen=%d, left=%d\n", GSMOPEN_P_LOG, (void *)buf, datalen, left); //DEBUGA_GSMOPEN("buf=%p, datalen=%d, left=%d\n", GSMOPEN_P_LOG, (void *)buf, datalen, left);
//memset(&f, 0, sizeof(struct ast_frame)); //giova //memset(&f, 0, sizeof(struct ast_frame)); //giova
if (tech_pvt->no_sound == 1) { if (tech_pvt->no_sound == 1) {
return r; return r;
} }
left = datalen; left = datalen;
state = snd_pcm_state(tech_pvt->alsac); state = snd_pcm_state(tech_pvt->alsac);
if (state != SND_PCM_STATE_RUNNING) { if (state != SND_PCM_STATE_RUNNING) {
DEBUGA_GSMOPEN("ALSA read state is not SND_PCM_STATE_RUNNING\n", GSMOPEN_P_LOG); DEBUGA_GSMOPEN("ALSA read state is not SND_PCM_STATE_RUNNING\n", GSMOPEN_P_LOG);
@ -3210,10 +3174,6 @@ int alsa_read(private_t * tech_pvt, short *data, int datalen)
#endif // GSMOPEN_ALSA #endif // GSMOPEN_ALSA
int gsmopen_sendsms(private_t *tech_pvt, char *dest, char *text) int gsmopen_sendsms(private_t *tech_pvt, char *dest, char *text)
{ {
//char *idest = data; //char *idest = data;
@ -3251,7 +3211,6 @@ int gsmopen_sendsms(private_t * tech_pvt, char *dest, char *text)
ERRORA("AT+CMGF=1 (set message sending to TEXT (as opposed to PDU) do not got OK from the phone\n", GSMOPEN_P_LOG); ERRORA("AT+CMGF=1 (set message sending to TEXT (as opposed to PDU) do not got OK from the phone\n", GSMOPEN_P_LOG);
} }
if (tech_pvt->no_ucs2) { if (tech_pvt->no_ucs2) {
sprintf(smscommand, "AT+CMGS=\"%s\"", dest); //TODO: support phones that only accept pdu mode sprintf(smscommand, "AT+CMGS=\"%s\"", dest); //TODO: support phones that only accept pdu mode
} else { } else {
@ -3368,7 +3327,6 @@ int gsmopen_sendsms(private_t * tech_pvt, char *dest, char *text)
DEBUGA_GSMOPEN("AT+CMGF=0 (set message sending to PDU (as opposed to TEXT) do not got OK from the phone, continuing\n", GSMOPEN_P_LOG); DEBUGA_GSMOPEN("AT+CMGF=0 (set message sending to PDU (as opposed to TEXT) do not got OK from the phone, continuing\n", GSMOPEN_P_LOG);
} }
DEBUGA_GSMOPEN("FINISH\n", GSMOPEN_P_LOG); DEBUGA_GSMOPEN("FINISH\n", GSMOPEN_P_LOG);
if (failed) if (failed)
return -1; return -1;
@ -3412,7 +3370,6 @@ void gsmopen_store_boost(char *s, double *boost)
DEBUGA_GSMOPEN("setting boost %s to %f\n", GSMOPEN_P_LOG, s, *boost); DEBUGA_GSMOPEN("setting boost %s to %f\n", GSMOPEN_P_LOG, s, *boost);
} }
int gsmopen_sound_boost(void *data, int samples_num, double boost) int gsmopen_sound_boost(void *data, int samples_num, double boost)
{ {
/* LUIGI RIZZO's magic */ /* LUIGI RIZZO's magic */
@ -3437,7 +3394,6 @@ int gsmopen_sound_boost(void *data, int samples_num, double boost)
return 0; return 0;
} }
int gsmopen_serial_getstatus_AT(private_t *tech_pvt) int gsmopen_serial_getstatus_AT(private_t *tech_pvt)
{ {
int res; int res;
@ -3452,7 +3408,6 @@ int gsmopen_serial_getstatus_AT(private_t * tech_pvt)
} }
#endif #endif
PUSHA_UNLOCKA(p->controldev_lock); PUSHA_UNLOCKA(p->controldev_lock);
LOKKA(p->controldev_lock); LOKKA(p->controldev_lock);
res = gsmopen_serial_write_AT_ack(p, "AT"); res = gsmopen_serial_write_AT_ack(p, "AT");
@ -3484,7 +3439,6 @@ int gsmopen_serial_getstatus_AT(private_t * tech_pvt)
} }
gsmopen_sleep(1000); gsmopen_sleep(1000);
} }
//FIXME all the following commands in config! //FIXME all the following commands in config!
if (p->sms_cnmi_not_supported) { if (p->sms_cnmi_not_supported) {
@ -3587,7 +3541,6 @@ int gsmopen_serial_getstatus_AT(private_t * tech_pvt)
return 0; return 0;
} }
int gsmopen_serial_init_audio_port(private_t *tech_pvt, int controldevice_audio_speed) int gsmopen_serial_init_audio_port(private_t *tech_pvt, int controldevice_audio_speed)
{ {
tech_pvt->serialPort_serial_audio = new ctb::SerialPort(); tech_pvt->serialPort_serial_audio = new ctb::SerialPort();
@ -3617,6 +3570,7 @@ int serial_audio_init(private_t * tech_pvt)
return err; return err;
} }
int serial_audio_shutdown(private_t *tech_pvt) int serial_audio_shutdown(private_t *tech_pvt)
{ {
@ -3629,4 +3583,3 @@ int serial_audio_shutdown(private_t * tech_pvt)
return err; return err;
} }

View File

@ -83,8 +83,7 @@ int gettimeofday(struct timeval *tv, struct sk_timezone *tz)
/***************/ /***************/
#endif /* WIN32 */ #endif /* WIN32 */
#endif //0 #endif //0
SWITCH_BEGIN_EXTERN_C SWITCH_BEGIN_EXTERN_C SWITCH_MODULE_LOAD_FUNCTION(mod_gsmopen_load);
SWITCH_MODULE_LOAD_FUNCTION(mod_gsmopen_load);
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_gsmopen_shutdown); SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_gsmopen_shutdown);
SWITCH_MODULE_DEFINITION(mod_gsmopen, mod_gsmopen_load, mod_gsmopen_shutdown, NULL); SWITCH_MODULE_DEFINITION(mod_gsmopen, mod_gsmopen_load, mod_gsmopen_shutdown, NULL);
SWITCH_END_EXTERN_C SWITCH_END_EXTERN_C
@ -123,6 +122,7 @@ const char *interface_status[] = { /* should match GSMOPEN_STATE_xxx in gsmopen.
"HANG_RQ", "HANG_RQ",
"PREANSW" "PREANSW"
}; };
const char *phone_callflow[] = { /* should match CALLFLOW_XXX in gsmopen.h */ const char *phone_callflow[] = { /* should match CALLFLOW_XXX in gsmopen.h */
"CALL_IDLE", "CALL_IDLE",
"CALL_DOWN", "CALL_DOWN",
@ -153,7 +153,6 @@ const char *phone_callflow[] = { /* should match CALLFLOW_XXX in gsmopen.h */
"STATUS_RMTEHOLD" "STATUS_RMTEHOLD"
}; };
static struct { static struct {
int debug; int debug;
char *ip; char *ip;
@ -329,8 +328,7 @@ switch_status_t gsmopen_tech_init(private_t * tech_pvt, switch_core_session_t *s
#else // GIOVA48 #else // GIOVA48
tech_pvt->preprocess = speex_preprocess_state_init(960, 48000); tech_pvt->preprocess = speex_preprocess_state_init(960, 48000);
#endif // GIOVA48 #endif // GIOVA48
speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_ECHO_STATE, speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_ECHO_STATE, tech_pvt->echo_state);
tech_pvt->echo_state);
#if 0 #if 0
/* Setup preprocessor various other goodies */ /* Setup preprocessor various other goodies */
@ -377,8 +375,7 @@ switch_status_t gsmopen_tech_init(private_t * tech_pvt, switch_core_session_t *s
speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_ECHO_SUPPRESS, &tmp); speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_ECHO_SUPPRESS, &tmp);
fprintf(stderr, "SPEEX_PREPROCESS_GET_ECHO_SUPPRESS is: %d\n", tmp); fprintf(stderr, "SPEEX_PREPROCESS_GET_ECHO_SUPPRESS is: %d\n", tmp);
tmp = 1; tmp = 1;
speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_ECHO_SUPPRESS_ACTIVE, speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_ECHO_SUPPRESS_ACTIVE, &tmp);
&tmp);
fprintf(stderr, "SPEEX_PREPROCESS_GET_ECHO_SUPPRESS_ACTIVE is: %d\n", tmp); fprintf(stderr, "SPEEX_PREPROCESS_GET_ECHO_SUPPRESS_ACTIVE is: %d\n", tmp);
tmp = 1; tmp = 1;
speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_AGC_MAX_GAIN, &tmp); speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_AGC_MAX_GAIN, &tmp);
@ -400,8 +397,6 @@ switch_status_t gsmopen_tech_init(private_t * tech_pvt, switch_core_session_t *s
#endif // WANT_SPEEX #endif // WANT_SPEEX
switch_clear_flag(tech_pvt, TFLAG_HANGUP); switch_clear_flag(tech_pvt, TFLAG_HANGUP);
DEBUGA_GSMOPEN("gsmopen_codec SUCCESS\n", GSMOPEN_P_LOG); DEBUGA_GSMOPEN("gsmopen_codec SUCCESS\n", GSMOPEN_P_LOG);
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
@ -434,7 +429,6 @@ static switch_status_t interface_exists(char *the_interface)
} }
} else { /* look by gsmopen_user */ } else { /* look by gsmopen_user */
for (i = 0; i < GSMOPEN_MAX_INTERFACES; i++) { for (i = 0; i < GSMOPEN_MAX_INTERFACES; i++) {
if (strlen(globals.GSMOPEN_INTERFACES[i].gsmopen_user)) { if (strlen(globals.GSMOPEN_INTERFACES[i].gsmopen_user)) {
if (strcmp(globals.GSMOPEN_INTERFACES[i].gsmopen_user, the_interface) == 0) { if (strcmp(globals.GSMOPEN_INTERFACES[i].gsmopen_user, the_interface) == 0) {
@ -457,7 +451,6 @@ static switch_status_t remove_interface(char *the_interface)
//running = 0; //running = 0;
//XXX if (*the_interface == '#') { /* remove by interface id or interface name */ //XXX if (*the_interface == '#') { /* remove by interface id or interface name */
//XXX the_interface++; //XXX the_interface++;
switch_assert(the_interface); switch_assert(the_interface);
@ -604,7 +597,6 @@ static switch_status_t channel_on_destroy(switch_core_session_t *session)
tech_pvt = (private_t *) switch_core_session_get_private(session); tech_pvt = (private_t *) switch_core_session_get_private(session);
if (tech_pvt) { if (tech_pvt) {
DEBUGA_GSMOPEN("%s CHANNEL DESTROY %s\n", GSMOPEN_P_LOG, tech_pvt->name, switch_core_session_get_uuid(session)); DEBUGA_GSMOPEN("%s CHANNEL DESTROY %s\n", GSMOPEN_P_LOG, tech_pvt->name, switch_core_session_get_uuid(session));
@ -628,7 +620,6 @@ static switch_status_t channel_on_destroy(switch_core_session_t *session)
serial_audio_shutdown(tech_pvt); serial_audio_shutdown(tech_pvt);
} }
*tech_pvt->session_uuid_str = '\0'; *tech_pvt->session_uuid_str = '\0';
tech_pvt->interface_state = GSMOPEN_STATE_IDLE; tech_pvt->interface_state = GSMOPEN_STATE_IDLE;
if (tech_pvt->phone_callflow == CALLFLOW_STATUS_FINISHED) { if (tech_pvt->phone_callflow == CALLFLOW_STATUS_FINISHED) {
@ -647,7 +638,6 @@ static switch_status_t channel_on_hangup(switch_core_session_t *session)
switch_channel_t *channel = NULL; switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL; private_t *tech_pvt = NULL;
channel = switch_core_session_get_channel(session); channel = switch_core_session_get_channel(session);
switch_assert(channel != NULL); switch_assert(channel != NULL);
@ -664,7 +654,6 @@ static switch_status_t channel_on_hangup(switch_core_session_t *session)
} }
} }
DEBUGA_GSMOPEN("%s CHANNEL HANGUP\n", GSMOPEN_P_LOG, tech_pvt->name); DEBUGA_GSMOPEN("%s CHANNEL HANGUP\n", GSMOPEN_P_LOG, tech_pvt->name);
switch_clear_flag(tech_pvt, TFLAG_IO); switch_clear_flag(tech_pvt, TFLAG_IO);
switch_clear_flag(tech_pvt, TFLAG_VOICE); switch_clear_flag(tech_pvt, TFLAG_VOICE);
@ -757,6 +746,7 @@ static switch_status_t channel_kill_channel(switch_core_session_t *session, int
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
static switch_status_t channel_on_consume_media(switch_core_session_t *session) static switch_status_t channel_on_consume_media(switch_core_session_t *session)
{ {
private_t *tech_pvt = NULL; private_t *tech_pvt = NULL;
@ -767,7 +757,6 @@ static switch_status_t channel_on_consume_media(switch_core_session_t *session)
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
static switch_status_t channel_on_exchange_media(switch_core_session_t *session) static switch_status_t channel_on_exchange_media(switch_core_session_t *session)
{ {
private_t *tech_pvt = NULL; private_t *tech_pvt = NULL;
@ -812,7 +801,6 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
char digit_str[256]; char digit_str[256];
char buffer2[640]; char buffer2[640];
channel = switch_core_session_get_channel(session); channel = switch_core_session_get_channel(session);
switch_assert(channel != NULL); switch_assert(channel != NULL);
@ -825,7 +813,6 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
return SWITCH_STATUS_FALSE; return SWITCH_STATUS_FALSE;
} }
tech_pvt->read_frame.flags = SFF_NONE; tech_pvt->read_frame.flags = SFF_NONE;
*frame = NULL; *frame = NULL;
@ -844,12 +831,9 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
#endif // GSMOPEN_ALSA #endif // GSMOPEN_ALSA
// if ((samples = tech_pvt->serialPort_serial_audio->Read((char *) tech_pvt->read_frame.data, 320)) >0) // if ((samples = tech_pvt->serialPort_serial_audio->Read((char *) tech_pvt->read_frame.data, 320)) >0)
if ((samples = tech_pvt->serialPort_serial_audio->Read(buffer2, 640)) >= 320) if ((samples = tech_pvt->serialPort_serial_audio->Read(buffer2, 640)) >= 320) {
{
tech_pvt->buffer2_full = 0; tech_pvt->buffer2_full = 0;
if (samples >= 640) { if (samples >= 640) {
DEBUGA_GSMOPEN("samples=%d\n", GSMOPEN_P_LOG, samples); DEBUGA_GSMOPEN("samples=%d\n", GSMOPEN_P_LOG, samples);
memcpy(tech_pvt->buffer2, buffer2 + 320, 320); memcpy(tech_pvt->buffer2, buffer2 + 320, 320);
@ -857,7 +841,6 @@ if ((samples = tech_pvt->serialPort_serial_audio->Read(buffer2, 640)) >= 320)
} }
samples = 320; samples = 320;
memcpy(tech_pvt->read_frame.data, buffer2, 320); memcpy(tech_pvt->read_frame.data, buffer2, 320);
tech_pvt->read_frame.datalen = samples; tech_pvt->read_frame.datalen = samples;
tech_pvt->read_frame.samples = samples / 2; tech_pvt->read_frame.samples = samples / 2;
@ -893,7 +876,6 @@ if ((samples = tech_pvt->serialPort_serial_audio->Read(buffer2, 640)) >= 320)
switch_set_flag(tech_pvt, TFLAG_VOICE); switch_set_flag(tech_pvt, TFLAG_VOICE);
} }
} }
//WARNINGA("samples=%d\n", GSMOPEN_P_LOG, samples); //WARNINGA("samples=%d\n", GSMOPEN_P_LOG, samples);
if (samples != 320) { if (samples != 320) {
@ -905,8 +887,6 @@ if ((samples = tech_pvt->serialPort_serial_audio->Read(buffer2, 640)) >= 320)
//usleep(17000); //usleep(17000);
//usleep(17000); //usleep(17000);
memset(digit_str, 0, sizeof(digit_str)); memset(digit_str, 0, sizeof(digit_str));
//teletone_dtmf_detect(&tech_pvt->dtmf_detect, (int16_t *) tech_pvt->read_frame.data, tech_pvt->read_frame.samples); //teletone_dtmf_detect(&tech_pvt->dtmf_detect, (int16_t *) tech_pvt->read_frame.data, tech_pvt->read_frame.samples);
//teletone_dtmf_get(&tech_pvt->dtmf_detect, digit_str, sizeof(digit_str)); //teletone_dtmf_get(&tech_pvt->dtmf_detect, digit_str, sizeof(digit_str));
@ -1033,8 +1013,6 @@ static switch_status_t channel_write_frame(switch_core_session_t *session, switc
if (sent && sent != frame->datalen && sent != -1) { if (sent && sent != frame->datalen && sent != -1) {
DEBUGA_GSMOPEN("sent %d\n", GSMOPEN_P_LOG, sent); DEBUGA_GSMOPEN("sent %d\n", GSMOPEN_P_LOG, sent);
} }
//NOTICA("sent=%d\n", GSMOPEN_P_LOG, sent); //NOTICA("sent=%d\n", GSMOPEN_P_LOG, sent);
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
@ -1065,21 +1043,6 @@ static switch_status_t channel_answer_channel(switch_core_session_t *session)
switch_mutex_unlock(globals.mutex); switch_mutex_unlock(globals.mutex);
DEBUGA_GSMOPEN("%s CHANNEL ANSWER %s\n", GSMOPEN_P_LOG, tech_pvt->name, switch_core_session_get_uuid(session)); DEBUGA_GSMOPEN("%s CHANNEL ANSWER %s\n", GSMOPEN_P_LOG, tech_pvt->name, switch_core_session_get_uuid(session));
DEBUGA_GSMOPEN("ANSWERED! \n", GSMOPEN_P_LOG); DEBUGA_GSMOPEN("ANSWERED! \n", GSMOPEN_P_LOG);
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
@ -1120,7 +1083,6 @@ static switch_status_t channel_receive_message(switch_core_session_t *session, s
#endif // GSMOPEN_ALSA #endif // GSMOPEN_ALSA
break; break;
default: default:
{ {
DEBUGA_GSMOPEN("MSG_ID=%d\n", GSMOPEN_P_LOG, msg->message_id); DEBUGA_GSMOPEN("MSG_ID=%d\n", GSMOPEN_P_LOG, msg->message_id);
@ -1188,7 +1150,6 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi
DEBUGA_GSMOPEN("1 SESSION_REQUEST %s\n", GSMOPEN_P_LOG, switch_core_session_get_uuid(*new_session)); DEBUGA_GSMOPEN("1 SESSION_REQUEST %s\n", GSMOPEN_P_LOG, switch_core_session_get_uuid(*new_session));
switch_core_session_add_stream(*new_session, NULL); switch_core_session_add_stream(*new_session, NULL);
if (!zstr(outbound_profile->destination_number)) { if (!zstr(outbound_profile->destination_number)) {
int i; int i;
char *slash; char *slash;
@ -1265,7 +1226,6 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi
return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER; return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
} }
if (outbound_profile) { if (outbound_profile) {
char name[128]; char name[128];
@ -1370,7 +1330,6 @@ static switch_status_t load_config(int reload_type)
char *fail_dial_regex = NULL; char *fail_dial_regex = NULL;
const char *enable_callerid = "true"; const char *enable_callerid = "true";
const char *at_dial_pre_number = "ATD"; const char *at_dial_pre_number = "ATD";
const char *at_dial_post_number = ";"; const char *at_dial_post_number = ";";
const char *at_dial_expect = "OK"; const char *at_dial_expect = "OK";
@ -1455,8 +1414,6 @@ static switch_status_t load_config(int reload_type)
uint32_t running = 1; //FIXME TODO uint32_t running = 1; //FIXME TODO
const char *gsmopen_serial_sync_period = "300"; //FIXME TODO const char *gsmopen_serial_sync_period = "300"; //FIXME TODO
tech_pvt = NULL; tech_pvt = NULL;
for (param = switch_xml_child(myinterface, "param"); param; param = param->next) { for (param = switch_xml_child(myinterface, "param"); param; param = param->next) {
@ -1631,7 +1588,6 @@ static switch_status_t load_config(int reload_type)
gsmopen_serial_sync_period = val; gsmopen_serial_sync_period = val;
} }
} }
/* BEGIN: Changes here */ /* BEGIN: Changes here */
@ -1712,11 +1668,11 @@ static switch_status_t load_config(int reload_type)
continue; continue;
} }
if (!switch_is_number(gsmopen_serial_sync_period)) { if (!switch_is_number(gsmopen_serial_sync_period)) {
ERRORA("interface param 'gsmopen_serial_sync_period' MUST be a number, now gsmopen_serial_sync_period='%s'\n", GSMOPEN_P_LOG, gsmopen_serial_sync_period); ERRORA("interface param 'gsmopen_serial_sync_period' MUST be a number, now gsmopen_serial_sync_period='%s'\n", GSMOPEN_P_LOG,
gsmopen_serial_sync_period);
continue; continue;
} }
if (interface_id && interface_id < GSMOPEN_MAX_INTERFACES) { if (interface_id && interface_id < GSMOPEN_MAX_INTERFACES) {
private_t newconf; private_t newconf;
switch_threadattr_t *gsmopen_api_thread_attr = NULL; switch_threadattr_t *gsmopen_api_thread_attr = NULL;
@ -1725,13 +1681,11 @@ static switch_status_t load_config(int reload_type)
memset(&newconf, '\0', sizeof(newconf)); memset(&newconf, '\0', sizeof(newconf));
globals.GSMOPEN_INTERFACES[interface_id] = newconf; globals.GSMOPEN_INTERFACES[interface_id] = newconf;
tech_pvt = &globals.GSMOPEN_INTERFACES[interface_id]; tech_pvt = &globals.GSMOPEN_INTERFACES[interface_id];
switch_mutex_init(&globals.GSMOPEN_INTERFACES[interface_id].controldev_lock, SWITCH_MUTEX_NESTED, gsmopen_module_pool); switch_mutex_init(&globals.GSMOPEN_INTERFACES[interface_id].controldev_lock, SWITCH_MUTEX_NESTED, gsmopen_module_pool);
switch_mutex_init(&globals.GSMOPEN_INTERFACES[interface_id].controldev_audio_lock, SWITCH_MUTEX_NESTED, gsmopen_module_pool); switch_mutex_init(&globals.GSMOPEN_INTERFACES[interface_id].controldev_audio_lock, SWITCH_MUTEX_NESTED, gsmopen_module_pool);
switch_set_string(globals.GSMOPEN_INTERFACES[interface_id].id, id); switch_set_string(globals.GSMOPEN_INTERFACES[interface_id].id, id);
switch_set_string(globals.GSMOPEN_INTERFACES[interface_id].name, name); switch_set_string(globals.GSMOPEN_INTERFACES[interface_id].name, name);
switch_set_string(globals.GSMOPEN_INTERFACES[interface_id].context, context); switch_set_string(globals.GSMOPEN_INTERFACES[interface_id].context, context);
@ -1818,14 +1772,10 @@ static switch_status_t load_config(int reload_type)
#endif // defined(GSMOPEN_ALSA) #endif // defined(GSMOPEN_ALSA)
globals.GSMOPEN_INTERFACES[interface_id].gsmopen_serial_sync_period = atoi(gsmopen_serial_sync_period); globals.GSMOPEN_INTERFACES[interface_id].gsmopen_serial_sync_period = atoi(gsmopen_serial_sync_period);
globals.GSMOPEN_INTERFACES[interface_id].controldevice_speed = controldevice_speed; //FIXME globals.GSMOPEN_INTERFACES[interface_id].controldevice_speed = controldevice_speed; //FIXME
globals.GSMOPEN_INTERFACES[interface_id].controldevprotocol = controldevprotocol; //FIXME globals.GSMOPEN_INTERFACES[interface_id].controldevprotocol = controldevprotocol; //FIXME
globals.GSMOPEN_INTERFACES[interface_id].running = running; //FIXME globals.GSMOPEN_INTERFACES[interface_id].running = running; //FIXME
WARNINGA("STARTING interface_id=%d\n", GSMOPEN_P_LOG, interface_id); WARNINGA("STARTING interface_id=%d\n", GSMOPEN_P_LOG, interface_id);
DEBUGA_GSMOPEN("id=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].id); DEBUGA_GSMOPEN("id=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].id);
DEBUGA_GSMOPEN("name=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].name); DEBUGA_GSMOPEN("name=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].name);
@ -1840,11 +1790,8 @@ static switch_status_t load_config(int reload_type)
DEBUGA_GSMOPEN("alsapname=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].alsapname); DEBUGA_GSMOPEN("alsapname=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].alsapname);
#endif // GSMOPEN_ALSA #endif // GSMOPEN_ALSA
DEBUGA_GSMOPEN("gsmopen_serial_sync_period=%d\n", GSMOPEN_P_LOG,
DEBUGA_GSMOPEN("gsmopen_serial_sync_period=%d\n", GSMOPEN_P_LOG, (int)globals.GSMOPEN_INTERFACES[interface_id].gsmopen_serial_sync_period); (int) globals.GSMOPEN_INTERFACES[interface_id].gsmopen_serial_sync_period);
/* init the serial port */ /* init the serial port */
if (globals.GSMOPEN_INTERFACES[interface_id].controldevprotocol != PROTOCOL_NO_SERIAL) { if (globals.GSMOPEN_INTERFACES[interface_id].controldevprotocol != PROTOCOL_NO_SERIAL) {
@ -1938,9 +1885,6 @@ static switch_status_t load_config(int reload_type)
} }
} }
globals.GSMOPEN_INTERFACES[interface_id].active = 1; globals.GSMOPEN_INTERFACES[interface_id].active = 1;
@ -2153,7 +2097,8 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_gsmopen_load)
SWITCH_ADD_API(commands_api_interface, "gsm", "gsm console AT_command", gsm_function, GSM_SYNTAX); SWITCH_ADD_API(commands_api_interface, "gsm", "gsm console AT_command", gsm_function, GSM_SYNTAX);
SWITCH_ADD_API(commands_api_interface, "gsmopen", "gsmopen interface AT_command", gsmopen_function, GSMOPEN_SYNTAX); SWITCH_ADD_API(commands_api_interface, "gsmopen", "gsmopen interface AT_command", gsmopen_function, GSMOPEN_SYNTAX);
#endif //0 #endif //0
SWITCH_ADD_API(commands_api_interface, "gsmopen_boost_audio", "gsmopen_boost_audio interface AT_command", gsmopen_boost_audio_function, GSMOPEN_BOOST_AUDIO_SYNTAX); SWITCH_ADD_API(commands_api_interface, "gsmopen_boost_audio", "gsmopen_boost_audio interface AT_command", gsmopen_boost_audio_function,
GSMOPEN_BOOST_AUDIO_SYNTAX);
SWITCH_ADD_API(commands_api_interface, "gsmopen_dump", "gsmopen_dump interface", gsmopen_dump_function, GSMOPEN_DUMP_SYNTAX); SWITCH_ADD_API(commands_api_interface, "gsmopen_dump", "gsmopen_dump interface", gsmopen_dump_function, GSMOPEN_DUMP_SYNTAX);
SWITCH_ADD_API(commands_api_interface, "gsmopen_sendsms", "gsmopen_sendsms interface destination_number SMS_text", sendsms_function, SWITCH_ADD_API(commands_api_interface, "gsmopen_sendsms", "gsmopen_sendsms interface destination_number SMS_text", sendsms_function,
SENDSMS_SYNTAX); SENDSMS_SYNTAX);
@ -2242,7 +2187,6 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_gsmopen_shutdown)
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
void *SWITCH_THREAD_FUNC gsmopen_do_gsmopenapi_thread(switch_thread_t *thread, void *obj) void *SWITCH_THREAD_FUNC gsmopen_do_gsmopenapi_thread(switch_thread_t *thread, void *obj)
{ {
return gsmopen_do_gsmopenapi_thread_func(obj); return gsmopen_do_gsmopenapi_thread_func(obj);
@ -2675,7 +2619,6 @@ SWITCH_STANDARD_API(gsmopen_dump_function)
stream->write_function(stream, "dumping interface '%s'\n\n", globals.GSMOPEN_INTERFACES[i].name); stream->write_function(stream, "dumping interface '%s'\n\n", globals.GSMOPEN_INTERFACES[i].name);
tech_pvt = &globals.GSMOPEN_INTERFACES[i]; tech_pvt = &globals.GSMOPEN_INTERFACES[i];
stream->write_function(stream, "interface_name = %s\n", tech_pvt->name); stream->write_function(stream, "interface_name = %s\n", tech_pvt->name);
stream->write_function(stream, "interface_id = %s\n", tech_pvt->id); stream->write_function(stream, "interface_id = %s\n", tech_pvt->id);
snprintf(value, sizeof(value) - 1, "%d", tech_pvt->active); snprintf(value, sizeof(value) - 1, "%d", tech_pvt->active);
@ -2738,7 +2681,6 @@ SWITCH_STANDARD_API(gsmopen_dump_function)
stream->write_function(stream, "dumping interface '%s'\n\n", argv[0]); stream->write_function(stream, "dumping interface '%s'\n\n", argv[0]);
tech_pvt = &globals.GSMOPEN_INTERFACES[i]; tech_pvt = &globals.GSMOPEN_INTERFACES[i];
stream->write_function(stream, "interface_name = %s\n", tech_pvt->name); stream->write_function(stream, "interface_name = %s\n", tech_pvt->name);
stream->write_function(stream, "interface_id = %s\n", tech_pvt->id); stream->write_function(stream, "interface_id = %s\n", tech_pvt->id);
snprintf(value, sizeof(value) - 1, "%d", tech_pvt->active); snprintf(value, sizeof(value) - 1, "%d", tech_pvt->active);
@ -2804,6 +2746,7 @@ end:
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
SWITCH_STANDARD_API(gsmopen_boost_audio_function) SWITCH_STANDARD_API(gsmopen_boost_audio_function)
{ {
char *mycmd = NULL, *argv[10] = { 0 }; char *mycmd = NULL, *argv[10] = { 0 };
@ -2834,21 +2777,27 @@ SWITCH_STANDARD_API(gsmopen_boost_audio_function)
} else { } else {
if (argc == 1) { if (argc == 1) {
stream->write_function(stream,"[%s] capture boost is %f\n", globals.GSMOPEN_INTERFACES[i].name, globals.GSMOPEN_INTERFACES[i].capture_boost); stream->write_function(stream, "[%s] capture boost is %f\n", globals.GSMOPEN_INTERFACES[i].name,
stream->write_function(stream,"[%s] playback boost is %f\n", globals.GSMOPEN_INTERFACES[i].name, globals.GSMOPEN_INTERFACES[i].playback_boost); globals.GSMOPEN_INTERFACES[i].capture_boost);
stream->write_function(stream, "[%s] playback boost is %f\n", globals.GSMOPEN_INTERFACES[i].name,
globals.GSMOPEN_INTERFACES[i].playback_boost);
stream->write_function(stream, "%s usage: %s", argv[0], GSMOPEN_BOOST_AUDIO_SYNTAX); stream->write_function(stream, "%s usage: %s", argv[0], GSMOPEN_BOOST_AUDIO_SYNTAX);
goto end; goto end;
} else if ((strncmp("play", argv[1], strlen(argv[1])) == 0)) { } else if ((strncmp("play", argv[1], strlen(argv[1])) == 0)) {
if (switch_is_number(argv[2])) { if (switch_is_number(argv[2])) {
stream->write_function(stream,"[%s] playback boost was %f\n", globals.GSMOPEN_INTERFACES[i].name, globals.GSMOPEN_INTERFACES[i].playback_boost); stream->write_function(stream, "[%s] playback boost was %f\n", globals.GSMOPEN_INTERFACES[i].name,
globals.GSMOPEN_INTERFACES[i].playback_boost);
gsmopen_store_boost(argv[2], &globals.GSMOPEN_INTERFACES[i].playback_boost); //FIXME gsmopen_store_boost(argv[2], &globals.GSMOPEN_INTERFACES[i].playback_boost); //FIXME
stream->write_function(stream,"[%s] playback boost is now %f\n", globals.GSMOPEN_INTERFACES[i].name, globals.GSMOPEN_INTERFACES[i].playback_boost); stream->write_function(stream, "[%s] playback boost is now %f\n", globals.GSMOPEN_INTERFACES[i].name,
globals.GSMOPEN_INTERFACES[i].playback_boost);
} }
} else if ((strncmp("capt", argv[1], strlen(argv[1])) == 0)) { } else if ((strncmp("capt", argv[1], strlen(argv[1])) == 0)) {
if (switch_is_number(argv[2])) { if (switch_is_number(argv[2])) {
stream->write_function(stream,"[%s] capture boost was %f\n", globals.GSMOPEN_INTERFACES[i].name, globals.GSMOPEN_INTERFACES[i].capture_boost); stream->write_function(stream, "[%s] capture boost was %f\n", globals.GSMOPEN_INTERFACES[i].name,
globals.GSMOPEN_INTERFACES[i].capture_boost);
gsmopen_store_boost(argv[2], &globals.GSMOPEN_INTERFACES[i].capture_boost); //FIXME gsmopen_store_boost(argv[2], &globals.GSMOPEN_INTERFACES[i].capture_boost); //FIXME
stream->write_function(stream,"[%s] capture boost is now %f\n", globals.GSMOPEN_INTERFACES[i].name, globals.GSMOPEN_INTERFACES[i].capture_boost); stream->write_function(stream, "[%s] capture boost is now %f\n", globals.GSMOPEN_INTERFACES[i].name,
globals.GSMOPEN_INTERFACES[i].capture_boost);
} }
} else { } else {
stream->write_function(stream, "ERROR, usage: %s", GSMOPEN_BOOST_AUDIO_SYNTAX); stream->write_function(stream, "ERROR, usage: %s", GSMOPEN_BOOST_AUDIO_SYNTAX);
@ -2863,7 +2812,6 @@ SWITCH_STANDARD_API(gsmopen_boost_audio_function)
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
#if 0 #if 0
int gsmopen_transfer(private_t *tech_pvt, char *id, char *value) int gsmopen_transfer(private_t *tech_pvt, char *id, char *value)
{ {
@ -3019,7 +2967,6 @@ void *gsmopen_do_gsmopenapi_thread_func(void *obj)
//FIXME ERRORA("gsmopen_new failed! BAD BAD BAD\n", GSMOPEN_P_LOG); //FIXME ERRORA("gsmopen_new failed! BAD BAD BAD\n", GSMOPEN_P_LOG);
//FIXME } //FIXME }
} else if (tech_pvt->controldevprotocol != PROTOCOL_NO_SERIAL && tech_pvt->interface_state == GSMOPEN_STATE_DIALING) { } else if (tech_pvt->controldevprotocol != PROTOCOL_NO_SERIAL && tech_pvt->interface_state == GSMOPEN_STATE_DIALING) {
WARNINGA("WE'RE DIALING, let's take the earlymedia\n", GSMOPEN_P_LOG); WARNINGA("WE'RE DIALING, let's take the earlymedia\n", GSMOPEN_P_LOG);
tech_pvt->interface_state = CALLFLOW_STATUS_EARLYMEDIA; tech_pvt->interface_state = CALLFLOW_STATUS_EARLYMEDIA;
@ -3029,9 +2976,6 @@ void *gsmopen_do_gsmopenapi_thread_func(void *obj)
//FIXME ERRORA("gsmopen_new failed! BAD BAD BAD\n", GSMOPEN_P_LOG); //FIXME ERRORA("gsmopen_new failed! BAD BAD BAD\n", GSMOPEN_P_LOG);
//FIXME } //FIXME }
} else if (tech_pvt->interface_state == CALLFLOW_CALL_REMOTEANSWER) { } else if (tech_pvt->interface_state == CALLFLOW_CALL_REMOTEANSWER) {
WARNINGA("REMOTE PARTY ANSWERED\n", GSMOPEN_P_LOG); WARNINGA("REMOTE PARTY ANSWERED\n", GSMOPEN_P_LOG);
outbound_channel_answered(tech_pvt); outbound_channel_answered(tech_pvt);
@ -3054,7 +2998,6 @@ void *gsmopen_do_gsmopenapi_thread_func(void *obj)
} }
SWITCH_STANDARD_API(sendsms_function) SWITCH_STANDARD_API(sendsms_function)
{ {
char *mycmd = NULL, *argv[3] = { 0 }; char *mycmd = NULL, *argv[3] = { 0 };
@ -3212,7 +3155,6 @@ int dump_event(private_t * tech_pvt)
return dump_event_full(tech_pvt, 0, 0, NULL); return dump_event_full(tech_pvt, 0, 0, NULL);
} }
int alarm_event(private_t *tech_pvt, int alarm_code, const char *alarm_message) int alarm_event(private_t *tech_pvt, int alarm_code, const char *alarm_message)
{ {
return dump_event_full(tech_pvt, 1, alarm_code, alarm_message); return dump_event_full(tech_pvt, 1, alarm_code, alarm_message);
@ -3295,7 +3237,6 @@ int sms_incoming(private_t * tech_pvt)
return 0; return 0;
} }
#ifdef NOTDEF #ifdef NOTDEF
SWITCH_STANDARD_API(gsmopen_chat_function) SWITCH_STANDARD_API(gsmopen_chat_function)
{ {
@ -3342,8 +3283,9 @@ SWITCH_STANDARD_API(gsmopen_chat_function)
//chat_send(p*roto, const char *from, const char *to, const char *subject, const char *body, const char *type, const char *hint); //chat_send(p*roto, const char *from, const char *to, const char *subject, const char *body, const char *type, const char *hint);
//chat_send(GSMOPEN_CHAT_PROTO, tech_pvt->skype_user, argv[1], "SIMPLE MESSAGE", switch_str_nil((char *) &cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]), NULL, hint); //chat_send(GSMOPEN_CHAT_PROTO, tech_pvt->skype_user, argv[1], "SIMPLE MESSAGE", switch_str_nil((char *) &cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]), NULL, hint);
NOTICA("chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, type=NULL, hint=%s)\n", GSMOPEN_P_LOG, GSMOPEN_CHAT_PROTO, tech_pvt->skype_user, NOTICA("chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, type=NULL, hint=%s)\n", GSMOPEN_P_LOG, GSMOPEN_CHAT_PROTO,
argv[1], "SIMPLE MESSAGE", switch_str_nil((char *) &cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]), tech_pvt->name); tech_pvt->skype_user, argv[1], "SIMPLE MESSAGE", switch_str_nil((char *) &cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]),
tech_pvt->name);
chat_send(GSMOPEN_CHAT_PROTO, tech_pvt->skype_user, argv[1], "SIMPLE MESSAGE", chat_send(GSMOPEN_CHAT_PROTO, tech_pvt->skype_user, argv[1], "SIMPLE MESSAGE",
switch_str_nil((char *) &cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]), NULL, tech_pvt->name); switch_str_nil((char *) &cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]), NULL, tech_pvt->name);
@ -3390,7 +3332,6 @@ SWITCH_STANDARD_API(gsmopen_chat_function)
} }
#endif // NOTDEF #endif // NOTDEF
/* For Emacs: /* For Emacs:
* Local Variables: * Local Variables:
* mode:c * mode:c