182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyanpackage javax.sip;
282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyanimport java.util.TooManyListenersException;
482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyanimport javax.sip.header.CallIdHeader;
582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyanimport javax.sip.message.Request;
682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyanimport javax.sip.message.Response;
782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyanpublic interface SipProvider {
982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    /**
1082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan     * @deprecated
1182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan     * @see #addListeningPoint(ListeningPoint)
1282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan     */
1382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    void setListeningPoint(ListeningPoint listeningPoint)
1482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ObjectInUseException;
1582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    void addListeningPoint(ListeningPoint listeningPoint)
1682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ObjectInUseException;
1782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    void removeListeningPoint(ListeningPoint listeningPoint)
1882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ObjectInUseException;
1982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    void removeListeningPoints();
2082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
2182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    /**
2282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan     * @deprecated
2382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan     * @see #getListeningPoints()
2482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan     */
2582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ListeningPoint getListeningPoint();
2682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ListeningPoint getListeningPoint(String transport);
2782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ListeningPoint[] getListeningPoints();
2882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
2982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    void addSipListener(SipListener sipListener)
3082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws TooManyListenersException;
3182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    void removeSipListener(SipListener sipListener);
3282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
3382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    CallIdHeader getNewCallId();
3482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
3582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ClientTransaction getNewClientTransaction(Request request)
3682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws TransactionUnavailableException;
3782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ServerTransaction getNewServerTransaction(Request request)
3882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws TransactionAlreadyExistsException,
3982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            TransactionUnavailableException;
4082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
4182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    Dialog getNewDialog(Transaction transaction) throws SipException;
4282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
4382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    boolean isAutomaticDialogSupportEnabled();
4482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    void setAutomaticDialogSupportEnabled(boolean flag);
4582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
4682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    SipStack getSipStack();
4782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
4882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    void sendRequest(Request request) throws SipException;
4982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    void sendResponse(Response response) throws SipException;
5082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan}
5182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
52