Michael Collins wrote:
<original message>
I am trying to automatically detect disconnected numbers when using the 
outbound dialer I have written.
* Some numbers hang up immediately with a Cause Code > 0 and no voice treatment
* Some numbers get voice treatment with a PROGRESS indication and an associated 
Cause Code > 0
* Some numbers get voice treatment with a PROGRESS indication and no associated 
cause code (CC=0)
My application can pick up the PROGRESS indication (if I get one) and handle the hangup, but not if I don't get a cause code! Is there anything I can do to ensure that I always get a PROGRESS indication with cause code or a hangup with cause code? Behaviour of the PRI seems to differ across telcos and also across numbers. I don't want to just assume hangup on PROGRESS indication as this may not be a disconnected number - it might be a forwarded or redirected number. I need to achieve consistency and this is proving very difficult. Has anyone else had this issue and if so, which tree should I be barking up? </original message>


Yep, I experienced this frequently.  I have several PRI vendors and they all give me the 
same line of crap: "Well, PRI is good, but it's not perfect..."  Sad but true.  
I feel comfortable in saying that there is no 100% guaranteed way of detecting 
disconnected numbers on a PRI.  I've done lots of testing and come to the conclusion that 
you have to do your best to work around it.  For example, I know that phone number 
xxx-yyy-zzzz is disconnected.  I dial it 25 times with Asterisk.  18 times I get one 
cause code (like 'invalid' or fast busy - I don't recall the exact cause code number), 6 
times I get PROGRESS indicating ring-no answer and 1 time I get traditional busy.  All 
calls to same phone number, same provider, made one right after the other.  Oddly enough, 
if I call the number on a POTS line I *ALWAYS* get the disconnect message.  It's one case 
where advanced technology yields poorer results than the old stuff.

I know that doesn't help but I wanted you to know that you're not alone.

The correct way to determine the ending cause of a call is the ${HANGUPCAUSE} variable that Dial creats. Just to be sure, set priindication=outofband in /etc/asterisk/zapata.conf. HANGUPCAUSE should always be set.

_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to