code: public byte[] sendDataSm(OutputStream os, int sequenceNumber,
              String serviceType, TypeOfNumber sourceAddrTon,
              NumberingPlanIndicator sourceAddrNpi, String sourceAddr,
              TypeOfNumber destAddrTon, NumberingPlanIndicator destAddrNpi,
              String destinationAddr, ESMClass esmClass,
              RegisteredDelivery registeredDelivery, DataCoding dataCoding,
              OptionalParameter... optionalParameters) throws PDUStringException,
              IOException {
          synchronized (os) {
              return pduSender.sendDataSm(os, sequenceNumber, serviceType,
                      sourceAddrTon, sourceAddrNpi, sourceAddr, destAddrTon,
                      destAddrNpi, destinationAddr, esmClass, registeredDelivery,
                      dataCoding, optionalParameters);
          }
      }
docs: /*
  (non-Javadoc)
  
  @see org.jsmpp.PDUSender#sendDataSm(java.io.OutputStream, int,
  java.lang.String, org.jsmpp.TypeOfNumber,
  org.jsmpp.NumberingPlanIndicator, java.lang.String,
  org.jsmpp.TypeOfNumber, org.jsmpp.NumberingPlanIndicator,
  java.lang.String, org.jsmpp.bean.ESMClass,
  org.jsmpp.bean.RegisteredDelivery, org.jsmpp.bean.DataCoding,
  org.jsmpp.bean.OptionalParameter[])