Use trampoline instead of custom fiber
Merge branch 'change-billing-lock'
* change-billing-lock:
ExpiringLock instead of require expired
Atomic ExpiringLock
ExpiringLock instead of require expired
We *want* to try billing a little before expiry, to prevent the account lapsing.
So use an ExpiringLock to prevent double-billing races.
Merge branch 'only-bill-if-expired'
* only-bill-if-expired:
Only bill customer if they for sure have balance and are expired
Allow an in-transaction condition for billing
Change multiline chain style
Merge branch 'sip-concurrency'
* sip-concurrency:
Limit call concurrency for outbound SIP
Merge branch 'fwd-cleanup'
* fwd-cleanup:
Try to classify URI before saving, even if timeout.zero?
v1 is dead and everyone has been moved
Allow finishing adming command
Only bill customer if they for sure have balance and are expired
Allow an in-transaction condition for billing
Change multiline chain style
Limit call concurrency for outbound SIP
CustomerPlan.extract
To allow building from a hash with extra keys. Makes the CustomerRepo more readable.
Postgres#query_one
Helper for queries that only return a single row.
Allow finishing admin command
Try to classify URI before saving, even if timeout.zero?
v1 is dead and everyone has been moved
Allow finishing adming command
Say what customer was affected
NoCustomer is not registered
Merge branch 'max-call-length'
* max-call-length:
Calculate the maximum allowable call length