Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
BC
public
external
sofia-sip
Commits
c0c99100
Commit
c0c99100
authored
Sep 28, 2005
by
Pekka Pessi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updated documentation. Glare.
darcs-hash:20050928185045-65a35-e2f9d0e9760d273b130e324bd16ca8538300be67.gz
parent
8f6cf0e5
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
79 additions
and
10 deletions
+79
-10
libsofia-sip-ua/soa/soa.docs
libsofia-sip-ua/soa/soa.docs
+79
-10
No files found.
libsofia-sip-ua/soa/soa.docs
View file @
c0c99100
...
...
@@ -20,6 +20,13 @@ Offer-Answer Model" to establish the multimedia sessions. The
SDP Offer-Answer negotiation is specified in
<a href="http://ietf.org/rfc/rfc3264.txt">RFC 3264</a>.
The soa engine is implemented in object-oriented manner. The default soa
object just implements the basic SDP negotiation and basic SIP call model. A
more complex soa object implementation can manipulate the call model and
initiate actions on behalf of application.
@section soa_model SDP Offer/Answer Model
The basic capabilities provided by Offer/Answer mechanism include
-# generating SDP offer (section 5)
-# processing SDP offer, generating SDP answer (section 6)
...
...
@@ -138,17 +145,24 @@ re-INVITE, there might be quite different things happening. The
application can just return a 200 OK with previous SDP, sometimes
it must indicate call being on hold and sometimes ask user for
permission (for adding video).
Rules for resolving glare (both endpoints trying to send offer at the same
time):
- if a offer is received while UAS has generated an offer,
it must be rejected (with SIP 491 response).
@section soa_use_cases SOA and SDP Offer/Answer Scenarios
Note that due to limitations in space
- soa_set_params() is referred as @c set_params
- soa_set_remote_sdp() is referred as @c set_remote
- soa_generate_offer() is referred as @c gen_offer
- soa_generate_answer() is referred as @c gen_answer
- soa_generate_offer() followed by soa_get_session_sdp()
is referred as @c gen_offer
- soa_generate_answer() followed by soa_get_session_sdp()
is referred as @c gen_answer
- soa_process_answer() is referred as @c proc_answer
@subsection s
u
a_uc_basic_out Basic Call Out
@subsection s
o
a_uc_basic_out Basic Call Out
This is the "basic" outbound call model.
...
...
@@ -181,7 +195,7 @@ This is the "basic" outbound call model.
| | | |
</pre>
@subsection s
u
a_uc_basic_in Basic Call In
@subsection s
o
a_uc_basic_in Basic Call In
This is the "basic" inbound call model.
...
...
@@ -216,7 +230,7 @@ This is the "basic" inbound call model.
| | | |
</pre>
@subsection s
u
a_uc_basic_3p 3rd Party Call In
@subsection s
o
a_uc_basic_3p 3rd Party Call In
The 3rd-party call model just reverses the O/A roles of callee and caller.
...
...
@@ -249,7 +263,7 @@ The 3rd-party call model just reverses the O/A roles of callee and caller.
| | | |
</pre>
@subsection s
u
a_uc_early_out Callout with Early Media
@subsection s
o
a_uc_early_out Callout with Early Media
It is possible to establish media session before call is completed. In this
case, the 180 Ringing contains the SDP answer. A copy of SDP answer is
...
...
@@ -290,7 +304,7 @@ time to establish the media session.
| | | |
</pre>
@subsection s
u
a_uc_early_in Call In Establishing Early Media
@subsection s
o
a_uc_early_in Call In Establishing Early Media
The mirror of the previous scenario:
...
...
@@ -328,7 +342,7 @@ The mirror of the previous scenario:
that callee sends a ringing tone towards caller and discards any media sent
by caller until the call is accepted (200 OK is sent towards caller).
@subsection s
u
a_uc_100rel_out Call Out with PRACK
@subsection s
o
a_uc_100rel_out Call Out with PRACK
Here is second alternative establishing media session before call is
completed. In this case, the 180 Ringing contains the SDP answer. The 180
...
...
@@ -374,7 +388,7 @@ request.
| | | |
</pre>
@subsection s
u
a_uc_100rel_in Call In with PRACK
@subsection s
o
a_uc_100rel_in Call In with PRACK
The mirror of the previous scenario:
...
...
@@ -704,4 +718,59 @@ establishes the call:
| | |
</pre>
@section soa_use_case_10 Case #10: Upgrade Session with Re-INVITE
The session is upgraded: a new media is added to the session.
<pre>
A B
| |
|----INVITE (offer1)--->|
| |
| |
|< - - 180 Ringing - - -|
| |
| |
|<----200 (answer2)-----|
|----------ACK--------->|
| |
| |
| |
| |
|----INVITE (offer2)--->|
| |
|<----200 (answer2)-----|
|----------ACK--------->|
| |
| |
</pre>
@section soa_use_case_10 Case #10: Upgrade Session with Re-INVITE
The session upgraded is rejected.
<pre>
A B
| |
|----INVITE (offer1)--->|
| |
| |
|< - - 180 Ringing - - -|
| |
| |
|<----200 (answer2)-----|
|----------ACK--------->|
| |
| |
| |
| |
|----INVITE (offer2)--->|
| |
|<---------488----------|
|----------ACK--------->|
| |
| |
</pre>
*/
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment