switch_core_timer_next(&tech_pvt->timer_read);
- if (tech_pvt->no_sound == 1) {
+ if (tech_pvt->no_sound) {
goto cng;
}
-// if ((samples = tech_pvt->serialPort_serial_audio->Read((char *) tech_pvt->read_frame.data, 320)) >0)
+ samples = tech_pvt->serialPort_serial_audio->Read(buffer2, 640);
- if ((samples = tech_pvt->serialPort_serial_audio->Read(buffer2, 640)) >= 320) {
+ if (samples >= 320) {
tech_pvt->buffer2_full = 0;
if (samples >= 640) {
tech_pvt->buffer2_full = 1;
}
samples = 320;
-
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;
-
- *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) {
tech_pvt->buffer2_full = 0;
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;
+ 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);
- }
+ switch_set_flag(tech_pvt, TFLAG_VOICE);
- }
- //WARNINGA("samples=%d\n", GSMOPEN_P_LOG, samples);
if (samples != 320) {
DEBUGA_GSMOPEN("samples=%d\n", GSMOPEN_P_LOG, samples);
goto cng;
}
-//DEBUGA_GSMOPEN("samples=%d tech_pvt->read_frame.timestamp=%d\n", GSMOPEN_P_LOG, samples, tech_pvt->read_frame.timestamp);
-
-//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));
#endif
//switch_core_timer_next(&tech_pvt->timer_write);
- //sent = frame->datalen;
-
- //ERRORA("PLAY \n", GSMOPEN_P_LOG);
-
gsmopen_sound_boost(frame->data, frame->samples, tech_pvt->playback_boost);
- sent = tech_pvt->serialPort_serial_audio->Write((char *) frame->data, (int) (frame->datalen));
+ if(!tech_pvt->no_sound){
+ 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);
+ 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;
}