[Asterisk-Users] Asterisk-to-IVR Problem

Rollin Weeks rollin.sling at gmail.com
Mon Aug 8 08:21:20 MST 2005


This was submitted to the Dev list last week, but there was no response, and 
perhaps it wasn't the right group.

I am developing an application in which I need asterisk to pass on an 
incoming call to a separate IVR server. The problem is that asterisk appears 
to hang up while the IVR is playing back a sequence of recorded voice and 
systhesized voice prompts.

My setup is:

Analog line ->X100P->asterisk->TDM10B- >phone cord->Dialogic analog 
port->IVR system. 

Asterisk should dial the IVR system, which should answer and play back its 
IVR scenario script to the caller. However, when a call comes in, asterisk 
answers on Zap1-1 and dials Zap2-1. The IVR system answers the call and 
begins to play back its scenario. After 5 to 15 seconds, asterisk apparently 
senses an on-hook condition (exception 17?) and disconnects the connection 
bridge. The logs on the IVR system shows that it is not initially aware of 
the hangup, and continues playing its scenario.

Going to an analog phone in the TDM10B instead of the IVR system appears to 
work OK, with the exception that asterisk is still sending dial tones when 
the analog phone is answered. The phone stays connected to asterisk until it 
really does hang up.

What causes the hangup? What generates the exception? I have looked at the 
chan_zap.c code and can not see how zt_exception gets into the picture. Is 
there a TDMF incompatibility problem? Is this a case where DAX should be 
used?

My config files and sample debug output are given below. Thanks for anyone's 
help.

Rollin Weeks

#
# Zaptel Configuration File
#
# This file is parsed by the Zaptel Configurator, ztcfg
#
fxsks=1 # For the X100P
fxoks=2 # For the TDM400P (TDM10B)
#
loadzone = us
#
defaultzone=us

----------------

;
; Zapata telephony interface
;
; Configuration file

[channels]
;
language=en

context=incoming

switchtype=national

signalling=fxs_ks

rxwink=300 ; Atlas seems to use long (250ms) winks

; Whether or not to use caller ID
;
usecallerid=asreceived

; Whether or not to hide outgoing caller ID (Override with *67 or *82)
;
hidecallerid=no
;
callwaitingcallerid=yes

; for default voicemail context, the example below is fine:
;
mailbox=1234

echocancel=yes

; If you are having trouble with DTMF detection, you can relax the
; DTMF detection parameters. Relaxing them may make the DTMF detector
; more likely to have "talkoff" where DTMF is detected when it
; shouldn't be.
;
relaxdtmf=yes

; You may also set the default receive and transmit gains (in dB)
;
rxgain=0.0
txgain=0.0

immediate=no

; On trunk interfaces (FXS) and E&M interfaces (E&M, Wink, Feature Group D
; etc, it can be useful to perform busy detection either in an effort to 
; detect hangup or for detecting busies
;
busydetect=yes
;
; If busydetect is enabled, is also possible to specify how many
; busy tones to wait before hanging up. The default is 4, but
; better results can be achieved if set to 6 or even 8. Mind that
; higher the number, more time is needed to hangup a channel, but
; lower is probability to get random hangups
;
busycount=40

; Select which class of music to use for music on hold. If not specified
; then the default will be used.
;
musiconhold=default

channel => 1

signalling=fxo_ks

context=internal

channel => 2

----------------

; Home grown extension file
[globals]
;RECEPTIONIST=Zap/1
;

[incoming]
exten => s,1,Wait(1)
exten => s,2,Answer()
exten => s,3,Playback(demo-congrats) ; Plays the demo-congrats file after 
answering the line
exten => s,4,Dial,Zap/2/1000\20
exten => s,5,Hangup

[internal]
exten => 1000,1,Answer()
exten => 1000,2,Wait(2)
exten => 1000,3,Hangup 

-------------------



-- Starting simple switch on 'Zap/1-1'
Urgent handler
Aug 4 15:43:39 DEBUG[5059]: pbx.c:1274 pbx_extension_helper: Launching 
'Wait'
-- Executing Wait("Zap/1-1", "1") in new stack
Urgent handler
Aug 4 15:43:40 DEBUG[5059]: pbx.c:1274 pbx_extension_helper: Launching 
'Answer'
-- Executing Answer("Zap/1-1", "") in new stack
Urgent handler
Aug 4 15:43:40 DEBUG[5059]: chan_zap.c:2301 zt_answer: Took Zap/1-1 off hook
Aug 4 15:43:40 DEBUG[5059]: chan_zap.c:1231 zt_enable_ec: Enabled echo 
cancellation on channel 1
Aug 4 15:43:40 DEBUG[5059]: chan_zap.c:1250 zt_train_ec: No echo training 
requested
Aug 4 15:43:40 DEBUG[5059]: pbx.c:1274 pbx_extension_helper: Launching 
'Playback'
-- Executing Playback("Zap/1-1", "demo-congrats") in new stack
Urgent handler
Aug 4 15:43:40 DEBUG[5059]: channel.c:1719 ast_set_write_format: Set channel 
Zap/1-1 to write format gsm
Aug 4 15:43:40 DEBUG[5059]: channel.c:1128 ast_settimeout: Scheduling timer 
at 160 sample intervals
-- Playing 'demo-congrats' (language 'en')
Urgent handler
Aug 4 15:44:08 DEBUG[5059]: channel.c:1128 ast_settimeout: Scheduling timer 
at 0 sample intervals
Aug 4 15:44:08 DEBUG[5059]: channel.c:1128 ast_settimeout: Scheduling timer 
at 0 sample intervals
Aug 4 15:44:08 DEBUG[5059]: channel.c:1719 ast_set_write_format: Set channel 
Zap/1-1 to write format ulaw
Aug 4 15:44:08 DEBUG[5059]: pbx.c:1274 pbx_extension_helper: Launching 
'Dial'
-- Executing Dial("Zap/1-1", "Zap/2/1000\20") in new stack
Aug 4 15:44:08 DEBUG[5059]: chan_zap.c:6907 zt_request: Using channel 2
Aug 4 15:44:08 DEBUG[5059]: chan_zap.c:1563 zt_call: FXO: setup deferred 
dialstring: 1000\20
-- Called 2/1000\20
Aug 4 15:44:08 DEBUG[5059]: channel.c:1752 ast_set_read_format: Set channel 
Zap/2-1 to read format ulaw
Aug 4 15:44:08 DEBUG[5059]: channel.c:1719 ast_set_write_format: Set channel 
Zap/1-1 to write format ulaw
Aug 4 15:44:08 DEBUG[5059]: channel.c:1719 ast_set_write_format: Set channel 
Zap/2-1 to write format ulaw
Aug 4 15:44:08 DEBUG[5059]: channel.c:1752 ast_set_read_format: Set channel 
Zap/1-1 to read format ulaw
Urgent handler
Urgent handler
Aug 4 15:44:08 DEBUG[5059]: chan_zap.c:4187 zt_write: Dropping frame since 
I'm still dialing on Zap/2-1...
-- Zap/2-1 is ringing

*****

-- Zap/2-1 is ringing
Urgent handler
Aug 4 15:44:08 DEBUG[5059]: chan_zap.c:4187 zt_write: Dropping frame since 
I'm still dialing on Zap/2-1...
Aug 4 15:44:08 DEBUG[5059]: chan_zap.c:4187 zt_write: Dropping frame since 
I'm still dialing on Zap/2-1...

******

ug 4 15:44:10 DEBUG[5059]: chan_zap.c:4187 zt_write: Dropping frame since 
I'm still dialing on Zap/2-1...
Aug 4 15:44:10 DEBUG[5059]: chan_zap.c:4187 zt_write: Dropping frame since 
I'm still dialing on Zap/2-1...
Aug 4 15:44:10 DEBUG[5059]: chan_zap.c:3786 __zt_exception: Exception on 17, 
channel 2
Aug 4 15:44:10 DEBUG[5059]: chan_zap.c:3089 zt_handle_event: Got event 
Ringer Off(11) on channel 2 (index 0)
-- Zap/2-1 is ringing
Urgent handler
Aug 4 15:44:10 DEBUG[5059]: chan_zap.c:4187 zt_write: Dropping frame since 
I'm still dialing on Zap/2-1...

******

ug 4 15:44:12 DEBUG[5059]: chan_zap.c:3786 __zt_exception: Exception on 17, 
channel 2
Aug 4 15:44:12 DEBUG[5059]: chan_zap.c:3089 zt_handle_event: Got event 
Ring/Answered(2) on channel 2 (index 0)
Aug 4 15:44:12 DEBUG[5059]: chan_zap.c:1231 zt_enable_ec: Enabled echo 
cancellation on channel 2
Aug 4 15:44:12 DEBUG[5059]: chan_zap.c:1250 zt_train_ec: No echo training 
requested
Aug 4 15:44:12 DEBUG[5059]: chan_zap.c:3352 zt_handle_event: channel 2 
answered
Aug 4 15:44:12 DEBUG[5059]: chan_zap.c:3372 zt_handle_event: Sent FXO 
deferred digit string: Tw1000\20
Aug 4 15:44:12 DEBUG[5059]: chan_zap.c:4187 zt_write: Dropping frame since 
I'm still dialing on Zap/2-1...

******

Aug 4 15:44:13 DEBUG[5059]: chan_zap.c:4187 zt_write: Dropping frame since 
I'm still dialing on Zap/2-1...
Aug 4 15:44:13 DEBUG[5059]: chan_zap.c:3786 __zt_exception: Exception on 17, 
channel 2
Aug 4 15:44:13 DEBUG[5059]: chan_zap.c:3089 zt_handle_event: Got event Dial 
Complete(9) on channel 2 (index 0)
Aug 4 15:44:13 DEBUG[5059]: chan_zap.c:1215 zt_enable_ec: Echo cancellation 
already on
Aug 4 15:44:13 DEBUG[5059]: channel.c:1366 ast_read: Dropping duplicate 
answer!
-- Zap/2-1 answered Zap/1-1
Aug 4 15:44:13 DEBUG[5059]: channel.c:1752 ast_set_read_format: Set channel 
Zap/1-1 to read format ulaw
Aug 4 15:44:13 DEBUG[5059]: channel.c:1719 ast_set_write_format: Set channel 
Zap/2-1 to write format ulaw
Aug 4 15:44:13 DEBUG[5059]: channel.c:1719 ast_set_write_format: Set channel 
Zap/1-1 to write format ulaw
Aug 4 15:44:13 DEBUG[5059]: channel.c:1752 ast_set_read_format: Set channel 
Zap/2-1 to read format ulaw
-- Attempting native bridge of Zap/1-1 and Zap/2-1
Aug 4 15:44:13 DEBUG[5059]: chan_zap.c:2677 zt_bridge: master: 1, slave: 2, 
nothingok: 0
Aug 4 15:44:13 DEBUG[5059]: chan_zap.c:2692 zt_bridge: Stoping tones on 1/0 
talking to 2/0
Aug 4 15:44:13 DEBUG[5059]: chan_zap.c:2704 zt_bridge: Stoping tones on 2/0 
talking to 1/0
Aug 4 15:44:13 DEBUG[5059]: chan_zap.c:1263 zt_disable_ec: disabled echo 
cancellation on channel 1
Aug 4 15:44:13 DEBUG[5059]: chan_zap.c:1263 zt_disable_ec: disabled echo 
cancellation on channel 2
Aug 4 15:44:13 DEBUG[5059]: chan_zap.c:2567 zt_link: Making 2 slave to 
master 1 at 0
Aug 4 15:44:13 DEBUG[5059]: chan_zap.c:1061 conf_add: Added 17 to conference 
9/1
Aug 4 15:44:13 DEBUG[5059]: chan_zap.c:1061 conf_add: Added 15 to conference 
9/2
Aug 4 15:44:13 DEBUG[5059]: chan_zap.c:1206 update_conf: Updated 
conferencing on 1, with 0 conference users
Aug 4 15:44:13 DEBUG[5059]: chan_zap.c:1206 update_conf: Updated 
conferencing on 2, with 0 conference users
Urgent handler
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:3786 __zt_exception: Exception on 17, 
channel 2
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:3089 zt_handle_event: Got event On 
hook(1) on channel 2 (index 0)
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:1263 zt_disable_ec: disabled echo 
cancellation on channel 2
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:2511 zt_unlink: Unlinking slave 2 
from 1
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:1093 conf_del: Removed 17 from 
conference 9/1
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:1093 conf_del: Removed 15 from 
conference 9/2
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:1206 update_conf: Updated 
conferencing on 1, with 0 conference users
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:1231 zt_enable_ec: Enabled echo 
cancellation on channel 1
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:1231 zt_enable_ec: Enabled echo 
cancellation on channel 2
Aug 4 15:44:26 DEBUG[5059]: channel.c:2640 ast_channel_bridge: Returning 
from native bridge, channels: Zap/1-1, Zap/2-1
Aug 4 15:44:26 DEBUG[5059]: channel.c:739 ast_hangup: Hanging up channel 
'Zap/2-1'
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:1959 zt_hangup: zt_hangup(Zap/2-1)
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:1987 zt_hangup: Hangup: channel: 2 
index = 0, normal = 17, callwait = -1, thirdcall = -1
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:1263 zt_disable_ec: disabled echo 
cancellation on channel 2
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:2390 zt_setoption: Set option TDD 
MODE, value: OFF(0) on Zap/2-1
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:1206 update_conf: Updated 
conferencing on 2, with 0 conference users
-- Hungup 'Zap/2-1'
Aug 4 15:44:26 DEBUG[5059]: app_dial.c:1054 dial_exec: Exiting with 
DIALSTATUS=ANSWER.
Aug 4 15:44:26 DEBUG[5059]: pbx.c:1851 ast_pbx_run: Spawn extension 
(incoming,s,4) exited non-zero on 'Zap/1-1'
Aug 4 15:44:26 DEBUG[5059]: channel.c:739 ast_hangup: Hanging up channel 
'Zap/1-1'
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:1959 zt_hangup: zt_hangup(Zap/1-1)
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:1987 zt_hangup: Hangup: channel: 1 
index = 0, normal = 15, callwait = -1, thirdcall = -1
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:1263 zt_disable_ec: disabled echo 
cancellation on channel 1
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:2390 zt_setoption: Set option TDD 
MODE, value: OFF(0) on Zap/1-1
Aug 4 15:44:26 DEBUG[5059]: chan_zap.c:1206 update_conf: Updated 
conferencing on 1, with 0 conference users
-- Hungup 'Zap/1-1'
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20050808/49279004/attachment.htm


More information about the asterisk-users mailing list