All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gov.nist.javax.sip.SipStackExt Maven / Gradle / Ivy

There is a newer version: 1.3.0-91
Show newest version
package gov.nist.javax.sip;

import gov.nist.core.net.AddressResolver;
import gov.nist.javax.sip.clientauthutils.AccountManager;
import gov.nist.javax.sip.clientauthutils.AuthenticationHelper;
import gov.nist.javax.sip.clientauthutils.SecureAccountManager;
import gov.nist.javax.sip.header.extensions.JoinHeader;
import gov.nist.javax.sip.header.extensions.ReplacesHeader;

import java.io.IOException;
import java.net.InetAddress;
import java.net.SocketAddress;
import java.util.Collection;

import javax.sip.Dialog;
import javax.sip.SipStack;
import javax.sip.header.HeaderFactory;

/**
 * SIP Stack extensions to be added to the next spec revision. Only these may be safely used in
 * the interim between now and the next release. SipStackImpl implements this interface.
 *
 * The following new stack initialization flags are defined (not the gov.nist prefix will be
 * dropped when the spec is updated):
 *
 * 
    *
  • gov.nist.javax.sip.AUTOMATIC_DIALOG_ERROR_HANDLING *
  • gov.nist.javax.sip.IS_BACK_TO_BACK_USER_AGENT *
  • gov.nist.javax.sip.DELIVER_TERMINATED_EVENT_FOR_NULL_DIALOG *
  • gov.nist.javax.sip.MAX_FORK_TIME_SECONDS *
* @author M. Ranganathan * */ public interface SipStackExt extends SipStack { /** * Get the collection of dialogs currently in the Dialog table. This is useful for debugging * purposes. * */ public Collection getDialogs(); /** * Get the ReferedTo dialog in the Replaces header. * * @return Dialog object matching the Replaces header, provided it is in an appropriate state * to be replaced, null otherwise * * @since 2.0 */ public Dialog getReplacesDialog(ReplacesHeader replacesHeader); /** * Get the authentication helper. * * * @param accountManager -- account manager (for fetching credentials). * @param headerFactory -- header factory. * * @return - the authentication helper which can be used for generating the appropriate * headers for handling authentication challenges for user agents. * * @since 2.0 */ public AuthenticationHelper getAuthenticationHelper(AccountManager accountManager, HeaderFactory headerFactory); /** * Get the authentication helper. * * * @param accountManager -- account manager (for fetching credentials). * @param headerFactory -- header factory. * * @return - the authentication helper which can be used for generating the appropriate * headers for handling authentication challenges for user agents. * * @since 2.0 */ public AuthenticationHelper getSecureAuthenticationHelper(SecureAccountManager accountManager, HeaderFactory headerFactory); /** * Set the address resolution interface. The address resolver allows you to register custom * lookup schemes ( for example DNS SRV lookup ) that are not directly supported by the JDK. * * @param addressResolver -- the address resolver to set. * * @since 2.0 */ public void setAddressResolver(AddressResolver addressResolver); /** * Get the dialog in the Join header. * * @return Dialog object matching the Join header, provided it is in an appropriate state to * be replaced, null otherwise * * @since 2.0 */ public Dialog getJoinDialog(JoinHeader joinHeader); /** * Set the list of cipher suites supported by the stack. A stack can have only one set of * suites. These are not validated against the supported cipher suites of the java runtime, so * specifying a cipher here does not guarantee that it will work.
* The stack has a default cipher suite of: *
    *
  • TLS_RSA_WITH_AES_128_CBC_SHA
  • *
  • SSL_RSA_WITH_3DES_EDE_CBC_SHA
  • *
  • TLS_DH_anon_WITH_AES_128_CBC_SHA
  • *
  • SSL_DH_anon_WITH_3DES_EDE_CBC_SHA
  • *
* * NOTE: This function must be called before adding a TLS listener * * @since 2.0 * @param newCipherSuites -- The new set of ciphers to support. * */ public void setEnabledCipherSuites(String[] newCipherSuites); /** * Creates and binds, if necessary, a TCP socket connected to the specified * destination address and port and then returns its local address. * * @param dst the destination address that the socket would need to connect * to. * @param dstPort the port number that the connection would be established * with. * @param localAddress the address that we would like to bind on * (null for the "any" address). * @param localPort the port that we'd like our socket to bind to (0 for a * random port). * * @return the local SocketAddress that this handler would use when * connecting to the specified destination address and port. * * @throws IOException if we fail binding the socket * * @since 2.0 */ public SocketAddress getLocalAddressForTcpDst(InetAddress dst, int dstPort, InetAddress localAddress, int localPort) throws IOException; /** * Creates and binds, if necessary, a TLS socket connected to the specified * destination address and port and then returns its local address. * * @param dst the destination address that the socket would need to connect * to. * @param dstPort the port number that the connection would be established * with. * @param localAddress the address that we would like to bind on * (null for the "any" address). * * @return the local SocketAddress that this handler would use when * connecting to the specified destination address and port. * * @throws IOException if we fail binding the socket * * @since 2.0 */ public SocketAddress getLocalAddressForTlsDst(InetAddress dst, int dstPort, InetAddress localAddress) throws IOException; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy