XMPP Instant Messaging - Group Rosters

Revision as of 21:39, 15 January 2010 by Heureso (talk | contribs) (cli, script, group rosters, xmpp, im, jabber, instant messaging, distribution list)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

As of ZCS 6.0, it's not possible to create group rosters (where the IM Buddy List is pre-populated with all the members of a group) through the admin web interface. However, it is possible to do so via the IM SOAP API. The following bash script, which should be run from the CLI as the zimbra user, will reciprocally add all members of a Distribution List (defined in the admin web interface). It's not elegant, but it works.

#!/bin/bash

if [ "$#" == "1" ]
then

    members=$(zmsoap --type admin --verbose --zadmin \
              GetDistributionListRequest/dl="$1" @by="name" | \
              grep dlm | sed -e 's/.*<dlm>\(.*\)<\/dlm>/\1/g')

    for member in $members
    do
        for target in $members
        do
            zmsoap --type im --verbose --zadmin \
            --mailbox $member IMSubscribeRequest \
            @addr=$target @op="add"

            zmsoap --type im --verbose --zadmin \
            --mailbox $target IMAuthorizeSubscribeRequest \
            @addr=$member @authorized="true"
        done
    done

else
    echo "$0 usage: $0 group@zimbra.domain.edu"
fi
Jump to: navigation, search