diff --git a/DBus-service.md b/DBus-service.md index 524cdfe..55d4658 100644 --- a/DBus-service.md +++ b/DBus-service.md @@ -43,6 +43,7 @@ For an example of sending a group message through the dbus interface, see [#272] ### Receive messages from signal-cli daemon The signal-cli daemon publishes new messages to dbus. + Here's an example using python: ```python3 @@ -61,3 +62,28 @@ signal = bus.get('org.asamk.Signal') signal.onMessageReceived = msgRcv loop.run() ``` +Here's an example using Perl: +```perl +#!/bin/perl + +use Modern::Perl; + +use Net::DBus; +use Net::DBus::Reactor; + +sub msgRcv { + my ($timestamp, $sender, $groupID, $message, $attachments) = @_; + print "Message: $message\nSender: $sender\nTimestamp: $timestamp\nAttachments: $attachments\n"; + return; +} + +my $bus = Net::DBus->system(); +my $sig = $bus->get_service("org.asamk.Signal"); +my $obj = $sig->get_object("/org/asamk/Signal","org.asamk.Signal"); +my $sigid = $obj->connect_to_signal('MessageReceived', \&msgRcv); + +my $reactor=Net::DBus::Reactor->main(); +$reactor->run(); + +exit 0; +``` \ No newline at end of file