[asterisk-users] Detecting Disconnected Numbers - PRI

Eric "ManxPower" Wieling eric at fnords.org
Mon Jan 22 17:22:22 MST 2007


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.



More information about the asterisk-users mailing list