Re: ISDN4BSD - Dropped Calls

"Hans Petter" <[email protected]>
Newsgroups gmane.os.freebsd.devel.isdn
Message-ID <[email protected]>
   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
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-isdn
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.