[ejabberd] Adding custom field to mod_vcard

Badlop badlop at gmail.com
Thu Apr 27 10:35:18 MSK 2017

After quick thinking how to add new fields to the vcard, I see three ideas.

1. As you probably found, you have to add new fields, which implies
modifying source code and table schema, and then update the table you
already have (either some SQL sentence, or writting code for mnesia).

2. Reinterpret existing fields: some that you don't consider relevant,
rename them from the point of view of the users. This requires
changing the clients, and/or few source code changes (only the
labels), no table schema changes.

3. Use the existing DESC field to add your custom fields in a
plaintext format. Example:
<iq to='user1 at localhost/tka1'
  from='user1 at localhost'
  <vCard xmlns='vcard-temp'>
    <FN>my fullname</FN>
    <NICKNAME>my nick</NICKNAME>
    <DESC>FIELD1: hoho
FIELD2: haha</DESC>


On 25 April 2017 at 13:49, Abhishek Ranjan <abhishek at blacklightsw.com> wrote:
> Hi,
> I have been dealing with the vcards of a user while building the chat
> application using ejabberd as server. Now I wanted to add custom attributes
> to the vcard say employee blood group,hobbies etc. I have been told that
> whenever I am trying to add anything custom to the ejabberd. I should use
> either iq handlers or hooks. But since vcard values are present in the form
> of records defined in mod_vcard.hrl, how can a I add only few attributes
> like given above to an existing lot already present in vcard and If i will
> create the complete new record won't there be a clash between the new vcard
> values and the older ones.
> Since I want the new attributes to get stored inside the existing tables(sql
> and mnesia) only, can anyone suggest me how to go about it.
> Regards,
> Abhishek Ranjan
> _______________________________________________
> ejabberd mailing list
> ejabberd at jabber.ru
> http://lists.jabber.ru/mailman/listinfo/ejabberd

More information about the ejabberd mailing list