Discussion: Australia Asterisk Details

Comments Filter


Yay, your solution appears to have worked for me. Mental note. Remember to copy the chan_zap.so.. ;-)

by singularo, Friday 04 of May, 2007 (09:08:48 UTC)

Excellent! We were having exactly this problem! Thanks for the hint!

by singularo, Thursday 03 of May, 2007 (22:59:48 UTC)
Reverse on Idle ringing troubles

I had troubles with getting reverse on idle to work reliably in the ringing phase. It seems that my Telstra exchange sends random polarity reversal events during the ringing phase, these reversals come as subsequent pairs. Asterisk asterisk-1.2.7.1 through to 1.2.12.1 that i tried would try to hang up the incoming call (which has not been answered yet anyway). When the hangup occured, then phone wouldn't ring.

Anyway, after much struggling to find any helpful documentation that might relate to my problem (which i couldn't find anything that worked), i decided to read some of the source code...

The code tries to hangup if reverse polarity events occur even during ringing phase. To fix this I simply disabled it from acting on reverse polarity events during the ringing phase of the call. If the incoming line stops ringing your handsets might keep ringing for a moment after the remote party hangs up though, but not long. If you really want to detect reverse polarity during ring phase to stop ringing handsets immediately, then you probably need to somehow measure the time between the reverse condition and if it flicks back to idle within a fraction of a second, then ignore the reverse polarity event. I don't really know what the right approach is, maybe someone else might have a better idea?

If you are having the same problem, then this fix might be for you too. I know of other people using Telstra exchanges who say they have got reverse on idle working no problems with asterisk straight "out of the box" using the instructions above on this page. So maybe Telstra have different hardware models/configurations of their exchange gear???

Before this is ready to submit as a formal patch for asterisk, I think it needs to cater for hangup on ring detection... maybe by timing the interval between the polarity Reverse-Idle events during ring phase. If you don't get the second one within some timeout, then maybe hangup. This will mean you wont have to answer your ringing handset, only to pick it up and hear a dialtone...

My basic fix is below...

line 4234 of channels/chan_zap.c (version 1.2.12.1) comment out "|| (ast->_state
== AST_STATE_RING)" by putting the /* */ C comment markers.

/* Added AST_STATE_RING in if statement below to deal wi
th calling party hangups that take place when ringing */
if(p->hanguponpolarityswitch &&
(p->polarityonanswerdelay > 0) &&
(p->polarity == POLARITY_REV) &&
((ast->_state == AST_STATE_UP) /*|| (ast->_state
== AST_STATE_RING)*/) ) {

by jdavison, Monday 02 of October, 2006 (06:28:52 UTC)
Outbound CallerID for ISDN

I found that subsequent to the details in this article, the caller ID in the FreePBX interface had to be of the following format for it to work:
NXXXXXXXX
So for the phone number of 02 94811111, the caller ID would be set to 294811111.

by jtrott, Thursday 11 of May, 2006 (00:16:20 UTC)