[Asterisk-Users] How to avoid collect calls on ISDN BRI trunks?

Julio Arruda jarruda-asterisk at jarruda.com
Tue Jul 12 05:05:25 MST 2005


Dhennys,
I would expect that the ISDN collect call would have some kind of 
notification about the charge.
In E1/R2, the Telebras standard in fact DOES have this notification 
defined, from what I remember, the problem was that many of the CO 
switches would not support it, that is why the 'double-answering' is 
used in most if not all the cases (there is a condition where the 
double-answering would tear down any call, something to do with the 
configuration in the PSTN switch).
I don't think you can answer/hangup/answer a call in ISDN the way you 
can in E1/R2 or analog lines...


Armin Schindler wrote:
> On Tue, 12 Jul 2005, Dhennys Pestana wrote:
> 
>>I need to block collect calls on my PBX.
>>
>>I was able to find information on Google regarding ISDN ZAP channels, but not
>>ISDN CAPI channels which is my case.
>>
>>Since there's no information from the Telco that the call is going to be charged
>>by the callee, if a particular call is automatically answered by the PBX instead
>>of a real person there's no way to avoid it. There's only a recording AFTER the
>>call is answered, asking for the callee party to accept it.
>>
>>By using ZAP channels with HFC ISDN cards, it's possible to use Hangup() and
>>Flash() commands, which won't do any good on CAPI channels because it will
>>hangup the call immediatelly.
>>
>>Note: This situation is exctaly the same with remote access servers (RAS),
>>commonly used by Internet Service Providers.
>>
>>Here's an example of what should happen on my scenario:
>>
>>[default]                         ; External calls comes on "default" context
>>exten => s,1,Wait,1               ; Wait for all ISDN and CAPI messages
>>exten => s,2,Answer()             ; PBX actually answers the call
>>exten => s,3,Wait,1               ; Just in case
>>exten => s,4,Flash()              ; Avoid collect calls, don't actually hangup
>>exten => s,5,Wait,1               ; Wait a second (just in case)
>>exten => s,6,Answer()             ; Now it should work as if it were "s,1"
>>exten => s,7,BackGround(IVR-menu) ; 1 for sales, 2 for support, 3 for...
>>
>>
>>Note: Step "s,4" could be also "Hangup()", it won't make any difference.
>>
>>If it were an analog trunk, it would work flawlessly. Unfortunatelly for digital
>>trunks, when you hangup the channel the call is dropped immediately.
> 
> 
> Yes, because Hangup() means 'disconnect'.
>  
> I'm not aware of Flash() and what it is doing, but it is surely not 
> implemented in chan_capi.
> If someone can tell me what Flash() is supposed to do, we can implement it 
> in chan_capi-cm.





More information about the asterisk-users mailing list