2 * Asterisk -- An open source telephony toolkit.
4 * Copyright (C) 1999 - 2005, Digium, Inc.
6 * Matt O'Gorman <mogorman@digium.com>
8 * See http://www.asterisk.org for more information about
9 * the Asterisk project. Please do not directly contact
10 * any of the maintainers of this project for assistance;
11 * the project provides a web site, mailing lists and IRC
12 * channels for your use.
14 * This program is free software, distributed under the terms of
15 * the GNU General Public License Version 2. See the LICENSE file
16 * at the top of the source tree.
19 #ifndef _ASTERISK_JABBER_H
20 #define _ASTERISK_JABBER_H
23 #include "asterisk/astobj.h"
24 #include "asterisk/linkedlists.h"
33 AJI_AUTOPRUNE
= (1 << 0),
34 AJI_AUTOREGISTER
= (1 << 1)
46 struct aji_capabilities
*parent
;
47 struct aji_version
*next
;
50 struct aji_capabilities
{
52 struct aji_version
*versions
;
53 struct aji_capabilities
*next
;
60 struct aji_version
*cap
;
62 struct aji_resource
*next
;
70 AST_LIST_ENTRY(aji_message
) list
;
74 ASTOBJ_COMPONENTS(struct aji_buddy
);
75 struct aji_resource
*resources
;
79 struct aji_buddy_container
{
80 ASTOBJ_CONTAINER_COMPONENTS(struct aji_buddy
);
83 struct aji_transport_container
{
84 ASTOBJ_CONTAINER_COMPONENTS(struct aji_transport
);
88 ASTOBJ_COMPONENTS(struct aji_client
);
93 char statusmessage
[256];
94 char sid
[10]; /* Session ID */
95 char mid
[6]; /* Message ID */
100 enum aji_state state
;
112 int component
; /* 0 client, 1 component */
113 struct aji_buddy_container buddies
;
114 AST_LIST_HEAD(messages
,aji_message
) messages
;
119 struct aji_client_container
{
120 ASTOBJ_CONTAINER_COMPONENTS(struct aji_client
);
123 int ast_aji_send(struct aji_client
*client
, const char *address
, const char *message
);
124 int ast_aji_disconnect(struct aji_client
*client
);
125 int ast_aji_check_roster(void);
126 void ast_aji_increment_mid(char *mid
);
127 int ast_aji_create_chat(struct aji_client
*client
,char *room
, char *server
, char *topic
);
128 int ast_aji_invite_chat(struct aji_client
*client
, char *user
, char *room
, char *message
);
129 int ast_aji_join_chat(struct aji_client
*client
,char *room
);
130 struct aji_client
*ast_aji_get_client(const char *name
);
131 struct aji_client_container
*ast_aji_get_clients(void);