#include "jthread.h"
#include <stdlib.h>
+#include <stdio.h>
+#include <errno.h>
+#include <string.h>
JThread::JThread()
{
{
if (!runningmutex.IsInitialized())
{
- if (runningmutex.Init() < 0)
+ if (runningmutex.Init() < 0) {
+ printf("STUPID 1\n");
return ERR_JTHREAD_CANTINITMUTEX;
+ }
}
if (!continuemutex.IsInitialized())
{
- if (continuemutex.Init() < 0)
+ if (continuemutex.Init() < 0) {
+ printf("STUPID 2\n");
return ERR_JTHREAD_CANTINITMUTEX;
+ }
}
if (!continuemutex2.IsInitialized())
{
- if (continuemutex2.Init() < 0)
+ if (continuemutex2.Init() < 0) {
+ printf("STUPID 3\n");
return ERR_JTHREAD_CANTINITMUTEX;
+ }
}
mutexinit = true;
}
if (running)
{
runningmutex.Unlock();
+ printf("STUPID 4\n");
return ERR_JTHREAD_ALREADYRUNNING;
}
runningmutex.Unlock();
if (status != 0)
{
continuemutex.Unlock();
+ printf("STUPID 5 %d (%s) (%s)\n", strerror(errno), strerror(status));
return ERR_JTHREAD_CANTSTARTTHREAD;
}
/* read from the channel while we wait if the audio is up on it */
if (switch_channel_test_flag(caller_channel, CF_ANSWERED) || switch_channel_test_flag(caller_channel, CF_EARLY_MEDIA)) {
+
if (switch_core_session_read_frame(session, &read_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) {
break;
}
- if (switch_core_session_write_frame(session, read_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) {
- break;
+ if (read_frame) {
+ memset(read_frame->data, 0, read_frame->datalen);
+ if (switch_core_session_write_frame(session, read_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) {
+ break;
+ }
}
+
} else {
switch_yield(1000);
}