· If more than one contact issent in a register request,
Registering UA intends toassociate all of the URIs in these contact
Header field values with theaddress-of-record present in the
Field. This list can beprioritized with the "Q" parameter in
Contact Header field. The "Q" parameter indicates a relative
Preference for theparticular contact header field value compared
Other Bindings for thisaddress-of-record. Section 16.6 describes
How a proxy server uses thispreference indication.
--- 10.2.1.2preferences among contact addresses
How do I understand the "Q" parameter of contact?
· Independent of the method, if a request outside of a dialog generates
A non-2xx final response, any early dialogscreated through
Provisional responses to that request areterminated.
The mechanic
For terminating confirmed dialogs is methodspecific.
In this
Specification, the bye method terminates asession and the Dialog
Associated with it.
See section 15 for details.
--- 12.3 termination of a dialog
Note: For more information, see a UA must not send a bye outside of a dialog. Therefore, when cancel ends an earlier session, you must send a 487 request terminated message to end the session.
· If the invite requestcontained an offer, and the UAS had not yet
Sent an answer, the 2XX mustcontain an answer. If the invite did
Not contain an offer, the2xx must contain an offer if the UAS had
Not yet sent an offer.
--- 13.3.1.4the invite is accepted
Note: How to understand it?
· Therefore, it is necessary
To periodically pass theresponse directly to the transport until
Ack arrives. The 2 xxresponse is passed to the transport with
Interval that starts at t1seconds and doubles for each
Retransmission until itreaches T2 seconds (t1 and t2 are defined in
Section 17). responseretransmissions cease when an ACK request
The response is wrongly ed. Thisis independent of whatever transport
Protocols are used to sendthe response.
If the server retransmitsthe 2XX response for 64 * T1 seconds
Refreshing an ACK, The dialogis confirmed, but the session shocould be
Terminated. This isaccomplished with a bye, as described in Section
15.
--- 13.3.1.4the invite is accepted
It seems that 200 OK transmission is reliable.
· A stateful proxy has aserver
Transaction associated withone or more client transactions by
Higher layer proxyprocessing component (see figure 3), known as
Proxy core. An incomingrequest is processed by a server
Transaction. Requests fromthe server transaction are passed to
Proxy core. The proxy coredetermines where to route the request,
Choosing one or morenext-hop locations. An outgoing request
Each next-hop location isprocessed by its own associated Client
Transaction. The proxy corecollects the responses from the client
Transactions and uses themto send responses to the server
Transaction.
A stateful proxy creates anew server transaction for each new
Request received ed. anyretransmissions of the request will be
Handled by that servertransaction per section 17
--- 16.2 stateful proxy
Note: The UDP re-transmission mechanism can be used for reference.
· When the user hangs up, itindicates a desire
Terminate the attempt toestablish a session, and to terminate any
Sessions already created
--- 15 terminating a session
There are two types of sessions: uncreated and created
· Once the bye is constructed, the UAC core creates a new non-invite
Client Transaction, andpasses it the bye request. The UAC must
Consider the sessionterminated (and therefore stop sending or
Listening for media) as soonas the bye request is passed to
Client Transaction. If theresponse for the bye is a 481
(Call/transaction does notexist) or a 408 (request timeout) or no
Response at all is receivedfor the bye (that is, a timeout is
Returned by the clienttransaction), The UAC must consider
Session and the dialogterminated.
This rule means that a byesent without tags by a UAC will be
Rejected (A 481 call/transaction does not exist response
). This is a change from rfc2543, which allowed bye
Without tags.
--- 15.1.1 uacbehavior
· Sip proxies are elementsthat route SIP requests to user agent
Servers and SIP responses touser agent clients.
......
Responses will route throughthe same set of proxies
Traversed by the request inthe reverse order.
--- 16.1 Overview
SIP proxy Concept
· When
A connection is opened by the transportlayer, this index is set
Thedestination IP, port and transport.
Whenthe connection is
Accepted by the transport layer, this indexis set to the Source IP
Address, port number, and transport.
--- 18 transport
Note: source IP is for UAC, while destination IP is for UAS.
· Before a request is sent, the client transportmust insert a value
The "sent-by" field into the viaheader field.
This field contains
An IP address or host name, and port.
18.1.1 sendingrequests
Note: The modal message is must, but the package I caught has not seen
"Sent-by" Field
· When a Tel URL (RFC 2806 [9]) is converted to a SIP or sips uri,
Entire telephone-subscriber portion of thetel URL, including any
Parameters, is placed into the userinfo partof the SIP or sips uri.
Thus, Tel: + 358-555-1234567; postd = pp22 becomes
SIP: + 358-555-1234567; postd = pp22@foo.com; user = phone
Or
Sips: + 358-555-1234567; postd = pp22@foo.com; user = phone
Not
SIP: + 358-555-1234567@foo.com; postd = pp22; user = phone
Or
Sips: + 358-555-1234567@foo.com; postd = pp22; user = phone
19.1.6relating sip Uris and Tel URLs
· The CSeq Header field servesto order transactions
Within a dialog, to provide a means touniquely identify
Transactions, and to differentiate betweennew requests and request
Retransmissions.
Two CSeq Header fields are considered when if
Sequence Number and the request method areidentical
--- 20.16 CSeq
Note: CSeq remains unchanged if resend occurs.