Digium b410p with i4b

Hans Petter Selasky hselasky at c2i.net
Thu Jul 12 21:20:26 UTC 2007


Hi Mikael!

Se comments below.

On Thursday 12 July 2007 22:32, Mikael Batard wrote:
> On 12.07.2007 19:05, Hans Petter Selasky wrote:
> > Hi Mikael!
>
> Hi Hans,
>
> > You need to insert a:
> >
> > exten => n,xxx,Ringing
> >
> > when you receive the call(s) from ISDN in your dialplan!
>
> Done, but it doesn't work.
> I've got some missed calls again :(
>
> Here's new debug with Ringing added :

I cannot see any ALERT message in the log only a CONNECT.

The Ringing command should be first, before Answer ! 

And it should not connect the B-channel.

>
> # isdndecode -u 10 -i -o -x
>
> =========== isdndecode controller #10 ========== started Thu Jul 12
> 22:27:46 2007
>
> -- NT->TE - unit:10 --------------- time:12.07 22:27:54.236616
> ----------------
> L1 STATE: F7: Activated
>

Here is the incoming call. All looks OK.

> -- NT->TE - unit:10  frame:002397 - time:12.07 22:27:54.236671 -
> length:40 ----
> L2 00 02 000000-- SAPI = 0                                       (Call
> Control)
>           ------1- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 FF 1111111- TEI = 127 = 0x7f
> (Broadcast TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 03 000-0011 U-Frame: UI                          (Unnumbered
> Information)
>           ---0---- P/F, Poll = No Immediate Response Required
> L3 03 08 00001000 Protocol = Q.931/I.451/DSS1
>   (0x08)
> L3 04 01 0000---- Call Reference
>           ----0001 Call Reference length is 1 byte
> L3 05 2B 0------- Call Reference is sent from call originator
>           -0101011 Call Reference = 43 = 0x2b
> L3 06 05 0------- Message type extension = 0
>           -0000101 Message type = SETUP
>    (0x05)
> L3 07 A1 1------- Single octet Information element
>           -0100001 Sending complete
> L3 08 04 0------- Variable length Information element
>           -0000100 IE = bearer capability
> L3 09 03 00000011 IE Length = 3 bytes
> L3 0A 90 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -00----- Coding standard = CCITT
>           ---10000 Capability = 0x10, 3.1 kHz audio
> L3 0B 90 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -00----- Mode = 0x00, circuit
>           ---10000 Rate = 0x10, 64 kbit/s
> L3 0C A3 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -01----- Layer 1 identity = 1
>           ---00011 Layer 1 Protocol = 0x03, G.711 a-Law
> L3 0D 18 0------- Variable length Information element
>           -0011000 IE = channel identification
> L3 0E 01 00000001 IE Length = 1 bytes
> L3 0F 89 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -0------ Interface Id present = No
>           --0----- Interface Type = BRI
>           ---0---- Spare
>           ----1--- Channel is exclusive
>           -----0-- Channel is not the D-Channel
>           ------01 Channel = B-1
> L3 10 1E 0------- Variable length Information element
>           -0011110 IE = progress indicator
> L3 11 02 00000010 IE Length = 2 bytes
> L3 12 84 -00----- Coding standard = CCITT
>           ----0100 location = Public network serving remote user
> L3 13 83 -0000011 description = Origination address is non-ISDN
> L3 14 6C 0------- Variable length Information element
>           -1101100 IE = calling party number
> L3 15 0B 00001011 IE Length = 11 bytes
> L3 16 20 0------- Extension Bit = 0             (with extension, octet
> follows)
>           -010---- Type = National number
>           ----0000 Plan = Unknown
>     (0x0)
> L3 17 83 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -00----- Presentation = allowed
>           ---000-- Spare
>           ------11 Screening = network provided
> L3 18 39 00111001 Number digit = 9
> L3 19 35 00110101 Number digit = 5
> L3 1A 32 00110010 Number digit = 2
> L3 1B 37 00110111 Number digit = 7
> L3 1C 36 00110110 Number digit = 6
> L3 1D 30 00110000 Number digit = 0
> L3 1E 37 00110111 Number digit = 7
> L3 1F 35 00110101 Number digit = 5
> L3 20 30 00110000 Number digit = 0
> L3 21 70 0------- Variable length Information element
>           -1110000 IE = called party number
> L3 22 05 00000101 IE Length = 5 bytes
> L3 23 81 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -000---- Type = Unknown
>           ----0001 Plan = ISDN (E.164)
>     (0x1)
> L3 24 30 00110000 Number digit = 0
> L3 25 39 00111001 Number digit = 9
> L3 26 38 00111000 Number digit = 8
> L3 27 37 00110111 Number digit = 7
>
> -- NT->TE - unit:10  frame:002398 - time:12.07 22:27:54.236715 -
> length:3 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Response
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 01 0000000- TEI = 0 = 0x00
> (Non-automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 73 011-0011 U-Frame: UA                          (Unnumbered
> Acknowledge)
>           ---1---- P/F, Final = Result of Poll
>

We ask for an address on the ISDN bus.

> -- TE->NT - unit:10  frame:002399 - time:12.07 22:27:54.236742 -
> length:8 -----
> L2 00 FC 111111-- SAPI = 63                                (Layer 2
> Management)
>           ------0- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 FF 1111111- TEI = 127 = 0x7f
> (Broadcast TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 03 000-0011 U-Frame: UI                          (Unnumbered
> Information)
>           ---0---- P/F, Poll = No Immediate Response Required
> L2 03 0F 00001111 MEI                            (Management Entity
> Identifier)
> L2 04 AF 10101111 Ri = 0xaf57                           (Reference
> number high)
> L2 05 57 01010111 Ri                                     (Reference
> Number low)
> L2 06 01 00000001 TEI Identity message = REQUEST
>   (0x01)
> L2 07 FF 1111111- Ai = 127                                (Action
> Indicator = )
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
>

Here we get the reply.

> -- NT->TE - unit:10  frame:002400 - time:12.07 22:27:54.284661 -
> length:8 -----
> L2 00 FE 111111-- SAPI = 63                                (Layer 2
> Management)
>           ------1- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 FF 1111111- TEI = 127 = 0x7f
> (Broadcast TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 03 000-0011 U-Frame: UI                          (Unnumbered
> Information)
>           ---0---- P/F, Poll = No Immediate Response Required
> L2 03 0F 00001111 MEI                            (Management Entity
> Identifier)
> L2 04 AF 10101111 Ri = 0xaf57                           (Reference
> number high)
> L2 05 57 01010111 Ri                                     (Reference
> Number low)
> L2 06 02 00000010 TEI Identity message = ASSIGNED
>   (0x02)
> L2 07 BF 1011111- Ai = 95                                    (Action
> Indicator)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
>
> -- NT->TE - unit:10  frame:002401 - time:12.07 22:27:54.284701 -
> length:4 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Response
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 01 0000000- TEI = 0 = 0x00
> (Non-automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 01 00000001 S-Frame: RR                                  (Receiver
> Ready)
> L2 03 02 0000001- N(R) = 1                            (receive sequence
> number)
>           -------0 P/F, Final = No Result of Poll
>
> -- TE->NT - unit:10  frame:002402 - time:12.07 22:27:54.284728 -
> length:3 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 7F 011-1111 U-Frame: SABME                (Set Asynchonous
> Balanced Mode)
>           ---1---- P/F, Poll = Immediate Response Required
>

This is a dummy message on a not-used Call-reference value. Really I just want 
to send a Zero-length I-frame, but many PBXs choke on that. So the best 
compromise is to send a STATUS_ENQUIRY. The PBX should _not_ answer on this.

> -- TE->NT - unit:10  frame:002403 - time:12.07 22:27:54.284731 -
> length:8 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 00 0000000- N(S) = 0                               (send sequence
> number)
>           -------0 I-Frame: Information transfer
> L2 03 00 0000000- N(R) = 0                            (receive sequence
> number)
>           -------0 P/F, Poll = No Immediate Response Required
> L3 04 08 00001000 Protocol = Q.931/I.451/DSS1
>   (0x08)
> L3 05 01 0000---- Call Reference
>           ----0001 Call Reference length is 1 byte
> L3 06 7F 0------- Call Reference is sent from call originator
>           -1111111 Call Reference = 127 = 0x7f
> L3 07 75 0------- Message type extension = 0
>           -1110101 Message type = STATUS_ENQUIRY
>    (0x75)
>
> -- TE->NT - unit:10  frame:002404 - time:12.07 22:27:54.284747 -
> length:8 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 02 0000001- N(S) = 1                               (send sequence
> number)
>           -------0 I-Frame: Information transfer
> L2 03 01 0000000- N(R) = 0                            (receive sequence
> number)
>           -------1 P/F, Poll = Immediate Response Required
> L3 04 08 00001000 Protocol = Q.931/I.451/DSS1
>   (0x08)
> L3 05 01 0000---- Call Reference
>           ----0001 Call Reference length is 1 byte
> L3 06 7F 0------- Call Reference is sent from call originator
>           -1111111 Call Reference = 127 = 0x7f
> L3 07 75 0------- Message type extension = 0
>           -1110101 Message type = STATUS_ENQUIRY
>    (0x75)
>
> -- NT->TE - unit:10  frame:002405 - time:12.07 22:27:54.316663 -
> length:3 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Response
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 73 011-0011 U-Frame: UA                          (Unnumbered
> Acknowledge)
>           ---1---- P/F, Final = Result of Poll
>
> -- NT->TE - unit:10  frame:002406 - time:12.07 22:27:54.316688 -
> length:4 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Response
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 01 00000001 S-Frame: RR                                  (Receiver
> Ready)
> L2 03 02 0000001- N(R) = 1                            (receive sequence
> number)
>           -------0 P/F, Final = No Result of Poll
>
> -- NT->TE - unit:10  frame:002407 - time:12.07 22:27:54.348661 -
> length:15 ----
> L2 00 02 000000-- SAPI = 0                                       (Call
> Control)
>           ------1- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 00 0000000- N(S) = 0                               (send sequence
> number)
>           -------0 I-Frame: Information transfer
> L2 03 02 0000001- N(R) = 1                            (receive sequence
> number)
>           -------0 P/F, Poll = No Immediate Response Required
> L3 04 08 00001000 Protocol = Q.931/I.451/DSS1
>   (0x08)
> L3 05 01 0000---- Call Reference
>           ----0001 Call Reference length is 1 byte
> L3 06 FF 1------- Call Reference is sent to call originator
>           -1111111 Call Reference = 127 = 0x7f
> L3 07 7D 0------- Message type extension = 0
>           -1111101 Message type = STATUS
>    (0x7d)
> L3 08 08 0------- Variable length Information element
>           -0001000 IE = cause
> L3 09 02 00000010 IE Length = 2 bytes
> L3 0A 87 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -00----- Coding standard = CCITT
>           ---0---- Spare

Strange location:

>           ----0111 Location = ERROR: undefined/reserved
> L3 0B 9E 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -0011110 Cause = 30: Q.850: response to STATUS ENQUIRY
> L3 0C 14 0------- Variable length Information element
>           -0010100 IE = call state
> L3 0D 01 00000001 IE Length = 1 bytes
> L3 0E 00 -00----- Coding standard = CCITT

State NULL is OK.

>           ---00000 state = Null
>
> -- NT->TE - unit:10  frame:002408 - time:12.07 22:27:54.348691 -
> length:4 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Response
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 01 00000001 S-Frame: RR                                  (Receiver
> Ready)
> L2 03 05 0000010- N(R) = 2                            (receive sequence
> number)
>           -------1 P/F, Final = Result of Poll
>
> -- TE->NT - unit:10  frame:002409 - time:12.07 22:27:54.348721 -
> length:8 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 04 0000010- N(S) = 2                               (send sequence
> number)
>           -------0 I-Frame: Information transfer
> L2 03 02 0000001- N(R) = 1                            (receive sequence
> number)
>           -------0 P/F, Poll = No Immediate Response Required
> L3 04 08 00001000 Protocol = Q.931/I.451/DSS1
>   (0x08)
> L3 05 01 0000---- Call Reference
>           ----0001 Call Reference length is 1 byte
> L3 06 AB 1------- Call Reference is sent to call originator
>           -0101011 Call Reference = 43 = 0x2b
> L3 07 02 0------- Message type extension = 0
>           -0000010 Message type = CALL_PROCEEDING
>    (0x02)
>

This connect is too early. We should have seen an ALERT message.

> -- TE->NT - unit:10  frame:002410 - time:12.07 22:27:54.348724 -
> length:8 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 06 0000011- N(S) = 3                               (send sequence
> number)
>           -------0 I-Frame: Information transfer
> L2 03 03 0000001- N(R) = 1                            (receive sequence
> number)
>           -------1 P/F, Poll = Immediate Response Required
> L3 04 08 00001000 Protocol = Q.931/I.451/DSS1
>   (0x08)
> L3 05 01 0000---- Call Reference
>           ----0001 Call Reference length is 1 byte
> L3 06 AB 1------- Call Reference is sent to call originator
>           -0101011 Call Reference = 43 = 0x2b
> L3 07 07 0------- Message type extension = 0
>           -0000111 Message type = CONNECT
>    (0x07)
>
> -- NT->TE - unit:10  frame:002411 - time:12.07 22:27:54.380663 -
> length:4 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Response
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 01 00000001 S-Frame: RR                                  (Receiver
> Ready)
> L2 03 06 0000011- N(R) = 3                            (receive sequence
> number)
>           -------0 P/F, Final = No Result of Poll
>

Now, this is strange: This is the response to the second STATUS enquiry. But 
why is is processed so late?

> -- NT->TE - unit:10  frame:002412 - time:12.07 22:27:54.380694 -
> length:15 ----
> L2 00 02 000000-- SAPI = 0                                       (Call
> Control)
>           ------1- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 02 0000001- N(S) = 1                               (send sequence
> number)
>           -------0 I-Frame: Information transfer
> L2 03 06 0000011- N(R) = 3                            (receive sequence
> number)
>           -------0 P/F, Poll = No Immediate Response Required
> L3 04 08 00001000 Protocol = Q.931/I.451/DSS1
>   (0x08)
> L3 05 01 0000---- Call Reference
>           ----0001 Call Reference length is 1 byte
> L3 06 FF 1------- Call Reference is sent to call originator
>           -1111111 Call Reference = 127 = 0x7f
> L3 07 7D 0------- Message type extension = 0
>           -1111101 Message type = STATUS
>    (0x7d)
> L3 08 08 0------- Variable length Information element
>           -0001000 IE = cause
> L3 09 02 00000010 IE Length = 2 bytes
> L3 0A 87 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -00----- Coding standard = CCITT
>           ---0---- Spare
>           ----0111 Location = ERROR: undefined/reserved
> L3 0B 9E 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -0011110 Cause = 30: Q.850: response to STATUS ENQUIRY
> L3 0C 14 0------- Variable length Information element
>           -0010100 IE = call state
> L3 0D 01 00000001 IE Length = 1 bytes
> L3 0E 00 -00----- Coding standard = CCITT
>           ---00000 state = Null
>
> -- TE->NT - unit:10  frame:002413 - time:12.07 22:27:54.380724 -
> length:4 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 01 00000001 S-Frame: RR                                  (Receiver
> Ready)
> L2 03 04 0000010- N(R) = 2                            (receive sequence
> number)
>           -------0 P/F, Poll = No Immediate Response Required
>
> -- NT->TE - unit:10  frame:002414 - time:12.07 22:27:54.412661 -
> length:4 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Response
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 01 00000001 S-Frame: RR                                  (Receiver
> Ready)
> L2 03 09 0000100- N(R) = 4                            (receive sequence
> number)
>           -------1 P/F, Final = Result of Poll
>

The PBX had enough! I probably wants to terminate the dummy callreference, but 
instead it terminates another call! This can maybe be exploited.

> -- NT->TE - unit:10  frame:002415 - time:12.07 22:27:54.412692 -
> length:12 ----
> L2 00 02 000000-- SAPI = 0                                       (Call
> Control)
>           ------1- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 04 0000010- N(S) = 2                               (send sequence
> number)
>           -------0 I-Frame: Information transfer
> L2 03 08 0000100- N(R) = 4                            (receive sequence
> number)
>           -------0 P/F, Poll = No Immediate Response Required
> L3 04 08 00001000 Protocol = Q.931/I.451/DSS1
>   (0x08)
> L3 05 01 0000---- Call Reference
>           ----0001 Call Reference length is 1 byte
> L3 06 2B 0------- Call Reference is sent from call originator
>           -0101011 Call Reference = 43 = 0x2b
> L3 07 5A 0------- Message type extension = 0
>           -1011010 Message type = RELEASE_COMPLETE
>    (0x5a)
> L3 08 08 0------- Variable length Information element
>           -0001000 IE = cause
> L3 09 02 00000010 IE Length = 2 bytes
> L3 0A 87 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -00----- Coding standard = CCITT
>           ---0---- Spare
>           ----0111 Location = ERROR: undefined/reserved
> L3 0B D1 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -1010001 Cause = 81: Q.850: invalid call reference value
>

I4B follows up with a RELEASE_COMPLETE, though it is strictly not required, 
but does send it anyway. This is not a violation of the ISDN protocol, hence 
during a race when both ends wants to terminte at the same time, this can 
happen.

> -- TE->NT - unit:10  frame:002416 - time:12.07 22:27:54.412733 -
> length:12 ----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 08 0000100- N(S) = 4                               (send sequence
> number)
>           -------0 I-Frame: Information transfer
> L2 03 07 0000011- N(R) = 3                            (receive sequence
> number)
>           -------1 P/F, Poll = Immediate Response Required
> L3 04 08 00001000 Protocol = Q.931/I.451/DSS1
>   (0x08)
> L3 05 01 0000---- Call Reference
>           ----0001 Call Reference length is 1 byte
> L3 06 AB 1------- Call Reference is sent to call originator
>           -0101011 Call Reference = 43 = 0x2b
> L3 07 5A 0------- Message type extension = 0
>           -1011010 Message type = RELEASE_COMPLETE
>    (0x5a)
> L3 08 08 0------- Variable length Information element
>           -0001000 IE = cause
> L3 09 02 00000010 IE Length = 2 bytes
> L3 0A 80 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -00----- Coding standard = CCITT
>           ---0---- Spare
>           ----0000 Location = User
> L3 0B E6 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -1100110 Cause = 102: Q.850: recovery on timer expiry
>
> -- NT->TE - unit:10  frame:002417 - time:12.07 22:27:54.444660 -
> length:4 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Response
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 01 0000000- TEI = 0 = 0x00
> (Non-automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 01 00000001 S-Frame: RR                                  (Receiver
> Ready)
> L2 03 04 0000010- N(R) = 2                            (receive sequence
> number)
>           -------0 P/F, Final = No Result of Poll
>
> -- NT->TE - unit:10  frame:002418 - time:12.07 22:27:54.444686 -
> length:4 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Response
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 01 00000001 S-Frame: RR                                  (Receiver
> Ready)
> L2 03 0B 0000101- N(R) = 5                            (receive sequence
> number)
>           -------1 P/F, Final = Result of Poll
>

This is suspicious: Why does the PBX send a double RELEASE_COMPLETE. I see no 
reason for this.

> -- NT->TE - unit:10  frame:002419 - time:12.07 22:27:54.476658 -
> length:12 ----
> L2 00 02 000000-- SAPI = 0                                       (Call
> Control)
>           ------1- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 06 0000011- N(S) = 3                               (send sequence
> number)
>           -------0 I-Frame: Information transfer
> L2 03 0A 0000101- N(R) = 5                            (receive sequence
> number)
>           -------0 P/F, Poll = No Immediate Response Required
> L3 04 08 00001000 Protocol = Q.931/I.451/DSS1
>   (0x08)
> L3 05 01 0000---- Call Reference
>           ----0001 Call Reference length is 1 byte
> L3 06 2B 0------- Call Reference is sent from call originator
>           -0101011 Call Reference = 43 = 0x2b
> L3 07 5A 0------- Message type extension = 0
>           -1011010 Message type = RELEASE_COMPLETE
>    (0x5a)
> L3 08 08 0------- Variable length Information element
>           -0001000 IE = cause
> L3 09 02 00000010 IE Length = 2 bytes
> L3 0A 87 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -00----- Coding standard = CCITT
>           ---0---- Spare
>           ----0111 Location = ERROR: undefined/reserved
> L3 0B D1 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -1010001 Cause = 81: Q.850: invalid call reference value
>
> -- TE->NT - unit:10  frame:002420 - time:12.07 22:27:54.476696 -
> length:4 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 01 00000001 S-Frame: RR                                  (Receiver
> Ready)
> L2 03 08 0000100- N(R) = 4                            (receive sequence
> number)
>           -------0 P/F, Poll = No Immediate Response Required
>
> -- NT->TE - unit:10  frame:002421 - time:12.07 22:27:56.460636 -
> length:3 -----
> L2 00 02 000000-- SAPI = 0                                       (Call
> Control)
>           ------1- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 53 010-0011 U-Frame: DISC
> (Disconnect)
>           ---1---- P/F, Poll = Immediate Response Required
>
> -- TE->NT - unit:10  frame:002422 - time:12.07 22:27:56.460671 -
> length:3 -----
> L2 00 02 000000-- SAPI = 0                                       (Call
> Control)
>           ------1- C/R = Response
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 BF 1011111- TEI = 95 = 0x5f
> (Automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 73 011-0011 U-Frame: UA                          (Unnumbered
> Acknowledge)
>           ---1---- P/F, Final = Result of Poll
>
> -- NT->TE - unit:10  frame:002423 - time:12.07 22:27:56.524636 -
> length:8 -----
> L2 00 FE 111111-- SAPI = 63                                (Layer 2
> Management)
>           ------1- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 FF 1111111- TEI = 127 = 0x7f
> (Broadcast TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 03 000-0011 U-Frame: UI                          (Unnumbered
> Information)
>           ---0---- P/F, Poll = No Immediate Response Required
> L2 03 0F 00001111 MEI                            (Management Entity
> Identifier)
> L2 04 00 00000000 Ri = 0x0000                           (Reference
> number high)
> L2 05 00 00000000 Ri                                     (Reference
> Number low)
> L2 06 04 00000100 TEI Identity message = CHECK REQUEST
>   (0x04)
> L2 07 FF 1111111- Ai = 127                                (Action
> Indicator = )
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
>
> -- NT->TE - unit:10  frame:002424 - time:12.07 22:27:57.548631 -
> length:8 -----
> L2 00 FE 111111-- SAPI = 63                                (Layer 2
> Management)
>           ------1- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 FF 1111111- TEI = 127 = 0x7f
> (Broadcast TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 03 000-0011 U-Frame: UI                          (Unnumbered
> Information)
>           ---0---- P/F, Poll = No Immediate Response Required
> L2 03 0F 00001111 MEI                            (Management Entity
> Identifier)
> L2 04 00 00000000 Ri = 0x0000                           (Reference
> number high)
> L2 05 00 00000000 Ri                                     (Reference
> Number low)
> L2 06 04 00000100 TEI Identity message = CHECK REQUEST
>   (0x04)
> L2 07 BF 1011111- Ai = 95                                    (Action
> Indicator)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
>
> -- NT->TE - unit:10  frame:002425 - time:12.07 22:27:58.572624 -
> length:8 -----
> L2 00 FE 111111-- SAPI = 63                                (Layer 2
> Management)
>           ------1- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 FF 1111111- TEI = 127 = 0x7f
> (Broadcast TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 03 000-0011 U-Frame: UI                          (Unnumbered
> Information)
>           ---0---- P/F, Poll = No Immediate Response Required
> L2 03 0F 00001111 MEI                            (Management Entity
> Identifier)
> L2 04 00 00000000 Ri = 0x0000                           (Reference
> number high)
> L2 05 00 00000000 Ri                                     (Reference
> Number low)
> L2 06 04 00000100 TEI Identity message = CHECK REQUEST
>   (0x04)
> L2 07 BF 1011111- Ai = 95                                    (Action
> Indicator)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
>

This is also strange. Now the PBX wants to terminate the call again, but as 
you see, the TEI value is completely wrong. TEI 0 is the TEI value for 
Point2Point. Also the location value is wrong.

> -- NT->TE - unit:10  frame:002426 - time:12.07 22:27:58.988627 -
> length:12 ----
> L2 00 02 000000-- SAPI = 0                                       (Call
> Control)
>           ------1- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 01 0000000- TEI = 0 = 0x00
> (Non-automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 00 0000000- N(S) = 0                               (send sequence
> number)
>           -------0 I-Frame: Information transfer
> L2 03 04 0000010- N(R) = 2                            (receive sequence
> number)
>           -------0 P/F, Poll = No Immediate Response Required
> L3 04 08 00001000 Protocol = Q.931/I.451/DSS1
>   (0x08)
> L3 05 01 0000---- Call Reference
>           ----0001 Call Reference length is 1 byte
> L3 06 2B 0------- Call Reference is sent from call originator
>           -0101011 Call Reference = 43 = 0x2b
> L3 07 4D 0------- Message type extension = 0
>           -1001101 Message type = RELEASE
>    (0x4d)
> L3 08 08 0------- Variable length Information element
>           -0001000 IE = cause
> L3 09 02 00000010 IE Length = 2 bytes
> L3 0A 87 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -00----- Coding standard = CCITT
>           ---0---- Spare
>           ----0111 Location = ERROR: undefined/reserved
> L3 0B 90 1------- Extension Bit = 1                 (no extension, final
> octet)
>           -0010000 Cause = 16: Q.850: normal call clearing
>
> -- NT->TE - unit:10  frame:002427 - time:12.07 22:27:59.052620 -
> length:4 -----
> L2 00 00 000000-- SAPI = 0                                       (Call
> Control)
>           ------0- C/R = Response
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 01 0000000- TEI = 0 = 0x00
> (Non-automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 01 00000001 S-Frame: RR                                  (Receiver
> Ready)
> L2 03 06 0000011- N(R) = 3                            (receive sequence
> number)
>           -------0 P/F, Final = No Result of Poll
>
> -- NT->TE - unit:10  frame:002428 - time:12.07 22:27:59.596619 -
> length:8 -----
> L2 00 FE 111111-- SAPI = 63                                (Layer 2
> Management)
>           ------1- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 FF 1111111- TEI = 127 = 0x7f
> (Broadcast TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 03 000-0011 U-Frame: UI                          (Unnumbered
> Information)
>           ---0---- P/F, Poll = No Immediate Response Required
> L2 03 0F 00001111 MEI                            (Management Entity
> Identifier)
> L2 04 00 00000000 Ri = 0x0000                           (Reference
> number high)
> L2 05 00 00000000 Ri                                     (Reference
> Number low)
> L2 06 06 00000110 TEI Identity message = REMOVE
>   (0x06)
> L2 07 BF 1011111- Ai = 95                                    (Action
> Indicator)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
>
> -- NT->TE - unit:10  frame:002429 - time:12.07 22:27:59.596643 -
> length:8 -----
> L2 00 FE 111111-- SAPI = 63                                (Layer 2
> Management)
>           ------1- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 FF 1111111- TEI = 127 = 0x7f
> (Broadcast TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 03 000-0011 U-Frame: UI                          (Unnumbered
> Information)
>           ---0---- P/F, Poll = No Immediate Response Required
> L2 03 0F 00001111 MEI                            (Management Entity
> Identifier)
> L2 04 00 00000000 Ri = 0x0000                           (Reference
> number high)
> L2 05 00 00000000 Ri                                     (Reference
> Number low)
> L2 06 06 00000110 TEI Identity message = REMOVE
>   (0x06)
> L2 07 BF 1011111- Ai = 95                                    (Action
> Indicator)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
>
> -- NT->TE - unit:10  frame:002430 - time:12.07 22:28:01.068611 -
> length:3 -----
> L2 00 02 000000-- SAPI = 0                                       (Call
> Control)
>           ------1- C/R = Command
>           -------0 Extension Bit = 0             (with extension, octet
> follows)
> L2 01 01 0000000- TEI = 0 = 0x00
> (Non-automatic TEI)
>           -------1 Extension Bit = 1                 (no extension,
> final octet)
> L2 02 53 010-0011 U-Frame: DISC
> (Disconnect)
>           ---1---- P/F, Poll = Immediate Response Required
>
> -- NT->TE - unit:10 --------------- time:12.07 22:28:04.364553
> ----------------
> L1 STATE: F3: Deactivated
>

Can you tell us a little more about your setup. Is the HFC card connected to 
an ISDN PBX or directly to the ISDN telecom provider?

It looks to me like your PBX or Telco has a weak point in their code. I'm not 
sure if I want to make another workaround in I4B for this kind of things, 
hence I already have several workarounds for various PBX bugs. Let's hope it 
is just your PBX :-)

--HPS


More information about the freebsd-isdn mailing list