[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