From owner-freebsd-isdn@FreeBSD.ORG Sat Jan 6 21:56:56 2007 Return-Path: X-Original-To: freebsd-isdn@freebsd.org Delivered-To: freebsd-isdn@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 28F7E16A40F for ; Sat, 6 Jan 2007 21:56:56 +0000 (UTC) (envelope-from mc467741@c2i.net) Received: from swip.net (mailfe08.swip.net [212.247.154.225]) by mx1.freebsd.org (Postfix) with ESMTP id 4DF1F13C455 for ; Sat, 6 Jan 2007 21:56:55 +0000 (UTC) (envelope-from mc467741@c2i.net) X-Cloudmark-Score: 0.000000 [] Received: from [84.188.236.174] (account mc467741@c2i.net) by mailbe03.swip.net (CommuniGate Pro WebUser 5.0.12) with HTTP id 54124816; Sat, 06 Jan 2007 22:56:53 +0100 From: "Hans Petter" To: Oliver von Bueren , freebsd-isdn@freebsd.org X-Mailer: CommuniGate Pro WebUser v5.0.12 Date: Sat, 06 Jan 2007 22:56:53 +0100 Message-ID: In-Reply-To: <45A012B3.9050809@ovb.ch> References: <459FCD1E.9080303@ovb.ch> <45A012B3.9050809@ovb.ch> X-Priority: 3 Content-Transfer-Encoding: 8bit MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Subject: Re: ISDN4BSD - Dropped Calls X-BeenThere: freebsd-isdn@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Using ISDN with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Jan 2007 21:56:56 -0000 Hi Oliver, On Sat, 06 Jan 2007 22:20:51 +0100 Oliver von Bueren wrote: > Hello Hans Petter > > Thanks for pointing me to the reason for the >STATUS_ENQUIRY messages with an invalid call reference. >I've checked the behaviour after changing the code in > dss1_l2_get_mbuf to not append any data but send the >packet on without the STATUS_ENQUIRY attached. This did >not change the overall result, except of course that the >releasing of the "fake" call does not happen any more. >Kind of a prove that this method used here does not >confuse the PBX. > > As you wrote, a STATUS_ENQUIRY (I'm now talking about >the one for the real call) needs to be answered by the >PBX, which according to the trace, it does not. No idea >why this is, I'll try to get a trace form the PBX.< br>> > The strange thing is, that a lot of other applications >connected to that PBX/port run without problem, even a >FreeBSD 4.3 with the then-current i4b and some voice >response system. Amongst the other working things are >hardware phones/modems and even an active Card (Eicon >Diva Pro 2.0) running under windows with the sort-of >cygwin-port of Asterisk (from >http://www.asteriskwin32.com/) runs without any problems. >But as you can guess, I'd like to get away from that >stone-age Asterisk version and change to my FreeBSD >server. Most ISDN equipment I have seen never queries for STATUS, whatsoever. So maybe your provider did not see a reason to support that. > > If I find anything, I'll keep you posted. > If you've any ideas on how to fix my problem, drop me a >note. I could implement an option that allows you to disable checking of status, but I really don't like to do that. In "cd_set_state()" you have the following code: cd->state = newstate; /* re-start timeout; * the timeout is increased when L1 is not activated * the timeout is always running while the CD is allocated */ __callout_reset(&cd->set_state_callout, (L3_STATES_TIMEOUT_DELAY[newstate]*hz) + (sc->L1_activity ? 0 : L1_ACTIVATION_TIME), & nbsp; (void *)(void *)&cd_set_state_timeout, cd); if(send_status_enquiry) { /* need to check status regularly */ dss1_l3_tx_status_enquiry(cd); } You can try putting: if (send_status_enquiry) { newstate--; } Before: cd->state = newstate; That will prevent the status expiry timer from elapsing. Yours --HPS