import javax.sip.*;
import javax.sip.address.*;
import javax.sip.header.*;
import javax.sip.message.*;
public class SimpleSipTerminal implements SipListener {
private SipFactory sipFactory;
private SipProvider sipProvider;
private AddressFactory addressFactory;
private HeaderFactory headerFactory;
private MessageFactory messageFactory;
public SimpleSipTerminal() throws PeerUnavailableException {
sipFactory = SipFactory.getInstance();
sipFactory.setPathName("gov.nist");
addressFactory = sipFactory.createAddressFactory();
headerFactory = sipFactory.createHeaderFactory();
messageFactory = sipFactory.createMessageFactory();
ListeningPoint listeningPoint = sipFactory.createListeningPoint("127.0.0.1", 5060, "udp");
sipProvider = sipFactory.createSipProvider(listeningPoint);
sipProvider.addSipListener(this);
}
// ...
}
public void processRequest(RequestEvent requestEvent) {
Request request = requestEvent.getRequest();
ToHeader toHeader = (ToHeader) request.getHeader(ToHeader.NAME);
FromHeader fromHeader = (FromHeader) request.getHeader(FromHeader.NAME);
CallIdHeader callIdHeader = (CallIdHeader) request.getHeader(CallIdHeader.NAME);
ContentLengthHeader contentLengthHeader = (ContentLengthHeader) request.getHeader(ContentLengthHeader.NAME);
byte[] content = request.getRawContent();
}
public void createSipSession(String remoteUri) throws ParseException, SipException, InvalidArgumentException {
SipURI sipUri = addressFactory.createSipURI(null, remoteUri);
Address address = addressFactory.createAddress(sipUri);
Request inviteRequest = messageFactory.createRequest(
address,
Request.INVITE,
callIdHeader,
cSeqHeader,
fromHeader,
toHeader,
viaHeaders,
maxForwardsHeader);
ClientTransaction clientTransaction = sipProvider.getNewClientTransaction(inviteRequest);
clientTransaction.sendRequest();
}
SipStackExt stack = (SipStackExt) sipFactory.createSipStack(properties);
SipProvider provider = stack.createSipProvider(listeningPoint);
javax.sip.STACK_NAME = MySipStack
javax.sip.IP_ADDRESS = 127.0.0.1
javax.sip.IP_ADDRESS_TYPE = IP4