--- debian_misdn/mISDNuser/example/Makefile 2005-12-04 11:00:16.000000000 -0600 +++ my_misdn/mISDNuser/example/Makefile 2006-05-08 06:47:51.000000000 -0500 @@ -1,6 +1,6 @@ LIBINCL := $(INCLUDEDIR)/mISDNlib.h -PROGS := testcon testlayer3 loadfirm sendhwctrl -# PROGS := testcon testnet testcon_l2 loadfirm logger +PROGS := testcon testcon_l2 testlayer3 loadfirm sendhwctrl testlayer1 misdnportinfo +# PROGS := testcon testnet loadfirm logger all: $(PROGS) @@ -9,6 +9,8 @@ install -m 755 $$i $(INSTALL_PREFIX)/usr/bin ;\ done +misdnportinfo: misdnportinfo.o $(mISDNLIB) + testcon: testcon.o $(mISDNLIB) testlayer3: testlayer3.o $(mISDNLIB) @@ -21,8 +23,12 @@ sendhwctrl: sendhwctrl.o $(mISDNLIB) +testlayer1: testlayer1.o $(mISDNLIB) + logger: logger.o $(mISDNLIB) +misdnportinfo.o : misdnportinfo.c $(LIBINCL) + testcon.o : testcon.c ../include/l3dss1.h $(LIBINCL) Only in my_misdn/mISDNuser/example: misdnportinfo Only in my_misdn/mISDNuser/example: misdnportinfo.c Only in my_misdn/mISDNuser/example: sendhwctrl Only in my_misdn/mISDNuser/example: testcon diff -ru debian_misdn/mISDNuser/example/testcon.c my_misdn/mISDNuser/example/testcon.c --- debian_misdn/mISDNuser/example/testcon.c 2005-06-08 14:25:04.000000000 -0500 +++ my_misdn/mISDNuser/example/testcon.c 2006-03-06 07:08:28.000000000 -0600 @@ -115,9 +115,9 @@ } int send_data(devinfo_t *di) { - unsigned char buf[MAX_DATA_BUF+mISDN_HEADER_LEN]; + char buf[MAX_DATA_BUF+mISDN_HEADER_LEN]; iframe_t *frm = (iframe_t *)buf; - unsigned char *data; + char *data; int len, ret; if (di->play<0 || !di->fplay) @@ -151,7 +151,7 @@ int setup_bchannel(devinfo_t *di) { mISDN_pid_t pid; - int ret, i; + int ret; layer_info_t li; @@ -212,7 +212,8 @@ } int send_SETUP(devinfo_t *di, int SI, char *PNr) { - unsigned char *np, *p, *msg, buf[1024]; + char *msg, buf[1024]; + char *np,*p; int len, ret; p = msg = buf + mISDN_HEADER_LEN; Only in my_misdn/mISDNuser/example: testcon_l2 diff -ru debian_misdn/mISDNuser/example/testcon_l2.c my_misdn/mISDNuser/example/testcon_l2.c --- debian_misdn/mISDNuser/example/testcon_l2.c 2005-10-23 07:12:47.000000000 -0500 +++ my_misdn/mISDNuser/example/testcon_l2.c 2006-04-29 16:56:46.000000000 -0500 @@ -576,7 +576,7 @@ #ifdef OBSOLETE interface_info_t ii; #endif - int lid, ret; + int ret; if (di->layer3) { memset(&si, 0, sizeof(stack_info_t)); @@ -597,10 +597,10 @@ li.pid.protocol[3] = prot; li.pid.layermask = ISDN_LAYER(3); li.st = di->d_stid; - lid = mISDN_new_layer(di->device, &li); - if (lid<0) + ret = mISDN_new_layer(di->device, &li); + if (ret<0) return(12); - di->layer3 = lid; + di->layer3 = li.id; if (!di->layer3) return(13); Only in my_misdn/mISDNuser/example: testlayer1 Only in my_misdn/mISDNuser/example: testlayer1.c Only in my_misdn/mISDNuser/example: testlayer3 diff -ru debian_misdn/mISDNuser/example/testlayer3.c my_misdn/mISDNuser/example/testlayer3.c --- debian_misdn/mISDNuser/example/testlayer3.c 2005-06-28 06:34:24.000000000 -0500 +++ my_misdn/mISDNuser/example/testlayer3.c 2006-03-06 07:09:28.000000000 -0600 @@ -257,9 +257,9 @@ } int send_data(devinfo_t *di) { - unsigned char buf[MAX_DATA_BUF+mISDN_HEADER_LEN]; + char buf[MAX_DATA_BUF+mISDN_HEADER_LEN]; iframe_t *frm = (iframe_t *)buf; - unsigned char *data; + char *data; int len, ret; if (di->play<0 || !di->fplay) @@ -378,9 +378,9 @@ } p += len; if (SI == 1) { /* Audio */ - len = mISDN_AddIE(qi, p, IE_BEARER, "\x3\x90\x90\xa3"); + len = mISDN_AddIE(qi, p, IE_BEARER, (unsigned char*)"\x3\x90\x90\xa3"); } else { /* default Datatransmission 64k */ - len = mISDN_AddIE(qi, p, IE_BEARER, "\x2\x88\x90"); + len = mISDN_AddIE(qi, p, IE_BEARER, (unsigned char*)"\x2\x88\x90"); } if (len<0) { fprintf(stdout,"Add IE_BEARER error %d\n", len); Only in my_misdn/mISDNuser/i4lnet: CVS diff -ru debian_misdn/mISDNuser/i4lnet/isdn_msg.c my_misdn/mISDNuser/i4lnet/isdn_msg.c --- debian_misdn/mISDNuser/i4lnet/isdn_msg.c 2003-08-27 02:35:32.000000000 -0500 +++ my_misdn/mISDNuser/i4lnet/isdn_msg.c 2006-03-06 07:08:28.000000000 -0600 @@ -63,9 +63,8 @@ m->tail = m->data; m->end = m->head + m->size; m->len = 0; - dprint(DBGM_MSG,"%s: %d msg(%p) at %p %p\n", __FUNCTION__, - alloc_msg_cnt, m, __builtin_return_address(0), - __builtin_return_address(1)); + dprint(DBGM_MSG,"%s: %d msg(%p)\n", __FUNCTION__, + alloc_msg_cnt, m); return(m); } @@ -76,9 +75,9 @@ wprint("free NULL msg\n"); return; } - dprint(DBGM_MSG,"%s: %d/%d msg(%p) at %p %p\n", __FUNCTION__, - alloc_msg_cnt, free_queue->len, msg, - __builtin_return_address(0), __builtin_return_address(1)); + dprint(DBGM_MSG,"%s: %d/%d msg(%p) \n", __FUNCTION__, + alloc_msg_cnt, free_queue->len, msg); + if (msg->list) { if (msg->list == free_queue) wprint("%s: free twice msg(%p)\n", __FUNCTION__, Only in my_misdn/mISDNuser/i4lnet: libisdnnet.so diff -ru debian_misdn/mISDNuser/i4lnet/net_l2.c my_misdn/mISDNuser/i4lnet/net_l2.c --- debian_misdn/mISDNuser/i4lnet/net_l2.c 2005-11-16 12:58:17.000000000 -0600 +++ my_misdn/mISDNuser/i4lnet/net_l2.c 2006-03-06 07:08:28.000000000 -0600 @@ -1,4 +1,4 @@ -/* $Id: net_l2.c,v 1.3.2.2 2005/11/16 18:58:17 crich Exp $ +/* $Id: net_l2.c,v 1.4 2006/03/06 13:08:28 keil Exp $ * * Author Karsten Keil (keil@isdn4linux.de) * @@ -13,7 +13,7 @@ #include "helper.h" // #include "debug.h" -const char *l2_revision = "$Revision: 1.3.2.2 $"; +const char *l2_revision = "$Revision: 1.4 $"; static void l2m_debug(struct FsmInst *fi, char *fmt, ...); diff -ru debian_misdn/mISDNuser/i4lnet/net_l2.h my_misdn/mISDNuser/i4lnet/net_l2.h --- debian_misdn/mISDNuser/i4lnet/net_l2.h 2005-11-16 12:58:17.000000000 -0600 +++ my_misdn/mISDNuser/i4lnet/net_l2.h 2006-03-06 07:08:28.000000000 -0600 @@ -1,4 +1,4 @@ -/* $Id: net_l2.h,v 1.2.2.2 2005/11/16 18:58:17 crich Exp $ +/* $Id: net_l2.h,v 1.3 2006/03/06 13:08:28 keil Exp $ * * Layer 2 defines * diff -ru debian_misdn/mISDNuser/i4lnet/net_l3.c my_misdn/mISDNuser/i4lnet/net_l3.c --- debian_misdn/mISDNuser/i4lnet/net_l3.c 2006-01-18 06:52:01.000000000 -0600 +++ my_misdn/mISDNuser/i4lnet/net_l3.c 2006-06-16 08:42:36.000000000 -0500 @@ -1,4 +1,4 @@ -/* $Id: net_l3.c,v 1.5.2.4 2006/01/18 12:52:01 crich Exp $ +/* $Id: net_l3.c,v 1.8 2006/06/16 10:02:50 crich Exp $ * * Author Karsten Keil (keil@isdn4linux.de) * @@ -16,7 +16,7 @@ #include "helper.h" // #include "debug.h" -const char *l3_revision = "$Revision: 1.5.2.4 $"; +const char *l3_revision = "$Revision: 1.8 $"; #define PROTO_DIS_EURO 8 @@ -773,13 +773,22 @@ msg_t *umsg,*msg = arg; DISCONNECT_t *disc; + if (pc->state == 19) { + // printf("We're in State 19, receive disconnect, so we stay here\n"); + return ; + } + + umsg = prep_l3data_msg(CC_DISCONNECT | INDICATION, pc->ces | (pc->callref << 16), sizeof(DISCONNECT_t), msg->len, NULL); if (!umsg) return; disc = (DISCONNECT_t *)(umsg->data + mISDNUSER_HEAD_SIZE); + + StopAllL3Timer(pc); newl3state(pc, 11); + if (!(disc->CAUSE = l3dss1_get_cause(pc, msg, umsg))) { if (pc->l3->debug & L3_DEB_WARN) l3_debug(pc->l3, "DISC get_cause ret(%d)", pc->err); @@ -893,8 +902,10 @@ l3dss1_message(pc, MT_RELEASE_COMPLETE); if (mISDN_l3up(pc, umsg)) free_msg(umsg); - newl3state(pc, 0); + +/* newl3state(pc, 0); send_proc(pc, IMSG_END_PROC_M, NULL); +*/ } static void @@ -1264,7 +1275,7 @@ MT_ALERTING, l3dss1_alerting_i}, {SBIT(6) | SBIT(7) | SBIT(9) | SBIT(25), MT_CONNECT, l3dss1_connect_i}, - {SBIT(1) | SBIT(2) | SBIT(3) | SBIT(4) | SBIT(10), + {SBIT(1) | SBIT(2) | SBIT(3) | SBIT(4) | SBIT(10) | SBIT(19), MT_DISCONNECT, l3dss1_disconnect}, {SBIT(7) | SBIT(8) | SBIT(9), MT_DISCONNECT, l3dss1_disconnect_i}, @@ -1974,6 +1985,20 @@ } static void +l3dss1_t305(layer3_proc_t *pc, int pr, void *arg) +{ + int t = 0x305; + + StopAllL3Timer(pc); + + + newl3state(pc, 19); + l3dss1_message(pc, MT_RELEASE); + test_and_clear_bit(FLG_L3P_TIMER308_1, &pc->Flags); + L3AddTimer(&pc->timer1, T308, 0x308); +} + +static void l3dss1_t308(layer3_proc_t *pc, int pr, void *arg) { if (!test_and_set_bit(FLG_L3P_TIMER308_1, &pc->Flags)) { @@ -2236,9 +2261,9 @@ CC_CONNECT | RESPONSE, l3dss1_connect_res}, {SBIT(1) | SBIT(2) | SBIT(3) | SBIT(4) | SBIT(10), CC_DISCONNECT | REQUEST, l3dss1_disconnect_req}, - {SBIT(6) | SBIT(7) | SBIT(8) | SBIT(9) | SBIT(25), + { SBIT(2) | SBIT(6) | SBIT(7) | SBIT(8) | SBIT(9) | SBIT(25), CC_DISCONNECT | REQUEST, l3dss1_disconnect_req_out}, - {SBIT(11) + { SBIT(2) | SBIT(11) #warning bitte beachte folgendes: /* es ist nur erlaubt, im state 11 einen release zu schicken! @@ -2266,6 +2291,8 @@ CC_NOTIFY | REQUEST, l3dss1_notify_req}, {SBIT(2), CC_T302, l3dss1_t302}, + {SBIT(12), + CC_T305, l3dss1_t305}, {SBIT(6), CC_T303, l3dss1_t303}, {SBIT(19), diff -ru debian_misdn/mISDNuser/i4lnet/net_l3.h my_misdn/mISDNuser/i4lnet/net_l3.h --- debian_misdn/mISDNuser/i4lnet/net_l3.h 2005-10-23 07:14:58.000000000 -0500 +++ my_misdn/mISDNuser/i4lnet/net_l3.h 2006-03-06 07:08:29.000000000 -0600 @@ -1,4 +1,4 @@ -/* $Id: net_l3.h,v 1.2.2.1 2005/10/23 12:14:58 jolly Exp $ +/* $Id: net_l3.h,v 1.3 2006/03/06 13:08:29 keil Exp $ * * Layer 3 defines * diff -ru debian_misdn/mISDNuser/i4lnet/tei.c my_misdn/mISDNuser/i4lnet/tei.c --- debian_misdn/mISDNuser/i4lnet/tei.c 2005-10-23 07:14:58.000000000 -0500 +++ my_misdn/mISDNuser/i4lnet/tei.c 2006-03-06 07:08:29.000000000 -0600 @@ -1,4 +1,4 @@ -/* $Id: tei.c,v 1.3.2.1 2005/10/23 12:14:58 jolly Exp $ +/* $Id: tei.c,v 1.4 2006/03/06 13:08:29 keil Exp $ * * Author Karsten Keil (keil@isdn4linux.de) * @@ -14,7 +14,7 @@ // #include "debug.h" // #include -const char *tei_revision = "$Revision: 1.3.2.1 $"; +const char *tei_revision = "$Revision: 1.4 $"; #define ID_REQUEST 1 #define ID_ASSIGNED 2 Only in my_misdn/mISDNuser/include: CVS Only in debian_misdn/mISDNuser/include: mISDNif.h diff -ru debian_misdn/mISDNuser/include/mISDNlib.h my_misdn/mISDNuser/include/mISDNlib.h --- debian_misdn/mISDNuser/include/mISDNlib.h 2005-10-25 03:47:18.000000000 -0500 +++ my_misdn/mISDNuser/include/mISDNlib.h 2006-03-06 07:08:29.000000000 -0600 @@ -25,6 +25,7 @@ u_char b[4]; void *p; int i; + u_int ui; } data; } iframe_t; Only in my_misdn/mISDNuser/lib: CVS diff -ru debian_misdn/mISDNuser/lib/layer.c my_misdn/mISDNuser/lib/layer.c --- debian_misdn/mISDNuser/lib/layer.c 2005-06-08 14:25:07.000000000 -0500 +++ my_misdn/mISDNuser/lib/layer.c 2006-03-06 07:08:29.000000000 -0600 @@ -60,7 +60,7 @@ ret = -EINVAL; } else { ret = 0; - ip = &ifr->data.p; + ip = &ifr->data.ui; l_info->id = *ip++; l_info->clone = *ip; } Only in my_misdn/mISDNuser/lib: libmISDN.so diff -ru debian_misdn/mISDNuser/Makefile my_misdn/mISDNuser/Makefile --- debian_misdn/mISDNuser/Makefile 2006-02-02 16:08:59.000000000 -0600 +++ my_misdn/mISDNuser/Makefile 2006-06-19 16:20:37.000000000 -0500 @@ -13,6 +13,8 @@ MISDNINCLUDEDIR := $(MISDNDIR)/include export MISDNINCLUDEDIR +PWD := $(shell pwd) + mISDN_DIR := $(PWD) export mISDN_DIR @@ -46,6 +48,8 @@ install_path: mkdir -p $(INSTALL_PREFIX)/usr/bin/ mkdir -p $(INSTALL_PREFIX)/usr/include/mISDNuser/ + mkdir -p $(INSTALL_PREFIX)/usr/lib/ + install: install_path all make TARGET=install subdirs Only in my_misdn/mISDNuser/tenovis: CVS Only in my_misdn/mISDNuser/tenovis/lib: CVS Only in my_misdn/mISDNuser/voip: CVS Only in my_misdn/mISDNuser/voip/example: CVS