blob: b5016e49e7ef77c160b47425e05ddffdb32540c3 [file] [log] [blame]
Benny Prijono5dcb38d2005-11-21 01:55:47 +00001/* $Id$ */
2/*
Nanang Izzuddina62ffc92011-05-05 06:14:19 +00003 * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
Benny Prijono32177c02008-06-20 22:44:47 +00004 * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
Benny Prijono5dcb38d2005-11-21 01:55:47 +00005 *
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/**
Benny Prijonoa7b376b2008-01-25 16:06:33 +000024 * @file evsub_msg.h
Benny Prijono5dcb38d2005-11-21 01:55:47 +000025 * @brief SIP Event Notification Headers (RFC 3265)
26 */
27#include <pjsip/sip_msg.h>
28
29/**
Benny Prijono312aff92006-06-17 04:08:30 +000030 * @defgroup PJSIP_EVENT_HDRS Additional Header Fields
Benny Prijono5dcb38d2005-11-21 01:55:47 +000031 * @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{
Benny Prijono312aff92006-06-17 04:08:30 +000046 /** Standard header fields. */
Benny Prijono834aee32006-02-19 01:38:06 +000047 PJSIP_DECL_HDR_MEMBER(struct pjsip_event_hdr);
Benny Prijono312aff92006-06-17 04:08:30 +000048
Benny Prijono5dcb38d2005-11-21 01:55:47 +000049 pj_str_t event_type; /**< Event name. */
50 pj_str_t id_param; /**< Optional event ID parameter. */
Benny Prijono834aee32006-02-19 01:38:06 +000051 pjsip_param other_param; /**< Other parameter. */
Benny Prijono5dcb38d2005-11-21 01:55:47 +000052} 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 */
Benny Prijono834aee32006-02-19 01:38:06 +000067typedef pjsip_generic_array_hdr pjsip_allow_events_hdr;
Benny Prijono5dcb38d2005-11-21 01:55:47 +000068
69
70/**
71 * Create a new Allow-Events header.
72 *
Benny Prijono312aff92006-06-17 04:08:30 +000073 * @param pool The pool.
Benny Prijono5dcb38d2005-11-21 01:55:47 +000074 *
75 * @return Allow-Events header.
76 */
Benny Prijono312aff92006-06-17 04:08:30 +000077PJ_DECL(pjsip_allow_events_hdr*)
78pjsip_allow_events_hdr_create(pj_pool_t *pool);
Benny Prijono5dcb38d2005-11-21 01:55:47 +000079
80
81/**
82 * This structure describes Subscription-State header.
83 */
84typedef struct pjsip_sub_state_hdr
85{
Benny Prijono312aff92006-06-17 04:08:30 +000086 /** Standard header fields. */
Benny Prijono834aee32006-02-19 01:38:06 +000087 PJSIP_DECL_HDR_MEMBER(struct pjsip_sub_state_hdr);
Benny Prijono312aff92006-06-17 04:08:30 +000088
Benny Prijono5dcb38d2005-11-21 01:55:47 +000089 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. */
Benny Prijono834aee32006-02-19 01:38:06 +000093 pjsip_param other_param; /**< Other parameters. */
Benny Prijono5dcb38d2005-11-21 01:55:47 +000094} 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 */
Benny Prijono1f61a8f2007-08-16 10:11:44 +0000108PJ_DECL(void) pjsip_evsub_init_parser(void);
Benny Prijono5dcb38d2005-11-21 01:55:47 +0000109
110
111PJ_END_DECL
112
113
114/**
115 * @}
116 */
117
118#endif /* __PJSIP_SIMPLE_EVENT_NOTIFY_MSG_H__ */
119