class JasperWirelessSmsClient {

    GetSMSDetailsResponse getSMSDetails(final Long smsMessageId, final String iccId) {

        final GetSMSDetailsRequest getSMSDetailsRequest = WS_CLIENT_FACTORY.createGetSMSDetailsRequest();
        getSMSDetailsRequest.setLicenseKey(this.jasperWirelessAccess.getLicenseKey());
        getSMSDetailsRequest.setMessageId(this.correlationIdProviderService.getCorrelationId(WAKEUPSMS_TYPE, iccId));

        final GetSMSDetailsRequest.SmsMsgIds smsMsgIds = new GetSMSDetailsRequest.SmsMsgIds();
        final List<Long> smsMsgId = smsMsgIds.getSmsMsgId();
        smsMsgId.add(smsMessageId);
        getSMSDetailsRequest.setSmsMsgIds(smsMsgIds);
        getSMSDetailsRequest.setMessageTextEncoding("");
        getSMSDetailsRequest.setVersion(this.jasperWirelessAccess.getApiVersion());

        this.setInterceptorUsernameTokens();

        // override default uri
        this.jasperWebServiceTemplate.setDefaultUri(this.jasperWirelessAccess.getUri());

        return (GetSMSDetailsResponse) this.jasperWebServiceTemplate.marshalSendAndReceive(getSMSDetailsRequest,
                new SoapActionCallback(SERVICE_GET_SMSDETAILS));
    }

}