[Asterisk-Users] [patch] fix libpri problem in Q931_INFORMATION handling

Peter Svensson psvasterisk at psv.nu
Wed Feb 16 15:07:02 MST 2005


On Wed, 16 Feb 2005, Deti Fliegl wrote:

> I tried to use Voicemail from a PRI interface but it didn't work because 
>   pressing a key on the ISDN phone just caused Q931_IE_KEYPAD_FACILITY 
> messages which are normally handled by a bri-stuffed libpri. 
> Unfortunately a wrong if condition stops keypad messages from being 
> passed to the channel driver. The patch attached to this mail removes 
> the 2 lines from  the code.
> 
> --- q931.c~     2005-02-16 18:21:33.907803750 +0100
> +++ q931.c      2005-02-16 18:21:33.909803485 +0100
> @@ -2877,8 +2877,7 @@
>  
> q931_release_complete(pri,c,PRI_CAUSE_INVALID_CALL_REFERENCE);
>                          break;
>                  }
> -               if (c->ourcallstate!=Q931_CALL_STATE_OVERLAP_RECEIVING)
> -                       break;
> +
>                  pri->ev.e = PRI_EVENT_INFO_RECEIVED;
>                  pri->ev.ring.call = c;
>                  pri->ev.ring.channel = c->channelno | (c->ds1no << 8);

What is c->ourcallstate set to at this time? Can you provide a debug log 
(pri intense debug span xxx) of the call? 

Asterisk only expects INFORMATION elements when expecting overlap digits
(i.e. before CONNECT, PROCEEDING etc). After that it expects digits as
inline dtmf.

According to Q.931 called party address IEs in the INFORMATION message 
should only be sent during overlap digit transmission, which ends when 
PROCEEDING is sent. 

Peter




More information about the asterisk-users mailing list