SIP注册过程

2024-05-28 03:18
文章标签 sip 过程 注册

本文主要是介绍SIP注册过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SIP注册过程如下图所示:
SIP注册过程

SIP 协议中使用了一个构件叫做注册服务器。它不仅能够接收 REGISTER消息请求,还能够将收到的消息包中的信息保存到管理对应域名的定位服务器上面。 SIP 协议具有发现能力;换句话说,就是如果一个用户要与另外一个用户开始会话,那么 SIP 协议必须要发现这个用户能够到达的主机存在。由于定位服务器可以收到请求消息并找到向什么地方发送,所以这个发现过程由定位服务器来完成。而这则是基于管理每个域的定位服务器维护着一个定位数据库的事实来实现的。注册服务器不仅可以接收客户端的 IP 地址,还能够接收其他类型的消息。比如,能够收到服务器上面的 CPL( Call Processing Language)脚本。

在一台话机能够接收一通通话之前,它需要在定位数据库中有注册信息。在这个数据库中我们要拥有所有电话的各自的相关的 IP 地址。在我们的例子中,你将看到 SIP 用户 8590@voffice.com.br 注册到 200.180.1.1 上面的过程(即SIP用户的UAC所在的IP地址为200.180.1.1)。

RFC3665 定义实现了一个最小的功能集合,这是使得 SIP 进行 IP 网络交互时的最好实践。按照 rfc3665 中所说,与注册一个用户代理的过程相关的有五个基本的流程,如下所述:

  1. 一个新的成功的注册( A successful new registration) ——用户代理在发送 Register 请求后,将收到认证过程的挑战。我们将在阐述验证过程的章节中看到这个过程的细节。
    这里写图片描述

  2. 联系列表的更新( An update of the contact list) ——由于不再是新的注册,消息中已经包含了摘要( digest),那么不会返回 401 消息。为了改变联系列表,用户代理仅仅需要发送一条在CONTACT 头中带有新的联系信息的注册信息即可。
    这里写图片描述

  3. 请求获得当前的联系列表——在这种情况下,用户代理将把发送消息中的 CONTACT 头置空,表明用户希望向服务器询问当前的联系列表。在回复的 200OK 消息中, SIP 服务器将把当前的联系列表放在其 CONTACT 的头中。
    这里写图片描述

  4. 取消注册( Cancellation of a registration) ——用户代理在发送的消息中将 EXPIRES 头置成 0,并且将 CONTACT 头设置为*表示将此过程应用到所有存在的联系信息。
    这里写图片描述

  5. 不成功的注册( Unsuccessful Registration) ——用户代理客户端( UAC)发送一条 Register请求消息,收到一条―401 Unauthorized‖消息,事实上,这个过程同成功注册过程相同。但是接下来,它进行哈希运算尝试进行认证。而服务器检测到的是一个无效的密码,继续发送401Unauthorized消息。这个过程一直重复直到重复次数超过在 UAC 设置的最大值。
    这里写图片描述


应用示例:待续(后面在写)

这篇关于SIP注册过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1009391

相关文章

Spring Boot 整合 Apache Flink 的详细过程

《SpringBoot整合ApacheFlink的详细过程》ApacheFlink是一个高性能的分布式流处理框架,而SpringBoot提供了快速构建企业级应用的能力,下面给大家介绍Spri... 目录Spring Boot 整合 Apache Flink 教程一、背景与目标二、环境准备三、创建项目 & 添

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

Jvm sandbox mock机制的实践过程

《Jvmsandboxmock机制的实践过程》:本文主要介绍Jvmsandboxmock机制的实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、背景二、定义一个损坏的钟1、 Springboot工程中创建一个Clock类2、 添加一个Controller

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、

MybatisPlus3.3.1整合clickhouse的过程

《MybatisPlus3.3.1整合clickhouse的过程》:本文主要介绍MybatisPlus3.3.1整合clickhouse的过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定... 前言ClickHouse是俄罗斯Yandex发布的一款数据分析型数据库支持sql语法,详情可以访问官网,

Spring AI 实现 STDIO和SSE MCP Server的过程详解

《SpringAI实现STDIO和SSEMCPServer的过程详解》STDIO方式是基于进程间通信,MCPClient和MCPServer运行在同一主机,主要用于本地集成、命令行工具等场景... 目录Spring AI 实现 STDIO和SSE MCP Server1.新建Spring Boot项目2.a