1package javax.sip;
2
3import java.util.TooManyListenersException;
4import javax.sip.header.CallIdHeader;
5import javax.sip.message.Request;
6import javax.sip.message.Response;
7
8public interface SipProvider {
9    /**
10     * @deprecated
11     * @see #addListeningPoint(ListeningPoint)
12     */
13    void setListeningPoint(ListeningPoint listeningPoint)
14            throws ObjectInUseException;
15    void addListeningPoint(ListeningPoint listeningPoint)
16            throws ObjectInUseException;
17    void removeListeningPoint(ListeningPoint listeningPoint)
18            throws ObjectInUseException;
19    void removeListeningPoints();
20
21    /**
22     * @deprecated
23     * @see #getListeningPoints()
24     */
25    ListeningPoint getListeningPoint();
26    ListeningPoint getListeningPoint(String transport);
27    ListeningPoint[] getListeningPoints();
28
29    void addSipListener(SipListener sipListener)
30            throws TooManyListenersException;
31    void removeSipListener(SipListener sipListener);
32
33    CallIdHeader getNewCallId();
34
35    ClientTransaction getNewClientTransaction(Request request)
36            throws TransactionUnavailableException;
37    ServerTransaction getNewServerTransaction(Request request)
38            throws TransactionAlreadyExistsException,
39            TransactionUnavailableException;
40
41    Dialog getNewDialog(Transaction transaction) throws SipException;
42
43    boolean isAutomaticDialogSupportEnabled();
44    void setAutomaticDialogSupportEnabled(boolean flag);
45
46    SipStack getSipStack();
47
48    void sendRequest(Request request) throws SipException;
49    void sendResponse(Response response) throws SipException;
50}
51
52