You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mediaproxy-ng/daemon/call.h

99 lines
1.5 KiB

#ifndef __CALL_H__
#define __CALL_H__
#include <sys/types.h>
#include "ipt_MEDIAPROXY.h"
struct poller;
struct control_stream;
struct peer;
struct callstream;
struct call;
struct callmaster;
struct stream {
u_int32_t ip;
u_int16_t port;
char *mediatype;
};
struct streamrelay {
int fd;
struct stream peer;
u_int16_t localport;
unsigned char idx;
struct peer *up;
struct mediaproxy_stats stats;
struct mediaproxy_stats kstats;
time_t last;
};
struct peer {
struct streamrelay rtps[2];
char *tag;
char *mediatype;
char *codec;
unsigned char idx;
struct callstream *up;
int kernelized:1;
int filled:1;
int confirmed:1;
};
struct callstream {
struct peer peers[2];
struct call *call;
};
struct call {
struct callmaster *callmaster;
GQueue *callstreams;
char *callid;
time_t created;
char *calling_agent;
char *called_agent;
GHashTable *infohash;
};
struct callmaster {
GHashTable *callhash;
u_int16_t lastport;
struct mediaproxy_stats statsps;
struct mediaproxy_stats stats;
struct poller *poller;
int kernelfd;
unsigned int kernelid;
u_int32_t ip;
unsigned int timeout;
unsigned int silent_timeout;
unsigned char tos;
};
struct callmaster *callmaster_new(struct poller *);
char *call_request(const char **, struct callmaster *);
char *call_lookup(const char **, struct callmaster *);
void call_delete(const char **, struct callmaster *);
void calls_status(struct callmaster *, struct control_stream *);
#endif