自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(143)
  • 收藏
  • 关注

原创 SIP调试之SIPP测试工具

  SIPP是针对SIP协议的一个性能测试的命令行工具,可以动态显示测试的统计信息(如呼叫速率、延时、消息统计等)。用户可以通过XML场景配置文件,自定义模拟各种UAC/UAS测试场景的信令交互流程,可以被用来测试IP话机、SIP代理、SIP PBX等SIP设备。官方网站:参考文档:linux平台:注:也可以下载源码编译安装3.2 常用参数说明-v作用:显示版本信息作用:后台模式运行作用:输出SIPP内嵌的默认场景部分参数说明:将场景内容重定向到文件-sf作用:加载指定的场景文件-sn

2024-03-15 19:58:53 928

原创 VoIP之音视频质量及弱网解决方案

衡量音视频通信质量的指标主要有两个,延迟性和服务质量,即延迟性越低、服务质量越高,则音视频通信的质量就越好。音视频质量主要受网络情况(带宽限制,网络拥塞,网络丢包、抖动等)影响,导致通信质量下降。在实际应用中,针对不同情况有多种优化方案来提高通信质量。

2024-03-08 20:01:40 1123

原创 音视频之V4L2的应用

V4L2是Video for Linux2的简称,是Linux操作系统中支持实时视频采集的设备驱动和一系列API的集合。V4L2驱动会在文件系统中创建/dev/video*设备节点供视频采集操作使用。

2024-03-07 19:19:58 494

原创 VoIP之AVPF(Audio-Visual Profile with Feedback)

在VoIP音视频通话中,接收者可以依赖rtcp机制向发送者报告RTP数据接收的统计情况,以便发送者根据接收情况(丢包数量等)调整传输行为(发送速率等)。由于基本的RTCP统计报告是定期发送的,通过该机制来调整发送端行为会有一定的滞后性,比如视频因丢包解码出现花屏时,急需新的I帧来刷新图像。

2024-02-27 19:59:22 554

原创 VoIP之主备注册服务器机制

在IP话机的实际使用中,不可避免的会出现服务器离线运维、服务宕机、IP话机和服务器连接中断等情况。为了保证电话服务的连续性,在VoIP部署服环境中必须有冗余机制。常见的冗余机制以主备服务器的形式实现。

2024-02-06 15:48:29 720

原创 freeswitch之fs_cli常用指令

fs_cli是FreeSWITCH的一个客户端连接程序,可以通过其连接freeswitch服务,查看运行情况并对其进行控制。

2024-02-05 11:27:54 656

原创 VoIP之IP直呼

在VoIP应用场景中,有一种功能叫IP直呼,也称为IP直拨。就是两个SIP终端或终端和服务器之间,通过呼叫(Invite)对方IP地址实现音视频通话的功能。与常见的SIP账号呼叫的区别是from/to字段没有账号(user)部分,只有IP地址。

2023-09-14 19:42:57 277

原创 freeswitch之h264视频通话问题

安装freeswitch后,使用账号A给账号B发起视频通话(h264编码)请求,发现B收到的呼叫是音频通话,这是由于freeswitch没有启用h26x模块的原因。

2023-08-31 19:46:27 815

原创 freeswitch之没有提示音问题

部署freeswitch后,账号A与账号B建立通话,其中一方点击保持后,另一方听不到保持提示音。在拒接通话场景中也没有任何提示音。出现这种现象的原因是没有安装声音文件。

2023-08-29 20:49:51 749

原创 freeswitch之内线呼叫挂不断问题

内网部署freeswitch, 注册2个账号A和B, A和B建立通话后,无论哪一方挂断,另一方都不能结束通话。通过抓取报文发现,这是由于INVITE和200-INVITE经过freeswitch后,Contact头域的地址被改成了公网地址(该地址是由freeswitch的stun机制获取的),挂断时bye消息发到了公网地址。

2023-08-28 22:24:27 604

原创 freeswitch之账号呼叫10秒延时问题

在安装freeSwitch后,注册两个账号A和B, 用其中一个账号呼叫另一个账号时,被叫10秒左右才能收到来电。出现这种情况的原因是配置文件中有个默认10秒的延时配置,只需要将该配置注释掉并重新加载配置即可。

2023-08-28 21:44:02 430

原创 ffmpeg之常用的命令行参数

FFmpeg是一套可以用来转换数字音频、视频的开源代码工程,能够编译出SDK(库)和命令行工具。用户可以使用SDK开发程序实现音视频的操作,也可以使用命令行工具ffmpeg实现音视频的操作。

2023-08-21 16:47:14 1369

原创 SIP/VoIP之常见的视频问题

除了语音通话外,视频通话也是SIP协议通话中重要的功能,在实际应用中,经常会遇到一些视频问题,如下(以h264为例)

2023-08-14 17:09:20 1632

原创 SIP协议之音/视频转换

在SIP通话应用场景中,有时需要在音频和视频通话中进行切换,这个功能实现的需要发送re-INVITE重新协商媒体,即重新协商媒体(SDP)中是否允许视频。

2023-08-08 16:51:55 772

原创 SIP协议之呼叫保持(HOLD)

呼叫保持是SIP协议应用中的一个重要功能,用于实现不挂断电话而达到暂停媒体(常见于音频,视频很少用)的目的,而解保持操作会恢复通话。

2023-08-05 09:51:03 1020

原创 sip协议与IPv6

IPv6(Internet Protocol Version 6)是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,而SIP协议作为一种应用层协议,也同样能够在IPv6网络中使用。IPv6地址长度为128位,由8组用冒号分隔的16进制数组成。由于IPv6地址中含有冒号(😃, 与IP:Port的通常用法中的冒号冲突,因此在与端口写在一起时,需要用括号[]把IPv6地址包起来,如[2023:93ab:2:9999::3d]:5060。

2023-07-15 11:29:16 529

原创 SIP业务之BLF

BLF(Busy Lamp Field)是SIP应用中的一项重要业务,用来监视目标号码的状态,常用于调度、坐席监控等场景。

2023-07-12 20:21:55 499

原创 Linux C软件工程师进阶必备

大多数软件都会涉及到数据库,服务器上mysql使用的比较多,而对于linux嵌入式设备,一般使用sqlite. 无论哪种数据库,程序员都需要掌握基本的数据库操作指令。Linux C编程是linux C软件工程师的核心技能包,也是必备技能,涉及内容比较多,需要在工作中不断学习,熟练掌握Linux C编程,对于工作得心应手。有时间需要理解下内核的双向链表,设计的比较好,理解了内核的链表的设计,可以说是掌握了C语言链表精髓。在实际编程中,会用到第三方或开源的软件库,也会以库的形式向第三方提供功能模块。

2023-06-23 11:56:36 318

原创 centos系统mysql安装

coredump对于centos系统,安装mysql涉及很多依赖,一般使用rpm包进行安装。本文以centos7.9安装mysql为例,其它centos版本也可参考。

2023-06-23 11:16:54 1863

原创 centos生成coredump的设置方法

coredump是linux c应用程序发生异常(如段错误)问题退出时生成的文件,又称为核心转储,保存着问题发生时的内存”快照“,通过分析coredump可以看到问题发生时的调用栈,可以快速确定问题点。linux系统中一般默认不会生成coredump文件,需要进行一些配置,以下是centos的配置。

2023-06-14 21:13:20 2293

原创 centos系统自定义服务实现

systemd管理主要有四种类型文件.mount,.service,.target,.wants,一般常见的linux 服务使用.service。用户将编写的systemd的管理单元(Unit)文件放在目录/usr/lib/systemd/system或/etc/systemd/system, 就可以通过systemctl命令管理服务。

2023-06-13 23:08:04 2400

原创 SIP协议之NOTIFY控制SIP终端通话

在SIP协议的应用中,可以通过NOTIFY消息控制终端接听来电或保持通话。

2023-05-18 21:52:34 1079

原创 SIP协议之通话转接

在SIP协议应用中,有一个常用的功能叫通话转接,用于将接通后的通话转给第三方接听处理。

2023-04-23 22:16:43 2047 12

原创 SIP协议之RTP负载类型(payload type)

在SIP 音视频通话中,媒体数据是由RTP包携带的, RTP包中的PT字段标识了负载媒体数据的类型。不同的媒体编码格式对应不同的整型数值,由RFC3551定义:0~95范围内,一部分已经被占用,如PCMU是0,PCMA是8等待,另一部分是未定义。而96-127范围是由使用者动态定义的,可以动态用作未定义的音频和视频RTP包类型, 比如H264、VP8、Opus等。

2023-04-17 22:45:18 4135 2

原创 SIP/VoIP之常见的语音问题

语音通话是SIP或VoIP应用中最重要的功能,一旦语音方面出现问题,将极大的降低产品的口碑,很容易被市场和用户淘汰。

2023-04-14 23:28:21 1723

原创 SIP终端常见的功能及协议支持

​  在实际的VoIP应用领域,有很多常见的SIP协议软硬件终端设备,比如SIP软电话、IP话机、SIP服务器、MCU会议系统等等。虽然这些SIP设备功能和应用场景不尽相同,但很多特性都是常见的。

2023-04-05 09:34:46 1235

原创 VoIP之IP直拨

​  在VoIP应用场景中,有一种功能叫IP直拨,也称为IP直呼。原理是在两个SIP终端或终端和服务器之间,按照SIP协议定义,通过呼叫(INVITE)对方IP地址实现SIP音视频通话的功能。该功能要求被叫方要监听在相应的网络传输协议及服务端口上,SIP协议默认传输协议是UDP, 默认端口5060。

2023-04-04 21:54:30 323

原创 SIP协议之T1、T2、T4

T1: RTT Estimate, RTT估算值, 发出请求到接收到对端响应的往返时间, SIP中默认是500msT2: 非INVITE请求和INVITE应答的最大传输间隔, SIP中默认是4sT4: 消息在网络中存活的最大时间, SIP中默认是5s在SIP终端或服务器中,T1、T2、T4一般都可配置,可根据实际网络环境调整SIP请求/应答消息的重传间隔和T1、T2、T4有关T1、T2、T4和事务状态机的逻辑紧密相关。

2023-04-01 09:48:42 976

原创 SIP协议之事务(transaction)及INVITE事务

SIP事务(SIP Transaction):SIP 事务发生在客户端和服务器之间并且由从第一个从客户端发送到服务器的请求直到最后一个。SIP协议是一个事务协议,组件间的交互是由一系列独立的消息交换完成的。具体来说,一个SIP事务由一个请求和任意个应答组成,包含0个或多个临时应答以及一个或多个最终应答。

2023-03-16 21:42:42 2224

原创 Linux c/c++技术方向分析

c语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,如嵌入式。C语言能以简易的方式编译、处理低级存储器。是一种高效率程序设计语言。c++(c plus plus)是一种计算机高级程序设计语言,由C语言扩展升级而产生,是一种面向对象的语言。

2023-03-07 22:03:44 3445 11

原创 Linux c编程之应用交互协议分析与设计

在实际编程应用中,两个或多个功能服务(模块)之间 需要通过消息交互进行协作完成用户想要的逻辑功能,这里的消息交互指的是应用层的交互。最终数据传输(无论是TCP/IP还是其它)都是以二进制形式完成,但对于应用层协议来说有两种,一种是二进制协议,一种是文本协议。不管是哪种协议,对于协议字段的设计都有一些约定俗成的定义。

2023-02-26 09:25:32 806

原创 Linux c编程之常用技巧

在Linux C的实际编程应用中,有很多有用的实践技巧,编程中掌握这些知识,会对编程有事半功倍的效果。

2023-02-17 21:46:53 1344

原创 Linux c编程之Wireshark

Wireshark是一个网络报文分析软件,是网络应用问题分析必不可少的工具软件。网络管理员可以使用wireshark排查网络问题。程序开发人员可以用来分析应用协议、定位分析应用问题。无论是网络应用程序开发人员、测试人员、部署人员、技术支持人员,掌握wireshark的使用对于分析网络问题起到事半功倍的作用。

2023-02-12 20:54:08 1208

原创 Linux c编程之脚本及常用命令

bash是一个命令处理器,能执行用户直接输入的命令。包括关键字、语法在内的基本特性全部是从sh借鉴过来的。bash可以从文件中读取命令, 这样的文件称为脚本。在实际使用中,为了解决重复输入各种命令的问题,将这些命令按一定顺序、或逻辑放在文本文件中,可以构成一个bash脚本, 还支持循环、函数、条件等编程。

2023-02-03 17:52:41 1234

原创 Linux c编程之Makefile

一、说明  使用linux gcc编译程序时,需要输入很多命令及参数,很复杂,容易出错,并且会浪费很多时间。Makefile应运而生,使用Makefile来管理整个软件工程的编译流程,在实际软件工程中,通过make一条指令就可以完成整个软件工程的编译。作用:大量代码的关系维护减少重复编译时间二、Makefile构成Makefile三要素:目标依赖执行命令,命令要以table开头多条命令,每条占一行执行方式:makemake -f my-makefile三、常见命令make

2023-01-24 09:42:28 2029

原创 Linux c编程之gdb

gdb是linux或unix平台的程序调试工具。不同于IDE调试工具,是一个命令行调式工具。一般来说,gdb主要帮助你完成下面四个方面的功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)3、当程序被停住时,可以检查此时你的程序中所发生的事。4、你可以改变你的程序,将一个BUG产生的影响修正从而测试其他BUG。

2023-01-16 22:24:03 619

原创 Linux c编程之gcc

gcc是GNU工程的编译器,也是一个可执行程序。在linux平台也可以编译arm平台的可执行程序,一般用交叉编译器,如arm-xx-linux-gcc。

2023-01-10 20:58:54 4120 2

原创 Linux c编程之输入输出及IO操作

输入输出及IO函数是编程入门的基础,也是软件程序中是最常用的函数。熟练掌握相关函数是提高编程能力的前提。

2023-01-06 21:54:25 641

原创 Linux c编程之静态库与动态库

库是用于提供特定功能的函数接口的集合,以文件形式存在。在linux系统中,分动态链接库和静态链接库两种,简称动态库和静态库。其中,静态库文件以.a为后缀为名,动态库文件以.so为后缀名。

2022-12-28 21:30:57 473

原创 Linux c编程之IO复用机制

在实际网络程序中,比如服务器程序,需要使用IO复用机制来处理多个客户端的连接和数据收发。Linux系统下常用的IO复用机制有三种:select、poll、epoll。poll是Linux中的字符设备驱动中的一个函数。Linux 2.5.44版本后,poll被epoll取代。select用于监视文件描述符的变化情况。

2022-12-19 17:00:15 918

SIP(VoIP)常用RFC文档.zip

SIP/VoIP领域中常用的RFC文档 rfc3261: SIP(Session Initiation Protocol), 会话初始化协议 文中定义了消息的头域格式及用途, 会话、事务及状态机逻辑,是SIP协议的基础规范。 rfc4566: SDP: Session Description Protocol 作为会话描述协议 ,主要用于媒体(音频和视频)参数的协商,与SIP或RTSP等信令控制协议一起使用 rfc3262: Reliability of Provisional Responses in the Session Initiation Protocol (SIP) 作为SIP扩展协议,定义了临时响应18x(183/180)可靠传输机制 rfc2833: RTP Payload for DTMF Digits, Telephony Tones and Telephony Signals 用于DTMF 数字信号、电话音和电话信号的 RTP 负载格式

2023-04-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除