soa  1.12.11devel
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
soa.h
Go to the documentation of this file.
1 /*
2  * This file is part of the Sofia-SIP package
3  *
4  * Copyright (C) 2005 Nokia Corporation.
5  *
6  * Contact: Pekka Pessi <pekka.pessi@nokia-email.address.hidden>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License
10  * as published by the Free Software Foundation; either version 2.1 of
11  * the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
21  * 02110-1301 USA
22  *
23  */
24 
25 #ifndef SOA_H
26 
27 #define SOA_H
28 
36 #ifndef SU_WAIT_H
37 #include <sofia-sip/su_wait.h>
38 #endif
39 #ifndef SU_TAG_H
40 #include <sofia-sip/su_tag.h>
41 #endif
42 
43 SOFIA_BEGIN_DECLS
44 
45 typedef struct soa_session soa_session_t;
46 
47 struct sdp_session_s;
48 
49 #ifndef SOA_MAGIC_T
50 #define SOA_MAGIC_T void
51 #endif
52 
53 typedef SOA_MAGIC_T soa_magic_t;
54 
55 typedef int soa_callback_f(soa_magic_t *arg, soa_session_t *session);
56 
57 SOFIAPUBFUN soa_session_t *soa_create(char const *name, su_root_t *, soa_magic_t *);
58 
60 
62 
64  tag_type_t tag, tag_value_t value, ...);
66  tag_type_t tag, tag_value_t value, ...);
67 
69  tag_type_t tag, tag_value_t value, ...);
70 
72  char const **return_phrase);
73 
75 
76 SOFIAPUBFUN int soa_get_warning(soa_session_t *ss, char const **return_phrase);
77 
79  struct sdp_session_s const *sdp,
80  char const *str, issize_t len);
81 
83  struct sdp_session_s const **return_sdp,
84  char const **return_sdp_str,
85  isize_t *return_len);
86 
88  struct sdp_session_s const *sdp,
89  char const *str, issize_t len);
90 
92  struct sdp_session_s const **return_sdp,
93  char const **return_sdp_str,
94  isize_t *return_len);
95 
97 
99 
101  struct sdp_session_s const *sdp,
102  char const *str, issize_t len);
103 
105  struct sdp_session_s const **return_sdp,
106  char const **return_sdp_str,
107  isize_t *return_len);
108 
110 
112  struct sdp_session_s const **return_sdp,
113  char const **return_sdp_str,
114  isize_t *return_len);
115 
116 SOFIAPUBFUN char const * const * soa_sip_require(soa_session_t const *ss);
117 SOFIAPUBFUN char const * const * soa_sip_supported(soa_session_t const *ss);
118 
119 SOFIAPUBFUN int soa_remote_sip_features(soa_session_t *ss,
120  char const * const * support,
121  char const * const * required);
122 
123 SOFIAPUBFUN char **soa_media_features(soa_session_t *ss, int live, su_home_t *home);
124 
125 SOFIAPUBFUN int soa_generate_offer(soa_session_t *, int always, soa_callback_f *);
126 SOFIAPUBFUN int soa_generate_answer(soa_session_t *, soa_callback_f *);
127 SOFIAPUBFUN int soa_process_answer(soa_session_t *, soa_callback_f *);
128 SOFIAPUBFUN int soa_process_reject(soa_session_t *, soa_callback_f *);
129 
130 SOFIAPUBFUN int soa_activate(soa_session_t *, char const *option);
131 SOFIAPUBFUN int soa_deactivate(soa_session_t *, char const *option);
132 
133 SOFIAPUBFUN void soa_terminate(soa_session_t *, char const *option);
134 
136 
138 
143 
148 
150 
151 SOFIAPUBFUN int soa_tag_filter(tagi_t const *f, tagi_t const *t);
152 
153 SOFIA_END_DECLS
154 
155 #endif

Sofia-SIP 1.12.11devel - Copyright (C) 2006 Nokia Corporation. All rights reserved. Licensed under the terms of the GNU Lesser General Public License.