[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