[asterisk-dev] Libpri Hangup sends RELEASE COMPLETE with Invalid call reference value always.

Abhinav Jha virolord at gmail.com
Tue Dec 28 17:51:27 UTC 2010


I'm using the latest stable version of libpri ( also reproducible
on ), and am noticing the following Issue in ALL of my hangups  (
of all duration - 0, 30, 60 seconds and higher )

1. Say, the user ( leg A ) - Application sends a DISCONNECT to the network (
Leg B ). I'm noticing that libpri destroys the call after receiving a

2. Next, A receives RELEASE from Leg B, with a call reference. However, this
call reference is not there anymore, and has to be created. It gets created
afresh - but as a newcall.
 So it has c->newcall = 1.

3. The post_handle_931_message function sees this c->newcall = 1, and calls
q931_release_complete(ctrl, c, Q931_INVALID_CALL_REFERENCE), which leads to
RELEASE COMPLETE always being delivered to LEG B with the message Invalid
Call Reference (81).

Is this a libpri bug or is there something wrong at my end ? The PRI Q.931
trace of the aforementioned call is at http://pastebin.com/VQ04hhgR  ( the
relevant lines are highlighted towards the end ).

Also, according to Q.931, RELEASE COMPLETE with an invalid references are to
be ignored and nothing is to be done - so could this lead to stalling of
calls for a further few seconds ? ( Leading to a slightly higher bill ) ? Or
is the billing meant to be stopped with the DISCONNECT message ( someone
helped with this on IRC ) itself, wanted to make sure.

Sending this without attachment this time..

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20101228/3faceb34/attachment.htm>

More information about the asterisk-dev mailing list