1
<refentry id="osipua-OsipCallLeg-private-API">
3
<refentrytitle>OsipCallLeg private API</refentrytitle>
4
<manvolnum>3</manvolnum>
5
<refmiscinfo>OSIPUA Library</refmiscinfo>
9
<refname>OsipCallLeg private API</refname><refpurpose>This is the OsipCallLeg api that is used inside the osipua library.
10
This part of documentation should only concern osipua developpers.</refpurpose>
13
<refsynopsisdiv><title>Synopsis</title>
17
#include <osipua.h>
20
<link linkend="OsipDialog">OsipDialog</link>* <link linkend="osip-dialog-new-from-incoming-trn">osip_dialog_new_from_incoming_trn</link>
21
(<link linkend="transaction-t">transaction_t</link> *trn);
22
int <link linkend="osip-dialog-send-request">osip_dialog_send_request</link> (<link linkend="OsipDialog">OsipDialog</link> *call_leg,
23
<link linkend="sip-t">sip_t</link> *sipmsg);
24
void <link linkend="osip-dialog-ack">osip_dialog_ack</link> (<link linkend="OsipDialog">OsipDialog</link> *call,
25
<link linkend="transaction-t">transaction_t</link> *trn);
26
void <link linkend="osip-dialog-send-response">osip_dialog_send_response</link> (<link linkend="OsipDialog">OsipDialog</link> *call,
27
<link linkend="transaction-t">transaction_t</link> *trn,
28
<link linkend="sip-t">sip_t</link> *resp);
29
void <link linkend="osip-dialog-respond">osip_dialog_respond</link> (<link linkend="OsipDialog">OsipDialog</link> *call,
30
<link linkend="transaction-t">transaction_t</link> *trn,
32
void <link linkend="osip-dialog-update-from-response">osip_dialog_update_from_response</link>
33
(<link linkend="OsipDialog">OsipDialog</link> *call,
34
<link linkend="sip-t">sip_t</link> *resp);
35
void <link linkend="osip-dialog-release">osip_dialog_release</link> (<link linkend="OsipDialog">OsipDialog</link> *call);
36
int <link linkend="osip-dialog-destroy">osip_dialog_destroy</link> (<link linkend="OsipDialog">OsipDialog</link> *call);
47
<title>Description</title>
54
<title>Details</title>
56
<title><anchor id="osip-dialog-new-from-incoming-trn">osip_dialog_new_from_incoming_trn ()</title>
57
<programlisting><link linkend="OsipDialog">OsipDialog</link>* osip_dialog_new_from_incoming_trn
58
(<link linkend="transaction-t">transaction_t</link> *trn);</programlisting>
60
Create a new call-leg from an initial incoming request. The function
61
assumes that there is no existing call-leg that match the new request.
62
You should use #<link linkend="osip-dialog-find">osip_dialog_find</link>() to check this.</para>
65
</para><variablelist role="params">
66
<varlistentry><term><parameter>trn</parameter> :</term>
67
<listitem><simpara> an incoming transaction
68
</simpara></listitem></varlistentry>
69
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a new call leg.
70
</simpara></listitem></varlistentry>
71
</variablelist></refsect2>
73
<title><anchor id="osip-dialog-send-request">osip_dialog_send_request ()</title>
74
<programlisting>int osip_dialog_send_request (<link linkend="OsipDialog">OsipDialog</link> *call_leg,
75
<link linkend="sip-t">sip_t</link> *sipmsg);</programlisting>
77
Sends a sip request. The transaction is created to wrap the request and
78
to the list of transaction of call-leg <parameter>call_leg</parameter>.</para>
81
</para><variablelist role="params">
82
<varlistentry><term><parameter>call_leg</parameter> :</term>
83
<listitem><simpara> a call-leg.
84
</simpara></listitem></varlistentry>
85
<varlistentry><term><parameter>sipmsg</parameter> :</term>
86
<listitem><simpara> a sip request.
87
</simpara></listitem></varlistentry>
88
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> 0 if successfull.
89
</simpara></listitem></varlistentry>
90
</variablelist></refsect2>
92
<title><anchor id="osip-dialog-ack">osip_dialog_ack ()</title>
93
<programlisting>void osip_dialog_ack (<link linkend="OsipDialog">OsipDialog</link> *call,
94
<link linkend="transaction-t">transaction_t</link> *trn);</programlisting>
96
This function generates and sends an ACK request that will end the
97
transaction <parameter>trn</parameter>. Must never be called outside the osip callbacks.</para>
100
</para><variablelist role="params">
101
<varlistentry><term><parameter>call</parameter> :</term>
102
<listitem><simpara> a call-leg.
103
</simpara></listitem></varlistentry>
104
<varlistentry><term><parameter>trn</parameter> :</term>
105
<listitem><simpara> a transaction part of the dialog.
106
</simpara></listitem></varlistentry>
107
</variablelist></refsect2>
109
<title><anchor id="osip-dialog-send-response">osip_dialog_send_response ()</title>
110
<programlisting>void osip_dialog_send_response (<link linkend="OsipDialog">OsipDialog</link> *call,
111
<link linkend="transaction-t">transaction_t</link> *trn,
112
<link linkend="sip-t">sip_t</link> *resp);</programlisting>
114
Sends the response <parameter>resp</parameter> that will be part of the transaction <parameter>trn</parameter>,
115
trn being part of the call-leg <parameter>call</parameter>.</para>
118
</para><variablelist role="params">
119
<varlistentry><term><parameter>call</parameter> :</term>
120
<listitem><simpara> a call-leg
121
</simpara></listitem></varlistentry>
122
<varlistentry><term><parameter>trn</parameter> :</term>
123
<listitem><simpara> a transaction
124
</simpara></listitem></varlistentry>
125
<varlistentry><term><parameter>resp</parameter> :</term>
126
<listitem><simpara> a sip response
127
</simpara></listitem></varlistentry>
128
</variablelist></refsect2>
130
<title><anchor id="osip-dialog-respond">osip_dialog_respond ()</title>
131
<programlisting>void osip_dialog_respond (<link linkend="OsipDialog">OsipDialog</link> *call,
132
<link linkend="transaction-t">transaction_t</link> *trn,
133
int code);</programlisting>
135
This function creates a sip response in the context of the call-leg <parameter>call</parameter>
136
for the last transaction and sends it automatically.
137
A sdp body can be optionnaly appended to the response.</para>
140
</para><variablelist role="params">
141
<varlistentry><term><parameter>call</parameter> :</term>
142
<listitem><simpara> a call-leg.
143
</simpara></listitem></varlistentry>
144
<varlistentry><term><parameter>trn</parameter> :</term>
146
</simpara></listitem></varlistentry>
147
<varlistentry><term><parameter>code</parameter> :</term>
148
<listitem><simpara> the code of the response.
149
</simpara></listitem></varlistentry>
150
</variablelist></refsect2>
152
<title><anchor id="osip-dialog-update-from-response">osip_dialog_update_from_response ()</title>
153
<programlisting>void osip_dialog_update_from_response
154
(<link linkend="OsipDialog">OsipDialog</link> *call,
155
<link linkend="sip-t">sip_t</link> *resp);</programlisting>
158
</para><variablelist role="params">
159
<varlistentry><term><parameter>call</parameter> :</term>
161
</simpara></listitem></varlistentry>
162
<varlistentry><term><parameter>resp</parameter> :</term>
166
</simpara></listitem></varlistentry>
167
</variablelist></refsect2>
169
<title><anchor id="osip-dialog-release">osip_dialog_release ()</title>
170
<programlisting>void osip_dialog_release (<link linkend="OsipDialog">OsipDialog</link> *call);</programlisting>
172
Release a dialog. You can't use it anymore, and the object will be
173
destroyed by the stack when the last transaction of the call-leg
174
will terminate, either by successfull completion or timeout.</para>
177
</para><variablelist role="params">
178
<varlistentry><term><parameter>call</parameter> :</term>
182
</simpara></listitem></varlistentry>
183
</variablelist></refsect2>
185
<title><anchor id="osip-dialog-destroy">osip_dialog_destroy ()</title>
186
<programlisting>int osip_dialog_destroy (<link linkend="OsipDialog">OsipDialog</link> *call);</programlisting>
188
Destroy a call-leg and all data associated with it.
189
BUT: this function should not be called directly. You should use
190
<link linkend="osip-dialog-release">osip_dialog_release</link> instead to schedule the destruction of the call
194
</para><variablelist role="params">
195
<varlistentry><term><parameter>call</parameter> :</term>
196
<listitem><simpara> a call-leg.
197
</simpara></listitem></varlistentry>
198
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>0.
199
</simpara></listitem></varlistentry>
200
</variablelist></refsect2>