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
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-users
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users
_______________________________________________
Asterisk-Users mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-users
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users