Commit log

445c909 Customer cc limit to 130

Stephen Paul Weber created

d5811da CDRs for everyone

Stephen Paul Weber created

cd00a32 Porting Zips Can Contain "-"

Click to expand commit body
I use presence of only numerals to guess if a port is Canadian or not.
Today we got a Zip+4, which has a dash. Right... that...

Christopher Vollick created

9d529fc SIM nicknames feature

Click to expand commit body
Added columns to the eSIMs command to now display the nickname of a SIM,
if set.
Added test for the new columns in sim_repo.
Added nicknames column to sims form, and modified to a multiline form.

root21 created

245f384 Don't Count Stanzas Without Body as Reached

Click to expand commit body
We get messages without bodies from time to time as things like delivery
receipts.

These are great, and we don't want to forward them to the end-user for
sure if we're dealing with a reachable number, but we also don't want to
count it as a message that reached us.

It's a receipt for a thing I did, not a thing the tester did.

Christopher Vollick created

1145cc7 Reachability Command

Click to expand commit body
This creates the keys that the previous commits use, and also reports
their current values.

It's a pretty sparse command in terms of UX, but only admins will use it
so I kept it simple.

This also optionally sends the prompt to one of the chosen reachability
numbers. It's optional so a human running the command can query the
result without looking in redis, but also without spamming their phone
with another message.

Christopher Vollick created

aafb948 Track Call Reachability

Click to expand commit body
This intercepts calls that are from the reachability numbers and checks
their status.

I had to extend the reachability repo a bit because I realized that
unlike texts which I just want to do nothing when they're intercepted,
for calls I actually have to _return_ something in that case.

Due to my short-circuit none of the existing tests needed to be changed,
because the calls weren't coming from a reachability number. But then I
added two more tests, one to make sure a call from the reachability
number works normally if reachability is not being tested for that user,
and another that verifies that if we're testing reachability it hangs up
and increments the counter, which is the actual point of this patch.

Christopher Vollick created

f74beeb SMS Reachability Check

Click to expand commit body
On an inbound stanza it checks if the initiator is one of the
whitelisted numbers that can perform reachability checks. If not, which
virtually all received SMSs won't be, it just runs the code that was
already there.

If it is, then it does a further check to see if the reachability check
is ongoing for this user, and if not it runs the code that was already
there.

And finally, if the key exists it increments it and otherwise doesn't
process the message.

Christopher Vollick created

eeb2432 Fix for nil response

Stephen Paul Weber created

a5c9235 JID cannot contain whitespace

Stephen Paul Weber created

c534d03 Put Chatwoot Link in Admin Info (and link to new JID)

Click to expand commit body
We made a change with the "direct_targets" that made it so support no
longer talks to phone numbers, but customer_blah@sgx.example.com

So, we no longer need to link to the phone number version of the jid,
but we now have this new one.

And while we're at it we also have a ticketing system that's based on
that same JID, so I'll make a link to that too.

Christopher Vollick created

b8aa8ed Merge branch 'feature_flags'

Click to expand commit body
* feature_flags:
  Put CDRs behind a feature flag
  Store feature flags on user for limiting commands, etc
  Added a New Command to Display CDRs to Customers

Stephen Paul Weber created

303e839 Put CDRs behind a feature flag

Stephen Paul Weber created

d1dc3e7 Store feature flags on user for limiting commands, etc

Stephen Paul Weber created

82ac670 Added a New Command to Display CDRs to Customers

Click to expand commit body
Created cdr_repo and now call it from a new command in the Bot, then filter the response through a form to display for the customer.
Refactored some aspects of lib/cdr.rb.

root21 created

c3579cc Only try to catch up possible renewals if expired less than 3 months

Stephen Paul Weber created

3cc228e Changed 'Invite' to 'Referral' where it displays ot the end user.

root21 created

5bdeea5 Reserve TN with bandwith after selection and pass reservation id when ordering

root21 created

6c9d473 Allow passing reservation id to tn order

root21 created

5306300 Log number purchase error

root21 created

c3fe29b error_list can be a list

root21 created

0476a74 Fix for ruby3

root21 created

9b0dc89 Changed 'Invite' to 'Referral' where it displays ot the end user.

root21 created

a9df70a fix tests

Stephen Paul Weber created

1a34122 hotfix

Stephen Paul Weber created

d75be0c Added 'C' to the regex on outgoing calls

Click to expand commit body
This prepares the system for prepending customer IDs with 'c'.

root21 created

30e0c89 Only return command list for bare domain

Stephen Paul Weber created

22d46cf Revert "Allow local calling area when searching for a general area like a town or state"

Click to expand commit body
LCA is only allowed on number prefix and rate centre search

This reverts commit 8433c3e2df6aa066cb5952325464e6b0a3257542.

Stephen Paul Weber created

8433c3e Allow local calling area when searching for a general area like a town or state

Stephen Paul Weber created

e158f17 Merge branch 'contact-support-directly'

Click to expand commit body
* contact-support-directly:
  Switch from unbilled to direct targets
  Allow SGX with a node

Stephen Paul Weber created

67611fa Command to Manually Add Money to Account

Click to expand commit body
An admin can now add a transaction to an account without having to log
into the DB.

A few notes:
- The transaction ID allows a "%" in it which gets substituted with a
  unique value. This is so if you've got a transaction value already,
  like an Interac Transfer or something, you can just put it here.
  But if I'm making something up like "cash" I don't have to mash the
  keyboard just to get a good ID. I can just use "cash_%" and be content
  that I'll get a good value
- The notes have a few prefilled values, which is just there for
  convenience and consistency.
  They're an open list, though, for manual things. Except on clients
  that don't support open lists...
- There's an option to notify the user. I haven't built that in this
  commit and will come later. This is so that under normal operation we
  don't have to message from support and tell them "hey, we've got your
  money", and even better we don't have to tell them "hey, we've got
  your money, you may want to go talk to the bot to activate".

  But if support is already talking to them, we can disable it and tell
  them things in a more organic way.

  Like I said, I haven't built that in this commit, though.

So, this is a start, at least.

Christopher Vollick created

4e57aea Transaction Delete and Existance

Click to expand commit body
Now that Transaction acts as a kind of repo, there's two other methods
I'm going to want for the future.

Christopher Vollick created

e065650 Split CreditCardSale from Transaction

Click to expand commit body
This is a refactor that involves pulling the Credit Card stuff (meaning
braintree) out of the Transaction stuff. This makes Transaction a more
generic implementation of our Transaction table.

This commit should maintain the status quo, though. The places that used
to call Transaction.sale now call CreditCardSale.create, and that got a
little easier because we now do the `.insert` inside the create, because
previously all the callsites just got the transaction out and then
inserted anyway.

So they got a little bit simpler, but the main value of this is that now
we can insert other kinds of transactions and not just credit card
transactions!

Christopher Vollick created

e292f20 Merge branch 'command-icons'

Click to expand commit body
* command-icons:
  Add emoji icons for each command

Stephen Paul Weber created

8e07718 Switch from unbilled to direct targets

Click to expand commit body
Instead of just having a list of targets we don't charge for and that don't
count towards limits, instead a list of targets where we know their JID and send
them messages directly, bypassing even the SGX.

In practise we will use this for support.  This means support messages will not
traverse billing code, or the sgx, and will work even if the sgx is down or the
customer has no configuration there at all (or a broken configuration there)
including if the customer has no phone number.

Support will get messages from customer_<customerid>@jmp.chat and can reply to
those.  Customers will still message the support phone number via @cheogram.com
and see the replies coming from the support number.

Anyone messaging the support phone number from outside our system (ie from
carrier SMS) will still show up as phonenumber@cheogram.com to support, since
that won't traverse this path.  If someone messages support without a cheogram
route that will still come as whispers since those don't traverse sgx-jmp at all
right now.

In the unlikely case that someone has a cheogram route set, but no customer id
at all, then these will come from <escaped jid>@jmp.chat and currently cannot be
replied to, but at least support will see that something is up and be able to
take action.

Stephen Paul Weber created

02d8328 Allow SGX with a node

Click to expand commit body
This is not common, but if that's what the config says we shouldn't erase the node.

Stephen Paul Weber created

24b079a Update Admin Actions for Ruby 3

Click to expand commit body
In Ruby 3 hashes no longer work as keyword args like we expected, so we
have to be a bit more explicit.

Should be compatible with Ruby 2.

Christopher Vollick created

8785676 Renamed file with a mistype.

Click to expand commit body
Renamed lib/customer_finacials.rb to lib/customer_financials.rb
Edited the 'require' in lib/customer.rb and lib/financial_info.rb

root21 created

4c70ba8 Add emoji icons for each command

Stephen Paul Weber created

4b045d1 Merge branch 'simpleswap'

Click to expand commit body
* simpleswap:
  Integrate SimpleSwap into alt top up

Stephen Paul Weber created

38d58f6 Integrate SimpleSwap into alt top up

Click to expand commit body
Allow choosing Done, Add Bitcoin, XMR, or ETH with the last two being SimpleSwap
swap addresses (and thus only one-time use, for safety, we don't know how long
they keep a record of swaps etc).

Stephen Paul Weber created

b640c8e Merge branch 'low-balance-target'

Click to expand commit body
* low-balance-target:
  Fix linter, integrate patch feedback
  Add low balance/auto top up with target amount

Stephen Paul Weber created

cc8787a Fix linter, integrate patch feedback

Stephen Paul Weber created

1a2640d Add low balance/auto top up with target amount

Osakpolor Obaseki created

07575ad Take in Carrier if Port is Canadian

Click to expand commit body
Canadian ports need this extra info to port them in. Up until now I've
been messaging people manually to ask for it, but that adds a delay to
the porting process since I can't move forwards until they've told me,
and it may be hours between when they fill out the form and when I'm
processing it.

So this will just ask for all the data upfront, meaning I can fully
process them right away.

Christopher Vollick created

94298f5 Refactor alt top up to use FormTemplate

Stephen Paul Weber created

8715e74 Remove expired payment methods from customer list of payment methods [with tests]

Osakpolor Obaseki created

78c1b39 Command to show details (currently just remaining data) for account SIMs

Stephen Paul Weber created

ec30012 Fix test

Stephen Paul Weber created

c68cc15 Merge branch 'use-tel-we-have'

Click to expand commit body
* use-tel-we-have:
  Skip asking backend about registration when we know the tel already

Stephen Paul Weber created