No dialtone on a bri_net signalled channel


#1

I’m using a ISDN BRI card (a Swyx SX2, DAHDI driver wcb4xxp) in NT mode to attach Asterisk to an old PBX (as TE, obviously). I’ve got the card installed and working, etc. Calls work from Asterisk to the older PBX (using DIDs), but from the older PBX to Asterisk I get this immediately on seizing the line:

Span 2: Extension s@from-dshs-isdn does not exist.  Rejecting call from '0201'.

If I make a entry in the dialplan of ‘s’ in the ‘from-dshs-isdn’ context, it is immediately run; no dialtone occurs. How can I get a dialtone?

Things I already tried:
A DISA on the s@from-dshs-isdn entry - kinda works but behaves funny and breaks the call logging of the old PBX, as the old PBX thinks dialling has finished before it ever starts.
Ensuring immediate=no in chan_dahdi.conf - made no difference from it being unset.
bri_net_ptmp instead of bri_net - PBX didn’t see the ISDN at all.

I’m guessing I’ve missed something really obvious, but I’ve been trying to fix this for about 4 hours at this point, and have got nowhere.


#2

With ISDN it is the originating device that decides when dialling is complete… You are getting s because it does think it is complete. You need to fix this at the originating side, in which case, Asterisk will start the dialplan at the required number, rather than s.


#3

EDIT: Scratch the below; it was fixable with DAHDI. I set overlapdial=yes on on each of the channels and it now works properly.

 -- Accepting overlap call from '0201' to '<unspecified>' on channel 0/2, span 2
 -- Starting simple switch on 'DAHDI/i2/0201-2'

I’ve gone through every single setting on the older PBX; all seem correct and none control number of digits before dialling, or anything of that ilk.

I put ISDN debug on, and this is what a call startup looks like:

PRI Span: 1
PRI Span: 1 < TEI: 0 State 7(Multi-frame established)
PRI Span: 1 < V(A)=0, V(S)=0, V(R)=0
PRI Span: 1 < K=1, RC=0, l3_initiated=0, reject_except=0, ack_pend=0
PRI Span: 1 < T200_id=0, N200=3, T203_id=8192
PRI Span: 1 < [ 00 01 00 00 08 01 26 05 04 03 80 90 a3 18 01 89 6c 06 00 a1 30 32 30 31 7c 03 80 90 a3 7d 02 91 81 ]
PRI Span: 1 < Informational frame:
PRI Span: 1 < SAPI: 00  C/R: 0 EA: 0
PRI Span: 1 <  TEI: 000        EA: 1
PRI Span: 1 < N(S): 000   0: 0
PRI Span: 1 < N(R): 000   P: 0
PRI Span: 1 < 29 bytes of data
PRI Span: 1 < Protocol Discriminator: Q.931 (8)  len=29
PRI Span: 1 < TEI=0 Call Ref: len= 1 (reference 38/0x26) (Sent from originator)
PRI Span: 1 < Message Type: SETUP (5)
PRI Span: 1 < [04 03 80 90 a3]
PRI Span: 1 < Bearer Capability (len= 5) [ Ext: 1  Coding-Std: 0  Info transfer capability: Speech (0)
PRI Span: 1 <                              Ext: 1  Trans mode/rate: 64kbps, circuit-mode (16)
PRI Span: 1 <                                User information layer 1: A-Law (35)
PRI Span: 1 < [18 01 89]
PRI Span: 1 < Channel ID (len= 3) [ Ext: 1  IntID: Implicit  BRI  Spare: 0  Exclusive  Dchan: 0
PRI Span: 1 <                       ChanSel: B1 channel
PRI Span: 1 <                     ]
PRI Span: 1 < [6c 06 00 a1 30 32 30 31]
PRI Span: 1 < Calling Party Number (len= 8) [ Ext: 0  TON: Unknown Number Type (0)  NPI: Unknown Number Plan (0)
PRI Span: 1 <                                 Presentation: Presentation restricted, User-provided, verified and pas                                                                                                                          sed (33)  '0201' ]
PRI Span: 1 < [7c 03 80 90 a3]
PRI Span: 1 < IE: Low-layer Compatibility (len = 5)
PRI Span: 1 < [7d 02 91 81]
PRI Span: 1 < IE: High-layer Compatibility (len = 4)
PRI Span: 1 -- Got ACK for N(S)=0 to (but not including) N(S)=0
PRI Span: 1 -- T200 requested to stop when not started
PRI Span: 1 T203 requested to start without stopping first
PRI Span: 1 -- Starting T203 timer
PRI Span: 1 -- Making new call for cref 38
PRI Span: 1 Received message for call 0x40907828 on link 0x8c3ba8c TEI/SAPI 0/0
PRI Span: 1 -- Processing Q.931 Call Setup
PRI Span: 1 -- Processing IE 4 (cs0, Bearer Capability)
PRI Span: 1 -- Processing IE 24 (cs0, Channel ID)
PRI Span: 1 -- Processing IE 108 (cs0, Calling Party Number)
PRI Span: 1 -- Processing IE 124 (cs0, Low-layer Compatibility)
PRI Span: 1 -- Processing IE 125 (cs0, High-layer Compatibility)
PRI Span: 1 q931.c:8894 post_handle_q931_message: Call 38 enters state 6 (Call Present).  Hold state: Idle
PRI Span: 1
PRI Span: 1 > TEI: 0 State 7(Multi-frame established)
PRI Span: 1 > V(A)=0, V(S)=0, V(R)=1
PRI Span: 1 > K=1, RC=0, l3_initiated=0, reject_except=0, ack_pend=0
PRI Span: 1 > T200_id=0, N200=3, T203_id=8192
PRI Span: 1 > [ 00 01 01 02 ]
PRI Span: 1 > Supervisory frame:
PRI Span: 1 > SAPI: 00  C/R: 0 EA: 0
PRI Span: 1 >  TEI: 000        EA: 1
PRI Span: 1 > Zero: 0     S: 0 01: 1  [ RR (receive ready) ]
PRI Span: 1 > N(R): 001 P/F: 0
PRI Span: 1 > 0 bytes of data
PRI Span: 1 Done handling message for SAPI/TEI=0/0
Span 1: Processing event PRI_EVENT_RING(5)
PRI Span: 1 q931.c:5881 q931_call_proceeding: Call 38 enters state 9 (Incoming Call Proceeding).  Hold state: Idle
PRI Span: 1
PRI Span: 1 > DL-DATA request
PRI Span: 1 > Protocol Discriminator: Q.931 (8)  len=7
PRI Span: 1 > TEI=0 Call Ref: len= 1 (reference 38/0x26) (Sent to originator)
PRI Span: 1 > Message Type: CALL PROCEEDING (2)
PRI Span: 1 TEI=0 Transmitting N(S)=0, window is open V(A)=0 K=1
PRI Span: 1
PRI Span: 1 > TEI: 0 State 7(Multi-frame established)
PRI Span: 1 > V(A)=0, V(S)=0, V(R)=1
PRI Span: 1 > K=1, RC=0, l3_initiated=0, reject_except=0, ack_pend=0
PRI Span: 1 > T200_id=0, N200=3, T203_id=8192
PRI Span: 1 > [ 02 01 00 02 08 01 a6 02 18 01 89 ]
PRI Span: 1 > Informational frame:
PRI Span: 1 > SAPI: 00  C/R: 1 EA: 0
PRI Span: 1 >  TEI: 000        EA: 1
PRI Span: 1 > N(S): 000   0: 0
PRI Span: 1 > N(R): 001   P: 0
PRI Span: 1 > 7 bytes of data
PRI Span: 1 > Protocol Discriminator: Q.931 (8)  len=7
PRI Span: 1 > TEI=0 Call Ref: len= 1 (reference 38/0x26) (Sent to originator)
PRI Span: 1 > Message Type: CALL PROCEEDING (2)
PRI Span: 1 > [18 01 89]
PRI Span: 1 > Channel ID (len= 3) [ Ext: 1  IntID: Implicit  BRI  Spare: 0  Exclusive  Dchan: 0
PRI Span: 1 >                       ChanSel: B1 channel
PRI Span: 1 >                     ]
PRI Span: 1 -- Stopping T203 timer
PRI Span: 1 -- Starting T200 timer
    -- Accepting call from '0201' to 's' on channel 0/1, span 1

I’m very confused.


#4

As I said, the upstream is presenting a call which has already passed the dialling stage. Overlap dialling allows Asterisk to look for further dialled digits. I suppose it may treat no digits as a special case and send dialtone as early media, and accept digits as in band early media DTMF.

Note, in general, the policy is that ISDN related problems should be addressed to the vendor of your ISDN hardware.


#5

Well, with the overlap dial on, the older PBX behaves perfectly. All features work, including the CDR correctly recording what was dialled, support for pulse dialling phones on ISDN, and the call timer starts on answer (it was starting immediately on seize before).

As far as I can tell this PBX expects an early media dialtone, and to dial single digits at that dialtone. That’s how it originally operated when on a BT ISDN2e; no capability to dial before seizing a line/ISDN channel exists.

The PBX in question is a Panasonic Key System KX-TD1232E (on a very early ROM revision), made for the UK market. Asterisk is 13.20.0, DAHDI is 2.10.2, running on AstLinux 1.3.3.

I couldn’t go to my ISDN hardware vendor: (a) they don’t support Asterisk at all, the card is sold for use with a proprietary software product; (b) I purchased the card second hand. This is not a commercial project; it’s entirely personal.

Thank you very much for your help.