~singpolyma/sgx-jmp

Merge branch 'bye-number-display'

* bye-number-display:
  This command is redundant with the info command
This command is redundant with the info command
Record Voicemail Greeting command
Move CustomerFwd behind Customer

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.
Add auto-top-up to customer info report
Command to migrate transitional status accounts

Currently we tell users to use the web activation for this, but we'd like the we
activation to go away very soon and will still need a path for them.
Allow web-register in two-stage as well

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.
Bandwidth is very picky about city and state/province names

So transform reasonable things into what we know Bandwidth expects.
If number search fails, send user error and ask to search again
Fix test so you get a better error on failure
Garbage prefix is +1
this was backward
Merge branch 'sip-outbound'

* 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
Support transcription disablement option
Port in inbound calls + voicemail

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.
Allow fetching fwd timeout as well
Next