[Asterisk-Users] manager api: how to handle failed calls

Luca Casavola luca at softpi.it
Sat Nov 13 18:14:25 MST 2004


  Hello again,
I  am reposting this issue since I realized I  posted in an existing 
thread ( I am sorry about that).
I am still faced with the same problem since long time:
The question is how to correctly handle failed calls.
In my application I want to make  hundreds of outgoing calls automatically.
When the callee  pick up the phone he gets a playback message and give 
an acknowledge by means of dtmf code.
I make use of manager command originate, something like
Action:originate
channel: ZAP/g1/XXXX
Variable:X|Y|Z
extension: test
the extension test is something like
[test]
exten  s,1 , wait ()
exten  s, 2 , answer ()
exten s, 3 playback(XX)
The problem is since I don't use the application dial  inside the 
extension I cannot get any value from
DIALSTATUS or HANGUPCAUSE variable
I tried several strategies:
1)
change the logic and use local pseudo channel
In the originate command if I use channel: local/XXXXX at test1/n
where test1 is:
[test1]
exten => _.,1,Dial(ZAP/g1/g${EXTEN})
exten => _.,2,NoOp( 2 HANGUPCAUSE is ${HANGUPCAUSE})
exten => _.,3,NoOp( 2 DIALSTATUS is ${DIALSTATUS})
exten => _.,4,NoOp(  number is ${number})
exten => _.,5,Hangup

I got the correct HANGUP value ( ie BUSY) but unfortunately  I cannot 
see the variables set on the originate command.
I wonder  why not?

2)

I tried to use the Async=True parameter in the originate command and 
magically
* make a goto to extent failed.
Unfortunately in such  extension I can't see any value in HANGUPCAUSE or
DIALSTATUS. Why?

3)  this is the strategy I am currently using
In the manager api when I send the originate command I wait for the 
response: if it is  Error - reason : Originate failed
I assume that such a call fails for one of this reason: busy, chan 
unavailable, wrong number.
Unfortunately this solution, even not giving detailed information about 
the reason of failure doesn't work any more with a new pri line the 
italian pri provider telecom installed recently. With this pri 
interface  , the originate command now return  Success: Call  queueed 
even if the line is busy. This is a very strange behaviour probably due 
to a  pri different  information  not correctly catched.
 
So how can I know what is going on when a call fail?
Regards

-- 

Ing. Luca Casavola
(Technical Manager)

Software Products Italia
Milano / Roma / Firenze

tel. ++39 055/33651
fax  ++39 055/340558
e-mail: luca.casavola at softpi.it
   www: http://www.softpi.it

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20041113/57408516/attachment.htm


More information about the asterisk-users mailing list