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