All the previously-lazy BackendSgx data is now either all loaded or all not
loaded by swapping the sgx_repo used by your CustomerRepo instance. When not
loaded the fields are filled with bottom values that explode when used. When
loaded the values are present in RAM and not promises at all. Most code paths
do not need any of the data, a few need most of it, so this seems like a good
trade-off. Most code using this object will simply never touch those fields or
care about how they are loaded, etc.
Of course, most of this data isn't even SGX related and should move out of here,
but that would take a data model refactor/migration on the catapult_* schema.
Command execution is normally two stage, execute, response, then submit. We had
a hack here that allowed submitting the form directly, but this allows a blind
two-stage client to also at least work.
Stephen Paul Weber
created
35aa3f7
Bandwidth is very picky about city and state/province names
Click to expand commit body
So transform reasonable things into what we know Bandwidth expects.
Stephen Paul Weber
created
f316c9b
If number search fails, send user error and ask to search again
Stephen Paul Weber
created
6075955
Fix test so you get a better error on failure
* sip-outbound:
Support transcription disablement option
Port in inbound calls + voicemail
Allow fetching fwd timeout as well
Get OGM for a customer
Helper to fetch customer's vcard-temp
Make Disposition more real
Allow constructing CDR for an inbound or outbound event
Outbound calls from v2 SIP endpoint work and save a CDR
The craziest part of this is the workaround for a serious bug in Bandwidth's
HTTP voice API (which they may yet fix, still negotiating with them about that).
When a call comes in, every 10 seconds that it is not "answered" the inbound
call gets cancelled by their upstream peer and then get retried. The caller
sees only one oubound call for this, so it doesn't look odd to them, but to us
it looks like they keep hanging up and trying again every 10 seconds. So what
we do for now is we wait 2 seconds after they disconnect before we decide
they're really gone. If they call back in those 2 seconds we just connect the
eventual bridge or voicemail to this new call and everything works out.
Ew.
* number-search:
Do not direct back to website to pick new number
Run rubocop after tests
Add reference to option to show where the tel is
Format tel for human reader
Allow user to search for numbers over XMPP
s/WebRegisterManager/TelSelections
Stephen Paul Weber
created
a16fd0d
Do not direct back to website to pick new number
Click to expand commit body
Instead, if number is no longer available keep them in flow and use the number
search tool.
Set the same key as web register manager, so that on next register jmp.chat the
tel we were using in this flow will be used. Not needed if they came from web
register, but will still extend expiry in that case and no harm.
Clean up pending tel key on Finish.