import { CallStatus } from '../../models/call.model'; import type { TelephonyService } from '../../services/telephony/telephony.service'; /** * @class * @public * @name TelephonySipWiseEventHandler * @description * This class is used to represent the handler of SipWise telephony events */ export declare class TelephonySipWiseEventHandler { private telephonyService; private xmppService; private logger; private contactService; private eventService; private office365AdService; private companyDirectoryService; private settingsService; private messageHandlerRef; private overflowUpdatRef; private userConfigurationRef; private huntingGroupUpdateRef; private huntingGroupAdminUpdateRef; private welcomeServiceRef; private clirUpdatRef; private promiseQueue; private static CALLSERVICE_NS; private static OVERFLOWUPDATE_NS; private static USERCONFIGURATION_NS; private static HUNTINGGROUPUPDATE_NS; private static HUNTINGGROUPADMINUPDATE_NS; private static WELCOMESERVICE_NS; private static CLIRUPDATE_NS; /** * Constructor of TelephonySipWiseEventHandler instance * @public * @param {TelephonyService} telephonyService reference to the telephony service * @memberof TelephonySipWiseEventHandler */ constructor(telephonyService: TelephonyService); /** * Create the handler of telephony events for hybrid telephony (OXE / OXO / third party systems) * @public * @static * @param {any} telephonyService reference to the telephony service * @returns {TelephonySipWiseEventHandler} Instance of newly created TelephonyHybridEventHandler * @memberof TelephonySipWiseEventHandler */ static create(telephonyService: any): TelephonySipWiseEventHandler; CallFailureLabels: { invalidNumberFormat: string; destOutOfOrder: string; destNotObtainable: string; doNotDisturb: string; busy: string; incompatibleDestination: string; resourcesNotAvailable: string; callCancelled: string; unknownOverflow: string; }; /*************************************************************/ /*************************************************************/ /** * Attach the xmpp handlers to callbacks * @public * @returns {void} * @memberof TelephonySipWiseEventHandler */ attachHandlers(): void; /** * Detach the xmpp handlers * @public * @returns {void} * @memberof TelephonySipWiseEventHandler */ detachHandlers(): void; /*************************************************************/ /*************************************************************/ /** * Main handling callback method for received telephony events * @public * @param {any} stanza Received telephony event * @returns {void} * @memberof TelephonySipWiseEventHandler */ onCallserviceMessageReceived(stanza: any): void; /** * Main handling callback method for overflowUpdateMessage events * @public * @param {any} stanza Received overflow event * @returns {void} * @memberof TelephonySipWiseEventHandler */ onOverflowUpdateMessageReceived(stanza: any): void; /** * callback method for user configuation events * @public * @param {any} stanza Received configuration event * @returns {void} * @memberof TelephonySipWiseEventHandler */ onUserConfigurationMessageReceived(stanza: any): void; /** * callback method for user configuation events * @public * @param {any} stanza Received configuration event * @returns {void} * @memberof TelephonySipWiseEventHandler */ onWelcomeServiceMessageReceived(stanza: any): void; /** * callback method for hunting group events * @public * @param {any} stanza Received update event * @returns {void} * @memberof TelephonySipWiseEventHandler */ onhuntingGroupUpdateMessageReceived(stanza: any): void; /** * callback method for hunting group events * @public * @param {any} stanza Received admin update event * @returns {void} * @memberof TelephonySipWiseEventHandler */ onHGAdminUpdateMessageReceived(stanza: any): void; /** * Main handling callback method for onClirMessage events * @public * @param {any} stanza Received clir event * @returns {void} * @memberof TelephonySipWiseEventHandler */ onClirMessageReceived(stanza: any): void; /** * Method onforwardUpdatedMsg * @private * @param {any} forwardUpdatedElem forwardUpdated sub element of received event * @returns {void} * @memberof TelephonySipWiseEventHandler */ private onforwardUpdatedMsg; /** * Method onRoutingUpdatedMsg * @private * @param {any} routingElem [required] xmpp msg, service part * @returns {void} NA * @memberof TelephonySipWiseEventHandler */ private onRoutingUpdatedMsg; /** * Method overflowUpdatedMsg * @private * @param {any} overflowUpdated [required] xmpp msg, service part * @returns {void} NA * @memberof TelephonySipWiseEventHandler */ private overflowUpdatedMsg; /** * Method onCliUpdatedMsg * @private * @param {any} cliUpdatedElt [required] xmpp msg, service part * @returns {void} NA * @memberof TelephonySipWiseEventHandler */ private onCliUpdatedMsg; /** * Method onClirUpdatedMsg * @private * @param {any} clirUpdatedElt [required] xmpp msg, service part * @returns {void} NA * @memberof TelephonySipWiseEventHandler */ private onClirUpdatedMsg; /** * Method onTelephonyEvent * search call elem in eventElem * @private * @param {any} eventElem [required] xmpp msg, event part * @param {string} seqNum [required] messqge sequence number * @async * @returns {Promise} Status promise resolved when the handling is complete * @memberof TelephonySipWiseEventHandler */ private onTelephonyEvent; /** * Method manageAllDevices * loop on all device evt * @private * @param {any} eventElem [required] xmpp msg, event part * @param {string} seqNum [required] messqge sequence number * @async * @returns {Promise} Status promise resolved when the handling is complete * @memberof TelephonySipWiseEventHandler */ private manageAllDevices; /** * Method manageDeviceElem * search leg elem in eventElem * @private * @param {any} deviceElem [required] leg part * @param {string} seqNum [required] messqge sequence number * @returns {Promise} Status promise resolved when the handling is complete * @memberof TelephonySipWiseEventHandler */ private manageDeviceElem; /** * Method manageAllCalls * loop on all calls * @private * @param {any} eventElem [required] xmpp msg, event part * @param {string} seqNum [required] messqge sequence number * @param {any[]} callsToUpdate [required] list of calls to update * @async * @returns {Promise} Status promise resolved when the handling is complete * @memberof TelephonySipWiseEventHandler */ private manageAllCalls; /** * Method manageCallElem * search call elem in eventElem * @private * @param {any} callElem [required] call part * @param {any} eventElem [required] xmpp msg, event part * @param {any} seqNum [required] messqge sequence number * @param {any[]} callsToUpdate [required] list of calls to update * @returns {Promise} Status promise resolved when the handling is complete * @memberof TelephonySipWiseEventHandler */ private manageCallElem; private setCalledParty; /** * Method manageAllLegs * loop on all legs * @private * @param {any} eventElem [required] xmpp msg, event part * @param {string} seqNum [required] messqge sequence number * @param {any[]} callsToUpdate [required] list of calls to update * @async * @returns {Promise} Status promise resolved when the handling is complete * @memberof TelephonySipWiseEventHandler */ private manageAllLegs; /** * Method manageLegElem * search leg elem in eventElem * @private * @param {any} legElem [required] leg part * @param {any} eventElem [required] xmpp msg, event part * @param {string} seqNum [required] messqge sequence number * @param {any[]} callsToUpdate [required] list of calls to update * @async * @returns {Promise} Status promise resolved when the handling is complete * @memberof TelephonySipWiseEventHandler */ private manageLegElem; /** * Method manageAllEndPoints * manage all End points * @private * @param {any} eventElem [required] xmpp msg, event part * @param {string} seqNum [required] messqge sequence number * @param {any[]} callsToUpdate [required] list of calls to update * @async * @returns {Promise} Status promise resolved when the handling is complete * @memberof TelephonySipWiseEventHandler */ private manageAllEndPoints; /** * Method manageEndPointElem * search endPoint elem in eventElem * @private * @param {any} endPointElem [required] the end point * @param {any} eventElem [required] xmpp msg, event part * @param {string} seqNum [required] messqge sequence number * @param {any[]} callsToUpdate [required] list of calls to update * @async * @returns {Promise} Status promise resolved when the handling is complete * @memberof TelephonySipWiseEventHandler */ private manageEndPointElem; /** * Method legElemCreate * @private * @param {any} eventElem [required] xmpp msg, event part * @async * @returns {Promise} Status promise resolved when the handling is complete * @memberof TelephonySipWiseEventHandler */ private legElemCreate; /** * Method legElemUpdate * @private * @param {any} eventElem [required] xmpp msg, event part * @async * @returns {Promise} Status promise resolved when the handling is complete * @memberof TelephonySipWiseEventHandler */ private legElemUpdate; /** * Method endPointElemCreate * @private * @param {any} eventElem [required] xmpp msg, event part * @async * @returns {Promise} Status promise resolved when the handling is complete * @memberof TelephonySipWiseEventHandler */ private endPointElemCreate; /** * Method endPointElemUpdate * update the endPoint * @private * @param {any} eventElem [required] xmpp msg, event part * @async * @returns {Promise} Status promise resolved when the handling is complete * @memberof TelephonySipWiseEventHandler */ private endPointElemUpdate; /** * Method endPointDevicesMng * @private * @param {any} endPointElem [required] xmpp msg endPoint part * @returns {any []} list of devices * @memberof TelephonySipWiseEventHandler */ private endPointDevicesMng; /** * Method endPointContactFromUserIdMng * @private * @param {any} endPointElem [required] xmpp msg endPoint part * @async * @returns {Promise} pomise of contact * @memberof TelephonySipWiseEventHandler */ private endPointContactFromUserIdMng; /*********************************************************************/ /** FAILURE STUFF */ /*********************************************************************/ /** * Method onFailCallEvent * @private * @param {CallRB} call [required] the call * @param {any} failedElem [required] xmpp msg, fail part * @memberof TelephonySipWiseEventHandler */ private onFailCallEvent; /*********************************************************************/ /** PRIVATE UTILITY METHODS */ /*********************************************************************/ /** * Method convLegStateToCallStatus. * conv PCG2 leg state to Call.status * @private * @param {any} legState [required] the leg state * @returns {CallStatus} status * @memberof TelephonySipWiseEventHandler */ convLegStateToCallStatus(legState: any): CallStatus; /** * Method callsetStatusFromLegState * set Call.status from PCG2 leg state * @private * @param {Call} call [required] the call * @param {any} legState [required] the leg state * @param {any} eventElem [required] xmpp msg, event part * @memberof TelephonySipWiseEventHandler */ private callsetStatusFromLegState; /** * Method getCallFromCallId * @private * @param {string} callId [required] the callId * @returns {Call} call * @memberof TelephonySipWiseEventHandler */ private getCallFromCallId; /** * Method getCall * @private * @param {any} elem [required] xmpp msg, elt part * @async * @returns {Promise} Promise resolved with the found call * @memberof TelephonySipWiseEventHandler */ private getCall; /** * Method getOrCreateCall * @private * @param {string} callId [required] the call Id * @param {any} legId [required] the leg Id * @async * @returns {Promise} Promise resolved with the found or created call * @memberof TelephonySipWiseEventHandler */ private getOrCreateCall; /** * Method sendCallUpdateEvent * @private * @param {Call} call [required] the call to update * @param {any} elem [required] the xmpp element contening the evt info * @returns {void} NA * @memberof TelephonySipWiseEventHandler */ private sendCallUpdateEvent; /** * Method extractInfoEvent * @private * @param {any} elem [required] the xmpp element * @returns {any} return the info evt * @memberof TelephonySipWiseEventHandler */ private extractInfoEvent; /** * Method callsUpdate * @private * @param {Call} callsToUpdate [required] the call to update * @returns {void} NA * @memberof TelephonySipWiseEventHandler */ private callsUpdate; /** * Method computeCallRelevancy * @private * @param {string} deviceId [required] the device Id * @param {string} callId optional call id * @returns {boolean} true if device Id is the current used device * @memberof TelephonySipWiseEventHandler */ private computeCallRelevancy; /** * Method checkCallRelevancy * @private * @param {string} callId [required] the callId * @returns {boolean} true if call is relevant * @memberof TelephonySipWiseEventHandler */ private checkCallRelevancy; /** * Method analyzeContactChange * @private * @param {string} jid Jabber identifier of other party * @param {string} phoneNumber Phone number of other party * @param {Call} call [required] the call to update * @returns {any} Object:{ updateContactToBeDone : boolean, searchOutlookToBeDone :boolean} * updateContactToBeDone true if the contact has to be updated in the call (by setContact) * searchOutlookToBeDone true if an outlook search has to be performed to resolve call identity * @memberof TelephonySipWiseEventHandler */ private analyzeContactChange; } //# sourceMappingURL=telephonySipWiseEventHandler.d.ts.map