[asterisk-bugs] [Asterisk 0013488]: mISDN rejects incoming calls

Asterisk Bug Tracker noreply at bugs.digium.com
Thu Nov 20 03:25:16 CST 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=13488 
====================================================================== 
Reported By:                Christian_Pinedo
Assigned To:                crich
====================================================================== 
Project:                    Asterisk
Issue ID:                   13488
Category:                   Channels/chan_misdn
Reproducibility:            random
Severity:                   major
Priority:                   normal
Status:                     assigned
Asterisk Version:           1.4.21.2 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             2008-09-16 08:15 CDT
Last Modified:              2008-11-20 03:25 CST
====================================================================== 
Summary:                    mISDN rejects incoming calls
Description: 
Asterisk seems to work well but sometimes per day calls from pstn are
rejected and outgoing calls cann't be done also. This is the output of a
rejected incoming call:

Tue Sep 16 09:58:11 2008: P[ 1]  channel with stid:0 for one second still
in use!
Tue Sep 16 09:58:11 2008: P[ 1]  set_channel: bc->channel:0 channel:1
Tue Sep 16 09:58:11 2008: P[ 1]  I IND :NEW_CHANNEL oad:943336600
dad:943445807 pid:23 state:none
Tue Sep 16 09:58:11 2008: P[ 1]   --> channel:1 mode:TE cause:16 ocause:16
rad: cad:
Tue Sep 16 09:58:11 2008: P[ 1]   --> info_dad: onumplan:0 dnumplan:2
rnumplan:  cpnnumplan:0
Tue Sep 16 09:58:11 2008: P[ 1]   --> caps:Speech pi:0 keypad:
sending_complete:1
Tue Sep 16 09:58:11 2008: P[ 1]  Chan not existing at the moment
bc->l3id:20012 bc:0x81e0374 event:NEW_CHANNEL port:1 channel:1
Tue Sep 16 09:58:11 2008: P[ 1]  NO USERUESRINFO
Tue Sep 16 09:58:11 2008: P[ 1]   !! NO FREE CHAN IN STACK
Tue Sep 16 09:58:11 2008: P[ 1]  Requested Channel Already in Use
releasing this call with cause 34!!!!
Tue Sep 16 09:58:11 2008: P[ 1]  I SEND:RELEASE_COMPLETE oad:943336600
dad:943445807 pid:23
Tue Sep 16 09:58:11 2008: P[ 1]   --> channel:0 mode:TE cause:16 ocause:34
rad: cad:
Tue Sep 16 09:58:11 2008: P[ 1]   --> info_dad: onumplan:0 dnumplan:2
rnumplan:  cpnnumplan:0
Tue Sep 16 09:58:11 2008: P[ 1]   --> caps:Speech pi:0 keypad:
sending_complete:1
Tue Sep 16 09:58:11 2008: P[ 1]  $$$ CLEANUP CALLED pid:23
Tue Sep 16 09:58:11 2008: P[ 1]  couldn't handle event
Tue Sep 16 09:58:11 2008: P[ 1]  CC_RELEASE_COMPLETE|CONFIRM [TE] 
Tue Sep 16 09:58:11 2008: P[ 1]  I IND :RELEASE_COMPLETE oad: dad: pid:23
state:none
Tue Sep 16 09:58:11 2008: P[ 1]   --> channel:0 mode:TE cause:16 ocause:34
rad: cad:
Tue Sep 16 09:58:11 2008: P[ 1]   --> info_dad: onumplan:0 dnumplan:0
rnumplan:0 cpnnumplan:0
Tue Sep 16 09:58:11 2008: P[ 1]   --> caps:Speech pi:0 keypad:
sending_complete:0
Tue Sep 16 09:58:11 2008: P[ 1]   --> no Ch, so we've already released.
Tue Sep 16 09:58:11 2008: P[ 0]  Cannot hangup chan, no ch
Tue Sep 16 09:58:11 2008: P[ 1]  release_chan: Ch not found!
Tue Sep 16 09:58:11 2008: P[ 1]  $$$ CLEANUP CALLED pid:23
Tue Sep 16 09:58:11 2008: P[ 1]  $$$ CLEANUP CALLED pid:23

It seems that mISDN has the Port 1 (first BRI) in a bad state and network
tries to send a new incoming mail through this port. I have to exec "misdn
restart port 1" to solve this situation. The rest of BRI links are free and
network tries to send the calls always through port 1 because it thinks
that is free. mISDN thinks that this port is already used and so all call
are rejected.

Software versions:
Debian GNU/Linux 4.0
Kernel 2.6.18
Asterisk 1.4.21.2
Zaptel 1.4.11
mISDN and mISDNuser 1.1.7.2
====================================================================== 

---------------------------------------------------------------------- 
 (0095160) crich (manager) - 2008-11-20 03:25
 http://bugs.digium.com/view.php?id=13488#c95160 
---------------------------------------------------------------------- 
I was thinking a lot about this issue and came to the conclusion, that
chan_mISDN is not using good values for the channel Information Element. 

There are 3 Possibilities to propose a channel in a SETUP Message in ISDN:


1) Propose a channel exclusively
2) Propose a channel, but accepting alternatives
3) Propose no channel at all (Any Channel) 

chan_mISDN implements the following: 

NT-Mode: Channel-Mode 1) is used everytime
TE-Mode (PTP): Channel-Mode 1) is used everytime
TE-Mode (PMP): Channel-Mode 3) is used everytime

The problem here is that channel Mode 1) is also used by the telco
switches, so when chan_mISDN exclusively requests a channel too, it might
collide with the Providers channel Selection. 

A much better way to select a channel would be Mode 2 and 3 in TE Mode and
Mode 1 in NT Mode. Then the NT would be the final Master for the channel
selection and collisions wouldn't happen at all. 

To implement this mechanism a lot of work has to be done in the isdn_lib.c
where chan_mISDN implements the cannel selection. The places where the
functions find_free_chan_in_stack() and empty_chan_in_stack() are called
and the channel IE decoding/coding function calls are affected. 

I won't be able to handle this in a quick timeframe :/ 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2008-11-20 03:25 crich          Note Added: 0095160                          
======================================================================




More information about the asterisk-bugs mailing list