|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface ProxyExt

Interface Extension that adds extra features to the JSR 289 Proxy interface. It adds the following capabilities :
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.sip.Proxy;
import javax.servlet.sip.ProxyBranch;
import javax.servlet.sip.SipFactory;
import javax.servlet.sip.SipServlet;
import javax.servlet.sip.SipServletRequest;
import javax.servlet.sip.URI;
import org.mobicents.javax.servlet.sip.ProxyBranchListener;
import org.mobicents.javax.servlet.sip.ProxyExt;
import org.mobicents.javax.servlet.sip.ResponseType;
public class ProxySipServlet extends SipServlet implements ProxyBranchListener {
protected void doInvite(SipServletRequest request) throws ServletException,
IOException {
if(!request.isInitial()){
return;
}
SipFactory sipFactory = (SipFactory) getServletContext().getAttribute(SIP_FACTORY);
Proxy proxy = request.getProxy();
proxy.setParallel(false);
// set the timeout for receiving a final response
proxy.setProxyTimeout(5);
// set the timeout for receiving a 1xx response
((ProxyExt)proxy).setProxy1xxTimeout(1);
proxy.setRecordRoute(true);
ArrayList uris = new ArrayList();
URI uri1 = sipFactory.createAddress("sip:receiver@127.0.0.1:5057").getURI();
URI uri2 = sipFactory.createAddress("sip:second-receiver@127.0.0.1:5056").getURI();
uris.add(uri2);
uris.add(uri1);
proxy.proxyTo(uris);
}
/**
* Called if no 1xx and no final response has been received with a response type of INFORMATIONAL
* Called if no 2xx response has been received with a response type of FINAL
*\/
public void onProxyBranchResponseTimeout(ResponseType responseType,
ProxyBranch proxyBranch) {
logger.info("onProxyBranchResponseTimeout callback was called. responseType = " + responseType + " , branch = " + proxyBranch + ", request " + proxyBranch.getRequest() + ", response " + proxyBranch.getResponse());
}
| Method Summary | |
|---|---|
int |
getProxy1xxTimeout()
The current value of the overall proxy 1xx timeout value. |
void |
setOutboundInterface(SipURI outboundInterface)
In multi-homed environment this method can be used to select the outbound interface and port number and transport to use for proxy branches. |
void |
setProxy1xxTimeout(int timeout)
This is the amount of time, in seconds, the container waits for an informational response when proxying. |
| Method Detail |
|---|
void setProxy1xxTimeout(int timeout)
timeout - new search 1xx timeout in seconds
IllegalArgumentException - if the container cannot set the value as requested because it is too high, too low or negativeint getProxy1xxTimeout()
void setOutboundInterface(SipURI outboundInterface)
outboundInterface - the sip uri representing the outbound interface to use when forwarding requests with this proxy
NullPointerException - on null sip uri
IllegalArgumentException - if the sip uri is not understood by the container as one of its outbound interface
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||