XMPP Instant Messaging - Group Rosters

From Zimbra :: Wiki

Jump to: navigation, search
   Article-alert.png  - This article is a community contribution and may include unsupported customizations for network edition customers.


Admin Article

Article Information

This article applies to the following ZCS versions.
  ZCS 6.0 Article  ZCS 6.0

NOTE: I have tested this on 6.0.6GA. The 'zimbraPrefFromDisplay' attribute was not present in the output of the 'zmmailbox' command, so instead I used the 'username' part of the email address the display name. Not ideal, but it works. - switch007

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. This functionality is slated for ZCS 7.0. 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
            if [ $member != $target ]
            then
                username=$(echo $target|cut -d@ -f1)
                zmsoap --type im --verbose --zadmin \
                --mailbox $member IMSubscribeRequest \
                @addr=$target @name="$username" @op="add"

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

else
    echo "$0 usage: $0 group@zimbra.domain.edu"
fi


Verified Against: ZCS 6.0 Date Created: 1/15/1010
Article ID: http://wiki.zimbra.com/index.php?title=XMPP_Instant_Messaging_-_Group_Rosters Date Modified: 5/5/2010