KAMAILIO/OpenSIPS
文章平均质量分 68
KAMAILIO/OpenSIPS相关
云梦谭
这个作者很懒,什么都没留下…
展开
-
opensips ACC模块扩展字段
指定扩展信息的实现是通过实现的,它通过指定标签名进行赋值。这些信息的标签名,通过acc_extra伪变量定义。没有没有指定tag名,那么其值就会被视为log_value。其语法定义格式如下:' tag)*其中backend指定扩展内容输出到何处,可选值有log, db, aaa, evi,其后跟着一个冒号,后面是tag列表。如果有个箭头,箭头前表示脚本中伪变量名,箭头后表示输出终端的字段名。扩展字段的内容,在整个呼叫过程中始终可见。原创 2024-06-14 15:03:59 · 266 阅读 · 0 评论 -
opensips 3.5的DB部署
opensips 3.X的DB部署方式较之前版本有很大的不同。本文以opensips 3.5 为例,说明部署的过程。当OpenSIPS安装完成后,需要进一步做什么?最大的可能就是部署配套的DB。因为很多功能离不开它,比如用户鉴权、注册信息持久化、dialog信息维护,等等。你可以通过opensips-cli来部署db。在部署之前,你需要先安装它,如何安装请参考。本人。原创 2024-06-03 08:00:00 · 696 阅读 · 0 评论 -
CentOS8安装opensips-cli
环境:阿里云操作系统CentOS8.5opensips 3.x版本废弃了之前的配置管理脚本。原创 2024-06-02 10:04:37 · 367 阅读 · 0 评论 -
CentOS8安装opensips 3.5
环境:阿里云操作系统CentOS8.5。原创 2024-06-01 18:01:20 · 331 阅读 · 0 评论 -
OpenSIPS 2.4 利用Dialog配置集群
OpenSIPS 2.4 利用Dialog配置集群的方法。原创 2023-01-30 16:16:40 · 772 阅读 · 0 评论 -
OpenSIPS脚本的操作符及语句
本文描述OpenSIPS脚本中的各类操作符。包括运算操作及逻辑操作。原创 2022-02-10 14:06:53 · 669 阅读 · 0 评论 -
OpenSIPS脚本中的flag
OpenSIPS脚本中的flag分类,使用。原创 2022-01-25 09:18:27 · 598 阅读 · 0 评论 -
OpenSIPS脚本中的变量
OpenSIPS脚本中的变量详解原创 2022-01-19 09:17:45 · 755 阅读 · 0 评论 -
openSIPS脚本里的函数
探寻OpenSIPS脚本函数的前世今生。原创 2022-01-12 14:32:38 · 429 阅读 · 0 评论 -
OpenSIPS crash定位分析
https://www.opensips.org/Documentation/TroubleShooting-CrashWhat is the problem?Most likely you have stumbled upon a bug in OpenSIPS, which can be caused by a variety of of issues, like invalid memory access, memory corruption, etc.Where to look fo翻译 2021-09-08 08:44:13 · 279 阅读 · 0 评论 -
OpenSIPS Out Of Memory
https://www.opensips.org/Documentation/TroubleShooting-OutOfMem 潜在原因 导致内存不足的原因有两种: 内存池太小,即配置的内存不能满足分配需要 内存泄漏,某些内存没有正确释放,因此逐渐消耗可用内存(资源已经没用,但一直占据内存) 定位原因 如果内在问题的原因是分配的内存池太小,那么停止代理的业务流量(不是停止服务),过段时间,分配的内存应该会慢慢释放(因为事务...翻译 2021-08-24 10:22:10 · 483 阅读 · 0 评论 -
OpenSIPS的架构
从架构的角度来说,OpenSIPS可以分为两大组件:core和module。其中,core是应用的主体,它提供底层的功能,定义各种接口和通用的资源;而module是以动态库的形式提供的,每个module实现了特定的功能 。从广义上讲,OpenSIPS的module可以分为两大类:提供路由脚本相关功能的模块 实现core定义的接口的模块(比如说实现SQL接口,从而方便访问某个特定的DB)OpenSIPS core OpenSIPScore实现了最小的功...原创 2021-07-13 15:21:27 · 688 阅读 · 0 评论 -
“OpenSIPS and FreeSWITCH: Scale RTC Services to Carrier Grade“: Giovanni Maruzzelli - OpenTelecom.IT
https://www.youtube.com/watch?v=2ph8zEIt85kyoutube上的opensipschannel上的主题演讲。原创 2021-05-20 15:57:49 · 148 阅读 · 0 评论 -
OpenSIPS配置脚本结构
OpenSIPs的配置文件一般命名为opensips.cfg,它是一个自定义的类C风格的脚本。逻辑上,一般把脚本划分为三个部分:全局变量 模块描述 路由逻辑下面是一个简单的实例:####### Global Parameters ######### debug=3 log_stderror=no fork=yes children=4 listen=udp:127.0.0.1:5060####### Modules Section ######## mpa...原创 2021-05-10 17:49:17 · 794 阅读 · 1 评论 -
Opensips的配置文件
这里描述的内容适用于OpenSIPSV2.X。opensipsctlrc opensipsctlrc文件的内容包含了opensipsctl、opensipsdbctl和osipsconsole这些工具的配置选项。 OpenSIPS安装之后,这个文件位于安装路径下的/etc/opensips/子目录里。 文件里包含了数据库接口的控制选项;OpenSIPS运行时的接口选项(MI);还有一些通过opensipsctl和osipsco...原创 2021-05-08 14:19:44 · 1270 阅读 · 1 评论 -
opensip脚本的变量转换
https://www.opensips.org/Documentation/Script-Tran-2-4前言 直观地说,Transformation指的是作用于一个变量的函数(脚本变量、伪变量、AVP、静态字符串),从输入中获取特定的值。但不改变原输入值。 下面是一个OpenSIPS 脚本实例,说明各种变量的用法:# check if username in From header is equal with username in To headeri...翻译 2021-04-26 16:51:41 · 1565 阅读 · 0 评论 -
Zabbix通过SNMP监控OpenSIS状态
线上Server的状态监控至关重要。OpenSIPS/Kamailio提供了很多接口可以利用。这里介绍怎么配置SNMP监控。1. 依赖关系 OpenSIPS实现了一个叫snmpstats的模块。它可以通过SNMP汇报OpenSIPS的运行状态。使用snmpstats模块,必须先加载usrloc模块和dialog模块。 此外,必须安装NETSNMP 5.3从上版本。CentOS/Redhat安装方法yum installnet-snmp-deve...原创 2021-04-20 09:47:15 · 348 阅读 · 0 评论 -
opensips DROUTING 模块说明
引言 DROUTING (Dynamic Routing )是一个动态选择最佳网关的路由模块。典型的LCR路由就可以由它实现。动态路由是由一组路由相关的特性决定的可以是:号码前缀 呼叫群组 时间段 权重路由模块可以处理:剥离/添加前缀 出入局处理 触发opensips路由脚本还有失败处理:faile over 根据权重选择或随机选择新的网关 网关保活监测 特性描述 OpenSIPS的DROUTING模块的实现设计思想...原创 2021-04-01 13:12:31 · 789 阅读 · 1 评论 -
OpenSIPS 3.1 开发手册(八)-模块间API
https://www.opensips.org/Documentation/Development-Manual目录17. 模块API17.1 TM module17.2 RR Module17.3 Dialog模块18. 视频教程17. 模块API 在OpenSIPS内部,一个模块可能需要访问其它模块的的功能(一个非常常见的实例是模块需要对dialog执行某种操作,因此需要访问dialog模块的部分功能)。OpenSIPS不是直接访问目标模块...翻译 2020-07-13 08:46:30 · 1417 阅读 · 1 评论 -
OpenSIPS 3.1 开发手册(六)-- BIN Interface API
https://www.opensips.org/Documentation/Development-Manual15. BIN Interface API Binary Internal Interface是一种OpenSIPS核心接口,它在单个OpenSIPS实例之间提供一种高效的通信方式。 这在无法将实时数据(比如说dialog数据)简单写入数据库时就非常有利,因为故障迁移需要几分钟才能完成。可以通过BIN接口,把所有事件相关的运行数据备份到备用OpenS...翻译 2020-07-02 16:34:19 · 665 阅读 · 0 评论 -
OpenSIPS 3.1 开发手册(五)--SQL数据库API
https://www.opensips.org/Documentation/Development-Manual目录12. SQL数据库API13. NoSQL API14. Event Interface API12. SQL数据库API OpenSIPS封装了一套数据库API,模块开发者可以用它操作常见的SQL查询。其优势在于:编写后台无关代码,因为DBAPI对实现后端相关的模块实际代码解耦 让无SQL能力的后端提供类SQL的特性(比如说:...翻译 2020-06-24 08:51:54 · 915 阅读 · 0 评论 -
OpenSIPS 3.1 开发手册(四)-- 管理接口
https://www.opensips.org/Documentation/Development-Manual10. 管理接口API 管理接口(MI)是一个抽象层,用于控制及监视OpenSIPS。MI接口支持多种实际的后台(比如:FIFO、数据报、JSON-RPC、 XML-RPC)。由于它的模块化,逻辑数据结构与传输数据结构的清晰分离,开发者只需要定义数据的析构函数,然后由脚本编写者选择使用哪种传输方式来控制OpenSIPS。 MI大量使用JSON来与传输层...翻译 2020-06-22 08:57:05 · 1496 阅读 · 2 评论 -
OpenSIPS 3.1 开发手册(七)--新模块开发
https://www.opensips.org/Documentation/Development-Manual1.引言 本文将重点介绍OpenSIPS的通用架构,以及OpenSIPS为构建新模块/特性而暴露的所有重要组件及API。 这份教程无意介绍 Linux / C编程技术。具备以下知识是理解本教程的先决条件:Linux C编程 Linux多进程编程 基本网络编程概念 基本SIP知识 这份教程标的是OpenSIPS 3.1 LTS...翻译 2020-07-06 18:49:55 · 1715 阅读 · 1 评论 -
CentOS8 安装opensips
yum install mariadbyum install mariadb-develyum install mariadb-serversystemctl enable mariadbsystemctl start mariadbwget https://opensips.org/pub/opensips/2.4.6/opensips-2.4.6.tar.gztar vzxf opensips-2.4.6.tar.gzcd opensips-2.4.6/mak...原创 2020-06-05 15:55:44 · 731 阅读 · 0 评论 -
OpenSIPS 3.1 开发手册(三)--锁及定时器API
https://www.opensips.org/Documentation/Development-Manual目录8. 锁API8.1单锁API8.2套锁API8.3 读写锁API9.定时器API8. 锁API OpenSIPS 封装了自己的锁API,推荐用它替代系统提供的锁,因为它们提供更高的灵活性。根据案例和menuconfig提供的编译开关,OpenSIPS的锁可以切换:架构特定锁 使用futexes 使用自适应等待(生产...翻译 2020-06-11 09:16:50 · 864 阅读 · 0 评论 -
OpenSIPS 3.1 开发手册(二)--SIP消息及Opensips配置文件
https://www.opensips.org/Documentation/Development-Manual5. 改变SIP消息 在OpenSIPS内,改变SIP消息的标准方法是使用lumps系统。 lump 系统的工作方式非常类似Linux环境里的diff/patch工具:开发者对SIP消息执行增删操作。lump存储在一个链表中,仅应用于OpenSIPS脚本完全执行之后,SIP消息转发之前。因此,对SIP消息所作的更改在进一步检查时,不会立刻...翻译 2020-06-08 13:13:53 · 2316 阅读 · 4 评论 -
OpenSIPS 3.1 开发手册(一)--事件架构、内存管理、SIP消息解析
https://www.opensips.org/Documentation/Development-Manual1.引言 本文将重点介绍OpenSIPS的通用架构,以及OpenSIPS为构建新模块/特性而暴露的所有重要组件及API。 这份教程无意介绍 Linux / C编程技术。具备以下知识是理解本教程的先决条件:Linux C编程 Linux多进程编程 基本网络编程概念 基本SIP知识 这份教程标的是OpenSIPS 3.1 LTS...翻译 2020-06-04 08:38:32 · 3064 阅读 · 0 评论 -
kamailio通过rtpproxy实现穿透
本文描述通过路由器映射到内网时,怎么通过rtpproxy实现NAT。下载rtpproxy源码# cd /usr/local/src# git clone git://sippy.git.sourceforge.net/gitroot/sippy/rtpproxy# cdrtpproxy修改源码修改源码,添加一个参数,用于设置路由器的映射地址。编辑main.c...原创 2019-04-02 17:20:57 · 3207 阅读 · 7 评论 -
Kamailio负载均分配置
根据不同的目的,Kamailio提供了不同的模块完成各种消息分发策略。比如LCR模块,dispatcher模块。本文描述怎样利用dispatcher模块实现SIP消息的负载均分。 假设kamailio安装在/usr/local/kamailio/目录下。添加dispatcher.list在/usr/local/kamailio/etc/kama...原创 2019-03-21 09:36:00 · 3421 阅读 · 5 评论 -
Kamailio 简介
Kamailio项目诞生于2005年7月,它是从德国FhG FOKUS研究所主导的SIP Express Router(SER)项目组分裂出来的。新项目建立的目标是创建一个开放的开发环境,以建立一个强大的可扩展的开源SIP服务器。最初,新项目命名为OpenSer,后来因为商标侵权问题,在2008年7月28号,重命名为Kamailio(另外一个分枝是OpenSips)。 Kama原创 2012-10-25 11:55:52 · 17376 阅读 · 10 评论 -
CentOS7 Kamailio 安装指南
Kamailio(前身为OpenSER)是一个开源的SIP服务器项目,基于GPL授权。它以处理性能见长,每秒钟能处理上千个并发呼叫。其官方主页为http://www.kamailio.org。本文描述Kamailio的安装配置过程。安装环境为CentOS7,kamailio版本V5.2.2。安装MariaDB服务器Kamailio服务器安装前,必须先确保系统上已...原创 2012-10-24 14:37:18 · 15670 阅读 · 8 评论