Problem: running cron script . ~/.bashrc && $EG_BIN_DIR/thaw_expired_frozen_holds.srfsh and getting Received no data from server With my .srfsh.xml set to call on the public.router, I test: [vbush@commons-ctlt-hyperv ~]$ /openils/bin/srfsh srfsh# request open-ils.cstore opensrf.system.echo "Testing" Received no data from server ------------------------------------ Request Time in seconds: 0.001605 ------------------------------------ srfsh# exit In srfsh.log: srfsh 2012-03-29 09:25:07 [INFO:17094:osrf_system.c:628:] Bootstrapping system with domain public.localhost, port 5222, and unixpath (none) srfsh 2012-03-29 09:25:09 [DEBG:17094:osrf_app_session.c:486:] open-ils.cstore session is stateless srfsh 2012-03-29 09:25:09 [DEBG:17094:osrf_app_session.c:497:] Building a new client session with id [open-ils.cstore] [1333031109.789956.133303110917094] srfsh 2012-03-29 09:25:09 [DEBG:17094:osrf_app_session.c:1044:1333031107170940] AppSession in queue_wait with timeout 0 srfsh 2012-03-29 09:25:09 [DEBG:17094:osrf_app_session.c:759:1333031107170940] App Session [open-ils.cstore] [1333031109.789956.133303110917094] resetting remote id to router@public.localhost/open-ils.cstore srfsh 2012-03-29 09:25:09 [INFO:17094:osrf_app_session.c:991:1333031107170940] [open-ils.cstore] sent 174 bytes of data to router@public.localhost/open-ils.cstore srfsh 2012-03-29 09:25:09 [DEBG:17094:osrf_app_session.c:994:1333031107170940] Sent: [{"__c":"osrfMessage","__p":{"threadTrace":"1","locale":"en-US","type":"REQUEST","payload":{"__c":"osrfMethod","__p":{"method":"opensrf.system.echo","params":["Testing"]}}}}] srfsh 2012-03-29 09:25:09 [DEBG:17094:osrf_app_session.c:714:1333031107170940] Pushing [1] onto request queue for session [open-ils.cstore] [1333031109.789956.133303110917094] srfsh 2012-03-29 09:25:09 [DEBG:17094:osrf_app_session.c:275:1333031107170940] In app_request receive with remaining time [120] srfsh 2012-03-29 09:25:09 [DEBG:17094:osrf_app_session.c:1044:1333031107170940] AppSession in queue_wait with timeout 0 srfsh 2012-03-29 09:25:09 [DEBG:17094:osrf_app_session.c:1044:1333031107170940] AppSession in queue_wait with timeout 120 srfsh 2012-03-29 09:25:09 [INFO:17094:transport_session.c:649:1333031107170940] Received message with type cancel and code 503 srfsh 2012-03-29 09:25:09 [DEBG:17094:osrf_stack.c:44:1333031107170940] Received message from transport code from router@public.localhost/open-ils.cstore srfsh 2012-03-29 09:25:09 [DEBG:17094:osrf_stack.c:87:1333031107170940] Transport handler received new message from router@public.localhost/open-ils.cstore to opensrf@public.localhost/_commons-ctlt-hyperv.ilstu.edu_1333031107.503056_17094 with body [{"__c":"osrfMessage","__p":{"threadTrace":"1","locale":"en-US","type":"REQUEST","payload":{"__c":"osrfMethod","__p":{"method":"opensrf.system.echo","params":["Testing"]}}}}] srfsh 2012-03-29 09:25:09 [DEBG:17094:osrf_stack.c:123:1333031107170940] We received 1 messages from router@public.localhost/open-ils.cstore srfsh 2012-03-29 09:25:09 [WARN:17094:osrf_stack.c:134:1333031107170940] !!! Received Jabber layer error message srfsh 2012-03-29 09:25:09 [WARN:17094:osrf_stack.c:144:1333031107170940] * Jabber Error is for top level remote id [router@public.localhost/open-ils.cstore], no one to send my message to! Cutting request short... srfsh 2012-03-29 09:25:09 [INFO:17094:osrf_stack.c:159:1333031107170940] Message processing duration 0.000041 srfsh 2012-03-29 09:25:09 [DEBG:17094:osrf_stack.c:162:1333031107170940] after msg delete srfsh 2012-03-29 09:25:09 [ERR :17094:osrf_app_session.c:302:1333031107170940] Transport error in recv() srfsh 2012-03-29 09:25:09 [DEBG:17094:osrf_app_session.c:1063:1333031107170940] AppSession [open-ils.cstore] [1333031109.789956.133303110917094] destroying self and deleting requests srfsh 2012-03-29 09:25:12 [DEBG:17094:socket_bundle.c:482:1333031107170940] removing socket 3 Results from settings_tester.pl: 1..5 ok 1 - use OpenSRF::Utils::Config; ok 2 - use UNIVERSAL::require; ok 3 - use Getopt::Long; ok 4 - use MARC::Record; ok 5 - use Net::Domain; LWP::UserAgent version 5.833 XML::LibXML version 1.70 XML::LibXML::XPathContext version 1.70 XML::LibXSLT version 1.70 Net::Server::PreFork version 0.99 Cache::Memcached version 1.28 Class::DBI version 3.0.17 Class::DBI::AbstractSearch version 0.07 Template version 2.22 DBD::Pg version 2.15.1 Net::Z3950::ZOOM version 1.28 MARC::Record version 2.0.3 MARC::Charset version 1.33 MARC::File::XML version 0.93 Text::Aspell version 0.09 CGI version 3.51 DateTime::TimeZone version 1.08 DateTime version 0.53 DateTime::Format::ISO8601 version 0.07 DateTime::Format::Mail version 0.3001 Unix::Syslog version 1.1 GD::Graph3d version 0.63 JavaScript::SpiderMonkey version 0.20 Log::Log4perl version 1.30 Email::Send version 2.198 Text::CSV version 1.21 Text::CSV_XS version 0.86 Spreadsheet::WriteExcel::Big version 2.37 Tie::IxHash version 1.21 Parse::RecDescent version 1.965001 SRU version 0.99 JSON::XS version 2.32 UUID::Tiny version 1.03 Please install Business::CreditCard::Object Net::Z3950::Simple2ZOOM version 1.04 Checking /openils/conf/opensrf_core.xml for Evergreen services: * OK: Found a public Evergreen service in /openils/conf/opensrf_core.xml Checking Jabber connection for user opensrf, domain private.localhost * Jabber successfully connected Checking Jabber connection for user opensrf, domain public.localhost * Jabber successfully connected Checking Jabber connection for user router, domain public.localhost * Jabber successfully connected Checking Jabber connection for user router, domain private.localhost * Jabber successfully connected Checking database connections * /opensrf/default/reporter/setup :: Successfully connected to database dbi:Pg:dbname=evergreen;host=localhost;port=5432 * Database has the expected server encoding UTF8. * /opensrf/default/apps/open-ils.storage/app_settings/databases :: Successfully connected to database dbi:Pg:dbname=evergreen;host=localhost;port=5432 * Database has the expected server encoding UTF8. * /opensrf/default/apps/open-ils.cstore/app_settings :: Successfully connected to database dbi:Pg:dbname=evergreen;host=localhost;port=5432 * Database has the expected server encoding UTF8. * /opensrf/default/apps/open-ils.pcrud/app_settings :: Successfully connected to database dbi:Pg:dbname=evergreen;host=localhost;port=5432 * Database has the expected server encoding UTF8. * /opensrf/default/apps/open-ils.reporter-store/app_settings :: Successfully connected to database dbi:Pg:dbname=evergreen;host=localhost;port=5432 * Database has the expected server encoding UTF8. Checking database drivers to ensure matches * OK SIP from telephony section. * OK SIP from telephony section. * OK: Pg language is undefined for reporter base configuration * OK: Pg language is undefined for reporter base configuration * OK: Pg language is perl in /opensrf/default/apps/open-ils.storage/language * OK: pgsql language is C in /opensrf/default/apps/open-ils.cstore/language * OK: pgsql language is C in /opensrf/default/apps/open-ils.pcrud/language * OK: pgsql language is C in /opensrf/default/apps/open-ils.qstore/language * OK: pgsql language is C in /opensrf/default/apps/open-ils.reporter-store/language Checking postgresql version psql (PostgreSQL) 9.0.6 contains support for command-line editing Checking libdbi and libdbi-drivers libdbdpgsql.so was not found in /usr/local/libdbi/dbd/ We have found that system packages don't link against libdbi.so; therefore, we strongly recommend compiling libdbi and libdbi-drivers from source. Checking hostname * OK: found hostname 'localhost' in section of opensrf.xml NOTE: Ignore the error about libdbi drivers; it's actually okay, but that doesn't test properly on CentOS. ==================================================================== 2nd test: I stopped all the opensrf processes (osrf_ctl.sh -l -a stop_all), edited ejabberd.cfg to increase the max_stanza_size up from the requested 2000000 to 20000000. Restarted ejabberd, restarted osrf_ctl.sh processes. $ /openils/bin/srfsh srfsh# request open-ils.cstore opensrf.system.echo "Testing" Received no data from server ------------------------------------ Request Time in seconds: 0.002489 ------------------------------------ srfsh# exit From srfsh.log: srfsh 2012-03-29 10:01:38 [INFO:17661:osrf_system.c:628:] Bootstrapping system with domain public.localhost, port 5222, and unixpath (none) srfsh 2012-03-29 10:01:50 [DEBG:17661:osrf_app_session.c:486:] open-ils.cstore session is stateless srfsh 2012-03-29 10:01:50 [DEBG:17661:osrf_app_session.c:497:] Building a new client session with id [open-ils.cstore] [1333033310.191857.133303331017661] srfsh 2012-03-29 10:01:50 [DEBG:17661:osrf_app_session.c:1044:1333033298176610] AppSession in queue_wait with timeout 0 srfsh 2012-03-29 10:01:50 [DEBG:17661:osrf_app_session.c:759:1333033298176610] App Session [open-ils.cstore] [1333033310.191857.133303331017661] resetting remote id to router@public.localhost/open-ils.cstore srfsh 2012-03-29 10:01:50 [INFO:17661:osrf_app_session.c:991:1333033298176610] [open-ils.cstore] sent 174 bytes of data to router@public.localhost/open-ils.cstore srfsh 2012-03-29 10:01:50 [DEBG:17661:osrf_app_session.c:994:1333033298176610] Sent: [{"__c":"osrfMessage","__p":{"threadTrace":"1","locale":"en-US","type":"REQUEST","payload":{"__c":"osrfMethod","__p":{"method":"opensrf.system.echo","params":["Testing"]}}}}] srfsh 2012-03-29 10:01:50 [DEBG:17661:osrf_app_session.c:714:1333033298176610] Pushing [1] onto request queue for session [open-ils.cstore] [1333033310.191857.133303331017661] srfsh 2012-03-29 10:01:50 [DEBG:17661:osrf_app_session.c:275:1333033298176610] In app_request receive with remaining time [120] srfsh 2012-03-29 10:01:50 [DEBG:17661:osrf_app_session.c:1044:1333033298176610] AppSession in queue_wait with timeout 0 srfsh 2012-03-29 10:01:50 [DEBG:17661:osrf_app_session.c:1044:1333033298176610] AppSession in queue_wait with timeout 120 srfsh 2012-03-29 10:01:50 [INFO:17661:transport_session.c:649:1333033298176610] Received message with type cancel and code 503 srfsh 2012-03-29 10:01:50 [DEBG:17661:osrf_stack.c:44:1333033298176610] Received message from transport code from router@public.localhost/open-ils.cstore srfsh 2012-03-29 10:01:50 [DEBG:17661:osrf_stack.c:87:1333033298176610] Transport handler received new message from router@public.localhost/open-ils.cstore to opensrf@public.localhost/_commons-ctlt-hyperv.ilstu.edu_1333033298.990145_17661 with body [{"__c":"osrfMessage","__p":{"threadTrace":"1","locale":"en-US","type":"REQUEST","payload":{"__c":"osrfMethod","__p":{"method":"opensrf.system.echo","params":["Testing"]}}}}] srfsh 2012-03-29 10:01:50 [DEBG:17661:osrf_stack.c:123:1333033298176610] We received 1 messages from router@public.localhost/open-ils.cstore srfsh 2012-03-29 10:01:50 [WARN:17661:osrf_stack.c:134:1333033298176610] !!! Received Jabber layer error message srfsh 2012-03-29 10:01:50 [WARN:17661:osrf_stack.c:144:1333033298176610] * Jabber Error is for top level remote id [router@public.localhost/open-ils.cstore], no one to send my message to! Cutting request short... srfsh 2012-03-29 10:01:50 [INFO:17661:osrf_stack.c:159:1333033298176610] Message processing duration 0.000076 srfsh 2012-03-29 10:01:50 [DEBG:17661:osrf_stack.c:162:1333033298176610] after msg delete srfsh 2012-03-29 10:01:50 [ERR :17661:osrf_app_session.c:302:1333033298176610] Transport error in recv() srfsh 2012-03-29 10:01:50 [DEBG:17661:osrf_app_session.c:1063:1333033298176610] AppSession [open-ils.cstore] [1333033310.191857.133303331017661] destroying self and deleting requests srfsh 2012-03-29 10:01:56 [DEBG:17661:socket_bundle.c:482:1333033298176610] removing socket 3 Update: request for memory size on system: $ free total used free shared buffers cached Mem: 1029132 1012136 16996 0 72212 92252 -/+ buffers/cache: 847672 181460 Swap: 2064376 28752 2035624 ============================================= Contents of /etc/ejabberd/ejabberd.cfg: %%% %%% ejabberd configuration file %%% %%%' %%% The parameters used in this configuration file are explained in more detail %%% in the ejabberd Installation and Operation Guide. %%% Please consult the Guide in case of doubts, it is included with %%% your copy of ejabberd, and is also available online at %%% http://www.process-one.net/en/ejabberd/docs/ %%% This configuration file contains Erlang terms. %%% In case you want to understand the syntax, here are the concepts: %%% %%% - The character to comment a line is % %%% %%% - Each term ends in a dot, for example: %%% override_global. %%% %%% - A tuple has a fixed definition, its elements are %%% enclosed in {}, and separated with commas: %%% {loglevel, 4}. %%% %%% - A list can have as many elements as you want, %%% and is enclosed in [], for example: %%% [http_poll, web_admin, tls] %%% %%% - A keyword of ejabberd is a word in lowercase. %%% Strings are enclosed in "" and can contain spaces, dots, ... %%% {language, "en"}. %%% {ldap_rootdn, "dc=example,dc=com"}. %%% %%% - This term includes a tuple, a keyword, a list, and two strings: %%% {hosts, ["jabber.example.net", "im.example.com"]}. %%% %%%. ======================= %%%' OVERRIDE STORED OPTIONS %% %% Override the old values stored in the database. %% %% %% Override global options (shared by all ejabberd nodes in a cluster). %% %%override_global. %% %% Override local options (specific for this particular ejabberd node). %% %%override_local. %% %% Remove the Access Control Lists before new ones are added. %% %%override_acls. %%%. ========= %%%' DEBUGGING %% %% loglevel: Verbosity of log files generated by ejabberd. %% 0: No ejabberd log at all (not recommended) %% 1: Critical %% 2: Error %% 3: Warning %% 4: Info %% 5: Debug %% {loglevel, 4}. %% %% watchdog_admins: Only useful for developers: if an ejabberd process %% consumes a lot of memory, send live notifications to these XMPP %% accounts. %% %%{watchdog_admins, ["bob@example.com"]}. %%%. ================ %%%' SERVED HOSTNAMES %% %% hosts: Domains served by ejabberd. %% You can define one or several, for example: %% {hosts, ["example.net", "example.com", "example.org"]}. %% {hosts, ["localhost", "private.localhost", "public.localhost"]}. %% %% route_subdomains: Delegate subdomains to other XMPP servers. %% For example, if this ejabberd serves example.org and you want %% to allow communication with an XMPP server called im.example.org. %% %%{route_subdomains, s2s}. %%%. =============== %%%' LISTENING PORTS %% %% listen: The ports ejabberd will listen on, which service each is handled %% by and what options to start it with. %% {listen, [ {5222, ejabberd_c2s, [ %% %% If TLS is compiled in and you installed a SSL %% certificate, specify the full path to the %% file and uncomment this line: %% %%{certfile, "/etc/ejabberd/ejabberd.pem"}, starttls, {access, c2s}, {shaper, c2s_shaper}, {max_stanza_size, 20000000} ]}, %% %% To enable the old SSL connection method on port 5223: %% %%{5223, ejabberd_c2s, [ %% {access, c2s}, %% {shaper, c2s_shaper}, %% {certfile, "/etc/ejabberd/ejabberd.pem"}, tls, %% {max_stanza_size, 20000000} %% ]}, {5269, ejabberd_s2s_in, [ {shaper, s2s_shaper}, {max_stanza_size, 20000000} ]}, %% %% ejabberd_service: Interact with external components (transports, ...) %% %%{8888, ejabberd_service, [ %% {access, all}, %% {shaper_rule, fast}, %% {ip, {127, 0, 0, 1}}, %% {hosts, ["icq.example.org", "sms.example.org"], %% [{password, "secret"}] %% } %% ]}, %% %% ejabberd_stun: Handles STUN Binding requests %% %%{{3478, udp}, ejabberd_stun, []}, {5280, ejabberd_http, [ %%{request_handlers, %% [ %% {["pub", "archive"], mod_http_fileserver} %% ]}, captcha, http_bind, http_poll, %%register, web_admin ]} ]}. %% %% s2s_use_starttls: Enable STARTTLS + Dialback for S2S connections. %% Allowed values are: false optional required required_trusted %% You must specify a certificate file. %% %%{s2s_use_starttls, optional}. %% %% s2s_certfile: Specify a certificate file. %% %%{s2s_certfile, "/etc/ejabberd/ejabberd.pem"}. %% %% domain_certfile: Specify a different certificate for each served hostname. %% %%{domain_certfile, "example.org", "/path/to/example_org.pem"}. %%{domain_certfile, "example.com", "/path/to/example_com.pem"}. %% %% S2S whitelist or blacklist %% %% Default s2s policy for undefined hosts. %% %%{s2s_default_policy, allow}. %% %% Allow or deny communication with specific servers. %% %%{{s2s_host, "goodhost.org"}, allow}. %%{{s2s_host, "badhost.org"}, deny}. %% %% Outgoing S2S options %% %% Preferred address families (which to try first) and connect timeout %% in milliseconds. %% %%{outgoing_s2s_options, [ipv4, ipv6], 10000}. %%%. ============== %%%' AUTHENTICATION %% %% auth_method: Method used to authenticate the users. %% The default method is the internal. %% If you want to use a different method, %% comment this line and enable the correct ones. %% {auth_method, internal}. %% %% Authentication using external script %% Make sure the script is executable by ejabberd. %% %%{auth_method, external}. %%{extauth_program, "/path/to/authentication/script"}. %% %% Authentication using ODBC %% Remember to setup a database in the next section. %% %%{auth_method, odbc}. %% %% Authentication using PAM %% %%{auth_method, pam}. %%{pam_service, "ejabberd"}. %% %% Authentication using LDAP %% %%{auth_method, ldap}. %% %% List of LDAP servers: %%{ldap_servers, ["localhost"]}. %% %% Encryption of connection to LDAP servers: %%{ldap_encrypt, none}. %%{ldap_encrypt, tls}. %% %% Port to connect to on LDAP servers: %%{ldap_port, 389}. %%{ldap_port, 636}. %% %% LDAP manager: %%{ldap_rootdn, "dc=example,dc=com"}. %% %% Password of LDAP manager: %%{ldap_password, "******"}. %% %% Search base of LDAP directory: %%{ldap_base, "dc=example,dc=com"}. %% %% LDAP attribute that holds user ID: %%{ldap_uids, [{"mail", "%u@mail.example.org"}]}. %% %% LDAP filter: %%{ldap_filter, "(objectClass=shadowAccount)"}. %% %% Anonymous login support: %% auth_method: anonymous %% anonymous_protocol: sasl_anon | login_anon | both %% allow_multiple_connections: true | false %% %%{host_config, "public.example.org", [{auth_method, anonymous}, %% {allow_multiple_connections, false}, %% {anonymous_protocol, sasl_anon}]}. %% %% To use both anonymous and internal authentication: %% %%{host_config, "public.example.org", [{auth_method, [internal, anonymous]}]}. %%%. ============== %%%' DATABASE SETUP %% ejabberd by default uses the internal Mnesia database, %% so you do not necessarily need this section. %% This section provides configuration examples in case %% you want to use other database backends. %% Please consult the ejabberd Guide for details on database creation. %% %% MySQL server: %% %%{odbc_server, {mysql, "server", "database", "username", "password"}}. %% %% If you want to specify the port: %%{odbc_server, {mysql, "server", 1234, "database", "username", "password"}}. %% %% PostgreSQL server: %% %%{odbc_server, {pgsql, "server", "database", "username", "password"}}. %% %% If you want to specify the port: %%{odbc_server, {pgsql, "server", 1234, "database", "username", "password"}}. %% %% If you use PostgreSQL, have a large database, and need a %% faster but inexact replacement for "select count(*) from users" %% %%{pgsql_users_number_estimate, true}. %% %% ODBC compatible or MSSQL server: %% %%{odbc_server, "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"}. %% %% Number of connections to open to the database for each virtual host %% %%{odbc_pool_size, 10}. %% %% Interval to make a dummy SQL request to keep the connections to the %% database alive. Specify in seconds: for example 28800 means 8 hours %% %%{odbc_keepalive_interval, undefined}. %%%. =============== %%%' TRAFFIC SHAPERS %% %% The "normal" shaper limits traffic speed to 1000 B/s %% {shaper, normal, {maxrate, 500000}}. %% %% The "fast" shaper limits traffic speed to 50000 B/s %% {shaper, fast, {maxrate, 500000}}. %% %% This option specifies the maximum number of elements in the queue %% of the FSM. Refer to the documentation for details. %% {max_fsm_queue, 1000}. %%%. ==================== %%%' ACCESS CONTROL LISTS %% %% The 'admin' ACL grants administrative privileges to XMPP accounts. %% You can put here as many accounts as you want. %% %%{acl, admin, {user, "aleksey", "localhost"}}. %%{acl, admin, {user, "ermine", "example.org"}}. %% %% Blocked users %% %%{acl, blocked, {user, "baduser", "example.org"}}. %%{acl, blocked, {user, "test"}}. %% %% Local users: don't modify this line. %% {acl, local, {user_regexp, ""}}. %% %% More examples of ACLs %% %%{acl, jabberorg, {server, "jabber.org"}}. %%{acl, aleksey, {user, "aleksey", "jabber.ru"}}. %%{acl, test, {user_regexp, "^test"}}. %%{acl, test, {user_glob, "test*"}}. %% %% Define specific ACLs in a virtual host. %% %%{host_config, "localhost", %% [ %% {acl, admin, {user, "bob-local", "localhost"}} %% ] %%}. %%%. ============ %%%' ACCESS RULES %% Maximum number of simultaneous sessions allowed for a single user: {access, max_user_sessions, [{10000, all}]}. %% Maximum number of offline messages that users can have: {access, max_user_offline_messages, [{5000, admin}, {100, all}]}. %% This rule allows access only for local users: {access, local, [{allow, local}]}. %% Only non-blocked users can use c2s connections: {access, c2s, [{deny, blocked}, {allow, all}]}. %% For C2S connections, all users except admins use the "normal" shaper {access, c2s_shaper, [{none, admin}, {normal, all}]}. %% All S2S connections use the "fast" shaper {access, s2s_shaper, [{fast, all}]}. %% Only admins can send announcement messages: {access, announce, [{allow, admin}]}. %% Only admins can use the configuration interface: {access, configure, [{allow, admin}]}. %% Admins of this server are also admins of the MUC service: {access, muc_admin, [{allow, admin}]}. %% Only accounts of the local ejabberd server can create rooms: {access, muc_create, [{allow, local}]}. %% All users are allowed to use the MUC service: {access, muc, [{allow, all}]}. %% Only accounts on the local ejabberd server can create Pubsub nodes: {access, pubsub_createnode, [{allow, local}]}. %% In-band registration allows registration of any possible username. %% To disable in-band registration, replace 'allow' with 'deny'. {access, register, [{allow, all}]}. %% By default the frequency of account registrations from the same IP %% is limited to 1 account every 10 minutes. To disable, specify: infinity %%{registration_timeout, 600}. %% %% Define specific Access Rules in a virtual host. %% %%{host_config, "localhost", %% [ %% {access, c2s, [{allow, admin}, {deny, all}]}, %% {access, register, [{deny, all}]} %% ] %%}. %%%. ================ %%%' DEFAULT LANGUAGE %% %% language: Default language used for server messages. %% {language, "en"}. %% %% Set a different default language in a virtual host. %% %%{host_config, "localhost", %% [{language, "ru"}] %%}. %%%. ======= %%%' CAPTCHA %% %% Full path to a script that generates the image. %% %%{captcha_cmd, "/usr/lib/ejabberd/priv/bin/captcha.sh"}. %% %% Host for the URL and port where ejabberd listens for CAPTCHA requests. %% %%{captcha_host, "example.org:5280"}. %% %% Limit CAPTCHA calls per minute for JID/IP to avoid DoS. %% %%{captcha_limit, 5}. %%%. ======= %%%' MODULES %% %% Modules enabled in all ejabberd virtual hosts. %% {modules, [ {mod_adhoc, []}, {mod_announce, [{access, announce}]}, % recommends mod_adhoc {mod_blocking,[]}, % requires mod_privacy {mod_caps, []}, {mod_configure,[]}, % requires mod_adhoc {mod_disco, []}, %%{mod_echo, [{host, "echo.localhost"}]}, {mod_irc, []}, {mod_http_bind, []}, %%{mod_http_fileserver, [ %% {docroot, "/var/www"}, %% {accesslog, "/var/log/ejabberd/access.log"} %% ]}, {mod_last, []}, {mod_muc, [ %%{host, "conference.@HOST@"}, {access, muc}, {access_create, muc_create}, {access_persistent, muc_create}, {access_admin, muc_admin} ]}, %%{mod_muc_log,[]}, %% {mod_offline, [{access_max_user_messages, max_user_offline_messages}]}, {mod_ping, []}, %%{mod_pres_counter,[{count, 5}, {interval, 60}]}, {mod_privacy, []}, {mod_private, []}, %%{mod_proxy65,[]}, {mod_pubsub, [ {access_createnode, pubsub_createnode}, {ignore_pep_from_offline, true}, % reduces resource comsumption, but XEP incompliant %%{ignore_pep_from_offline, false}, % XEP compliant, but increases resource comsumption {last_item_cache, false}, {plugins, ["flat", "hometree", "pep"]} % pep requires mod_caps ]}, {mod_register, [ %% %% Protect In-Band account registrations with CAPTCHA. %% %%{captcha_protected, true}, %% %% Set the minimum informational entropy for passwords. %% %%{password_strength, 32}, %% %% After successful registration, the user receives %% a message with this subject and body. %% {welcome_message, {"Welcome!", "Hi.\nWelcome to this XMPP server."}}, %% %% When a user registers, send a notification to %% these XMPP accounts. %% %%{registration_watchers, ["admin1@example.org"]}, %% %% Only clients in the server machine can register accounts %% {ip_access, [{allow, "127.0.0.0/8"}, {deny, "0.0.0.0/0"}]}, %% %% Local c2s or remote s2s users cannot register accounts %% %%{access_from, deny}, {access, register} ]}, %%{mod_register_web, [ %% %% When a user registers, send a notification to %% these XMPP accounts. %% %%{registration_watchers, ["admin1@example.org"]} %% ]}, {mod_roster, []}, %%{mod_service_log,[]}, {mod_shared_roster,[]}, {mod_stats, []}, {mod_time, []}, {mod_vcard, []}, {mod_version, []} ]}. %% %% Enable modules with custom options in a specific virtual host %% %%{host_config, "localhost", %% [{{add, modules}, %% [ %% {mod_echo, [{host, "mirror.localhost"}]} %% ] %% } %% ]}. %%%. %%%' %%% $Id$ %%% Local Variables: %%% mode: erlang %%% End: %%% vim: set filetype=erlang tabstop=8 foldmarker=%%%',%%%. foldmethod=marker: