Asterisk integration with panasonic analog pbx

Hi all,

I have an existing panasonic analog pbx in use and a asterisk server with digium tdm400p(2 fxs and 2 fxo).

channel 1 -> fxs -> telephone
channel 2 -> fxs -> telephone
channel 3 -> fxo -> extension 15 at panasonic pbx
channel 4 -> fxo -> phone line from telco

We call in to fxo (channel 4) and enter the ivr which prompt us to enter the extension number. After that asterisk will dialout from fxo(channel 3) to other extensions at panasonic pbx(eg ext 16,17,18 etc)

The problem is when the extension 16 at panasonic pbx answers the call, asterisk can only detect the ANSWER after few seconds(range from 2 to 20 seconds).

If the extension 16 is busy, caller gets a busy tone (approximately 10 seconds) before asterisk detects the BUSY status and run the following commands in dialplan.

I have tried

  • to call from telephone at fxs(channel 1) to pstn number using channel 4, it can detect the status immediately.
  • testing the outcome of settings in zapata.conf(busydetect, busycount, answeronpolarity, hanguponpolarity)

Another question, is there any asterisk utility which can detect the tone on a channel so that we can get its pattern?

Thanks

What do you have for
switchtype= ?

Also what happens when you run ztcfg -vvvvvv

Thanks for reply

I didn’t set the switchtype, because i’m not using the isdn pri.
Below is part of my configuration files

Zapata.conf
[channels]
toneduration=80
relaxdtmf=no
canreinvite=no
hidecallerid=no
callwaiting=yes
threewaycalling=yes
transfer=yes
transfertobusy=yes
canpark=yes
overlapdial=yes
callreturn=yes
hanguponpolarityswitch=yes
answeronpolarityswitch=yes

echocancel=yes
echocancelwhenbridged=yes
rxgain=0.0
txgain=0.0

busycount=1
busydetect=yes
busypattern=500,500
callprogress=yes

; FXS module
Group=1
signalling=fxo_ks
context=Internal
channel=1

Group=2
signalling=fxo_ks
context=Internal
channel=2

;;FXO module
Group=3
signalling=fxs_ks
context=from_pana_pbx
channel=3

;;FXO module
Group=4
signalling=fxs_ks
context=Incoming
channel=4

Extensions.conf
[Incoming]
exten => s,1,Answer()
exten => s,n,Read(extnum|enter-ext|2)
exten => s,n,Dial(ZAP/3/12,60,gtT)
exten => s,n,Goto(${DIALSTATUS},1)
exten => ANSWER,1,Noop( :slight_smile: )
exten => NOANSWER,1,voicemail(${NR}@newext,u)
exten => BUSY,1,voicemail(${NR}@newext,u)
exten => CONGESTION,1,voicemail(${NR}@newext,u)

exten => h,1,Hangup()