コード例 #1
0
ファイル: SmppDataSmCommand.java プロジェクト: mykolap/camel
  @Override
  public void execute(Exchange exchange) throws SmppException {
    DataSm dataSm = createDataSm(exchange);

    if (log.isDebugEnabled()) {
      log.debug("Sending a data short message for exchange id '{}'...", exchange.getExchangeId());
    }

    DataSmResult result;
    try {
      result =
          session.dataShortMessage(
              dataSm.getServiceType(),
              TypeOfNumber.valueOf(dataSm.getSourceAddrTon()),
              NumberingPlanIndicator.valueOf(dataSm.getSourceAddrNpi()),
              dataSm.getSourceAddr(),
              TypeOfNumber.valueOf(dataSm.getDestAddrTon()),
              NumberingPlanIndicator.valueOf(dataSm.getDestAddrNpi()),
              dataSm.getDestAddress(),
              new ESMClass(dataSm.getEsmClass()),
              new RegisteredDelivery(dataSm.getRegisteredDelivery()),
              DataCodings.newInstance(dataSm.getDataCoding()),
              dataSm.getOptionalParameters());
    } catch (Exception e) {
      throw new SmppException(e);
    }

    if (log.isDebugEnabled()) {
      log.debug(
          "Sent a data short message for exchange id '{}' and message id '{}'",
          exchange.getExchangeId(),
          result.getMessageId());
    }

    Message message = getResponseMessage(exchange);
    message.setHeader(SmppConstants.ID, result.getMessageId());
    // message.setHeader(SmppConstants.OPTIONAL_PARAMETERS,
    // createOptionalParameterByName(result.getOptionalParameters()));
    message.setHeader(SmppConstants.OPTIONAL_PARAMETERS, null);
    message.setHeader(
        SmppConstants.OPTIONAL_PARAMETER,
        createOptionalParameterByCode(result.getOptionalParameters()));
  }