@Override public void connect(MessageContext messageContext) throws ConnectException { SynapseLog log = getLog(messageContext); log.auditLog("Start: purchase phone number"); Map<String, String> params = getParamList(messageContext); try { TwilioRestClient twilioRestClient = TwilioUtil.getTwilioRestClient(messageContext); IncomingPhoneNumberFactory numberFactory = twilioRestClient.getAccount() .getIncomingPhoneNumberFactory(); IncomingPhoneNumber number = numberFactory.create(params); OMElement omResponse = TwilioUtil.parseResponse("phonenumber.purchase.success"); TwilioUtil.addElement(omResponse, TwilioUtil.PARAM_INCOMING_PHONE_SID, number.getSid()); TwilioUtil.addElement(omResponse, TwilioUtil.PARAM_FRIENDLY_NAME, number.getFriendlyName()); TwilioUtil.preparePayload(messageContext, omResponse); } catch (Exception e) { log.error(e.getMessage()); TwilioUtil.handleException(e, "0005", messageContext); throw new SynapseException(e); } log.auditLog("End: purchase phone number"); }