Would exposing the value of 'ril.ecclist' help you here? If I am not wrong there will be a 'readonly attribute DOMString[]?  emergencyNumbers;' in the W3C Telephony spec, so we might need to end up exposing it in any case.

As for the transaction thing, as I mentioned in the bug, you can always open a new transaction within the Voicemail.check() handler :) I can help you there if needed.