[Asterisk-Users] Working with an ongoing call

Waldo Rubinstein waldo at trianet.net
Wed Jul 20 18:59:59 MST 2005


Eivind,

I was thinking of doing something similar and came across a slight  
variation of your problem.

While testing a home-grown prepaid solution, a beta-"friend" informed  
me that he detected a problem I could run into, which I will attempt  
to describe below.

Say he makes a call and is informed he has 30 minutes left on the  
call. After, say, 9 minutes, he hook flashes in order to get the  
second line (just like call-waiting/three-way-calling feature). At  
this point he can me a second call where he MAY be informed  
accurately that now he has 21 minutes left. The problem is that the  
first call has not hung up so he is not necessarily informed of the  
accurate time left for the second call. Additionally, say he speaks  
for another 10-15 minutes (regardless of whether or not he hook- 
flashes again to do three-way calling) and then returns to the first  
call. At that point he can continue on the first call for the  
original full 30 minutes, even though he consumed (potentially) 40-45  
minutes.

Has anyone worked some solution for this (as well as Eivind's  
problem) in all the prepaid solutions out there I see constantly on  
the list?

Thanks,
Waldo

On Jul 20, 2005, at 4:49 AM, Eivind Trondsen wrote:

> Hi list
>
> I plan to implement a prepaid solution where the system needs to  
> check for
> remaining credit periodically during a call. The reason for this is  
> that this
> is a system where the credit pool can be used simultaneously by  
> more people,
> and not only for calling.
>
> I have a problem figuring how to be able to run logic while a call  
> is in
> progress. The L(x:y:z) option to Dial() is good, but not quite what  
> I need.
> In both the dialplan an an AGI the Dial command blocks, so what do  
> I do?
>
> I have not yet tried a multi-threaded AGI, but assume the  
> possibility of
> success with that scenario to be slim...
>
> Ideally; I want to code things like this:
>
> Fetch cost of requested call;
> # The reserve functions also supplies total remaining credit
> unless (Reserve credit for N seconds) exit with message;
> INITIATE CALL;
> If answered {
>   while(1) {
>     Wait for N-x seconds;
>     Reserve credit for N seconds;
>     if (close to credit limit) PLAY WARNING BEEP;
>     else if (out of credit) EXIT WITH MESSAGE;
>   }
> }
>
> hangup_trap:
>  Commit credit based on actual call length;
>
> EOF
>
> I realize that this probably needs to be done as a combination of  
> dialplan
> logic and AGIs, but my main concern is the ability to
>
> 1) send sound to the caller of an ongoing call
> 2) retain control so the call can be terminated based on a timer  
> (or whatever)
>
> Any tips would be greatly appreciated! Thanks in advance.
>
> -- 
> Eivind Trondsen
>
> "People are destined to be party animals,
> and the technology will follow"
>                          - Linus Torvalds
> _______________________________________________
> Asterisk-Users mailing list
> Asterisk-Users at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-users
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>




More information about the asterisk-users mailing list