Presentation is loading. Please wait.

Presentation is loading. Please wait.

VoIP 协议介绍 北京大唐高鸿数据网络技术有限公司 由 NordriDesign 提供 www.nordridesign.com.

Similar presentations


Presentation on theme: "VoIP 协议介绍 北京大唐高鸿数据网络技术有限公司 由 NordriDesign 提供 www.nordridesign.com."— Presentation transcript:

1 VoIP 协议介绍 北京大唐高鸿数据网络技术有限公司 由 NordriDesign 提供

2 目录 VoIP 概述 H.323 协议简介 SIP 协议简介 抓包和协议分析 PSTN 接口简介

3 VoIP 概述

4 什么是 VoIP VoIP  Voice over Internet Protocol  在 IP 网络或者包交换网络中传输语音  模拟声音讯号 (Voice) 数字化,以数据封包 (Data Packet) 的型式在 IP 数据网络 (IP Network) 上做实时传递  将模拟的声音信号经过压缩与封包之后,以数据封包的形式在 IP 网络的环境进行语音讯号的传输,通俗来说也就是互联网电话、 网络电话或者简称 IP 电话的意思。

5 VoIP 常用协议 H323  ITU-T 标准, 在无 QoS 保证的包交换网络上进行多媒体通信  1996 年推出第一版 SIP  IETF 标准, 用于和一个或多个参与者创建、修改和终止会话  1999 年形成 RFC2543  目前最新是 RFC3261 MGCP  IETF 标准, 用于软交换和媒体网关之间的协议  1999 年 10 月形成 IETF RFC2705 Megaco/H.248  ITU-T 与 IETF 合作推出,功能类似于 MGCP  2000 年 6 月推出

6 H.323 协议简介

7 什么是 H.323 由 ITU-T 制定的一种支持在无 QoS 保证的分组交换网上实 现实时多媒体通信的协议 支持多点功能,组播和带宽管理 支持语音,视频和数据的传输

8 H.323 协议组件

9 H.323 协议组件 网关 GW 网守 Gatekeeper 终端 Terminal 多点控制单元 MCU IP 网络 PSTN

10 H.323 协议组件 - 终端 终端是分组网络中能提供实时、双向通信的节点设备,也 是一种终端用户设备,可以和网关、多点接入控制单元通 信 A/D 转换 System Control H.245 Control Call Control H RAS Control H 视频 I/O 设备 音频 I/O 设备 数据应用 T.120 系统控制 用户接口 编码 / 压缩 TCP/IP

11 H.323 协议组件 - 网关  网关提供 H.323 网络与非 H.323 网络之间信令和媒体的转换 接口 FXS/FXO E1/T1 Video/ Audio Codec System Control H.245 Control Call Control H RAS Control H LAN 接口 PSTN/ISDNIP 网关

12 H.323 协议组件 - 网守 概述  管理一个域中的网关、终端和 MCU 等设备 功能  地址翻译  带宽控制  鉴权(终端、网关和 MCU )  区域管理  多方会议 单个 GK 和该 GK 管理的 H.323 端点构成一个域 是 H.323 系统中的一个可选组件

13 H.323 协议组件 -MCU 多点控制单元( Multipoint Control Unit )  支持 3 个或 3 个以上的端点参加的多点会议  一个 MCU 必须包含一个 MC 和零或多个 MP MC  在一个多点会议之中提供控制功能 MP  在多点会议中从终端接收音频、视频或数据流,处理之后再把它 们回送到各个终端

14 H.323 协议簇

15 H.323 协议簇 - 呼叫控制信令 RAS Signaling H Call Signaling H.245 Call Control

16 H.323 协议簇 -RAS 用于 GW 和 GK , GK 和 GK 之间通信的协议 主要的消息  GRQ/GCF/GRJ  RRQ/RCF/RRJ  ARQ/ACF/ARJ  DRQ/DCF/DRJ  LRQ/LCF/LRJ

17 H.323 协议簇 -H Call Signaling 用于端点间的呼叫控制 主要的消息  SETUP  CALLPROCEEDING  ALERTING  CONNECT  RELEASE COMPLETE

18 H.323 协议簇 -H.245 Call Control 用于端点间的多媒体通信控制  编解码能力协商(音频视频)  主从确定  打开逻辑通道  会议控制 主要的消息  TCS ( Terminal Capability Set ,能力交换)  MSD ( Master-Slave Determination ,主从确定)  OLC ( Open Logical Channel ,打开逻辑通道)

19 H.323 协议簇 - 快速连接( Fast Connect ) H.245 交互过程较为复杂且费时 在 H call signaling 中携带快速连接单元来完成 H.245 协议的功能  可以携带在 setup, call proceeding, alerting 或者 connect 中

20 H.323 协议簇 - 基本交互流程(无 GK ) 交互 RTP 流 Call Proceeding Setup Alerting 终端 A 终端 B Connect 建立 H.245 会话 Release Complete

21 H.323 协议簇 - 基本交互流程(有 GK ) DRQ 终端 A GK 终端 B ACF ARQ ACF Setup Release Complete Connect Alerting 交互 RTP 流 建立 H.245 会话 Call Proceeding DCF DRQ DCF

22 SIP 协议简介

23 什么是 SIP ( Session Initiation Protocol ) 用于建立、修改、拆除多媒体会话 目前的核心 RFC 为 3261 支持多种应应用层的信令协议,可以基于:  视频、语音、即时消息、在席服务、呼叫控制等 被 NGN (下一代网络)和 3G IMS ( IP 多媒体子系统)采 纳作为呼叫控制信令

24 SIP 特点 应用层协议,可以基于 TCP 和 UDP 等,独立于底层的传输 协议 根植于 IP 网络,可以和其他 IETF 协议配合使用  RTP/RTCP 、 SDP 、 RTSP 、 DNS  SDP 协议用于编解码协商 基于文本的协议(类似于 HTML )  阅读和分析 SIP 协议变得简单

25 SIP 协议实体 User Agent SIP SERVER  Proxy server  registrar  redirect server

26 SIP 协议实体 -User Agent 发送和接收 SIP 请求的逻辑实体  UAC 发送请求  UAS 接收请求 常见形态  SIP 话机  桌面型 SIP 软件电话  PSTN 网关 UASUAC UASUAC 1) request 2) response

27 SIP 协议实体 -Proxy Stateful Proxy server  维持呼叫状态 Stateless Proxy server  不维持呼叫状态 UA1 Proxy server 1) request 4) response UA2 2) request 3) response

28 SIP 协议实体 -Redirect Server 将请求中的地址映射为零个或多个新的地址,返回给客户 端 客户端直接向这些新的地址发起请求 主要完成路由功能 UA1 UA2 Redirect ServerLocation server 1) request 4) response 3) response 5) request 6) response

29 SIP 协议实体 -Registrar 注册服务器  接受 UA 的注册 通常与 Proxy 或者 Redirect server 共存 UA Registrar 1) request 3) response

30 SIP Uniform Resource Indicators (URIs) 用于标识一个呼叫资源 类似于 地址 形式 包含两种 URI 方案  SIP URI  secure SIP URI 两种类型的 SIP URIs  Address of Record (用户标识) 需要服 务器解析域名 gohigh.com  Contact (设备标识) 无需服务器解析

31 SIP 消息 请求消息( Request )  UAC 发给 UAS  使用请求行 -Request-Line 区分是哪一种请求消息,请求行包括: Method 、 Request-URI 、 Protocol version 响应消息( Response )  UAS 发给 UAC  状态行 -Status-Line 记录对请求的响应码

32 SIP 消息 - Request REGISTER  注册请求,上报用户信息,完成号码绑定 INVITE  发起会话请求 CANCEL  取消一个尚未完成的请求,特别针对 INVITE ACK  为 INVITE 请求提供三次握手 BYE  结束会话请求 OPTION  查询服务器能力

33 SIP 消息 - Response 1XX  临时响应,表示请求正在处理中 2XX  成功响应消息 3XX  重定向消息 4XX  客户端错误, 错误来源于 UAC 5XX  服务端错误, 错误来源于 UAS 6XX  全局错误

34 SIP 典型流程 - 注册 UA 设备开机需要向服务器注册 当 sip client 地址发生变化时也需要重新注册 注册信息需要定时刷新 REGISTER(1) 401 (2) UA REGISTER(3) 200 (4)

35 SIP 典型流程 - 呼叫建立 INVITE with SDP 100 Trying ACK 200 OK with SDP 180 Ringing RTP UA1UA2

36 SIP 典型流程 - 呼叫拆除 INVITE with SDP 100 Trying ACK 200 OK with SDP 180 Ringing UA1UA2 BYE 200 OK

37 SIP 典型流程 - 重定向呼叫 UA1UA2 INVITE 301 Moved Permanant ACK INVITE 200 OK 180 Ringing Redirect Server

38 SIP 典型流程 - 代理呼叫 UA1UA2proxy Server INVITE 100 Trying ACK 200 OK 180 Ringing RTP INVITE 100 Trying ACK 200 OK 180 Ringing

39 软交换体系架构

40 抓包及协议分析

41 抓包工具的使用方法(一) 可以采用抓取 IP 报文的方式来定位问题  可以定位注册服务器失败,呼叫失败,语音单通等多种故障 目前常用的软件为 WIRESHARK  免费软件  可以对 VoIP 协议进行分析  使用方便简单 抓包方法  将 wireshark 安装在 PC 上  将需要抓包的设备(如 IP 话机)和 PC 接在同一个 HUB 下  打开 wireshark 软件开始抓取 IP 包  等待问题现象出现抓到所需报文后停止抓包

42 抓包工具的使用方法(二) 点击左上角图标列出所有 PC 上的以太网口 选择要抓包的网口,点击 Start 即开始抓包

43 可以在 “Filter” 栏中输入过滤条件看指定协议的报文  对于 IP 话机的常见问题都可以使用 sip 这个条件来过滤 抓包工具的使用方法(三)

44 请求消息 INVITE 分析( 1/8 ) INVITE SIP/2.0 v: SIP/2.0/UDP :5060 t: f: “Flood" ;tag=7c3c d6-01c2-13d0-00e0bb1ad1da i: CSeq: 5001 INVITE m: User-Agent: "3Com-SIP-Phone/V " c: application/sdp P-Asserted-Identity: “Flood" l: 210 起始行( Start Line )  Method: INVITESIP URI  Request-URI:  Sip Version: SIP/2.0

45 请求消息 INVITE 分析( 2/8 ) INVITE SIP/2.0 v: SIP/2.0/UDP :5060 t: f: “Flood" ;tag=7c3c d6-01c2-13d0-00e0bb1ad1da i: CSeq: 5001 INVITE m: User-Agent: "3Com-SIP-Phone/V " c: application/sdp P-Asserted-Identity: “Flood" l: 210 Via header  包含此请求消息对应的响应消息需要回复的地址,示例中 标识了发起请求的 UA 地址  同一个消息中可以包含多个 Via header 域,每个域中又可 以包含多个 entity 地址

46 请求消息 INVITE 分析( 3/8 ) INVITE SIP/2.0 v: SIP/2.0/UDP :5060 t: f: “Flood" ;tag=7c3c d6-01c2-13d0-00e0bb1ad1da i: CSeq: 5001 INVITE m: User-Agent: "3Com-SIP-Phone/V " c: application/sdp P-Asserted-Identity: “Flood" l: 210 To 、 From 和 Call-ID 唯一标志 SIP 会话中的对话( dialog )  To header 包含接收请求消息的目标 URI 地址  From header 包含发送请求消息的 display name ( Flood ) 和起始 URI 地址,这两个值确定请求消息的发送源  Tag parameter 以及 Call-ID 是由发送源 UA 产生,包括随机 的字符串、 UA 主机名称或者 UA 地址等。

47 请求消息 INVITE 分析( 4/8 ) INVITE SIP/2.0 v: SIP/2.0/UDP :5060 t: f: “Flood" ;tag=7c3c d6-01c2-13d0-00e0bb1ad1da i: CSeq: 5001 INVITE m: User-Agent: "3Com-SIP-Phone/V " c: application/sdp P-Asserted-Identity: “Flood" l: 210 Command Sequence 包含一个整数和 method 名称  整数代表 CSeq number ,同一个对话中的请求消息序列号 按照发送时间的顺序依次递增 “1” Contact 包含到达消息源的直接路由 URI

48 请求消息 INVITE 分析( 5/8 ) INVITE SIP/2.0 v: SIP/2.0/UDP :5060 t: f: “Flood" ;tag=7c3c d6-01c2-13d0-00e0bb1ad1da i: CSeq: 5001 INVITE m: User-Agent: "3Com-SIP-Phone/V " c: application/sdp P-Asserted-Identity: “Flood" l: 210 User-Agent 是可选域,包含发送消息的 UA 信息 Content-Type 代表消息体所包含的媒体类型 P-Asserted-Identity 是可选域,用于标识可信任实体 Content-Length 表示消息体的内容长度

49 请求消息 INVITE 分析( 6/8 ) v=0 o= IN IP s= c=IN IP t=0 0 m=audio 8008 RTP/AVP a=rtpmap:18 G729/8000 a=rtpmap:0 PCMU/8000 a=fmtp: a=rtpmap:96 telephone-event/8000 “v=“ 表示 SDP 协议的版本 “o=“ 由 组成 “s=“ 表示会话名称 “c=“ 包含连接数据

50 请求消息 INVITE 分析( 7/8 ) v=0 o= IN IP s= c=IN IP t=0 0 m=audio 8008 RTP/AVP a=rtpmap:18 G729/8000 a=rtpmap:0 PCMU/8000 a=fmtp: a=rtpmap:96 telephone-event/8000 “t=“ 表示会议会话的开始和截止时间 “m=“ 包含媒体描述符 “a=“ 表示能力集描述符表示会话名称

51 请求消息 INVITE 分析( 8/8 ) v=0 o= IN IP s= c=IN IP t=0 0 m=audio 8008 RTP/AVP a=rtpmap:18 G729/8000 a=rtpmap:0 PCMU/8000 a=fmtp: a=rtpmap:96 telephone-event/8000 m= / a=rtpmap: / [/ ] a=fmtp:

52 SDP 协商示例 OFFER v=0 o=alice IN IP4 host.atlanta.example.com s= c=IN IP4 host.atlanta.example.com t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:97 iLBC/8000 m=video RTP/AVP a=rtpmap:31 H261/90000 a=rtpmap:32 MPV/90000 ANSWER v=0 o=bob IN IP4 host.biloxi.example.com s= c=IN IP4 host.biloxi.example.com t=0 0 m=audio RTP/AVP 0 a=rtpmap:0 PCMU/8000 m=video RTP/AVP 32 a=rtpmap:31 H261/90000 相同的编解码被协商,如果有多个相同的编解码,列表中靠前的编码被协 商成功

53 注册流程 -register (一) Session Initiation Protocol Request-Line: REGISTER sip: SIP/2.0 Method: REGISTER [Resent Packet: False] Message Header Via: SIP/2.0/UDP ;branch=z9hG4bKb538878a Transport: UDP Sent-by Address: Branch: z9hG4bKb538878a From: "1001" ;tag=1CAF137D-6B82D88C SIP Display info: "1001" SIP from address: SIP tag: 1CAF137D-6B82D88C To: SIP to address: CSeq: 1 REGISTER Sequence Number: 1 Method: REGISTER Call-ID: Contact: ;methods="INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER" Contact Binding: ;methods="INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER" URI: SIP contact address: User-Agent: PolycomSoundPointIP-SPIP_550-UA/

54 注册流程 -401 (二) Session Initiation Protocol Status-Line: SIP/ Unauthorized Status-Code: 401 [Resent Packet: False] Message Header Via: SIP/2.0/UDP ;branch=z9hG4bKb538878a Transport: UDP Sent-by Address: Branch: z9hG4bKb538878a From: "1001" ;tag=1CAF137D-6B82D88C SIP Display info: "1001" SIP from address: SIP tag: 1CAF137D-6B82D88C To: ;tag= SIP to address: SIP tag: Date: Fri, 26 Sep :29:57 GMT Call-ID: CSeq: 1 REGISTER Sequence Number: 1 Method: REGISTER WWW-Authenticate: Digest realm="ccmsipline", nonce="RdzVLKlDTrF3qGacHfoazxKMHQzsDsbn", algorithm=MD5 Authentication Scheme: Digest Realm: "ccmsipline" Nonce Value: "RdzVLKlDTrF3qGacHfoazxKMHQzsDsbn" Algorithm: MD5

55 注册流程 -register (三) Authorization: Digest username="1001", realm="ccmsipline", nonce="RdzVLKlDTrF3qGacHfoazxKMHQzsDsbn", uri="sip: ", response="f e0f3b19d727c3d1e078afd", algorithm=MD5 Authentication Scheme: Digest Username: "1001" Realm: "ccmsipline" Nonce Value: "RdzVLKlDTrF3qGacHfoazxKMHQzsDsbn" Authentication URI: "sip: " Digest Authentication Response: "f e0f3b19d727c3d1e078afd" Algorithm: MD5

56 注册流程 -200OK (四) Session Initiation Protocol Status-Line: SIP/ OK Status-Code: 200 Message Header Via: SIP/2.0/UDP ;branch=z9hG4bK3f3da5839CBF5422 Transport: UDP Sent-by Address: Branch: z9hG4bK3f3da5839CBF5422 From: "1001" ;tag=1CAF137D-6B82D88C SIP Display info: "1001" SIP from address: SIP tag: 1CAF137D-6B82D88C To: ;tag= SIP to address: SIP tag: Date: Fri, 26 Sep :29:59 GMT Call-ID: CSeq: 2 REGISTER Sequence Number: 2 Method: REGISTER Expires: 120 Contact: ;methods="INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER";x-cisco-newreg Contact Binding: ;methods="INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER";x-cisco-newreg URI: SIP contact address: Supported: X-cisco-sis-2.0.0

57 PSTN 接口简介及常见概念

58 PSTN 电话公网 PBX :语音电话交换机 电话终端 PBX :语音电话交换机、程控交换机 功能:语音提示、电话转接 厂商:北电 Nortel 、阿尔卡特 Alcatel 、亚美亚 Avaya 、西门子 Siemens 、 NEC 、松下、华为、 中兴、大唐 … 总机 / 分机方式 1 个 PBX 交换机绑定 1 个或多个公网号码,如 (010) 通过总机(人工或自动)将来电转接到分机,如分机 4095 ,分机 6032 DID 方式 通过固话运营商申请一组 DID 的号码,可以直接拨叫分机,如 主叫方(发起呼叫) 基础知识( PBX ) 总机: (010) 分机 4095 分机 6032 DID: (010)

59 PSTN 电话公网 PBX :语音电话交换机 电话终端 数字话机 模拟话机 传真机 数字话机(数字线路) 优点:功能多,操作灵活,接续快,话路多(同时接听的电话) 缺点:不通用(必须使用 PBX 厂商专用的数字话机),价格贵 模拟话机(模拟线路) 优点:便宜,通用(任何厂商) 缺点:功能少,接续慢,同时接入的话路有限( 3 路) 传真机:模拟线路 主叫方(发起呼叫) 基础知识(电话终端) 总机: (010) 分机 4095 分机 6032 DID: (010) 传真

60 PSTN 电话公网 PBX 电话终端 语音信箱、 留言系统、 Voic … 语音信箱主要是用于在没人应答电话的情况下,实现语音留言的功能。当 有语音留言的时候,语音信箱往往会点亮话机的留言灯 一般每一个分机对应一个语音信箱 语音信箱与 PBX 之间一般通过数字线路或模拟线路连接,连接线路数量一 般不多(同时访问语音留言的线数) 语音留言的内容保存在语音信箱服务器上 一般外企、酒店常用 主叫方(发起呼叫) 基础知识(语音信箱) (010) 分机 4095 分机 6032 传真 语音信箱

61 PSTN 接口概述 PBX/PSTN PSTN 接口 IP 网络 模拟接口  FXS 、 FXO 、 E&M 等 数字接口  E1 、 T1 等

62 PSTN 接口 -FXS FXS ( Foreign eXchange Station )  模拟语音接口,通常称为用户电路接口,是数字电话交换系统和 POTS 电话,传真等用户设备之间的一个线路端连接。简单的说它 是直接与普通模拟电话机、传真机、 PBX 环路中继的接口。

63 PSTN 接口 -FXO FXO ( Foreign eXchange Office )  模拟语音接口,通常称为二线环路中继接口;通常用于连接 PSTN  FXS 和 FXO 口成对出现

64 PSTN 接口 - 语音 E1 数字中继接口 传输速率是 2.048Mbps 主要用于欧洲和中国 30B+D 线路,可承载 30 路语音 两种阻抗类型  75 欧姆, 120 欧姆 三种信令  SS7  ISDN PRI  R2 (中国一号) 收敛比  总电话数量:总外线数量,经验值为 10 : 1 或者 8 : 1

65 PSTN 接口 - 语音 E1


Download ppt "VoIP 协议介绍 北京大唐高鸿数据网络技术有限公司 由 NordriDesign 提供 www.nordridesign.com."

Similar presentations


Ads by Google