debug_fp = fopen(filename, "a");
}
if (options.deb & DEBUG_STACK)
{
debug_fp = fopen(filename, "a");
}
if (options.deb & DEBUG_STACK)
{
- SPRINT(filename, "%s/debug_mISDN.log", INSTALL_DATA);
- mISDN_debug_init(0xffffffff, filename, filename, filename);
+ SPRINT(filename, "%s/debug_mISDN.log", LOG_DIR);
+ mISDN_debug_init(0xfffffeff, filename, filename, filename);
} else
mISDN_debug_init(0, NULL, NULL, NULL);
} else
mISDN_debug_init(0, NULL, NULL, NULL);
{"PH_DEACTIVATE", L1_DEACTIVATE_REQ},
{"DL_ESTABLISH", L2_ESTABLISH_REQ},
{"DL_RELEASE", L2_RELEASE_REQ},
{"PH_DEACTIVATE", L1_DEACTIVATE_REQ},
{"DL_ESTABLISH", L2_ESTABLISH_REQ},
{"DL_RELEASE", L2_RELEASE_REQ},
{"MT_TIMEOUT", L3_TIMEOUT_REQ},
{"MT_SETUP", L3_SETUP_REQ},
{"MT_SETUP_ACK", L3_SETUP_ACKNOWLEDGE_REQ},
{"MT_TIMEOUT", L3_TIMEOUT_REQ},
{"MT_SETUP", L3_SETUP_REQ},
{"MT_SETUP_ACK", L3_SETUP_ACKNOWLEDGE_REQ},
if (isdn_message[i].value == (msg&0xffffff00))
{
SCPY(msgtext, isdn_message[i].name);
if (isdn_message[i].value == (msg&0xffffff00))
{
SCPY(msgtext, isdn_message[i].name);
mISDNport->b_socket[i] = socket(PF_ISDN, SOCK_DGRAM, (mISDNport->b_mode[i]==B_MODE_HDLC)?ISDN_P_B_L2DSPHDLC:ISDN_P_B_L2DSP);
if (mISDNport->b_socket[i] < 0)
{
mISDNport->b_socket[i] = socket(PF_ISDN, SOCK_DGRAM, (mISDNport->b_mode[i]==B_MODE_HDLC)?ISDN_P_B_L2DSPHDLC:ISDN_P_B_L2DSP);
if (mISDNport->b_socket[i] < 0)
{
- l1l2l3_trace_header(mISDNport, NULL, L1_ACTIVATE_IND, DIRECTION_IN);
- end_trace();
- mISDNport->l1link = 1;
+ if (mISDNport->l1link != 1)
+ {
+ l1l2l3_trace_header(mISDNport, NULL, L1_ACTIVATE_IND, DIRECTION_IN);
+ end_trace();
+ mISDNport->l1link = 1;
+ }
- l1l2l3_trace_header(mISDNport, NULL, L1_DEACTIVATE_IND, DIRECTION_IN);
- end_trace();
- mISDNport->l1link = 0;
+ if (mISDNport->l1link != 0)
+ {
+ l1l2l3_trace_header(mISDNport, NULL, L1_DEACTIVATE_IND, DIRECTION_IN);
+ end_trace();
+ mISDNport->l1link = 0;
+ }
l1l2l3_trace_header(mISDNport, NULL, L2_ESTABLISH_IND, DIRECTION_IN);
add_trace("tei", NULL, "%d", l3m->pid);
end_trace();
l1l2l3_trace_header(mISDNport, NULL, L2_ESTABLISH_IND, DIRECTION_IN);
add_trace("tei", NULL, "%d", l3m->pid);
end_trace();
mISDNport->l2establish = 0;
PDEBUG(DEBUG_ISDN, "the link became active before l2establish timer expiry.\n");
}
mISDNport->l2establish = 0;
PDEBUG(DEBUG_ISDN, "the link became active before l2establish timer expiry.\n");
}
if (!mISDNport->l2establish)
{
l1l2l3_trace_header(mISDNport, NULL, L2_RELEASE_IND, DIRECTION_IN);
add_trace("tei", NULL, "%d", l3m->pid);
end_trace();
if (!mISDNport->l2establish)
{
l1l2l3_trace_header(mISDNport, NULL, L2_RELEASE_IND, DIRECTION_IN);
add_trace("tei", NULL, "%d", l3m->pid);
end_trace();
if (!mISDNport->l2establish && mISDNport->l2hold)
{
PDEBUG(DEBUG_ISDN, "set timer and establish.\n");
if (!mISDNport->l2establish && mISDNport->l2hold)
{
PDEBUG(DEBUG_ISDN, "set timer and establish.\n");
-struct mISDNport *mISDNport_open(int port, char *portname, int ptp, int force_nt, int l2hold, struct interface *interface)
+struct mISDNport *mISDNport_open(int port, char *portname, int ptp, int force_nt, int te_special, int l1hold, int l2hold, struct interface *interface)
- PERROR_RUNTIME("Port name '%s' no found, use 'isdninfo' tool to list all existing ports.\n", portname);
+ PERROR_RUNTIME("Port name '%s' not found, use 'misdn_info' tool to list all existing ports.\n", portname);
mISDNportp = &((*mISDNportp)->next);
mISDNport = (struct mISDNport *)MALLOC(sizeof(struct mISDNport));
mISDNport->l1link = -1;
mISDNportp = &((*mISDNportp)->next);
mISDNport = (struct mISDNport *)MALLOC(sizeof(struct mISDNport));
mISDNport->l1link = -1;
prop |= (1 << MISDN_FLG_PTP);
if (nt) // supports hold/retrieve on nt-mode
prop |= (1 << MISDN_FLG_NET_HOLD);
prop |= (1 << MISDN_FLG_PTP);
if (nt) // supports hold/retrieve on nt-mode
prop |= (1 << MISDN_FLG_NET_HOLD);
if (l2hold) // supports layer 2 hold
prop |= (1 << MISDN_FLG_L2_HOLD);
/* queue must be initializes, because l3-thread may send messages during open_layer3() */
if (l2hold) // supports layer 2 hold
prop |= (1 << MISDN_FLG_L2_HOLD);
/* queue must be initializes, because l3-thread may send messages during open_layer3() */
mISDNport->l2hold = l2hold;
PDEBUG(DEBUG_ISDN, "Port has %d b-channels.\n", mISDNport->b_num);
i = 0;
mISDNport->l2hold = l2hold;
PDEBUG(DEBUG_ISDN, "Port has %d b-channels.\n", mISDNport->b_num);
i = 0;
- /* initially, we assume that the link is down, exept for nt-ptmp */
- mISDNport->l2link = (mISDNport->ntmode && !mISDNport->ptp)?1:0;
+ /* for nt-mode ptmp the link is always up */
+ if (mISDNport->ntmode && !mISDNport->ptp)
+ mISDNport->l2link = 1;