package com.rayo.core.sip; import javax.servlet.sip.Address; import javax.servlet.sip.ServletParseException; import javax.servlet.sip.SipFactory; import javax.servlet.sip.SipURI; import javax.servlet.sip.TelURL; import javax.servlet.sip.URI; import com.voxeo.logging.Loggerf; public class SipAddress { private static Loggerf logger = Loggerf.getLogger(SipAddress.class); private Address _address; private SipFactory _sipF; public SipAddress(SipFactory sipF) { _sipF = sipF; } public void setAddress(String address) { try { _address = _sipF.createAddress(address); } catch (ServletParseException e) { throw new IllegalArgumentException(e.getMessage()); } } public void setUri(String uri) { try { logger.debug("URI set is: " + uri); _address = _sipF.createAddress(uri); } catch (ServletParseException e) { throw new IllegalArgumentException(e.getMessage()); } } public String getBaseAddress() { String baseAddress = null; URI uri = _address.getURI(); SipURI suri; TelURL turl; if (uri.isSipURI()) { suri = (SipURI) uri; baseAddress = suri.getUser() + "@" + suri.getHost(); logger.debug("SIP BaseAddress: " + baseAddress); } else { turl = (TelURL) uri; baseAddress = turl.getPhoneNumber(); logger.debug("TEL BaseAddress: " + baseAddress); } return baseAddress; } public SipURI getSipURI() { SipURI suri = null; URI uri = _address.getURI(); if (uri.isSipURI()) { suri = (SipURI) uri; } return suri; } }