From owner-freebsd-isdn Sun Feb 24 1:43:34 2002 Delivered-To: freebsd-isdn@freebsd.org Received: from mailout07.sul.t-online.com (mailout07.sul.t-online.com [194.25.134.83]) by hub.freebsd.org (Postfix) with ESMTP id 97C3037B416 for ; Sun, 24 Feb 2002 01:43:31 -0800 (PST) Received: from fwd09.sul.t-online.de by mailout07.sul.t-online.com with smtp id 16ev6X-0001IF-00; Sun, 24 Feb 2002 10:38:01 +0100 Received: from peedub.jennejohn.org (520017439985-0001@[217.228.216.6]) by fmrl09.sul.t-online.com with esmtp id 16ev6Q-0dOfRYC; Sun, 24 Feb 2002 10:37:54 +0100 Received: from peedub.jennejohn.org (localhost [127.0.0.1]) by peedub.jennejohn.org (8.11.6/8.11.6) with ESMTP id g1O9cU349913; Sun, 24 Feb 2002 10:38:30 +0100 (CET) (envelope-from garyj@peedub.jennejohn.org) Message-Id: <200202240938.g1O9cU349913@peedub.jennejohn.org> X-Mailer: exmh version 2.5 07/13/2001 with nmh-1.0.3 To: dave Cc: freebsd-isdn@FreeBSD.ORG Subject: Re: Asuscom TA vendor_id=0x1043, dev_id?0x0675 Reply-To: Gary Jennejohn In-reply-to: Your message of "Sat, 23 Feb 2002 19:54:10 GMT." <20020223195410.5c70d7c1.damdave@libero.it> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 24 Feb 2002 10:38:30 +0100 From: Gary Jennejohn X-Sender: 520017439985-0001@t-dialin.net Sender: owner-freebsd-isdn@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org dave writes: > Sorry, > I've tried ALSO the ihfc device as shown in LINT but nothing appened. > I have no idea!!!! > Try it with the iwic driver, that contains the reported vendor and device IDs. If it works that means that your board actually uses a WinBond chip. --- Gary Jennejohn / garyj@jennejohn.org gj@freebsd.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-isdn" in the body of the message From owner-freebsd-isdn Sun Feb 24 10:16:48 2002 Delivered-To: freebsd-isdn@freebsd.org Received: from freeandkinky.com (1Cust108.tnt31.toronto.on.da.uu.net [64.10.170.108]) by hub.freebsd.org (Postfix) with SMTP id BFA7D37B404 for ; Sun, 24 Feb 2002 10:16:03 -0800 (PST) Received: (qmail 75248 invoked by uid 0); 24 Feb 2002 18:15:13 -0000 Date: 24 Feb 2002 18:15:13 -0000 From: desire@freeandkinky.com To: freebsd-isdn@freebsd.org Subject: Re: your email address Message-ID: Organization: freeandkinky.com MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 1 X-MSMail-Priority: High X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 X-Accept-Language: en Sender: owner-freebsd-isdn@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Your boss is an asshole… Your girlfriend is lame… Your friends keep asking you to help them bury bodies… The 15-year-old dickhead at the drive-through forgot your fries, again… http://www.freeandkinky.com/g2/ Put down the high-powered rifle, and look at some FREE HARDCORE PORN!!!!!!!!!!!!!! http://www.freeandkinky.com/g2/ -50 FREE live video feeds -100,000 FREE pics -100,000 of FREE streaming and downloadable movies -every niche, kink and fetish out there http://www.freeandkinky.com/g2/ 100% FREE INSTANT ACCESS!!!!! If you want us to stop sending you email then click here: http://www.freeandkinky.com/db/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-isdn" in the body of the message From owner-freebsd-isdn Mon Feb 25 3:57:25 2002 Delivered-To: freebsd-isdn@freebsd.org Received: from fep04-svc.swip.net (fep04.swip.net [130.244.199.132]) by hub.freebsd.org (Postfix) with ESMTP id 2A25737B404 for ; Mon, 25 Feb 2002 03:57:21 -0800 (PST) Received: from fep04-svc.swip.net ([192.168.145.12]) by fep04-svc.swip.net with SMTP id <20020225115719.CWUW7820.fep04-svc.swip.net@fep04-svc.swip.net>; Mon, 25 Feb 2002 12:57:19 +0100 X-Originating-IP: [128.39.203.124] From: To: Gary Jennejohn , dave Cc: freebsd-isdn@FreeBSD.org Subject: Sv: Re: Asustek vendor_id=0x1043, dev_id=0x0675 Date: Mon, 25 Feb 2002 12:57:20 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Message-Id: <20020225115719.CWUW7820.fep04-svc.swip.net@fep04-svc.swip.net> Sender: owner-freebsd-isdn@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org > > Fra: Gary Jennejohn > Dato: 2002/02/23 Sat AM 10:27:05 CET > Til: dave > CC: freebsd-isdn@FreeBSD.org > Emne: Re: Asustek vendor_id=0x1043, dev_id=0x0675 > > dave writes: > > Hi, > > I'm coming from Linux world and I would like to know > > if my ISDN TA is supported or not. > > This is an axtract from the output of cat /proc/pci: > > > > Bus 0, device 8, function 0: > > Network controller: PCI device 1043:0675 (Asustek Computer, Inc.) (rev > > 2). > > IRQ 5. > > Master Capable. Latency=16. Max Lat=16. > > I/O at 0xdc00 [0xdc07]. > > Non-prefetchable 32 bit memory at 0xdb001000 [0xdb0010ff]. > > > > And this is the output of modprobe isdn: > > > > HiSax: HFC-PCI card manufacturer: Asuscom/Askey card name: 675 > > HFC-PCI: defined at mem 0xea926000 fifo 0xd55e8000(0x155e8000) IRQ 5 HZ > 100 > > HFC_PCI: resetting card > > HFC 2BDS0 PCI: IRQ 5 count 121 > > HFC 2BDS0 PCI: IRQ 5 count 155 > > HiSax: DSS1 Rev. 1.1.4.1 > > > > Could U help me? > > > > This should work with the ihfc driver. See the manpage. > > --- > Gary Jennejohn / garyj@jennejohn.org gj@freebsd.org > > No, the current ihfc-driver I wrote does not support HFC-PCI, if not speaking about the code Hellmuth released for HFCS-PCI. Anyway I have sent some new code to Hellmuth for this chip so support may not be far away. -- Hans Petter ------------------------------------------------- WebMail fra Tele2 http://www.tele2.no ------------------------------------------------- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-isdn" in the body of the message From owner-freebsd-isdn Tue Feb 26 8:26: 4 2002 Delivered-To: freebsd-isdn@freebsd.org Received: from host.wishhosting.nl (host.wishhosting.nl [212.123.128.13]) by hub.freebsd.org (Postfix) with ESMTP id AD0D437B400 for ; Tue, 26 Feb 2002 08:24:56 -0800 (PST) Received: from coyote (p10408.nl.wish.net [212.123.178.168]) by host.wishhosting.nl (8.11.5/8.10.1) with SMTP id g1QGOl595403 for ; Tue, 26 Feb 2002 17:24:47 +0100 (CET) Message-ID: <000801c1bee2$185c6800$0200a8c0@coyote> From: "Steven Looman" To: "ISDN Mailinglist" Subject: subaddr implementation Date: Tue, 26 Feb 2002 17:24:20 +0100 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0005_01C1BEEA.6CD8D960" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Sender: owner-freebsd-isdn@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org This is a multi-part message in MIME format. ------=_NextPart_000_0005_01C1BEEA.6CD8D960 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Hi, I finished it, I guess. I don't really know if it works perfectly, 'couse I haven't tested it fully. I don't know if you should use the patch (at least not without looking at it) because it has some drawbacks: You can specify more dialin or dialout numbers, i did the same with the subaddrs, but mismatches can be a result (wrong subaddr with wrong number). (That's why i wanted to use *) In the config, you specify if you want to use subaddrs by setting usesubaddr = on I know, it isn't pretty... go fix your own code. ;) Steven PS. I hope I included all altered files in the patch PPS. I added a patch to remove some useless comment by an earlier patch by me. ------=_NextPart_000_0005_01C1BEEA.6CD8D960 Content-Type: application/octet-stream; name="subaddr.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="subaddr.patch" *** /usr/src/usr.sbin/i4b/isdnd.orig/dial.c Thu Oct 18 13:58:49 2001=0A= --- /usr/src/usr.sbin/i4b/isdnd/dial.c Mon Feb 25 16:36:03 2002=0A= ***************=0A= *** 55,70 ****=0A= =0A= if(cep->remote_numbers_count =3D=3D 1)=0A= {=0A= ! strcpy(cep->remote_phone_dialout, cep->remote_numbers[0].number);=0A= ! DBGL(DL_DIAL, (log(LL_DBG, "select_first_dialno: only one no, no =3D = %s", cep->remote_phone_dialout)));=0A= cep->last_remote_number =3D 0;=0A= return;=0A= }=0A= =0A= if(cep->remote_numbers_handling =3D=3D RNH_FIRST)=0A= {=0A= ! strcpy(cep->remote_phone_dialout, cep->remote_numbers[0].number);=0A= ! DBGL(DL_DIAL, (log(LL_DBG, "select_first_dialno: use first, no =3D = %s", cep->remote_phone_dialout)));=0A= cep->last_remote_number =3D 0;=0A= return;=0A= }=0A= --- 55,72 ----=0A= =0A= if(cep->remote_numbers_count =3D=3D 1)=0A= {=0A= ! strcpy(cep->remote_phone_dialout.number, = cep->remote_numbers[0].number);=0A= ! strcpy(cep->remote_phone_dialout.subaddr, = cep->remote_numbers[0].subaddr);=0A= ! DBGL(DL_DIAL, (log(LL_DBG, "select_first_dialno: only one no, no =3D = %s", cep->remote_phone_dialout.number)));=0A= cep->last_remote_number =3D 0;=0A= return;=0A= }=0A= =0A= if(cep->remote_numbers_handling =3D=3D RNH_FIRST)=0A= {=0A= ! strcpy(cep->remote_phone_dialout.number, = cep->remote_numbers[0].number);=0A= ! strcpy(cep->remote_phone_dialout.subaddr, = cep->remote_numbers[0].subaddr);=0A= ! DBGL(DL_DIAL, (log(LL_DBG, "select_first_dialno: use first, no =3D = %s", cep->remote_phone_dialout.number)));=0A= cep->last_remote_number =3D 0;=0A= return;=0A= }=0A= ***************=0A= *** 77,84 ****=0A= {=0A= if(cep->remote_numbers_handling =3D=3D RNH_LAST)=0A= {=0A= ! strcpy(cep->remote_phone_dialout, cep->remote_numbers[i].number);=0A= ! DBGL(DL_DIAL, (log(LL_DBG, "select_first_dialno: use last, no =3D = %s", cep->remote_phone_dialout)));=0A= cep->last_remote_number =3D i;=0A= return;=0A= }=0A= --- 79,87 ----=0A= {=0A= if(cep->remote_numbers_handling =3D=3D RNH_LAST)=0A= {=0A= ! strcpy(cep->remote_phone_dialout.number, = cep->remote_numbers[i].number);=0A= ! strcpy(cep->remote_phone_dialout.subaddr, = cep->remote_numbers[i].subaddr);=0A= ! DBGL(DL_DIAL, (log(LL_DBG, "select_first_dialno: use last, no =3D = %s", cep->remote_phone_dialout.number)));=0A= cep->last_remote_number =3D i;=0A= return;=0A= }=0A= ***************=0A= *** 87,94 ****=0A= if(++i >=3D cep->remote_numbers_count)=0A= i =3D 0;=0A= =0A= ! strcpy(cep->remote_phone_dialout, cep->remote_numbers[i].number);=0A= ! DBGL(DL_DIAL, (log(LL_DBG, "select_first_dialno: use next, no =3D = %s", cep->remote_phone_dialout)));=0A= cep->last_remote_number =3D i;=0A= return;=0A= }=0A= --- 90,98 ----=0A= if(++i >=3D cep->remote_numbers_count)=0A= i =3D 0;=0A= =0A= ! strcpy(cep->remote_phone_dialout.number, = cep->remote_numbers[i].number);=0A= ! strcpy(cep->remote_phone_dialout.subaddr, = cep->remote_numbers[i].subaddr);=0A= ! DBGL(DL_DIAL, (log(LL_DBG, "select_first_dialno: use next, no =3D = %s", cep->remote_phone_dialout.number)));=0A= cep->last_remote_number =3D i;=0A= return;=0A= }=0A= ***************=0A= *** 97,104 ****=0A= if(++i >=3D cep->remote_numbers_count)=0A= i =3D 0;=0A= }=0A= ! strcpy(cep->remote_phone_dialout, cep->remote_numbers[0].number);=0A= ! DBGL(DL_DIAL, (log(LL_DBG, "select_first_dialno: no last found (use = 0), no =3D %s", cep->remote_phone_dialout)));=0A= cep->last_remote_number =3D 0; =0A= } =0A= =0A= --- 101,108 ----=0A= if(++i >=3D cep->remote_numbers_count)=0A= i =3D 0;=0A= }=0A= ! strcpy(cep->remote_phone_dialout.number, = cep->remote_numbers[0].number);=0A= ! DBGL(DL_DIAL, (log(LL_DBG, "select_first_dialno: no last found (use = 0), no =3D %s", cep->remote_phone_dialout.number)));=0A= cep->last_remote_number =3D 0; =0A= } =0A= =0A= ***************=0A= *** 116,123 ****=0A= =0A= if(cep->remote_numbers_count =3D=3D 1)=0A= {=0A= ! strcpy(cep->remote_phone_dialout, cep->remote_numbers[0].number);=0A= ! DBGL(DL_DIAL, (log(LL_DBG, "select_next_dialno: only one no, no =3D = %s", cep->remote_phone_dialout)));=0A= cep->last_remote_number =3D 0;=0A= return;=0A= }=0A= --- 120,128 ----=0A= =0A= if(cep->remote_numbers_count =3D=3D 1)=0A= {=0A= ! strcpy(cep->remote_phone_dialout.number, = cep->remote_numbers[0].number);=0A= ! strcpy(cep->remote_phone_dialout.subaddr, = cep->remote_numbers[0].subaddr);=0A= ! DBGL(DL_DIAL, (log(LL_DBG, "select_next_dialno: only one no, no =3D = %s", cep->remote_phone_dialout.number)));=0A= cep->last_remote_number =3D 0;=0A= return;=0A= }=0A= ***************=0A= *** 133,139 ****=0A= if(cep->last_remote_number >=3D cep->remote_numbers_count)=0A= cep->last_remote_number =3D 0;=0A= =0A= ! strcpy(cep->remote_phone_dialout, = cep->remote_numbers[cep->last_remote_number].number);=0A= =0A= DBGL(DL_DIAL, (log(LL_DBG, "select_next_dialno: index=3D%d, no=3D%s",=0A= cep->last_remote_number,=0A= --- 138,144 ----=0A= if(cep->last_remote_number >=3D cep->remote_numbers_count)=0A= cep->last_remote_number =3D 0;=0A= =0A= ! strcpy(cep->remote_phone_dialout.number, = cep->remote_numbers[cep->last_remote_number].number);=0A= =0A= DBGL(DL_DIAL, (log(LL_DBG, "select_next_dialno: index=3D%d, no=3D%s",=0A= cep->last_remote_number,=0A= *** /usr/src/usr.sbin/i4b/isdnd.orig/isdnd.h Mon Dec 31 10:32:32 2001=0A= --- /usr/src/usr.sbin/i4b/isdnd/isdnd.h Mon Feb 25 17:00:54 2002=0A= ***************=0A= *** 208,214 ****=0A= --- 208,223 ----=0A= * this struct describes the numbers to try to dial out=0A= = *------------------------------------------------------------------------= ---*/=0A= typedef struct {=0A= + char number[TELNO_MAX]; /* number */=0A= + char subaddr[SUBADDR_MAX]; /* subaddr */=0A= + } number_t;=0A= + =0A= + = /*-----------------------------------------------------------------------= ----*=0A= + * this struct describes the numbers to try to dial out=0A= + = *------------------------------------------------------------------------= ---*/=0A= + typedef struct {=0A= char number[TELNO_MAX]; /* remote number to dial */=0A= + char subaddr[SUBADDR_MAX]; /* remote subaddr */=0A= int flag; /* usage flag */=0A= #define RNF_IDLE 0=0A= #define RNF_SUCC 1 /* last dial was ok */=0A= ***************=0A= *** 219,224 ****=0A= --- 228,234 ----=0A= = *------------------------------------------------------------------------= ---*/=0A= typedef struct {=0A= char number[TELNO_MAX]; /* calling party number */=0A= + char subaddr[SUBADDR_MAX];/* calling party subaddr */=0A= } incoming_number_t;=0A= =0A= = /*-----------------------------------------------------------------------= ----*=0A= ***************=0A= *** 250,269 ****=0A= int usrdeviceunit; /* userland unit to use */=0A= =0A= int remote_numbers_count; /* number of remote numbers */=0A= #define MAXRNUMBERS 8 /* max remote numbers */=0A= =0A= remote_number_t remote_numbers[MAXRNUMBERS]; /* remote numbers to = dial */=0A= =0A= int remote_numbers_handling; /* how to handle the remote dialing */=0A= #define RNH_NEXT 0 /* use next number after last successfull */=0A= #define RNH_LAST 1 /* use last successfull for next call */=0A= #define RNH_FIRST 2 /* always use first number for next call */=0A= =0A= ! char local_phone_dialout[TELNO_MAX]; /* our number to tell remote*/=0A= ! char local_phone_incoming[TELNO_MAX]; /* answer calls for this local = number */=0A= =0A= #define MAX_INCOMING 8=0A= int incoming_numbers_count; /* number of incoming allowed numbers */=0A= incoming_number_t remote_phone_incoming[MAX_INCOMING]; /* answer = calls from this remote machine */=0A= =0A= int dialin_reaction; /* what to do with incoming calls */=0A= --- 260,282 ----=0A= int usrdeviceunit; /* userland unit to use */=0A= =0A= int remote_numbers_count; /* number of remote numbers */=0A= + int remote_subaddr_count; /* number of remote subaddr */=0A= #define MAXRNUMBERS 8 /* max remote numbers */=0A= =0A= remote_number_t remote_numbers[MAXRNUMBERS]; /* remote numbers to = dial */=0A= + =0A= =0A= int remote_numbers_handling; /* how to handle the remote dialing */=0A= #define RNH_NEXT 0 /* use next number after last successfull */=0A= #define RNH_LAST 1 /* use last successfull for next call */=0A= #define RNH_FIRST 2 /* always use first number for next call */=0A= =0A= ! number_t local_phone_dialout; /* our number to tell remote*/=0A= ! number_t local_phone_incoming; /* answer calls for this local number = */=0A= =0A= #define MAX_INCOMING 8=0A= int incoming_numbers_count; /* number of incoming allowed numbers */=0A= + int incoming_subaddr_count; /* number of incoming allowed subaddr */=0A= incoming_number_t remote_phone_incoming[MAX_INCOMING]; /* answer = calls from this remote machine */=0A= =0A= int dialin_reaction; /* what to do with incoming calls */=0A= ***************=0A= *** 340,345 ****=0A= --- 353,360 ----=0A= #define DIR_INONLY 1=0A= #define DIR_OUTONLY 2=0A= =0A= + int usesubaddr; /* use subaddresses */=0A= + =0A= int budget_callbackperiod; /* length of a budget period (s)*/=0A= int budget_callbackncalls; /* call budget for a period */=0A= char *budget_callbacks_file; /* filename to store callback stats */=0A= ***************=0A= *** 438,448 ****=0A= =0A= int hangup; /* flag, hangup connection asap */=0A= =0A= ! char real_phone_incoming[TELNO_MAX]; /* real remote telno in case of = wildcard */=0A= =0A= int last_remote_number; /* index of last used dialout number*/=0A= =0A= ! char remote_phone_dialout[TELNO_MAX]; /* used remote number to dial */=0A= =0A= int direction; /* incoming or outgoing */=0A= #define DIR_IN 0=0A= --- 453,463 ----=0A= =0A= int hangup; /* flag, hangup connection asap */=0A= =0A= ! number_t real_phone_incoming; /* real remote telno in case of = wildcard */=0A= =0A= int last_remote_number; /* index of last used dialout number*/=0A= =0A= ! number_t remote_phone_dialout; /* used remote number to dial */=0A= =0A= int direction; /* incoming or outgoing */=0A= #define DIR_IN 0=0A= ***************=0A= *** 752,758 ****=0A= int exec_connect_prog ( cfg_entry_t *cep, const char *prog, int = link_down );=0A= pid_t exec_prog ( char *prog, char **arglist );=0A= cfg_entry_t * find_by_device_for_dialout ( int drivertype, int = driverunit );=0A= ! cfg_entry_t *find_by_device_for_dialoutnumber(int drivertype, int = driverunit, int cmdlen, char *cmd);=0A= cfg_entry_t *find_by_device_for_keypad(int drivertype, int driverunit, = int cmdlen, char *cmd);=0A= cfg_entry_t * find_matching_entry_incoming ( msg_connect_ind_t *mp );=0A= cfg_entry_t * find_active_entry_by_driver ( int drivertype, int = driverunit );=0A= --- 767,773 ----=0A= int exec_connect_prog ( cfg_entry_t *cep, const char *prog, int = link_down );=0A= pid_t exec_prog ( char *prog, char **arglist );=0A= cfg_entry_t * find_by_device_for_dialout ( int drivertype, int = driverunit );=0A= ! cfg_entry_t *find_by_device_for_dialoutnumber(msg_dialoutnumber_ind_t = *mp);=0A= cfg_entry_t *find_by_device_for_keypad(int drivertype, int driverunit, = int cmdlen, char *cmd);=0A= cfg_entry_t * find_matching_entry_incoming ( msg_connect_ind_t *mp );=0A= cfg_entry_t * find_active_entry_by_driver ( int drivertype, int = driverunit );=0A= *** /usr/src/usr.sbin/i4b/isdnd.orig/exec.c Mon Nov 19 15:19:21 2001=0A= --- /usr/src/usr.sbin/i4b/isdnd/exec.c Sun Feb 24 16:46:30 2002=0A= ***************=0A= *** 228,240 ****=0A= =0A= /* if destination telephone number avail, add it as argument */=0A= =0A= ! if(*cep->local_phone_incoming)=0A= ! argv[4] =3D cep->local_phone_incoming;=0A= =0A= /* if source telephone number avail, add it as argument */=0A= =0A= ! if(*cep->real_phone_incoming)=0A= ! argv[6] =3D cep->real_phone_incoming;=0A= =0A= if(*cep->display)=0A= {=0A= --- 228,240 ----=0A= =0A= /* if destination telephone number avail, add it as argument */=0A= =0A= ! if(*cep->local_phone_incoming.number)=0A= ! argv[4] =3D cep->local_phone_incoming.number;=0A= =0A= /* if source telephone number avail, add it as argument */=0A= =0A= ! if(*cep->real_phone_incoming.number)=0A= ! argv[6] =3D cep->real_phone_incoming.number;=0A= =0A= if(*cep->display)=0A= {=0A= *** /usr/src/usr.sbin/i4b/isdnd.orig/monitor.c Fri May 25 10:36:44 2001=0A= --- /usr/src/usr.sbin/i4b/isdnd/monitor.c Sun Feb 24 16:46:31 2002=0A= ***************=0A= *** 1071,1083 ****=0A= =0A= if(cep->direction =3D=3D DIR_OUT)=0A= {=0A= ! I4B_PUT_STR(evnt, I4B_MON_CONNECT_REMPHONE, = cep->remote_phone_dialout);=0A= ! I4B_PUT_STR(evnt, I4B_MON_CONNECT_LOCPHONE, = cep->local_phone_dialout);=0A= }=0A= else=0A= {=0A= ! I4B_PUT_STR(evnt, I4B_MON_CONNECT_REMPHONE, = cep->real_phone_incoming);=0A= ! I4B_PUT_STR(evnt, I4B_MON_CONNECT_LOCPHONE, = cep->local_phone_incoming);=0A= }=0A= monitor_broadcast(mask, evnt, sizeof evnt);=0A= }=0A= --- 1071,1083 ----=0A= =0A= if(cep->direction =3D=3D DIR_OUT)=0A= {=0A= ! I4B_PUT_STR(evnt, I4B_MON_CONNECT_REMPHONE, = cep->remote_phone_dialout.number);=0A= ! I4B_PUT_STR(evnt, I4B_MON_CONNECT_LOCPHONE, = cep->local_phone_dialout.number);=0A= }=0A= else=0A= {=0A= ! I4B_PUT_STR(evnt, I4B_MON_CONNECT_REMPHONE, = cep->real_phone_incoming.number);=0A= ! I4B_PUT_STR(evnt, I4B_MON_CONNECT_LOCPHONE, = cep->local_phone_incoming.number);=0A= }=0A= monitor_broadcast(mask, evnt, sizeof evnt);=0A= }=0A= *** /usr/src/usr.sbin/i4b/isdnd.orig/curses.c Mon Oct 9 16:22:38 2000=0A= --- /usr/src/usr.sbin/i4b/isdnd/curses.c Sun Feb 24 16:46:29 2002=0A= ***************=0A= *** 408,423 ****=0A= if(aliasing)=0A= {=0A= if(cep->direction =3D=3D DIR_IN)=0A= ! snprintf(buffer, sizeof(buffer), "%s", = get_alias(cep->real_phone_incoming));=0A= else=0A= ! snprintf(buffer, sizeof(buffer), "%s", = get_alias(cep->remote_phone_dialout));=0A= }=0A= else=0A= {=0A= if(cep->direction =3D=3D DIR_IN)=0A= ! snprintf(buffer, sizeof(buffer), "%s/%s", cep->name, = cep->real_phone_incoming);=0A= else=0A= ! snprintf(buffer, sizeof(buffer), "%s/%s", cep->name, = cep->remote_phone_dialout); =0A= }=0A= =0A= buffer[H_IFN - H_TELN - 1] =3D '\0';=0A= --- 408,423 ----=0A= if(aliasing)=0A= {=0A= if(cep->direction =3D=3D DIR_IN)=0A= ! snprintf(buffer, sizeof(buffer), "%s", = get_alias(cep->real_phone_incoming.number));=0A= else=0A= ! snprintf(buffer, sizeof(buffer), "%s", = get_alias(cep->remote_phone_dialout.number));=0A= }=0A= else=0A= {=0A= if(cep->direction =3D=3D DIR_IN)=0A= ! snprintf(buffer, sizeof(buffer), "%s/%s", cep->name, = cep->real_phone_incoming.number);=0A= else=0A= ! snprintf(buffer, sizeof(buffer), "%s/%s", cep->name, = cep->remote_phone_dialout.number); =0A= }=0A= =0A= buffer[H_IFN - H_TELN - 1] =3D '\0';=0A= *** /usr/src/usr.sbin/i4b/isdnd.orig/msghdl.c Thu Oct 18 13:58:49 2001=0A= --- /usr/src/usr.sbin/i4b/isdnd/msghdl.c Tue Feb 26 16:55:45 2002=0A= ***************=0A= *** 831,837 ****=0A= =0A= DBGL(DL_DRVR, (log(LL_DBG, "msg_dialoutnumber: dial req from %s, unit = %d", bdrivername(mp->driver), mp->driver_unit)));=0A= =0A= ! if((cep =3D find_by_device_for_dialoutnumber(mp->driver, = mp->driver_unit, mp->cmdlen, mp->cmd)) =3D=3D NULL)=0A= {=0A= DBGL(DL_DRVR, (log(LL_DBG, "msg_dialoutnumber: config entry reserved = or no match")));=0A= return;=0A= --- 831,837 ----=0A= =0A= DBGL(DL_DRVR, (log(LL_DBG, "msg_dialoutnumber: dial req from %s, unit = %d", bdrivername(mp->driver), mp->driver_unit)));=0A= =0A= ! if((cep =3D find_by_device_for_dialoutnumber(mp)) =3D=3D NULL)=0A= {=0A= DBGL(DL_DRVR, (log(LL_DBG, "msg_dialoutnumber: config entry reserved = or no match")));=0A= return;=0A= ***************=0A= *** 1216,1223 ****=0A= else=0A= mcr.unitlen_method =3D ULEN_METHOD_STATIC;=0A= =0A= ! strcpy(mcr.dst_telno, cep->remote_phone_dialout);=0A= ! strcpy(mcr.src_telno, cep->local_phone_dialout);=0A= strcpy(mcr.keypad, cep->keypad); =0A= =0A= cep->last_dial_time =3D time(NULL);=0A= --- 1216,1227 ----=0A= else=0A= mcr.unitlen_method =3D ULEN_METHOD_STATIC;=0A= =0A= ! strcpy(mcr.dst_telno, cep->remote_phone_dialout.number);=0A= ! if(cep->usesubaddr)=0A= ! strcpy(mcr.dst_subaddr, cep->remote_phone_dialout.subaddr);=0A= ! strcpy(mcr.src_telno, cep->local_phone_dialout.number);=0A= ! if(cep->usesubaddr)=0A= ! strcpy(mcr.src_subaddr, cep->local_phone_dialout.subaddr);=0A= strcpy(mcr.keypad, cep->keypad); =0A= =0A= cep->last_dial_time =3D time(NULL);=0A= ***************=0A= *** 1236,1243 ****=0A= log(LL_CHD, "%05d %s dialing out from %s to %s",=0A= cep->cdid,=0A= cep->name,=0A= ! aliasing ? get_alias(cep->local_phone_dialout) : = cep->local_phone_dialout,=0A= ! aliasing ? get_alias(cep->remote_phone_dialout) : = cep->remote_phone_dialout);=0A= =0A= return(ret);=0A= }=0A= --- 1240,1247 ----=0A= log(LL_CHD, "%05d %s dialing out from %s to %s",=0A= cep->cdid,=0A= cep->name,=0A= ! aliasing ? get_alias(cep->local_phone_dialout.number) : = cep->local_phone_dialout.number,=0A= ! aliasing ? get_alias(cep->remote_phone_dialout.number) : = cep->remote_phone_dialout.number);=0A= =0A= return(ret);=0A= }=0A= *** /usr/src/usr.sbin/i4b/isdnd.orig/rc_config.c Mon Dec 31 10:32:32 2001=0A= --- /usr/src/usr.sbin/i4b/isdnd/rc_config.c Mon Feb 25 17:27:35 2002=0A= ***************=0A= *** 219,224 ****=0A= --- 219,226 ----=0A= cep->state =3D ST_IDLE;=0A= =0A= cep->aoc_valid =3D AOC_INVALID;=0A= + =0A= + cep->usesubaddr =3D 0;=0A= }=0A= }=0A= =0A= ***************=0A= *** 769,780 ****=0A= =0A= case LOCAL_PHONE_DIALOUT:=0A= DBGL(DL_RCCF, (log(LL_DBG, "entry %d: local_phone_dialout =3D %s", = entrycount, yylval.str)));=0A= ! strcpy(cfg_entry_tab[entrycount].local_phone_dialout, yylval.str);=0A= break;=0A= =0A= case LOCAL_PHONE_INCOMING:=0A= DBGL(DL_RCCF, (log(LL_DBG, "entry %d: local_phone_incoming =3D %s", = entrycount, yylval.str)));=0A= ! strcpy(cfg_entry_tab[entrycount].local_phone_incoming, yylval.str);=0A= break;=0A= =0A= case MAILER:=0A= --- 771,792 ----=0A= =0A= case LOCAL_PHONE_DIALOUT:=0A= DBGL(DL_RCCF, (log(LL_DBG, "entry %d: local_phone_dialout =3D %s", = entrycount, yylval.str)));=0A= ! strcpy(cfg_entry_tab[entrycount].local_phone_dialout.number, = yylval.str);=0A= ! break;=0A= ! =0A= ! case LOCAL_SUBADDR_DIALOUT:=0A= ! DBGL(DL_RCCF, (log(LL_DBG, "entry %d: local_subaddr_dialout =3D = %s", entrycount, yylval.str)));=0A= ! strcpy(cfg_entry_tab[entrycount].local_phone_dialout.subaddr, = yylval.str);=0A= break;=0A= =0A= case LOCAL_PHONE_INCOMING:=0A= DBGL(DL_RCCF, (log(LL_DBG, "entry %d: local_phone_incoming =3D %s", = entrycount, yylval.str)));=0A= ! strcpy(cfg_entry_tab[entrycount].local_phone_incoming.number, = yylval.str);=0A= ! break;=0A= ! =0A= ! case LOCAL_SUBADDR_INCOMING:=0A= ! DBGL(DL_RCCF, (log(LL_DBG, "entry %d: local_subaddr_incoming =3D = %s", entrycount, yylval.str)));=0A= ! strcpy(cfg_entry_tab[entrycount].local_phone_incoming.subaddr, = yylval.str);=0A= break;=0A= =0A= case MAILER:=0A= ***************=0A= *** 941,946 ****=0A= --- 953,973 ----=0A= =0A= break;=0A= =0A= + case REMOTE_SUBADDR_DIALOUT:=0A= + if(cfg_entry_tab[entrycount].remote_subaddr_count >=3D MAXRNUMBERS)=0A= + {=0A= + log(LL_ERR, "ERROR parsing config file: too many remote = subaddresses at line %d!", lineno);=0A= + config_error_flag++;=0A= + break;=0A= + } =0A= + =0A= + DBGL(DL_RCCF, (log(LL_DBG, "entry %d: remote_subaddr_dialout #%d = =3D %s",=0A= + entrycount, cfg_entry_tab[entrycount].remote_numbers_count, = yylval.str)));=0A= + =0A= + = strcpy(cfg_entry_tab[entrycount].remote_numbers[cfg_entry_tab[entrycount]= .remote_numbers_count].subaddr, yylval.str);=0A= + =0A= + break;=0A= + =0A= case REMOTE_NUMBERS_HANDLING: =0A= DBGL(DL_RCCF, (log(LL_DBG, "entry %d: remdial_handling =3D %s", = entrycount, yylval.str)));=0A= if(!(strcmp(yylval.str, "next")))=0A= ***************=0A= *** 972,977 ****=0A= --- 999,1019 ----=0A= }=0A= break;=0A= =0A= + case REMOTE_SUBADDR_INCOMING:=0A= + {=0A= + int n;=0A= + n =3D cfg_entry_tab[entrycount].incoming_numbers_count;=0A= + if (n >=3D MAX_INCOMING)=0A= + {=0A= + log(LL_ERR, "ERROR parsing config file: too many = \"remote_subaddr_incoming\" entries at line %d!", lineno);=0A= + config_error_flag++;=0A= + break;=0A= + }=0A= + DBGL(DL_RCCF, (log(LL_DBG, "entry %d: remote_subaddr_incoming #%d = =3D %s", entrycount, n, yylval.str)));=0A= + strcpy(cfg_entry_tab[entrycount].remote_phone_incoming[n].subaddr, = yylval.str);=0A= + }=0A= + break;=0A= + =0A= case RATESFILE:=0A= strcpy(ratesfile, yylval.str);=0A= DBGL(DL_RCCF, (log(LL_DBG, "system: ratesfile =3D %s", = yylval.str)));=0A= ***************=0A= *** 1136,1141 ****=0A= --- 1178,1188 ----=0A= DBGL(DL_RCCF, (log(LL_DBG, "system: useacctfile =3D %d", = yylval.booln)));=0A= break;=0A= =0A= + case USESUBADDR:=0A= + cfg_entry_tab[entrycount].usesubaddr =3D yylval.booln;=0A= + DBGL(DL_RCCF, (log(LL_DBG, "entry %d: usesubaddr =3D %d", = entrycount, yylval.booln)));=0A= + break;=0A= + =0A= case USEDOWN:=0A= DBGL(DL_RCCF, (log(LL_DBG, "entry %d: usedown =3D %d", entrycount, = yylval.booln)));=0A= cfg_entry_tab[entrycount].usedown =3D yylval.booln;=0A= ***************=0A= *** 1280,1286 ****=0A= log(LL_ERR, "check_config: remote-phone-dialout not set in entry = %d!", i);=0A= error++;=0A= }=0A= ! if(strlen(cep->local_phone_dialout) =3D=3D 0)=0A= {=0A= log(LL_ERR, "check_config: local-phone-dialout not set in entry = %d!", i);=0A= error++;=0A= --- 1327,1333 ----=0A= log(LL_ERR, "check_config: remote-phone-dialout not set in entry = %d!", i);=0A= error++;=0A= }=0A= ! if(strlen(cep->local_phone_dialout.number) =3D=3D 0)=0A= {=0A= log(LL_ERR, "check_config: local-phone-dialout not set in entry = %d!", i);=0A= error++;=0A= ***************=0A= *** 1291,1297 ****=0A= =0A= if(cep->inout !=3D DIR_OUTONLY)=0A= {=0A= ! if(strlen(cep->local_phone_incoming) =3D=3D 0)=0A= {=0A= log(LL_ERR, "check_config: local-phone-incoming not set in entry = %d!", i);=0A= error++;=0A= --- 1338,1344 ----=0A= =0A= if(cep->inout !=3D DIR_OUTONLY)=0A= {=0A= ! if(strlen(cep->local_phone_incoming.number) =3D=3D 0)=0A= {=0A= log(LL_ERR, "check_config: local-phone-incoming not set in entry = %d!", i);=0A= error++;=0A= ***************=0A= *** 1616,1622 ****=0A= fprintf(PFILE, "remote-phone-dialout =3D %s\t\t# telephone number = for dialing out to remote\n", cep->remote_numbers[0].number);=0A= }=0A= =0A= ! fprintf(PFILE, "local-phone-dialout =3D %s\t\t# show this number = to remote when dialling out\n", cep->local_phone_dialout);=0A= fprintf(PFILE, "dialout-type =3D %s\n", cep->dialouttype ? = "calledback\t\t# i am called back by remote" : "normal\t\t# i am not = called back by remote");=0A= }=0A= =0A= --- 1663,1669 ----=0A= fprintf(PFILE, "remote-phone-dialout =3D %s\t\t# telephone number = for dialing out to remote\n", cep->remote_numbers[0].number);=0A= }=0A= =0A= ! fprintf(PFILE, "local-phone-dialout =3D %s\t\t# show this number = to remote when dialling out\n", cep->local_phone_dialout.number);=0A= fprintf(PFILE, "dialout-type =3D %s\n", cep->dialouttype ? = "calledback\t\t# i am called back by remote" : "normal\t\t# i am not = called back by remote");=0A= }=0A= =0A= ***************=0A= *** 1624,1630 ****=0A= {=0A= int n;=0A= =0A= ! fprintf(PFILE, "local-phone-incoming =3D %s\t\t# incoming calls = must match this (mine) telephone number\n", cep->local_phone_incoming);=0A= for (n =3D 0; n < cep->incoming_numbers_count; n++)=0A= fprintf(PFILE, "remote-phone-incoming =3D %s\t\t# this is a valid = remote number to call me\n",=0A= cep->remote_phone_incoming[n].number);=0A= --- 1671,1677 ----=0A= {=0A= int n;=0A= =0A= ! fprintf(PFILE, "local-phone-incoming =3D %s\t\t# incoming calls = must match this (mine) telephone number\n", = cep->local_phone_incoming.number);=0A= for (n =3D 0; n < cep->incoming_numbers_count; n++)=0A= fprintf(PFILE, "remote-phone-incoming =3D %s\t\t# this is a valid = remote number to call me\n",=0A= cep->remote_phone_incoming[n].number);=0A= *** /usr/src/usr.sbin/i4b/isdnd.orig/support.c Thu Oct 18 13:58:49 2001=0A= --- /usr/src/usr.sbin/i4b/isdnd/support.c Mon Feb 25 17:29:04 2002=0A= ***************=0A= *** 150,156 ****=0A= * find entry by drivertype and driverunit and setup for dialing out=0A= = *------------------------------------------------------------------------= ---*/=0A= cfg_entry_t *=0A= ! find_by_device_for_dialoutnumber(int drivertype, int driverunit, int = cmdlen, char *cmd)=0A= {=0A= cfg_entry_t *cep =3D NULL;=0A= int i, j;=0A= --- 150,156 ----=0A= * find entry by drivertype and driverunit and setup for dialing out=0A= = *------------------------------------------------------------------------= ---*/=0A= cfg_entry_t *=0A= ! find_by_device_for_dialoutnumber(msg_dialoutnumber_ind_t *mp)=0A= {=0A= cfg_entry_t *cep =3D NULL;=0A= int i, j;=0A= ***************=0A= *** 161,168 ****=0A= =0A= /* compare driver type and unit */=0A= =0A= ! if(!((cep->usrdevicename =3D=3D drivertype) &&=0A= ! (cep->usrdeviceunit =3D=3D driverunit)))=0A= {=0A= continue;=0A= }=0A= --- 161,168 ----=0A= =0A= /* compare driver type and unit */=0A= =0A= ! if(!((cep->usrdevicename =3D=3D mp->driver) &&=0A= ! (cep->usrdeviceunit =3D=3D mp->driver_unit)))=0A= {=0A= continue;=0A= }=0A= ***************=0A= *** 195,211 ****=0A= =0A= /* check number and copy to cep->remote_numbers[] */=0A= =0A= ! for(j =3D 0; j < cmdlen; j++)=0A= {=0A= ! if(!(isdigit(*(cmd+j))))=0A= {=0A= DBGL(DL_MSG, (log(LL_DBG, "find_by_device_for_dialoutnumber: entry = %d, dial string contains non-digit at pos %d", i, j)));=0A= return(NULL);=0A= }=0A= /* fill in number to dial */=0A= ! cep->remote_numbers[0].number[j] =3D *(cmd+j);=0A= } =0A= cep->remote_numbers[0].number[j] =3D '\0';=0A= cep->remote_numbers_count =3D 1;=0A= =0A= if((setup_dialout(cep)) =3D=3D GOOD)=0A= --- 195,225 ----=0A= =0A= /* check number and copy to cep->remote_numbers[] */=0A= =0A= ! for(j =3D 0; j < mp->cmdlen; j++)=0A= {=0A= ! if(!(isdigit(*(mp->cmd+j))))=0A= {=0A= DBGL(DL_MSG, (log(LL_DBG, "find_by_device_for_dialoutnumber: entry = %d, dial string contains non-digit at pos %d", i, j)));=0A= return(NULL);=0A= }=0A= /* fill in number to dial */=0A= ! cep->remote_numbers[0].number[j] =3D *(mp->cmd+j);=0A= } =0A= cep->remote_numbers[0].number[j] =3D '\0';=0A= + =0A= + /* XXX subaddr does not have to be a digit! isgraph() would be a = better idea */=0A= + for(j =3D 0; j < mp->subaddrlen; j++)=0A= + {=0A= + if(!(isdigit(*(mp->subaddr+j))))=0A= + {=0A= + DBGL(DL_MSG, (log(LL_DBG, "find_by_device_for_dialoutnumber: entry = %d, subaddr string contains non-digit at pos %d", i, j)));=0A= + return(NULL);=0A= + }=0A= + /* fill in number to dial */=0A= + cep->remote_numbers[0].subaddr[j] =3D *(mp->subaddr+j);=0A= + } =0A= + cep->remote_numbers[0].subaddr[j] =3D '\0';=0A= + =0A= cep->remote_numbers_count =3D 1;=0A= =0A= if((setup_dialout(cep)) =3D=3D GOOD)=0A= ***************=0A= *** 273,279 ****=0A= =0A= cep->remote_numbers[0].number[0] =3D '\0';=0A= cep->remote_numbers_count =3D 0;=0A= ! cep->remote_phone_dialout[0] =3D '\0';=0A= =0A= bzero(cep->keypad, KEYPAD_MAX);=0A= strncpy(cep->keypad, cmd, cmdlen);=0A= --- 287,293 ----=0A= =0A= cep->remote_numbers[0].number[0] =3D '\0';=0A= cep->remote_numbers_count =3D 0;=0A= ! cep->remote_phone_dialout.number[0] =3D '\0';=0A= =0A= bzero(cep->keypad, KEYPAD_MAX);=0A= strncpy(cep->keypad, cmd, cmdlen);=0A= ***************=0A= *** 430,439 ****=0A= =0A= /* check my number */=0A= =0A= ! if(strncmp(cep->local_phone_incoming, mp->dst_telno, = strlen(cep->local_phone_incoming)))=0A= {=0A= DBGL(DL_MSG, (log(LL_DBG, "find_matching_entry_incoming: entry %d, = myno %s !=3D incomingno %s", i,=0A= ! cep->local_phone_incoming, mp->dst_telno)));=0A= continue;=0A= }=0A= =0A= --- 444,460 ----=0A= =0A= /* check my number */=0A= =0A= ! if(strncmp(cep->local_phone_incoming.number, mp->dst_telno, = strlen(cep->local_phone_incoming.number)))=0A= {=0A= DBGL(DL_MSG, (log(LL_DBG, "find_matching_entry_incoming: entry %d, = myno %s !=3D incomingno %s", i,=0A= ! cep->local_phone_incoming.number, mp->dst_telno)));=0A= ! continue;=0A= ! }=0A= ! =0A= ! if (cep->usesubaddr && strncmp(cep->local_phone_incoming.subaddr, = mp->dst_subaddr, strlen(cep->local_phone_incoming.subaddr)))=0A= ! {=0A= ! DBGL(DL_MSG, (log(LL_DBG, "find_matching_entry_incoming: entry %d, = myno %s !=3D incomingsub %s", i,=0A= ! cep->local_phone_incoming.subaddr, mp->dst_subaddr)));=0A= continue;=0A= }=0A= =0A= ***************=0A= *** 442,456 ****=0A= for (n =3D 0; n < cep->incoming_numbers_count; n++)=0A= {=0A= incoming_number_t *in =3D &cep->remote_phone_incoming[n];=0A= ! if(in->number[0] =3D=3D '*')=0A= break;=0A= ! if(strncmp(in->number, mp->src_telno, strlen(in->number)))=0A= {=0A= DBGL(DL_MSG, (log(LL_DBG, "find_matching_entry_incoming: entry %d, = remno %s !=3D incomingfromno %s", i,=0A= in->number, mp->src_telno)));=0A= }=0A= ! else=0A= ! break;=0A= }=0A= if (n >=3D cep->incoming_numbers_count)=0A= continue;=0A= --- 463,496 ----=0A= for (n =3D 0; n < cep->incoming_numbers_count; n++)=0A= {=0A= incoming_number_t *in =3D &cep->remote_phone_incoming[n];=0A= ! if(in->number[0] =3D=3D '*' && cep->usesubaddr && in->subaddr[0] = =3D=3D '*')=0A= ! break;=0A= ! =0A= ! if(in->number[0] =3D=3D '*' && !cep->usesubaddr)=0A= break;=0A= ! =0A= ! if(in->number[0] =3D=3D '*' && cep->usesubaddr && = !strncmp(in->subaddr, mp->src_subaddr, strlen(in->subaddr)))=0A= ! break;=0A= ! =0A= ! if(strncmp(in->number, mp->src_telno, strlen(in->number)) && = !cep->usesubaddr)=0A= {=0A= DBGL(DL_MSG, (log(LL_DBG, "find_matching_entry_incoming: entry %d, = remno %s !=3D incomingfromno %s", i,=0A= in->number, mp->src_telno)));=0A= }=0A= ! =0A= ! if(strncmp(in->number, mp->src_telno, strlen(in->number)) && = cep->usesubaddr && in->subaddr[0] =3D=3D '*')=0A= ! {=0A= ! DBGL(DL_MSG, (log(LL_DBG, "find_matching_entry_incoming: entry %d, = remno %s !=3D incomingfromno %s", i,=0A= ! in->number, mp->src_telno)));=0A= ! }=0A= ! =0A= ! if(strncmp(in->number, mp->src_telno, strlen(in->number)) && = cep->usesubaddr && strncmp(in->subaddr, mp->src_subaddr, = strlen(in->subaddr)))=0A= ! {=0A= ! DBGL(DL_MSG, (log(LL_DBG, "find_matching_entry_incoming: entry %d, = remno %s !=3D incomingfromno %s", i,=0A= ! in->number, mp->src_telno)));=0A= ! }=0A= ! =0A= ! break;=0A= }=0A= if (n >=3D cep->incoming_numbers_count)=0A= continue;=0A= ***************=0A= *** 583,589 ****=0A= =0A= /* cp number to real one used */=0A= =0A= ! strcpy(cep->real_phone_incoming, mp->src_telno);=0A= =0A= /* copy display string */=0A= =0A= --- 623,629 ----=0A= =0A= /* cp number to real one used */=0A= =0A= ! strcpy(cep->real_phone_incoming.number, mp->src_telno);=0A= =0A= /* copy display string */=0A= =0A= *** /usr/src/usr.sbin/i4b/isdnd.orig/timer.c Sat Jul 21 13:29:40 2001=0A= --- /usr/src/usr.sbin/i4b/isdnd/timer.c Sun Feb 24 16:46:33 2002=0A= ***************=0A= *** 205,212 ****=0A= {=0A= log(LL_CHD, "%05d %s answering: incoming call from %s to %s",=0A= cep->cdid, cep->name, =0A= ! cep->real_phone_incoming,=0A= ! cep->local_phone_incoming);=0A= next_state(cep, EV_MCI);=0A= }=0A= break;=0A= --- 205,212 ----=0A= {=0A= log(LL_CHD, "%05d %s answering: incoming call from %s to %s",=0A= cep->cdid, cep->name, =0A= ! cep->real_phone_incoming.number,=0A= ! cep->local_phone_incoming.number);=0A= next_state(cep, EV_MCI);=0A= }=0A= break;=0A= *** /usr/src/usr.sbin/i4b/isdnd.orig/rc_parse.y Sat Jul 21 13:29:40 2001=0A= --- /usr/src/usr.sbin/i4b/isdnd/rc_parse.y Mon Feb 25 16:53:35 2002=0A= ***************=0A= *** 117,123 ****=0A= --- 117,125 ----=0A= %token ISDNTXDELIN=0A= %token ISDNTXDELOUT=0A= %token LOCAL_PHONE_DIALOUT=0A= + %token LOCAL_SUBADDR_DIALOUT=0A= %token LOCAL_PHONE_INCOMING=0A= + %token LOCAL_SUBADDR_INCOMING=0A= %token LOGEVENTS=0A= %token MAILER=0A= %token MAILTO=0A= ***************=0A= *** 147,153 ****=0A= --- 149,157 ----=0A= %token REGPROG=0A= %token REMOTE_NUMBERS_HANDLING=0A= %token REMOTE_PHONE_DIALOUT=0A= + %token REMOTE_SUBADDR_DIALOUT=0A= %token REMOTE_PHONE_INCOMING=0A= + %token REMOTE_SUBADDR_INCOMING=0A= %token RESTRICTEDCMD=0A= %token ROTATESUFFIX=0A= %token RTPRIO=0A= ***************=0A= *** 156,161 ****=0A= --- 160,166 ----=0A= %token UNITLENGTH=0A= %token UNITLENGTHSRC=0A= %token USEACCTFILE=0A= + %token USESUBADDR=0A= %token USEDOWN=0A= %token USRDEVICENAME=0A= %token USRDEVICEUNIT=0A= ***************=0A= *** 427,433 ****=0A= --- 432,440 ----=0A= | DISCONNECTPROG { $$ =3D DISCONNECTPROG; }=0A= | IDLE_ALG_OUT { $$ =3D IDLE_ALG_OUT; }=0A= | LOCAL_PHONE_INCOMING { $$ =3D LOCAL_PHONE_INCOMING; }=0A= + | LOCAL_SUBADDR_INCOMING { $$ =3D LOCAL_SUBADDR_INCOMING; }=0A= | LOCAL_PHONE_DIALOUT { $$ =3D LOCAL_PHONE_DIALOUT; }=0A= + | LOCAL_SUBADDR_DIALOUT { $$ =3D LOCAL_SUBADDR_DIALOUT; }=0A= | NAME { $$ =3D NAME; } =0A= | PPP_EXPECT_AUTH { $$ =3D PPP_EXPECT_AUTH; }=0A= | PPP_EXPECT_NAME { $$ =3D PPP_EXPECT_NAME; }=0A= ***************=0A= *** 438,444 ****=0A= --- 445,453 ----=0A= | REACTION { $$ =3D REACTION; }=0A= | REMOTE_NUMBERS_HANDLING { $$ =3D REMOTE_NUMBERS_HANDLING; }=0A= | REMOTE_PHONE_INCOMING { $$ =3D REMOTE_PHONE_INCOMING; }=0A= + | REMOTE_SUBADDR_INCOMING { $$ =3D REMOTE_SUBADDR_INCOMING; }=0A= | REMOTE_PHONE_DIALOUT { $$ =3D REMOTE_PHONE_DIALOUT; }=0A= + | REMOTE_SUBADDR_DIALOUT { $$ =3D REMOTE_SUBADDR_DIALOUT; }=0A= | UNITLENGTHSRC { $$ =3D UNITLENGTHSRC; } =0A= | USRDEVICENAME { $$ =3D USRDEVICENAME; }=0A= | VALID { $$ =3D VALID; }=0A= ***************=0A= *** 475,480 ****=0A= --- 484,490 ----=0A= | PPP_AUTH_RECHALLENGE { $$ =3D PPP_AUTH_RECHALLENGE; }=0A= | PPP_AUTH_PARANOID { $$ =3D PPP_AUTH_PARANOID; }=0A= | USEDOWN { $$ =3D USEDOWN; }=0A= + | USESUBADDR { $$ =3D USESUBADDR; }=0A= ;=0A= =0A= /* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D */=0A= *** /usr/src/usr.sbin/i4b/isdnd.orig/rc_scan.l Sat Jul 21 13:29:40 2001=0A= --- /usr/src/usr.sbin/i4b/isdnd/rc_scan.l Mon Feb 25 16:52:02 2002=0A= ***************=0A= *** 128,134 ****=0A= --- 128,136 ----=0A= isdntxdel-incoming { return ISDNTXDELIN; }=0A= isdntxdel-outgoing { return ISDNTXDELOUT; }=0A= local-phone-dialout { return LOCAL_PHONE_DIALOUT; }=0A= + local-subaddr-dialout { return LOCAL_SUBADDR_DIALOUT; }=0A= local-phone-incoming { return LOCAL_PHONE_INCOMING; }=0A= + local-subaddr-incoming { return LOCAL_SUBADDR_INCOMING; }=0A= mailer { return MAILER; }=0A= mailto { return MAILTO; }=0A= maxconnecttime { return MAXCONNECTTIME; }=0A= ***************=0A= *** 162,168 ****=0A= --- 164,172 ----=0A= regprog { return REGPROG; }=0A= remdial-handling { return REMOTE_NUMBERS_HANDLING; }=0A= remote-phone-dialout { return REMOTE_PHONE_DIALOUT; }=0A= + remote-subaddr-dialout { return REMOTE_SUBADDR_DIALOUT; }=0A= remote-phone-incoming { return REMOTE_PHONE_INCOMING; }=0A= + remote-subaddr-incoming { return REMOTE_SUBADDR_INCOMING; }=0A= rotatesuffix { return ROTATESUFFIX; }=0A= rtprio { return RTPRIO; }=0A= system { return SYSTEM; }=0A= ***************=0A= *** 170,175 ****=0A= --- 174,180 ----=0A= unitlength { return UNITLENGTH; }=0A= unitlengthsrc { return UNITLENGTHSRC; }=0A= useacctfile { return USEACCTFILE; }=0A= + usesubaddr { return USESUBADDR; }=0A= usrdevicename { return USRDEVICENAME; }=0A= usrdeviceunit { return USRDEVICEUNIT; }=0A= usedown { return USEDOWN; }=0A= *** /usr/src/sys/i4b/layer3.orig/i4b_l2if.c Thu Oct 18 13:53:49 2001=0A= --- /usr/src/sys/i4b/layer3/i4b_l2if.c Mon Feb 25 17:34:16 2002=0A= ***************=0A= *** 422,428 ****=0A= --- 422,430 ----=0A= u_char *ptr;=0A= int len;=0A= int slen =3D strlen(cd->src_telno);=0A= + int sslen =3D strlen(cd->src_subaddr);=0A= int dlen =3D strlen(cd->dst_telno);=0A= + int dslen =3D strlen(cd->dst_subaddr);=0A= int klen =3D strlen(cd->keypad); =0A= =0A= /*=0A= ***************=0A= *** 437,443 ****=0A= --- 439,447 ----=0A= len =3D I_FRAME_HDRLEN +=0A= MSG_SETUP_LEN +=0A= (slen ? (3+slen) : 0) +=0A= + (sslen ? (3+sslen) : 0) +=0A= (dlen ? (3+dlen) : 0) +=0A= + (dslen ? (3+dslen) : 0) +=0A= (klen ? (2+klen) : 0) +=0A= (cd->bprot =3D=3D BPROT_NONE ? 1 : 0);=0A= =0A= ***************=0A= *** 521,526 ****=0A= --- 525,539 ----=0A= ptr +=3D slen;=0A= }=0A= =0A= + if(sslen)=0A= + {=0A= + *ptr++ =3D IEI_CALLINGPS; /* calling subaddr */=0A= + *ptr++ =3D 1+sslen; /* calling subaddr len */=0A= + *ptr++ =3D 0x80; /* XXX */=0A= + strncpy(ptr, cd->src_subaddr, sslen);=0A= + ptr +=3D sslen;=0A= + }=0A= + =0A= if(dlen)=0A= {=0A= *ptr++ =3D IEI_CALLEDPN; /* called party no */=0A= ***************=0A= *** 528,533 ****=0A= --- 541,555 ----=0A= *ptr++ =3D NUMBER_TYPEPLAN; /* type of number, number plan id */=0A= strncpy(ptr, cd->dst_telno, dlen);=0A= ptr +=3D dlen;=0A= + }=0A= + =0A= + if(dslen)=0A= + { =0A= + *ptr++ =3D IEI_CALLEDPS; /* calling party subaddr */=0A= + *ptr++ =3D 1+dslen; /* calling party subaddr len */=0A= + *ptr++ =3D 0x80; /* XXX */=0A= + strncpy(ptr, cd->dst_subaddr, dslen);=0A= + ptr +=3D dslen;=0A= }=0A= =0A= DL_Data_Req(ctrl_desc[cd->controller].unit, m);=0A= *** /usr/src/sys/i4b/layer4.orig/i4b_i4bdrv.c Sun Dec 30 10:27:28 2001=0A= --- /usr/src/sys/i4b/layer4/i4b_i4bdrv.c Mon Feb 25 17:30:29 2002=0A= ***************=0A= *** 441,446 ****=0A= --- 441,449 ----=0A= strcpy(cd->dst_telno, mcr->dst_telno);=0A= strcpy(cd->src_telno, mcr->src_telno);=0A= =0A= + strcpy(cd->dst_subaddr, mcr->dst_subaddr);=0A= + strcpy(cd->src_subaddr, mcr->src_subaddr);=0A= + =0A= if(mcr->keypad[0] !=3D '\0')=0A= strcpy(cd->keypad, mcr->keypad);=0A= else=0A= *** /usr/src/sys/i4b/layer4.orig/i4b_l4.c Thu Oct 18 13:53:49 2001=0A= --- /usr/src/sys/i4b/layer4/i4b_l4.c Sun Feb 24 16:45:53 2002=0A= ***************=0A= *** 230,235 ****=0A= --- 230,236 ----=0A= if((m =3D i4b_Dgetmbuf(sizeof(msg_dialoutnumber_ind_t))) !=3D NULL)=0A= {=0A= msg_dialoutnumber_ind_t *md =3D (msg_dialoutnumber_ind_t *)m->m_data;=0A= + int i;=0A= =0A= md->header.type =3D MSG_DIALOUTNUMBER_IND;=0A= md->header.cdid =3D -1;=0A= ***************=0A= *** 237,247 ****=0A= md->driver =3D driver;=0A= md->driver_unit =3D driver_unit;=0A= =0A= ! if(cmdlen > TELNO_MAX)=0A= ! cmdlen =3D TELNO_MAX;=0A= =0A= ! md->cmdlen =3D cmdlen;=0A= ! bcopy(cmd, md->cmd, cmdlen);=0A= i4bputqueue(m);=0A= }=0A= }=0A= --- 238,256 ----=0A= md->driver =3D driver;=0A= md->driver_unit =3D driver_unit;=0A= =0A= ! for (i =3D 0; i < cmdlen; i++)=0A= ! if (cmd[i] =3D=3D '*')=0A= ! break;=0A= =0A= ! /* TELNO_MAX is _with_ tailing '\0', so max is actually TELNO_MAX - = 1 */=0A= ! md->cmdlen =3D (i < TELNO_MAX - 1 ? i : TELNO_MAX - 1);=0A= ! /* skip the (first) '*' */=0A= ! md->subaddrlen =3D (cmdlen - i - 1 < SUBADDR_MAX - 1 ? cmdlen - i - = 1 : SUBADDR_MAX - 1);=0A= ! =0A= ! bcopy(cmd, md->cmd, md->cmdlen);=0A= ! bcopy(cmd+i+1, md->subaddr, md->subaddrlen); =0A= ! =0A= ! NDBGL4(L4_TIMO, "cmd[%d]=3D%s, subaddr[%d]=3D%s", md->cmdlen, = md->cmd, md->subaddrlen, md->subaddr);=0A= i4bputqueue(m);=0A= }=0A= }=0A= *** /usr/src/usr.sbin/i4b/isdnphone.orig/main.c Thu Oct 18 13:58:49 2001=0A= --- /usr/src/usr.sbin/i4b/isdnphone/main.c Sun Feb 24 16:46:24 2002=0A= ***************=0A= *** 67,79 ****=0A= int bschar;=0A= int ret;=0A= int opt_n =3D 0;=0A= int opt_h =3D 0;=0A= int opt_k =3D 0;=0A= char *number =3D "";=0A= =0A= numberbuffer[0] =3D '\0'; =0A= =0A= ! while ((c =3D getopt(argc, argv, "dhk:n:u:")) !=3D -1)=0A= {=0A= switch(c)=0A= {=0A= --- 67,81 ----=0A= int bschar;=0A= int ret;=0A= int opt_n =3D 0;=0A= + int opt_s =3D 0;=0A= int opt_h =3D 0;=0A= int opt_k =3D 0;=0A= char *number =3D "";=0A= + char *subaddr =3D "";=0A= =0A= numberbuffer[0] =3D '\0'; =0A= =0A= ! while ((c =3D getopt(argc, argv, "dhk:n:s:u:")) !=3D -1)=0A= {=0A= switch(c)=0A= {=0A= ***************=0A= *** 94,99 ****=0A= --- 96,106 ----=0A= number =3D optarg;=0A= opt_n =3D 1;=0A= break;=0A= + =0A= + case 's':=0A= + subaddr =3D optarg;=0A= + opt_s =3D 1;=0A= + break;=0A= =0A= case 'u':=0A= opt_unit =3D atoi(optarg);=0A= ***************=0A= *** 121,127 ****=0A= =0A= if(opt_n)=0A= {=0A= ! sprintf(commandbuffer, "D%s", number);=0A= =0A= }=0A= else if(opt_k)=0A= --- 128,137 ----=0A= =0A= if(opt_n)=0A= {=0A= ! if (opt_s)=0A= ! sprintf(commandbuffer, "D%s*%s", number, subaddr);=0A= ! else=0A= ! sprintf(commandbuffer, "D%s", number);=0A= =0A= }=0A= else if(opt_k)=0A= *** /usr/src/sys/i4b/include.orig/i4b_l3l4.h Mon Feb 18 21:37:31 2002=0A= --- /usr/src/sys/i4b/include/i4b_l3l4.h Mon Feb 25 17:33:22 2002=0A= ***************=0A= *** 154,160 ****=0A= --- 154,162 ----=0A= int call_state; /* from incoming SETUP */=0A= =0A= u_char dst_telno[TELNO_MAX]; /* destination number */=0A= + u_char dst_subaddr[SUBADDR_MAX]; /* destination subaddr */=0A= u_char src_telno[TELNO_MAX]; /* source number */=0A= + u_char src_subaddr[SUBADDR_MAX]; /* source subaddr */=0A= =0A= int scr_ind; /* screening ind for incoming call */=0A= int prs_ind; /* presentation ind for incoming call */=0A= ------=_NextPart_000_0005_01C1BEEA.6CD8D960 Content-Type: application/octet-stream; name="useless_comment.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="useless_comment.diff" *** /usr/src/usr.sbin/i4b/isdnd/fsm.c.orig Tue Jan 29 20:34:56 2002=0A= --- /usr/src/usr.sbin/i4b/isdnd/fsm.c Tue Jan 29 20:35:48 2002=0A= ***************=0A= *** 210,216 ****=0A= {=0A= cep->dial_count++;=0A= =0A= ! if(cep->dial_count < cep->dialretries || cep->dialretries =3D=3D -1) = /* Added by FST for unlimited dialing (sorry, = but I needed it) */=0A= {=0A= /* inside normal retry cycle */=0A= =0A= --- 210,216 ----=0A= {=0A= cep->dial_count++;=0A= =0A= ! if(cep->dial_count < cep->dialretries || cep->dialretries =3D=3D -1)=0A= {=0A= /* inside normal retry cycle */=0A= =0A= ***************=0A= *** 288,294 ****=0A= { =0A= cep->dial_count++;=0A= =0A= ! if(cep->dial_count < cep->dialretries || cep->dialretries =3D=3D -1) = /* Added by FST for unlimited dialing (sorry, = but I needed it) */=0A= {=0A= /* inside normal retry cycle */=0A= =0A= --- 288,294 ----=0A= { =0A= cep->dial_count++;=0A= =0A= ! if(cep->dial_count < cep->dialretries || cep->dialretries =3D=3D -1)=0A= {=0A= /* inside normal retry cycle */=0A= =0A= ------=_NextPart_000_0005_01C1BEEA.6CD8D960-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-isdn" in the body of the message