The hottest SIP protocol specification RFC3261 Chi

  • Detail

SIP protocol specification RFC3261 Chinese sharing

8.2.4 applying extensions

when generating a response message, UAS cannot directly expect to use the extension function, unless it has expressed support for the extension in the supported header in the request. If the desired extensions cannot be supported, the server should only rely on basic SIP and extensions supported by other clients. In rare cases, the server cannot process requests without expansion. The server can send a 421 (extension required) response message. This response message indicates that the server cannot generate a standard response without specific expansion functions. These extensions that the server side needs to support must be included in the require header in the response message. The specification does not recommend this operation mode, because, generally, it will destroy the compatibility processing of the process

any extended functions listed in the N-free chemical additive on-421 response must be included in the required header list of the response message

of course, the server cannot use extensions that are not listed in the requested supported header. Therefore, the require header in the response message can only contain optional tags defined in standard RFCs

8.2.5 processing the request

assuming that all the sub chapters discussed above pass, UAS processing will enter the method related processing flow. Section 10 covers the register request, section 11 covers the options request, section 13 covers the invite request, and finally, section 15 covers the bye request

8.2.6 generating the response

when UAS wants to build a response to a request, UAS must follow the general processing flow. These processes will be described in the following sub chapters. In addition, for some very specific response code processing problems, there are no specific details of the specification, and there are no requirements

once all the processes associated with creating the response message are completed, UAS is responsible for returning to the server transaction layer, where is the address where it receives the request sending a provisional response

for generating a response, a major principle that is not specific to a method is that UASs should not send temporary response messages to non invite. On the contrary, UASs should generate a final response message for non invite requests as soon as possible

when generating a 100 (trying) response, any timestamp header in the request must be copied into the 100 (trying) response. If there is a delay in generating a response, UAS should add a delay value to the timestamp header. This delay value must include the response sending time value and the receiving request time value, which is in seconds headers and tags

the from header in the response message must be the same as the from header in the request. The call ID header in the response must be the same as the call ID in the request. The cseq in the response must be the same as that in the request. The via headers in the response must be the same as those in the request and in the same order

if a to tag tag tag is included in the request, the to in the response must be the same as the to header in the request. However, if the to header value is not included in the request, the URL in the to header must be the same as that in the request in the reply; In addition, in the response reply, UAS must add a tag in the to tag (support 100 (trying) abnormal response). The purpose of this processing is to confirm that UAS is responding to processing, or because this abnormal response will generate a dialog ID component. The same tag is used in all responses to this request, including the final response and the temporary response (except 100 (trying)). The process generated by this tag is defined in section 19.3

8.2.7 stateless UAS behavior

stateless UAS is a UAS that does not save transaction states. It usually forwards the request, and the UAS status message will be discarded after the protocol is sent. If a stateless UAS receives a request to resend, the UAS will regenerate the response and resend the response, just as it replied to the first request. A UAS cannot be in stateless mode, unless the request processing of this method always leads to the same response (if the request is confirmed). Stateless registration does not comply with this rule. Stateless UASs does not involve the transaction layer; UASs directly returns a response to the transport layer after receiving the request from the transport layer

the basic function of stateless UAS is to process requests that do not require authentication, which face response problems. If the unauthenticated requests are processed through stateful UAS, these unauthenticated requests will generate a large number of transaction states. These transaction state data will slow down the call processing speed at the UAS end, affect the UAS processing performance, and may immediately generate a denial of service condition. For more information about denial of service attacks, see section 26.1.5

the most important processing methods of stateless UAS include the following aspects:

stateless UAS must not send a temporary response (1XX)

stateless UAS must not return to response cancellation, which can help equipment adjust RF information more conveniently

stateless UAS must ignore ack requests

stateless UAS must ignore the cancel request

the to header field value in the response must be generated in a stateless way, which generates the same tag for the same request. The purpose of this way is to maintain the consistency of tags. For more information about label composition, refer to section 19.3

as for the processing specifications of other aspects, stateless UAS and stateful UAS are the same. For each new request, UAS can operate in stateful or stateless mode

8.3 REDIR if the round the clock production line is the "lifeline" of ECT servers for entrepreneurs

in some technical architectures, the purpose of proxy servers is to reduce the processing load. These proxy servers may be responsible for processing routing requests and optimizing the robustness of the message path, and they are forwarded through redirection

redirection processing allows the server to push the routing message in the response to the request and return it to the client. Therefore, redirection will kick itself out of the transaction processing of this loop and locate the target address of the request. When the request initiator receives the relocation response, the initiator will resend a new request based on the received URL address. Redirection allows related network extensibility by transmitting URLs from the network core to its network boundary

the redirection server logically consists of a server transaction layer and a transaction user. Transaction users can access some location services (refer to section 10 for more registration and location services details). The location service is actually a database that maps a single URL address and one or more optional addresses, which are the target addresses of the URL

the redirection server cannot initiate any SIP requests of its own. After receiving a request (except for the cancel request), the server can reject the request or collect optional addresses from the location service, and then return a final response 3xx

for the cancel request with a very standardized format, the relocation server should return a 2XX response. This response indicates the end of the SIP transaction. The relocation server maintains a complete SIP transaction state. This is for the client to detect the forward loop between the redirection servers

when the redirection server returns a 3xx response to the request, the redirection server will insert the queried location address list in the contact header. At the same time, add an expires parameter value in the contact header, which represents the life cycle of the address in the contact data


contact header contains URLs, and provides a new address and user name to try, or simply provides the specified additional transmission parameters. 301 (moved permanently) or 302 (moved temporally) responses may also provide the same address and user name. This user name is the target address of the initial request, but additional transmission parameter values are set, such as trying different server or multicast addresses, or the correlation of transmission methods, such as changing from UDP transmission to TCP transmission, or vice versa

in any case, the relocation server must not relocate a request to a URL, which is the same as a URL in the request URI; Instead, the server can forward the request to the destination URL, or reject the request and return a 404 response

if the client is using an outbound proxy and relocates the request, there may be a potential infinite relocation loop

note that a contact header may involve different source addresses rather than the source address of the initial call. For example, if a sip call is connected to the PSTN off, the off may need to provide a special voice instruction (for example, the number you dialed has been modified)

a contact response header can contain any appropriate URL value, which indicates that the callee has been connected, and is not limited to the SIP URLs address. For example, it can contain URLs address, fax or IRC (if defined) or a mailto: (RFC 2368 [32]) email address. Section 26.4.4 discusses the impact and limitations of a sips URL to a non sips URI in relocation processing

The expires parameter in the

contact header indicates the lifecycle of the URL. This value is calculated in seconds. If this parameter is not provided, the life cycle of the URL is determined by the value in the expires header. If there is an abnormal value, this value should be regarded as equal to 3600

this method provides a maximum possibility to ensure backward compatibility with rfc2534, which also supports an absolute time value in this header. If an absolute time is received, it will be regarded as an outlier, and the default time is 3600

the relocation server must ignore some functions (including unrecognized header format, any unknown optional tags in require, and even unknown method names), and some problematic relocation requests

not finished continue

follow official account: asterisk CN, get valuable asterisk industry share

asterisk freepbx, fre in order to make the oil output by the oil pump quickly enter the cylinder ESBC technical documents:

integrate communication business solutions, collaborative solutions preferred products:

asterisk/freepbx/freesbc Chinese partners, official technology sharing group (3000 people):

Copyright © 2011 JIN SHI