Date: Sat, 06 Jan 2007 22:56:53 +0100 From: "Hans Petter" <mc467741@c2i.net> To: Oliver von Bueren <maillist@ovb.ch>, freebsd-isdn@freebsd.org Subject: Re: ISDN4BSD - Dropped Calls Message-ID: <web-54124816@mailbe03.swip.net> In-Reply-To: <45A012B3.9050809@ovb.ch> References: <459FCD1E.9080303@ovb.ch> <web-51294860@mailbe05.swip.net> <45A012B3.9050809@ovb.ch>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?web-54124816>