From 907254061d561702c395cd23706ae0205de29abc Mon Sep 17 00:00:00 2001 From: Giovanni Maruzzelli Date: Fri, 6 Apr 2012 19:49:13 +0200 Subject: [PATCH] gsmopen: indented --- src/mod/endpoints/mod_gsmopen/gsmopen.h | 185 ++-- .../mod_gsmopen/gsmopen_protocol.cpp | 323 +++---- src/mod/endpoints/mod_gsmopen/mod_gsmopen.cpp | 795 ++++++++---------- 3 files changed, 590 insertions(+), 713 deletions(-) diff --git a/src/mod/endpoints/mod_gsmopen/gsmopen.h b/src/mod/endpoints/mod_gsmopen/gsmopen.h index 88dc41e51a..47dd3d21da 100644 --- a/src/mod/endpoints/mod_gsmopen/gsmopen.h +++ b/src/mod/endpoints/mod_gsmopen/gsmopen.h @@ -52,10 +52,6 @@ #define ALARM_NETWORK_NO_SIGNAL 4 #define ALARM_NETWORK_LOW_SIGNAL 5 - - - - #undef GIOVA48 #ifndef GIOVA48 @@ -64,7 +60,6 @@ #define SAMPLES_PER_FRAME 960 #endif // GIOVA48 - #ifndef GIOVA48 #define GSMOPEN_FRAME_SIZE 160 #else //GIOVA48 @@ -90,7 +85,6 @@ #include #endif /* GSMOPEN_ALSA */ - //#include "celliax_spandsp.h" #ifndef WIN32 #include @@ -342,7 +336,6 @@ struct private_object { unsigned long ib_failed_calls; unsigned long ob_failed_calls; - 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 */ char controldevprotocolname[50]; /*!< \brief name of the serial device controlling protocol, one of "at" "fbus2" "no_serial" "alsa_voicemodem" */ @@ -352,7 +345,7 @@ struct private_object { int controldevice_speed; #else speed_t controldevice_speed; -#endif// WIN32 +#endif // WIN32 int controldev_dead; char at_dial_pre_number[64]; @@ -429,7 +422,6 @@ struct private_object { time_t gsmopen_serial_synced_timestamp; struct s_result line_array; - int unread_sms_msg_id; int reading_sms_msg; char sms_message[4800]; @@ -443,7 +435,6 @@ struct private_object { int sms_pdu_not_supported; //char sms_receiving_program[256]; - struct timeval call_incoming_time; switch_mutex_t *controldev_lock; @@ -483,27 +474,27 @@ struct private_object { int no_sound; - dtmf_rx_state_t dtmf_state; - int active; - int home_network_registered; - int roaming_registered; - int not_registered; - int got_signal; - char imei[128]; - int requesting_imei; - char imsi[128]; - int requesting_imsi; - int network_creg_not_supported; - char creg[128]; + dtmf_rx_state_t dtmf_state; + int active; + int home_network_registered; + int roaming_registered; + int not_registered; + int got_signal; + char imei[128]; + int requesting_imei; + char imsi[128]; + int requesting_imsi; + int network_creg_not_supported; + char creg[128]; char controldevice_audio_name[50]; - int controldev_audio_fd; + int controldev_audio_fd; int controldevice_audio_speed; int controldev_audio_dead; switch_mutex_t *controldev_audio_lock; - ctb::SerialPort* serialPort_serial_audio; + ctb::SerialPort * serialPort_serial_audio; - ctb::SerialPort* serialPort_serial_control; + ctb::SerialPort * serialPort_serial_control; char buffer2[320]; int buffer2_full; @@ -512,30 +503,30 @@ struct private_object { typedef struct private_object private_t; -void *SWITCH_THREAD_FUNC gsmopen_api_thread_func(switch_thread_t * thread, void *obj); -int gsmopen_audio_read(private_t * tech_pvt); -int gsmopen_audio_init(private_t * tech_pvt); -int gsmopen_signaling_read(private_t * tech_pvt); +void *SWITCH_THREAD_FUNC gsmopen_api_thread_func(switch_thread_t *thread, void *obj); +int gsmopen_audio_read(private_t *tech_pvt); +int gsmopen_audio_init(private_t *tech_pvt); +int gsmopen_signaling_read(private_t *tech_pvt); -int gsmopen_call(private_t * tech_pvt, char *idest, int timeout); -int gsmopen_senddigit(private_t * tech_pvt, char digit); +int gsmopen_call(private_t *tech_pvt, char *idest, int timeout); +int gsmopen_senddigit(private_t *tech_pvt, char digit); void *gsmopen_do_tcp_srv_thread_func(void *obj); -void *SWITCH_THREAD_FUNC gsmopen_do_tcp_srv_thread(switch_thread_t * thread, void *obj); +void *SWITCH_THREAD_FUNC gsmopen_do_tcp_srv_thread(switch_thread_t *thread, void *obj); void *gsmopen_do_tcp_cli_thread_func(void *obj); -void *SWITCH_THREAD_FUNC gsmopen_do_tcp_cli_thread(switch_thread_t * thread, void *obj); +void *SWITCH_THREAD_FUNC gsmopen_do_tcp_cli_thread(switch_thread_t *thread, void *obj); void *gsmopen_do_gsmopenapi_thread_func(void *obj); -void *SWITCH_THREAD_FUNC gsmopen_do_gsmopenapi_thread(switch_thread_t * thread, void *obj); -int dtmf_received(private_t * tech_pvt, char *value); -int start_audio_threads(private_t * tech_pvt); -int new_inbound_channel(private_t * tech_pvt); -int outbound_channel_answered(private_t * tech_pvt); +void *SWITCH_THREAD_FUNC gsmopen_do_gsmopenapi_thread(switch_thread_t *thread, void *obj); +int dtmf_received(private_t *tech_pvt, char *value); +int start_audio_threads(private_t *tech_pvt); +int new_inbound_channel(private_t *tech_pvt); +int outbound_channel_answered(private_t *tech_pvt); //int gsmopen_signaling_write(private_t * tech_pvt, char *msg_to_gsmopen); #if defined(WIN32) && !defined(__CYGWIN__) -int gsmopen_pipe_read(switch_file_t * pipe, short *buf, int howmany); -int gsmopen_pipe_write(switch_file_t * pipe, short *buf, int howmany); +int gsmopen_pipe_read(switch_file_t *pipe, short *buf, int howmany); +int gsmopen_pipe_write(switch_file_t *pipe, short *buf, int howmany); /* Visual C do not have strsep ? */ char *strsep(char **stringp, const char *delim); #else @@ -543,30 +534,26 @@ int gsmopen_pipe_read(int pipe, short *buf, int howmany); int gsmopen_pipe_write(int pipe, short *buf, int howmany); #endif /* WIN32 */ int gsmopen_close_socket(unsigned int fd); -private_t *find_available_gsmopen_interface_rr(private_t * tech_pvt_calling); -int remote_party_is_ringing(private_t * tech_pvt); -int remote_party_is_early_media(private_t * tech_pvt); +private_t *find_available_gsmopen_interface_rr(private_t *tech_pvt_calling); +int remote_party_is_ringing(private_t *tech_pvt); +int remote_party_is_early_media(private_t *tech_pvt); //int gsmopen_answer(private_t * tech_pvt, char *id, char *value); #if 0 -int gsmopen_transfer(private_t * tech_pvt, char *id, char *value); +int gsmopen_transfer(private_t *tech_pvt, char *id, char *value); #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); //#ifdef WIN32 -int gsmopen_serial_init(private_t * tech_pvt, int controldevice_speed); +int gsmopen_serial_init(private_t *tech_pvt, int controldevice_speed); //#else //int gsmopen_serial_init(private_t * tech_pvt, speed_t controldevice_speed); //#endif //WIN32 -int gsmopen_serial_monitor(private_t * tech_pvt); -int gsmopen_serial_sync(private_t * tech_pvt); -int gsmopen_serial_sync_AT(private_t * tech_pvt); -int gsmopen_serial_config(private_t * tech_pvt); -int gsmopen_serial_config_AT(private_t * tech_pvt); +int gsmopen_serial_monitor(private_t *tech_pvt); +int gsmopen_serial_sync(private_t *tech_pvt); +int gsmopen_serial_sync_AT(private_t *tech_pvt); +int gsmopen_serial_config(private_t *tech_pvt); +int gsmopen_serial_config_AT(private_t *tech_pvt); #define gsmopen_serial_write_AT_expect(P, D, S) gsmopen_serial_write_AT_expect1(P, D, S, 1, 0) #define gsmopen_serial_write_AT_expect_noexpcr(P, D, S) gsmopen_serial_write_AT_expect1(P, D, S, 0, 0) @@ -574,28 +561,28 @@ int gsmopen_serial_config_AT(private_t * tech_pvt); // 20.5 sec timeout, used for querying the SIM and sending SMSs #define gsmopen_serial_write_AT_expect_longtime(P, D, S) gsmopen_serial_write_AT_expect1(P, D, S, 1, 20) #define gsmopen_serial_write_AT_expect_longtime_noexpcr(P, D, S) gsmopen_serial_write_AT_expect1(P, D, S, 0, 20) -int gsmopen_serial_write_AT(private_t * tech_pvt, const char *data); -int gsmopen_serial_write_AT_nocr(private_t * tech_pvt, const char *data); -int gsmopen_serial_write_AT_ack(private_t * tech_pvt, const char *data); -int gsmopen_serial_write_AT_ack_nocr_longtime(private_t * tech_pvt, const char *data); -int gsmopen_serial_write_AT_noack(private_t * tech_pvt, const char *data); -int gsmopen_serial_write_AT_expect1(private_t * tech_pvt, const char *data, const char *expected_string, int expect_crlf, int seconds); -int gsmopen_serial_AT_expect(private_t * tech_pvt, const char *expected_string, int expect_crlf, int seconds); -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(private_t * tech_pvt); +int gsmopen_serial_write_AT(private_t *tech_pvt, const char *data); +int gsmopen_serial_write_AT_nocr(private_t *tech_pvt, const char *data); +int gsmopen_serial_write_AT_ack(private_t *tech_pvt, const char *data); +int gsmopen_serial_write_AT_ack_nocr_longtime(private_t *tech_pvt, const char *data); +int gsmopen_serial_write_AT_noack(private_t *tech_pvt, const char *data); +int gsmopen_serial_write_AT_expect1(private_t *tech_pvt, const char *data, const char *expected_string, int expect_crlf, int seconds); +int gsmopen_serial_AT_expect(private_t *tech_pvt, const char *expected_string, int expect_crlf, int seconds); +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(private_t *tech_pvt); #ifdef NOTDEF -int gsmopen_serial_getstatus(private_t * tech_pvt); -int gsmopen_serial_hangup(private_t * tech_pvt); -int gsmopen_serial_answer(private_t * tech_pvt); -int gsmopen_serial_answer_AT(private_t * tech_pvt); -int gsmopen_serial_hangup_AT(private_t * tech_pvt); -int gsmopen_serial_call_AT(private_t * tech_pvt, char *dstr); -int gsmopen_serial_getstatus_AT(private_t * tech_pvt); +int gsmopen_serial_getstatus(private_t *tech_pvt); +int gsmopen_serial_hangup(private_t *tech_pvt); +int gsmopen_serial_answer(private_t *tech_pvt); +int gsmopen_serial_answer_AT(private_t *tech_pvt); +int gsmopen_serial_hangup_AT(private_t *tech_pvt); +int gsmopen_serial_call_AT(private_t *tech_pvt, char *dstr); +int gsmopen_serial_getstatus_AT(private_t *tech_pvt); #endif // NOTDEF #define RESULT_FAILURE 0 #define RESULT_SUCCESS 1 -int utf_to_ucs2(private_t * tech_pvt, char *utf_in, size_t inbytesleft, char *ucs2_out, size_t outbytesleft); -int ucs2_to_utf8(private_t * tech_pvt, char *ucs2_in, char *utf8_out, size_t outbytesleft); +int utf_to_ucs2(private_t *tech_pvt, char *utf_in, size_t inbytesleft, char *ucs2_out, size_t outbytesleft); +int ucs2_to_utf8(private_t *tech_pvt, char *ucs2_in, char *utf8_out, size_t outbytesleft); //#define PUSHA_UNLOCKA(x) pthread_cleanup_push(gsmopen_unlocka_log, (void *) x); //#define POPPA_UNLOCKA(x) pthread_cleanup_pop(0); @@ -610,42 +597,38 @@ int ucs2_to_utf8(private_t * tech_pvt, char *ucs2_in, char *utf8_out, size_t out #define ast_setstate(x, y) ERRORA("ast_setstate: %p, %d\n", GSMOPEN_P_LOG, (void *)x, y); -int gsmopen_serial_read(private_t * tech_pvt); -int gsmopen_answer(private_t * tech_pvt); -int gsmopen_serial_answer(private_t * tech_pvt); -int gsmopen_serial_answer_AT(private_t * tech_pvt); -int gsmopen_serial_hangup(private_t * tech_pvt); -int gsmopen_serial_hangup_AT(private_t * tech_pvt); -int gsmopen_hangup(private_t * tech_pvt); -int gsmopen_serial_call(private_t * tech_pvt, char *dstr); -int gsmopen_serial_call_AT(private_t * tech_pvt, char *dstr); -int gsmopen_sendsms(private_t * tech_pvt, char *dest, char *text); +int gsmopen_serial_read(private_t *tech_pvt); +int gsmopen_answer(private_t *tech_pvt); +int gsmopen_serial_answer(private_t *tech_pvt); +int gsmopen_serial_answer_AT(private_t *tech_pvt); +int gsmopen_serial_hangup(private_t *tech_pvt); +int gsmopen_serial_hangup_AT(private_t *tech_pvt); +int gsmopen_hangup(private_t *tech_pvt); +int gsmopen_serial_call(private_t *tech_pvt, char *dstr); +int gsmopen_serial_call_AT(private_t *tech_pvt, char *dstr); +int gsmopen_sendsms(private_t *tech_pvt, char *dest, char *text); #ifdef GSMOPEN_ALSA -int alsa_init(private_t * tech_pvt); -int alsa_shutdown(private_t * tech_pvt); -snd_pcm_t *alsa_open_dev(private_t * tech_pvt, snd_pcm_stream_t stream); -int alsa_write(private_t * tech_pvt, short *data, int datalen); -int alsa_read(private_t * tech_pvt, short *data, int datalen); +int alsa_init(private_t *tech_pvt); +int alsa_shutdown(private_t *tech_pvt); +snd_pcm_t *alsa_open_dev(private_t *tech_pvt, snd_pcm_stream_t stream); +int alsa_write(private_t *tech_pvt, short *data, int datalen); +int alsa_read(private_t *tech_pvt, short *data, int datalen); #endif /* GSMOPEN_ALSA */ - void gsmopen_store_boost(char *s, double *boost); int gsmopen_sound_boost(void *data, int samples_num, double boost); -int sms_incoming(private_t * tech_pvt); -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 gsmopen_serial_getstatus_AT(private_t * tech_pvt); +int sms_incoming(private_t *tech_pvt); +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 gsmopen_serial_getstatus_AT(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 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 serial_audio_init(private_t * tech_pvt); -int serial_audio_shutdown(private_t * tech_pvt); +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 gsmopen_serial_init_audio_port(private_t *tech_pvt, int controldevice_audio_speed); +int serial_audio_init(private_t *tech_pvt); +int serial_audio_shutdown(private_t *tech_pvt); diff --git a/src/mod/endpoints/mod_gsmopen/gsmopen_protocol.cpp b/src/mod/endpoints/mod_gsmopen/gsmopen_protocol.cpp index 3944fffda1..08ef778dfc 100644 --- a/src/mod/endpoints/mod_gsmopen/gsmopen_protocol.cpp +++ b/src/mod/endpoints/mod_gsmopen/gsmopen_protocol.cpp @@ -1,8 +1,8 @@ #include "gsmopen.h" -extern int running; //FIXME -int gsmopen_dir_entry_extension = 1; //FIXME -int option_debug = 100; //FIXME +extern int running; //FIXME +int gsmopen_dir_entry_extension = 1; //FIXME +int option_debug = 100; //FIXME #define gsmopen_sleep switch_sleep #define gsmopen_strncpy switch_copy_string @@ -55,13 +55,13 @@ int gettimeofday(struct timeval *tv, struct sk_timezone *tz) /***************/ #endif /* WIN32 */ -int gsmopen_serial_init(private_t * tech_pvt, int controldevice_speed) +int gsmopen_serial_init(private_t *tech_pvt, int controldevice_speed) { tech_pvt->serialPort_serial_control = new ctb::SerialPort(); //if( tech_pvt->serialPort_serial_control->Open( "COM9", 115200, "8N1", ctb::SerialPort::NoFlowControl ) >= 0 ) { - if( tech_pvt->serialPort_serial_control->Open( "/dev/ttyUSB3", 115200, "8N1", ctb::SerialPort::NoFlowControl ) >= 0 ) { + if (tech_pvt->serialPort_serial_control->Open("/dev/ttyUSB3", 115200, "8N1", ctb::SerialPort::NoFlowControl) >= 0) { ERRORA("port SUCCESS open\n", GSMOPEN_P_LOG); } else { ERRORA("port NOT open\n", GSMOPEN_P_LOG); @@ -148,11 +148,10 @@ int gsmopen_serial_init(private_t * tech_pvt, int controldevice_speed) return -1; } return (fd); -#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) return gsmopen_serial_read_AT(tech_pvt, 0, 100000, 0, NULL, 1); // a 10th of a second timeout @@ -167,8 +166,7 @@ int gsmopen_serial_read(private_t * tech_pvt) return -1; } - -int gsmopen_serial_sync(private_t * tech_pvt) +int gsmopen_serial_sync(private_t *tech_pvt) { if (tech_pvt->controldevprotocol == PROTOCOL_AT) return gsmopen_serial_sync_AT(tech_pvt); @@ -184,7 +182,7 @@ int gsmopen_serial_sync(private_t * tech_pvt) return -1; } -int gsmopen_serial_config(private_t * tech_pvt) +int gsmopen_serial_config(private_t *tech_pvt) { if (tech_pvt->controldevprotocol == PROTOCOL_AT) return gsmopen_serial_config_AT(tech_pvt); @@ -200,7 +198,7 @@ int gsmopen_serial_config(private_t * tech_pvt) return -1; } -int gsmopen_serial_config_AT(private_t * tech_pvt) +int gsmopen_serial_config_AT(private_t *tech_pvt) { int res; char at_command[5]; @@ -216,15 +214,15 @@ int gsmopen_serial_config_AT(private_t * tech_pvt) while (1) { char trash[4096]; - res=tech_pvt->serialPort_serial_control->Read(trash, 4096); - if(res) + res = tech_pvt->serialPort_serial_control->Read(trash, 4096); + if (res) ERRORA("READ %d on serialport init\n", GSMOPEN_P_LOG, res); - res = gsmopen_serial_write_AT_ack(tech_pvt, "AT^CURC=0"); - if (res) { - ERRORA("no response to AT^CURC=0\n", GSMOPEN_P_LOG); - return -1; - } + res = gsmopen_serial_write_AT_ack(tech_pvt, "AT^CURC=0"); + if (res) { + ERRORA("no response to AT^CURC=0\n", GSMOPEN_P_LOG); + return -1; + } if (strlen(tech_pvt->at_preinit_1)) { res = gsmopen_serial_write_AT_expect(tech_pvt, tech_pvt->at_preinit_1, tech_pvt->at_preinit_1_expect); if (res) { @@ -286,8 +284,6 @@ int gsmopen_serial_config_AT(private_t * tech_pvt) return -1; } - - /* 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"); if (res) { @@ -342,7 +338,7 @@ int gsmopen_serial_config_AT(private_t * tech_pvt) DEBUGA_GSMOPEN("AT+CREG=1 failed\n", GSMOPEN_P_LOG); tech_pvt->network_creg_not_supported = 1; } - if(!tech_pvt->network_creg_not_supported){ + if (!tech_pvt->network_creg_not_supported) { res = gsmopen_serial_write_AT_ack(tech_pvt, "AT+CREG?"); if (res) { DEBUGA_GSMOPEN("AT+CREG? failed\n", GSMOPEN_P_LOG); @@ -420,7 +416,7 @@ int gsmopen_serial_config_AT(private_t * tech_pvt) WARNINGA("AT+CSCS=\"UCS2\" (set TE messages to ucs2) do not got OK from the phone, let's try with 'GSM'\n", GSMOPEN_P_LOG); tech_pvt->no_ucs2 = 1; } -#ifdef NOTDEF //GSMLIB? +#ifdef NOTDEF //GSMLIB? if (tech_pvt->no_ucs2) { res = gsmopen_serial_write_AT_ack(tech_pvt, "AT+CSCS=\"GSM\""); if (res) { @@ -470,7 +466,7 @@ int gsmopen_serial_config_AT(private_t * tech_pvt) } else { tech_pvt->at_has_ecam = 1; } -#endif// NOTDEF +#endif // NOTDEF /* disable unsolicited signaling of call list */ res = gsmopen_serial_write_AT_ack(tech_pvt, "AT+CLCC=0"); @@ -549,14 +545,14 @@ int gsmopen_serial_config_AT(private_t * tech_pvt) 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); 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 res; @@ -571,17 +567,16 @@ int gsmopen_serial_read_AT(private_t * tech_pvt, int look_for_ack, int timeout_u int la_counter = 0; int at_ack = -1; int la_read = 0; -int timeout1; + int timeout1; -timeout1 = (timeout_sec * 1000) + (timeout_usec ? (timeout_usec / 1000) : 0 ); + timeout1 = (timeout_sec * 1000) + (timeout_usec ? (timeout_usec / 1000) : 0); -if(timeout1 != 100) - ERRORA("TIMEOUT=%d\n", GSMOPEN_P_LOG, timeout1); + if (timeout1 != 100) + ERRORA("TIMEOUT=%d\n", GSMOPEN_P_LOG, timeout1); - if(!running || !tech_pvt->running){ + if (!running || !tech_pvt->running) { return -1; } - ////FD_ZERO(&read_fds); //FD_SET(tech_pvt->controldevfd, &read_fds); @@ -595,7 +590,10 @@ if(timeout1 != 100) 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) && (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; timeout.tv_sec = timeout_sec; //reset the timeout, linux modify it timeout.tv_usec = timeout_usec; //reset the timeout, linux modify it @@ -609,10 +607,10 @@ if(timeout1 != 100) tech_pvt->controldev_dead = 1; //cicopet close(tech_pvt->controldevfd); ERRORA("gsmopen_serial_monitor failed, declaring %s dead\n", GSMOPEN_P_LOG, tech_pvt->controldevice_name); - tech_pvt->running=0; + tech_pvt->running = 0; alarm_event(tech_pvt, ALARM_FAILED_INTERFACE, "gsmopen_serial_monitor failed, declaring interface dead"); - tech_pvt->active=0; - tech_pvt->name[0]='\0'; + tech_pvt->active = 0; + tech_pvt->name[0] = '\0'; UNLOCKA(tech_pvt->controldev_lock); if (tech_pvt->owner) { @@ -629,7 +627,6 @@ if(timeout1 != 100) } tmp_answer_ptr = tmp_answer_ptr + read_count; - la_counter = 0; memset(tmp_answer2, 0, sizeof(char) * AT_BUFSIZ); 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_number, 0, sizeof(tech_pvt->callid_number)); - for (a = 7; a < strlen(tech_pvt->line_array.result[i]); a++) { if (tech_pvt->line_array.result[i][a] == ',') { commacount++; @@ -918,14 +914,14 @@ if(timeout1 != 100) ERRORA ("|%s| CELLPHONE GETS ALMOST NO SIGNAL, consider to move it or additional antenna\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); - tech_pvt->got_signal=0; - alarm_event(tech_pvt, ALARM_NETWORK_NO_SIGNAL, "CELLPHONE GETS ALMOST NO SIGNAL, consider to move it or additional antenna"); + tech_pvt->got_signal = 0; + alarm_event(tech_pvt, ALARM_NETWORK_NO_SIGNAL, "CELLPHONE GETS ALMOST NO SIGNAL, consider to move it or additional antenna"); } else if (signal_quality < 15) { WARNINGA("|%s| CELLPHONE GETS SIGNAL LOW\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); - tech_pvt->got_signal=1; - alarm_event(tech_pvt, ALARM_NETWORK_LOW_SIGNAL, "CELLPHONE GETS SIGNAL LOW"); + tech_pvt->got_signal = 1; + alarm_event(tech_pvt, ALARM_NETWORK_LOW_SIGNAL, "CELLPHONE GETS SIGNAL LOW"); } else { - tech_pvt->got_signal=2; + tech_pvt->got_signal = 2; } } @@ -941,25 +937,26 @@ if(timeout1 != 100) DEBUGA_GSMOPEN("|%s| +CREG: Display: %d, Registration=%d\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i], n, stat); if (err < 2) { WARNINGA("|%s| is not formatted as: |+CREG: xx,yy|\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); - } - if (stat==0) { + } + if (stat == 0) { ERRORA ("|%s| CELLPHONE is not registered to network, consider to move it or additional antenna\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); - tech_pvt->not_registered=1; - tech_pvt->home_network_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"); - } else if (stat==1) { + tech_pvt->not_registered = 1; + tech_pvt->home_network_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"); + } else if (stat == 1) { 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->home_network_registered=1; - tech_pvt->roaming_registered=0; - }else { + tech_pvt->not_registered = 0; + tech_pvt->home_network_registered = 1; + tech_pvt->roaming_registered = 0; + } else { ERRORA("|%s| CELLPHONE is registered to a ROAMING network\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); - tech_pvt->not_registered=0; - tech_pvt->home_network_registered=0; - tech_pvt->roaming_registered=1; + tech_pvt->not_registered = 0; + tech_pvt->home_network_registered = 0; + tech_pvt->roaming_registered = 1; alarm_event(tech_pvt, ALARM_ROAMING_NETWORK_REGISTRATION, "CELLPHONE is registered to a ROAMING network"); } @@ -1048,16 +1045,6 @@ if(timeout1 != 100) ERRORA("Why NO CARRIER now?\n", GSMOPEN_P_LOG); } - - - - - - - - - - } 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++; } - if ((strcmp(tech_pvt->line_array.result[i], "+MCST: 17") == 0)) { /* motorola call processing unsolicited messages */ tech_pvt->phone_callflow = CALLFLOW_CALL_INFLUX; if (option_debug > 1) @@ -1510,51 +1496,51 @@ if(timeout1 != 100) /* at_indicator_* are unsolicited messages sent by the phone to signal us that some of its visual indicators on its screen has changed, based on CIND CMER ETSI docs */ if ((strcmp(tech_pvt->line_array.result[i], tech_pvt->at_indicator_noservice_string) == 0)) { - ERRORA("|%s| at_indicator_noservice_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); - alarm_event(tech_pvt, ALARM_NETWORK_NO_SERVICE, "at_indicator_noservice_string"); + ERRORA("|%s| at_indicator_noservice_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); + alarm_event(tech_pvt, ALARM_NETWORK_NO_SERVICE, "at_indicator_noservice_string"); } if ((strcmp(tech_pvt->line_array.result[i], tech_pvt->at_indicator_nosignal_string) == 0)) { - ERRORA("|%s| at_indicator_nosignal_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); - alarm_event(tech_pvt, ALARM_NETWORK_NO_SIGNAL, "at_indicator_nosignal_string"); + ERRORA("|%s| at_indicator_nosignal_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); + alarm_event(tech_pvt, ALARM_NETWORK_NO_SIGNAL, "at_indicator_nosignal_string"); } if ((strcmp(tech_pvt->line_array.result[i], tech_pvt->at_indicator_lowsignal_string) == 0)) { - WARNINGA("|%s| at_indicator_lowsignal_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); - alarm_event(tech_pvt, ALARM_NETWORK_LOW_SIGNAL, "at_indicator_lowsignal_string"); + WARNINGA("|%s| at_indicator_lowsignal_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); + alarm_event(tech_pvt, ALARM_NETWORK_LOW_SIGNAL, "at_indicator_lowsignal_string"); } if ((strcmp(tech_pvt->line_array.result[i], tech_pvt->at_indicator_lowbattchg_string) == 0)) { - WARNINGA("|%s| at_indicator_lowbattchg_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); + WARNINGA("|%s| at_indicator_lowbattchg_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); } if ((strcmp(tech_pvt->line_array.result[i], tech_pvt->at_indicator_nobattchg_string) == 0)) { - ERRORA("|%s| at_indicator_nobattchg_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); + ERRORA("|%s| at_indicator_nobattchg_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); } if ((strcmp(tech_pvt->line_array.result[i], tech_pvt->at_indicator_callactive_string) == 0)) { - DEBUGA_GSMOPEN("|%s| at_indicator_callactive_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); + DEBUGA_GSMOPEN("|%s| at_indicator_callactive_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); } if ((strcmp(tech_pvt->line_array.result[i], tech_pvt->at_indicator_nocallactive_string) == 0)) { - DEBUGA_GSMOPEN("|%s| at_indicator_nocallactive_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); + DEBUGA_GSMOPEN("|%s| at_indicator_nocallactive_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); } if ((strcmp(tech_pvt->line_array.result[i], tech_pvt->at_indicator_nocallsetup_string) == 0)) { - DEBUGA_GSMOPEN("|%s| at_indicator_nocallsetup_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); + DEBUGA_GSMOPEN("|%s| at_indicator_nocallsetup_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); } if ((strcmp(tech_pvt->line_array.result[i], tech_pvt->at_indicator_callsetupincoming_string) == 0)) { - DEBUGA_GSMOPEN("|%s| at_indicator_callsetupincoming_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); + DEBUGA_GSMOPEN("|%s| at_indicator_callsetupincoming_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); } if ((strcmp(tech_pvt->line_array.result[i], tech_pvt->at_indicator_callsetupoutgoing_string) == 0)) { - DEBUGA_GSMOPEN("|%s| at_indicator_callsetupoutgoing_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); + DEBUGA_GSMOPEN("|%s| at_indicator_callsetupoutgoing_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); } if ((strcmp(tech_pvt->line_array.result[i], tech_pvt->at_indicator_callsetupremoteringing_string) == 0)) { - DEBUGA_GSMOPEN("|%s| at_indicator_callsetupremoteringing_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); + DEBUGA_GSMOPEN("|%s| at_indicator_callsetupremoteringing_string\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]); } } @@ -1614,24 +1600,23 @@ if(timeout1 != 100) memset(content, '\0', sizeof(content)); - 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 (inside_comma) { inside_comma = 0; DEBUGA_GSMOPEN("inside_comma=%d, inside_quote=%d, we're at=%s\n", GSMOPEN_P_LOG, inside_comma, inside_quote, - &tech_pvt->line_array.result[i][c]); + &tech_pvt->line_array.result[i][c]); } else { inside_comma = 1; DEBUGA_GSMOPEN("inside_comma=%d, inside_quote=%d, we're at=%s\n", GSMOPEN_P_LOG, inside_comma, inside_quote, - &tech_pvt->line_array.result[i][c]); + &tech_pvt->line_array.result[i][c]); } } if (tech_pvt->line_array.result[i][c] == '"' && tech_pvt->line_array.result[i][c - 1] != '\\') { if (inside_quote) { inside_quote = 0; DEBUGA_GSMOPEN("END_CONTENT inside_comma=%d, inside_quote=%d, we're at=%s\n", GSMOPEN_P_LOG, inside_comma, inside_quote, - &tech_pvt->line_array.result[i][c]); + &tech_pvt->line_array.result[i][c]); DEBUGA_GSMOPEN("%d content=%s\n", GSMOPEN_P_LOG, which_field, content); //strncat(tech_pvt->sms_message, "---", ((sizeof(tech_pvt->sms_message) - strlen(tech_pvt->sms_message)) - 1)); @@ -1671,7 +1656,7 @@ if(timeout1 != 100) } else { inside_quote = 1; DEBUGA_GSMOPEN("START_CONTENT inside_comma=%d, inside_quote=%d, we're at=%s\n", GSMOPEN_P_LOG, inside_comma, inside_quote, - &tech_pvt->line_array.result[i][c]); + &tech_pvt->line_array.result[i][c]); } } if (inside_quote && tech_pvt->line_array.result[i][c] != '"') { @@ -1693,7 +1678,6 @@ if(timeout1 != 100) //int howmanyleft; - 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)); DEBUGA_GSMOPEN("content3=%s\n", GSMOPEN_P_LOG, content3); @@ -1749,13 +1733,13 @@ if(timeout1 != 100) tech_pvt->controldev_dead = 1; //cicopet close(tech_pvt->controldevfd); - tech_pvt->running=0; - alarm_event(tech_pvt, ALARM_FAILED_INTERFACE, "select returned -1 on interface, setting controldev_dead"); - tech_pvt->active=0; - tech_pvt->name[0]='\0'; + tech_pvt->running = 0; + alarm_event(tech_pvt, ALARM_FAILED_INTERFACE, "select returned -1 on interface, setting controldev_dead"); + tech_pvt->active = 0; + tech_pvt->name[0] = '\0'; if (tech_pvt->owner) gsmopen_queue_control(tech_pvt->owner, GSMOPEN_CONTROL_HANGUP); - switch_sleep(1000000); + switch_sleep(1000000); return -1; } @@ -1819,13 +1803,13 @@ if(timeout1 != 100) } //cicopet int gsmopen_serial_write_AT(private_t * tech_pvt, const char *data) -int gsmopen_serial_write_AT(private_t * tech_pvt, const char *data) +int gsmopen_serial_write_AT(private_t *tech_pvt, const char *data) { int howmany; int i; int res; int count; -char *Data=(char *)data; + char *Data = (char *) data; howmany = strlen(Data); @@ -1854,18 +1838,18 @@ char *Data=(char *)data; } if (option_debug > 1) DEBUGA_GSMOPEN("sent data... (%.1s)\n", GSMOPEN_P_LOG, &Data[i]); - gsmopen_sleep(1000); /* release the cpu */ + gsmopen_sleep(1000); /* release the cpu */ } //cicopet res = write(tech_pvt->controldevfd, "\r", 1); - res = tech_pvt->serialPort_serial_control->Write((char *)"\r", 1); + res = tech_pvt->serialPort_serial_control->Write((char *) "\r", 1); if (res != 1) { DEBUGA_GSMOPEN("Error sending (carriage return): %d (%s)\n", GSMOPEN_P_LOG, res, strerror(errno)); gsmopen_sleep(100000); for (count = 0; count < 10; count++) { //cicopet res = write(tech_pvt->controldevfd, "\r", 1); - res = tech_pvt->serialPort_serial_control->Write((char *)"\r", 1); + res = tech_pvt->serialPort_serial_control->Write((char *) "\r", 1); if (res == 1) { DEBUGA_GSMOPEN("Successfully RE-sent carriage return: %d %d (%s)\n", GSMOPEN_P_LOG, count, res, strerror(errno)); @@ -1882,18 +1866,18 @@ char *Data=(char *)data; } if (option_debug > 1) DEBUGA_GSMOPEN("sent (carriage return)\n", GSMOPEN_P_LOG); - gsmopen_sleep(1000); /* release the cpu */ + gsmopen_sleep(1000); /* release the cpu */ return howmany; } -int gsmopen_serial_write_AT_nocr(private_t * tech_pvt, const char *data) +int gsmopen_serial_write_AT_nocr(private_t *tech_pvt, const char *data) { int howmany; int i; int res; int count; -char *Data=(char *)data; + char *Data = (char *) data; howmany = strlen(Data); @@ -1921,15 +1905,15 @@ char *Data=(char *)data; } if (option_debug > 1) DEBUGA_GSMOPEN("sent data... (%.1s)\n", GSMOPEN_P_LOG, &Data[i]); - gsmopen_sleep(1000); /* release the cpu */ + gsmopen_sleep(1000); /* release the cpu */ } - gsmopen_sleep(1000); /* release the cpu */ + gsmopen_sleep(1000); /* release the cpu */ return howmany; } -int gsmopen_serial_write_AT_noack(private_t * tech_pvt, const char *data) +int gsmopen_serial_write_AT_noack(private_t *tech_pvt, const char *data) { if (option_debug > 1) @@ -1949,7 +1933,7 @@ int gsmopen_serial_write_AT_noack(private_t * tech_pvt, const char *data) return 0; } -int gsmopen_serial_write_AT_ack(private_t * tech_pvt, const char *data) +int gsmopen_serial_write_AT_ack(private_t *tech_pvt, const char *data) { int at_result = AT_ERROR; @@ -1962,8 +1946,7 @@ int gsmopen_serial_write_AT_ack(private_t * tech_pvt, const char *data) UNLOCKA(tech_pvt->controldev_lock); 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 UNLOCKA(tech_pvt->controldev_lock); POPPA_UNLOCKA(tech_pvt->controldev_lock); @@ -1972,7 +1955,7 @@ int gsmopen_serial_write_AT_ack(private_t * tech_pvt, const char *data) } -int gsmopen_serial_write_AT_ack_nocr_longtime(private_t * tech_pvt, const char *data) +int gsmopen_serial_write_AT_ack_nocr_longtime(private_t *tech_pvt, const char *data) { int at_result = AT_ERROR; @@ -1994,7 +1977,7 @@ int gsmopen_serial_write_AT_ack_nocr_longtime(private_t * tech_pvt, const char * } -int gsmopen_serial_write_AT_expect1(private_t * tech_pvt, const char *data, const char *expected_string, int expect_crlf, int seconds) +int gsmopen_serial_write_AT_expect1(private_t *tech_pvt, const char *data, const char *expected_string, int expect_crlf, int seconds) { int at_result = AT_ERROR; @@ -2016,7 +1999,7 @@ int gsmopen_serial_write_AT_expect1(private_t * tech_pvt, const char *data, cons } -int gsmopen_serial_AT_expect(private_t * tech_pvt, const char *expected_string, int expect_crlf, int seconds) +int gsmopen_serial_AT_expect(private_t *tech_pvt, const char *expected_string, int expect_crlf, int seconds) { int at_result = AT_ERROR; @@ -2025,7 +2008,7 @@ int gsmopen_serial_AT_expect(private_t * tech_pvt, const char *expected_string, if (option_debug > 1) DEBUGA_GSMOPEN("expecting: %s\n", GSMOPEN_P_LOG, expected_string); - //cicopet at_result = gsmopen_serial_read_AT(tech_pvt, 1, 500000, seconds, expected_string, expect_crlf); // 20.5 sec timeout, used for querying the SIM and sending SMSs + //cicopet at_result = gsmopen_serial_read_AT(tech_pvt, 1, 500000, seconds, expected_string, expect_crlf); // 20.5 sec timeout, used for querying the SIM and sending SMSs at_result = gsmopen_serial_read_AT(tech_pvt, 1, 100000, seconds, expected_string, expect_crlf); // minimum 1/10th sec timeout UNLOCKA(tech_pvt->controldev_lock); POPPA_UNLOCKA(tech_pvt->controldev_lock); @@ -2034,7 +2017,7 @@ int gsmopen_serial_AT_expect(private_t * tech_pvt, const char *expected_string, } -int gsmopen_serial_answer(private_t * tech_pvt) +int gsmopen_serial_answer(private_t *tech_pvt) { if (tech_pvt->controldevprotocol == PROTOCOL_AT) return gsmopen_serial_answer_AT(tech_pvt); @@ -2049,8 +2032,7 @@ int gsmopen_serial_answer(private_t * tech_pvt) return -1; } - -int gsmopen_serial_answer_AT(private_t * tech_pvt) +int gsmopen_serial_answer_AT(private_t *tech_pvt) { int res; @@ -2073,7 +2055,7 @@ int gsmopen_serial_answer_AT(private_t * tech_pvt) return 0; } -int gsmopen_serial_hangup(private_t * tech_pvt) +int gsmopen_serial_hangup(private_t *tech_pvt) { if (tech_pvt->controldevprotocol == PROTOCOL_AT) return gsmopen_serial_hangup_AT(tech_pvt); @@ -2088,8 +2070,7 @@ int gsmopen_serial_hangup(private_t * tech_pvt) return -1; } - -int gsmopen_serial_hangup_AT(private_t * tech_pvt) +int gsmopen_serial_hangup_AT(private_t *tech_pvt) { int res; @@ -2117,8 +2098,7 @@ int gsmopen_serial_hangup_AT(private_t * tech_pvt) 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) return gsmopen_serial_call_AT(tech_pvt, dstr); @@ -2135,7 +2115,7 @@ int gsmopen_serial_call(private_t * tech_pvt, char *dstr) return -1; } -int gsmopen_serial_call_AT(private_t * tech_pvt, char *dstr) +int gsmopen_serial_call_AT(private_t *tech_pvt, char *dstr) { int res; char at_command[256]; @@ -2171,7 +2151,7 @@ int gsmopen_serial_call_AT(private_t * tech_pvt, char *dstr) return 0; } -int ucs2_to_utf8(private_t * tech_pvt, char *ucs2_in, char *utf8_out, size_t outbytesleft) +int ucs2_to_utf8(private_t *tech_pvt, char *ucs2_in, char *utf8_out, size_t outbytesleft) { char converted[16000]; #ifndef WIN32 @@ -2201,7 +2181,7 @@ int ucs2_to_utf8(private_t * tech_pvt, char *ucs2_in, char *utf8_out, size_t out inbuf = converted; iconv_format = iconv_open("UTF8", "UCS-2BE"); - if (iconv_format == (iconv_t) - 1) { + if (iconv_format == (iconv_t) -1) { ERRORA("error: %s\n", GSMOPEN_P_LOG, strerror(errno)); return -1; } @@ -2227,7 +2207,7 @@ int ucs2_to_utf8(private_t * tech_pvt, char *ucs2_in, char *utf8_out, size_t out return 0; } -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) { char converted[16000]; #ifndef WIN32 @@ -2249,12 +2229,11 @@ int iso_8859_1_to_utf8(private_t * tech_pvt, char *iso_8859_1_in, char *utf8_out inbuf = iso_8859_1_in; iconv_format = iconv_open("UTF8", "ISO_8859-1"); - if (iconv_format == (iconv_t) - 1) { + if (iconv_format == (iconv_t) -1) { ERRORA("error: %s\n", GSMOPEN_P_LOG, strerror(errno)); return -1; } - inbytesleft = strlen(iso_8859_1_in) * 2; iconv_res = iconv(iconv_format, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (iconv_res == (size_t) -1) { @@ -2267,16 +2246,13 @@ 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", GSMOPEN_P_LOG, (int) strlen(iso_8859_1_in), iconv_res, inbuf, (int) inbytesleft, outbuf, (int) outbytesleft, utf8_out); - - iconv_close(iconv_format); #endif //WIN32 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 */ #ifndef WIN32 @@ -2295,7 +2271,7 @@ int utf_to_ucs2(private_t * tech_pvt, char *utf_in, size_t inbytesleft, char *uc inbuf = utf_in; iconv_format = iconv_open("UCS-2BE", "UTF8"); - if (iconv_format == (iconv_t) - 1) { + if (iconv_format == (iconv_t) -1) { ERRORA("error: %s\n", GSMOPEN_P_LOG, strerror(errno)); return -1; } @@ -2327,10 +2303,9 @@ int utf_to_ucs2(private_t * tech_pvt, char *utf_in, size_t inbytesleft, char *uc return 0; } - /*! \brief Answer incoming call, * Part of PBX interface */ -int gsmopen_answer(private_t * tech_pvt) +int gsmopen_answer(private_t *tech_pvt) { int res; @@ -2351,7 +2326,7 @@ int gsmopen_answer(private_t * tech_pvt) tech_pvt->phone_callflow = CALLFLOW_CALL_ACTIVE; while (tech_pvt->interface_state == GSMOPEN_STATE_RING) { - gsmopen_sleep(10000); //10msec + gsmopen_sleep(10000); //10msec } if (tech_pvt->interface_state != GSMOPEN_STATE_UP) { ERRORA("call answering failed\n", GSMOPEN_P_LOG); @@ -2376,7 +2351,7 @@ int gsmopen_answer(private_t * tech_pvt) return res; } -int gsmopen_ring(private_t * tech_pvt) +int gsmopen_ring(private_t *tech_pvt) { int res = 0; switch_core_session_t *session = NULL; @@ -2412,18 +2387,16 @@ int gsmopen_ring(private_t * tech_pvt) } - if (option_debug) { DEBUGA_PBX("EXITING FUNC\n", GSMOPEN_P_LOG); } return res; } - /*! \brief Hangup gsmopen call * Part of PBX interface, called from ast_hangup */ -int gsmopen_hangup(private_t * tech_pvt) +int gsmopen_hangup(private_t *tech_pvt) { /* if there is not gsmopen pvt why we are here ? */ @@ -2434,7 +2407,6 @@ int gsmopen_hangup(private_t * tech_pvt) DEBUGA_GSMOPEN("ENTERING FUNC\n", GSMOPEN_P_LOG); - if (tech_pvt->controldevprotocol != PROTOCOL_NO_SERIAL) { if (tech_pvt->interface_state != GSMOPEN_STATE_DOWN) { /* actually hangup through the serial port */ @@ -2472,8 +2444,6 @@ int gsmopen_hangup(private_t * tech_pvt) return 0; } - - #ifdef GSMOPEN_ALSA /*! \brief ALSA pcm format, according to endianess */ #if __BYTE_ORDER == __LITTLE_ENDIAN @@ -2490,7 +2460,7 @@ snd_pcm_format_t gsmopen_format = SND_PCM_FORMAT_S16_BE; * * \return zero on success, -1 on error. */ -int alsa_init(private_t * tech_pvt) +int alsa_init(private_t *tech_pvt) { tech_pvt->alsac = alsa_open_dev(tech_pvt, SND_PCM_STREAM_CAPTURE); if (!tech_pvt->alsac) { @@ -2525,7 +2495,7 @@ int alsa_init(private_t * tech_pvt) * \return zero on success, -1 on error. */ -int alsa_shutdown(private_t * tech_pvt) +int alsa_shutdown(private_t *tech_pvt) { int err; @@ -2569,7 +2539,7 @@ int alsa_shutdown(private_t * tech_pvt) * * \return zero on success, -1 on error. */ -snd_pcm_t *alsa_open_dev(private_t * tech_pvt, snd_pcm_stream_t stream) +snd_pcm_t *alsa_open_dev(private_t *tech_pvt, snd_pcm_stream_t stream) { snd_pcm_t *handle = NULL; @@ -2825,7 +2795,7 @@ snd_pcm_t *alsa_open_dev(private_t * tech_pvt, snd_pcm_stream_t stream) /*! \brief Write audio frames to interface */ #endif /* GSMOPEN_ALSA */ -int gsmopen_call(private_t * tech_pvt, char *rdest, int timeout) +int gsmopen_call(private_t *tech_pvt, char *rdest, int timeout) { //gsmopen_sleep(5000); @@ -2842,8 +2812,7 @@ int gsmopen_call(private_t * tech_pvt, char *rdest, int timeout) return 0; } - -int gsmopen_senddigit(private_t * tech_pvt, char digit) +int gsmopen_senddigit(private_t *tech_pvt, char digit) { DEBUGA_GSMOPEN("DIGIT received: %c\n", GSMOPEN_P_LOG, digit); @@ -2864,7 +2833,7 @@ int gsmopen_senddigit(private_t * tech_pvt, char digit) #ifdef GSMOPEN_ALSA /*! \brief Write audio frames to interface */ -int alsa_write(private_t * tech_pvt, short *data, int datalen) +int alsa_write(private_t *tech_pvt, short *data, int datalen) { static char sizbuf[8000]; static char sizbuf2[16000]; @@ -2876,14 +2845,13 @@ int alsa_write(private_t * tech_pvt, short *data, int datalen) time_t now_timestamp; /* size_t frames = 0; */ snd_pcm_state_t state; - snd_pcm_sframes_t delayp1=0; - snd_pcm_sframes_t delayp2=0; + snd_pcm_sframes_t delayp1 = 0; + snd_pcm_sframes_t delayp2 = 0; - if(tech_pvt->no_sound==1){ + if (tech_pvt->no_sound == 1) { return res; } - memset(sizbuf, 255, sizeof(sizbuf)); memset(sizbuf2, 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; pos = 0; - #ifdef ALSA_MONITOR alsa_monitor_write(sizbuf, len); #endif @@ -3086,7 +3053,7 @@ int alsa_write(private_t * tech_pvt, short *data, int datalen) } #define AST_FRIENDLY_OFFSET 0 -int alsa_read(private_t * tech_pvt, short *data, int datalen) +int alsa_read(private_t *tech_pvt, short *data, int datalen) { //static struct ast_frame f; static short __buf[GSMOPEN_FRAME_SIZE + AST_FRIENDLY_OFFSET / 2]; @@ -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); //memset(&f, 0, sizeof(struct ast_frame)); //giova - - - if(tech_pvt->no_sound==1){ + if (tech_pvt->no_sound == 1) { return r; } left = datalen; - state = snd_pcm_state(tech_pvt->alsac); if (state != SND_PCM_STATE_RUNNING) { DEBUGA_GSMOPEN("ALSA read state is not SND_PCM_STATE_RUNNING\n", GSMOPEN_P_LOG); @@ -3164,7 +3128,7 @@ int alsa_read(private_t * tech_pvt, short *data, int datalen) return r; } else if (r == -EAGAIN) { - int count=0; + int count = 0; while (r == -EAGAIN) { gsmopen_sleep(10000); DEBUGA_GSMOPEN("%d ALSA read -EAGAIN, the soundcard is not ready to be read by gsmopen\n", GSMOPEN_P_LOG, count); @@ -3210,11 +3174,7 @@ int alsa_read(private_t * tech_pvt, short *data, int datalen) #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 rdest[256]; @@ -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); } - if (tech_pvt->no_ucs2) { sprintf(smscommand, "AT+CMGS=\"%s\"", dest); //TODO: support phones that only accept pdu mode } else { @@ -3268,7 +3227,7 @@ int gsmopen_sendsms(private_t * tech_pvt, char *dest, char *text) } //TODO: support phones that only accept pdu mode //TODO would be better to lock controldev here - //sprintf(smscommand, "AT+CMGS=\"%s\"", dest); //FIXME: nokia e63 want this + //sprintf(smscommand, "AT+CMGS=\"%s\"", dest); //FIXME: nokia e63 want this err = gsmopen_serial_write_AT_noack(tech_pvt, smscommand); if (err) { ERRORA("Error sending SMS\n", GSMOPEN_P_LOG); @@ -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("FINISH\n", GSMOPEN_P_LOG); if (failed) return -1; @@ -3404,7 +3362,7 @@ void gsmopen_store_boost(char *s, double *boost) *boost = BOOST_MAX; } #ifdef WIN32 - *boost = exp(log ((double)10) * *boost / 20) * BOOST_SCALE; + *boost = exp(log((double) 10) * *boost / 20) * BOOST_SCALE; #else *boost = exp(log(10) * *boost / 20) * BOOST_SCALE; #endif //WIN32 @@ -3412,11 +3370,10 @@ void gsmopen_store_boost(char *s, double *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) { /* LUIGI RIZZO's magic */ - if (boost != 0 && (boost < 511 || boost > 513)) { /* scale and clip values */ + if (boost != 0 && (boost < 511 || boost > 513)) { /* scale and clip values */ int i, x; int16_t *ptr = (int16_t *) data; @@ -3437,8 +3394,7 @@ int gsmopen_sound_boost(void *data, int samples_num, double boost) return 0; } - -int gsmopen_serial_getstatus_AT(private_t * tech_pvt) +int gsmopen_serial_getstatus_AT(private_t *tech_pvt) { int res; private_t *p = tech_pvt; @@ -3452,7 +3408,6 @@ int gsmopen_serial_getstatus_AT(private_t * tech_pvt) } #endif - PUSHA_UNLOCKA(p->controldev_lock); LOKKA(p->controldev_lock); res = gsmopen_serial_write_AT_ack(p, "AT"); @@ -3484,7 +3439,6 @@ int gsmopen_serial_getstatus_AT(private_t * tech_pvt) } gsmopen_sleep(1000); } - //FIXME all the following commands in config! if (p->sms_cnmi_not_supported) { @@ -3587,13 +3541,12 @@ int gsmopen_serial_getstatus_AT(private_t * tech_pvt) 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(); //if( tech_pvt->serialPort_serial_audio->Open( "COM8", 115200, "8N1", ctb::SerialPort::NoFlowControl ) >= 0 ) { - if( tech_pvt->serialPort_serial_audio->Open( "/dev/ttyUSB2", 115200, "8N1", ctb::SerialPort::NoFlowControl ) >= 0 ) { + if (tech_pvt->serialPort_serial_audio->Open("/dev/ttyUSB2", 115200, "8N1", ctb::SerialPort::NoFlowControl) >= 0) { ERRORA("port SUCCESS open\n", GSMOPEN_P_LOG); } else { ERRORA("port NOT open\n", GSMOPEN_P_LOG); @@ -3602,22 +3555,23 @@ int gsmopen_serial_init_audio_port(private_t * tech_pvt, int controldevice_audio return 0; } -int serial_audio_init(private_t * tech_pvt) +int serial_audio_init(private_t *tech_pvt) { int res; int err; - res=gsmopen_serial_init_audio_port(tech_pvt, tech_pvt->controldevice_audio_speed); + res = gsmopen_serial_init_audio_port(tech_pvt, tech_pvt->controldevice_audio_speed); ERRORA("serial_audio_init res=%d\n", GSMOPEN_P_LOG, res); - if(res == 0) - err=0; + if (res == 0) + err = 0; else - err=1; + err = 1; return err; } -int serial_audio_shutdown(private_t * tech_pvt) + +int serial_audio_shutdown(private_t *tech_pvt) { int res; @@ -3629,4 +3583,3 @@ int serial_audio_shutdown(private_t * tech_pvt) return err; } - diff --git a/src/mod/endpoints/mod_gsmopen/mod_gsmopen.cpp b/src/mod/endpoints/mod_gsmopen/mod_gsmopen.cpp index d66759a86d..9d744efbc9 100644 --- a/src/mod/endpoints/mod_gsmopen/mod_gsmopen.cpp +++ b/src/mod/endpoints/mod_gsmopen/mod_gsmopen.cpp @@ -83,14 +83,13 @@ int gettimeofday(struct timeval *tv, struct sk_timezone *tz) /***************/ #endif /* WIN32 */ #endif //0 -SWITCH_BEGIN_EXTERN_C -SWITCH_MODULE_LOAD_FUNCTION(mod_gsmopen_load); +SWITCH_BEGIN_EXTERN_C SWITCH_MODULE_LOAD_FUNCTION(mod_gsmopen_load); SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_gsmopen_shutdown); SWITCH_MODULE_DEFINITION(mod_gsmopen, mod_gsmopen_load, mod_gsmopen_shutdown, NULL); SWITCH_END_EXTERN_C #define GSMOPEN_CHAT_PROTO "sms" #if 1 -SWITCH_STANDARD_API(gsm_function); + SWITCH_STANDARD_API(gsm_function); /* BEGIN: Changes here */ #define GSM_SYNTAX "list [full] || console || AT_command || remove < interface_name | interface_id > || reload" /* END: Changes heres */ @@ -123,6 +122,7 @@ const char *interface_status[] = { /* should match GSMOPEN_STATE_xxx in gsmopen. "HANG_RQ", "PREANSW" }; + const char *phone_callflow[] = { /* should match CALLFLOW_XXX in gsmopen.h */ "CALL_IDLE", "CALL_DOWN", @@ -153,7 +153,6 @@ const char *phone_callflow[] = { /* should match CALLFLOW_XXX in gsmopen.h */ "STATUS_RMTEHOLD" }; - static struct { int debug; char *ip; @@ -210,9 +209,9 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id); static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id); static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig); -static switch_status_t gsmopen_tech_init(private_t * tech_pvt, switch_core_session_t *session); +static switch_status_t gsmopen_tech_init(private_t *tech_pvt, switch_core_session_t *session); -static switch_status_t gsmopen_codec(private_t * tech_pvt, int sample_rate, int codec_ms) +static switch_status_t gsmopen_codec(private_t *tech_pvt, int sample_rate, int codec_ms) { switch_core_session_t *session = NULL; @@ -249,14 +248,14 @@ static switch_status_t gsmopen_codec(private_t * tech_pvt, int sample_rate, int } -switch_status_t gsmopen_tech_init(private_t * tech_pvt, switch_core_session_t *session) +switch_status_t gsmopen_tech_init(private_t *tech_pvt, switch_core_session_t *session) { #ifdef WANT_SPEEX int ciapa; long level; int tmp; -#endif// WANT_SPEEX +#endif // WANT_SPEEX switch_assert(tech_pvt != NULL); switch_assert(session != NULL); tech_pvt->read_frame.data = tech_pvt->databuf; @@ -275,19 +274,19 @@ switch_status_t gsmopen_tech_init(private_t * tech_pvt, switch_core_session_t *s } //teletone_dtmf_detect_init(&tech_pvt->dtmf_detect, tech_pvt->read_codec.implementation->actual_samples_per_second); //teletone_dtmf_detect_init(&tech_pvt->dtmf_detect, 8000); - dtmf_rx_init(&tech_pvt->dtmf_state, NULL, NULL); - dtmf_rx_parms(&tech_pvt->dtmf_state, 0, 10, 10, -99); + dtmf_rx_init(&tech_pvt->dtmf_state, NULL, NULL); + dtmf_rx_parms(&tech_pvt->dtmf_state, 0, 10, 10, -99); #ifdef GSMOPEN_ALSA - if(tech_pvt->no_sound==0){ + if (tech_pvt->no_sound == 0) { if (alsa_init(tech_pvt)) { ERRORA("alsa_init failed\n", GSMOPEN_P_LOG); return SWITCH_STATUS_FALSE; } } -#endif// GSMOPEN_ALSA - if(tech_pvt->no_sound==0){ +#endif // GSMOPEN_ALSA + if (tech_pvt->no_sound == 0) { if (serial_audio_init(tech_pvt)) { ERRORA("serial_audio_init failed\n", GSMOPEN_P_LOG); return SWITCH_STATUS_FALSE; @@ -312,96 +311,92 @@ switch_status_t gsmopen_tech_init(private_t * tech_pvt, switch_core_session_t *s switch_core_timer_sync(&tech_pvt->timer_write); #ifdef WANT_SPEEX - /* Echo canceller with 100 ms tail length */ + /* Echo canceller with 100 ms tail length */ #ifndef GIOVA48 - tech_pvt->echo_state = speex_echo_state_init(160, 1024); - ciapa = 8000; -#else// GIOVA48 - tech_pvt->echo_state = speex_echo_state_init(960, 4800); - ciapa = 48000; + tech_pvt->echo_state = speex_echo_state_init(160, 1024); + ciapa = 8000; +#else // GIOVA48 + tech_pvt->echo_state = speex_echo_state_init(960, 4800); + ciapa = 48000; #endif // GIOVA48 - speex_echo_ctl(tech_pvt->echo_state, SPEEX_ECHO_SET_SAMPLING_RATE, &ciapa); + speex_echo_ctl(tech_pvt->echo_state, SPEEX_ECHO_SET_SAMPLING_RATE, &ciapa); -#if 1 //NO MORE - /* Setup preprocessor and associate with echo canceller for residual echo suppression */ +#if 1 //NO MORE + /* Setup preprocessor and associate with echo canceller for residual echo suppression */ #ifndef GIOVA48 - tech_pvt->preprocess = speex_preprocess_state_init(160, 8000); -#else// GIOVA48 - tech_pvt->preprocess = speex_preprocess_state_init(960, 48000); + tech_pvt->preprocess = speex_preprocess_state_init(160, 8000); +#else // GIOVA48 + tech_pvt->preprocess = speex_preprocess_state_init(960, 48000); #endif // GIOVA48 - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_ECHO_STATE, - tech_pvt->echo_state); + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_ECHO_STATE, tech_pvt->echo_state); #if 0 - /* Setup preprocessor various other goodies */ - tmp = 0; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_AGC, &tmp); - //level=8000.1; - //speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_AGC_LEVEL, &level); + /* Setup preprocessor various other goodies */ + tmp = 0; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_AGC, &tmp); + //level=8000.1; + //speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_AGC_LEVEL, &level); - // Let's turn off all of the 'denoisers' (eg denoise and dereverb, and vad too) because they start automatic gain on mic input on cm108 usb, also if it (the agc on usb) disbled through mixer - tmp = 0; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_DENOISE, &tmp); - tmp = 0; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_DEREVERB, &tmp); - tmp = 0; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_VAD, &tmp); + // Let's turn off all of the 'denoisers' (eg denoise and dereverb, and vad too) because they start automatic gain on mic input on cm108 usb, also if it (the agc on usb) disbled through mixer + tmp = 0; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_DENOISE, &tmp); + tmp = 0; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_DEREVERB, &tmp); + tmp = 0; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_VAD, &tmp); #endif - tmp = 0; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_DENOISE, &tmp); - tmp = 1; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_AGC, &tmp); - fprintf(stderr, "AGC is: %d\n", tmp); - level = 1.0; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_AGC_LEVEL, &level); - fprintf(stderr, "AGC_LEVEL is: %f\n", level); - //tmp=1; - //speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_AGC_TARGET, &tmp); - //fprintf( stderr, "AGC_TARGET is: %d\n", tmp ); - tmp = 1; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_DENOISE, &tmp); - fprintf(stderr, "DENOISE is: %d\n", tmp); - tmp = 1; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_DEREVERB, &tmp); - fprintf(stderr, "DEREVERB is: %d\n", tmp); - tmp = 1; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_VAD, &tmp); - fprintf(stderr, "VAD is: %d\n", tmp); + tmp = 0; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_SET_DENOISE, &tmp); + tmp = 1; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_AGC, &tmp); + fprintf(stderr, "AGC is: %d\n", tmp); + level = 1.0; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_AGC_LEVEL, &level); + fprintf(stderr, "AGC_LEVEL is: %f\n", level); + //tmp=1; + //speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_AGC_TARGET, &tmp); + //fprintf( stderr, "AGC_TARGET is: %d\n", tmp ); + tmp = 1; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_DENOISE, &tmp); + fprintf(stderr, "DENOISE is: %d\n", tmp); + tmp = 1; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_DEREVERB, &tmp); + fprintf(stderr, "DEREVERB is: %d\n", tmp); + tmp = 1; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_VAD, &tmp); + fprintf(stderr, "VAD is: %d\n", tmp); #if 0 - tmp = 1; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_NOISE_SUPPRESS, &tmp); - fprintf(stderr, "SPEEX_PREPROCESS_GET_NOISE_SUPPRESS is: %d\n", tmp); - tmp = 1; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_ECHO_SUPPRESS, &tmp); - fprintf(stderr, "SPEEX_PREPROCESS_GET_ECHO_SUPPRESS is: %d\n", tmp); - tmp = 1; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_ECHO_SUPPRESS_ACTIVE, - &tmp); - fprintf(stderr, "SPEEX_PREPROCESS_GET_ECHO_SUPPRESS_ACTIVE is: %d\n", tmp); - tmp = 1; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_AGC_MAX_GAIN, &tmp); - fprintf(stderr, "SPEEX_PREPROCESS_GET_AGC_MAX_GAIN is: %d\n", tmp); - tmp = 1; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_AGC_INCREMENT, &tmp); - fprintf(stderr, "SPEEX_PREPROCESS_GET_AGC_INCREMENT is: %d\n", tmp); - tmp = 1; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_AGC_DECREMENT, &tmp); - fprintf(stderr, "SPEEX_PREPROCESS_GET_AGC_DECREMENT is: %d\n", tmp); - tmp = 1; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_PROB_START, &tmp); - fprintf(stderr, "SPEEX_PREPROCESS_GET_PROB_START is: %d\n", tmp); - tmp = 1; - speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_PROB_CONTINUE, &tmp); - fprintf(stderr, "SPEEX_PREPROCESS_GET_PROB_CONTINUE is: %d\n", tmp); + tmp = 1; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_NOISE_SUPPRESS, &tmp); + fprintf(stderr, "SPEEX_PREPROCESS_GET_NOISE_SUPPRESS is: %d\n", tmp); + tmp = 1; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_ECHO_SUPPRESS, &tmp); + fprintf(stderr, "SPEEX_PREPROCESS_GET_ECHO_SUPPRESS is: %d\n", tmp); + tmp = 1; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_ECHO_SUPPRESS_ACTIVE, &tmp); + fprintf(stderr, "SPEEX_PREPROCESS_GET_ECHO_SUPPRESS_ACTIVE is: %d\n", tmp); + tmp = 1; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_AGC_MAX_GAIN, &tmp); + fprintf(stderr, "SPEEX_PREPROCESS_GET_AGC_MAX_GAIN is: %d\n", tmp); + tmp = 1; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_AGC_INCREMENT, &tmp); + fprintf(stderr, "SPEEX_PREPROCESS_GET_AGC_INCREMENT is: %d\n", tmp); + tmp = 1; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_AGC_DECREMENT, &tmp); + fprintf(stderr, "SPEEX_PREPROCESS_GET_AGC_DECREMENT is: %d\n", tmp); + tmp = 1; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_PROB_START, &tmp); + fprintf(stderr, "SPEEX_PREPROCESS_GET_PROB_START is: %d\n", tmp); + tmp = 1; + speex_preprocess_ctl(tech_pvt->preprocess, SPEEX_PREPROCESS_GET_PROB_CONTINUE, &tmp); + fprintf(stderr, "SPEEX_PREPROCESS_GET_PROB_CONTINUE is: %d\n", tmp); #endif //0 -#endif// 0 //NO MORE +#endif // 0 //NO MORE #endif // WANT_SPEEX - - switch_clear_flag(tech_pvt, TFLAG_HANGUP); DEBUGA_GSMOPEN("gsmopen_codec SUCCESS\n", GSMOPEN_P_LOG); return SWITCH_STATUS_SUCCESS; @@ -434,7 +429,6 @@ static switch_status_t interface_exists(char *the_interface) } } else { /* look by gsmopen_user */ - for (i = 0; i < GSMOPEN_MAX_INTERFACES; i++) { if (strlen(globals.GSMOPEN_INTERFACES[i].gsmopen_user)) { if (strcmp(globals.GSMOPEN_INTERFACES[i].gsmopen_user, the_interface) == 0) { @@ -457,31 +451,30 @@ static switch_status_t remove_interface(char *the_interface) //running = 0; + //XXX if (*the_interface == '#') { /* remove by interface id or interface name */ + //XXX the_interface++; + switch_assert(the_interface); + interface_id = atoi(the_interface); - //XXX if (*the_interface == '#') { /* remove by interface id or interface name */ - //XXX the_interface++; - switch_assert(the_interface); - interface_id = atoi(the_interface); + if (interface_id > 0 || (interface_id == 0 && strcmp(the_interface, "0") == 0)) { + /* take a number as interface id */ + tech_pvt = &globals.GSMOPEN_INTERFACES[interface_id]; + } else { - if (interface_id > 0 || (interface_id == 0 && strcmp(the_interface, "0") == 0)) { - /* take a number as interface id */ - tech_pvt = &globals.GSMOPEN_INTERFACES[interface_id]; - } else { - - for (interface_id = 0; interface_id < GSMOPEN_MAX_INTERFACES; interface_id++) { - if (strcmp(globals.GSMOPEN_INTERFACES[interface_id].name, the_interface) == 0) { - tech_pvt = &globals.GSMOPEN_INTERFACES[interface_id]; - break; - } + for (interface_id = 0; interface_id < GSMOPEN_MAX_INTERFACES; interface_id++) { + if (strcmp(globals.GSMOPEN_INTERFACES[interface_id].name, the_interface) == 0) { + tech_pvt = &globals.GSMOPEN_INTERFACES[interface_id]; + break; } } - //XXX } //else { /* remove by gsmopen_user */ - //for (interface_id = 0; interface_id < GSMOPEN_MAX_INTERFACES; interface_id++) { - //if (strcmp(globals.GSMOPEN_INTERFACES[interface_id].gsmopen_user, the_interface) == 0) { - //tech_pvt = &globals.GSMOPEN_INTERFACES[interface_id]; - //break; - //} - //} + } + //XXX } //else { /* remove by gsmopen_user */ + //for (interface_id = 0; interface_id < GSMOPEN_MAX_INTERFACES; interface_id++) { + //if (strcmp(globals.GSMOPEN_INTERFACES[interface_id].gsmopen_user, the_interface) == 0) { + //tech_pvt = &globals.GSMOPEN_INTERFACES[interface_id]; + //break; + //} + //} //} if (!tech_pvt) { @@ -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); - if (tech_pvt) { DEBUGA_GSMOPEN("%s CHANNEL DESTROY %s\n", GSMOPEN_P_LOG, tech_pvt->name, switch_core_session_get_uuid(session)); @@ -620,14 +612,13 @@ static switch_status_t channel_on_destroy(switch_core_session_t *session) switch_core_timer_destroy(&tech_pvt->timer_write); #ifdef GSMOPEN_ALSA - if(tech_pvt->no_sound==0){ - alsa_shutdown(tech_pvt); - } -#endif// GSMOPEN_ALSA - if(tech_pvt->no_sound==0){ - serial_audio_shutdown(tech_pvt); - } - + if (tech_pvt->no_sound == 0) { + alsa_shutdown(tech_pvt); + } +#endif // GSMOPEN_ALSA + if (tech_pvt->no_sound == 0) { + serial_audio_shutdown(tech_pvt); + } *tech_pvt->session_uuid_str = '\0'; tech_pvt->interface_state = GSMOPEN_STATE_IDLE; @@ -647,7 +638,6 @@ static switch_status_t channel_on_hangup(switch_core_session_t *session) switch_channel_t *channel = NULL; private_t *tech_pvt = NULL; - channel = switch_core_session_get_channel(session); 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); switch_clear_flag(tech_pvt, TFLAG_IO); 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; } + static switch_status_t channel_on_consume_media(switch_core_session_t *session) { 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; } - static switch_status_t channel_on_exchange_media(switch_core_session_t *session) { private_t *tech_pvt = NULL; @@ -802,7 +791,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch switch_channel_t *channel = NULL; private_t *tech_pvt = NULL; switch_byte_t *data; -#if defined(GSMOPEN_ALSA) +#if defined(GSMOPEN_ALSA) int samples; char digit_str[256]; #endif // defined(GSMOPEN_ALSA) @@ -812,7 +801,6 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch char digit_str[256]; char buffer2[640]; - channel = switch_core_session_get_channel(session); 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; } - tech_pvt->read_frame.flags = SFF_NONE; *frame = NULL; @@ -835,67 +822,62 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch switch_core_timer_next(&tech_pvt->timer_read); - if(tech_pvt->no_sound==1){ + if (tech_pvt->no_sound == 1) { goto cng; - } + } #ifdef GSMOPEN_ALSA //if ((samples = snd_pcm_readi(tech_pvt->alsac, tech_pvt->read_frame.data, tech_pvt->read_codec.implementation->samples_per_packet)) > 0) - if ((samples = alsa_read(tech_pvt, (short *) tech_pvt->read_frame.data, tech_pvt->read_codec.implementation->samples_per_packet)) > 0) -#endif// GSMOPEN_ALSA -// if ((samples = tech_pvt->serialPort_serial_audio->Read((char *) tech_pvt->read_frame.data, 320)) >0) + if ((samples = alsa_read(tech_pvt, (short *) tech_pvt->read_frame.data, tech_pvt->read_codec.implementation->samples_per_packet)) > 0) +#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(buffer2, 640)) >= 320) - { + if ((samples = tech_pvt->serialPort_serial_audio->Read(buffer2, 640)) >= 320) { tech_pvt->buffer2_full = 0; - - - if(samples >= 640){ - DEBUGA_GSMOPEN("samples=%d\n", GSMOPEN_P_LOG, samples); - memcpy(tech_pvt->buffer2, buffer2+320, 320); + if (samples >= 640) { + DEBUGA_GSMOPEN("samples=%d\n", GSMOPEN_P_LOG, samples); + memcpy(tech_pvt->buffer2, buffer2 + 320, 320); tech_pvt->buffer2_full = 1; - } - samples=320; + } + samples = 320; - - memcpy(tech_pvt->read_frame.data, buffer2, 320); - tech_pvt->read_frame.datalen = samples; - tech_pvt->read_frame.samples = samples/2; + memcpy(tech_pvt->read_frame.data, buffer2, 320); + tech_pvt->read_frame.datalen = samples; + tech_pvt->read_frame.samples = samples / 2; - tech_pvt->read_frame.timestamp = tech_pvt->timer_read.samplecount; + tech_pvt->read_frame.timestamp = tech_pvt->timer_read.samplecount; - *frame = &tech_pvt->read_frame; + *frame = &tech_pvt->read_frame; - //if ((samples2 = tech_pvt->serialPort_serial_audio->Read((char *) tech_pvt->read_frame.data, 320)) >0){ - // WARNINGA("samples2=%d\n", GSMOPEN_P_LOG, samples2); - //} - //status = SWITCH_STATUS_SUCCESS; - switch_set_flag(tech_pvt, TFLAG_VOICE); - }else{ - DEBUGA_GSMOPEN("MINGA samples=%d\n", GSMOPEN_P_LOG, samples); - if(tech_pvt->buffer2_full){ + //if ((samples2 = tech_pvt->serialPort_serial_audio->Read((char *) tech_pvt->read_frame.data, 320)) >0){ + // WARNINGA("samples2=%d\n", GSMOPEN_P_LOG, samples2); + //} + //status = SWITCH_STATUS_SUCCESS; + switch_set_flag(tech_pvt, TFLAG_VOICE); + } else { + DEBUGA_GSMOPEN("MINGA samples=%d\n", GSMOPEN_P_LOG, samples); + if (tech_pvt->buffer2_full) { memcpy(tech_pvt->read_frame.data, tech_pvt->buffer2, 320); tech_pvt->buffer2_full = 0; - samples=320; + samples = 320; DEBUGA_GSMOPEN("samples=%d FROM BUFFER\n", GSMOPEN_P_LOG, samples); - - tech_pvt->read_frame.datalen = samples; - tech_pvt->read_frame.samples = samples/2; - tech_pvt->read_frame.timestamp = tech_pvt->timer_read.samplecount; + tech_pvt->read_frame.datalen = samples; + tech_pvt->read_frame.samples = samples / 2; - *frame = &tech_pvt->read_frame; + tech_pvt->read_frame.timestamp = tech_pvt->timer_read.samplecount; + + *frame = &tech_pvt->read_frame; + + //if ((samples2 = tech_pvt->serialPort_serial_audio->Read((char *) tech_pvt->read_frame.data, 320)) >0){ + // WARNINGA("samples2=%d\n", GSMOPEN_P_LOG, samples2); + //} + //status = SWITCH_STATUS_SUCCESS; + switch_set_flag(tech_pvt, TFLAG_VOICE); + } - //if ((samples2 = tech_pvt->serialPort_serial_audio->Read((char *) tech_pvt->read_frame.data, 320)) >0){ - // WARNINGA("samples2=%d\n", GSMOPEN_P_LOG, samples2); - //} - //status = SWITCH_STATUS_SUCCESS; - 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) { DEBUGA_GSMOPEN("samples=%d\n", GSMOPEN_P_LOG, samples); goto cng; @@ -905,15 +887,13 @@ if ((samples = tech_pvt->serialPort_serial_audio->Read(buffer2, 640)) >= 320) //usleep(17000); //usleep(17000); - - 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_get(&tech_pvt->dtmf_detect, digit_str, sizeof(digit_str)); - dtmf_rx(&tech_pvt->dtmf_state, (int16_t *) tech_pvt->read_frame.data, tech_pvt->read_frame.samples); - dtmf_rx_get(&tech_pvt->dtmf_state, digit_str, sizeof(digit_str)); + dtmf_rx(&tech_pvt->dtmf_state, (int16_t *) tech_pvt->read_frame.data, tech_pvt->read_frame.samples); + dtmf_rx_get(&tech_pvt->dtmf_state, digit_str, sizeof(digit_str)); - gsmopen_sound_boost(tech_pvt->read_frame.data, tech_pvt->read_frame.samples, tech_pvt->capture_boost); + gsmopen_sound_boost(tech_pvt->read_frame.data, tech_pvt->read_frame.samples, tech_pvt->capture_boost); if (digit_str[0]) { switch_time_t new_dtmf_timestamp = switch_time_now(); @@ -922,7 +902,7 @@ if ((samples = tech_pvt->serialPort_serial_audio->Read(buffer2, 640)) >= 320) switch_channel_t *channel = switch_core_session_get_channel(session); while (p && *p) { - switch_dtmf_t dtmf = {0}; + switch_dtmf_t dtmf = { 0 }; dtmf.digit = *p; dtmf.duration = SWITCH_DEFAULT_DTMF_DURATION; switch_channel_queue_dtmf(channel, &dtmf); @@ -954,7 +934,7 @@ if ((samples = tech_pvt->serialPort_serial_audio->Read(buffer2, 640)) >= 320) *frame = &tech_pvt->read_frame; #ifdef BIGENDIAN if (switch_test_flag(tech_pvt, TFLAG_LINEAR)) { - switch_swap_linear((int16_t *)(*frame)->data, (int) (*frame)->datalen / 2); + switch_swap_linear((int16_t *) (*frame)->data, (int) (*frame)->datalen / 2); } #endif //WARNINGA("HERE\n", GSMOPEN_P_LOG); @@ -1004,7 +984,7 @@ static switch_status_t channel_write_frame(switch_core_session_t *session, switc #ifdef BIGENDIAN if (switch_test_flag(tech_pvt, TFLAG_LINEAR)) { #ifdef WIN32 - switch_swap_linear((int16_t *)frame->data, (int) frame->datalen / 2); + switch_swap_linear((int16_t *) frame->data, (int) frame->datalen / 2); #else switch_swap_linear(frame->data, (int) frame->datalen / 2); #endif //WIN32 @@ -1019,7 +999,7 @@ static switch_status_t channel_write_frame(switch_core_session_t *session, switc gsmopen_sound_boost(frame->data, frame->samples, tech_pvt->playback_boost); #ifdef GSMOPEN_ALSA - + switch_core_timer_next(&tech_pvt->timer_write); sent = alsa_write(tech_pvt, (short *) frame->data, (int) (frame->datalen)); //DEBUGA_GSMOPEN("sent=%d \n", GSMOPEN_P_LOG, sent); @@ -1027,14 +1007,12 @@ static switch_status_t channel_write_frame(switch_core_session_t *session, switc if (sent && sent != frame->datalen / 2 && sent != -1) { DEBUGA_GSMOPEN("sent %d\n", GSMOPEN_P_LOG, sent); } -#endif// GSMOPEN_ALSA +#endif // GSMOPEN_ALSA sent = tech_pvt->serialPort_serial_audio->Write((char *) frame->data, (int) (frame->datalen)); if (sent && sent != frame->datalen && sent != -1) { DEBUGA_GSMOPEN("sent %d\n", GSMOPEN_P_LOG, sent); } - - //NOTICA("sent=%d\n", GSMOPEN_P_LOG, sent); 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); 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); return SWITCH_STATUS_SUCCESS; @@ -1089,7 +1052,7 @@ static switch_status_t channel_receive_message(switch_core_session_t *session, s { switch_channel_t *channel; private_t *tech_pvt; -#if defined(GSMOPEN_ALSA) +#if defined(GSMOPEN_ALSA) int samples; short tmp_buffer[1280]; #endif // defined(GSMOPEN_ALSA) @@ -1117,10 +1080,9 @@ static switch_status_t channel_receive_message(switch_core_session_t *session, s while ((samples = alsa_read(tech_pvt, tmp_buffer, tech_pvt->read_codec.implementation->samples_per_packet * 4)) > 160) { //WARNINGA("read %d samples\n", GSMOPEN_P_LOG, samples); } -#endif// GSMOPEN_ALSA +#endif // GSMOPEN_ALSA break; - default: { 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)); switch_core_session_add_stream(*new_session, NULL); - if (!zstr(outbound_profile->destination_number)) { int i; 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; } - if (outbound_profile) { char name[128]; @@ -1370,7 +1330,6 @@ static switch_status_t load_config(int reload_type) char *fail_dial_regex = NULL; const char *enable_callerid = "true"; - const char *at_dial_pre_number = "ATD"; const char *at_dial_post_number = ";"; const char *at_dial_expect = "OK"; @@ -1436,7 +1395,7 @@ static switch_status_t load_config(int reload_type) const char *playback_boost = "0"; #if defined(GSMOPEN_ALSA) const char *no_sound = "0"; -#else +#else const char *no_sound = "0"; #endif // defined(GSMOPEN_ALSA) const char *portaudiocindex = "1"; @@ -1455,8 +1414,6 @@ static switch_status_t load_config(int reload_type) uint32_t running = 1; //FIXME TODO const char *gsmopen_serial_sync_period = "300"; //FIXME TODO - - tech_pvt = NULL; 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; } - } /* BEGIN: Changes here */ @@ -1712,11 +1668,11 @@ static switch_status_t load_config(int reload_type) continue; } 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; } - if (interface_id && interface_id < GSMOPEN_MAX_INTERFACES) { private_t newconf; 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)); globals.GSMOPEN_INTERFACES[interface_id] = newconf; - 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_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].name, name); switch_set_string(globals.GSMOPEN_INTERFACES[interface_id].context, context); @@ -1795,7 +1749,7 @@ static switch_status_t load_config(int reload_type) #ifdef GSMOPEN_ALSA switch_set_string(globals.GSMOPEN_INTERFACES[interface_id].alsacname, alsacname); switch_set_string(globals.GSMOPEN_INTERFACES[interface_id].alsapname, alsapname); -#endif// GSMOPEN_ALSA +#endif // GSMOPEN_ALSA globals.GSMOPEN_INTERFACES[interface_id].at_early_audio = atoi(at_early_audio); globals.GSMOPEN_INTERFACES[interface_id].at_after_preinit_pause = atoi(at_after_preinit_pause); @@ -1808,24 +1762,20 @@ static switch_status_t load_config(int reload_type) globals.GSMOPEN_INTERFACES[interface_id].gsmopen_sound_rate = atoi(gsmopen_sound_rate); globals.GSMOPEN_INTERFACES[interface_id].alsa_play_is_mono = atoi(alsa_play_is_mono); globals.GSMOPEN_INTERFACES[interface_id].alsa_capture_is_mono = atoi(alsa_capture_is_mono); -#endif// GSMOPEN_ALSA +#endif // GSMOPEN_ALSA globals.GSMOPEN_INTERFACES[interface_id].capture_boost = atoi(capture_boost); globals.GSMOPEN_INTERFACES[interface_id].playback_boost = atoi(playback_boost); #if defined(GSMOPEN_ALSA) globals.GSMOPEN_INTERFACES[interface_id].no_sound = atoi(no_sound); -#else +#else globals.GSMOPEN_INTERFACES[interface_id].no_sound = 0; #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].controldevprotocol = controldevprotocol; //FIXME globals.GSMOPEN_INTERFACES[interface_id].running = running; //FIXME - - 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("name=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].name); @@ -1838,13 +1788,10 @@ static switch_status_t load_config(int reload_type) #ifdef GSMOPEN_ALSA DEBUGA_GSMOPEN("alsacname=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].alsacname); DEBUGA_GSMOPEN("alsapname=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].alsapname); -#endif// GSMOPEN_ALSA - - - DEBUGA_GSMOPEN("gsmopen_serial_sync_period=%d\n", GSMOPEN_P_LOG, (int)globals.GSMOPEN_INTERFACES[interface_id].gsmopen_serial_sync_period); - - +#endif // GSMOPEN_ALSA + DEBUGA_GSMOPEN("gsmopen_serial_sync_period=%d\n", GSMOPEN_P_LOG, + (int) globals.GSMOPEN_INTERFACES[interface_id].gsmopen_serial_sync_period); /* init the serial port */ if (globals.GSMOPEN_INTERFACES[interface_id].controldevprotocol != PROTOCOL_NO_SERIAL) { @@ -1854,10 +1801,10 @@ static switch_status_t load_config(int reload_type) ERRORA("gsmopen_serial_init failed\n", GSMOPEN_P_LOG); ERRORA("STARTING interface_id=%d FAILED\n", GSMOPEN_P_LOG, interface_id); //return SWITCH_STATUS_FALSE; - globals.GSMOPEN_INTERFACES[interface_id].running=0; + globals.GSMOPEN_INTERFACES[interface_id].running = 0; alarm_event(&globals.GSMOPEN_INTERFACES[interface_id], ALARM_FAILED_INTERFACE, "gsmopen_serial_init failed"); - globals.GSMOPEN_INTERFACES[interface_id].active=0; - globals.GSMOPEN_INTERFACES[interface_id].name[0]='\0'; + globals.GSMOPEN_INTERFACES[interface_id].active = 0; + globals.GSMOPEN_INTERFACES[interface_id].name[0] = '\0'; continue; } } @@ -1868,8 +1815,8 @@ static switch_status_t load_config(int reload_type) if (res) { int count = 0; ERRORA("gsmopen_serial_config failed, let's try again\n", GSMOPEN_P_LOG); - while(res && count < 5){ - switch_sleep(100000); //0.1 seconds + while (res && count < 5) { + switch_sleep(100000); //0.1 seconds res = gsmopen_serial_config(&globals.GSMOPEN_INTERFACES[interface_id]); count++; if (res) { @@ -1879,25 +1826,25 @@ static switch_status_t load_config(int reload_type) if (res) { ERRORA("STARTING interface_id=%d FAILED\n", GSMOPEN_P_LOG, interface_id); //return SWITCH_STATUS_FALSE; - globals.GSMOPEN_INTERFACES[interface_id].running=0; + globals.GSMOPEN_INTERFACES[interface_id].running = 0; alarm_event(&globals.GSMOPEN_INTERFACES[interface_id], ALARM_FAILED_INTERFACE, "gsmopen_serial_config failed"); - globals.GSMOPEN_INTERFACES[interface_id].active=0; - globals.GSMOPEN_INTERFACES[interface_id].name[0]='\0'; + globals.GSMOPEN_INTERFACES[interface_id].active = 0; + globals.GSMOPEN_INTERFACES[interface_id].name[0] = '\0'; continue; } } } - if(globals.GSMOPEN_INTERFACES[interface_id].no_sound==0){ + if (globals.GSMOPEN_INTERFACES[interface_id].no_sound == 0) { #ifdef GSMOPEN_ALSA if (alsa_init(&globals.GSMOPEN_INTERFACES[interface_id])) { ERRORA("alsa_init failed\n", GSMOPEN_P_LOG); ERRORA("STARTING interface_id=%d FAILED\n", GSMOPEN_P_LOG, interface_id); //return SWITCH_STATUS_FALSE; - globals.GSMOPEN_INTERFACES[interface_id].running=0; + globals.GSMOPEN_INTERFACES[interface_id].running = 0; alarm_event(&globals.GSMOPEN_INTERFACES[interface_id], ALARM_FAILED_INTERFACE, "alsa_init failed"); - globals.GSMOPEN_INTERFACES[interface_id].active=0; - globals.GSMOPEN_INTERFACES[interface_id].name[0]='\0'; + globals.GSMOPEN_INTERFACES[interface_id].active = 0; + globals.GSMOPEN_INTERFACES[interface_id].name[0] = '\0'; continue; } @@ -1906,22 +1853,22 @@ static switch_status_t load_config(int reload_type) ERRORA("alsa_shutdown failed\n", GSMOPEN_P_LOG); ERRORA("STARTING interface_id=%d FAILED\n", GSMOPEN_P_LOG, interface_id); //return SWITCH_STATUS_FALSE; - globals.GSMOPEN_INTERFACES[interface_id].running=0; + globals.GSMOPEN_INTERFACES[interface_id].running = 0; alarm_event(&globals.GSMOPEN_INTERFACES[interface_id], ALARM_FAILED_INTERFACE, "alsa_shutdown failed"); - globals.GSMOPEN_INTERFACES[interface_id].active=0; - globals.GSMOPEN_INTERFACES[interface_id].name[0]='\0'; + globals.GSMOPEN_INTERFACES[interface_id].active = 0; + globals.GSMOPEN_INTERFACES[interface_id].name[0] = '\0'; continue; } -#endif// GSMOPEN_ALSA +#endif // GSMOPEN_ALSA if (serial_audio_init(&globals.GSMOPEN_INTERFACES[interface_id])) { ERRORA("serial_audio_init failed\n", GSMOPEN_P_LOG); ERRORA("STARTING interface_id=%d FAILED\n", GSMOPEN_P_LOG, interface_id); //return SWITCH_STATUS_FALSE; - globals.GSMOPEN_INTERFACES[interface_id].running=0; + globals.GSMOPEN_INTERFACES[interface_id].running = 0; alarm_event(&globals.GSMOPEN_INTERFACES[interface_id], ALARM_FAILED_INTERFACE, "serial_audio_init failed"); - globals.GSMOPEN_INTERFACES[interface_id].active=0; - globals.GSMOPEN_INTERFACES[interface_id].name[0]='\0'; + globals.GSMOPEN_INTERFACES[interface_id].active = 0; + globals.GSMOPEN_INTERFACES[interface_id].name[0] = '\0'; continue; } @@ -1930,20 +1877,17 @@ static switch_status_t load_config(int reload_type) ERRORA("serial_audio_shutdown failed\n", GSMOPEN_P_LOG); ERRORA("STARTING interface_id=%d FAILED\n", GSMOPEN_P_LOG, interface_id); //return SWITCH_STATUS_FALSE; - globals.GSMOPEN_INTERFACES[interface_id].running=0; + globals.GSMOPEN_INTERFACES[interface_id].running = 0; alarm_event(&globals.GSMOPEN_INTERFACES[interface_id], ALARM_FAILED_INTERFACE, "serial_audio_shutdown failed"); - globals.GSMOPEN_INTERFACES[interface_id].active=0; - globals.GSMOPEN_INTERFACES[interface_id].name[0]='\0'; + globals.GSMOPEN_INTERFACES[interface_id].active = 0; + globals.GSMOPEN_INTERFACES[interface_id].name[0] = '\0'; continue; } - - - } - globals.GSMOPEN_INTERFACES[interface_id].active=1; + globals.GSMOPEN_INTERFACES[interface_id].active = 1; //gsmopen_store_boost((char *)"5", &globals.GSMOPEN_INTERFACES[interface_id].capture_boost); //FIXME //gsmopen_store_boost((char *)"10", &globals.GSMOPEN_INTERFACES[interface_id].playback_boost); //FIXME @@ -1984,8 +1928,8 @@ static switch_status_t load_config(int reload_type) #ifdef GSMOPEN_ALSA DEBUGA_GSMOPEN("alsacname=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[i].alsacname); DEBUGA_GSMOPEN("alsapname=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[i].alsapname); -#endif// GSMOPEN_ALSA - DEBUGA_GSMOPEN("gsmopen_serial_sync_period=%d\n", GSMOPEN_P_LOG, (int)globals.GSMOPEN_INTERFACES[i].gsmopen_serial_sync_period); +#endif // GSMOPEN_ALSA + DEBUGA_GSMOPEN("gsmopen_serial_sync_period=%d\n", GSMOPEN_P_LOG, (int) globals.GSMOPEN_INTERFACES[i].gsmopen_serial_sync_period); DEBUGA_GSMOPEN("controldevice_audio_name=%s\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[i].controldevice_audio_name); } } @@ -2004,12 +1948,12 @@ static switch_status_t chat_send(switch_event_t *message_event) private_t *tech_pvt = NULL; int i = 0, found = 0; - const char *proto; - const char *from; - const char *to; - const char *subject; - const char *body; - //const char *type; + const char *proto; + const char *from; + const char *to; + const char *subject; + const char *body; + //const char *type; const char *hint; proto = switch_event_get_header(message_event, "proto"); @@ -2022,7 +1966,7 @@ static switch_status_t chat_send(switch_event_t *message_event) switch_assert(proto != NULL); - DEBUGA_GSMOPEN("chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, hint=%s)\n", GSMOPEN_P_LOG, proto, from, to, subject, body, + DEBUGA_GSMOPEN("chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, hint=%s)\n", GSMOPEN_P_LOG, proto, from, to, subject, body, hint ? hint : "NULL"); if (!to || !strlen(to)) { @@ -2044,7 +1988,7 @@ static switch_status_t chat_send(switch_event_t *message_event) } } - if (hint==NULL || !strlen(hint)) { //FIXME FIXME FIXME + if (hint == NULL || !strlen(hint)) { //FIXME FIXME FIXME hint = from; } if (to && (user = strdup(to))) { @@ -2094,30 +2038,30 @@ static switch_status_t chat_send(switch_event_t *message_event) } static switch_status_t compat_chat_send(const char *proto, const char *from, const char *to, - const char *subject, const char *body, const char *type, const char *hint) + const char *subject, const char *body, const char *type, const char *hint) { - switch_event_t *message_event; - switch_status_t status; + switch_event_t *message_event; + switch_status_t status; - if (switch_event_create(&message_event, SWITCH_EVENT_MESSAGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "proto", proto); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "from", from); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "to", to); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "subject", subject); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "type", type); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "hint", hint); + if (switch_event_create(&message_event, SWITCH_EVENT_MESSAGE) == SWITCH_STATUS_SUCCESS) { + switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "proto", proto); + switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "from", from); + switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "to", to); + switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "subject", subject); + switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "type", type); + switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "hint", hint); - if (body) { - switch_event_add_body(message_event, "%s", body); - } - } else { - abort(); - } + if (body) { + switch_event_add_body(message_event, "%s", body); + } + } else { + abort(); + } - status = chat_send(message_event); - switch_event_destroy(&message_event); + status = chat_send(message_event); + switch_event_destroy(&message_event); - return status; + return status; } @@ -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, "gsmopen", "gsmopen interface AT_command", gsmopen_function, GSMOPEN_SYNTAX); #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_sendsms", "gsmopen_sendsms interface destination_number SMS_text", sendsms_function, SENDSMS_SYNTAX); @@ -2242,13 +2187,12 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_gsmopen_shutdown) 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); } -int dtmf_received(private_t * tech_pvt, char *value) +int dtmf_received(private_t *tech_pvt, char *value) { switch_core_session_t *session = NULL; switch_channel_t *channel = NULL; @@ -2279,7 +2223,7 @@ int dtmf_received(private_t * tech_pvt, char *value) return 0; } -int new_inbound_channel(private_t * tech_pvt) +int new_inbound_channel(private_t *tech_pvt) { switch_core_session_t *session = NULL; switch_channel_t *channel = NULL; @@ -2327,7 +2271,7 @@ int new_inbound_channel(private_t * tech_pvt) return 0; } -int remote_party_is_ringing(private_t * tech_pvt) +int remote_party_is_ringing(private_t *tech_pvt) { switch_core_session_t *session = NULL; switch_channel_t *channel = NULL; @@ -2357,7 +2301,7 @@ int remote_party_is_ringing(private_t * tech_pvt) return 0; } -int remote_party_is_early_media(private_t * tech_pvt) +int remote_party_is_early_media(private_t *tech_pvt) { switch_core_session_t *session = NULL; switch_channel_t *channel = NULL; @@ -2391,7 +2335,7 @@ int remote_party_is_early_media(private_t * tech_pvt) return 0; } -int outbound_channel_answered(private_t * tech_pvt) +int outbound_channel_answered(private_t *tech_pvt) { switch_core_session_t *session = NULL; switch_channel_t *channel = NULL; @@ -2425,7 +2369,7 @@ int outbound_channel_answered(private_t * tech_pvt) return 0; } -private_t *find_available_gsmopen_interface_rr(private_t * tech_pvt_calling) +private_t *find_available_gsmopen_interface_rr(private_t *tech_pvt_calling) { private_t *tech_pvt = NULL; int i; @@ -2659,7 +2603,7 @@ SWITCH_STANDARD_API(gsmopen_dump_function) for (i = 0; !found && i < GSMOPEN_MAX_INTERFACES; i++) { /* we've been asked for a normal interface name, or we have not found idle interfaces to serve as the "ANY" interface */ if (strlen(globals.GSMOPEN_INTERFACES[i].name) - && (strncmp(globals.GSMOPEN_INTERFACES[i].name, argv[0], strlen(argv[0])) == 0)) { + && (strncmp(globals.GSMOPEN_INTERFACES[i].name, argv[0], strlen(argv[0])) == 0)) { tech_pvt = &globals.GSMOPEN_INTERFACES[i]; //stream->write_function(stream, "Using interface: globals.GSMOPEN_INTERFACES[%d].name=|||%s|||\n", i, globals.GSMOPEN_INTERFACES[i].name); found = 1; @@ -2675,56 +2619,55 @@ SWITCH_STANDARD_API(gsmopen_dump_function) stream->write_function(stream, "dumping interface '%s'\n\n", globals.GSMOPEN_INTERFACES[i].name); tech_pvt = &globals.GSMOPEN_INTERFACES[i]; - stream->write_function(stream, "interface_name = %s\n", tech_pvt->name); 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); stream->write_function(stream, "active = %s\n", value); - if(!tech_pvt->network_creg_not_supported){ - snprintf(value, sizeof(value)-1, "%d", tech_pvt->not_registered); + if (!tech_pvt->network_creg_not_supported) { + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->not_registered); stream->write_function(stream, "not_registered = %s\n", value); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->home_network_registered); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->home_network_registered); stream->write_function(stream, "home_network_registered = %s\n", value); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->roaming_registered); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->roaming_registered); stream->write_function(stream, "roaming_registered = %s\n", value); - }else{ + } else { stream->write_function(stream, "not_registered = %s\n", "N/A"); stream->write_function(stream, "home_network_registered = %s\n", "N/A"); stream->write_function(stream, "roaming_registered = %s\n", "N/A"); } - snprintf(value, sizeof(value)-1, "%d", tech_pvt->got_signal); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->got_signal); stream->write_function(stream, "got_signal = %s\n", value); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->running); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->running); stream->write_function(stream, "running = %s\n", value); stream->write_function(stream, "imei = %s\n", tech_pvt->imei); stream->write_function(stream, "imsi = %s\n", tech_pvt->imsi); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->controldev_dead); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->controldev_dead); stream->write_function(stream, "controldev_dead = %s\n", value); stream->write_function(stream, "controldevice_name = %s\n", tech_pvt->controldevice_name); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->no_sound); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->no_sound); stream->write_function(stream, "no_sound = %s\n", value); #ifdef GSMOPEN_ALSA stream->write_function(stream, "alsacname = %s\n", tech_pvt->alsacname); stream->write_function(stream, "alsapname = %s\n", tech_pvt->alsapname); -#endif// GSMOPEN_ALSA - snprintf(value, sizeof(value)-1, "%f", tech_pvt->playback_boost); +#endif // GSMOPEN_ALSA + snprintf(value, sizeof(value) - 1, "%f", tech_pvt->playback_boost); stream->write_function(stream, "playback_boost = %s\n", value); - snprintf(value, sizeof(value)-1, "%f", tech_pvt->capture_boost); + snprintf(value, sizeof(value) - 1, "%f", tech_pvt->capture_boost); stream->write_function(stream, "capture_boost = %s\n", value); stream->write_function(stream, "dialplan = %s\n", tech_pvt->dialplan); stream->write_function(stream, "context = %s\n", tech_pvt->context); stream->write_function(stream, "destination = %s\n", tech_pvt->destination); - snprintf(value, sizeof(value)-1, "%lu", tech_pvt->ib_calls); + snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ib_calls); stream->write_function(stream, "ib_calls = %s\n", value); - snprintf(value, sizeof(value)-1, "%lu", tech_pvt->ob_calls); + snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ob_calls); stream->write_function(stream, "ob_calls = %s\n", value); - snprintf(value, sizeof(value)-1, "%lu", tech_pvt->ib_failed_calls); + snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ib_failed_calls); stream->write_function(stream, "ib_failed_calls = %s\n", value); - snprintf(value, sizeof(value)-1, "%lu", tech_pvt->ob_failed_calls); + snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ob_failed_calls); stream->write_function(stream, "ob_failed_calls = %s\n", value); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->interface_state); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->interface_state); stream->write_function(stream, "interface_state = %s\n", value); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->phone_callflow); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->phone_callflow); stream->write_function(stream, "phone_callflow = %s\n", value); stream->write_function(stream, "session_uuid_str = %s\n", tech_pvt->session_uuid_str); stream->write_function(stream, "\n"); @@ -2734,76 +2677,76 @@ SWITCH_STANDARD_API(gsmopen_dump_function) } - } else if(found){ + } else if (found) { stream->write_function(stream, "dumping interface '%s'\n\n", argv[0]); tech_pvt = &globals.GSMOPEN_INTERFACES[i]; - stream->write_function(stream, "interface_name = %s\n", tech_pvt->name); 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); stream->write_function(stream, "active = %s\n", value); - if(!tech_pvt->network_creg_not_supported){ - snprintf(value, sizeof(value)-1, "%d", tech_pvt->not_registered); + if (!tech_pvt->network_creg_not_supported) { + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->not_registered); stream->write_function(stream, "not_registered = %s\n", value); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->home_network_registered); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->home_network_registered); stream->write_function(stream, "home_network_registered = %s\n", value); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->roaming_registered); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->roaming_registered); stream->write_function(stream, "roaming_registered = %s\n", value); - }else{ + } else { stream->write_function(stream, "not_registered = %s\n", "N/A"); stream->write_function(stream, "home_network_registered = %s\n", "N/A"); stream->write_function(stream, "roaming_registered = %s\n", "N/A"); } - snprintf(value, sizeof(value)-1, "%d", tech_pvt->got_signal); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->got_signal); stream->write_function(stream, "got_signal = %s\n", value); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->running); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->running); stream->write_function(stream, "running = %s\n", value); stream->write_function(stream, "imei = %s\n", tech_pvt->imei); stream->write_function(stream, "imsi = %s\n", tech_pvt->imsi); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->controldev_dead); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->controldev_dead); stream->write_function(stream, "controldev_dead = %s\n", value); stream->write_function(stream, "controldevice_name = %s\n", tech_pvt->controldevice_name); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->no_sound); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->no_sound); stream->write_function(stream, "no_sound = %s\n", value); #ifdef GSMOPEN_ALSA stream->write_function(stream, "alsacname = %s\n", tech_pvt->alsacname); stream->write_function(stream, "alsapname = %s\n", tech_pvt->alsapname); -#endif// GSMOPEN_ALSA - snprintf(value, sizeof(value)-1, "%f", tech_pvt->playback_boost); +#endif // GSMOPEN_ALSA + snprintf(value, sizeof(value) - 1, "%f", tech_pvt->playback_boost); stream->write_function(stream, "playback_boost = %s\n", value); - snprintf(value, sizeof(value)-1, "%f", tech_pvt->capture_boost); + snprintf(value, sizeof(value) - 1, "%f", tech_pvt->capture_boost); stream->write_function(stream, "capture_boost = %s\n", value); stream->write_function(stream, "dialplan = %s\n", tech_pvt->dialplan); stream->write_function(stream, "context = %s\n", tech_pvt->context); stream->write_function(stream, "destination = %s\n", tech_pvt->destination); - snprintf(value, sizeof(value)-1, "%lu", tech_pvt->ib_calls); + snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ib_calls); stream->write_function(stream, "ib_calls = %s\n", value); - snprintf(value, sizeof(value)-1, "%lu", tech_pvt->ob_calls); + snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ob_calls); stream->write_function(stream, "ob_calls = %s\n", value); - snprintf(value, sizeof(value)-1, "%lu", tech_pvt->ib_failed_calls); + snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ib_failed_calls); stream->write_function(stream, "ib_failed_calls = %s\n", value); - snprintf(value, sizeof(value)-1, "%lu", tech_pvt->ob_failed_calls); + snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ob_failed_calls); stream->write_function(stream, "ob_failed_calls = %s\n", value); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->interface_state); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->interface_state); stream->write_function(stream, "interface_state = %s\n", value); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->phone_callflow); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->phone_callflow); stream->write_function(stream, "phone_callflow = %s\n", value); stream->write_function(stream, "session_uuid_str = %s\n", tech_pvt->session_uuid_str); stream->write_function(stream, "\n"); dump_event(tech_pvt); - } else{ + } else { stream->write_function(stream, "interface '%s' was not found\n", argv[0]); } } else { stream->write_function(stream, "ERROR, usage: %s", GSMOPEN_DUMP_SYNTAX); } -end: + end: switch_safe_free(mycmd); return SWITCH_STATUS_SUCCESS; } + SWITCH_STANDARD_API(gsmopen_boost_audio_function) { char *mycmd = NULL, *argv[10] = { 0 }; @@ -2814,14 +2757,14 @@ SWITCH_STANDARD_API(gsmopen_boost_audio_function) argc = switch_separate_string(mycmd, ' ', argv, (sizeof(argv) / sizeof(argv[0]))); } - if (argc == 1 || argc==3) { + if (argc == 1 || argc == 3) { int i; int found = 0; for (i = 0; !found && i < GSMOPEN_MAX_INTERFACES; i++) { /* we've been asked for a normal interface name, or we have not found idle interfaces to serve as the "ANY" interface */ if (strlen(globals.GSMOPEN_INTERFACES[i].name) - && (strncmp(globals.GSMOPEN_INTERFACES[i].name, argv[0], strlen(argv[0])) == 0)) { + && (strncmp(globals.GSMOPEN_INTERFACES[i].name, argv[0], strlen(argv[0])) == 0)) { tech_pvt = &globals.GSMOPEN_INTERFACES[i]; stream->write_function(stream, "Using interface: globals.GSMOPEN_INTERFACES[%d].name=|||%s|||\n", i, globals.GSMOPEN_INTERFACES[i].name); found = 1; @@ -2834,21 +2777,27 @@ SWITCH_STANDARD_API(gsmopen_boost_audio_function) } else { 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] playback boost is %f\n", globals.GSMOPEN_INTERFACES[i].name, globals.GSMOPEN_INTERFACES[i].playback_boost); + 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] 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); goto end; } else if ((strncmp("play", argv[1], strlen(argv[1])) == 0)) { 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 - 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])) { - 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 - 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 { stream->write_function(stream, "ERROR, usage: %s", GSMOPEN_BOOST_AUDIO_SYNTAX); @@ -2863,9 +2812,8 @@ SWITCH_STANDARD_API(gsmopen_boost_audio_function) return SWITCH_STATUS_SUCCESS; } - #if 0 -int gsmopen_transfer(private_t * tech_pvt, char *id, char *value) +int gsmopen_transfer(private_t *tech_pvt, char *id, char *value) { char msg_to_gsmopen[1024]; int i; @@ -2993,68 +2941,63 @@ void *gsmopen_do_gsmopenapi_thread_func(void *obj) time_t now_timestamp; //if (gsmopen_present(GSMopenHandles)) - while (running && tech_pvt->running) { - int res; - //gsmopen_sleep(1000000); //1 sec - //DEBUGA_GSMOPEN("ciao!\n", GSMOPEN_P_LOG); - res = gsmopen_serial_read(tech_pvt); - if (res == -1) { //manage the graceful interface shutdown - tech_pvt->controldev_dead = 1; - close(tech_pvt->controldevfd); - ERRORA("gsmopen_serial_monitor failed, declaring %s dead\n", GSMOPEN_P_LOG, tech_pvt->controldevice_name); - tech_pvt->running=0; - alarm_event(tech_pvt, ALARM_FAILED_INTERFACE, "gsmopen_serial_monitor failed, declaring interface dead"); - tech_pvt->active=0; - tech_pvt->name[0]='\0'; - switch_sleep(1000000); - } else if (tech_pvt->controldevprotocol != PROTOCOL_NO_SERIAL && tech_pvt->interface_state == GSMOPEN_STATE_RING - && tech_pvt->phone_callflow != CALLFLOW_CALL_HANGUP_REQUESTED) { - //WARNINGA("INCOMING RING\n", GSMOPEN_P_LOG); + while (running && tech_pvt->running) { + int res; + //gsmopen_sleep(1000000); //1 sec + //DEBUGA_GSMOPEN("ciao!\n", GSMOPEN_P_LOG); + res = gsmopen_serial_read(tech_pvt); + if (res == -1) { //manage the graceful interface shutdown + tech_pvt->controldev_dead = 1; + close(tech_pvt->controldevfd); + ERRORA("gsmopen_serial_monitor failed, declaring %s dead\n", GSMOPEN_P_LOG, tech_pvt->controldevice_name); + tech_pvt->running = 0; + alarm_event(tech_pvt, ALARM_FAILED_INTERFACE, "gsmopen_serial_monitor failed, declaring interface dead"); + tech_pvt->active = 0; + tech_pvt->name[0] = '\0'; + switch_sleep(1000000); + } else if (tech_pvt->controldevprotocol != PROTOCOL_NO_SERIAL && tech_pvt->interface_state == GSMOPEN_STATE_RING + && tech_pvt->phone_callflow != CALLFLOW_CALL_HANGUP_REQUESTED) { + //WARNINGA("INCOMING RING\n", GSMOPEN_P_LOG); - gsmopen_ring(tech_pvt); + gsmopen_ring(tech_pvt); - //FIXME gsmopen_answer(tech_pvt); - //new_inbound_channel(tech_pvt); - //FIXME if (!gsmopen_new(p, AST_STATE_RING, tech_pvt->context)) { - //FIXME ERRORA("gsmopen_new failed! BAD BAD BAD\n", GSMOPEN_P_LOG); - //FIXME } + //FIXME gsmopen_answer(tech_pvt); + //new_inbound_channel(tech_pvt); + //FIXME if (!gsmopen_new(p, AST_STATE_RING, tech_pvt->context)) { + //FIXME ERRORA("gsmopen_new failed! BAD BAD BAD\n", GSMOPEN_P_LOG); + //FIXME } + } 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); + tech_pvt->interface_state = CALLFLOW_STATUS_EARLYMEDIA; + remote_party_is_early_media(tech_pvt); + //new_inbound_channel(tech_pvt); + //FIXME if (!gsmopen_new(p, AST_STATE_RING, tech_pvt->context)) { + //FIXME ERRORA("gsmopen_new failed! BAD BAD BAD\n", GSMOPEN_P_LOG); + //FIXME } - } 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); - tech_pvt->interface_state = CALLFLOW_STATUS_EARLYMEDIA; - remote_party_is_early_media(tech_pvt); - //new_inbound_channel(tech_pvt); - //FIXME if (!gsmopen_new(p, AST_STATE_RING, tech_pvt->context)) { - //FIXME ERRORA("gsmopen_new failed! BAD BAD BAD\n", GSMOPEN_P_LOG); - //FIXME } - - - - - } else if (tech_pvt->interface_state == CALLFLOW_CALL_REMOTEANSWER) { - WARNINGA("REMOTE PARTY ANSWERED\n", GSMOPEN_P_LOG); - outbound_channel_answered(tech_pvt); - //new_inbound_channel(tech_pvt); - //FIXME if (!gsmopen_new(p, AST_STATE_RING, tech_pvt->context)) { - //FIXME ERRORA("gsmopen_new failed! BAD BAD BAD\n", GSMOPEN_P_LOG); - //FIXME } - } - switch_sleep(100); //give other threads a chance - time(&now_timestamp); - - if ((now_timestamp - tech_pvt->gsmopen_serial_synced_timestamp) > tech_pvt->gsmopen_serial_sync_period) { //TODO find a sensible period. 5min? in config? - gsmopen_serial_sync(tech_pvt); - gsmopen_serial_getstatus_AT(tech_pvt); - } + } else if (tech_pvt->interface_state == CALLFLOW_CALL_REMOTEANSWER) { + WARNINGA("REMOTE PARTY ANSWERED\n", GSMOPEN_P_LOG); + outbound_channel_answered(tech_pvt); + //new_inbound_channel(tech_pvt); + //FIXME if (!gsmopen_new(p, AST_STATE_RING, tech_pvt->context)) { + //FIXME ERRORA("gsmopen_new failed! BAD BAD BAD\n", GSMOPEN_P_LOG); + //FIXME } } + switch_sleep(100); //give other threads a chance + time(&now_timestamp); + + if ((now_timestamp - tech_pvt->gsmopen_serial_synced_timestamp) > tech_pvt->gsmopen_serial_sync_period) { //TODO find a sensible period. 5min? in config? + gsmopen_serial_sync(tech_pvt); + gsmopen_serial_getstatus_AT(tech_pvt); + } + } DEBUGA_GSMOPEN("EXIT\n", GSMOPEN_P_LOG); //running = 0; return NULL; } - SWITCH_STANDARD_API(sendsms_function) { char *mycmd = NULL, *argv[3] = { 0 }; @@ -3111,7 +3054,7 @@ SWITCH_STANDARD_API(sendsms_function) return SWITCH_STATUS_SUCCESS; } -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) { switch_event_t *event; char value[512]; @@ -3120,72 +3063,72 @@ int dump_event_full(private_t * tech_pvt, int is_alarm, int alarm_code, const ch switch_status_t status; session = switch_core_session_locate(tech_pvt->session_uuid_str); - if(session){ + if (session) { channel = switch_core_session_get_channel(session); } - if (is_alarm){ - ERRORA("ALARM on interface %s: \n", GSMOPEN_P_LOG, tech_pvt->name ); + if (is_alarm) { + ERRORA("ALARM on interface %s: \n", GSMOPEN_P_LOG, tech_pvt->name); status = switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_ALARM); - }else{ - DEBUGA_GSMOPEN("DUMP on interface %s: \n", GSMOPEN_P_LOG, tech_pvt->name ); + } else { + DEBUGA_GSMOPEN("DUMP on interface %s: \n", GSMOPEN_P_LOG, tech_pvt->name); status = switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_DUMP); } if (status == SWITCH_STATUS_SUCCESS) { - if (is_alarm){ - snprintf(value, sizeof(value)-1, "%d", alarm_code); + if (is_alarm) { + snprintf(value, sizeof(value) - 1, "%d", alarm_code); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alarm_code", value); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alarm_message", alarm_message); } switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "interface_name", tech_pvt->name); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "interface_id", tech_pvt->id); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->active); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->active); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "active", value); - if(!tech_pvt->network_creg_not_supported){ - snprintf(value, sizeof(value)-1, "%d", tech_pvt->not_registered); + if (!tech_pvt->network_creg_not_supported) { + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->not_registered); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "not_registered", value); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->home_network_registered); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->home_network_registered); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "home_network_registered", value); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->roaming_registered); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->roaming_registered); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "roaming_registered", value); - }else{ + } else { switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "not_registered", "N/A"); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "home_network_registered", "N/A"); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "roaming_registered", "N/A"); } - snprintf(value, sizeof(value)-1, "%d", tech_pvt->got_signal); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->got_signal); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "got_signal", value); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->running); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->running); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "running", value); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "imei", tech_pvt->imei); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "imsi", tech_pvt->imsi); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->controldev_dead); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->controldev_dead); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "controldev_dead", value); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "controldevice_name", tech_pvt->controldevice_name); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->no_sound); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->no_sound); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "no_sound", value); #ifdef GSMOPEN_ALSA switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alsacname", tech_pvt->alsacname); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alsapname", tech_pvt->alsapname); -#endif// GSMOPEN_ALSA - snprintf(value, sizeof(value)-1, "%f", tech_pvt->playback_boost); +#endif // GSMOPEN_ALSA + snprintf(value, sizeof(value) - 1, "%f", tech_pvt->playback_boost); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "playback_boost", value); - snprintf(value, sizeof(value)-1, "%f", tech_pvt->capture_boost); + snprintf(value, sizeof(value) - 1, "%f", tech_pvt->capture_boost); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "capture_boost", value); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "dialplan", tech_pvt->dialplan); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "context", tech_pvt->context); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "destination", tech_pvt->destination); - snprintf(value, sizeof(value)-1, "%lu", tech_pvt->ib_calls); + snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ib_calls); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "ib_calls", value); - snprintf(value, sizeof(value)-1, "%lu", tech_pvt->ob_calls); + snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ob_calls); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "ob_calls", value); - snprintf(value, sizeof(value)-1, "%lu", tech_pvt->ib_failed_calls); + snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ib_failed_calls); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "ib_failed_calls", value); - snprintf(value, sizeof(value)-1, "%lu", tech_pvt->ob_failed_calls); + snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ob_failed_calls); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "ob_failed_calls", value); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->interface_state); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->interface_state); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "interface_state", value); - snprintf(value, sizeof(value)-1, "%d", tech_pvt->phone_callflow); + snprintf(value, sizeof(value) - 1, "%d", tech_pvt->phone_callflow); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "phone_callflow", value); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "session_uuid_str", tech_pvt->session_uuid_str); if (strlen(tech_pvt->session_uuid_str)) { @@ -3207,18 +3150,17 @@ int dump_event_full(private_t * tech_pvt, int is_alarm, int alarm_code, const ch return 0; } -int dump_event(private_t * tech_pvt) +int dump_event(private_t *tech_pvt) { 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); } -int sms_incoming(private_t * tech_pvt) +int sms_incoming(private_t *tech_pvt) { switch_event_t *event; switch_core_session_t *session = NULL; @@ -3295,7 +3237,6 @@ int sms_incoming(private_t * tech_pvt) return 0; } - #ifdef NOTDEF 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(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, - argv[1], "SIMPLE MESSAGE", switch_str_nil((char *) &cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]), tech_pvt->name); + 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, 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", 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 - /* For Emacs: * Local Variables: * mode:c