[asterisk-users] T1, Rhino, & Nortel

Steve Totaro stotaro at totarotechnologies.com
Mon Mar 3 17:19:33 CST 2008


On Mon, Mar 3, 2008 at 2:19 PM, Gleim, Jason <jgleim at ats-ohio.com> wrote:
> Hi all,
>
>  I'm trying to insert a Rhino Ceros box equipped with a Rhino R2T1
>  dual-T1 card and running the latest version of Trixbox (2.4.2) between
>  the central office and a Nortel Option 11. The switch at the CO is a
>  DMS100. Basically, I'm taking the T1, connecting it to port 0 on the
>  R2T1 card, and then connecting port 1 to the Nortel. (Actually a CSU and
>  then the Nortel)  We're running PRI over T1... Channels 1-23 are B and
>  channel 24 is D.
>
>  So I configured the system ahead of time with line encoding, line
>  length, switchtype, timing source, etc. The timing source on port 0 in
>  Zaptel.conf is '1' so I get timing from the CO and it is '0' on port 1
>  so I send timing to the Nortel. When I hooked it up over the weekend,
>  the spans came up as expected with no errors or anything.
>
>  Calls between the Asterisk box and the CO work like a charm. The CO
>  doesn't know it's talking to a different box and I get everything I
>  need, call ID, DID, etc with no problems at all. But the calls between
>  the Asterisk box and the Nortel will not go through. I enabled debug on
>  that span and placed calls both ways. When I call from the Nortel to the
>  Asterisk box, the PRI debug shows the call failed with cause code 100.
>  Based on what I can find, this looks like the Nortel is mad about the
>  formatting of something in the messages. When I reverse that and call
>  from the Asterisk box to the Nortel, those calls fail with a cause code
>  of 54. Best I can tell that means 'incoming call barred' but how could
>  it be barred? The Asterisk box should look like the DMS100 to the
>  Nortel. I duplicated the calling information I was seeing from the CO
>  when I tried to call the Nortel plus I tried a couple of variants... no
>  dice. Am I missing something here?
>
>  I don't understand how I can be talking to a real DMS100 on one T1 and
>  it works perfect but when I act like a DMS100 on the other T1, the
>  Nortel is getting mad. Can anyone offer some ideas? Maybe a
>  clarification on these cause codes? My depth of knowledge in this area
>  isn't that deep... a wading pool at best... so I'm hoping one of you
>  guys that has worked with this stuff a long time might be able to give
>  me some direction.
>
>  I'm posting below Zaptel, Zapata, and a CLI dump of a call from the
>  Nortel into the Asterisk system with pri debug span turned on.
>
>  TIA!
>  Jason
>
>
>  # Autogenerated by /usr/local/sbin/genzaptelconf -- do not hand edit
>  # Zaptel Configuration File
>  #
>  # This file is parsed by the Zaptel Configurator, ztcfg
>  #
>
>  # It must be in the module loading order
>
>
>  # Span 2: R2T1/0/1 "R2T1 (PCI) Card 0 Span 1"
>  span=2,1,0,esf,b8zs
>  # termtype: cpe
>  bchan=1-23
>  dchan=24
>
>  # Span 3: R2T1/0/2 "R2T1 (PCI) Card 0 Span 2"
>  span=3,0,0,esf,b8zs
>  # termtype: net
>  bchan=25-47
>  dchan=48
>
>  # Span 4: Rhino RCB8FXX/1 "Rhino RCB8FXX/1"
>  fxsks=49
>  fxsks=50
>  fxoks=51
>  fxoks=52
>  # ??: 53 ---/1/4
>  # ??: 54 ---/1/5
>  # ??: 55 ---/1/6
>  # ??: 56 ---/1/7
>
>  # Global data
>
>  loadzone        = us
>  defaultzone     = us
>
>  ------------------------------------------------------------------------
>  ------------------------------------------------------------------------
>
>  ; Autogenerated by /usr/local/sbin/genzaptelconf -- 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
>  ;
>
>  ; Span 2: R2T1/0/1 "R2T1 (PCI) Card 0 Span 1"
>  group=0
>  context=from-trunk
>  switchtype = dms100
>  signalling = pri_cpe
>  channel => 1-23
>
>  ; Span 3: R2T1/0/2 "R2T1 (PCI) Card 0 Span 2"
>  group=1
>  context=from-trunk
>  switchtype = dms100
>  signalling = pri_net
>  channel => 25-47
>
>  ; Span 4: Rhino RCB8FXX/1 "Rhino RCB8FXX/1"
>  ;;; line="49 FXO/1/0"
>  signalling=fxs_ks
>  callerid=asreceived
>  group=3
>  context=from-pstn
>  channel => 49
>  context=default
>
>  ;;; line="50 FXO/1/1"
>  signalling=fxs_ks
>  callerid=asreceived
>  group=3
>  context=from-pstn
>  channel => 50
>  context=default
>
>  ;;; line="51 FXS/1/2"
>  signalling=fxo_ks
>  callerid="Channel 51" <6051>
>  mailbox=6051
>  group=5
>  context=from-internal
>  channel => 51
>  callerid=
>  mailbox=
>  group=
>  context=default
>
>  ;;; line="52 FXS/1/3"
>  signalling=fxo_ks
>  callerid="Channel 52" <6052>
>  mailbox=6052
>  group=5
>  context=from-internal
>  channel => 52
>  callerid=
>  mailbox=
>  group=
>  context=default
>
>  ; ??: 53 ---/1/4
>  ; ??: 54 ---/1/5
>  ; ??: 55 ---/1/6
>  ; ??: 56 ---/1/7
>
>  ------------------------------------------------------------------------
>  ------------------------------------------------------------------------
>
>  < Protocol Discriminator: Q.931 (8)  len=39
>  < Call Ref: len= 1 (reference 21/0x15) (Originator)
>  < Message type: SETUP (5)
>  < [04 03 80 90 a2]
>  < Bearer Capability (len= 5) [ Ext: 1  Q.931 Std: 0  Info transfer
>  capability: Speech (0)
>  <                              Ext: 1  Trans mode/rate: 64kbps,
>  circuit-mode (16)
>  <                              Ext: 1  User information layer 1: u-Law
>  (34)
>  < [18 04 e9 80 83 15]
>  < Channel ID (len= 6) [ Ext: 1  IntID: Explicit  PRI  Spare: 0
>  Exclusive  Dchan: 0
>  <                        ChanSel: Reserved
>  <                       Ext: 1  DS1 Identifier: 0
>  <                       Ext: 1  Coding: 0  Number Specified  Channel
>  Type: 3
>  <                       Ext: 0  Channel: 21 ]
>  < [6c 0c 21 80 36 31 34 38 38 38 32 33 34 34]
>  < Calling Number (len=14) [ Ext: 0  TON: National Number (2)  NPI:
>  ISDN/Telephony Numbering Plan (E.164/E.163) (1)
>  <                           Presentation: Presentation permitted, user
>  number not screened (0)  'xxxxxxxxxx' ]
>  < [70 08 a1 33 33 32 39 31 37 37]
>  < Called Number (len=10) [ Ext: 1  TON: National Number (2)  NPI:
>  ISDN/Telephony Numbering Plan (E.164/E.163) (1)
>  'xxxxxxx' ]
>  -- Making new call for cr 21
>  -- Processing Q.931 Call Setup
>  -- Processing IE 4 (cs0, Bearer Capability)
>  -- Processing IE 24 (cs0, Channel Identification)
>  -- Processing IE 108 (cs0, Calling Party Number)
>  -- Processing IE 112 (cs0, Called Party Number)
>  q931.c:3298 q931_receive: call 21 on channel 21 enters state 6 (Call
>  Present)
>  q931.c:2571 q931_call_proceeding: call 21 on channel 21 enters state 9
>  (Incoming Call Proceeding)
>  > Protocol Discriminator: Q.931 (8)  len=10
>  > Call Ref: len= 2 (reference 21/0x15) (Terminator)
>  > Message type: CALL PROCEEDING (2)
>  > [18 03 a9 83 95]
>  > Channel ID (len= 5) [ Ext: 1  IntID: Implicit  PRI  Spare: 0
>  Exclusive  Dchan: 0
>  >                        ChanSel: Reserved
>  >                       Ext: 1  Coding: 0  Number Specified  Channel
>  Type: 3
>  >                       Ext: 1  Channel: 21 ]
>     -- Accepting call from 'xxxxxxxxxx' to 'xxxxxxx' on channel 0/21,
>  span 3
>     -- Executing [xxxxxxx at from-zaptel:1] Set("Zap/45-1", "DID=xxxxxxx")
>  in new stack
>     -- Executing [xxxxxxx at from-zaptel:2] Goto("Zap/45-1", "s|1") in new
>  stack
>     -- Goto (from-zaptel,s,1)
>     -- Executing [s at from-zaptel:1] NoOp("Zap/45-1", "Entering
>  from-zaptel with DID == xxxxxxx") in new stack
>     -- Executing [s at from-zaptel:2] Ringing("Zap/45-1", "") in new stack
>  q931.c:2599 q931_alerting: call 21 on channel 21 enters state 7 (Call
>  Received)
>  > Protocol Discriminator: Q.931 (8)  len=9
>  > Call Ref: len= 2 (reference 21/0x15) (Terminator)
>  > Message type: ALERTING (1)
>  > [1e 02 81 88]
>  > Progress Indicator (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)
>  0: 0  Location: Private network serving the local user (1)
>  >                               Ext: 1  Progress Description: Inband
>  information or appropriate pattern now available. (8) ]
>     -- Executing [s at from-zaptel:3] Set("Zap/45-1", "DID=xxxxxxx") in new
>  stack
>     -- Executing [s at from-zaptel:4] NoOp("Zap/45-1", "DID is now
>  xxxxxxx") in new stack
>     -- Executing [s at from-zaptel:5] GotoIf("Zap/45-1", "1?zapok:notzap")
>  in new stack
>     -- Goto (from-zaptel,s,8)
>     -- Executing [s at from-zaptel:8] NoOp("Zap/45-1", "Is a Zaptel
>  Channel") in new stack
>     -- Executing [s at from-zaptel:9] Set("Zap/45-1", "CHAN=45-1") in new
>  stack
>     -- Executing [s at from-zaptel:10] Set("Zap/45-1", "CHAN=45") in new
>  stack
>     -- Executing [s at from-zaptel:11] Macro("Zap/45-1",
>  "from-zaptel-45|xxxxxxx|1") in new stack
>     -- Executing [s at macro-from-zaptel-45:1] NoOp("Zap/45-1", "Entering
>  macro-from-zaptel-45 with DID = xxxxxxx") in new stack
>     -- Executing [s at macro-from-zaptel-45:2] Gosub("Zap/45-1",
>  "app-blacklist-check|s|1") in new stack
>     -- Executing [s at app-blacklist-check:1] LookupBlacklist("Zap/45-1",
>  "") in new stack
>     -- Executing [s at app-blacklist-check:2] GotoIf("Zap/45-1",
>  "0?blacklisted") in new stack
>     -- Executing [s at app-blacklist-check:3] Return("Zap/45-1", "") in new
>  stack
>     -- Executing [s at macro-from-zaptel-45:3] Set("Zap/45-1",
>  "__FROM_DID=s") in new stack
>     -- Executing [s at macro-from-zaptel-45:4] GotoIf("Zap/45-1", "0
>  ?cidok") in new stack
>     -- Executing [s at macro-from-zaptel-45:5] Set("Zap/45-1",
>  "CALLERID(name)=xxxxxxxxxx") in new stack
>     -- Executing [s at macro-from-zaptel-45:6] NoOp("Zap/45-1", "CallerID
>  is "xxxxxxxxxx" <xxxxxxxxxx>") in new stack
>     -- Executing [s at macro-from-zaptel-45:7] Goto("Zap/45-1",
>  "app-announcement-1|s|1") in new stack
>     -- Goto (app-announcement-1,s,1)
>   == Channel 'Zap/45-1' jumping out of macro 'from-zaptel-45'
>     -- Executing [s at app-announcement-1:1] GotoIf("Zap/45-1", "0?begin")
>  in new stack
>     -- Executing [s at app-announcement-1:2] Answer("Zap/45-1", "") in new
>  stack
>  q931.c:2698 q931_connect: call 21 on channel 21 enters state 10 (Active)
>  > Protocol Discriminator: Q.931 (8)  len=10
>  > Call Ref: len= 2 (reference 21/0x15) (Terminator)
>  > Message type: CONNECT (7)
>  > [18 03 a9 83 95]
>  > Channel ID (len= 5) [ Ext: 1  IntID: Implicit  PRI  Spare: 0
>  Exclusive  Dchan: 0
>  >                        ChanSel: Reserved
>  >                       Ext: 1  Coding: 0  Number Specified  Channel
>  Type: 3
>  >                       Ext: 1  Channel: 21 ]
>     -- Executing [s at app-announcement-1:3] Wait("Zap/45-1", "1") in new
>  stack
>  < Protocol Discriminator: Q.931 (8)  len=8
>  < Call Ref: len= 1 (reference 21/0x15) (Originator)
>  < Message type: RELEASE (77)
>  < [08 02 81 e4]
>  < Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)  Spare: 0
>  Location: Private network serving the local user (1)
>  <                  Ext: 1  Cause: Invalid information element contents
>  (100), class = Protocol Error (e.g. unknown message) (6) ]
>  -- Processing IE 8 (cs0, Cause)
>  q931.c:3538 q931_receive: call 21 on channel 21 enters state 0 (Null)
>     -- Channel 0/21, span 3 got hangup, cause 100
>  < Protocol Discriminator: Q.931 (8)  len=8
>  < Call Ref: len= 1 (reference 21/0x15) (Originator)
>  < Message type: RELEASE (77)
>  < [08 02 81 e0]
>  < Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)  Spare: 0
>  Location: Private network serving the local user (1)
>  <                  Ext: 1  Cause: Mandatory information element is
>  missing (96), class = Protocol Error (e.g. unknown message) (6) ]
>  -- Processing IE 8 (cs0, Cause)
>  NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Release
>  Request
>  > Protocol Discriminator: Q.931 (8)  len=9
>  > Call Ref: len= 2 (reference 21/0x15) (Terminator)
>  > Message type: RELEASE COMPLETE (90)
>  > [08 02 81 e0]
>  > Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)  Spare: 0
>  Location: Private network serving the local user (1)
>  >                  Ext: 1  Cause: Mandatory information element is
>  missing (96), class = Protocol Error (e.g. unknown message) (6) ]
>  NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Null
>  NEW_HANGUP DEBUG: Destroying the call, ourstate Null, peerstate Null
>  < Protocol Discriminator: Q.931 (8)  len=8
>  < Call Ref: len= 1 (reference 21/0x15) (Originator)
>  < Message type: RELEASE (77)
>  < [08 02 81 e4]
>  < Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)  Spare: 0
>  Location: Private network serving the local user (1)
>  <                  Ext: 1  Cause: Invalid information element contents
>  (100), class = Protocol Error (e.g. unknown message) (6) ]
>  -- Making new call for cr 21
>  -- Processing IE 8 (cs0, Cause)
>  > Protocol Discriminator: Q.931 (8)  len=9
>  > Call Ref: len= 2 (reference 21/0x15) (Terminator)
>  > Message type: RELEASE COMPLETE (90)
>  > [08 02 81 d1]
>  > Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)  Spare: 0
>  Location: Private network serving the local user (1)
>  >                  Ext: 1  Cause: Invalid call reference value (81),
>  class = Invalid message (e.g. parameter out of range) (5) ]
>  NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Null
>  NEW_HANGUP DEBUG: Destroying the call, ourstate Null, peerstate Null
>   == Spawn extension (app-announcement-1, s, 3) exited non-zero on
>  'Zap/45-1'
>     -- Hungup 'Zap/45-1'

CLASS 1.6 (Protocol error; e.g. unknown message)Cause No. 96 –
Mandatory Info missingThis cause indicates that the equipment sending
this cause has received amessage which is missing an information
element which must be present in themessage before that message can be
processed.

This is your first clue.  Don't mess with the part that works.  Start
by trying different values on span 3 (or is it 2? you call it both).
I would try switchtype=national first.  I would also try things like
localdialplan=unknown pridialplan=unknown and other signalling related
settings and flip the possible settings around until it works.  Look
at the example files on your box for ideas.

I bet you will have a "holy cow!  It worked" moment and nobody will
have to spoon feed you the answer.

Thanks,
Steve Totaro



More information about the asterisk-users mailing list