pjsip代码分析(1)——modules框架
今天,来谈一下pjsip 模块框架(module framework)。弄清楚这个概念,就可以轻松地分析pjsip的sip消息的分发处理。
概念:
PJSIP模块框架的概念非常重要,负责在各组件之间分发sip消息。
对于接收或发送的sip消息,pjsip_endpoint根据优先级由高到低,依次分发消息到各module进行处理。
优先级的说明:
优先级的数值越小,
对应module的on_rx_request() 和 on_rx_response(),即接收消息时,优先级越高,
on_tx_request()和 on_tx_response(),即发送消息时,优先级越低;
反之,
对应module的on_rx_request() 和 on_rx_response(),即接收消息时,优先级越低,
on_tx_request()和 on_tx_response(),即发送消息时,优先级越高。
modules:
“mod-msg-print” 在pjsua_create()的pjsip_tpmgr_create()中注册。
pjsua_init()函数对其他的module进行注册。
如果需要进行新增自定义的module,可以在pjsua_init()函数中进行注册。
接下来,我将分析UAC端sip的几个基本方法,register、invite、ack、cancel、bye的处理流程。
pjsip代码分析(1)——modules框架相关推荐
- Pixhawk代码分析-源码框架
源码框架 pixhawk代码框架: pixhawk代码框架基础分析: 阅读下面内容时请结合源码阅读,便于理解. The basic structure of ArduPilot is broken u ...
- Java 线程池框架核心代码分析
转载自 Java 线程池框架核心代码分析 前言 多线程编程中,为每个任务分配一个线程是不现实的,线程创建的开销和资源消耗都是很高的.线程池应运而生,成为我们管理线程的利器.Java 通过Executo ...
- beego 例子_beego框架代码分析
前言 也许beego框架在国内应该是众多PHPer转go的首选,因为beego的MVC.ORM.完善的中文文档让PHPer们得心应手,毫无疑问我也是.这种感觉就像当年入门PHP时使用ThinkPHP一 ...
- 05-SA8155 QNX I2C框架及代码分析
1. 描述 本文主要描述QNX I2C Drvier的相关内容,并以SA8155处理器为例讲解. I2C 是经常用到的一种总线协议,它只占用两个IO口资源,分别是SCL时钟信号线与SDA数据线, 两根 ...
- [7]深入浅出工作开源框架Camunda: camunda-webapp 用户登录功能代码分析
在上个章节<[6]深入浅出工作开源框架Camunda: 如何远程Debug camunda-webapp的源代码>笔者解释了如何进行Camunda的远程Debug,这个章节笔者给大家分享如 ...
- clang-tidy——静态代码分析框架
clang-tidy--静态代码分析框架 clang-tidy介绍 clang-tidy是一个基于clang的静态代码分析框架,支持C++/C/Objective-C. 它是一个功能更强大的lint工 ...
- fcitx输入法代码分析总结
fcitx输入法代码分析总结 fcitx处理输入的方式 fcitx的组织结构 fcitx的启动流程 im加载 用代码生成代码 继承 输入法开发接口 区位输入法详细分析 附注 fcitx处理输入的方式 ...
- 反汇编代码分析--函数调用
C++反汇编代码分析--函数调用 代码如下: #include "stdlib.h" int sum(int a,int b,int m,int n) { return a+b ...
- <2021SC@SDUSC>博客(5)山东大学软件工程应用与实践JPress代码分析(四)
2021SC@SDUSC 前言 在前面三篇文章中,我对 JPress 项目的基础框架 JFinal 和 JBoot 在使用层面进行了拆解与分析.在接下来的文章中,我将在代码层面对 JPress 项目中 ...
- 【鸿蒙OS开发入门】06 - 启动流程代码分析之KernelOS:之启动Linux-4.19 Kernel内核 启动init进程
[鸿蒙OS开发入门]06 - 启动流程代码分析之KernelOS:之启动Linux-4.19 Kernel内核 一.head.S 启动start_kernel() 1.1 start_kernel() ...
最新文章
- 谈谈《潜伏在办公室》对管理层的影响
- noip2018——题解总结
- Go 结构体的值传递和地址传递
- C语言学习之输出“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。
- MySQL存储过程及触发器
- Elasticsearch SQL插件
- 【高德地图】------- JavaScript实现高德地图经纬度获取地址位置
- 虚拟机里CDlinux 里的水滴 minidwep-gtk
- Android精仿淘宝/QQ空间标题栏渐变效果
- docker装LibreELEC_Linux和macOS系统安装LibreELEC的方法
- 单细胞分析实录(16): 非负矩阵分解(NMF)检测细胞异质性
- 案例三:小明左右手分别拿两张纸牌:黑桃10和红心8,现在交换手中的牌。编写一个程序模拟这一个过程:两个整数分别保存在两个变量中,将这两个变量的值互换,并输出互换后的结果。...
- 实时数据库和关系数据库的区别
- AD16常见问题(刚入门)
- Python画爱心——一颗会跳动的爱心~
- 天池比赛——新闻文本分类比赛(零基础入门NLP)
- docker push latest 和 保存历史版本
- 机械制造作业考研题目答案分享——工件的定位
- 傅老师课堂:最大子序列
- Labview 运行myrio发生冲突:拒绝访问:该终端配置的语言无法兼容主机LabVIEW语言。对于实时终端,可通过MAX修改终端的语言环境,确保终端语言与主机语言一致。