The call control engine + rating engine already supports multiple parallel prepaid sessions per user, all calls stop when the balance reaches zero.
What do you try to achieve? Adrian On Jun 18, 2010, at 4:56 PM, Magnus Burman wrote: > Hi guys, > > To get a more flexible credit control when running several concurrent calls > on the same user I'm trying to add some functionality to the call control > module. > > Basically what I'm trying to do is set a low time limit, such as 60 seconds, > and when the timer runs out send a new getCallLimit, until the call ends > either by a return of 0 or by hangup. > > I've been trying to do this by adding a new getCallLimit in the Call.__expire > method in sip.py. > > def __expire(self): > rating = RatingEngineConnections.getConnection(self) > > rating.getCallLimit(self).addCallbacks(callback=self._reinit_simple_calllimit, > errback=self._start_error) > """ > self.expired = True > self.application.clean_call(self.callid) > self.end(reason='call control', sendbye=True) > """ > > In _reinit_sample_calllimit I mimic _start_finish_calllimit in a lot of ways, > trying different timer combinations. I've tried with cancel followed by a new > setup, I've tried delay, I've tried reset, I've tried manually doing a new > ReactorTimer and all of the above! > > I get the MaxSessionTime call to work, but I fail with the timer somehow. > __expire is never called again after the first time, and the call is never > interrupted. > > Anyone with tips? At this point I'm about to dive into the twisted framework > and reactors, but any hints are much appreciated! > > Cheers, > Magnus > _______________________________________________ > Users mailing list > [email protected] > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
