Package thing issue

i am just writing today as i can’t understand how can i solve this issue.
i have customers and their invoice date is 1st of every month. so my plan is create a package with few prefix adding there and also setup 1000 minutes.
i found astpp has package 1 time or recurring. problem is i have to put how many days system will make it recurring… like 28 days or 30 days.
but what is my plan is… as i set customer invoice date is 1st every month. so the package should renew automatically 1st of month. actually my main goal is

all my customer will be billed at 1st day of the month… and i want to offer unlimited local calls ( well, will put 1000 minutes as FUP) to the customer. and if they go over FUP then it will be charge by the rate card.

what is the best way to achieve that? i can reset the counters db in the time of 00:01 every 1st of the month. but the issue is if any customer is on live call and system run the cron to reset the counters in the db and the moment call get hangup system put that live call seconds in the fresh usedseconds column in the counters table of database.

another issue is even the call goes for free i can still see in the CDR that in the debit column the cost of the call… well its not deduct from the main balance. i think it should be 0.00 just type of call says FREE

any suggestions?