SDP协议学习

1.什么是SDP

SDP(Session Description Protocol)它只是一种信息格式的描述标准,本身不属于传输协议,但是可以被其他传输协议用来交换必要的信息。

2.SDP规范

多个媒体描述:对于终端来说有几路视频和音频,每一路音频视频使用的哪些编解码器,编解码器的参数的描述等

一个会话级描述:使用的SDP协议版本,使用的网络是什么(全局的),会话只有一个,全局的。

由多个<type>=<value>组成:

3.会话层:

会话的名称和目的

会话的存活时间

会话中包括多个媒体信息

4.媒体层(媒体层是在会话层之内的)

媒体格式 

传输协议

传输的IP端口

媒体负载类型

5.SDP描述信息

5.1.Session Description

 v=(protocol version)

o=(owner/create and session identifier)

s=(session name)

c=*(conn info - optional if included at session-level)

t=(time the session is active)

a=*(zero or more session attribute lines) 可以有0个或多个属性

5.2.Media Description

m=(media name and transport address)

c=*(conn ifno - optional if included at session-level) 连接信息,如果会话层有就用会话层的

b=*(bandwidth information)带宽信息

a=*(zero or more session attribute lines)

6.字段含义:

version必选: v=0 SDP的版本号,不包括次版本号

Session Name 必选 s=<session name> 会话名, s=-表示忽略会话名

Origin/Owner 必选 : o=<username> <session id ><version ><network type><address type><address>

例子: o70176245868360677562 IN IP4 127.0.0.1

Connection 可选:c=<network type><address type><connection address>

例:c=IN IP4 0.0.0.0

Media必选:m=<media><port><transport><fmt/payload type list>

例:m=audio 1024 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 126

 底层用的udp协议,udp上的安全套接字DTLS, UDP上使用的是RTP(SRTP), 内容包含s:安全, A:audio, V :video, P:可配置

F:feedback

Attributes 可选 :a=<TYPE>或a=<TYPE>:<VALUES>

例子:a=framerate:<帧速率>

rtpmap 可选 

a=rtpmap:<fmt/payload type> <encoding name> /<clock rate>[/<encodingparameters>]

fmtp可选

a=fmtp:<format/payload type> parameters

例:a=fmtp:103 apt=106

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 了解VoIP和SIP协议 在开始学习FreeSWITCH之前,您应该了解VoIP和SIP协议的基础知识。VoIP是“Voice over Internet Protocol”的简称,它使得可以通过互联网传输语音和多媒体信息。而SIP协议是 VoIP中最重要的协议之一,它负责建立、维护、修改、解散会话。 建议阅读材料: - Understanding VoIP: What is Voice over IP and How it Works - SIP Tutorial: Session Initiation Protocol 2. 学习Linux和命令行 FreeSWITCH是一款基于Linux操作系统的开源软件。因此,了解Linux并能够在命令行中有效使用是必要的。您需要知道如何安装和配置Linux操作系统,基本的命令和文件操作,以及如何管理系统和服务。 建议阅读材料: - The Linux Command Line - Linux Basics for Hackers 3. FreeSWITCH基础知识 学习FreeSWITCH的基础知识是必要的。了解FreeSWITCH的架构、组件、配置文件、模块等基础知识,可以使您更好地理解FreeSWITCH的工作原理。可以从官方的文档中开始学习,从Hello World的入门到API的使用都可以了解。 建议阅读材料: - FreeSWITCH Official Documentation - FreeSWITCH 1.6 Cookbook 4. 熟悉FreeSWITCH的模块 FreeSWITCH 是可扩展的,并内置了许多模块,可以通过配置文件启用。熟悉FreeSWITCH的各种模块可以帮助您更好地应用和扩展FreeSWITCH。这里列举一些常用的模块: - mod_sofia:SIP和SDP处理模块 - mod_dialplan_xml:用于呼叫路由的控制器 - mod_python:用于自定义应用程序以及与其他Web框架交互 - mod_conference:用于多方音频、视频会议 - mod_rtmp:用于流媒体传输 - mod_callcenter:用于呼入呼出中心的自动呼叫分配 建议阅读材料: - FreeSWITCH 1.6 Cookbook - FreeSWITCH 1.6.5 Documentation 5. 熟悉FreeSWITCH的API FreeSWITCH 提供了多种编程语言的接口,如 Python、Lua、JavaScript、Java、NET等。学习如何使用这些API可以让您更好地自定义和扩展FreeSWITCH。 您可以使用API来控制和监视FreeSWITCH,例如添加自定义应用程序、处理呼叫事件、监听录音文件等。 建议阅读材料: - FreeSWITCH Official Wiki - FreeSWITCH 1.6 Cookbook 6. 实际应用 通过实际应用,您可以将学到的知识应用到实际的场景中。例如,您可以构建一个呼叫中心应用程序、电话会议系统、多媒体流处理应用程序等。实践可以帮助您更好地了解FreeSWITCH的工作原理和解决问题。 建议阅读材料: - FreeSWITCH Official Wiki - FreeSWITCH 1.6 Cookbook 最后,需要注意的是,学习FreeSWITCH是一个长期的过程。您需要继续学习新的技术和应用,并了解最新的开发趋势。使用社区和在线资源,加入邮件列表和社交媒体,和其他人交流和分享经验,都可以帮助您不断提高技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值