/// <summary> Serialize SubmitSm object to the byte array. </summary>
        ///
        /// <param name="client"> The client. </param>
        /// <param name="pdu"> The SubmitSm object. </param>
        ///
        /// <returns> A byte array. </returns>
        public byte[] Serialize(SmppClient client, SubmitSm pdu)
        {
            using (MemoryStream stream = new MemoryStream())
            {
                using (SmppWriter writer = new SmppWriter(stream, client.EncodingMapper))
                {
                    writer.WritePDU(pdu);

                    return(stream.ToArray());
                }
            }
        }
        public static TPdu Clone <TPdu>(this TPdu pdu) where TPdu : SmppPDU
        {
            using (MemoryStream stream = new MemoryStream())
            {
                SmppWriter writer = new SmppWriter(stream);
                writer.WritePDU(pdu);

                stream.Position = 0;

                SmppStreamReader reader = new SmppStreamReader(stream);
                return((TPdu)reader.ReadPDU());
            }
        }