Delayed answer on FXO port

I have an IP02 box with an FXS/FXO card. I can’t imagine the following behaviour is unique to this hardware but here goes:

Why does Asterisk take 5 seconds to start processing an incoming call on my FXO port? Asterisk knows about an incoming call immediately (I can see that in the console), but waits 5 or more seconds before ringing an internal extension (if that is what I have set up) or doing anything with the call. I’d like to deal with the call immediately.

Any ideas? Thanks.


It is waiting for FSK or DTMF caller ID.

Thankyou. Can I change that? My provider cannot send me caller id information (old network) so waiting is pointless. If I can, I’d like to gain the time.


Try usecallerid=no in chan_dahdi.conf.

Thanks. I am using zapata.conf and have tried that. It didn’t change the time to answer.

The unit I am using (ATCOM IP02) came preconfigured with Asterisk and I don’t know enough about it yet to change to using dahdi. I’ll see what I can learn and make the change.


Is your asterisk version 1.2.x?

chan_dahdi.c in asterisk 1.4.* or above:

  • \brief TRUE if caller ID is used on this channel.
  • \note PRI and SS7 spans will save caller ID from the networking peer.
  • \note FXS ports will generate the caller ID spill.
  • \note FXO ports will listen for the caller ID spill.
  • \note Set from the “usecallerid” value read in from chan_dahdi.conf
    unsigned int use_callerid:1;

So dahdi driver has the feature you want, but I don’t know about zap driver.

Hi willymacoy!

I’m not sure if this fix the problem, but this is how I have done!
This is what I have in </etc/asterisk/zapata.conf> on my FXO channel.

; Channel 4 FXO port for incoming analog line cidsignalling=dtmf ; Sweden cidstart=polarity ; Sweden language=se signalling=fxs_ks usecallerid=yes callerid=asreceived transfer=yes immediate=yes context=pts_incoming answeronpolarityswitch=yes hanguponpolarityswitch=yes channel => 4
immediate: Normally (i.e. with immediate set to ‘no’, the default), when you lift an FXS handset, the Zaptel driver provides you a dialtone and listens for digits that you dial, passing them on to Asterisk. Asterisk waits until the number you’ve dialled matches an extension, and then begins executing the first command on the matching extension. If you set
immediate=yes, then Asterisk will instruct the Zaptel driver to not generate a dialtone when you lift a handset, instead passing control immediately to Asterisk. Asterisk will start executing the commands for this channel’s “s” extension. This is sometimes referred to as “batphone mode”. Default: no.

This made it answer the incoming call a little quicker and still have callerID enabled!
But it is still a bit slow on answering, but quicker than 5sec.