blob: 64035e297d276849a6e98f8c0a647b2040f1397a [file] [log] [blame]
Alexandre Lision8af73cb2013-12-10 14:11:20 -05001/* $Id: evsub_msg.h 3553 2011-05-05 06:14:19Z nanang $ */
Tristan Matthews0a329cc2013-07-17 13:20:14 -04002/*
3 * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
4 * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#ifndef __PJSIP_SIMPLE_EVENT_NOTIFY_MSG_H__
21#define __PJSIP_SIMPLE_EVENT_NOTIFY_MSG_H__
22
23/**
24 * @file evsub_msg.h
25 * @brief SIP Event Notification Headers (RFC 3265)
26 */
27#include <pjsip/sip_msg.h>
28
29/**
30 * @defgroup PJSIP_EVENT_HDRS Additional Header Fields
31 * @ingroup PJSIP_EVENT_NOT
32 * @{
33 */
34
35PJ_BEGIN_DECL
36
37
38/** Max events in Allow-Events header. */
39#define PJSIP_MAX_ALLOW_EVENTS 16
40
41/**
42 * This structure describes Event header.
43 */
44typedef struct pjsip_event_hdr
45{
46 /** Standard header fields. */
47 PJSIP_DECL_HDR_MEMBER(struct pjsip_event_hdr);
48
49 pj_str_t event_type; /**< Event name. */
50 pj_str_t id_param; /**< Optional event ID parameter. */
51 pjsip_param other_param; /**< Other parameter. */
52} pjsip_event_hdr;
53
54/**
55 * Create an Event header.
56 *
57 * @param pool The pool.
58 *
59 * @return New Event header instance.
60 */
61PJ_DECL(pjsip_event_hdr*) pjsip_event_hdr_create(pj_pool_t *pool);
62
63
64/**
65 * This structure describes Allow-Events header.
66 */
67typedef pjsip_generic_array_hdr pjsip_allow_events_hdr;
68
69
70/**
71 * Create a new Allow-Events header.
72 *
73 * @param pool The pool.
74 *
75 * @return Allow-Events header.
76 */
77PJ_DECL(pjsip_allow_events_hdr*)
78pjsip_allow_events_hdr_create(pj_pool_t *pool);
79
80
81/**
82 * This structure describes Subscription-State header.
83 */
84typedef struct pjsip_sub_state_hdr
85{
86 /** Standard header fields. */
87 PJSIP_DECL_HDR_MEMBER(struct pjsip_sub_state_hdr);
88
89 pj_str_t sub_state; /**< Subscription state. */
90 pj_str_t reason_param; /**< Optional termination reason. */
91 int expires_param; /**< Expires param, or -1. */
92 int retry_after; /**< Retry after param, or -1. */
93 pjsip_param other_param; /**< Other parameters. */
94} pjsip_sub_state_hdr;
95
96/**
97 * Create new Subscription-State header.
98 *
99 * @param pool The pool.
100 *
101 * @return Subscription-State header.
102 */
103PJ_DECL(pjsip_sub_state_hdr*) pjsip_sub_state_hdr_create(pj_pool_t *pool);
104
105/**
106 * Initialize parser for event notify module.
107 */
108PJ_DECL(void) pjsip_evsub_init_parser(void);
109
110
111PJ_END_DECL
112
113
114/**
115 * @}
116 */
117
118#endif /* __PJSIP_SIMPLE_EVENT_NOTIFY_MSG_H__ */
119