[asterisk-dev] Dialstate without Ringing

Edwin Groothuis edwin at mavetju.org
Sun Mar 19 21:02:23 MST 2006


On Sun, Mar 12, 2006 at 09:21:42PM -0600, Kevin P. Fleming wrote:
> Edwin Groothuis wrote:
> 
> > Looking at what happens when an PRI_EVENT_RINGING happens (AFAICT
> > the internal equivalent of ALERTING), it sets the .needringing of
> > a channel. Maybe that can (could, shall, should etc) be already
> > done when a PRE_EVENT_PROCEEDING (AFAICT the internal equivalent
> > of CALL PROCEEDING) comes in.
> 
> Nope; CALL PROCEEDING only means the switching network is processing the
> call, it does not mean that the final endpoint is being told the call is
> incoming.


I spoke with an ISDN guy at AAPT, he looked at his line traces and
pointed me to the following:

< Protocol Discriminator: Q.931 (8)  len=13
< Call Ref: len= 2 (reference 8889/0x22B9) (Terminator)
< Message type: CALL PROCEEDING (2)
< [1e 02 82 88]
< Progress Indicator (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0) 0: 0   Location: Public network serving the local user (2)
<                               Ext: 1  Progress Description: Inband information or appropriate pattern now available. (8) ]
< [1e 02 82 82]
< Progress Indicator (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0) 0: 0   Location: Public network serving the local user (2)
<                               Ext: 1  Progress Description: Called equipment is non-ISDN. (2) ]

According to him, the "Progress Description: Inband information or
appropriate pattern now available." means that there is a B channel
available now and you should start ringing instead of waiting for
an ALERT. He also says that this behaviour only shows with analogue
end-points.


When looking at channels/chan_zap.c, line 8698 or about (where
PRI_EVENT_PROCEEDING is handled), it is checking the message if
PRI_PROG_INBAND_AVAILABLE is in it, and then opens a channel but
it doesn't start rining.


The Q.931 specification says:

    The user need not attach until receiving a CALL PROCEEDING/SETUP
    ACKNOWLEDGE/PROGRESS/ALERTING message with the progress indicator
    No. 8, in-band information or appropriate pattern is now
    available, or progress indicator No. 1, call is not end-toend
    ISDN; further call progress information may be available in-band.
    Prior to this time, the network cannot assume that the user has
    attached to the B-channel. After this time, the user shall be
    connected to the B-channel, *provided the equipment does not
    generate local tone*.  Upon receipt of the CONNECT message, the
    user shall attach to the B-channel (if it has not already done
    so).

*'s are mine. What do they mean with "does not generate local tone"?
Anyway...


When a CALL PROCEEDING comes in, with a 'progress indicator No 8',
I think it's time to start ringing. Now of course people start
saying "but there is so much you can do on the channel besides
ringing", yes this is true. But we're talking about a non-ISDN
remote here. Maybe only running when 'progress indicator No 8' and
'progress indicator No 2' are there?


Edwin

-- 
Edwin Groothuis      |            Personal website: http://www.mavetju.org
edwin at mavetju.org    |          Weblog: http://weblog.barnet.com.au/edwin/



More information about the asterisk-dev mailing list