|
||||||||||
| 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. |
void |
storeTerminationInformation(boolean store)
Enable (or disable) the storing of routing information required to terminate a proxy using terminateSession. |
void |
terminateSession(SipSession session,
int calleeResponseCode,
String calleeResponseText,
int callerResponseCode,
String callerResponseText)
Terminates an established session by sending BYE requests in both directions. |
| 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
void storeTerminationInformation(boolean store)
throws IllegalStateException
store - true to store information for termination, false to return to default behaviour
IllegalStateException - if the proxy session has been established
void terminateSession(SipSession session,
int calleeResponseCode,
String calleeResponseText,
int callerResponseCode,
String callerResponseText)
throws IllegalStateException,
IOException
session - The SipSession to terminatecalleeResponseCode - SIP response code to include in a Reason header in BYE sent to original call recipient. Must be in the range 300-699.calleeResponseText - SIP response text to include in BYE sent to original call recipient. If null, no reason header will be used.callerResponseCode - SIP response code to include in a Reason header in BYE sent to original caller. Must be in the range 300-699.callerResponseText - SIP response text to include in BYE sent to original caller. If null, no reason header will be used.
IllegalStateException - if the proxy session is not yet established or storeTerminationInformation not called before session was established.
IOException - if a transport error occurs when trying to send this request
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||