The ASN.1 encoder wants to explicitly have asn1_NOVALUE for OPTIONAL
fields. However, the default erlang record initializer is 'undefiend',
so we have to replace undefined with asn1_NOVALUE before feeding it to
asn1rt.
results from the asn1 encoder are always prefixed with {ok, ..}
As the encoder returns binary data, the list_to_binary() function is
bogus. The result might be an iolist() - which we simply specify the
underlying SCCP transport implementation must support (or flatten
itself).