A101DX Hangup Cause Code 90 for outbound calls

webhoster
Posts: 23
Member Since:
2006-07-01

Guys

We have a strange but annoying problem. When we try to place an outgoing call the exchange end sends a disconnect with a Cause Code 90

The set up is as follows

Sangoma A101DX connected to an ISDN30 with 8 channels provided by Kingston Communications in the UK (don't tell me they're useless we already know and are processing a move BUT in the meantime) We currently have normal PBX connected which works outgoing and incoming so we know the ISDN is good

We have the following basic zapata.conf taken from a working system. I've listed the log file as well.

Any ideas welcome - Kingston Technical are looking into it and Sangoma have looked as well but so far neither has come up with the answer that allows our new system to make outbound calls, which is sort of a requirement.

Thanks

Regards

Gavin

[channels]
;Incoming PRI
context = from-pstn
echocancel = yes
switchtype = euroisdn
signalling = pri_cpe
group = 1
channel => 1-8

musiconhold=default

;Include AMP configs
#include zapata_additional.conf

zapata-auto.conf

; Autogenerated by /usr/local/sbin/sangoma/setup-sangoma -- do not hand edit
; Zaptel Channels Configurations (zapata.conf)
;
; This is not intended to be a complete zapata.conf. Rather, it is intended
; to be #include-d by /etc/zapata.conf that will include the global settings
;
callerid=asreceived

;Sangoma A101 port 1 [slot:4 bus:2 span:1]
switchtype=euroisdn
context=from-zaptel

This is the log when trying to place a call

Handling message for SAPI/TEI=0/0
-- ACKing all packets from 10 to (but not including) 11
-- Since there was nothing left, stopping T200 counter
-- Stopping T203 counter since we got an ACK
-- Nothing left, starting T203 counter
-- Unsolicited RR with P/F bit, responding
Sending Receiver Ready (10)

> > [ 02 01 01 15 ]
trixbox1*CLI>
> > Supervisory frame:
> > SAPI: 00 C/R: 1 EA: 0
> > TEI: 000 EA: 1
> > Zero: 0 S: 0 01: 1 [ RR (receive ready) ]
> > N(R): 010 P/F: 1
> > 0 bytes of data
-- Restarting T203 counter
-- Restarting T203 counter

trixbox1*CLI>
Handling message for SAPI/TEI=0/0
-- ACKing all packets from 10 to (but not including) 11
-- Since there was nothing left, stopping T200 counter
-- Stopping T203 counter since we got an ACK
-- Nothing left, starting T203 counter
-- Unsolicited RR with P/F bit, responding
Sending Receiver Ready (10)
trixbox1*CLI>
> > [ 02 01 01 15 ]
trixbox1*CLI>
> > Supervisory frame:
> > SAPI: 00 C/R: 1 EA: 0
> > TEI: 000 EA: 1
> > Zero: 0 S: 0 01: 1 [ RR (receive ready) ]
> > N(R): 010 P/F: 1
> > 0 bytes of data
-- Restarting T203 counter
-- Restarting T203 counter
trixbox1*CLI>

Handling message for SAPI/TEI=0/0
-- ACKing all packets from 10 to (but not including) 11
-- Since there was nothing left, stopping T200 counter
-- Stopping T203 counter since we got an ACK
-- Nothing left, starting T203 counter
-- Unsolicited RR with P/F bit, responding
Sending Receiver Ready (10)

> > [ 02 01 01 15 ]

> > Supervisory frame:
> > SAPI: 00 C/R: 1 EA: 0
> > TEI: 000 EA: 1
> > Zero: 0 S: 0 01: 1 [ RR (receive ready) ]
> > N(R): 010 P/F: 1
> > 0 bytes of data
-- Restarting T203 counter
-- Restarting T203 counter
-- Executing [9xxxxxxxx@from-internal:1]
Macro("SIP/100-098cd3c8", "user-callerid|SKIPTTL|") in new stack
-- Executing [s@macro-user-callerid:1] NoOp("SIP/100-098cd3c8",
"user-callerid: Reception 100") in new stack
-- Executing [s@macro-user-callerid:2] Set("SIP/100-098cd3c8",
"AMPUSER=100") in new stack
-- Executing [s@macro-user-callerid:3] GotoIf("SIP/100-098cd3c8",
"0?report") in new stack
-- Executing [s@macro-user-callerid:4] ExecIf("SIP/100-098cd3c8",
"1|Set|REALCALLERIDNUM=100") in new stack
-- Executing [s@macro-user-callerid:5] NoOp("SIP/100-098cd3c8",
"REALCALLERIDNUM is 100") in new stack
-- Executing [s@macro-user-callerid:6] Set("SIP/100-098cd3c8",
"AMPUSER=600") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/100-098cd3c8",
"AMPUSERCIDNAME=Reception") in new stack
-- Executing [s@macro-user-callerid:8] GotoIf("SIP/100-098cd3c8",
"0?report") in new stack
-- Executing [s@macro-user-callerid:9] Set("SIP/100-098cd3c8",
"AMPUSERCID=600") in new stack
-- Executing [s@macro-user-callerid:10] Set("SIP/100-098cd3c8",
"CALLERID(all)="Reception" ") in new stack
-- Executing [s@macro-user-callerid:11] Set("SIP/100-098cd3c8",
"REALCALLERIDNUM=600") in new stack
-- Executing [s@macro-user-callerid:12] ExecIf("SIP/100-098cd3c8",
"0|Set|CHANNEL(language)=") in new stack
-- Executing [s@macro-user-callerid:13] NoOp("SIP/100-098cd3c8",
"TTL: ARG1: SKIPTTL") in new stack
-- Executing [s@macro-user-callerid:14] GotoIf("SIP/100-098cd3c8",
"1?continue") in new stack
-- Goto (macro-user-callerid,s,23)
-- Executing [s@macro-user-callerid:23] NoOp("SIP/100-098cd3c8",
"Using CallerID "Reception" ") in new stack
-- Executing [9xxxxxxxx@from-internal:2] Set("SIP/100-098cd3c8",
"_NODEST=") in new stack
-- Executing [9xxxxxxxx@from-internal:3]
Macro("SIP/100-098cd3c8", "record-enable|600|OUT|") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("SIP/100-098cd3c8",
"0?2:4") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] AGI("SIP/100-098cd3c8",
"recordingcheck|20081219-171339|1229706819.4") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
recordingcheck|20081219-171339|1229706819.4: Outbound recording not
enabled
-- AGI Script recordingcheck completed, returning 0
-- Executing [s@macro-record-enable:5] NoOp("SIP/100-098cd3c8", "No
recording needed") in new stack
-- Executing [9xxxxxxxx@from-internal:4]
Macro("SIP/100-098cd3c8", "dialout-trunk|1|xxxxxxxxxx|") in new stack
-- Executing [s@macro-dialout-trunk:1] Set("SIP/100-098cd3c8",
"DIAL_TRUNK=1") in new stack
-- Executing [s@macro-dialout-trunk:2] ExecIf("SIP/100-098cd3c8",
"0|Authenticate|") in new stack
-- Executing [s@macro-dialout-trunk:3] GotoIf("SIP/100-098cd3c8",
"0?disabletrunk|1") in new stack
-- Executing [s@macro-dialout-trunk:4] Set("SIP/100-098cd3c8",
"DIAL_NUMBER=xxxxxxxx") in new stack
-- Executing [s@macro-dialout-trunk:5] Set("SIP/100-098cd3c8",
"DIAL_TRUNK_OPTIONS=tr") in new stack
-- Executing [s@macro-dialout-trunk:6] Set("SIP/100-098cd3c8",
"GROUP()=OUT_1") in new stack
-- Executing [s@macro-dialout-trunk:7] GotoIf("SIP/100-098cd3c8",
"0?nomax") in new stack
-- Executing [s@macro-dialout-trunk:8] GotoIf("SIP/100-098cd3c8",
"0?chanfull") in new stack
-- Executing [s@macro-dialout-trunk:9] GotoIf("SIP/100-098cd3c8",
"0?skipoutcid") in new stack
-- Executing [s@macro-dialout-trunk:10] Set("SIP/100-098cd3c8",
"DIAL_TRUNK_OPTIONS=") in new stack
-- Executing [s@macro-dialout-trunk:11] Macro("SIP/100-098cd3c8",
"outbound-callerid|1") in new stack
-- Executing [s@macro-outbound-callerid:1]
ExecIf("SIP/100-098cd3c8", "0|SetCallerPres|") in new stack
-- Executing [s@macro-outbound-callerid:2]
GotoIf("SIP/100-098cd3c8", "1?start") in new stack
-- Goto (macro-outbound-callerid,s,4)
-- Executing [s@macro-outbound-callerid:4] NoOp("SIP/100-098cd3c8",
"REALCALLERIDNUM is 600") in new stack
-- Executing [s@macro-outbound-callerid:5]
GotoIf("SIP/100-098cd3c8", "1?normcid") in new stack
-- Goto (macro-outbound-callerid,s,10)
-- Executing [s@macro-outbound-callerid:10] Set("SIP/100-098cd3c8",
"USEROUTCID=") in new stack
-- Executing [s@macro-outbound-callerid:11] Set("SIP/100-098cd3c8",
"EMERGENCYCID=") in new stack
-- Executing [s@macro-outbound-callerid:12] Set("SIP/100-098cd3c8",
"TRUNKOUTCID=") in new stack
-- Executing [s@macro-outbound-callerid:13]
GotoIf("SIP/100-098cd3c8", "1?trunkcid") in new stack
-- Goto (macro-outbound-callerid,s,17)
-- Executing [s@macro-outbound-callerid:17]
GotoIf("SIP/100-098cd3c8", "1?usercid") in new stack
-- Goto (macro-outbound-callerid,s,19)
-- Executing [s@macro-outbound-callerid:19]
GotoIf("SIP/100-098cd3c8", "1?report") in new stack
-- Goto (macro-outbound-callerid,s,23)
-- Executing [s@macro-outbound-callerid:23] NoOp("SIP/100-098cd3c8",
"CallerID set to "Reception" ") in new stack
-- Executing [s@macro-dialout-trunk:12] AGI("SIP/100-098cd3c8",
"fixlocalprefix") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/fixlocalprefix
-- AGI Script fixlocalprefix completed, returning 0
-- Executing [s@macro-dialout-trunk:13] Set("SIP/100-098cd3c8",
"OUTNUM=xxxxxxxx") in new stack
-- Executing [s@macro-dialout-trunk:14] Set("SIP/100-098cd3c8",
"custom=ZAP/g1") in new stack
-- Executing [s@macro-dialout-trunk:15] GotoIf("SIP/100-098cd3c8",
"1?gocall") in new stack
-- Goto (macro-dialout-trunk,s,17)
-- Executing [s@macro-dialout-trunk:17] Macro("SIP/100-098cd3c8",
"dialout-trunk-predial-hook|") in new stack
-- Executing [s@macro-dialout-trunk:18] GotoIf("SIP/100-098cd3c8",
"0?bypass|1") in new stack
-- Executing [s@macro-dialout-trunk:19] GotoIf("SIP/100-098cd3c8",
"0?customtrunk") in new stack
-- Executing [s@macro-dialout-trunk:20] Dial("SIP/100-098cd3c8",
"ZAP/g1/xxxxxxxx|300|") in new stack
-- Making new call for cr 32770
-- Requested transfer capability: 0x00 - SPEECH
trixbox1*CLI>
> > [ 00 01 16 14 08 02 00 02 05 04 03 80 90 a3 18 03 a9 83 81 6c 05 21 81
36 30 30 70 0c a1 30 37 38 36 30 31 38 31 37 30 30 a1 ]
trixbox1*CLI>
> > Informational frame:
> > SAPI: 00 C/R: 0 EA: 0
> > TEI: 000 EA: 1
> > N(S): 011 0: 0
> > N(R): 010 P: 0
> > 37 bytes of data
-- Restarting T203 counter
Stopping T_203 timer
Starting T_200 timer
> > Protocol Discriminator: Q.931 (8) len=37
> > Call Ref: len= 2 (reference 2/0x2) (Originator)
> > Message type: SETUP (5)
> > [04 03 80 90 a3]
> > Bearer Capability (len= 5) [ Ext: 1 Q.931 Std: 0 Info transfer
capability: Speech (0)
> > Ext: 1 Trans mode/rate: 64kbps,
circuit-mode (16)
> > User information layer 1: A-Law (35)
> > [18 03 a9 83 81]
> > Channel ID (len= 5) [ Ext: 1 IntID: Implicit PRI Spare: 0
Exclusive Dchan: 0
> > ChanSel: As indicated in following octets
> > Ext: 1 Coding: 0 Number Specified Channel Type: 3
> > Ext: 1 Channel: 1 ]
> > [6c 05 21 81 36 30 30]
> > Calling Number (len= 7) [ Ext: 0 TON: National Number (2) NPI:
ISDN/Telephony Numbering Plan (E.164/E.163) (1)
> > Presentation: Presentation permitted, user
number passed network screening (1) '600' ]
> > [70 0c a1 30 37 38 36 30 31 38 31 37 30 30]
> > Called Number (len=14) [ Ext: 1 TON: National Number (2) NPI:
ISDN/Telephony Numbering Plan (E.164/E.163) (1) 'xxxxxxxxxxx' ]
> > [a1]x1*CLI>
> > Sending Complete (len= 1)
q931.c:3092 q931_setup: call 32770 on channel 1 enters state 1 (Call
Initiated)
-- Called g1/xxxxxxxxxx
trixbox1*CLI>
trixbox1*CLI>
Handling message for SAPI/TEI=0/0
-- ACKing all packets from 10 to (but not including) 12
-- ACKing packet 11, new txqueue is -1 (-1 means empty)
-- Since there was nothing left, stopping T200 counter
-- Nothing left, starting T203 counter
-- Restarting T203 counter

Handling message for SAPI/TEI=0/0
-- ACKing all packets from 11 to (but not including) 12
-- Since there was nothing left, stopping T200 counter
-- Stopping T203 counter since we got an ACK
-- Nothing left, starting T203 counter
Exclusive Dchan: 0
-- Processing IE 24 (cs0, Channel Identification)
q931.c:3641 q931_receive: call 32770 on channel 1 enters state 3
(Outgoing call Proceeding)
Sending Receiver Ready (11)

> > [ 02 01 01 16 ]

> > Supervisory frame:
> > SAPI: 00 C/R: 1 EA: 0
> > TEI: 000 EA: 1
> > Zero: 0 S: 0 01: 1 [ RR (receive ready) ]
> > N(R): 011 P/F: 0
> > 0 bytes of data
-- Restarting T203 counter
-- Restarting T203 counter
-- Zap/1-1 is proceeding passing it to SIP/100-098cd3c8

45 52 20 49 4e 43 4f 4d 50 4c 45 54 45 23 ]

Handling message for SAPI/TEI=0/0
-- ACKing all packets from 11 to (but not including) 12
-- Since there was nothing left, stopping T200 counter
-- Stopping T203 counter since we got an ACK
-- Nothing left, starting T203 counter
Location: Public network serving the local user (2)
(e.g. parameter out of range) (5) ]
-- Processing IE 8 (cs0, Cause)
-- Processing IE 40 (cs0, Display)
q931.c:3784 q931_receive: call 32770 on channel 1 enters state 12
(Disconnect Indication)
Sending Receiver Ready (12)

> > [ 02 01 01 18 ]

> > Supervisory frame:
> > SAPI: 00 C/R: 1 EA: 0
> > TEI: 000 EA: 1
> > Zero: 0 S: 0 01: 1 [ RR (receive ready) ]
> > N(R): 012 P/F: 0
> > 0 bytes of data
-- Restarting T203 counter
-- Restarting T203 counter
-- Channel 0/1, span 1 got hangup request, cause 90
NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Disconnect Indication,
peerstate Disconnect Request
q931.c:2925 q931_release: call 32770 on channel 1 enters state 19
(Release Request)
trixbox1*CLI>
> > [ 00 01 18 18 08 02 00 02 4d 08 02 81 da ]
trixbox1*CLI>
> > Informational frame:
> > SAPI: 00 C/R: 0 EA: 0
> > TEI: 000 EA: 1
> > N(S): 012 0: 0
> > N(R): 012 P: 0
> > 9 bytes of data
-- Restarting T203 counter
Stopping T_203 timer
Starting T_200 timer
> > Protocol Discriminator: Q.931 (8) len=9
> > Call Ref: len= 2 (reference 2/0x2) (Originator)
> > Message type: RELEASE (77)
> > [08 02 81 da]
> > Cause (len= 4) [ Ext: 1 Coding: CCITT (ITU) standard (0) Spare: 0
Location: Private network serving the local user (1)
> > Ext: 1 Cause: Unknown (90), class = Invalid message
(e.g. parameter out of range) (5) ]
-- Hungup 'Zap/1-1'
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [s@macro-dialout-trunk:21] Goto("SIP/100-098cd3c8",
"s-CHANUNAVAIL|1") in new stack
-- Goto (macro-dialout-trunk,s-CHANUNAVAIL,1)
-- Executing [s-CHANUNAVAIL@macro-dialout-trunk:1]
GotoIf("SIP/100-098cd3c8", "1?noreport") in new stack
-- Goto (macro-dialout-trunk,s-CHANUNAVAIL,3)
-- Executing [s-CHANUNAVAIL@macro-dialout-trunk:3]
NoOp("SIP/100-098cd3c8", "TRUNK Dial failed due to CHANUNAVAIL - failing
through to other trunks") in new stack
-- Executing [9xxxxxxxxxx@from-internal:5]
Macro("SIP/100-098cd3c8", "outisbusy|") in new stack
-- Executing [s@macro-outisbusy:1] Playback("SIP/100-098cd3c8",
"all-circuits-busy-now|noanswer") in new stack
trixbox1*CLI>

Handling message for SAPI/TEI=0/0
-- ACKing all packets from 11 to (but not including) 13
-- ACKing packet 12, new txqueue is -1 (-1 means empty)
-- Since there was nothing left, stopping T200 counter
-- Nothing left, starting T203 counter
-- Restarting T203 counter

Handling message for SAPI/TEI=0/0
-- ACKing all packets from 12 to (but not including) 13
-- Since there was nothing left, stopping T200 counter
-- Stopping T203 counter since we got an ACK
-- Nothing left, starting T203 counter
Location: Public network serving the local user (2)
(e.g. parameter out of range) (5) ]
-- Processing IE 8 (cs0, Cause)
q931.c:3724 q931_receive: call 32770 on channel 1 enters state 0 (Null)
NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Null
NEW_HANGUP DEBUG: Destroying the call, ourstate Null, peerstate Null
Sending Receiver Ready (13)

> > [ 02 01 01 1a ]

> > Supervisory frame:
> > SAPI: 00 C/R: 1 EA: 0
> > TEI: 000 EA: 1
> > Zero: 0 S: 0 01: 1 [ RR (receive ready) ]
> > N(R): 013 P/F: 0
> > 0 bytes of data
-- Restarting T203 counter
-- Restarting T203 counter
-- Playing 'all-circuits-busy-now' (language 'en')
-- Executing [s@macro-outisbusy:2] Playback("SIP/100-098cd3c8",
"pls-try-call-later|noanswer") in new stack
-- Playing 'pls-try-call-later' (language 'en')
== Spawn extension (macro-outisbusy, s, 2) exited non-zero on
'SIP/100-098cd3c8' in macro 'outisbusy'
== Spawn extension (macro-outisbusy, s, 2) exited non-zero on
'SIP/100-098cd3c8'

group=0
signalling=pri_cpe
channel =>1-15,17-31



marc.sangoma
Posts: 373
Member Since:
2008-04-08
Hi Gavin, The reason the

Hi Gavin,

The reason the calls are not going out is because of the disconnect message coming from the telco. The reason the other pbx can make calls out and ours can not is because something is not configured exactly the same. So you will need to go through both configs and see what that is or the telco should be able to tell you why they are dropping the call. Also note the PRI stack is libpri therefore it is not our card that is handling the q931 signaling, so this is a configuration option with in zaptel/asterisk that needs to be changed. But we can not change this until the telco can tell us why this is occurring or we know the difference between the configuration of the other pbx and ours.

< Protocol Discriminator: Q.931 (8) len=33
< Call Ref: len= 2 (reference 2/0x2) (Terminator)
< Message type: DISCONNECT (69)
< [08 02 82 da]
< Cause (len= 4) [ Ext: 1 Coding: CCITT (ITU) standard (0) Spare: 0
Location: Public network serving the local user (2)
< Ext: 1 Cause: Unknown (90), class = Invalid message
(e.g. parameter out of range) (5) ]
< [28 16 2a 41 41 2a 4e 55 4d 42 45 52 20 49 4e 43 4f 4d 50 4c 45 54 45 23]
< Display (len=22) [ *AA*NUMBER INCOMPLETE# ]
--

Marc



gmchugh
Posts: 6
Member Since:
2009-03-18
Any further developments

Hi Gavin/Marc,

Just wondering if you got anywhere with this problem - I'm having the exact same issue at the moment, also with Kingston line.

Thanks,
Gerry



marc.sangoma
Posts: 373
Member Since:
2008-04-08
Hi Gerry, This is from

Hi Gerry,

This is from almost a year ago ;) so I don't remember what happened here. The best idea is to go to http://wiki.sangoma.com/wanpipe-linux-asterisk-debugging#pri_span... and send everything in step 9 into techdesk@sangoma.com and we will sort this out for you.

--

Marc



webhoster
Posts: 23
Member Since:
2006-07-01
Gerry As you have no doubt

Gerry

As you have no doubt discovered Kingston are useless - we spent a day with their 'Technical' department trying to diagnose this as it appeared to be their end terminating the call in the end the answer was simple from the Sangoma Wiki http://wiki.sangoma.com/Asterisk-FAQ#pridialplan

Q. I have an E1/PRI line, incoming calls are working but outgoing calls are not working, what is wrong?

Most E1 lines require LibPRI/Asterisk to specify the type of number dialed. In Zapata.conf try playing around with the following value (remember to add this option before the channels are defined):
pridialplan= local (this value can also be unknown, private, national, and international)

I think we set it to local but it might have been national, difficult to tell now as we changed to BT and the Trixbox just works along with a lot of other things too I might add that Kingston never managed.

You might want to take a look at this one on the wiki as well http://wiki.sangoma.com/Asterisk-FAQ#stop-script as this gave us a problem too.

Hope this helps

Regards

Gavin



marc.sangoma
Posts: 373
Member Since:
2008-04-08
Hi, Also I made the wiki

Hi,

Also I made the wiki page at http://wiki.sangoma.com/Asterisk-FAQ#cant_call_out for outbound calling issues as well.

--

Marc



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.