// Desactivated option because it is a preference one, so it impacted every ressources. // DataStoreType.NoStoreBotSide The messages are not stored on loggued-in Bot's history, but are stored on the other side. So the contact kept the messages exchanged with bot in his history. // NoStoreBotSide = "nostorebotside", import {LEVELSNAMES} from "../common/LevelLogs.js"; /** * used in SDK parameter "messagesDataStore": DataStoreType.NoStore, Parameter to override the storeMessages parameter of the SDK to define the behaviour of the storage of the messages (Enum DataStoreType in lib/config/config , default value "DataStoreType.UsestoreMessagesField" so it follows the storeMessages behaviour) * DataStoreType.NoStore Tell the server to NOT store the messages for delay distribution or for history of the bot and the contact. * DataStoreType.NoPermanentStore Tell the server to NOT store the messages for history of the bot and the contact. But being stored temporarily as a normal part of delivery (e.g. if the recipient is offline at the time of sending). * DataStoreType.StoreTwinSide The messages are fully stored. * DataStoreType.UsestoreMessagesField to follow the storeMessages SDK's parameter behaviour. * DataStoreType.Store Offline storage and Message Archive Management (XEP-0313) [4] can define their own rules on what messages to store and usually only store messages that contain a body element. However a sender may want to indicate that a message is worth storing even though it might not match those rules. * @public * @enum {string} * @readonly */ enum DataStoreType { /** Tell the server to NOT store the messages for delay distribution or for history of the bot and the contact. */ NoStore = "no-store", /** Tell the server to NOT store the messages for history of the bot and the contact. But being stored temporarily as a normal part of delivery (e.g. if the recipient is offline at the time of sending). */ NoPermanentStore = "no-permanent-store", /** The messages are fully stored. */ StoreTwinSide = "storetwinside", /** To follow the storeMessages SDK's parameter behaviour. */ UsestoreMessagesField = "OldstoreMessagesUsed", /** * Offline storage and Message Archive Management (XEP-0313) [4] can define their own rules on what messages to store and usually only store messages that contain a body element. * However a sender may want to indicate that a message is worth storing even though it might not match those rules * (e.g. an encrypted message that carries the payload outside the body element). Such a message can be marked with a hint. * */ Store = "store" } enum UrgencyType { /** * Urgent message * @type {UrgencyType.HIGH} */ HIGH = 'high', /** * important message * @type {UrgencyType.MIDDLE} */ MIDDLE = 'middle', /** * information message * @type {UrgencyType.LOW} */ LOW = 'low', /** * standard message (null/undefined value is also treated as a standard message) * @type {UrgencyType.STANDARD} */ STANDARD = 'std' } let conf = { "sandbox": { "http": { "host": "sandbox.openrainbow.com", "port": "443", "protocol": "https", }, "xmpp": { "host": "sandbox.openrainbow.com", "port": "443", "protocol": "wss", "timeBetweenXmppRequests": "20", "raiseLowLevelXmppInEvent": false, "raiseLowLevelXmppOutReq": false, "maxIdleTimer": 15000, "maxPingAnswerTimer": 10000, "xmppRessourceName": undefined, "maxPendingAsyncLockXmppQueue": 10000, "stanzaMaxLength" : 18380, // Max stanza size on server is 18432 }, "s2s": { "hostCallback": "nrock", "locallistenningport": "4000", "expressEngine": undefined }, "rest":{ "useRestAtStartup" : true, "useGotLibForHttp":true, "gotOptions": { "agentOptions": { /** * Keep sockets around in a pool to be used by other requests in the future. Default = false */ "keepAlive": true, // ?: boolean | undefined; /** * When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000. * Only relevant if keepAlive is set to true. */ "keepAliveMsecs": 4302, // ?: number | undefined; /** * Maximum number of sockets to allow per host. Default for Node 0.10 is 5, default for Node 0.12 is Infinity */ "maxSockets": Infinity, // ?: number | undefined; /** * Maximum number of sockets allowed for all hosts in total. Each request will use a new socket until the maximum is reached. Default: Infinity. */ "maxTotalSockets": Infinity, // ?: number | undefined; /** * Maximum number of sockets to leave open in a free state. Only relevant if keepAlive is set to true. Default = 256. */ "maxFreeSockets": 1002, // ?: number | undefined; /** * Socket timeout in milliseconds. This will set the timeout after the socket is connected. */ "timeout": 120002, // ?: number | undefined; /** * If not false, the server certificate is verified against the list of supplied CAs. Default: true. */ "rejectUnauthorized": true }, "gotRequestOptions": { "timeout": { // This object describes the maximum allowed time for particular events. "lookup": 5252, // lookup: 100, Starts when a socket is assigned. Ends when the hostname has been resolved. "connect": 10252, // connect: 50, Starts when lookup completes. Ends when the socket is fully connected. "secureConnect": 10252, // secureConnect: 50, Starts when connect completes. Ends when the handshake process completes. "socket": 120002, // socket: 1000, Starts when the socket is connected. Resets when new data is transferred. "send": 120002, // send: 10000, // Starts when the socket is connected. Ends when all data have been written to the socket. "response": 120002 // response: 1000 // Starts when request has been flushed. Ends when the headers are received. } } // */ } } }, "official": { "http": { "host": "openrainbow.com", "port": "443", "protocol": "https", }, "xmpp": { "host": "openrainbow.com", "port": "443", "protocol": "wss", "timeBetweenXmppRequests": "20", "raiseLowLevelXmppInEvent": false, "raiseLowLevelXmppOutReq": false, "maxIdleTimer": 15000, "maxPingAnswerTimer": 10000, "xmppRessourceName": undefined, "maxPendingAsyncLockXmppQueue": 10000, "stanzaMaxLength" : 18380, // Max stanza size on server is 18432 }, "s2s": { "hostCallback": "nrock", "locallistenningport": "4000", "expressEngine": undefined }, "rest":{ "useRestAtStartup" : true, "useGotLibForHttp": true, "gotOptions": { "agentOptions": { /** * Keep sockets around in a pool to be used by other requests in the future. Default = false */ "keepAlive": true, // ?: boolean | undefined; /** * When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000. * Only relevant if keepAlive is set to true. */ "keepAliveMsecs": 4302, // ?: number | undefined; /** * Maximum number of sockets to allow per host. Default for Node 0.10 is 5, default for Node 0.12 is Infinity */ "maxSockets": Infinity, // ?: number | undefined; /** * Maximum number of sockets allowed for all hosts in total. Each request will use a new socket until the maximum is reached. Default: Infinity. */ "maxTotalSockets": Infinity, // ?: number | undefined; /** * Maximum number of sockets to leave open in a free state. Only relevant if keepAlive is set to true. Default = 256. */ "maxFreeSockets": 1002, // ?: number | undefined; /** * Socket timeout in milliseconds. This will set the timeout after the socket is connected. */ "timeout": 120002, // ?: number | undefined; /** * If not false, the server certificate is verified against the list of supplied CAs. Default: true. */ "rejectUnauthorized": true }, "gotRequestOptions": { "timeout": { // This object describes the maximum allowed time for particular events. "lookup": 5252, // lookup: 100, Starts when a socket is assigned. Ends when the hostname has been resolved. "connect": 10252, // connect: 50, Starts when lookup completes. Ends when the socket is fully connected. "secureConnect": 10252, // secureConnect: 50, Starts when connect completes. Ends when the handshake process completes. "socket": 120002, // socket: 1000, Starts when the socket is connected. Resets when new data is transferred. "send": 120002, // send: 10000, // Starts when the socket is connected. Ends when all data have been written to the socket. "response": 120002 // response: 1000 // Starts when request has been flushed. Ends when the headers are received. } } // */ } } }, "any": { "http": { "host": "", "port": "443", "protocol": "https" }, "xmpp": { "host": "", "port": "443", "protocol": "wss", "timeBetweenXmppRequests": "20", "raiseLowLevelXmppInEvent": false, "raiseLowLevelXmppOutReq": false, "maxIdleTimer": 15000, "maxPingAnswerTimer": 10000, "xmppRessourceName": undefined, "maxPendingAsyncLockXmppQueue": 10000, "stanzaMaxLength" : 18380, // Max stanza size on server is 18432 }, "s2s": { "hostCallback": "nrock", "locallistenningport": "4000", "expressEngine": undefined } , "rest":{ "useRestAtStartup" : true, "useGotLibForHttp": true, "gotOptions": { "agentOptions": { /** * Keep sockets around in a pool to be used by other requests in the future. Default = false */ "keepAlive": true, // ?: boolean | undefined; /** * When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000. * Only relevant if keepAlive is set to true. */ "keepAliveMsecs": 4302, // ?: number | undefined; /** * Maximum number of sockets to allow per host. Default for Node 0.10 is 5, default for Node 0.12 is Infinity */ "maxSockets": Infinity, // ?: number | undefined; /** * Maximum number of sockets allowed for all hosts in total. Each request will use a new socket until the maximum is reached. Default: Infinity. */ "maxTotalSockets": Infinity, // ?: number | undefined; /** * Maximum number of sockets to leave open in a free state. Only relevant if keepAlive is set to true. Default = 256. */ "maxFreeSockets": 1002, // ?: number | undefined; /** * Socket timeout in milliseconds. This will set the timeout after the socket is connected. */ "timeout": 120002, // ?: number | undefined; /** * If not false, the server certificate is verified against the list of supplied CAs. Default: true. */ "rejectUnauthorized": true }, "gotRequestOptions": { "timeout": { // This object describes the maximum allowed time for particular events. "lookup": 5252, // lookup: 100, Starts when a socket is assigned. Ends when the hostname has been resolved. "connect": 10252, // connect: 50, Starts when lookup completes. Ends when the socket is fully connected. "secureConnect": 10252, // secureConnect: 50, Starts when connect completes. Ends when the handshake process completes. "socket": 120002, // socket: 1000, Starts when the socket is connected. Resets when new data is transferred. "send": 120002, // send: 10000, // Starts when the socket is connected. Ends when all data have been written to the socket. "response": 120002 // response: 1000 // Starts when request has been flushed. Ends when the headers are received. } } // */ } } }, "logs": { "path": "/var/tmp/rainbowsdk/", "level": LEVELSNAMES.INFO, "color": false, "enableConsoleLog": true, "enableEventsLogs": false, "enableEncryptedLogs": false, "system-dev": { "internals": false, "http": false }, "zippedArchive": true, "maxSize" : "10m", "maxFiles" : null }, "im": { "sendReadReceipt": true, "messageMaxLength": 16384, // Max stanza size on server is 18432 "sendMessageToConnectedUser": false, "conversationsRetrievedFormat": "small", "storeMessages": true, /* https://xmpp.org/extensions/xep-0334.html#hints : No store : A message containing a hint should not be stored by a server either permanently (as above) or temporarily, e.g. for later delivery to an offline client, or to users not currently present in a chatroom. // */ /* copyMessage: true, /* https://xmpp.org/extensions/xep-0334.html#hints : No copies : Messages with the hint should not be copied to addresses other than the one to which it is addressed, for example through Message Carbons (XEP-0280) [3]. This hint MUST only be included on messages addressed to full JIDs and explicitly does not override the behaviour defined in XMPP IM [1] for handling messages to bare JIDs, which may involve copying to multiple resources, or multiple occupants in a Multi-User Chat (XEP-0045) [6] room. // */ "copyMessage": true, "nbMaxConversations": 15, "rateLimitPerHour": 10000, "messagesDataStore": DataStoreType.UsestoreMessagesField, "autoInitialGetBubbles": true, "autoInitialBubblePresence": true, "maxBubbleJoinInProgress": 10, "autoInitialBubbleFormat": "full", "autoInitialBubbleUnsubscribed": true, "autoLoadConversations": true, "autoLoadConversationHistory": false, "autoLoadContacts": true, "autoInitialLoadContactsInfoBulk": true, "autoLoadCallLog": false, "forceHistoryGetContactFromServer": false, // manage carbon copy https://xmpp.org/extensions/xep-0280.html "enableCarbon": true, "enablesendurgentpushmessages": false, "useMessageEditionAndDeletionV2": true, "storeMessagesInConversation": true, "maxMessagesStoredInConversation": 1000 }, "mode":"xmpp", "concurrentRequests": 1000, "requestsRate": { "useRequestRateLimiter": true, "maxReqByIntervalForRequestRate": 20250, // nb requests during the interval. "intervalForRequestRate": 60, // nb of seconds used for the calcul of the rate limit. "timeoutRequestForRequestRate": 600, // nb seconds Request stay in queue before being rejected if queue is full. }, "intervalBetweenCleanMemoryCache": 1000 * 60 * 60 * 6, // Every 6 hours "debug":true, "permitSearchFromPhoneBook":true, "displayOrder":"firstLast", "testOutdatedVersion": false, "testDNSentry": true, "autoReconnectIgnoreErrors": false, "httpoverxmppserver": false, "servicesToStart" : { "s2s": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._settings); "presence": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._settings); "contacts": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._rest); "conversations" : { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._rest, that._contacts, that._bubbles, that._fileStorage, that._fileServer); "im" : { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._conversations, that._bubbles, that._fileStorage); "profiles" : { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._rest); "groups" : { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._rest); "bubbles": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._rest); "telephony": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._rest, that._contacts, that._bubbles, that._profiles); "channels": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._rest); "admin": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._rest); "fileServer": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._rest, that._fileStorage); "fileStorage": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._rest, that._fileServer, that._conversations); "calllog": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._rest, that._contacts, that._profiles, that._telephony); "favorites": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._rest); "alerts": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._rest); "invitation": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : (that._xmpp, that._rest); "settings": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : ( XMPPService, _rest : RESTService) "webinar": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : ( ) "rbvoice": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : ( ) "httpoverxmpp": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : ( ) "rpcoverxmpp": { "start_up":true, "optional":true, "logEntryParameters":false }, //need services : ( ) "tasks": { "start_up":true, "optional":true, "logEntryParameters":false } //need services : ( ) } }; module.exports.config = conf; //module.exports.OptionsType = OptionsType; module.exports.DataStoreType = DataStoreType; module.exports.UrgencyType = UrgencyType; export {conf as config , DataStoreType, UrgencyType};