@SuppressWarnings("rawtypes")
	public void sendRequest(String correlationId, String msisdn, RequestType requestType, String resultCode) {
		
		if(requestType == RequestType.OTHER)
			return;
		
		msisdn = NumberUtil.toLocal(msisdn);
		
		log.info("Making CIP request of: " + requestType + " for:" + msisdn + " with result code : " + resultCode);
		
		
		try {
			CPSIPWebServiceService service = new CPSIPWebServiceService();
			CPSIPWebService port = service.getCPSIPWebServicePort();
			
			BindingProvider bindingProvider = (BindingProvider) port;
			bindingProvider.getRequestContext().put("javax.xml.ws.service.endpoint.address", endPoint);
			
			Binding binding = bindingProvider.getBinding();
			List<Handler> handlerChain = binding.getHandlerChain();
			handlerChain.add(new LogMessageHandler());
			binding.setHandlerChain(handlerChain);

			log.info("Making request to: " + bindingProvider.getRequestContext().get("javax.xml.ws.service.endpoint.address"));
			
			String serviceId = "";		
			
			StringArray arr = new StringArray();
			arr.getItem().add(correlationId);
			arr.getItem().add(msisdn);
			
			if(resultCode.equals("0"))
				arr.getItem().add("1");
			else
				arr.getItem().add("2");
			
			Calendar calExpiry = Calendar.getInstance();
			calExpiry.add(Calendar.DAY_OF_YEAR, expiryDays);
			
			arr.getItem().add(new SimpleDateFormat("dd-MM-yyyy").format(calExpiry.getTime()));
			
			if(requestType == RequestType.SUB) {
				serviceId = serviceIdsMap.get("consumer.service.sub");
				
				arr.getItem().add("1");
				
			} else if(requestType == RequestType.UNSUB) {
				serviceId = serviceIdsMap.get("consumer.service.unsub");
				
				arr.getItem().add("2");
			}
			
			List<StringArray> transData = new ArrayList<StringArray>();
			transData.add(arr);
			
			log.info("Response from server: " + 
					port.provisioning(Consumer.aspUsername, Consumer.aspPassword, serviceId, transData, cpId));
		} catch (Exception e) {
			log.error("Sending direct router request failed: " + e.getMessage(), e);
		}
	}