bria
Version:
CounterPath Bria Desktop API for Node.js
237 lines • 9.55 kB
TypeScript
import BriaClientLeaf from './Leaf';
import { BriaClient } from '.';
import sxml from 'sxml';
export declare type CallId = string;
export declare type CallNumber = string;
export declare type CallType = 'audio' | 'video' | 'conference';
export declare type Call = {
type: CallType;
number: CallNumber;
displayName?: string;
/**
* If true, the Bria window will not regain focus when call is initiated
*/
suppressMainWindow?: boolean;
accountId?: string;
};
export declare type HoldState = 'offHold' | 'localHold' | 'remoteHold';
export declare type CallState = 'connected' | 'connecting' | 'ringing' | 'failed' | 'ended';
/**
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getStatusCallOptions
*/
export declare type CallOptions = {
anonymous: boolean;
lettersToNumbers: boolean;
autoAnswer: boolean;
callWaiting: boolean;
};
export declare type DTMFDigit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '*' | '#';
export declare type DTMFType = 'start' | 'stop';
export declare type CallParty = {
number: CallNumber;
displayName: string;
state: CallState;
timeInitiated: Date;
};
declare class BriaCall {
id: CallId;
holdStatus: HoldState;
participants: CallParty[];
recordingStatus: boolean;
recordingFile?: string;
_xml: sxml.XML;
private client;
constructor(client: BriaClient, xml: sxml.XML);
/**
*
* @param xml
* @returns true if the call was actually updated
*/
update(xml: sxml.XML): boolean;
/**
* Answer a call
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getAnswer
*/
answer(): Promise<sxml.XML>;
/**
* End a call
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getEndCall
*/
end(): Promise<sxml.XML>;
/**
* Place call on hold
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getHold
*/
hold(): Promise<sxml.XML>;
/**
* Resume call that was on hold
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getResume
*/
resume(): Promise<sxml.XML>;
/**
* Request a blind transfer to a number
*
* @param targetNumber
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getTransferCall
*/
blindTransferToNumber(targetNumber: CallNumber): Promise<sxml.XML>;
/**
* Request a blind transfer to a BriaCall
*
* @param targetCall
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getTransferCall
*/
blindTransferToCall(targetCall: BriaCall): Promise<sxml.XML>;
/**
* Request an attended transfer
*
* On Bria versions <6.2.0, this call will throw an exception
* @param targetNumber
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#startAttendedTransferCall
*/
attendedTransfer(targetNumber: CallNumber): Promise<sxml.XML>;
/**
* Merge call with all other calls
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#Merge
*/
merge(): Promise<sxml.XML>;
/**
* Start a call recording
* @param filename Do not include extension, Bria includes it automatically
* @param suppressPopup Show call recording popup when ended
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiRecording.htm#Start
*/
startRecording(filename: string, suppressPopup?: boolean): Promise<sxml.XML>;
/**
* Stop a call recording
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiRecording.htm#Stop
*/
stopRecording(): Promise<sxml.XML>;
}
declare type CallEvents = {
callStart: (call: BriaCall, id: string) => Promise<void> | void;
callUpdate: (call: BriaCall, id: string) => Promise<void> | void;
callEnd: (call: BriaCall, id: string) => Promise<void> | void;
optionsUpdated: () => Promise<void> | void;
};
export declare class BriaClientCall extends BriaClientLeaf<CallEvents> {
options?: CallOptions;
calls: BriaCall[];
constructor(client: BriaClient);
populate(): Promise<void>;
private populateCalls;
private callUpdated;
/**
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiEvents.htm#postStatusChangeCallOptions
*/
private callOptionsUpdated;
/**
* Get static list of calls
*
* Instead of using this method, you should access client.call.calls,
* this method is used when Bria posts a call update event internally
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getStatusCall
*/
getCalls(): Promise<BriaCall[]>;
/**
* Place a call
* @param call
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getCall
*/
placeCall(call: Call): Promise<sxml.XML>;
/**
* Answer a call
* @param callId
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getAnswer
*/
answerCall(callId: CallId): Promise<sxml.XML>;
/**
* End a call
* @param callId
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getEndCall
*/
endCall(callId: CallId): Promise<sxml.XML>;
/**
* Place call on hold
* @param callId
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getHold
*/
holdCall(callId: CallId): Promise<sxml.XML>;
/**
* Resume call that was on hold
* @param callId
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getResume
*/
resumeCall(callId: CallId): Promise<sxml.XML>;
/**
* Send a DTMF tone to the call recipient
* @param digit
* @param type start/stop
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getDTMF
*/
sendDTMF(digit: DTMFDigit | number, type: DTMFType): Promise<sxml.XML>;
/**
* Request a blind transfer by number
*
* On Bria versions <6.2.0, both blindTransferByNumber and
* and blindTransferByCallId act functionally identical.
* @param callId
* @param targetNumber
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getTransferCall
*/
blindTransferByNumber(callId: CallId, targetNumber: CallNumber): Promise<sxml.XML>;
/**
* Request a blind transfer by callId
*
* On Bria versions <6.2.0, both blindTransferByNumber and
* and blindTransferByCallId act functionally identical.
* @param callId
* @param targetNumber
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getTransferCall
*/
blindTransferByCallId(callId: CallId, targetCallId: CallId): Promise<sxml.XML>;
/**
* Request an attended transfer
*
* On Bria versions <6.2.0 this call will throw an exception
* @param callId
* @param target
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#startAttendedTransferCall
*/
attendedTransfer(callId: CallId, target: CallNumber): Promise<sxml.XML>;
/**
* Merge calls into local conference
*
* This call will not provide any error if call ID is invalid
* @param callId This call should not be on hold.
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#Merge
*/
mergeCall(callId: CallId): Promise<sxml.XML>;
/**
* Get call options
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getStatusCallOptions
*/
getCallOptions(): Promise<CallOptions>;
/**
* Set call options
* @param options Partial call options
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiHandlingCalls.htm#getCallOptions
*/
setCallOptions(options: Partial<CallOptions>): Promise<sxml.XML>;
/**
* Start a call recording
* @param callId
* @param filename Do not include extension, Bria includes it automatically
* @param suppressPopup Show call recording popup when ended
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiRecording.htm#Start
*/
startCallRecording(callId: CallId, filename: string, suppressPopup?: boolean): Promise<sxml.XML>;
/**
* Stop a call recording
* @param callId If null, call recording is stopped for the current live call
* @see https://docs.counterpath.com/guides/desk/desk_api/clients/deskAPI/deskApiRecording.htm#Stop
*/
stopCallRecording(callId?: CallId): Promise<sxml.XML>;
}
export {};
//# sourceMappingURL=Call.d.ts.map