adamvduke / mod_interact

A module to forward certain ejabberd notifications to an arbitrary url
89 stars 30 forks source link

Purpose:

Forward several types of messages as post requests to an arbitrary url.

mod_offline_post forwards messages that are sent to offline users through a post request to a configurable url mod_available_post sends a post request with information about a user that has become available mod_unavailable_post sends a post request with information about a user that has gone offline

Note:

Between ejabberd 2.1.13 and 13.10 there were significant changes and modules compiled for one version don't directly work with the other version. There is an ejabberd_2.1.13 branch for versions of these modules that work with ejabberd 2.1.13

Installing:

Example Configuration:

    % configuration for ejabberd upto version 13.10
    {mod_offline_post, [
        {auth_token, "offline_post_auth_token"},
        {post_url, "http://localhost:4567/offline_post"}
    ]}
    {mod_available_post, [
        {auth_token, "mod_available_post"},
        {post_url, "http://localhost:4567/available_post"}
    ]}
    {mod_unavailable_post, [
        {auth_token, "unavailable_post_auth_token"},
        {post_url, "http://localhost:4567/unavailable_post"}
    ]}

# configuration for ejabberd >= 13.10
    mod_offline_post:
        auth_token: "offline_post_auth_token"
        post_url: "http://localhost:4567/offline_post"

    mod_available_post:
        auth_token: "available_post_auth_token"
        post_url: "http://localhost:4567/available_post"

    mod_unavailable_post:
        auth_token: "unavailable_post_auth_token"
        post_url: "http://localhost:4567/unavailable_post"

Results:

The application running at the post_url will receive a post http request with the following form parameters.

    mod_offline_post
    "to"=>"adam2@localhost"
    "from"=>"adam1"
    "body"=>"Does it still work?"
    "access_token"=>"offline_post_auth_token"

    mod_available_post
    "jabber_id"=>"adam2"
    "access_token"=>"mod_available_post"

    mod_unavailable_post
    "jabber_id"=>"adam2"
    "access_token"=>"unavailable_post_auth_token"

License

The modules herein are almost entirely based on mod_offline_prowl written by Robert George rgeorge@midnightweb.net They retain the original author's license.

The original post about mod_offline_prowl can be found here