sip.js
Version:
A SIP library for JavaScript
82 lines (81 loc) • 4.03 kB
TypeScript
import { URI } from "../../grammar/uri.js";
import { IncomingInviteRequest, OutgoingResponseWithSession } from "../messages/methods/invite.js";
import { IncomingRequestDelegate } from "../messages/incoming-request.js";
import { IncomingRequestMessage } from "../messages/incoming-request-message.js";
import { OutgoingResponse, ResponseOptions } from "../messages/outgoing-response.js";
import { UserAgentCore } from "../user-agent-core/user-agent-core.js";
import { UserAgentServer } from "./user-agent-server.js";
/**
* INVITE UAS.
* @remarks
* 13 Initiating a Session
* https://tools.ietf.org/html/rfc3261#section-13
* 13.1 Overview
* https://tools.ietf.org/html/rfc3261#section-13.1
* 13.3 UAS Processing
* https://tools.ietf.org/html/rfc3261#section-13.3
* @public
*/
export declare class InviteUserAgentServer extends UserAgentServer implements IncomingInviteRequest {
protected core: UserAgentCore;
/** The confirmed dialog, if any. */
private confirmedDialog;
/** The early dialog, if any. */
private earlyDialog;
constructor(core: UserAgentCore, message: IncomingRequestMessage, delegate?: IncomingRequestDelegate);
dispose(): void;
/**
* 13.3.1.4 The INVITE is Accepted
* The UAS core generates a 2xx response. This response establishes a
* dialog, and therefore follows the procedures of Section 12.1.1 in
* addition to those of Section 8.2.6.
* https://tools.ietf.org/html/rfc3261#section-13.3.1.4
* @param options - Accept options bucket.
*/
accept(options?: ResponseOptions): OutgoingResponseWithSession;
/**
* 13.3.1.1 Progress
* If the UAS is not able to answer the invitation immediately, it can
* choose to indicate some kind of progress to the UAC (for example, an
* indication that a phone is ringing). This is accomplished with a
* provisional response between 101 and 199. These provisional
* responses establish early dialogs and therefore follow the procedures
* of Section 12.1.1 in addition to those of Section 8.2.6. A UAS MAY
* send as many provisional responses as it likes. Each of these MUST
* indicate the same dialog ID. However, these will not be delivered
* reliably.
*
* If the UAS desires an extended period of time to answer the INVITE,
* it will need to ask for an "extension" in order to prevent proxies
* from canceling the transaction. A proxy has the option of canceling
* a transaction when there is a gap of 3 minutes between responses in a
* transaction. To prevent cancellation, the UAS MUST send a non-100
* provisional response at every minute, to handle the possibility of
* lost provisional responses.
* https://tools.ietf.org/html/rfc3261#section-13.3.1.1
* @param options - Progress options bucket.
*/
progress(options?: ResponseOptions): OutgoingResponseWithSession;
/**
* 13.3.1.2 The INVITE is Redirected
* If the UAS decides to redirect the call, a 3xx response is sent. A
* 300 (Multiple Choices), 301 (Moved Permanently) or 302 (Moved
* Temporarily) response SHOULD contain a Contact header field
* containing one or more URIs of new addresses to be tried. The
* response is passed to the INVITE server transaction, which will deal
* with its retransmissions.
* https://tools.ietf.org/html/rfc3261#section-13.3.1.2
* @param contacts - Contacts to redirect to.
* @param options - Redirect options bucket.
*/
redirect(contacts: Array<URI>, options?: ResponseOptions): OutgoingResponse;
/**
* 13.3.1.3 The INVITE is Rejected
* A common scenario occurs when the callee is currently not willing or
* able to take additional calls at this end system. A 486 (Busy Here)
* SHOULD be returned in such a scenario.
* https://tools.ietf.org/html/rfc3261#section-13.3.1.3
* @param options - Reject options bucket.
*/
reject(options?: ResponseOptions): OutgoingResponse;
}