精华内容
下载资源
问答
  • 2021-05-18 07:01:43

    tcpdump -i wlan0 -s 0 -w 1.cap &

    tcpdump -i rmnet0 -s 0 -w test.cap &

    第一个是wifi的  第二格是 移动网络的

    服务器端信令抓包

    1. Download and

    installWireshark

    on your windows computer.

    ​2. Download and

    installWinSCP

    on your windows computer.

    ​3. Use putty to

    login to your linux server.

    ​4Once logged in use the following command to

    start the SIP capture:

    ​tcpdump -i eth1 -t -n -s 0 port 5060 -vvv

    -w /home/capture_file_name.cap

    ​-i = interface you want to capture on,

    eth0, eth1, eth2, etc, you will want to do this on your public

    interface most likely.

    -t =

    time​

    ​-n = Do not convert ip addresses to names,

    prevents dns lookups.

    ​-s = How many bytes of data to grab from

    each packet, zero means use the required length to catch whole

    packets.

    ​port = What port to listen to, 5060 is the

    default port for SIP.

    ​-vvv = Even more verbose output, this will

    give you as many details as possible.

    ​-w = Write to a raw file to be parsed

    later.

    ​5. Now that we are capturing packets let it

    run for a while at least 5 to 10 minutes to collect some data then

    to stop the capture use CTRL Key + C.

    ​6. Once you stopped the capture login to

    the server using WinSCP and go to the home directory. You will find

    the capture file in there just copy that file to your windows

    computer so you will be able to open it with Wireshark.

    更多相关内容
  • VoLTE呼叫SIP信令分析.pdf
  • 海康sip信令抓包示例

    2016-12-08 10:09:29
    以前开发相机时用到sip协议, 于是抓了一些标准的包进行比对信令的正确性, 现在分享出来, 希望帮助小白进步。 谢谢
  • C++ 实现GB28181设备目录请求、视频请求、历史视频回放、等SIP会话,用于视频安防领域
  • SIP信令协议消息(四)

    千次阅读 2022-03-14 11:25:51
    SIP消息分类 请求消息 消息含义 INVITE 发起会话请求,邀请用户加入一个会话,会话描述含于消息体中。对于两方呼叫来说,主叫方在会 话描述中指示其能够接受的媒体类型及其参数。被叫方必需在成功响应...

    SIP消息分类

    请求消息消息含义
    INVITE发起会话请求,邀请用户加入一个会话,会话描述含于消息体中。对于两方呼叫来说,主叫方在会
    话描述中指示其能够接受的媒体类型及其参数。被叫方必需在成功响应消息的消息体中指明其希望
    接受哪些媒体,还可以指示其将发送的媒体。
    ACK证实已收到对于INVITE请求的最终响应。该消息仅和INVITE消息配套使用。
    BYE结束会话
    CANCEL取消尚未完成的请求,对于已完成的请求(即已收到最终响应的请求)则没有影响
    REGISTER注册
    OPTIONS查询服务器的能力
    MESSAGE发送IP短信息
    SUBSCRIBE用来请求对方节点的当前状态以及后续状态变化的请求方法,从网络订阅消息
    NOTIFY用于向服务器请求返回当前状态消息
    UPDATE更新会话媒体信息
    PRACK类似ACK功能,但PRACK响应为临时响应
    PUBLISH
    INFO

    SIP响应消息分类

    序号消息功能
    1XX临时响应, 表示请求消息正在被处理。
    2XX成功响应, 表示请求已被成功接收, 完全理解并被接受。
    3XX重定向响应, 表示需采取进一步以完成该请求。
    4XX客户机错误, 表示请求消息中包含语法错误信息或服务器无法完成客户机请求。
    5XX服务器错误, 表示服务器无法完成合法请求。
    6XX全局故障,表示任何服务器无法完成该请求。

    SIP信令协议消息

    100试呼(Trying) 正在进行与呼叫有关的操作(例如:访问数据库) , 但被叫
    用户还没有定位。
    180被叫振铃( Ringing) 被叫用户代理已经得到被叫的位置, 正在提醒被叫用
    户。 该响应也可以再发起一个本地回铃
    181呼叫前转(Call Is Being Forwarded) 代理服务器可以用该状态码表示当前
    呼叫正被转移到其它目的地。 (呼叫正在转发)
    182呼叫排队(Queued) 被叫暂时不可访问, 当前呼叫被排队而不是被拒绝。
    当服务器有效时, 可以继续响应该呼叫。 该响应的"reason phrase"可以进
    一步给出排队呼叫的信息, 例如: “队列中有5个呼叫, 期望等待时间为15
    分钟” 。 服务器可以发出多个182 响应来更新当前排队呼叫的信息。
    183会话进度( session progress) 应答用于提示建立对话的进度信息。
    Reason-Phrase(表达原因的句子) 、 头域或者消息体可以用于提示呼叫进
    度的更新消息的信息。
    200表示请求已经被接收、 处理并被成功接受
    300多个选择(Multiple Choice) 请求中的地址被解析为多个位置, 用户可以将
    请求重定向到一个合适的地址。 该响应应该包含可供用户或用户代理选择
    的位置和资源列表, 并且在Contact头域中, 列出可供选择的地址。 ( 网络
    协议不兼容:会话描述中的一个或多个网络协议不可用。 )
    301永久离开(Moved Permanently) 在请求中Request-URI所指的地址找不到
    用户, 客户应该尝试Contact头域给出的新地址。 主叫收到该响应后应该更
    新所有的本地目录, 地址簿, 用户位置缓存并将以后的请求重定向到新的
    地址。 ( 网络地址格式不兼容:会话描述中的一个或多个地址格式不可用。 )
    302暂时离开( Moved Temporarily) 客户应该用Contact头域给出的新地址尝
    试呼叫。 响应中Expire头域指出该次重定向的有效期, 如果没有给出有效期,
    那么重定向只对当前呼叫有效。 ( 传送协议不兼容:会话描述中的一个或多
    个传送协议不可用。 )
    303带宽单位不兼容:会话描述中的一个或多个带宽度量单位不被理解。
    304媒体类型不可用:对话描述中的一个或多个媒体类型不可用。
    305使用代理( Use Proxy) 客户所请求的资源必须通过Contact头域中给出的
    代理来访问。 Contact头域给出代理的URI。 该响应只能由用户代理服务器
    发出。 (媒体格式不兼容:对话描述中的一个或多个媒体格式不可用。 )
    306媒体特征不被理解:对话描述中的一个或多个媒体特征不被支持。
    307对话描述参数不被理解:除上述几种参数之外的参数不被理解
    330组播不可用:用户站点不支持组播
    331单播不可用:用户站点不支持单播通信(通常是由于防火墙的存在)
    370带宽不足:对话描述中定义的或者媒体定义的带宽超出可用带宽。
    380使用其它服务( Alternate Service) 呼叫不成功, 但是可选其它的服务
    (如:电子邮件, 语音信箱) 。 该响应的消息体给出可选服务的描述。
    399混合告警:该告警表示用户存在的任意一种错误,收到该告警的系统不可
    以采取任何自动的动作
    400无效请求(Bad Request) 请求语法有误, 不能被服务器理解。
    401未授权(Unauthorized) 请求需要用户认证。
    402要求付费(Payment Required) 该响应为将来使用保留。
    403禁止(Forbidden) 服务器理解请求, 但拒绝完成。 客户不应该再次发请
    求。
    404未找到用户( Not Found) 请求中Request-RUL给出的地址上没有要呼
    叫的用户。 当Request-RUL给出的地址与服务器管理的域不匹配时, 服
    务器也发送该响应。
    405方法不允许(Method Not Allowed) 请求行中指定的方法不被允许。 该
    响应必须包含Allow头域, 列出服务器支持的方法。
    406不可接受(Not Acceptable) 根据请求中的Accpe头域, 由请求给出的资
    源产生的响应实体里面的内容字符不可接受。
    407需要代理认证(Proxy Authentication Required) 该响应与401(未授权)
    类似, 但它指示用户必须首先向代理认证自己。
    408请求超时(Request Timeout) 服务器不能在请求的Expire头域指定的时
    间内产生响应。 客户可以过一段时间重发请求。
    409冲突(Conflict) 客户的请求与资源的当前状态冲突, 不能完成请求。 当
    REGISTER请求的action参数与现存的注册冲突时返回该响应。
    410无可用资源(Gone) 服务器上没有所请求的资源, 也不知道进一步联系
    的地址。 这种情况被认为是永久的。 如果服务器不能确定该情况是否是
    永久的, 它应该发送404(被叫未找到) 响应。
    411需要消息体长度(Length Required) 服务器拒绝接受没有包含Content-Length头域的
    请求。 客户何以在加入一个表示消息体长度的Cotent-Length头域后重发请求。
    413请求实体过长(Request Entity Too Large) 服务器拒绝处理过长的消息实体。 如果这
    种情况是暂时的, 服务器应该在响应中包含Retry-After头域指示客户何时重发请求。
    414Request-URI过长(Request-URI Too Long) 服务器不能解析过长的Request-URI。
    415媒体类型不支持(Unsupported Media Type) 服务器不支持请求消息体的格式。 服务
    器应该在响应中用Accept, Accept-Encoding 和Accept-Language头域列出它支持的
    格式。
    416不支持的URI方案( unsupported url scheme) 服务器由于不支持Request-URI中的
    URI方案而终止处理这个请求。
    420错误的扩展(Bad Extension) 服务器不理解请求中Require头域指定的协议扩展。
    421

    需要扩展支持(extension required) UAS需要特定的扩展来处理这个请求, 但是这个
    扩展并没有在请求的Supported头域中列出。 具有这个应答码的应答必须包含一个
    Require头域列出所需要的扩展。

    UAS不应当使用这个应答除非它真的不能给客户端提供有效的服务。 相反, 如果在
    Support头域中没有列出需要的扩展, 服务器应当根据基准的SIP兼容的方法和客户端
    支持的扩展来进行处理。

    423间隔太短(interval too brief) 服务器因为在请求中设置的资源刷新时间(或者有效时
    间) 过短而拒绝请求。 这个应答可以用于注册服务器来拒绝那些Contact头域有效期过
    短的注册请求。
    480暂时不可访问( Temporarily Unavailable) 被叫的终端系统已经成功连接, 但用户暂
    时不可访问(例如:用户未登录, 或登录为免打扰) 。 服务器可以在Retry-After头域
    中另外指定一个访问时间。
    481呼叫支路/事务不存在(Call leg/Transaction Does Not Exist) 在两种情况下服务器返
    回该响应:服务器收到一个BYE请求但找不到匹配的呼叫支路;或是收到一个
    CANCEL请求但找不到匹配的事务;或是收到与原来TAG标志不一样的INVITE请求。
    (对于无匹配的ACK请求, 服务器直接将它丢弃, 不响应) 。
    482检测到循环呼叫(Loop Detected) 请求消息的Via头域中包含接收服务器自身的地址。
    483跳数过多(Too Many Hop) 请求的Via头域包含的条目数(跳数) 超过Max-Forwards
    头域指定的值。
    484地址不全(Address Incomplete) 请求的To或Request-RUL所指的地址不全。
    485地址不明确(Ambiguous) 请求中提供的被叫地址不明确。 该响应可以在Contact头域
    中列出不明确的地址。
    486被叫忙(Busy Here) 被叫的终端系统已经成功连接, 但用户暂时不愿意或不能够接
    收更多的呼叫。 服务器可以在响应的Retry-After头域中另外指定一个访问时间。 客户
    也可能通过其它方式访问, 如:语音邮箱, 因此该响应并不终止一个查询。 如果我们
    知道没有其他终端系统能够接听这个呼叫, 那么应当返回一个状态码600( Busy
    Everywhere) 。
    487请求被拒绝(Request Cancelled) 原来的请求消息被一个CANCEL请求所
    取消。
    488此处请求不接受(not acceptable here) 这个应答和606(Not Acceptable
    ) 有相同的含义, 但是只是应用于Request-URI所指出的特定资源不能接受
    在其他地方请求可能可以接受。 包含了媒体兼容性描述的消息体可以出现
    在应答中, 并且根据INVITE请求中的Accept头域进行规格化( 如果没有
    Accept头域, 那么就是application/sdp) 。 这个应答就像给OPTIONS请求
    的200(OK)应答的消息体一样。
    491未决请求( request pending) 在同一个对话中, UAS接收到的请求有一个
    依赖的请求正在处理。
    493无法解密(undecipherable) 不可辨识, UAS接收到了一个请求, 包含了一
    个加密的MIME,并且不知道或者没有提供合适的解密密钥。 这个应答可以包
    含单个包体, 这个包体包含了合适的公钥, 这个公钥用于给这个UAS通讯
    中加密包体使用的。
    500服务器内部错误( Server Internal Error) 服务器出现异常情况, 不能处理
    请求。
    501功能未实现(Not Implemented 不可执行) 服务器不支持完成请求所必需的
    功能。
    502网关错误(Bad Gateway) 作为网关或代理的服务器在处理请求时从其它服
    务器接收到一个无效响应。
    503服务不可用(Sevice Unavailable) 由于临时超载或正在维护, 服务器当前
    不能处理请求。
    504网关超时(Gateway Timeout / service Time-out 服务器超时) 作为网关的
    服务器在处理呼叫的过程中没有及时收到其它服务器(例如:定位服务器)
    的响应。
    505版本不支持( Version Not Supported) 服务器不能或拒绝支持请求消息所
    用的版本。
    513消息过大(message too large)
    600全忙(Busy Everywhere) 被叫的终端系统已经成功连接, 但用户正忙, 不
    愿够接受当前呼叫。 服务器可以在响应的Retry-After头域中另外指定一个访
    问时间。 该响应仅用于客户不能通过其它方式(如:语音邮箱) 访问的情况
    如果用户可通过其它方式访问, 则应返回486(Busy Here) 响应。
    603拒绝( Decline) 被叫的终端系统已经成功连接, 但用户明确不愿接受当前
    呼叫。 服务器可以在响应的Retry-After头域中另外指定一个访问时间。
    604被叫不存在(Does Not Exist Anywhere) 请求的To头域指定的用户不存在
    606不可接受(Not Acceptable) 用户代理已经成功连接, 但某些会话描述如媒
    体类型、 带宽或地址风格不能接受。 该响应表示用户希望建立通信, 但不能
    充分支持请求所描述的会话

    展开全文
  • sip信令详解

    2014-08-31 10:17:16
    sip信令详解,超详细,仔细讲解了sip概述、消息格式和基本消息流程,详细分析了消息流程中的各项sip信令参数
  • SIP信令协议初识

    千次阅读 2018-10-08 15:35:07
    1、什么是SIP SIP(会话发起协议)属于...SIP是一个信令协议,它对应于传统电话网络中的呼叫信令协议(比如SS7 ISUP)。构建一个完整多媒体通信架构还需要结合其他一些协议,必要的有:RTP,用于媒体传输;RSVP,用...

    1、什么是SIP

    SIP(会话发起协议)属于IP应用层协议,用于在IP网上为用户提供会话应用。会话(Session)指两方或多方用户之间的语音、视频、及其他媒体形式的通信,具体可能是IP电话、会议、即时消息等等。

    clip_image002

    SIP是一个信令协议,它对应于传统电话网络中的呼叫信令协议(比如SS7 ISUP)。构建一个完整多媒体通信架构还需要结合其他一些协议,必要的有:RTP,用于媒体传输;RSVP,用于QOS保证等等。

    clip_image004

    2、基本功能

    2.1 会话的发起与管理

    SIP主要用于创建、修改和终止一个会话。

    一个创建会话的简单的例子如下图所示:

    clip_image006

    • 发起方向目的方发送一个SIP请求消息(INVITE),其中包含提议的会话参数的描述,请求在二者之间建立一个会话;
    • 目的方返回一个SIP响应消息(200 OK),其中包含接受的会话参数的描述,接受会话建立请求
    • 发起方发送一个SIP请求消息(ACK)确认会话的建立。

    一个修改会话的简单例子如下图所示:

    clip_image008

    • 会话中的任意一方可以发送一个SIP请求消息(reINVITE),其中包含提议的新的会话参数,请求修改二者之间的会话;
    • 另一方返回一个SIP响应消息(200 OK),其中包含接受的新的会话参数,接受会话修改请求

    一个结束会话的简单的例子如下图所示:

    clip_image010

    • 会话中的任意一方可以发送一个SIP请求消息(BYE),请求结束会话;
    • 另一方返回一个SIP响应消息(200 OK),接受会话结束请求

    2.2 用户位置管理

    SIP支持用户(终端)的移动性。

    SIP要求终端定期向网络发送注册请求(REGGISTER),报告自己的当前位置。这样SIP服务器中始终存储了用户(终端)的当前地址。当用户被呼叫时,SIP服务器能够将SIP请求发送到用户的当前地址。

    clip_image012

    3、实体 & 网络

    SIP UA(User Agent,用户代理)是最基本的SIP实体,它通常就是用户终端。理想情况下,通过SIP UA就可以完成用户之间会话的建立。(参见第2节 SIP基本功能中的会话发起与管理)。

    但是为了支持SIP的移动性,以及其他高级功能,比如运营商对呼叫的控制等等,会话发起及管理的信令过程不能直接在两个SIP UA之间完成,而是需要经过由若干SIP服务器构成的SIP信令网络。

    clip_image014

    这些SIP服务器可以分为两类:注册服务器和路由服务器。

    SIP注册服务器(registrar)的主要功能是接受SIP UA的注册请求,维护用户名-地址映射。

    路由服务器的主要功能是将SIP消息路由到目标SIP UA。路由服务器有SIP重定向服务器(redirect server)和SIP代理服务器(proxy)两种。前者以重定向方式路由SIP请求消息,后者以代理方式路由SIP请求消息。

    在重定向方式下(如下图所示),SIP重定向服务器收到了SIP请求消息,查询到目标SIP UA的当前地址后,通过SIP响应消息(302 Moved temporarily)返回给发起方SIP UA。之后的SIP消息交互与重定向服务器无关,发起方SIP UA直接向目标SIP UA的当前地址发送请求消息。

    clip_image016

    在代理方式下(如下图所示),SIP代理服务器收到了SIP请求消息,查询到目标SIP UA的当前地址后,将SIP请求消息转发到目标SIP UA的当前地址。之后的SIP消息交互都要经过SIP代理服务器。这使得SIP代理服务器可以对会话进行控制,比如结束会话等等。

    clip_image018

    4、SIP操作与SIP消息

    SIP所提供的功能是通过一些原子性的基本功能(比如注册(registration),发起会话(Initiation)、会话结束等)组合而成的。每个原子性基本功能是通过一个SIP操作完成的。

    SIP操作基于类似HTTP的请求/响应事务模型,每个操作的调用过程体现为一个所谓事务 – 包含一个SIP请求和一个或多个相应的SIP响应。其中SIP请求消息中的方法(Method)指示出调用的操作。

    clip_image020

    下表是在RFC 3261中定义的方法及其对应的SIP操作。

    方法Method

    SIP操作

    INVITE

    会话邀请

    ACK

    确认会话邀请

    CANCEL

    取消会话邀请

    BYE

    结束会话

    REGISTER

    注册

    OPTIONS

    查询服务器能力

    SIP是一个基于文本(text-based)的协议,使用 UTF-8 字符集。SIP消息与HTTP/1.1非常类似,同样可以包含消息体(message body),通常是会话描述(session descriptions),也可能是其他内容。

    SIP 消息有两类:从客户机到服务器的请求消息(request),从服务器到客户机的响应消息(response)。

    除了第一行分别是请求行(Request-Line)和状态行(Status-Line)以外,SIP请求消息和SIP响应消息的剩下部分的组成基本类似,包括消息头域(message header)和消息体(message body)两部分(如下图所示)。

    clip_image022

    4.1 SIP请求消息

    根据请求行中的方法(method)的不同,SIP请求消息有很多种,分别完成各种操作的调用,实现各种功能,下面进行简单的介绍。

    • INVITE/reINVITE:INVITE 发起会话邀请。reINVITE(在一个已存在的对话中发送的INVITE称为reINVITE)修改已建立会话的参数。
    • ACK:完成会话建立的3次握手 [INVITE-200-ACK],仅仅用于INVITE
    • BYE :结束会话。
    • CANCEL:取消正在建立中会话(INVITE已发送,但尚未收到最终响应(final response))。
    • UPDATE:更新会话参数。它被建议用于替代 re-INVITE,与 re-INVITE不同在于:它可以在初始INVITE未完成时发送,能用于在早对话(early dialog)中更新会话参数。

    上面的4个请求用于会话建立与管理。

    • REGISTER:登记UA当前的联系地址(contact)
    • OPTIONS:查询服务器或对端UA的能力,具体包括支持的方法(method),扩展(extensions)、编解码(codecs)等。
    • PRACK:临时响应(Provisional Response)确认。用于确认收到了临时响应,例如 “183 Session Progress”,以支持临时响应的可靠传送。它不能应用于“100 Trying ”,只有101~199 临时响应需要可靠传送。如果没有收到 PRACK,响应消息将被重传。

     

    • NOTIFY:事件通知,具体的事件包括、业务状态的改变(MWI,...),用户状态的改变等等。
    • SUBSCRIBE:订阅/取消(Expires=0)事件通知。
    • PUBLISH:发布事件状态。PUBLISH 与 REGISTER 的相似之处在于:允许用户在另一个实体(状态管理实体/registrar)中创建、修改和移除自己的状态。对PUBLISH 请求的寻址与对于SUBSCRIBE 请求的寻址是一样的,PUBLISH 请求的Request-URI 中填入的是用户希望发布其事件状态的资源地址。

    上面的3个请求构成SIP事件发布-订阅-通知机制

    • INFO:用于传送 mid-call 信令信息,同一时刻只能有一个 INFO 事务存在。通常用于携带 PSTN 信令消息(作为 MIME 附件),例如,ISDN UUI (用户到用户信息)。
    • MESSAGE:针对即时消息 (IM)的扩展,用于传送即时消息。MESSAGE请求通过MIME附件中携带内容。MESSAGE 请求自身不发起 SIP 对话,在正常的用法中,每个即时消息都是单独存在的,非常类似 pager 消息。MESSAGE 请求可以在其他SIP请求发起的对话上下文中发送。
    • REFER:指示接收者 (Request-URI所标识的) 应该使用请求中提供的信息联系第三方。典型应用:Call Transfer features 。Allowed outside an established dialogue。

    4.2 SIP响应消息

    状态码

    描述

    例子

    1xx

    Informational

    请求收到,处理中

    180 Ringing

    181 Call is Being Forwarded

    2xx

    Success

    操作已成功完成

    200 OK

    3xx

    Redirection

    请求被重定向

    300 Multiple Choices

    302 Moved Temporarily

    4xx

    Client Error

    请求包含错误的文法,或者无法在本服务器上完成

    401 Unauthorized

    408 Request Timeout

    5xx

    Server Error

    请求有效,但服务器无法完成

    503 Service Unavailable

    505 Version Not Supported

    6xx

    Global Failure

    请求在任何服务器上都无法完成

    600 Busy Everywhere

    603 Decline

    4.3 SIP消息头域

    根据请求行中的方法(method)的不同,SIP请求消息有很多种,分别完成各种操作的调用,实现各种功能,下面进行简单的介绍。

    • Call-ID:用于唯一标识一个特定的会话或注册消息。应该具有随机性,保证全球唯一。
      例子:Call-ID:31415926535@uunet.com
    • From:源端SIP URL,标识请求发送方;UAC本地标签。
      例子:From: sip:+1-314-342-7360 @gateway.wcom.com; tag=1234567
    • To:目标SIP URL,标识请求接受方;UAS本地标签。
      例子:To: sip:10109000@operator.mci.com; tag=314
    • Via:用于记录请求经由的路径
      例子:Via: SIP/2.0/TCP uunet.com
    • Max-Forwards:消息最大转发次数。服务每次转发消息时将此域值减1,当变成0时,服务器发送 483响应(Too Many Hops response)。
      例子:Max-Forwards: 10
    • Cseq:请求序列号,用于区分同一个会话中的不同请求。
      例如:CSeq: 1 INVITE
      CSeq: 4325 BYE
      CSeq: 1 REGISTER

    上面6个头域是所有SIP消息中的必需的头域。

    • Contact 另一个SIP URL用于直接消息路由。
      例如:Contact: W. Riker, Acting Captain riker@starfleet.gov
      Record-Route 需要自己处在后继消息的路径上时,proxy将自己的地址加插在请求消息中
      例子:Record Route: sip.mci.com
    • Route 确定消息的选路
      例子:Route: orinoco.brooks.net
    • Content-Length:消息体中的 Octet 数
      例子:Content-Length: 285
    • Content-Type:消息体内容类型
      例子:Content-Type: application/sdp

    5、详细的例子 (摘自IETF RFC 3261)

    实际的例子可以帮助大家进一步地认识和理解前面的内容。这里的两个例子分别是关于SIP的两个最基本的功能:注册和会话建立。每个例子中给出了消息交互过程,以及必要的消息内容细节。

    出于简明性的考虑,这里给出的消息的内容忽略了消息体及相应的头域(Content-Length Content-Type)。另外,还有一些头域比如Allow Supported 通常也会出现,但这里并未给出。

    5.1 注册

    Bob在开机时注册。消息流如下图所示。注意为了简化流程,这里没有给出在注册时通常所必需的鉴权过程。

    clip_image024

    消息细节:

    F1 REGISTER Bob -> Registrar

    REGISTER sip:registrar.biloxi.com SIP/2.0

    Via: SIP/2.0/UDP bobspc.biloxi.com:5060;branch=z9hG4bKnashds7

    Max-Forwards: 70

    To: Bob <sip:bob@biloxi.com>

    From: Bob <sip:bob@biloxi.com>;tag=456248

    Call-ID: 843817637684230@998sdasdh09

    CSeq: 1826 REGISTER

    Contact: <sip:bob@192.0.2.4>

    Expires: 7200

    Content-Length: 0

    这次注册的有效期为2个小时(7200秒)

    注册服务器返回 200 OK 响应。

    F2 200 OK Registrar -> Bob

    SIP/2.0 200 OK

    Via: SIP/2.0/UDP bobspc.biloxi.com:5060;branch=z9hG4bKnashds7;received=192.0.2.4

    To: Bob <sip:bob@biloxi.com>;tag=2493k59kd

    From: Bob <sip:bob@biloxi.com>;tag=456248

    Call-ID: 843817637684230@998sdasdh09

    CSeq: 1826 REGISTER

    Contact: <sip:bob@192.0.2.4>

    Expires: 7200

    Content-Length: 0

    5.2 会话建立与拆除

    会话建立是SIP的最基本的功能。

    消息流如下图所示。

    clip_image026

    消息内容:(注意这里并未给出会话媒体参数SDP的细节)

    F1 INVITE Alice -> atlanta.com proxy

    INVITE sip:bob@biloxi.com SIP/2.0

    Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8

    Max-Forwards: 70

    To: Bob <sip:bob@biloxi.com>

    From: Alice <sip:alice@atlanta.com>;tag=1928301774

    Call-ID: a84b4c76e66710

    CSeq: 314159 INVITE

    Contact: <sip:alice@pc33.atlanta.com>

    Content-Type: application/sdp

    Content-Length: 142

    (Alice的 SDP 未显示)

    F2 100 Trying atlanta.com proxy -> Alice

    SIP/2.0 100 Trying

    Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8

    ;received=192.0.2.1

    To: Bob <sip:bob@biloxi.com>

    From: Alice <sip:alice@atlanta.com>;tag=1928301774

    Call-ID: a84b4c76e66710

    CSeq: 314159 INVITE

    Content-Length: 0

    F3 INVITE atlanta.com proxy -> biloxi.com proxy

    INVITE sip:bob@biloxi.com SIP/2.0

    Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1

    Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8

    ;received=192.0.2.1

    Max-Forwards: 69

    To: Bob <sip:bob@biloxi.com>

    From: Alice <sip:alice@atlanta.com>;tag=1928301774

    Call-ID: a84b4c76e66710

    CSeq: 314159 INVITE

    Contact: <sip:alice@pc33.atlanta.com>

    Content-Type: application/sdp

    Content-Length: 142

    (Alice的 SDP 未显示)

    F4 100 Trying biloxi.com proxy -> atlanta.com proxy

    SIP/2.0 100 Trying

    Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1

    ;received=192.0.2.2

    Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8

    ;received=192.0.2.1

    To: Bob <sip:bob@biloxi.com>

    From: Alice <sip:alice@atlanta.com>;tag=1928301774

    Call-ID: a84b4c76e66710

    CSeq: 314159 INVITE

    Content-Length: 0

    F5 INVITE biloxi.com proxy -> Bob

    INVITE sip:bob@192.0.2.4 SIP/2.0

    Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1

    Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1

    ;received=192.0.2.2

    Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8

    ;received=192.0.2.1

    Max-Forwards: 68

    To: Bob <sip:bob@biloxi.com>

    From: Alice <sip:alice@atlanta.com>;tag=1928301774

    Call-ID: a84b4c76e66710

    CSeq: 314159 INVITE

    Contact: <sip:alice@pc33.atlanta.com>

    Content-Type: application/sdp

    Content-Length: 142

    (Alice的 SDP 未显示)

    F6 180 Ringing Bob -> biloxi.com proxy

    SIP/2.0 180 Ringing

    Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1

    ;received=192.0.2.3

    Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1

    ;received=192.0.2.2

    Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8

    ;received=192.0.2.1

    To: Bob <sip:bob@biloxi.com>;tag=a6c85cf

    From: Alice <sip:alice@atlanta.com>;tag=1928301774

    Call-ID: a84b4c76e66710

    Contact: <sip:bob@192.0.2.4>

    CSeq: 314159 INVITE

    Content-Length: 0

    F7 180 Ringing biloxi.com proxy -> atlanta.com proxy

    SIP/2.0 180 Ringing

    Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1

    ;received=192.0.2.2

    Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8

    ;received=192.0.2.1

    To: Bob <sip:bob@biloxi.com>;tag=a6c85cf

    From: Alice <sip:alice@atlanta.com>;tag=1928301774

    Call-ID: a84b4c76e66710

    Contact: <sip:bob@192.0.2.4>

    CSeq: 314159 INVITE

    Content-Length: 0

    F8 180 Ringing atlanta.com proxy -> Alice

    SIP/2.0 180 Ringing

    Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8

    ;received=192.0.2.1

    To: Bob <sip:bob@biloxi.com>;tag=a6c85cf

    From: Alice <sip:alice@atlanta.com>;tag=1928301774

    Call-ID: a84b4c76e66710

    Contact: <sip:bob@192.0.2.4>

    CSeq: 314159 INVITE

    Content-Length: 0

    F9 200 OK Bob -> biloxi.com proxy

    SIP/2.0 200 OK

    Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1

    ;received=192.0.2.3

    Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1

    ;received=192.0.2.2

    Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8

    ;received=192.0.2.1

    To: Bob <sip:bob@biloxi.com>;tag=a6c85cf

    From: Alice <sip:alice@atlanta.com>;tag=1928301774

    Call-ID: a84b4c76e66710

    CSeq: 314159 INVITE

    Contact: <sip:bob@192.0.2.4>

    Content-Type: application/sdp

    Content-Length: 131

    (Bob的 SDP 未显示)

    F10 200 OK biloxi.com proxy -> atlanta.com proxy

    SIP/2.0 200 OK

    Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1

    ;received=192.0.2.2

    Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8

    ;received=192.0.2.1

    To: Bob <sip:bob@biloxi.com>;tag=a6c85cf

    From: Alice <sip:alice@atlanta.com>;tag=1928301774

    Call-ID: a84b4c76e66710

    CSeq: 314159 INVITE

    Contact: <sip:bob@192.0.2.4>

    Content-Type: application/sdp

    Content-Length: 131

    (Bob的 SDP 未显示)

    F11 200 OK atlanta.com proxy -> Alice

    SIP/2.0 200 OK

    Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8

    ;received=192.0.2.1

    To: Bob <sip:bob@biloxi.com>;tag=a6c85cf

    From: Alice <sip:alice@atlanta.com>;tag=1928301774

    Call-ID: a84b4c76e66710

    CSeq: 314159 INVITE

    Contact: <sip:bob@192.0.2.4>

    Content-Type: application/sdp

    Content-Length: 131

    (Bob的 SDP 未显示)

    F12 ACK Alice -> Bob

    ACK sip:bob@192.0.2.4 SIP/2.0

    Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9

    Max-Forwards: 70

    To: Bob <sip:bob@biloxi.com>;tag=a6c85cf

    From: Alice <sip:alice@atlanta.com>;tag=1928301774

    Call-ID: a84b4c76e66710

    CSeq: 314159 ACK

    Content-Length: 0

    现在Alice和Bob之间的媒体会话被建立。

    Bob首先挂机。注意Bob的SIP 话机维护自己的 CSeq 编号空间,在这里是从231开始。因为是Bob 发送的请求,To 和 From 头域的URIs和tags参数被掉换。

    F13 BYE Bob -> Alice

    BYE sip:alice@pc33.atlanta.com SIP/2.0

    Via: SIP/2.0/UDP 192.0.2.4;branch=z9hG4bKnashds10

    Max-Forwards: 70

    From: Bob <sip:bob@biloxi.com>;tag=a6c85cf

    To: Alice <sip:alice@atlanta.com>;tag=1928301774

    Call-ID: a84b4c76e66710

    CSeq: 231 BYE

    Content-Length: 0

    F14 200 OK Alice -> Bob

    SIP/2.0 200 OK

    Via: SIP/2.0/UDP 192.0.2.4;branch=z9hG4bKnashds10

    From: Bob <sip:bob@biloxi.com>;tag=a6c85cf

    To: Alice <sip:alice@atlanta.com>;tag=1928301774

    Call-ID: a84b4c76e66710

    CSeq: 231 BYE

    Content-Length: 0

    展开全文
  • 15年前运营商的核心网还是七号信令(SS7)...现在的IMS核心网已经是SIP了,如果重新设计一个类似的系统,可能吗? 信令采集系统需要采集全部的信令消息,其特点是数据很大,除了呼叫相关的信令消息还有注册消息,堪称

    15年前运营商的核心网还是七号信令(SS7),那时候的信令采集、监控和检测系统还很落后,基本上就是给交换部门一个实时跟踪呼叫的工具,尤其是查询历史信令,很麻烦,需要将某日的原始数据导入进数据库,再进行查询,相当麻烦而且查询速度超慢。当时一个朋友想挖掘呼叫的数据,于是我在本地网已经收敛好的信令上,做了一个信令采集、存储和快速检索系统,性能远超当时的中创信测系统,颇得运营商搞交换的弟兄好评。现在的IMS核心网已经是SIP了,如果重新设计一个类似的系统,可能吗?

    信令采集系统需要采集全部的信令消息,其特点是数据很大,除了呼叫相关的信令消息还有注册消息,堪称海量。以10万注册分机的中等规模电力IMS为例,每日呼叫数约40万次,达320万个呼叫消息。注册及相关的消息更大,每天高达近7千万条消息。

    最容易想到的是使用通用数据库,普通做企业应用的程序员(一般使用java),经常使用关系型数据库,但随着数据量的急剧增加,插入和检索的性能都很受影响,哪怕购买最强悍的硬件,也很难达到性能上的要求,最后的结果只能是限制时间,比如只能存储一个月的数据或者各种分表,不但可用性极差,存储和查询的性能也很难达到要求。实际上原先就运行了这么一个用Java+MySQL实现的系统:采集和存储使cpu达400%--全部跑满,查询慢如蜗牛,几分钟才出结果。

    当然,也可以使用nosql类型的数据库,这个可能会好一点,不能彻底解决问题,而且换取一点性能提升仍然需要高成本的硬件投入,有没有一种更完美的解决方案呢?答案是肯定的。

    让我们先来分析信令数据的特点:

    1、数据只会增加,一旦生成了不会回过头去修改也不会逐条删除;因此关系型数据库的update、delete是不需要的操作,只要insert。关系型数据库可以排除。

    2、sip信令消息都是文本,但不等长,每条消息数百字节到上千字节不等。

    3、历史数据检索,一般是限定日期时间段,指定某个关键字进行检索,如主叫号码或被叫号码,呼叫ID、拒接码等。

    根据这几个特点,我设定了目标:

    1、使用自己设计的文件存储,简单,可扩展,不够加硬盘就可以。仅需一两台普通PC服务器,不需要特别大的硬件投入。

    2、检索要很快,要在1秒内返回结果。

    3、支持web查询,实时信令监控支持websocket推送。

    设计方法简要列举一下:

    1、使用C/C++开发,底层开发,保持高效率。

    2、对应呼叫数据,从底层到上层可抽象为:原始信令文件,信令记录文件,CDR文件,CDR类似话单,话单一般接通了生成,CDR只要呼叫了就会生成,无论呼叫成功还是失败。CDR数据提供接口,可以导出到关系型数据库进行复杂的检索分析。

    3、非呼叫数据,如分机注册数据,只有两个抽象:原始信令文件,信令记录文件

    4、索引文件,简单的平坦单一索引,不使用B+数等更复杂的结构。

    5、按记录条数来生成数据记录文件和索引,这样可避免单个的文件太大。

    6、核心存储模块和查询检索模块分成两个进程,保证各自的稳定性。尤其是核心模块,对实时性要求比较高,需要稳定运行。

    7、核心模块的信令采集和存储处理之间采用无锁的环形队列,保证高并发性和实时性。

    上述设计在电力的IMS通信网中已经实现,效果相当不错。

    展开全文
  • sip信令跟踪工具sngrep

    2021-10-27 14:17:56
    抓包的工具有wireshark、tcpdump等等,如果是只针对sip信令的抓包,则sngrep更专业好用。 sngrep对SIP抓包的专业性体现在: 实时抓取,实时展示。 可以作为sip PCAP查看器。 对sip信令中的任意字段设置过滤器。 ...
  • SIP信令交互过程示例

    万次阅读 2019-07-02 17:20:44
    一个简单的SIP信令交互过程如图: UAC发送INVITE消息,发起呼叫。 UAS回送100/Trying消息,表示呼叫已经到达,正在处理中。 UAS回送180/Ringing消息,表示振铃中。 UAS回送200/OK消息,表示摘机。 UAC发送ACK...
  • 本文从SIP网络架构开始,详细介绍了SIP协议、IMS注册及相关流程、IMS会话及相关流程等 内容,是一款非常难得的学习入门资料 。
  • SIP信令跟踪工具HOMER

    2022-04-15 09:08:01
    HOMER是一款100%开源的针对SIP/VOIP/RTC的抓包工具和监控工具。 HOMER是一款强大的、运营商级、可扩展的数据包和事件捕获系统,是基于HEP/EEP协议的VoIP/RTC监控应用程序,并可以使用即时搜索、处理和存储大量的...
  • 开源工具来源于:https://github.com/sipcapture/heplify 给上执行权限,直接执行就行,抓取的信令会直接打印在屏幕上,centos6/7 chmod +x heplify ./heplify
  • 开源sip服务器软件:opensips 官方网站:https://opensips.org/ 版本:3.2.5 https://opensips.org/pub/opensips/3.2.5/opensips-3.2.5.tar.gz 操作系统: CentOS 7 数据库:mysql 准备安装: 1.安装mysql...
  • SIP信令标准软件

    2020-10-21 15:16:41
    SIP信令标准软件
  • 从攻击者的角度出发,通过统计畸形元素在SIP字段和畸形类型上的分布,分析攻击者构造畸形SIP信令的策略,优先对高威胁的SIP字段和畸形类型进行检测,从而在保证检测有效性的同时减少了检测时延。实验结果表明,该方法适用...
  • 呼叫保持SIP信令流程

    2009-03-25 09:51:45
    SIP实现呼叫保持的信令流程,-详细介绍了在电信呼叫保持业务中的信令流程
  • VoLTE呼叫SIP信令分析

    千次阅读 2021-01-30 21:07:25
    目录 1 INVITE 2 100 Trying 3 183 Session Progress 4 PRACK 5 UPDATE 6 PRACK 200 OK 7 200 OK 8 180 Ringing 9 PRACK ...sip:18801200325@ims.mnc060.mcc460.3gppnetwork.org 是 IMPU
  • 1、通信流程图 2、流程概括图 3、部署SIP服务器(wvp服务): 3.1、下载wvp-gb28181-pro升级版本的代码到本地 1、下载地址:可直接下载zip包 https://gitcode.net/mirrors/648540858/wvp-GB28181-pro 2、或者用git ...
  • 基于ICE方式SIP信令穿透SymmetricNAT技术研究.pdf
  • Android楼宇对讲的SIP信令控制技术研究.pdf
  • NGN网络信令跟踪与分析 第 1 章 项目简介 1.1 项目名称 NGN网络信令跟踪与分析SIP协议 1.2 开发人员 1.3 指导教师 第 2 章 项目研究意义 2.1 课程设计概述 通过本次实验让学生加深对语音分组交换的理解并初步掌握...
  • FreeSWITCH默认要求SIP信令要携带媒体地址、端口等信息,如果没有这个信息,则会丢弃这个信令,可通过修改以下参数使FreeSWITCH支持不带媒体信息的SIP信令: vim /usr/local/freeswitch/conf/sip_profiles/external....
  • sip构建java源码很棒的语音 :red_heart: 支持我的应用 :red_heart: :red_heart: :red_heart: :smiling_face_with_halo: :smiling_face_with_heart-eyes: :sign_of_the_horns: :red_heart: :red_heart: 在使用 ...
  • 主要讲解java简单实现gb28181的sip信令服务器,和简单处理rtp over udp,rtp over tcp的 ps流,然后转推rtmp 以下仅代表个人理解,仅供参考,欢迎大佬纠正!!!
  • 基于危险函数的高效畸形SIP信令集生成方法,靳国栋,双锴,SIP(Session Initiation Protocol)是一个由IETF提出并研究的位于应用层的会话发起协议。它实现了分组网络的会话创建、修改、结束等控制功��
  • 视频服务器端基于XML的SIP信令系统的设计,韩红梅,,视频服务器采用ARM DSP双核结构处理器,实现了视频图像的采集、编码、传输、存储以及设备管理等功能。深入研究了会话起始协议(SIP��
  • SIP信令压缩技术_百度文库.mht
  • H.323-SIP信令网关

    2021-12-27 17:17:27
    H.323-SIP信令网关在H.323和SIP互通中占有得要的地位,它能够使位于不同网络的用户直接和对端进行媒体 交换,实现点到点、点到多点之间的通信。H.323-SIP信令网关的功能会越来越完善,也会越来越适应用
  • 主要讲解java简单实现gb28181的sip信令服务器,和简单处理rtp over udp,rtp over tcp的 ps流,然后转推rtmp 以下仅代表个人理解,仅供参考,欢迎大佬纠正!!!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,778
精华内容 2,311
关键字:

sip信令