The third layer protocol on the D channel, or Q.931 messaging, controls connections between various nodes on an ISDN network. These messages contain call setup, call clearing, and various status messaging. The first Layer 3 activity occurs when the router sends the service profile identifier (SPID) to the switch. Q.931 includes numerous options. You must ensure that you configure the exact type of switch and protocol. Many cases arise when the LEC uses 5ESS or DMS-100, and runs NI-1 protocol. There are other cases when DMS-100 is emulating 4ESS or 5ESS using different profiles. Q.931 has 37 different types of call setups. The SPIDs bind a specific TEI to a specific service profile. If you receive an Invalid IE contents or SPID.x rejected message, that means the handshake procedure between the local switch and the CPE was unsuccessful and the SPID was rejected (see Example 12-16).ebug isdn q931 Example 12-16. Handshake Procedure Between the Local Switch and the CPE Was Unsuccessful and the SPID Was Rejected 804-isdn#d *Mar 1 00:01:10.881: %ISDN-6-LAYER2UP: Layer 2 for Interface BR0, TEI 112 changed to up *Mar 1 00:01:10.885: ISDN BR0: TX -> INFORMATION pd = 8 callref = (null) SPID Information i = '40857647400101' *Mar 1 00:01:10.925: ISDN BR0: RX <- INFORMATION pd = 8 callref = (null) ENDPOINT Ident i = 0x8081 *Mar 1 00:01:10.933: ISDN BR0: Received EndPoint ID *Mar 1 00:01:10.953: ISDN BR0: RX <- INFORMATION pd = 8 callref = (null) Locking Shift to Codeset 5 *Mar 1 00:01:10.957: Codeset 5 IE 0x2A i = 0x808001, 'P' *Mar 1 00:01:10.985: %ISDN-6-LAYER2UP: Layer 2 for Interface BR0, TEI 65 changed to up *Mar 1 00:01:10.989: ISDN BR0: TX -> INFORMATION pd = 8 callref = (null) SPID Information i = '40857647440101' *Mar 1 00:01:11.045: ISDN BR0: RX <- INFORMATION pd = 8 callref = (null) Cause i = 0x82E43A Invalid IE contents *Mar 1 00:01:11.053: %ISDN-4-INVALID_SPID: Interface BR0, Spid2 was rejected The negotiation begins with sending the first SPID information. The SPID information can be in clear text, such as SPID Information i = '40857647400101', for IOS 12.0+, or in ASCII code, such as i = 3631234234545342, for older versions of IOS. The pd is the protocol descriptor. Another part of the setting is the local directory number (LDN), which is configured to receive incoming calls. If LDN is not configured on telco's switch, which is because either the switch does not support the voice feature or the ISDN service is not provisioned for voice, the router cannot receive voice calls. In the following examples, you can see the status of the ISDN layers after the second SPID is rejected. Example 12-17 shows the result from the unsuccessful SPID2 negotiation in 776 routers. Example 12-17. Examples of SPID Negotiation in 776 Routers 776-isdn> 01/01/1995 00:00:26 L19 1 Terminal Identifier Unassigned 776-isdn> 01/01/1995 00:00:26 L19 2 Terminal Identifier Unassigned 776-isdn> 01/01/1995 00:00:26 L12 0 Disconnected Remotely 776-isdn> 01/01/1995 00:00:26 L18 1 Terminal Identifier Assigned 776-isdn> 01/01/1995 00:00:26 L22 1 40857647400101 Sending SPID 776-isdn> 01/01/1995 00:00:26 L27 0 Disconnected 776-isdn> 01/01/1995 00:00:27 L18 2 Terminal Identifier Assigned 776-isdn> 01/01/1995 00:00:27 L23 1 40857647400101 SPID Accepted 776-isdn> 01/01/1995 00:00:27 L22 2 4085764744 Sending SPID 776-isdn> 01/01/1995 00:00:27 L24 2 SPID Rejected Cause 100 Invalid Information Element Contents Finally, in terms of 77x router, Example 12-18 shows the status of the ISDN service, including Layer 3's status. Example 12-18. The Status of the ISDN Service, Including Layer 3's Status776-isdn> show status Status 09/01/2000 11:00:28 Line Status Line Activated Terminal Identifier Assigned SPID Accepted Terminal Identifier Assigned SPID Rejected Port Status Interface Connection Link Ch: 1 Waiting for Call Ch: 2 Waiting for Call 776-isdn> In terms of IOS, the same information about all layers, including Layer 3, is displayed in Example 12-19. Example 12-19. show isdn status Output804-isdn#show isdn status Global ISDN Switchtype = basic-ni ISDN BRI0 interface dsl 0, interface ISDN Switchtype = basic-ni Layer 1 Status: ACTIVE Layer 2 Status: TEI = 112, Ces = 1, SAPI = 0, State = MULTIPLE_FRAME_ESTABLISHED TEI = 65, Ces = 2, SAPI = 0, State = MULTIPLE_FRAME_ESTABLISHED Spid Status: TEI 112, ces = 1, state = 5(init) spid1 configured, spid1 sent, spid1 valid Endpoint ID Info: epsf = 0, usid = 0, tid = 1 TEI 65, ces = 2, state = 6(not initialized) spid2 configured, spid2 sent, spid2 NOT valid At this point, it is a good idea to carefully review the provisioning information and, if this does not help, work with the service provider to resolve the SPID2 issue. So far, the information about Layer 3 in this section was about establishing the Layer 3 functionality. The following discussion is about the dynamics of the ISDN Layer 3, which is developed to handle the ISDN calls. First and foremost of course, you have to make sure that the router can make calls out. This can be done in two ways:
To generate interesting traffic, you must connect a computer to the router and run an application or open a browser, which is usually configured to be interesting traffic for the router. It's much simpler to generate a manual call, especially when you are troubleshooting remotely, as follows:
Another easy way to test the D channel functionality is to use the voice channels on the premise that the ISDN service is provisioned for voice and data. If this is the case, you can work with the remote user to connect a regular phone to the voice ports of the router and try to make a local or long-distance voice call. If there's a dial tone and the user can make calls out at all, the D channel is working properly. If not, you need more detailed troubleshooting. As previously mentioned, two types of protocols are running on Layer 3:
No definition of the Layer 2 B channel protocol is in the ISDN standard, but PPP or HDLC (by default) can be used. Q.931 defines a series of messages including the following:
The router informs the switch that it wants to make a call. The switch transforms the Q.931 messages to SS7 and places a call to the remote switch. The remote switch translates the call to Q.931 signals and calls the remote router. Q.931 is not an end-to-end protocol, but in terms of troubleshooting, it's more convenient to consider Q.931 as an end-to-end protocol, especially when the ISDN network belongs to a single provider. Layer 2 INFO frames transmit all Q.931 signals and, when the router places a data call, it sends a packet. The setup packet always has a protocol descriptor of pd = 8 and generates a random hex value for the call referencecallref=0x08. The callref is important when troubleshooting with the local or long-distance LEC because the carriers see the same callref and can easily track the call and its history. Also, from the handshaking of transmit (TX->) and receive (RX<-) messages, you can see what call is related to what user. In Example 12-20, you can see the call setup procedure. Example 12-20. The Call Setup Procedure 804-isdn#debug isdn q931 *Mar 4 08:12:28.506: ISDN BR0: TX -> SETUP pd = 8 callref = 0x08 *Mar 4 08:12:28.510: Bearer Capability i = 0x8890 *Mar 4 08:12:28.510: Channel ID i = 0x83 *Mar 4 08:12:28.514: Keypad Facility i = '18007735555' *Mar 4 08:12:29.646: ISDN BR0: RX <- CALL_PROC pd = 8 callref = 0x88 *Mar 4 08:12:29.650: Channel ID i = 0x8A *Mar 4 08:12:31.930: ISDN BR0: RX <- CONNECT pd = 8 callref = 0x88 *Mar 4 08:12:31.938: ISDN BR0: TX -> CONNECT_ACK pd = 8 callref = 0x08 *Mar 4 08:12:31.942: %LINK-3-UPDOWN: Interface BRI0:2, changed state to up *Mar 4 08:12:31.958: %DIALER-6-BIND: Interface BRI0:2 bound to profile Dialer1 *Mar 4 08:12:31.958: %ISDN-6-CONNECT: Interface BRI0:1 is now connected to 18007735555 gateway To assist with understanding the output from the router, refer to the format of Q.931 in Figure 9-7. From call information of pd = 8 and callref = 0xXX, you can trace the call history and see STATUS pd = 8, DISCONNECT pd = 8, and RELEASE pd = 8. A piece of important information is the Bearer Capability i = 8890, which indicates a 64-kbps data call. The 0x8890218F means it is a 56-kbps data call and the 0x8090A2 means that it's a voice call. Channel ID i = 0x83 is a request from the router to the switch to assign an idle B channel. If the request is not allowed, you can see "isdn_is_bchannel_available: No Free B-channels", which indicates a capacity issue or congestion in the LEC's network. Keypad facility i = '18007735555' is the number called by the router. If it is an incoming call and the line is provisioned so the LEC provides caller_ID (Q.932), you see 'Called Party Number i=0x88 '5764740'. CALL_PROC', which indicates that the call is proceeding. To differentiate between TX and RX, callref uses different values for the first digit after the 0x. (0x indicates a hexadecimal value.) Although the second digit is the same for the TX and RX values 0x88 and 0x08, the first digit is different. This fact allows you to differentiate the callref if it is a TX or RX message. Channel ID i = 89 indicates the first channel, and the second channel is indicated as Channel ID i = 8A. The last stage is CONNECT, when the LEC assigns an idle B-channel to the router, and the router receives the following: ISDN BR0: RX <- CONNECT pd = 8 callref = 0x88, with calref = 0x88. The router responds to the same callref = 0x08 with acknowledgment: ISDN BR0: TX -> CONNECT_ACK pd = 8 callref = 0x08. If the call is unsuccessful, the order of the messages is different. If the router places a data call, you might see this message: ISDN BR0: TX -> SETUP pd = 8 callref = 0x08. Later in the Q.931 input, you might see a message RX<- RELEASE_COMP pd = 8 callref = 82. The RELEASE_COMP message is a clear indication that the call is refused. NOTE Sometimes, the TX-> release message and RX<- RELEASE_COMP messages can be misleading. The CPE tends to not understand that the call is terminated. The provided approach for troubleshooting the functionality of the D channel is beneficial when working with the service provider because the Cisco router provides for you the same visibility given to your provider about the details of Q.931 signaling. The simpler, but still recommended, approach to the D channel functionality is as follows, using another set of IOS debug commands, such as #debug dialer: 804-isdn#debug dialer ? events Dial on demand events packets Dial on demand traffic In this command, you have two options: to debug the events or the traffic. It is recommended to turn the debug on and to make a data call out, generating interesting traffic. In Example 12-21, you see output from the command when you are debugging traffic and access list 101 defines the interesting traffic. Example 12-21. debug dialer packets Output 804-isdn#debug dialer packets Mar 3 10:06:46.815: Dialer1 DDR: ip (s=10.19.250.248, d=10.19.92.149), 41 bytes, outgoing interesting (list 101) Mar 3 10:06:47.055: Dialer1 DDR: ip (s=10.19.250.248, d=10.19.92.149), 596 bytes, outgoing interesting (list 101) The output displays the interesting traffic triggering the call, including the source and destination of the information and the TCP port, as well as the number of bytes and the ACL number. Similar information can be seen in Example 12-22 for a 770 series router, with the Software Version c760-in.r.US 4.4(2). Example 12-22. show packets Output 776-isdn:gateway> show packets Packet Statistics for Connection 3 Filtered: 0 Forwarded: 9869 Received: 10773 Dropped: 373 Lost: 27 Corrupted: 0 Misordered: 30 Compression Ratio: 2.38:1 IP Packet that triggered last call Source Address: 10.0.0.1 Destination Address: 10.19.92.149 Protocol: TCP Source Port: 23 Destination Port: 3649, For IOS-based ISDN routers, if you want to track the dialer events, use the alternative displayed in Example 12-23. Example 12-23. debug dialer events Output 804-isdn#debug dialer events *Mar 3 10:02:07.699: BRI0 DDR: rotor dialout [priority] *Mar 3 10:02:07.699: BRI0 DDR: Attempting to dial 18007735555 *Mar 3 10:02:10.643: %LINK-3-UPDOWN: Interface BRI0:2, changed state to up *Mar 3 10:02:10.659: %DIALER-6-BIND: Interface BRI0:2 bound to profile Dialer1 *Mar 3 10:02:10.663: %ISDN-6-CONNECT: Interface BRI0:1 is now connected to 18007735555 gateway *Mar 3 10:02:10.667: isdn_call_connect: Calling lineaction of BRI0:2 *Mar 3 10:02:12.511: %LINEPROTO-5-UPDOWN: Line protocol on Interface BRI0:2, changed state to up!!!!!!! *Mar 3 10:02:16.663: %ISDN-6-CONNECT: Interface BRI0:1 is now connected to 18007735555 gateway!! Success rate is 100 percent (100/100), round-trip min/avg/max = 532/617/992 ms Although the encapsulation discussion appears later in this chapter, it is important to distinguish between calls when they always fail (a Q.931 issue) and calls that might connect for a period of time and then disconnect due to a PPP issue. This is shown in Example 12-24 for a 700 series router, where the first channel has difficulties operating the PPP protocol. Example 12-24. show status Output 776-isdn>show status Status 09/01/2000 09:34:30 Line Status Line Activated Terminal Identifier Assigned SPID Accepted Terminal Identifier Assigned SPID Accepted Port Status Interface Connection Link Ch: 1 64K Call In Progress 18007735555 DATA 0 0 Ch: 2 64K Call In Progress 18007735555 DATA 3 1 From the previous output, the first channel drops because the PPP negotiation (LCP phase) is unsuccessful. In the Q.931 output, you see the reason for the call rejection and the following output messages: RX<- RELEASE_COMP pd = 8 callref = 82 and Cause i = 0x8295 Call Rejected. The cause for the rejection is i = 0x8295, and the assigned number (8295) is the hex value of this message. Usually, the messages from the switch are short decimal values. A brief description of some of the most common decimal values of Q.931, their description and possible cause, received from the NI-1 ISDN switch for 77x routers are provided in Table 12-1.
As previously mentioned, your second objective is ensuring that the router can pass data. This feature is closely and mainly related to the following discussion about encapsulation options, PPP protocol suite, and its phases. |