Items left to do before we exit beta
In order to consider JMP no longer beta, there are several features/fixes we need to implement yet. The overarching goal is to remove as many situations as possible where JMP is confusing (e.g. a separate password for the SIP account), ambiguous (e.g. lack of privacy policy), arbitrary (e.g. the soft limits on voice minutes due to no good way to bill for extra minutes), or requiring manual intervention (e.g. payments using anything other than PayPal).
With a better-defined list of features/fixes, we should be able to give better estimates for the beta exit date rather than just bumping the approximate beta exit date periodically (most recently in 20349e2e).
Here are the features/fixes currently considered essential to implement before JMP exits beta (this list may be updated over time):
-
cleanup database (?) -
delete all expired trial accounts -
support for new payment methods -
integrate the new payment processor for credit cards (to get C$ support) -
add support for prepaid/balance-based payments, with credit card (above), but also: -
add automated way to pay in Bitcoin -
put Electrum daemon in Monit (non-trivial since need load_wallet after starting) -
use https://stackoverflow.com/questions/46357938/using-electrum-console-to-verify-payments to get notifications for updating db with "paid" status
-
-
minimum payment amount will be C$15/US$15/equivalent, larger payments get discounts
-
-
switch account signup so prepay is possible (requires above), trial accounts need wait/referral -
referral can be promotion, e.g. "Refer a friend and they get one month free. After they pay for their second month, you get one month free!"
-
-
-
group texting support MUST allow popular XMPP clients to see JIDs (for nick replacement)e -
add media caching in Cheogram so users can view it beyond 48 hours (the V2 retention time) -
add a privacy policy - see #17 (closed) for some details -
add the Contributor Covenant or similar, for the group chat and code contributions -
implement Jingle voice in JMP (see https://www.youtube.com/watch?v=v_riuu4XU6Q&t=3040 for DTLS) -
ensure it works in Conversations (primary target, requires DTLS) -
ensure it works in Siskin (or other iOS client?) -
ensure it works in Movim (at least the web client) -
fix the "Unable to connect call" error (as reported by Conversations), where Cheogram SIP fails the connection instead of closing it properly when the other side hangs up - per eta on 2020-09-03, "asterisk doesn't handle it properly ... I suspect it needs to send some more jingle stanzas instead of just cutting the connection"
-
-
Create proper CDR entries for incoming and SIP endpoint calls -
switch all accounts from our carrier's V1 API to V2 (currently used only for group text alpha) -
implement carrier's V2 SIP endpoints OR try to implement with existing SIP trunking option instead (may be fine(/easier?) for Jingle) -
switch jmp-register signup process to use V2 API for number buying -
switch to offering US numbers by default instead of Canadian (for cost savings)
-
-
update process for porting in numbers so don't need to pass through V1 anymore -
update process for moving JMP numbers between JIDs so don't need V1 passthru anymore
-
-
test and add support for errors returned to sender https://soprani.ca/todo/153 -
confirm errors of the "text must be 2,048 characters or less" variety get proper reply -
current behaviour is just lack of delivery receipt so needs to be better than this
-
-
add "deliveryDescription" (or V2 equivalent) to text field of delivery error messages -
fix error types so ones other than recipient-unavailable returned in appropriate cases -
especially for errors like rejected-forbidden-country which can mean MMS failed but SMS would work -
see https://dev.bandwidth.com/messaging/errors/codes.html#client-errors for complete list
-
-
ensure that our MaxMind setup is resilient -
refill account before leaving beta (at 15,376/62,500 queries left as of 2020-07-11, 10,818 left as of 2020-09-18, 7,708 as of 2020-10-31) -
have some periodic reporting so we know the drain rate and can refill accordingly -
clear any relevant caches at beta launch time so post-beta results are fresh
-
-
figure out the parameters (minutes/messages/price) on the new post-beta plans -
allow users to user their balance to pay for additional minutes (and messages, on lowest plan)
-
And some additional features/fixes we hope to add, which may be worth considering for holding up the beta exit, but are not currently considered essential for that:
-
ability to call numbers outside the US and Canada -
Conversations plugin for ad-hoc commands -
Conversations plugin for jabber:iq:gateway support (our PR was rejected: https://github.com/siacs/Conversations/pull/1914 - see https://wiki.soprani.ca/ClientIssues for more) -
more than one JMP number on a single JMP JID (numbers after the first are incoming-only) -
automated way to pay for multiple accounts with a single payment/subscription