case CC_RELEASE_COMPLETE | INDICATION:
break;
+ case CC_FACILITY | INDICATION:
+ break;
+
default:
PERROR("unhandled message: prim(0x%x) dinfo(0x%x) msg->len(%d)\n", hh->prim, hh->dinfo, msg->len);
port = port_first;
#ifdef SOCKET_MISDN
int mISDN_handler(void)
{
- int ret;
+ int ret, work = 0;
struct mISDNport *mISDNport;
class PmISDN *isdnport;
int i;
ret = recv(mISDNport->b_stack[i], buffer, sizeof(buffer), 0);
if (ret >= MISDN_HEADER_LEN)
{
+ work = 1;
switch(hh->prim)
{
/* we don't care about confirms, we use rx data to sync tx */
/* we receive audio data, we respond to it AND we send tones */
case PH_DATA_IND:
case DL_DATA_IND:
+ case PH_SIGNAL_IND:
case PH_CONTROL_IND:
if (mISDNport->b_port[i])
mISDNport->b_port[i]->bchannel_receive(hh, buffer+MISDN_HEADER_LEN, ret-MISDN_HEADER_LEN);
mISDNport = mISDNport->next;
}
+ /* if we received at least one b-frame, we will return 1 */
+ return(work);
}
#else
int mISDN_handler(void)
/* all loops must be counted from the beginning since nodes might get freed during handler */
all_idle = 1;
-#warning debugging usleep crash
- debug_usleep(1, __FILE__, __LINE__, now_tm->tm_hour, now_tm->tm_min, now_tm->tm_sec);
+//#warning debugging usleep crash
+// debug_usleep(1, __FILE__, __LINE__, now_tm->tm_hour, now_tm->tm_min, now_tm->tm_sec);
/* handle mISDN messages from kernel */
debug_prefix = "ISDN";
if (mISDN_handler())
all_idle = 0;
-#warning debugging usleep crash
- debug_usleep(1, __FILE__, __LINE__, now_tm->tm_hour, now_tm->tm_min, now_tm->tm_sec);
+//#warning debugging usleep crash
+// debug_usleep(1, __FILE__, __LINE__, now_tm->tm_hour, now_tm->tm_min, now_tm->tm_sec);
BUDETECT
all_idle = 0;
}
#endif
-#warning debugging usleep crash
- debug_usleep(1, __FILE__, __LINE__, now_tm->tm_hour, now_tm->tm_min, now_tm->tm_sec);
+//#warning debugging usleep crash
+// debug_usleep(1, __FILE__, __LINE__, now_tm->tm_hour, now_tm->tm_min, now_tm->tm_sec);
/* do idle checking */
if (idlecheck != now)