sudo apt install ejabberd
ufw allow to any port 5280 proto tcp
ufw allow to any port 5222 proto tcp
ufw allow to any port 5269 proto tcp
ufw allow to any port 7777 proto tcp
sudo nano /etc/ejabberd/ejabberd.yml
##
## hosts: Domains served by ejabberd.
## You can define one or several, for example:
## hosts:
## - "example.net"
## - "example.com"
## - "example.org"
##
hosts:
- "developernote.com"
...
###. ====================
###' ACCESS CONTROL LISTS
acl:
##
## The 'admin' ACL grants administrative privileges to XMPP accounts.
## You can put here as many accounts as you want.
##
admin:
user:
- "admin": "developernote.com"
telnet developernote.com 5280
Now we need a certificate:
port: 5280
ip: "::"
module: ejabberd_http
request_handlers:
"/websocket": ejabberd_http_ws
## "/pub/archive": mod_http_fileserver
web_admin: true
http_bind: true
## register: true
captcha: true
tls: true
certfile: "/etc/ejabberd/ejabberd.pem"
openssl -req -days 1825 -nodes -new -x509 -keyout server.key -out server.cert
cat server.key > ejabberd.pem
cat server.cert >> ejabberd.pem
sudo cp ejabberd.pem /etc/ejabberd/
sudo ejabberdctl change_password admin developernote.com <password>
sudo service ejabberd restart
And then open https://developernote.com:5280/admin/ in a browser:
Adding regular users:
sudo ejabberdctl register <user name> developernote.com <password>
Configuring Miranda on Windows 10
Setting up file transfer
I was able to send text messages, but file transfer did not work. I set up UFW logging:
sudo ufw status verbose
sudo ufw logging on
sudo ls /var/log/ufw*
sudo service rsyslog status
grep -i ufw /var/log/syslog
but did not find some blocked connections. Then I set up the logging to C:\Users\D-Ef\AppData\Roaming\Miranda NG\home\Logs\netlog.txt
in Miranda client:
And when I accepted incoming file I got the following in the log:
===OUT: 332(15) bytes
[20:51:05 4378] [dmitriano] Inflate: Z_OK
[20:51:05 4378] [dmitriano] (ZLIB) Data received
<iq from='brat@developernote.com/Miranda' to='dmitriano@developernote.com/Miranda' xml:lang='en' type='set' id='mir8f6447e7f7f7762c_292'><query xmlns='http://jabber.org/protocol/bytestreams' sid='52761423'><streamhost jid='brat@developernote.com/Miranda' host='192.168.1.6' port='61045'/></query></iq>
===IN: 301(26) bytes
[20:51:05 4378] [dmitriano] recvResult = 301
[20:51:05 4378] [dmitriano] Handling iq id mir8f6447e7f7f7762c_292, type set, from brat@developernote.com/Miranda
[20:51:05 13F4] [dmitriano] bytestream_recv connecting to 192.168.1.6:61045
[20:51:05 13F4] [dmitriano] Connection request to 192.168.1.6:61045 (Flags 0)....
[20:51:05 13F4] [dmitriano] (000000000A862F80) Connecting to server 192.168.1.6:61045....
[20:51:05 4378] [dmitriano] bytesParsed = 301
[20:51:05 13F4] [dmitriano] (000000000A862F80) Connecting to ip 192.168.1.6:61045 ....
[20:51:26 13F4] [dmitriano] w:\miranda-build\src\mir_app\src\netlib_openconn.cpp 707: connect() failed (10060)
[20:51:26 13F4] [dmitriano] bytestream_recv_connection connection failed (10060), try next streamhost
[20:51:26 13F4] [dmitriano] File transfer completed with error
[20:51:26 13F4] [dmitriano] Destroying file transfer session 000000000A76AA10
[20:51:26 13F4] [dmitriano] bytestream_recv_connection session not completed
So Miranda tries to connect to sender’s local IP address that is terribly annoying of course.
Also when I enabled the sounds they did not play:
Other clients
Gajim client determined that the file transfer is disabled:
Does the file transfer require UPnP?
It has ‘Discover services…” page:
Checking UPnP
Downloaded some utility that checks if UPnP enabled:
Probably Windows Media Player Network Sharing Service
should be running: