本例子是一个基本的SIP四边传送,U1->P1->P2->U2,使用proxy来传送。下边是过程。

U1 发送:

INVITE sip:callee@domain.com SIP/2.0

Contact: sip:caller@u1.example.com

发给P1,P1是一个外发的proxy。P1并不管辖domain.com,所以它查找DNS并且发送请求到那里。它也增加一个Record-Route头域值:

INVITE sip:callee@domain.com SIP/2.0

Contact: sip:caller@u1.example.com

Record-Route:

P2收到这个请求。这是domain.com所以它查找位置服务器并且重写Request-URI。它也增加一个Record-Route头域值。请求中没有Route头域,所以它解析一个新的Request-URI来决定把请求发送到哪里。

INVITE sip:callee@u2.domain.com SIP/2.0

Contact: sip:caller@u1.example.com

Record-Route:

Record-Route:

在u2.domain.com的被叫方接收到这个请求并且返回一个200OK应答:

SIP/2.0 200 OK

Contact: sip: callee@u2.domain.com

Record-Route:

Record-Route:

u2的被叫方并且设置对话的状态的remote target URI为:

sip: caller@u1.example.com并且它的路由集合是:

(,)

这个转发通过P2到P1到U1。现在U1设置它自己的对话状态的remote target URI为:sip:calle@u2.domain.com并且它的路由集合是:

(,)

由于所有的路由集合元素都包含了lr参数,那么U1构造最后的BYE请求:

BYE sip:callee@u2.domain.com SIP/2.0

Route:,

就像其他所有的节点(包括proxy)会做的那样,它会使用DNS来解析最上的Route头域的URI值,这样来决定往哪里发送这个请求。这就发到了P1。P1发现Request-URI中标记的URI不是它负责的域,于是它就不改变这个Request-URI。然后看到它是Route头域的第一个值,于是就从Route头域中移去,并且转发这个请求到P2:

BYE sip:callee@u2.domain.com SIP/2.0

Route:

P2也发现它自己并非负责这个Request-URI的域(P2负责的是domain.com并非u2.domain.com),于是P2并不改变它。它看到自己在Route的第一个值,于是移去这个,并且向u2.domain.com转发(根据在Request-URI上查找DNS):

BYE sip:callee@u2.domain.com SIP/2.0

1.3.3 重写Record-Route头域值

java voip 的sip服务器搭建_SIP协议开源SIP服务器搭建和客户端安装相关推荐

  1. 云服务器部署mqtt协议通信,云服务器部署mqtt协议通信

    云服务器部署mqtt协议通信 内容精选 换一换 虚拟IP(Virtual IP Address,简称VIP)是一个未分配给真实弹性云服务器网卡的IP地址.弹性云服务器除了拥有私有IP地址外,还可以拥有 ...

  2. 电脑tcp协议设置成服务器,电脑tcp协议设置成服务器

    电脑tcp协议设置成服务器 内容精选 换一换 DNS服务器用于解析弹性文件服务中文件系统的域名.DNS服务器东北区IP地址为100.125.6.250,其它区域详情请参见华为云内网DNS地址.默认情况 ...

  3. 服务器可以挂协议吗,云服务器可以挂快手协议吗

    云服务器可以挂快手协议吗 内容精选 换一换 购买高性能计算解决方案可以在购买时同时指定管理节点配置与计算节点配置.适用于基因测序,工业仿真等高性能计算场景,根据实际计算需求购买HPC集群.第一次使用公 ...

  4. go 服务器 源码,LollipopGo开源游戏服务器框架--global服务器源码

    大家好,我是彬哥,本节给大家讲下LollipopGov1.0.20190102版本游戏服务器globla服务器,抛砖引玉了,主要是针对Go语言游戏服务器Global服务器处理. package mai ...

  5. golang 麻将服务器源码,LollipopGo开源游戏服务器框架--global服务器源码

    大家好,我是彬哥,本节给大家讲下LollipopGov1.0.20190102版本游戏服务器globla服务器,抛砖引玉了,主要是针对Go语言游戏服务器Global服务器处理. package mai ...

  6. 风暴英雄 服务器在哪个文件夹,风暴英雄国服内测客户端安装详细图文教程

    风暴英雄国服10月17日即将开测,对于风暴英雄国服内测客户端安装肯定还有很多玩家不太清楚,这里小编就给你带来风暴英雄国服内测客户端安装教程. 风暴英雄国服10月17日即将开测,对于风暴英雄国服内测客户 ...

  7. sip gw功能包括_完整SIP/SDP媒体协商概论-SIP/WebRTC概要

    ​Session Description Protocol(简称是SDP)全称是会话描述协议,此协议用来创建一种协商机制,这种协商机制是由呼叫控制协议创建的介于两个呼叫用户之间的会话进行,协商机制支持 ...

  8. cas协议,以及tomcat搭建cas服务器

    1.      CAS 简介 1.1.  What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...

  9. java socket5源码_Java利用TCP协议实现客户端与服务器通信【附通信源码】

    进行TCP协议网络程序的编写,关键在于ServerSocket套接字的熟练使用,TCP通信中所有的信息传输都是依托ServerSocket类的输入输出流进行的. TCP协议概念 先来了解一下TCP协议 ...

  10. nginx搭建rtmp协议流媒体服务器总结

    最近在 ubuntu12.04+wdlinux(centos)上搭建了一个rtmp服务器,感觉还挺麻烦的,所以记录下. 大部分都是参考网络上的资料. 前提: 在linux下某个目录中新建一个nginx ...

最新文章

  1. 60亿元高新项目落户西安
  2. Tornado 学习笔记
  3. js判断字符串包含某个字符_python判断字符串以什么开始
  4. Spring Security 3 Ajax登录–访问受保护的资源
  5. windows下dubbo-admin和zookeeper安装部署
  6. Oracle11.2.0.4 RAC安装文档
  7. c语言 char *b,C语言:char*a,*b; *b*=a是什么意思? 如图所示
  8. linux之loop设备
  9. php最新猜骰子,最新微信猜骰子游戏源码(免公众号版+H5)
  10. Abaqus动力学分析基础
  11. kali系统安装DVWA
  12. matlab相反数计数,怎么把origin表格中的数改成相反数
  13. Nacos 日志文件堆满磁盘空间处理方案
  14. opta球员大数据预测胜负_数据分析视角下的世界杯冠军预测
  15. 【2020年高被引学者】 梅宏 北京大学
  16. uc浏览器手机端禁用复制
  17. 程序员面试需要刷力扣算法题吗
  18. 精美网页设计案例_用户体验设计的精美艺术
  19. STM32之数据采集和心率检测仪(原理图、PCB、程序源码等)超详细!!!
  20. 真正可以根治高度近视眼的方法(转载)

热门文章

  1. 北航机试 16逆序数
  2. 解决 此 Flash Player 与您的地区不相容 问题
  3. CATIA_CAA_RADER26+VS2012安装教程
  4. Unity跨iOS、Android平台使用protobuf-net的方法(.Net 2.0)《二》
  5. 离线版的百度地图 js
  6. 翁恺老师的c语言学习笔记
  7. catia逆向建模步骤_catia与逆向工程
  8. 小红帽酒店仓库管理系统
  9. keras中文版官方文档
  10. c语言枪战游戏代码,FPS射击游戏《林海雪原》完整源代码