Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

User-user information IE missing in SETUP retransmission #7

Open
flefollcs opened this issue Oct 2, 2023 · 0 comments · May be fixed by #8
Open

User-user information IE missing in SETUP retransmission #7

flefollcs opened this issue Oct 2, 2023 · 0 comments · May be fixed by #8

Comments

@flefollcs
Copy link

Issue type:
Bug

Description:
When libpri retransmits a SETUP message, UUI Information Element (IE) that was present in first SETUP is missing in second SETUP.

Operating System detail:
(problem not related to OS)

libpri version:
1.6.0 (should also occur with 1.6.1: involved code unchanged)

Information on any third party software:
Asterisk 18.6.0, dahdi 3.1.0

Frequency and timing of the issue:
Always, when SETUP is repeated after T303 timeout.

Symptoms described in specific detail:
Called party receives second SETUP without UUI, although Asterisk provided a UUI value.
The defect is visible in Asterisk with CLI command "pri set debug on span ".

Steps required to reproduce the issue:
This Issue requires, when using libpri with Asterisk :

  • UUI support in Asterisk: compile channels/sig_pri.c with #define SUPPORT_USERUSER
  • UUI activation from Asterisk dialplan: set _USERUSERINFO Channel variable before Dial(),
  • a SETUP retransmission: it can be reproduced with a slow called equipment, or a very short T303 timer configuration.

Workarounds in detail with specific steps:
No workaround.

Debugging output:
Enable "pri set debug on span " before making the call.
First SETUP carries UUI.
Repeated SETUP, after T303 timeout, does not.

Analysis:
The problem comes from libpri q931.c use of useruserinformation field in q931_call structure as a ephemeral storage field.
In outgoing direction, useruserinformation field is cleared as soon as UUI IE is generated (function transmit_user_user()).
Note: in incoming direction, useruserinformation field is also set while decoding IE, and cleared when libpri generates event for application.

I will try to submit a patch soon.

flefollcs added a commit to flefollcs/libpri that referenced this issue Oct 2, 2023
When retransmitting a message, libpri currently does not include
User-user Information IE, because storage field was cleared at first
transmission.
This fix introduces a retransmission cache for information lost after
first transmission. It applies to potentially retransmitted messages:
SETUP and RELEASE.

Resolves: asterisk#7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant