[asterisk-dev] ISDN User-User Information (UUI)

Richard Mudgett rmudgett at digium.com
Thu Sep 6 19:40:49 CDT 2012


> I write here in the dev list because i don't know if this is a bug.
> I have installed Asterisk 1.8.15, libri 1.4.12 and dahdi 2.6.1 in a
> server with EuroISDN PRI.
> My customer need to receive the UUI information from a remote contact
> center (unknown PBX vendor), so i have changed in sig_pri.c from
> #undef SUPPORT_USERUSER
> to
> #define SUPPORT_USERUSER
> and recompiled Asterisk but the ${USERUSERINFO} received variable is
> still empty.
> 
> If i enable the pri debug, i can see the information sent from the
> remote PBX (for privacy reason i cut the hex line):
> [2012-09-04 09:42:02] VERBOSE[2099] chan_dahdi.c: PRI Span: 6 < [7e
> 12 00 33 ... 3 32 31 39 32]
> [2012-09-04 09:42:02] VERBOSE[2099] chan_dahdi.c: PRI Span: 6 <
> User-User Information (len=20) [ 00 33 39 3 ... 3 32 31 39 32 ]

The first character in this user-user data is the null character.
This is why USERUSERINFO is empty for this data.

The data stored in the USERUSERINFO channel variable is a null
terminated ASCII string.  That is how Asterisk/libpri treats user-user
information.  Unfortunately, the user-user information is really
a binary string that can contain any character so it cannot be treated
as a null terminated ASCII string by Asterisk/libpri.

> If i convert the hex string to ascii i can see the correct
> informations.
> 
> And also, if the remote PBX is another Asterisk, i can see the
> ${USERUSERINFO} . For example:
> [2012-09-04 12:38:05] VERBOSE[2098] chan_dahdi.c: PRI Span: 5 < [7e
> 10 04 63 ... 61 73 68 32 30 31 32]
> [2012-09-04 12:38:05] VERBOSE[2098] chan_dahdi.c: PRI Span: 5 <
> User-User Information (len=18) [ 04 63 72 65 64 69 ... 30 31 32 ]

This user-user data should have put something in the USERUSERINFO
channel variable that you could see since there is data before a
possible null character.  You have not shown which message these
user-user information elements came in on so I cannot say definitely
why the channel variable is empty.

> The only differences i can see in these two debug are the len=20 and
> len=18 field.
> 
> I have found this old issue in the tracker but i don't understand if
> this code is merged in the current version of asterisk and libpri:
> https://issues.asterisk.org/jira/browse/PRI-106

This patch has not been merged.  There are problems with that patch.
1) It duplicates base64 code which is already available in the Asterisk code.
2) It breaks libpri backward compatibility.

> Is this a limitation of Asterisk?

Yes it is a limitation of the current Asterisk/libpri API.

The one channel variable Asterisk uses also does not give you much
control over which message the data is sent or if you need to send
different data on different messages.

> Can i open an issue in the asterisk traker about this?

It would just be a duplicate of PRI-106.

Richard



More information about the asterisk-dev mailing list