Greetings all,
I have been getting an ejabberd server setup. I have enabled mod_http_upload, the users are both mobile phone and computer. (conversations, xabber, psi, pidgin, and jitsi).
When I send files from the mobile devices, they upload very quickly to http upload, and the link is given to the other client.
I am unable to send files from any computer to the phones. No option is ever given, or if the option is given, the file transfer fails (logfile below).
Sending from computer to computer works, except on jitsi, where Jitsi > Gajim/Psi/Pidgin, works very slow. I am thinking it is going over p2p.
Does anyone know these clients don't seem to be able to use mod_http_upload? The problem is I can't share files from the computers to the phones..
Error logfile from ejabberd
from {jid,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>}
to {jid,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>}
packet {iq,<<"ac86a">>,set,<<"en">>,{jid,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>},{jid,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>},[{xmlel,<<"si">>,[{<<"xmlns">>,<<"http://jabber.org/protocol/si">>},{<<"profile">>,<<"http://jabber.org/protocol/si/profile/file-transfer">>},{<<"id">>,<<"ft_10f0">>}],[{xmlcdata,<<"\n">>},{xmlel,<<"file">>,[{<<"xmlns">>,<<"http://jabber.org/protocol/si/profile/file-transfer">>},{<<"size">>,<<"5264384">>},{<<"name">>,<<"a10mbFILE2">>}],[{xmlcdata,<<"\n">>},{xmlel,<<"range">>,[],[]},{xmlcdata,<<"\n">>}]},{xmlcdata,<<"\n">>},{xmlel,<<"feature">>,[{<<"xmlns">>,<<"http://jabber.org/protocol/feature-neg">>}],[{xmlcdata,<<"\n">>},{xmlel,<<"x">>,[{<<"xmlns">>,<<"jabber:x:data">>},{<<"type">>,<<"form">>}],[{xmlcdata,<<"\n">>},{xmlel,<<"field">>,[{<<"type">>,<<"list-single">>},{<<"var">>,<<"stream-method">>}],[{xmlcdata,<<"\n">>},{xmlel,<<"option">>,[],[{xmlcdata,<<"\n">>},{xmlel,<<"value">>,[],[{xmlcdata,<<"http://jabber.org/protocol/bytestreams">>}]},{xmlcdata,<<"\n">>}]},{xmlcdata,<<"\n">>},{xmlel,<<"option">>,[],[{xmlcdata,<<"\n">>},{xmlel,<<"value">>,[],[{xmlcdata,<<"http://jabber.org/protocol/ibb">>}]},{xmlcdata,<<"\n">>}]},{xmlcdata,<<"\n">>}]},{xmlcdata,<<"\n">>}]},{xmlcdata,<<"\n">>}]},{xmlcdata,<<"\n">>}]}],#{}}
2017-01-29 14:14:47.845 [debug] <0.655.0>@ejabberd_local:do_route:279 local route
from {jid,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>}
to {jid,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>}
packet {iq,<<"ac86a">>,set,<<"en">>,{jid,<<...>>,...},{jid,...},[...],...}
2017-01-29 14:14:47.846 [debug] <0.655.0>@ejabberd_sm:do_route:516 processing packet to full JID:
{iq,<<"ac86a">>,set,<<"en">>,
{jid,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>,
<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>},
{jid,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>,<<"ph">>,
<<"SOME-DOMAIN.ORG">>,<<"phone">>},
[{xmlel,<<"si">>,
[{<<"xmlns">>,<<"http://jabber.org/protocol/si">>},
{<<"profile">>,
<<"http://jabber.org/protocol/si/profile/file-transfer">>},
{<<"id">>,<<"ft_10f0">>}],
[{xmlcdata,<<"\n">>},
{xmlel,<<"file">>,
[{<<"xmlns">>,
<<"http://jabber.org/protocol/si/profile/file-transfer">>},
{<<"size">>,<<"5264384">>},
{<<"name">>,<<"a10mbFILE2">>}],
[{xmlcdata,<<"\n">>},
{xmlel,<<"range">>,[],[]},
{xmlcdata,<<"\n">>}]},
{xmlcdata,<<"\n">>},
{xmlel,<<"feature">>,
[{<<"xmlns">>,<<"http://jabber.org/protocol/feature-neg">>}],
[{xmlcdata,<<"\n">>},
{xmlel,<<"x">>,
[{<<"xmlns">>,<<"jabber:x:data">>},{<<"type">>,<<"form">>}],
[{xmlcdata,<<"\n">>},
{xmlel,<<"field">>,
[{<<"type">>,<<"list-single">>},
{<<"var">>,<<"stream-method">>}],
[{xmlcdata,<<"\n">>},
{xmlel,<<"option">>,[],
[{xmlcdata,<<"\n">>},
{xmlel,<<"value">>,[],
[{xmlcdata,
<<"http://jabber.org/protocol/bytestreams">>}]},
{xmlcdata,<<"\n">>}]},
{xmlcdata,<<"\n">>},
{xmlel,<<"option">>,[],
[{xmlcdata,<<"\n">>},
{xmlel,<<"value">>,[],
[{xmlcdata,
<<"http://jabber.org/protocol/ibb">>}]},
{xmlcdata,<<"\n">>}]},
{xmlcdata,<<"\n">>}]},
{xmlcdata,<<"\n">>}]},
{xmlcdata,<<"\n">>}]},
{xmlcdata,<<"\n">>}]}],
#{}}
2017-01-29 14:14:47.847 [debug] <0.655.0>@ejabberd_sm:do_route:537 sending to process <0.791.0>:
{iq,<<"ac86a">>,set,<<"en">>,
{jid,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>,
<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>},
{jid,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>,<<"ph">>,
<<"SOME-DOMAIN.ORG">>,<<"phone">>},
[{xmlel,<<"si">>,
[{<<"xmlns">>,<<"http://jabber.org/protocol/si">>},
{<<"profile">>,
<<"http://jabber.org/protocol/si/profile/file-transfer">>},
{<<"id">>,<<"ft_10f0">>}],
[{xmlcdata,<<"\n">>},
{xmlel,<<"file">>,
[{<<"xmlns">>,
<<"http://jabber.org/protocol/si/profile/file-transfer">>},
{<<"size">>,<<"5264384">>},
{<<"name">>,<<"a10mbFILE2">>}],
[{xmlcdata,<<"\n">>},
{xmlel,<<"range">>,[],[]},
{xmlcdata,<<"\n">>}]},
{xmlcdata,<<"\n">>},
{xmlel,<<"feature">>,
[{<<"xmlns">>,<<"http://jabber.org/protocol/feature-neg">>}],
[{xmlcdata,<<"\n">>},
{xmlel,<<"x">>,
[{<<"xmlns">>,<<"jabber:x:data">>},{<<"type">>,<<"form">>}],
[{xmlcdata,<<"\n">>},
{xmlel,<<"field">>,
[{<<"type">>,<<"list-single">>},
{<<"var">>,<<"stream-method">>}],
[{xmlcdata,<<"\n">>},
{xmlel,<<"option">>,[],
[{xmlcdata,<<"\n">>},
{xmlel,<<"value">>,[],
[{xmlcdata,
<<"http://jabber.org/protocol/bytestreams">>}]},
{xmlcdata,<<"\n">>}]},
{xmlcdata,<<"\n">>},
{xmlel,<<"option">>,[],
[{xmlcdata,<<"\n">>},
{xmlel,<<"value">>,[],
[{xmlcdata,
<<"http://jabber.org/protocol/ibb">>}]},
{xmlcdata,<<"\n">>}]},
{xmlcdata,<<"\n">>}]},
{xmlcdata,<<"\n">>}]},
{xmlcdata,<<"\n">>}]},
{xmlcdata,<<"\n">>}]}],
#{}}
2017-01-29 14:14:47.847 [debug] <0.791.0>@mod_client_state:filter_other:211 Won't add stanza for ANDROID-PHONE@SOME-DOMAIN.ORG/phone to CSI queue
2017-01-29 14:14:47.847 [debug] <0.791.0>@ejabberd_c2s:send_text:1629 Send XML on stream = <<"<iq xml:lang='en' to='ANDROID-PHONE@SOME-DOMAIN.ORG/phone' from='COMPUTER-PSI@SOME-DOMAIN.ORG/COMPUTER' type='set' id='ac86a'><si xmlns='http://jabber.org/protocol/si' profile='http://jabber.org/protocol/si/profile/file-transfer' id='ft_10f0'>\n<file xmlns='http://jabber.org/protocol/si/profile/file-transfer' size='5264384' name='a10mbFILE2'>\n<range/>\n</file>\n<feature xmlns='http://jabber.org/protocol/feature-neg'>\n<x xmlns='jabber:x:data' type='form'>\n<field type='list-single' var='stream-method'>\n<option>\n<value>http://jabber.org/protocol/bytestreams</value>\n</option>\n<option>\n<value>http://jabber.org/protocol/ibb</value>\n</option>\n</field>\n</x>\n</feature>\n</si></iq>">>
2017-01-29 14:14:47.847 [debug] <0.791.0>@ejabberd_c2s:send_text:1629 Send XML on stream = <<"<r xmlns='urn:xmpp:sm:3'/>">>
2017-01-29 14:14:48.369 [debug] <0.790.0>@ejabberd_receiver:process_data:284 Received XML on stream = <<"<iq from=\"ANDROID-PHONE@SOME-DOMAIN.ORG/phone\" id=\"ac86a\" to=\"COMPUTER-PSI@SOME-DOMAIN.ORG/COMPUTER\" type=\"error\"><error type=\"cancel\"><feature-not-implemented xmlns=\"urn:ietf:params:xml:ns:xmpp-stanzas\"/></error></iq>">>
2017-01-29 14:14:48.369 [debug] <0.791.0>@ejabberd_router:do_route:392 route
from {jid,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>}
to {jid,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>}
packet {iq,<<"ac86a">>,error,<<"en">>,{jid,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>},{jid,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>},[{xmlel,<<"error">>,[{<<"type">>,<<"cancel">>}],[{xmlel,<<"feature-not-implemented">>,[{<<"xmlns">>,<<"urn:ietf:params:xml:ns:xmpp-stanzas">>}],[]}]}],#{}}
2017-01-29 14:14:48.369 [debug] <0.791.0>@ejabberd_local:do_route:279 local route
from {jid,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>}
to {jid,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>}
packet {iq,<<"ac86a">>,error,<<"en">>,{jid,<<...>>,...},{jid,...},[...],...}
2017-01-29 14:14:48.369 [debug] <0.791.0>@ejabberd_sm:do_route:516 processing packet to full JID:
{iq,<<"ac86a">>,error,<<"en">>,
{jid,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>,<<"ph">>,
<<"SOME-DOMAIN.ORG">>,<<"phone">>},
{jid,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>,
<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>},
[{xmlel,<<"error">>,
[{<<"type">>,<<"cancel">>}],
[{xmlel,<<"feature-not-implemented">>,
[{<<"xmlns">>,<<"urn:ietf:params:xml:ns:xmpp-stanzas">>}],
[]}]}],
#{}}
2017-01-29 14:14:48.369 [debug] <0.791.0>@ejabberd_sm:do_route:537 sending to process <0.655.0>:
{iq,<<"ac86a">>,error,<<"en">>,
{jid,<<"ph">>,<<"SOME-DOMAIN.ORG">>,<<"phone">>,<<"ph">>,
<<"SOME-DOMAIN.ORG">>,<<"phone">>},
{jid,<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>,
<<"COMPUTER-PSI">>,<<"SOME-DOMAIN.ORG">>,<<"COMPUTER">>},
[{xmlel,<<"error">>,
[{<<"type">>,<<"cancel">>}],
[{xmlel,<<"feature-not-implemented">>,
[{<<"xmlns">>,<<"urn:ietf:params:xml:ns:xmpp-stanzas">>}],
[]}]}],
Here is some relevant snippet from my .yml file.:
listen:
-
port: 5443
module: ejabberd_http
certfile: "@HOME@/conf/DOMAIN.pem"
request_handlers:
"upload": mod_http_upload
tls: true
thumbnail: true
###########
module:
...
mod_http_upload:
host: "upload.DOMAIN"
docroot: "@HOME@/uploads"
put_url: "https://SUBDOMAIN.DOMAIN:5443/upload"
access: local
max_size: infinity
Thanks