diff options
Diffstat (limited to 'package/tapi_sip/src/agent.h')
-rw-r--r-- | package/tapi_sip/src/agent.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/package/tapi_sip/src/agent.h b/package/tapi_sip/src/agent.h new file mode 100644 index 000000000..795994178 --- /dev/null +++ b/package/tapi_sip/src/agent.h @@ -0,0 +1,41 @@ +#ifndef __AGENT_H__ +#define __AGENT_H__ + +#include "agent.h" + +struct session; +struct agent; + +struct agent_ops { + int (*invite)(struct agent *, struct session *); + int (*accept)(struct agent *, struct session *); + int (*hangup)(struct agent *, struct session *); + + int (*get_endpoint)(struct agent *, struct session *); +}; + +struct agent { + const struct agent_ops *ops; +}; + +static inline int agent_invite(struct agent *agent, struct session *session) +{ + return agent->ops->invite(agent, session); +} + +static inline int agent_accept(struct agent *agent, struct session *session) +{ + return agent->ops->accept(agent, session); +} + +static inline int agent_hangup(struct agent *agent, struct session *session) +{ + return agent->ops->hangup(agent, session); +} + +static inline int agent_get_endpoint(struct agent *agent, struct session *session) +{ + return agent->ops->get_endpoint(agent, session); +} + +#endif |