A Brief View of the PRI Call Flow

Why We Learn the PRI Call Flow?

No matter you are newbie or veteran telephony industry man, you at least know the PRI line. Here we don't introduce how the PRI line is. As you could a lot of useful information about in the internet.

In this article, we would talk about PRI line from the technical aspect. The idea is to tell you guys several simple skills to understand and check a PRI call flow. And it help you troubleshoot some basic issues. It doesn't goes that far, but hope you can enjoy this piece.

Note that the BRI call flow is very close the PRI call flow. So if you are looking for a BRI call flow view, this article also makes sense.

How Can We Get the PRI Packets?

If you are using Yeastar products, you can refer the following links:

U-Series/Gateway: BRI/PRI debug for U-Series
S-Series: BRI/PRI debug for S-Series
For S-Series, you can also try System Log with PRI debug option enabled: System Log

Well it is also available for Asterisk system user. As our products are mostly based on the Asterisk system.

PRI Call Flow Key Points

Sometimes it is quite annoying to read the ITU-T Recommendation documents due to the incomprehensible telephone terms. Apparently, it is stupid way read page by page of the document. After all Rome is not built in a day.

But we pick up the very valuable and easy points for efficient learning.

A Common PRI Call Flow

The following figure indicates when it is interconnected with PRI gateway that the left leg shows the PRI call flow. The PRI messages are fairly straight forwarding meaning. If you are familiar with SIP protocol, then it more easier to understand and compare the 2 signaling.


Q.931 Frame Elements

  • Protocol discriminator (PD) - Specifies which signaling protocol is used for the connection (e.g. PD=8 for DSS1)

  • Call reference value (CR) - Addresses different connections which can exist simultaneously. The value is valid only during the actual time period of the connection

  • Message type (MT) - Specifies the type of a layer 3 message out of the Q.931-defined Message type set for call control (e.g. SETUP). There are messages defined for the call setup, the call release and the control of call features.

  • Information elements (IE) - Specify further information which is associated to the actual message. An IE contains the IE name (e.g. bearer capability), their length and a variable field of contents.

See a sample of SETUP message.


Message Type

ITU-T Recommendation Q.931 is the ITU standard ISDN connection control signalling protocol, forming part of Digital Subscriber Signalling System No. 1. It was designed for ISDN call establishment, maintenance, and release of network connections between two notes (or DTEs - Data terminal equipments) on the ISDN D channel. Q.931 does not have a direct equivalent in the Internet Protocol stack, but can be compared to SIP.

SETUP: This message is sent by the calling user to the network and by the network to the called user to initiate access connection establishment.

CALL PROCEEDING: This message is sent by the called user to the network or by the network to the calling user to indicate that requested call establishment has been initiated and no more call establishment information will be accepted.

ALERTING: This message is sent by the called user to the network, and by the network to the calling user, to indicate that called user alerting (or ringing) has been initiated

CONNECT: This message is sent by the called user to the network, and by the network to the calling user, to indicate call acceptance by the called user

CONNECT ACKNOWLEDGE: This message is sent by the network to the called user to indicate that the user has been awarded the access connection. It may also be sent by the calling user to the network to allow symmetrical access connection control procedures

DISCONNECT: sent to indicate a request to terminate the connection, by the end that seeks to terminate

RELEASE: This message is sent by the user or the network to indicate that the equipment sending the message has disconnected the channel (if any), and intends to release the channel and the call reference, and that the receiving equipment should release the channel and prepare to release the call reference after sending RELEASE COMPLETE

RELEASE COMPLETE: This message is sent by the user or the network to indicate that the equipment sending the message has released the channel (if any) and call reference. The channel is available for reuse, and the receiving equipment shall release the call reference

RESTART: This message is sent by the user or network to request the recipient to restart (i.e. return to an idle condition) the indicated channel(s) or interface

RESTART ACKNOWLEDGE: This message is sent to acknowledge the receipt of the RESTART message and to indicate that the requested restart is complete.

How to Find the correct message type in the log?

It is pretty straight forward, huh? Well if you would like to pick up the message precisely, there is a way to do that in the Notepad++.

1. Press CtrL +F and fill key word "Message Type",  Click the button "Find All in Current Document".

2. Click in the Find Result section to select the message you want.

Message Direction

There is a way to identify the message direction by the arrow bracket symbol.

"<" means receiving message for Asterisk system.

">" means sending message for Asterisk system.

See the figure, the Asterisk system received a SETUP messge.

Information Element

In this part, usually we could the useful information including the codec, calling party number, called number, type of number, presentation properties. Well, this information usually appears in the SETUP message.

See the example:

Call Reference

It is the identifier of the same call.

How to find the PRI messages for same call?

It is very useful when you want to find and check the specific call in a large log. Here is procedure how we find a specific call for troubleshooting.

1. Find the SETUP message, and select the right SETUP message according the some other information like the Information Element (Calling Party number or Called Party number). Copy the call reference.

2. Press Ctrl + F in the Notepad++, and fill key word call reference you got in step 1,  Click the button "Find All in Current Document".

3. Then you would the whole call flow.

Hangup Cause

When you have call failure issue, you might need to check the hangup cause in the DISCONNECT message. It's helpful to analyze why the PRI call is failed.

See the Cause in the figure was Normal Clearing.

You can refer this link know the IDSN Hangup cause code. ISDN-Disconnect-cause-codes

PRI Line Trends

Till now, we speak much about the PRI call flow. While you might know the PRI line is losing its market share as time goes by. As VoIP is growing and has more advantages than ISDN PRI lines. 

But to completely replace a ISDN equipment or existing PRI line is quite expensive and time-consuming stuff. 

Extend your PRI line to VoIP: Gateway Scenario 4 - ISDN Gateway

Yeastar Gateway Cases: Yeastar VoIP Gateway Solution

Finally, it is not impossible you might want to embrace the VoIP. We also turnkey solution by our Cloud PBX. In advance, you can have 30 days-trial before you purchase. Click to start Yeastar Cloud PBX trial.

Have more questions? Submit a request


Please sign in to leave a comment.