amiws 2.2.1
Loading...
Searching...
No Matches
amipack.h
Go to the documentation of this file.
1
20
29
30#ifndef __AMIP_H
31#define __AMIP_H
32
33#include <stdlib.h>
34#include <string.h>
35
40#define amipack_length(pack) (pack)->length + 2
41
43#define amipack_type(pack, ptype) (pack)->type = ptype
44
46#define amipack_size(pack) (pack)->size
47
49#define amipack_append_action(pack, val, len) amipack_append((pack), strdup("Action"), 6, val, len)
50
53 AMI_UNKNOWN,
54 AMI_PROMPT,
55 AMI_ACTION,
56 AMI_EVENT,
57 AMI_RESPONSE,
58 AMI_RESPCMD,
59 AMI_QUEUE
60};
61
65typedef struct AMIVer_ {
66 unsigned short major;
67 unsigned short minor;
68 unsigned short patch;
70
74typedef struct AMIHeader_ {
75
76 char *name;
77 size_t name_size;
78 char *value;
79 size_t value_size;
80
81 struct AMIHeader_ *next;
82
84
89typedef struct AMIQueue_ {
90 char *name;
91 int calls;
92 int maxlen;
93 char *strategy;
94 int holdtime;
95 int talktime;
96 int weight;
97 int callscompleted;
98 int callsabandoned;
99 char *sl;
100 int sl_sec;
101 int members_size;
102 int callers_size;
103
105
109typedef struct AMIPacket_ {
110
111 int size;
112
113 int sid;
114
115 size_t length;
116
118
121
123
130
135void amipack_destroy(AMIPacket *pack);
136
142
148
158AMIHeader *amiheader_create(char *name, size_t name_size, char *value, size_t value_size);
159
165
174size_t amipack_to_str(AMIPacket *pack, char **pstr);
175
182size_t amiheader_to_str(AMIHeader *hdr, char *buf);
183
195int amipack_append(AMIPacket *pack, char *hdr_name, size_t name_size, char *hdr_value, size_t value_size);
196
203int amipack_list_append (AMIPacket *pack, AMIHeader *header);
204
214size_t amiheader_find(AMIPacket *pack, const char *name, char **value);
215
221enum pack_type amipack_parser_detect (const char *packet);
222
231int amipack_parser_prompt (const char *packet, AMIVer *version);
232
238AMIPacket *amipack_parser_message (const char *pack_str);
239
245AMIPacket *amipack_parser_command (const char *packet);
246
252AMIQueue *amipack_parser_queue (const char *packet);
253
254#endif
void amiheader_destroy(AMIHeader *hdr)
Definition amipack.c:88
void amipack_queue_destroy(AMIQueue *queue)
Definition amipack.c:79
AMIQueue * amipack_parser_queue(const char *packet)
Definition amipack_parser_queue.c:62
enum pack_type amipack_parser_detect(const char *packet)
Definition amipack_parser_detect.c:32
AMIPacket * amipack_init()
Definition amipack.c:45
AMIPacket * amipack_parser_command(const char *packet)
Definition amipack_parser_command.c:32
size_t amiheader_to_str(AMIHeader *hdr, char *buf)
Definition amipack.c:142
struct AMIQueue_ AMIQueue
size_t amiheader_find(AMIPacket *pack, const char *name, char **value)
Definition amipack.c:221
void amipack_destroy(AMIPacket *pack)
Definition amipack.c:122
size_t amipack_to_str(AMIPacket *pack, char **pstr)
Definition amipack.c:162
int amipack_append(AMIPacket *pack, char *hdr_name, size_t name_size, char *hdr_value, size_t value_size)
Definition amipack.c:188
struct AMIHeader_ AMIHeader
AMIPacket * amipack_parser_message(const char *pack_str)
Definition amipack_parser_message.c:35
pack_type
Definition amipack.h:52
int amipack_list_append(AMIPacket *pack, AMIHeader *header)
Definition amipack.c:200
struct AMIPacket_ AMIPacket
AMIQueue * amipack_queue_init()
Definition amipack.c:58
int amipack_parser_prompt(const char *packet, AMIVer *version)
Definition amipack_parser_prompt.c:41
AMIHeader * amiheader_create(char *name, size_t name_size, char *value, size_t value_size)
Definition amipack.c:102
struct AMIVer_ AMIVer
Definition amipack.h:74
char * value
Definition amipack.h:78
struct AMIHeader_ * next
Definition amipack.h:81
size_t name_size
Definition amipack.h:77
char * name
Definition amipack.h:76
size_t value_size
Definition amipack.h:79
Definition amipack.h:109
enum pack_type type
Definition amipack.h:117
size_t length
Definition amipack.h:115
AMIHeader * head
Definition amipack.h:119
int sid
Definition amipack.h:113
AMIHeader * tail
Definition amipack.h:120
int size
Definition amipack.h:111
Definition amipack.h:89
char * sl
Definition amipack.h:99
int maxlen
Definition amipack.h:92
Definition amipack.h:65
unsigned short minor
Definition amipack.h:67
unsigned short patch
Definition amipack.h:68
unsigned short major
Definition amipack.h:66