`

SIP: From ,Contact, Via 和 Record-Route/Route head

    博客分类:
  • SIP
 
阅读更多
From: 如果一个SIP消息中没有Contact或者Record-Route头域,那么callee就会根据From头域产生后续的Request。比如:如果Alice打一个电话给Bob,From头域的内容是 From:Alice<sip:alice@example.org>。那么Bob打给Alice时就会使用 sip:alice@example.org作为To头域和Request-URI头域的内容。

Contact: 后续Request将根据Contact头域的内容决定目的地的地址,同时将Contact头域的内容放到Request-URI中。它还可以用来指示没有在Record-Route头域中记录的Proxies的地址。同时它还可以被用在Redirect servers和REGISTER requests 和responses。

Record-Route/Route: Record-Route头域一般是被proxies插入到request中的,这样后续的Request如何有着和前面一样的call-id就会被路由到这些proxies。它也会被User Agent作为发送后续request的依据。这套机制很像source-route,Record-Route头域的信息被复制到Route头域中。并且Request-URI头域会被设置为第一个Route头域的内容。


Via:
Via头域是被服务器插入request中,用来检查路由环的,并且可以使response根据via找到返回的路。它不会对未来的request 或者是response造成影响。

总的来说,如果有Route,request就应该根据Route发送,如果没有就根据Contact头域发送,如果连Contact都没有,就根据From头域发送。
分享到:
评论

相关推荐

    android使用JAIN jar包实现SIP协议栈

    - 下载地址:[Mobicents CI CloudBees](https://mobicents.ci.cloudbees.com/job/jain-sip/lastSuccessfulBuild/artifact/m2/jain-sip-ri/target/) - **集成**: - 将下载的JAIN SIP Stack for Android的jar包...

    Freeswitch集成科大讯飞及百度语音服务.docx

    在安装完毕后,需要配置 Freeswitch 的 external_rtp_ip 和 external_sip_ip 参数。编辑 /etc/freeswitch/vars.xml 文件: ``` &lt;X-PRE-PROCESS cmd="stun-set" data="external_rtp_ip=158.101.132.134"/&gt; &lt;X-PRE-...

    asterisk 教程

    Asterisk是一款开源的IP电话系统,用于搭建VoIP服务器,支持多种通信协议,如SIP、IAX等。在本教程中,我们将探讨如何安装和配置Asterisk,以及其依赖的包。 首先,安装Asterisk需要一系列的开发和运行时库。这些...

    Sun官方提供的纯Java的SIP开发包(JAIN-SIP-API-1.2.jar)

    Sun官方提供的纯Java的SIP开发包(JAIN-SIP-API-1.2.jar) 提供黑莓(Blackberry),塞班(Symbian)等移动平台的SIP开发。

    jain-sip-ri-1.2.277.jar

    jain-sip-ri-1.2.277.jar,java调用sip协议需要用到。有需要的同学可以下载看看。

    SIP需要用到的四个包中的jain-sip-api-1.2.1.4.jar

    SIP需要用到的四个包:concurrent-1.3.4.jar,jain-sip-api-1.2.1.4.jar,jain-sip-ri-1.2.295.jar,log4j-1.2.8.jar

    SIP常用消息实例参考

    SIP(Session Initiation Protocol,会话初始协议)是一种应用层协议,用于建立、修改和终止会话。SIP常用消息实例是指在SIP会话中经常使用的消息实例,这些实例包括INVITE、ACK、MESSAGE等。 一、MESSAGE消息 ...

    SIP消息之逐项讲解.pdf

    根据提供的文档信息,我们可以深入解析SIP(Session Initiation Protocol,会话发起协议)消息的结构与组成部分。本文将详细解读文档中提到的关键SIP INVITE消息及其各个字段的含义。 ### SIP INVITE消息概述 SIP...

    javax.servlet jar包---解决找不到javax.servlet.*等问题

    - `GenericServlet`: 一个抽象Servlet类,实现了Servlet和ServletConfig接口,提供了一种通用的方法来处理多种协议。 - `HttpServlet`: 继承自GenericServlet,专门用于处理HTTP请求,提供了处理GET、POST等HTTP...

    基于JAIN SIP的sip实现技术

    NIST(National Institute of Standards and Technology,美国国家标准与技术研究院)开发了一个遵循JAIN SIP规范的示例实现——NIST-sip-1.2。该实现不仅展示了如何使用JAIN SIP API来构建SIP实体,还提供了一种...

    Record-1.0.0.rar_软电话

    总之,Record-1.0.0软电话以其开源特性和osip协议的应用,为学习和研究SIP协议提供了宝贵的资源。开发者可以通过这个项目深入了解SIP的工作原理,以及如何在实际应用中使用osip实现通信功能。无论是对个人技能提升...

    SIP协议-中文版 SIP协议-中文版

    这些实体可以通过To、From和Via头字段以及Record-Route头来控制消息的路由。 4. **媒体协商**:在会话建立过程中,SIP使用SDP(会话描述协议)来协商媒体类型、编码格式、端口号等参数。双方通过发送带有SDP的...

    sip 抓包结果

    本案例展示了 SIP 注册的基本流程,涉及了 SIP 消息的关键组成部分,如 Via、From、To、Call-ID、CSeq、Contact 等头域,以及 SIP 的状态码(例如 407 Proxy Authentication Required)。通过这个例子,我们可以了解...

    react-softphone:WebRTC星号SIP SoftPhoneReact功能组件

    const config = { domain : 'sip-server@your-domain.io' , // sip-server@your-domain.io uri : 'sip:sip-user@your-domain.io' , // sip:sip-user@your-domain.io password : 'secret' , // PASSWORD , ws_...

    Python库 | PyQt6_sip-13.0.1-cp38-cp38-manylinux1_x86_64.whl

    资源分类:Python库 所属语言:Python 资源全名:PyQt6_sip-13.0.1-cp38-cp38-manylinux1_x86_64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    一个功能强大的sip客户端

    一个漂亮,稳定且功能强大的sip客户端,很方便使用.(mailto: dotphoenix@qq.com)

    28181-2016协议抓包

    ### 28181-2016协议抓包分析 #### 一、概述 GB/T 28181-2016标准是中国公共安全行业标准,旨在...通过确保SIP消息格式的正确性和完整性,能够提升系统的稳定性和安全性,为实现设备间的高效互联互通奠定坚实的基础。

    SIP_协议消息应答代码解释详录

    SIP (Session Initiation Protocol) 是一种用于控制多媒体通信会话(如语音和视频通话)的信令协议。SIP 消息应答代码是其核心机制的一部分,用于指示请求的状态和结果。这些应答代码与 HTTP/1.1 的响应代码有相似之...

Global site tag (gtag.js) - Google Analytics