《无线局域网可视电话原理及应用》:
如果某一用户代理想要在发送的临时响应消息中携带SDP消息体,那么UAC和UAS都必须支持和使用100rel扩展,以保证该消息的可靠传输。
Supported字段的示例:
Supported:100rel
(12) User—Agent:User—Agent头字段包含发起请求的用户终端的信息。
显示用户代理的软件版本信息可能令用户在使用有安全漏洞的软件时易受到外界攻击,因此,应该使User—Agent头字段成为可选配置项。
User—Agent字段的示例:
User—Agent:Softphone Betal.5
(13) Expires:该头字段指定了消息(或消息内容)多长时间之后超时。
Expires字段的示例:
Expires:5
(14) Accept—Language:该头字段用在请求消息中,表示原因短语、会话描述或应答消息中携带的状态应答内容的首选语言类型。如果消息中没有Accept—Language头字段,则服务器端认为客户端支持所有语言。
Accept—Language字段的示例:
Accept—Language:en
(15) Authorization:该字段包含某个终端的鉴权证书。
终端向服务器端请求认证的一般过程如下。
终端发起请求时如果服务器端需要对用户进行认证,那么会在本地产生本次认证的NONCE,并且通过认证请求头域将所有必要的参数返回给终端,从而发起对用户认证的过程。
终端收到认证请求消息后根据服务器端返回的信息和用户配置等信息采用特定的算法生成加密的RESPONSE,并且通过新的请求消息发送给服务器端。
服务器端在收到带有认证响应的新的请求消息后首先检查NONCE的正确性。如果NONCE不是本地产生的,则直接返回失败;如果NONCE是本地产生的,但是认证过程已经超时,则服务器端会重新产生NONCE并重新发起对用户的认证过程,老的NONCE会通过CNONCE参数返回。
NONCE验证通过后,服务器端会根据NONCE、用户名、密码(服务器端可以根据本地用户信息获取用户的密码)、URI等采用和终端相同的算法生成RE—SPONSE,并且将此RESPONSE和请求消息中的RESPONSE进行比较,如果二者一致则用户认证成功,否则认证失败。
……
展开