Навеяло сегодня... Разговаривал со многими людьми на тему ухода в минус и сложилось впечатление что ни один биллинг на сегодня не даёт абсолютной гарантии не ухода в минус. Что есть не очень хорошо. Оссобенно если по одному эккаунту ведется сразу несколько разговоров (в этом случае шанс ухода в минус возрастает, с количеством растет и сам минус, например если 100 звонков с одного эккаунта то минус может быть потенциально ОЧЕНЬ БОЛЬШИМ).
Вобщем идея такая (очень простая): проверять раз в минуту по таймеру все эккаунты которые в данный момент разговаривают на предмет (уже) нуля на балансе (или установленный минимум, скажем +0.01, можно опцию добавить в настройки) и если это так то принудительно дропаем все разговоры с этого аккаунта. В этом случае мы никогда не уйдем в минус (ну или он будет ничтожно мал, чем можно пренебречь). Обработчик-таймер можно сделать на чем угодно, хоть на том же php, хоть на перле. уверен - ресурсов это много не сьест. Если еще учесть что на одной машине обычно больше ~300 одновременных физически не получится всеравно то и нагрузки большой не будет чтобы проверить 300 эккаунтов (или меньше - если по одному эккаунту говорят несколько) за раз. (это я на всякий случай если ктото захочет возразить мол а что если тысячи звонков)
upd:
обсудил с nixon, вот что он предложил
тоесть проверяем всех, если гдето 0 - завершаем все разговоры этого эккаунта.если сто одновременных разговор начнутся на 10 баксах, а как только закончится скажем 5-й и станет баланс 0 или меньше, то остальные принудительно позавершать
далее появилось развитие этой идеи: добавить реалтайм в сам билинг! звучит сложно но на самом деле все просто - нужно просто добавить проверку в сам билинг (можно и отдельным модулем) - пусть раз в минуту апдейтит баланс! тоесть смотрит активные разговоры и раз в минуту отнимает от остатка на балансе цену направления. все очень просто. тогда точно не пропустим момент нуля (или заранее выставленного значения, если надо), не важно сколько линий используется этим эккаунтом.
Может ктонить захочет взяться за реализацию?

для тех кто не "в теме": a2b обновляет баланс только уже после завершения звонка. отсюда и проблема с уходом в минус. если баланс обновлять "в реалтайм" то решится сразу несколько проблем разом.
ps: с реалтаймом можно будет не просто тупо дропать разговоры а перед отключением вежливо проигрывать сообщение в канал о наличае нуля на балансе. можно влезть в канал через spychan например (или новый API 1.8.), как вариант. можно пойти дальше и добавив одну-две строчки кода, делать проверку если на балансе остается всего на минуту-две разговора то проигрываем сообщение об этом, напоминаю - это будет делать в реалтайм уже а не как счас в a2b сделано - по предварительно расчитанному времени, которое может меняться если одним эккаунтом пользуются несколько человек.