Git Product home page Git Product logo

sendxmpp's Introduction

README 
------

sendxmpp is a perl-script to send XMPP (jabber) messages, similar to
what mail(1) does for mail. XMPP is an open, non-proprietary protocol
for instant messaging. See www.jabber.org for more information.

sendxmpp was written by me, Dirk-Jan C. Binnema, and is available under
the term of the GNU General Public License v2. The hard work is done by
Ryan Eatmon's Net::XMPP-modules, and you need have them installed for
sendxmpp to work. Current maintainer is Lubomir Host <[email protected]>

Obviously, you also need a jabber account; they are freely available
at jabber.org, but you can also install your own servers.

sendxmpp is already in use for monitoring remote servers (servers can
warn by sending xmpp-messages), and watching CVS commit messages
(developers are all connected to a XMPP-chatroom to which messages are
sent. 

I am interested in hearing about other uses.

Homepage: http://sendxmpp.hostname.sk

Lubomir Host <[email protected]>

sendxmpp's People

Contributors

chewi avatar karakum avatar lhost avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sendxmpp's Issues

Accept user linux as a recipient (like sendmail)

Hi

I have done a script to use sendxmpp to send messages between linux users
You can see there https://github.com/cyttorak/say/blob/master/say and for example
sudo say --to juan Hi, Juan
send the messages "Hi, Juan" from root (using /root/.sendxmpprc) to juan (using /home/juan/.toxmpp) and I thing maybe you would like to add this feature in sendxmpp
Also
say --group sudo Hi, sudoers
send a messages to all user in a group.

I hope you'll find it interesting.
Thank.

xmpp auth error.

Hi, i have error connecting to the openfire xmpp server.
username, password and jserver are correct.
XML-Stream-1.24
Net-XMPP-1.05

$ echo "This is a test IM" | sendxmpp -t -n -u "apetrenko" [email protected] -j jabber.corp.company.com -v
sendxmpp: config: 'username' => '[email protected]'
sendxmpp: config: 'jserver' => 'jabber.corp.company.com'
sendxmpp: config: 'password' => 'password'
sendxmpp: ssl_verify: 0
sendxmpp: tls_ca_path:
sendxmpp: Connect: 1
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1829.
Use of uninitialized value $sid in concatenation (.) or string at /Library/Perl/5.18/XML/Stream.pm line 2735.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 2737.
Use of uninitialized value $sid in concatenation (.) or string at /Library/Perl/5.18/XML/Stream.pm line 1668.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1669.
Use of uninitialized value in concatenation (.) or string at /Library/Perl/5.18/XML/Stream.pm line 1669.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1671.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1673.
Use of uninitialized value in numeric eq (==) at /Library/Perl/5.18/XML/Stream.pm line 1673.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1675.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1678.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 2615.
Use of uninitialized value $sid in concatenation (.) or string at /Library/Perl/5.18/XML/Stream.pm line 2735.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 2737.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 433.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 440.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 433.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 440.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 433.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 440.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 433.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 440.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 433.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 440.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 433.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 440.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 433.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 440.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 433.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 440.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 433.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 440.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 433.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 440.
Use of uninitialized value in hash element at /Library/Perl/5.18/Net/XMPP/Connection.pm line 433.
Use of uninitialized value in string eq at /usr/local/bin/sendxmpp line 518.
Error 'AuthSend': [?]
Use of uninitialized value $sid in concatenation (.) or string at /Library/Perl/5.18/XML/Stream.pm line 1668.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1669.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1671.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1673.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1264.
Use of uninitialized value in string eq at /Library/Perl/5.18/XML/Stream.pm line 1264.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1264.
Use of uninitialized value in string eq at /Library/Perl/5.18/XML/Stream.pm line 1264.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1267.
Use of uninitialized value in delete at /Library/Perl/5.18/XML/Stream.pm line 1267.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1268.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1270.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1270.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1270.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1270.
Use of uninitialized value $sid in hash element at /Library/Perl/5.18/XML/Stream.pm line 1270.
Use of uninitialized value $sid in delete at /Library/Perl/5.18/XML/Stream.pm line 1272.
sendxmpp: Disconnect

Error 'AuthSend': error: bad-protocol[?]

‰ sendxmpp -v -t --tls-ca-path /etc/ssl/certs -f ~/.sendxmpprc-bitcheese
sendxmpp: config: 'jserver' => 'bitcheese.net'
sendxmpp: config: 'password' => 'FOO'
sendxmpp: config: 'username' => 'l29ah'
sendxmpp: config: 'component' => 'bitcheese.net'
sendxmpp: ssl_verify: 1
sendxmpp: tls_ca_path: /etc/ssl/certs
sendxmpp: Connect: 1
Error 'AuthSend': error: bad-protocol[?]
sendxmpp: Disconnect

Error 'AuthSend': error: malformed-request[?]

Yes I have already read the related Issues, but still have not been able to get this working. This is my second or third try over period of months. I need to be able to send XMPP from command line for lots of reasons but have not been able to ever since this started.

This post has a reply (in Spanish?) suggesting to edit some perl library/file, which I tried and that didn't work.

I also read this post about "installing the CA certificate in client side", however there are dozens (maybe hundreds) of certificates in /etc/ssl/certs so I don't understand which certificate they are referring to?

The server I am trying to send through is my own, and yes I have proper certificates (thru Let's Encrypt). Am I supposed to copy/install something into my local machine to get that working?

Facebook recipient does not receive message

First time sendxmpp user, I am trying to send a message to another Facebook user.
Everything seems to go fine, except that the message is not received by the recipient. The recipient does not get anything, it is like I had done nothing (I actually checked sending to a test Facebook account in Firefox).

Sender-side log:

$ echo "hello bob!" | sendxmpp -v -d -t [email protected]
sendxmpp: config: 'password' => 'the.sender.password'
sendxmpp: config: 'port' => '0'
sendxmpp: config: 'username' => 'the.sender'
sendxmpp: config: 'jserver' => 'chat.facebook.com'
Use of uninitialized value $val in concatenation (.) or string at /usr/bin/sendxmpp line 195.
sendxmpp: config: 'component' => ''
XML::Stream: new: hostname = (mycomputer)
XML::Stream: SetCallBacks: tag(node) func(CODE(0x259f630))
XMPP::Conn: xmppCallbackInit: start
XMPP::Conn: SetCallBacks: tag(message) func(CODE(0x259f378))
XMPP::Conn: SetCallBacks: tag(presence) func(CODE(0x259f408))
XMPP::Conn: SetCallBacks: tag(iq) func(CODE(0x259f4c8))
XMPP::Conn: SetPresenceCallBacks: type(unsubscribed) func(CODE(0x259f0f0))
XMPP::Conn: SetPresenceCallBacks: type(subscribed) func(CODE(0x259f180))
XMPP::Conn: SetPresenceCallBacks: type(unsubscribe) func(CODE(0x259f210))
XMPP::Conn: SetPresenceCallBacks: type(subscribe) func(CODE(0x259f420))
XMPP::Conn: SetDirectXPathCallBacks: xpath(/[@xmlns="urn:ietf:params:xml:ns:xmpp-tls"]) func(CODE(0x259f198))
XMPP::Conn: SetDirectXPathCallBacks: xpath(/[@xmlns="urn:ietf:params:xml:ns:xmpp-sasl"]) func(CODE(0x2596a08))
XMPP::Conn: xmppCallbackInit: stop
sendxmpp: ssl_verify: 1
sendxmpp: tls_ca_path: 
XMPP::Conn: Connect: host(chat.facebook.com:5222) namespace(jabber:client)
XMPP::Conn: Connect: timeout(10)
XML::Stream: Connect: type(tcpip)
XML::Stream: Connect: Got a connection
XML::Stream: Send: (<?xml version='1.0'?><stream:stream version='1.0' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' to='chat.facebook.com' from='mycomputer' xml:lang='en' >)
XML::Stream: Read: buff(<?xml version='1.0' ?><stream:stream from='chat.facebook.com' id='1' version='1.0' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' xml:lang='en'><stream:features><starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>X-FACEBOOK-PLATFORM</mechanism><mechanism>PLAIN</mechanism></mechanisms></stream:features>)
XML::Stream: _handle_root: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2595e50)) tag(stream:stream) att( id 1 from chat.facebook.com version 1.0 xmlns:stream http://etherx.jabber.org/streams xml:lang en xmlns jabber:client )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2595e50)) tag(stream:features) att( )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2595e50)) tag(starttls) att( xmlns urn:ietf:params:xml:ns:xmpp-tls )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2595e50)) tag(starttls)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2595e50)) tag(mechanisms) att( xmlns urn:ietf:params:xml:ns:xmpp-sasl )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2595e50)) tag(mechanism) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2595e50)) cdata(X-FACEBOOK-PLATFORM)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x2595e50)) cdata(X-FACEBOOK-PLATFORM)
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2595e50)) tag(mechanism)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2595e50)) tag(mechanism) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2595e50)) cdata(PLAIN)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x2595e50)) cdata(PLAIN)
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2595e50)) tag(mechanism)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2595e50)) tag(mechanisms)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2595e50)) tag(stream:features)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XMPP::Conn: Connect: connection made
XML::Stream: SetCallBacks: tag(node) func(CODE(0x25964c8))
XML::Stream: Send: (<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>)
XML::Stream: Read: buff(<proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>)
XML::Stream: Node: _handle_element: sid(1) sax(XML::Stream::Parser=HASH(0x2595e50)) tag(proceed) att( xmlns urn:ietf:params:xml:ns:xmpp-tls )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_close: sid(1) sax(XML::Stream::Parser=HASH(0x2595e50)) tag(proceed)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XML::Stream: TLSClientProceed: Convert normal socket to SSL
XML::Stream: TLSClientProceed: sock(IO::Socket::INET=GLOB(0x25963a8))
XML::Stream: LoadSSL: Load the IO::Socket::SSL module
XML::Stream: LoadSSL: Success
XML::Stream: TLSClientProceed: ssl_sock(IO::Socket::SSL=GLOB(0x25963a8))
XML::Stream: TLSClientProceed: SSL: We are secure
XML::Stream: Process: block(0)
XML::Stream: Send: (<?xml version='1.0'?><stream:stream version='1.0' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' to='chat.facebook.com' from='mycomputer' xml:lang='en' >)
XML::Stream: Read: buff(<?xml version='1.0' ?><stream:stream from='chat.facebook.com' id='1' version='1.0' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' xml:lang='en'><stream:features><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>X-FACEBOOK-PLATFORM</mechanism><mechanism>PLAIN</mechanism></mechanisms></stream:features>)
XML::Stream: _handle_root: sid(1) sax(XML::Stream::Parser=HASH(0x247f1b8)) tag(stream:stream) att( version 1.0 from chat.facebook.com id 1 xmlns jabber:client xml:lang en xmlns:stream http://etherx.jabber.org/streams )
XML::Stream: Node: _handle_element: sid(1) sax(XML::Stream::Parser=HASH(0x247f1b8)) tag(stream:features) att( )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_element: sid(1) sax(XML::Stream::Parser=HASH(0x247f1b8)) tag(mechanisms) att( xmlns urn:ietf:params:xml:ns:xmpp-sasl )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_element: sid(1) sax(XML::Stream::Parser=HASH(0x247f1b8)) tag(mechanism) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(1) sax(XML::Stream::Parser=HASH(0x247f1b8)) cdata(X-FACEBOOK-PLATFORM)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x247f1b8)) cdata(X-FACEBOOK-PLATFORM)
XML::Stream: Node: _handle_close: sid(1) sax(XML::Stream::Parser=HASH(0x247f1b8)) tag(mechanism)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_element: sid(1) sax(XML::Stream::Parser=HASH(0x247f1b8)) tag(mechanism) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(1) sax(XML::Stream::Parser=HASH(0x247f1b8)) cdata(PLAIN)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x247f1b8)) cdata(PLAIN)
XML::Stream: Node: _handle_close: sid(1) sax(XML::Stream::Parser=HASH(0x247f1b8)) tag(mechanism)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_close: sid(1) sax(XML::Stream::Parser=HASH(0x247f1b8)) tag(mechanisms)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_close: sid(1) sax(XML::Stream::Parser=HASH(0x247f1b8)) tag(stream:features)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
sendxmpp: Connect: 1
XMPP::Conn: AuthSASL: shiney new auth
XML::Stream: Send: (<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>ZGUuc3ZvYm9kbnlAY2hhdC5mYWNlYm9vay5jb20AZGUuc3ZvYm9kbnkAa2V2b2ltZXphbWlz</auth>)
XMPP::Conn: AuthSASL: haven't authed yet... let's wait.
XMPP::Conn: Process: timeout(1)
XML::Stream: Read: buff(<success xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/>)
XML::Stream: Node: _handle_element: sid(1) sax(XML::Stream::Parser=HASH(0x247f1b8)) tag(success) att( xmlns urn:ietf:params:xml:ns:xmpp-sasl )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_close: sid(1) sax(XML::Stream::Parser=HASH(0x247f1b8)) tag(success)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XML::Stream: Process: block(0)
XMPP::Conn: AuthSASL: We authed!
XML::Stream: Send: (<?xml version='1.0'?><stream:stream version='1.0' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' to='chat.facebook.com' from='mycomputer' xml:lang='en' >)
XML::Stream: Read: buff(<?xml version='1.0' ?><stream:stream from='chat.facebook.com' id='1' version='1.0' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' xml:lang='en'><stream:features><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></stream:features>)
XML::Stream: _handle_root: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(stream:stream) att( from chat.facebook.com id 1 version 1.0 xmlns:stream http://etherx.jabber.org/streams xmlns jabber:client xml:lang en )
XML::Stream: Node: _handle_element: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(stream:features) att( )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_element: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(bind) att( xmlns urn:ietf:params:xml:ns:xmpp-bind )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_close: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(bind)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_element: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(session) att( xmlns urn:ietf:params:xml:ns:xmpp-session )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_close: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(session)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_close: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(stream:features)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XMPP::Conn: AuthSASL: We got a new session. sid(1)
XMPP::Conn: AuthSASL: Binding to resource
XMPP::Conn: BindResource: Binding to resource
XMPP::Conn: BindResource: resource(sendxmpp)
XMPP::Conn: SendAndReceiveWithID: object(Net::XMPP::IQ=HASH(0x2736960))
XMPP::Conn: SendWithID: id(netjabber-0)
XMPP::Conn: SendWithID: in(<iq type='set'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><resource>sendxmpp</resource></bind></iq>)
XMPP::Conn: RegisterID: tag(iq) id(netjabber-0)
XMPP::Conn: SendWithID: out(<iq id='netjabber-0' type='set'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><resource>sendxmpp</resource></bind></iq>)
XMPP::Conn: SendXML: sent(<iq id='netjabber-0' type='set'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><resource>sendxmpp</resource></bind></iq>)
XML::Stream: Send: (<iq id='netjabber-0' type='set'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><resource>sendxmpp</resource></bind></iq>)
XMPP::Conn: SendAndReceiveWithID: sent with id(netjabber-0)
XMPP::Conn: WaitForID: id(netjabber-0)
XMPP::Conn: ReceivedID: id(netjabber-0)
XMPP::Conn: ReceivedID: nope...
XMPP::Conn: WaitForID: haven't gotten it yet... let's wait for more packets
XMPP::Conn: Process: timeout(1)
XML::Stream: Read: buff(<iq from='[email protected]' id='netjabber-0' type='result'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><jid>[email protected]/sendxmpp</jid></bind></iq>)
XML::Stream: Node: _handle_element: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(iq) att( from [email protected] id netjabber-0 type result )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_element: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(bind) att( xmlns urn:ietf:params:xml:ns:xmpp-bind )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_element: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(jid) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) cdata([email protected]/sendxmpp)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x2736990)) cdata([email protected]/sendxmpp)
XML::Stream: Node: _handle_close: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(jid)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_close: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(bind)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_close: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(iq)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XMPP::Conn: CallBack: sid(1) received(<iq from='[email protected]' id='netjabber-0' type='result'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><jid>[email protected]/sendxmpp</jid></bind></iq>)
XMPP::Conn: CallBack: tag(iq)
XMPP::Conn: CallBack: id(netjabber-0)
XMPP::Conn: CallBack: we either want it or were waiting for it.
XMPP::Conn: CallBack: check directxpath
XMPP::Conn: CallBack: check directxpath(/[@xmlns="urn:ietf:params:xml:ns:xmpp-tls"])
XMPP::Conn: CallBack: check directxpath(/[@xmlns="urn:ietf:params:xml:ns:xmpp-sasl"])
XMPP::Conn: BuildObject: tag(iq) package(Net::XMPP::IQ)
XMPP::Conn: CheckID: tag(iq) id(netjabber-0)
XMPP::Conn: CheckID: we have that here somewhere...
XMPP::Conn: CallBack: found registry entry: tag(iq) id(netjabber-0)
XMPP::Conn: DeregisterID: tag(iq) id(netjabber-0)
XMPP::Conn: CallBack: they still want it... we still got it...
XMPP::Conn: GotID: id(netjabber-0) xml(<iq from='[email protected]' id='netjabber-0' type='result'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><jid>[email protected]/sendxmpp</jid></bind></iq>)
XML::Stream: Process: block(0)
XMPP::Conn: ReceivedID: id(netjabber-0)
XMPP::Conn: ReceivedID: id(netjabber-0)
XMPP::Conn: WaitForID: we got it!
XMPP::Conn: GetID: id(netjabber-0)
XMPP::Conn: ReceivedID: id(netjabber-0)
XMPP::Conn: CleanID: id(netjabber-0)
XMPP::Conn: AuthSASL: Starting session
XMPP::Conn: SendAndReceiveWithID: object(Net::XMPP::IQ=HASH(0x274ee30))
XMPP::Conn: SendWithID: id(netjabber-1)
XMPP::Conn: SendWithID: in(<iq type='set'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>)
XMPP::Conn: RegisterID: tag(iq) id(netjabber-1)
XMPP::Conn: SendWithID: out(<iq id='netjabber-1' type='set'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>)
XMPP::Conn: SendXML: sent(<iq id='netjabber-1' type='set'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>)
XML::Stream: Send: (<iq id='netjabber-1' type='set'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>)
XMPP::Conn: SendAndReceiveWithID: sent with id(netjabber-1)
XMPP::Conn: WaitForID: id(netjabber-1)
XMPP::Conn: ReceivedID: id(netjabber-1)
XMPP::Conn: ReceivedID: nope...
XMPP::Conn: WaitForID: haven't gotten it yet... let's wait for more packets
XMPP::Conn: Process: timeout(1)
XML::Stream: Read: buff(<iq from='[email protected]' id='netjabber-1' type='result'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>)
XML::Stream: Node: _handle_element: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(iq) att( id netjabber-1 from [email protected] type result )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_element: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(session) att( xmlns urn:ietf:params:xml:ns:xmpp-session )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_close: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(session)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_close: sid(1) sax(XML::Stream::Parser=HASH(0x2736990)) tag(iq)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XMPP::Conn: CallBack: sid(1) received(<iq from='[email protected]' id='netjabber-1' type='result'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>)
XMPP::Conn: CallBack: tag(iq)
XMPP::Conn: CallBack: id(netjabber-1)
XMPP::Conn: CallBack: we either want it or were waiting for it.
XMPP::Conn: CallBack: check directxpath
XMPP::Conn: CallBack: check directxpath(/[@xmlns="urn:ietf:params:xml:ns:xmpp-tls"])
XMPP::Conn: CallBack: check directxpath(/[@xmlns="urn:ietf:params:xml:ns:xmpp-sasl"])
XMPP::Conn: BuildObject: tag(iq) package(Net::XMPP::IQ)
XMPP::Conn: CheckID: tag(iq) id(netjabber-1)
XMPP::Conn: CheckID: we have that here somewhere...
XMPP::Conn: CallBack: found registry entry: tag(iq) id(netjabber-1)
XMPP::Conn: DeregisterID: tag(iq) id(netjabber-1)
XMPP::Conn: CallBack: they still want it... we still got it...
XMPP::Conn: GotID: id(netjabber-1) xml(<iq from='[email protected]' id='netjabber-1' type='result'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>)
XML::Stream: Process: block(0)
XMPP::Conn: ReceivedID: id(netjabber-1)
XMPP::Conn: ReceivedID: id(netjabber-1)
XMPP::Conn: WaitForID: we got it!
XMPP::Conn: GetID: id(netjabber-1)
XMPP::Conn: ReceivedID: id(netjabber-1)
XMPP::Conn: CleanID: id(netjabber-1)
sendxmpp: AuthSend: ok
XMPP::Conn: SendXML: sent(<message to='[email protected]' type='chat'><body>hello bob!
</body><subject></subject></message>)
XML::Stream: Send: (<message to='[email protected]' type='chat'><body>hello bob!
</body><subject></subject></message>)
sendxmpp: MessageSend
XML::Stream: Send: (</stream:stream>)
XML::Stream: SetCallBacks: tag(node) func(CODE(0x2590e38))
XMPP::Conn: Disconnect: bye bye
sendxmpp: Disconnect

Using sendxmpp 1.23 on Ubuntu 2014.04

sendxmpp doesn't work with TLS on FreeBSD

I installed FreeBSD 12.1 on my Raspberry Pi 2 yesterday and I have some issues with sendxmpp (version 1.24) not working for me. I have the package security/ca_root_nss and I have tried specifying every single path I could think of.

$ echo "Test" | sendxmpp <adress> -t --tls-ca-path="/usr/local/etc/ssl"
Use of uninitialized value $sid in hash element at /usr/local/bin/sendxmpp line 381.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1829.
Use of uninitialized value $sid in concatenation (.) or string at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 2735.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 2737.
Use of uninitialized value $sid in concatenation (.) or string at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1668.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1669.
Use of uninitialized value in concatenation (.) or string at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1669.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1671.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1673.
Use of uninitialized value in numeric eq (==) at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1673.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1675.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1678.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 2615.
Use of uninitialized value $sid in concatenation (.) or string at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 2735.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 2737.
Use of uninitialized value in concatenation (.) or string at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1440.
Use of uninitialized value in numeric eq (==) at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1443.
Use of uninitialized value within %status in numeric eq (==) at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1506.
Use of uninitialized value in subtraction (-) at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1507.
Use of uninitialized value in concatenation (.) or string at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1669.
Use of uninitialized value in numeric eq (==) at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1673.
Use of uninitialized value in hash element at /usr/local/lib/perl5/site_perl/Net/XMPP/Connection.pm line 433.
Use of uninitialized value in hash element at /usr/local/lib/perl5/site_perl/Net/XMPP/Connection.pm line 440.
Use of uninitialized value in hash element at /usr/local/lib/perl5/site_perl/Net/XMPP/Connection.pm line 433.
Use of uninitialized value in string eq at /usr/local/bin/sendxmpp line 515.
Error 'AuthSend': [?]
Use of uninitialized value $sid in concatenation (.) or string at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1668.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1669.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1671.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1673.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1266.
Use of uninitialized value in string eq at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1266.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1266.
Use of uninitialized value in string eq at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1266.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1267.
Use of uninitialized value in delete at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1267.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1268.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1270.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1270.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1270.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1270.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1270.
Use of uninitialized value $sid in hash element at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1270.
Use of uninitialized value $sid in delete at /usr/local/lib/perl5/site_perl/XML/Stream.pm line 1272. 

I have also noted that it looks like FreeBSD uses one single file for the certs while some (all?) Linux based operating systems uses one file per cert, at least in Gentoo and Debian.

Is there anything I can do to make this work? sendxmpp is a very important must have tool for me.

Thank you for your time!

Could not connect to '192.168.8.254' on port 5222: HASH(0x15c3190)

Hi all,
Im trying to install sendxmpp to be able to send automated messages using my own server (Prosody) on 192.168.8.254. The server is up and I can send messages between accounts Im logging to from Android app and Kopete.

Unfortunately, If Im trying to send something using sendxmpp, Im getting following errors:
GentooOnPhenomII hrabosh # echo zprava | sendxmpp -v -o [email protected]
sendxmpp: config: 'password' => 'password'
sendxmpp: config: 'username' => 'debug'
sendxmpp: config: 'jserver' => '192.168.8.254'
sendxmpp: config: 'component' => '192.168.8.254'
sendxmpp: ssl_verify: 1
sendxmpp: tls_ca_path:
Use of uninitialized value within @_ in lc at /usr/lib64/perl5/vendor_perl/5.20.2/XML/Stream/Parser.pm line 71.
Could not connect to '192.168.8.254' on port 5222: HASH(0x15c3190)

Im seeing "this server does not serve [email protected]" messages.

Any clue whats wrong?

Use of uninitialized value in numeric eq

Hello
I am using sendxmmp on Gentoo.
All works fine, but every time on stderr appears message Use of uninitialized value in numeric eq (==) at /usr/lib64/perl5/vendor_perl/5.26.2/XML/Stream.pm line 631.

When use verbose option.

echo test | sendxmpp -v -f ./credentials.xmpp -s hello test@server
sendxmpp: config: 'component' => '****'
sendxmpp: config: 'username' => '****'
sendxmpp: config: 'jserver' => '****'
sendxmpp: config: 'password' => '****'
sendxmpp: config: 'port' => '5222'
sendxmpp: ssl_verify: 1
sendxmpp: tls_ca_path: 
Use of uninitialized value in numeric eq (==) at /usr/lib64/perl5/vendor_perl/5.26.2/XML/Stream.pm line 631.
sendxmpp: Connect: 1
sendxmpp: AuthSend: ok
sendxmpp: MessageSend
sendxmpp: Disconnect

Stream.pm as 631-632

if (   1 == $self->{SIDS}->{newconnection}->{ssl}
        || 1 == $self->{SIDS}->{newconnection}->{_tls} )

Package information

$ eix xml-stream
[I] dev-perl/XML-Stream
     Available versions:  1.240.0 1.240.0-r1{tbz2} {ssl}
     Installed versions:  1.240.0-r1{tbz2}(11:22:44 AM 01/06/2019)(ssl)
     Homepage:            https://metacpan.org/release/XML-Stream
     Description:         Creates and XML Stream connection and parses return data

$ eix sendxmpp
[I] net-im/sendxmpp
     Available versions:  1.23{tbz2} ~1.24
     Installed versions:  1.23{tbz2}(11:42:36 AM 01/06/2019)
     Homepage:            http://sendxmpp.hostname.sk/
     Description:         A perl-script to send xmpp (jabber), similar to what mail(1) does for mail

Seems one of fields (ssl or _tls) not properly initialized.

Allow sending message without subject

When I watch received messages in mcabber, I see it like below. Even if --subject arg is not used, it still sends empty subject (see []). It would be handy to be able not to send subject field altogether.

 #[C] #dragonbox-pyra  │09-08 21:01 <== []                                                                                                                                                     
  [x] #elinux          │                test                                                                                                                                                   
  [C] #ffmpeg          │                                                                                                                                                                       
  [C] #ffmpeg-devel    │09-08 21:04 <== [subject]                                                                                                                                              
  [x] #gentoo          │                test                                                                                                                                                   
  [C] #gentoo-arm      │                                                                                                                                                                       
  [C] #gentoo-embedded │09-08 21:06 --> hey                                                                                                                                                    
  [C] #gentoo-hardened │09-08 21:06 <== [subject]                                                                                                                                              
  [x] #gentoo-kde      │                test                                                                                                                                                   

Wrong server name used when `--jserver` given

I've got an account [email protected], the XMPP server is running on xmpp.company.com. The XMPP SRV record for company.com links to xmpp.company.com.

Now when specifying --jserver=xmpp.company.com, this host name is not only used to connect to, but also as xmpp target server. I get the following error:

Request:

<?xml version='1.0'?>
<stream:stream version='1.0' xmlns:stream='http://etherx.jabber.org/streams' 
 xmlns='jabber:client'
 to='xmpp.company.com'
 from='cyberdyne'
 xml:lang='en' >

Response:

<stream:error>
  <host-unknown xmlns='urn:ietf:params:xml:ns:xmpp-streams'/>
  <text xmlns='urn:ietf:params:xml:ns:xmpp-streams'>
    This server does not serve xmpp.company.com
  </text>
</stream:error>

The xmpp.company.com hostname should only be used for connecting, not as general xmpp server hostname.

This is with sendxmpp 1.22-1 (ubuntu) and libnet-xmpp-perl 1.02-3.

Error 'AuthSend': error: not-authorized[?] with suchat.org

Hi
I have used sendxmpp with severals xmpp serves without problems, but now I am having problems with suchat.org

pi@cacharro ~ $ echo "hi" | sendxmpp -d -v -j suchat.org -u [email protected] -p ******** -t [email protected]
XML::Stream: new: hostname = (cacharro)
XML::Stream: SetCallBacks: tag(node) func(CODE(0xac1760))
XMPP::Conn: xmppCallbackInit: start
XMPP::Conn: SetCallBacks: tag(message) func(CODE(0xb71aa0))
XMPP::Conn: SetCallBacks: tag(presence) func(CODE(0xac1e08))
XMPP::Conn: SetCallBacks: tag(iq) func(CODE(0x13ec700))
XMPP::Conn: SetPresenceCallBacks: type(unsubscribed) func(CODE(0xac5028))
XMPP::Conn: SetPresenceCallBacks: type(unsubscribe) func(CODE(0xac48c0))
XMPP::Conn: SetPresenceCallBacks: type(subscribed) func(CODE(0xab8a58))
XMPP::Conn: SetPresenceCallBacks: type(subscribe) func(CODE(0xac1df0))
XMPP::Conn: SetDirectXPathCallBacks: xpath(/[@xmlns="urn:ietf:params:xml:ns:xmpp-tls"]) func(CODE(0xab8cf8))
XMPP::Conn: SetDirectXPathCallBacks: xpath(/[@xmlns="urn:ietf:params:xml:ns:xmpp-sasl"]) func(CODE(0xac48d8))
XMPP::Conn: xmppCallbackInit: stop
sendxmpp: ssl_verify: 1
sendxmpp: tls_ca_path: 
XMPP::Conn: Connect: host(suchat.org:5222) namespace(jabber:client)
XMPP::Conn: Connect: timeout(10)
XML::Stream: Connect: type(tcpip)
XML::Stream: Connect: Got a connection
XML::Stream: Send: (<?xml version='1.0'?><stream:stream version='1.0' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' to='suchat.org' from='cacharro' xml:lang='en' >)
XML::Stream: Read: buff(<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='11414518187186101349' from='suchat.org' version='1.0' xml:lang='es'><stream:features><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.process-one.net/en/ejabberd/' ver='AgG2WDG3fcWthSkifewdOQ7NadE='/><starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'><required/></starttls><compression xmlns='http://jabber.org/features/compress'><method>zlib</method></compression></stream:features>)
XML::Stream: _handle_root: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(stream:stream) att( from suchat.org xmlns jabber:client id 11414518187186101349 xml:lang es version 1.0 xmlns:stream http://etherx.jabber.org/streams )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(stream:features) att( )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(c) att( xmlns http://jabber.org/protocol/caps node http://www.process-one.net/en/ejabberd/ ver AgG2WDG3fcWthSkifewdOQ7NadE= hash sha-1 )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(c)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(starttls) att( xmlns urn:ietf:params:xml:ns:xmpp-tls )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(required) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(required)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(starttls)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(compression) att( xmlns http://jabber.org/features/compress )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(method) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) cdata(zlib)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0xac2498)) cdata(zlib)
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(method)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(compression)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(stream:features)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XMPP::Conn: Connect: connection made
XML::Stream: SetCallBacks: tag(node) func(CODE(0xac1880))
XML::Stream: Send: (<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>)
XML::Stream: Read: buff(<proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>)
XML::Stream: Node: _handle_element: sid(11414518187186101349) sax(XML::Stream::Parser=HASH(0xac2498)) tag(proceed) att( xmlns urn:ietf:params:xml:ns:xmpp-tls )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_close: sid(11414518187186101349) sax(XML::Stream::Parser=HASH(0xac2498)) tag(proceed)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XML::Stream: TLSClientProceed: Convert normal socket to SSL
XML::Stream: TLSClientProceed: sock(IO::Socket::INET=GLOB(0x13ec790))
XML::Stream: LoadSSL: Load the IO::Socket::SSL module
XML::Stream: LoadSSL: Success
XML::Stream: TLSClientProceed: ssl_sock(IO::Socket::SSL=GLOB(0x13ec790))
XML::Stream: TLSClientProceed: SSL: We are secure
XML::Stream: Process: block(0)
XML::Stream: Send: (<?xml version='1.0'?><stream:stream version='1.0' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' to='suchat.org' from='cacharro' xml:lang='en' >)
XML::Stream: Read: buff(<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='4076701549342428227' from='suchat.org' version='1.0' xml:lang='es'>)
XML::Stream: _handle_root: sid(11414518187186101349) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(stream:stream) att( id 4076701549342428227 version 1.0 xml:lang es xmlns:stream http://etherx.jabber.org/streams from suchat.org xmlns jabber:client )
XML::Stream: Read: buff(<stream:features><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.process-one.net/en/ejabberd/' ver='AgG2WDG3fcWthSkifewdOQ7NadE='/><register xmlns='http://jabber.org/features/iq-register'/><compression xmlns='http://jabber.org/features/compress'><method>zlib</method></compression><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>PLAIN</mechanism><mechanism>DIGEST-MD5</mechanism><mechanism>X-OAUTH2</mechanism><mechanism>SCRAM-SHA-1</mechanism></mechanisms></stream:features>)
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(stream:features) att( )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(c) att( node http://www.process-one.net/en/ejabberd/ ver AgG2WDG3fcWthSkifewdOQ7NadE= xmlns http://jabber.org/protocol/caps hash sha-1 )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(c)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(register) att( xmlns http://jabber.org/features/iq-register )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(register)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(compression) att( xmlns http://jabber.org/features/compress )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(method) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(zlib)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(zlib)
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(method)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(compression)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanisms) att( xmlns urn:ietf:params:xml:ns:xmpp-sasl )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(PLAIN)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(PLAIN)
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(DIGEST-MD5)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(DIGEST-MD5)
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(X-OAUTH2)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(X-OAUTH2)
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(SCRAM-SHA-1)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(SCRAM-SHA-1)
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanisms)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(stream:features)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XML::Stream: Process: block(0)
sendxmpp: Connect: 1
XMPP::Conn: AuthSASL: shiney new auth
XML::Stream: Send: (<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='DIGEST-MD5'></auth>)
XMPP::Conn: AuthSASL: haven't authed yet... let's wait.
XMPP::Conn: Process: timeout(1)
XML::Stream: Read: buff(<challenge xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>bm9uY2U9IjU1ODcyNDA1NTA4MTkwODY3NDAiLHFvcD0iYXV0aCIsY2hhcnNldD11dGYtOCxhbGdvcml0aG09bWQ1LXNlc3M=</challenge>)
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(challenge) att( xmlns urn:ietf:params:xml:ns:xmpp-sasl )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_cdata: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(bm9uY2U9IjU1ODcyNDA1NTA4MTkwODY3NDAiLHFvcD0iYXV0aCIsY2hhcnNldD11dGYtOCxhbGdvcml0aG09bWQ1LXNlc3M=)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(bm9uY2U9IjU1ODcyNDA1NTA4MTkwODY3NDAiLHFvcD0iYXV0aCIsY2hhcnNldD11dGYtOCxhbGdvcml0aG09bWQ1LXNlc3M=)
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(challenge)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XML::Stream: Send: (<response xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>YXV0aHppZD0iY3l0dG9yYWtAc3VjaGF0Lm9yZ0BzdWNoYXQub3JnIixjaGFyc2V0PXV0Zi04LGNub25jZT0iNDFiODZkMGJiODNlZDA0YThkMzk5NWUzZTM1YThjNGYiLGRpZ2VzdC11cmk9InhtcHAvc3VjaGF0Lm9yZyIsbmM9MDAwMDAwMDEsbm9uY2U9IjU1ODcyNDA1NTA4MTkwODY3NDAiLHFvcD1hdXRoLHJlc3BvbnNlPTYxNWIzMjI0ZDAyNzg3ZjU0YTU3MTVkZjgzOWY4ZmFiLHVzZXJuYW1lPSJjeXR0b3Jha0BzdWNoYXQub3JnIg==</response>)
XML::Stream: Process: block(0)
XMPP::Conn: AuthSASL: haven't authed yet... let's wait.
XMPP::Conn: Process: timeout(1)
XML::Stream: Read: buff(<failure xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><not-authorized/></failure>)
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(failure) att( xmlns urn:ietf:params:xml:ns:xmpp-sasl )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(not-authorized) att( )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(not-authorized)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(failure)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XML::Stream: Process: block(0)
XMPP::Conn: AuthSASL: Authentication failed.
Error 'AuthSend': error: not-authorized[?]
XML::Stream: Send: (</stream:stream>)
XML::Stream: SetCallBacks: tag(node) func(CODE(0x148eb38))
XMPP::Conn: Disconnect: bye bye
sendxmpp: Disconnect

I don't know if the problem is suchat.org (In https://www.suchat.org/?page_id=229 you can see the configuration of this server) or there is something wrong in sendxmpp.

README file from Debian (read it to solve problems with cryptography!)

Hi,

Today I uploaded the sendxmpp 1.24 to Debian. I wrote a little README.Debian file to explain about some issues and solutions. I decided open a this issue to put here the content of the README file. I think that it can help some people and maybe it could be a source to improve the README file released with sendxmpp. Feel free to use it.

I hope this help.

Regards,

Eriberto


sendxmpp for Debian

Since 2.14 version, sendxmpp is using a new config file format. The file name
must be ~/.sendxmpprc with 400 permission. See below an example of the new
format:

username: john
jserver: jabber.example.com
port: 5222
password: my-very-nice-pass2

There are some tips for sendxmpp 2.14, when using cryptography (I believe these
tips will work for 2.13 version too). The following topics will require a
special attention.

  1. When using sendxmpp, I get:

"Could not connect to 'jabber.example.com' on port 5222: The server requires
us to use TLS, but you did not specify that TLS was an option."

To solve this problem, use -t option.

  1. When sending a message, the following error is shown:

"Invalid or unreadable path specified for ssl_ca_path. at
/usr/share/perl5/XML/Stream.pm line 641."

Use '-a /etc/ssl/certs/' or '--tls-ca-path /etc/ssl/certs' option.

  1. I am getting several messages, similar to lines shown below:

"Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1829.
Use of uninitialized value $sid in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 2740.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 2742.
Use of uninitialized value $sid in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 1668.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1669.
Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 1669.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1671.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1673.
Use of uninitialized value in numeric eq (==) at /usr/share/perl5/XML/Stream.pm line 1673.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1675.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1678.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 2620.
Use of uninitialized value $sid in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 2740.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 2742.
Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 1440.
Use of uninitialized value in numeric eq (==) at /usr/share/perl5/XML/Stream.pm line 1443.
Use of uninitialized value within %status in numeric eq (==) at /usr/share/perl5/XML/Stream.pm line 1506.
Use of uninitialized value in subtraction (-) at /usr/share/perl5/XML/Stream.pm line 1507.
Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 1669.
Use of uninitialized value in numeric eq (==) at /usr/share/perl5/XML/Stream.pm line 1673.
Use of uninitialized value in hash element at /usr/share/perl5/Net/XMPP/Connection.pm line 433.
Use of uninitialized value in hash element at /usr/share/perl5/Net/XMPP/Connection.pm line 440.
Use of uninitialized value in hash element at /usr/share/perl5/Net/XMPP/Connection.pm line 433.
Use of uninitialized value in string eq at /usr/bin/sendxmpp line 515.
Error 'AuthSend': [?]
Use of uninitialized value $sid in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 1668.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1669.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1671.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1673.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1266.
Use of uninitialized value in string eq at /usr/share/perl5/XML/Stream.pm line 1266.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1266.
Use of uninitialized value in string eq at /usr/share/perl5/XML/Stream.pm line 1266.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1267.
Use of uninitialized value in delete at /usr/share/perl5/XML/Stream.pm line 1267.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1268.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1270.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1270.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1270.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1270.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1270.
Use of uninitialized value $sid in delete at /usr/share/perl5/XML/Stream.pm line 1272."

To solve:

# apt-get install ca-certificates
---> Copy the root certificate from your CA to /usr/local/share/ca-certificates/.
The file must use te suffix .crt, e.g. mycert.crt
# update-ca-certificates
---> For more details: $ man update-ca-certificates

  1. I am seeing an unknown behaviour.

Add the '-v' option to your command line to try debug and find the problem.

-- Joao Eriberto Mota Filho [email protected] Tue, 18 Jul 2017 10:38:30 -0300

Sendxmpp can not connect to ipv6 servers.

Sendxmpp can not connect to ipv6 servers.

in v1.24
echo aaa | ./sendxmpp [email protected]
Could not connect to 'h.im.meshnet.pl' on port 5222: HASH(0x1af6048)

in v1.23-1.1 (debian stable)
echo aaa | sendxmpp [email protected]
sendxmpp error: Could not connect to 'h.im.meshnet.pl' on port 5222: IO::Socket::INET: Bad hostname 'h.im.meshnet.pl'

cat ~/.sendxmpprc
[email protected] mypassword [email protected]

$ !ping6
ping6 h.im.meshnet.pl
64 bytes from c.l: icmp_seq=1 ttl=42 time=1.90 ms

$dig -t ANY h.im.meshnet.pl | egrep -v '^;'

h.im.meshnet.pl. 3246 IN AAAA fc5f:c567:102:c14e:326e:5035:d7e5:9f78

Use of uninitialized value $sid in hash element at /usr/bin/sendxmpp line 334.

Sometimes when in a cron script I try send a msg with sendxmpp I get this:

Use of uninitialized value $sid in hash element at /usr/bin/sendxmpp line 334.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1805.
Use of uninitialized value $sid in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 2573.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 2575.
Use of uninitialized value $sid in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 1654.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1655.
Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 1655.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1657.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1659.
Use of uninitialized value in numeric eq (==) at /usr/share/perl5/XML/Stream.pm line 1659.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1661.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1664.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 2458.
Use of uninitialized value $sid in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 2573.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 2575.
Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 1443.
Use of uninitialized value in numeric eq (==) at /usr/share/perl5/XML/Stream.pm line 1445.
Use of uninitialized value within %status in numeric eq (==) at /usr/share/perl5/XML/Stream.pm line 1509.
Use of uninitialized value in subtraction (-) at /usr/share/perl5/XML/Stream.pm line 1510.
Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 1655.
Use of uninitialized value in numeric eq (==) at /usr/share/perl5/XML/Stream.pm line 1659.
Use of uninitialized value in hash element at /usr/share/perl5/Net/XMPP/Connection.pm line 399.
Use of uninitialized value in hash element at /usr/share/perl5/Net/XMPP/Connection.pm line 406.
Use of uninitialized value in hash element at /usr/share/perl5/Net/XMPP/Connection.pm line 399.
Use of uninitialized value in string eq at /usr/bin/sendxmpp line 479.
Error 'AuthSend': [Tubería rota]
Use of uninitialized value $sid in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 1654.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1655.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1657.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1659.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1292.
Use of uninitialized value in string eq at /usr/share/perl5/XML/Stream.pm line 1292.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1292.
Use of uninitialized value in string eq at /usr/share/perl5/XML/Stream.pm line 1292.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1295.
Use of uninitialized value in delete at /usr/share/perl5/XML/Stream.pm line 1295.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1296.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1298.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1298.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1298.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1298.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1298.
Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1298.
Use of uninitialized value $sid in delete at /usr/share/perl5/XML/Stream.pm line 1300.

Pidgin showing 2 lines on each message

I am using this line to send messages out. It works nice but Pidgin always shows 2 lines per message and it does this only with sendxmpp. Is there any way to prevent this?

echo "Custom Message" | sendxmpp -a /etc/ssl/certs -t -f /etc/sendxmpp.conf [email protected]

Sending messages to facebook, No SASL mechanism found

I'm using the github master on Ubuntu 12.10.

echo hallo | ./sendxmpp -v -t [email protected]
sendxmpp: config: 'password' => 'somepw'
sendxmpp: config: 'component' => 'chat.facebook.com'
sendxmpp: config: 'jserver' => 'chat.facebook.com'
sendxmpp: config: 'port' => '0'
sendxmpp: config: 'username' => 'someuser'
sendxmpp: ssl_verify: 1
sendxmpp: tls_ca_path:
sendxmpp: Connect: 1
No SASL mechanism found
at /usr/share/perl5/Authen/SASL.pm line 77
at /usr/share/perl5/XML/Stream.pm line 2155

/root/.sendxmpprc:
[email protected] somepw chat.facebook.com

I have installed libauthen-sasl-perl 2.1500-1

In /usr/share/perl5/Authen/SASL/Perl I have:
ANONYMOUS.pm CRAM_MD5.pm DIGEST_MD5.pm EXTERNAL.pm GSSAPI.pm LOGIN.pm PLAIN.pm

Do you have any ideas how to solve this issue?
Thanks!

(Google Talk is working without any problems)

failing to log into google hangouts

Hi, I've been using this for years however after distro upgrade when I try to send message I got this error:

Invalid or unreadable path specified for ssl_ca_path. at /usr/share/perl5/XML/Stream.pm line 641.

any idea how to fix this? many thanks

SSL.pm warnings (maybe only with newer IO::Socket::SSL)

I run sendxmpp on Ubuntu Xenial (not yet released) and while it works fine, I get 2 warnings when sending messages:

Odd number of elements in anonymous hash at /usr/share/perl5/IO/Socket/SSL.pm line 1421.
Use of uninitialized value within @_ in anonymous hash ({}) at /usr/share/perl5/IO/Socket/SSL.pm line 1421.

I assume that this might be some incompatibility with a newer IO::Socket::SSL version. Ubuntu Xenial ships libio-socket-ssl-perl=2.024-1

I tried the sendxmpp version that ships with xenial (1.23) as well as git master.

work with openfire

Hello!
I tested sendxmpp with openfire in kubuntu, fedora and centos.
I works in kubuntu only.
In fedora and centos the error is "Error 'AuthSend': error: not-authorized[?]"

In debug mode the only difference is:
In kubuntu:
XMPP::Conn: AuthSASL: shiney new auth
XML::Stream: Send: ... mechanism='PLAIN'
In fedora and centos:
XMPP::Conn: AuthSASL: shiney new auth
XML::Stream: Send: ....' mechanism='DIGEST-MD5'

It seems that openfire do not understand sendxmpp's DIGEST-MD5 authentication.

So questions are:

  • we have the same script and the same jabber server but in kubuntu PLAIN mechanism and in fedora/centos DIGEST-MD5 ?
  • how to say sendxmpp to use PLAIN always?
  • is any patch or option to work with openfire with DIGEST-MD5?

Thanks!

No SASL mechanism found

Hello, I'm having the following error when trying to send a message to a prosody server.

No SASL mechanism found at /usr/share/perl5/Authen/SASL.pm line 77. at /usr/share/perl5/XML/Stream.pm line 2268.

sendxmpp version is 1.24
Perl version is 5.28.1

It is working on another machine with sendxmpp 1.23 and perl v5.20.2.

Getting a lot of warnings...

Use of uninitialized value $args{"file"} in lc at /usr/share/perl5/vendor_perl/Net/XMPP/Debug.pm line 154.
Use of uninitialized value within @_ in lc at /usr/share/perl5/vendor_perl/XML/Stream/Parser.pm line 71.
Use of uninitialized value within @_ in lc at /usr/share/perl5/vendor_perl/XML/Stream/Parser.pm line 71.
Use of uninitialized value within @_ in lc at /usr/share/perl5/vendor_perl/XML/Stream/Parser.pm line 71.

I had to temporarily remove the -w at the top of this to mask these warnings. Any idea what is causing these errors, or where I can start looking?

Feature request: Support for Off-The-Record (OTR) encryption

I would be nice, if sendxmpp could encrypt sent messages with OTR. An increasing number of Jabber clients use OTR in order to ensure confidentiality between message sender and recipient. Especially when a server automatically sends messages possibly with sensitive system details, it would be good if only the admin could read these messages.

libotr might be useful here (in Debian wheezy you can currently install libotr5).

Google Hangouts compatibility issue (solutions suggestion)

Problem

Sending message to a Google Hangouts partner does not work, eg.:

echo "Hello Pal, howdy'?" | sendxmpp -t -u mygoogleusername -o gmail.com  [email protected]

The command gets executed, the protocol messages indicate no problem, but the message does not arrive, probably winds up in some evil /dev/null pit-hole.

Root cause

This problem derives from the fact Google required partners to be mutually accepted, that means the partners must have each other on their roster lists. When you look closely on such a roster list, you will see that Google assigns a special ID to the partners, something ending with @public.talk.google.com eg. [email protected]. You have to address your messages to this very ID to have the messages arriving, eg:

echo "Hello Pal, howdy'?" | sendxmpp -t -u mygoogleusername -o gmail.com  [email protected]

This roster ID is unique in each partner relation meaning that you have to query your roster list and look up the recipient partners ID to be able to send a message to him.

I am not very familiar with the XMPP protocol nor with Perl but this is what I found during my research and debug. I would like to suggest to implement a feature that checks the sender user's roster list for the roster ID of the recipient user and send the message to that.

What do you think?

uninitialized value $args{"file"}

While it's working fine, I get the following output on every message sent:

Use of uninitialized value $args{"file"} in lc at /usr/share/perl5/vendor_perl/Net/XMPP/Debug.pm line 154.
Use of uninitialized value within @_ in lc at /usr/share/perl5/vendor_perl/XML/Stream/Parser.pm line 71.
Use of uninitialized value within @_ in lc at /usr/share/perl5/vendor_perl/XML/Stream/Parser.pm line 71.
Use of uninitialized value within @_ in lc at /usr/share/perl5/vendor_perl/XML/Stream/Parser.pm line 71.

this is an issue because I want to get valid error messages, but silence when it works fine.

Remove "I<>" from manpage

Hi, and thanks for awesome software!

Currently I have net-im/sendxmpp-1.24 installed in my Gentoo. Config example in manpage looks this way:

CONFIGURATION FILE
       You may define a '~/.sendxmpprc' file with the necessary data for your xmpp-account. Since version 1.24 the following format is supported:

           username: I<your_username>
           jserver: I<jabber_server>
           port: I<jabber_port>
           password: I<your_jabber_password>
           component: I<optional_component_name>

       Example for Google Talk servers:

           username: I<lubomir.host>
           jserver: I<talk.google.com>
           password: I<my-secure-password>
           component: I<gmail.com>

This I<> stuff seems serving purpose of formatting, but it doesn't really work. It comes at a cost because I lost some time trying with config file actually having those symbols.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.