445c909
Customer cc limit to 130
Stephen Paul Weber created
445c909
Customer cc limit to 130
Stephen Paul Weber created
d5811da
CDRs for everyone
Stephen Paul Weber created
cd00a32
Porting Zips Can Contain "-"
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
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
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
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
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
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)
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'
* 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
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
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"
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'
* 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
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
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
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'
* command-icons: Add emoji icons for each command
Stephen Paul Weber created
8e07718
Switch from unbilled to direct targets
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
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
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.
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'
* simpleswap: Integrate SimpleSwap into alt top up
Stephen Paul Weber created
38d58f6
Integrate SimpleSwap into alt top up
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'
* 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
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'
* use-tel-we-have: Skip asking backend about registration when we know the tel already
Stephen Paul Weber created