SER基本使用

SER 语音情感识别-论文笔记2 《Speech emotion recognition: Emotional models, databases, features, preprocessing methods, supporting modalities, and classifiers 》 阅读详情

SER基本使用

 

说明,当前2.0.x已经发布,但以下内容还是基于SER 0.9.x。

一、 SER的结构

SER由一个core和大量module组成,core接收sip消息并进行基本处理,module输出函数供core调用,modules实现了SER的绝大部分功能;配置文件ser.cfg定义了core对modules的调用,也包括了modules的参数配置。ser.cfg是SER业务功能定义的核心。

各module的详细文档参考modules目录中各module对应目录下的README文件,该文档说明了该module的可配置参数、输出函数、对其他module的依赖等信息。

二、 SER基本安装配置

Ser提供了二进制方式的安装包,我只用过从源码编译安装,环境Red Hat Linux AS4。按以下步骤安装后可以进行无认证的SIP注册,可以作为基本的proxy server使用。

make

make install

这将安装到/usr/local下,配置文件是/usr/local/etc/ser/ser.cfg,使用man ser查看目录信息;

如果需要安装到指定目录,命令为

make prefix=/your_path all

make prefix=/ your_path install

安装完后使用serctl start命令启动服务器就可以了。

三、 增加Mysql支持

建库:

脚本/usr/sbin/ser_mysql.sh是SER mysql操作工具,提供了数个命令参数用于数据库处理,其中参数create用于新建数据库和tables,并会增加一个uri为root@localhost的用户,其realm是脚本执行时要求用户输入的参数。

建立的数据库,SER会使用用户ser登录,相应登录密码为heslo;

相关配置参考下文ser.cfg的说明;

上文可参考SER的INSTALL文档;

编译:

以下步骤与INSTALL文档的说明不同;

进入modules/acc,提供提示信息更改Makefile,即增加“DEFS+=-DSQL_ACC”即可;然后进入主目录,只需make/make install等;

需要手动编译mysql.so库:进入modules/mysql目录,执行make,将生成的mysql.so copy到ser安装目录的modules目录,默认为/usr/local/lib/ser/modules。

附录,Mysql的简单使用:

1,  将root设置为mysql的用户,并设置密码:# mysqladmin -u root password yourpwd

2,  登录mysql:

>> mysql –p

输入password,之后就可以使用show databases/use database_name/show tables等命令了,也可以直接执行sql语句。

四、 增加认证——数据库方式

本部分在增加了数据库支持基础上,实现基本的对REGISTER的认证功能。只需要根据注释更改ser.cfg文件,去掉某些注释符号即可。

使用serctl添加用户数据,此时必须首先设置环境变量SIP_DOMAIN来设置realm,该值会填入数据库realm列。不清楚该realm作何用途,因为SIP消息中的realm参数是在ser.cfg中确定的。添加需输入数据库登录密码——默认值为heslo。

五、 ser.cfg的结构

主要分成7大块:

1,  Global Definitions Section:用于配置SER daemon本身

2,  Modules Section:配置要加载的modules,使用loadmodule命令

3,  Module Configuration Section:使用modparam命令,modparam(module_name, module_parameter, parameter_value)

4,  Main Route Block:像一个c的main函数,是SIP消息处理的入口点,控制每个SIP消息的处理过程;

5,  Additional Route Blocks:由main route block或其他Additional Route Blocks调用;

6,  Reply Route Block.:处理sip消息(主要是200OK)返回;on_reply_route[x]

7,  Failure Route Block.:处理busy、timeout这样一些错误状态;failure_route[x]

详细配置

Fork:yes作为后台程序运行;

listen=192.0.2.13 # INSERT YOUR IP ADDRESS HERE,配置IP,默认将在机器所有IP上监听,SER启动时会打印它监听的IP;

children=4 #生成子进程的数量

 

dns=no #防止SER从DNS中查询自己的IP???

rev_dns=no

fifo="/tmp/ser_fifo" #配置一个SER FIFO,用于测试SER的状态、外部程序直接插入消息到SER中,serctl工具就利用了该FIFO实现功能;

loadmodule "/usr/local/lib/ser/modules/sl.so" #

modparam("usrloc", "db_mode", 0)   #是否将注册数据持久化

#开始xxx

route {

}

 

部分语法:

route(1); #调用route(1)

break; #相当于exit,退出整个处理block;

使用ser –C检查配置文件是否正确;

 

1、 增加数据库和认证支持——使用mysql

编译时需要加上mysql支持,并使用一个sh脚本建好数据库表;简单使用将simple.ser.cfg中的几个配置项的#去掉即可。

详细配置:

需要加载mysql.so/auth.so/auth_db.so几个module;注意加载的顺序;uri_db.so提供check_to(),用于将用户的注册数据保存到数据库中?

 

modparam("auth_db|uri_db|usrloc", "db_url", "mysql://ser:heslo@localhost/ser")    #user:pwd@host/database

# subscriber表是否使用加密密码,0加密,subscriber是注册信息表。uri是什么表?

modparam("auth_db", "calculate_ha1", 1)

modparam("auth_db", "password_column", "password")

#2 to store contact information and authentication data

modparam("usrloc", "db_mode", 2)

其他:

#检查用户名与密码,对非REGISTER消息总是返回失败?参数:使用哪个数据库表检查哪个域,

www_authorize("realm","subscriber")

#发送401要求对方发送注册信息,可设置返回的401消息的realm?

www_challenge("realm","0")

check_to()

sl_send_reply("401", "Unauthorized")

consume_credentials()

save("location")

proxy_authorize("","subscriber")

proxy_challenge("","0")

check_from()

sl_send_reply("403", "Use From=ID")

route(1)

 

使用工具serctl增加用户,需要使用Mysql登录密码:

serctl add 1000 password1 user1@nowhere.com [mailto:user1@nowhere.com]

 

Nat:

SER提供两种方式处理NAT和RTP Proxy,rtpproxy和mediaproxy;

NAT后的UA与公网中的SER:

1,   SER对REGISTER的处理:

2,  对INVITE的处理:

 

六、 Ser提供的工具与命令

1、 Ser

ser命令附带了一些参数,某些可以作为工具使用;

直接执行ser命令会启动ser服务器,但ser没有提高相应的停止方法,故应使用serctl start命令启动服务。

命令man 8 ser可以查看ser的简单帮助信息,如可以看到安装路径、modules的安装路径等。

2、 Serctl

serctl安装路径为/usr/sbin/或/usr/local/sbin/;

命令使用说明参考serctl的帮助输出——输入serctl命令即可。

serctl start启动服务,这种方式启动后可以使用serctl stop停止,否则没有好的办法停止ser;serctl moni监控SER执行状态;

增加用户:serctl add <name> <password> <email>

输出环境变量:export SIP_DOMAIN="myserver.foobar.com"

3、 ser_mysql.sh

请参考联机帮助。

七、 SER对NAT穿越的支持

SER提供了rtpproxy、mediaproxy两种方式,下面的叙述中SER位于公网上,SipPhone在NAT之后;

1、 注册消息

SIP消息中附带的SipPhone的IP:Port是它的私网参数,而通过Socket函数能够获得其NAT地址和在NAT上的端口,SER将记录这些数据;

SER提供函数fix_nated_contact,可以重写Contact头域;函数fix_nated_register则不改写Contack头域而记录正确的地址参数;

函数setflag()用于记录sipphone位于NAT后;

内网IP:Port在NAT设备上某个Port的对应关系只会保存有限的时间,过期后NAT会将port关系、对应关系删除。该问题的解决办法是Sipphone频繁向SER发消息,或反过来SER向它发消息。

2、 INVITE消息

这主要关系到媒体流的处理,SDP中IP:Port。SER的处理方式包括:

1、      在SDP中增加一个属性行:direction:active,这用于让被叫UA等待直到它收到了媒体流,然后将它的媒体流发回给这个地址(即对称RTP,symmetric RTP);该方式需要至少有一个UA拥有公网地址的情况,如PSTN网关;

2、      更改“c=”行的IP地址为公网地址,这可以与方式1同时使用;

3、      让RTP流通过一个Proxy,使用一个拥有公网地址、双方UA都能将媒体流发给它的Proxy;

八、 参考资料:

SER附带文档

Ser的联机帮助

http://www.iptel.org/

《SER-GettingStarted.pdf》

 

21、对SER模型的评估 本文深入评估了SER模型(播种、进化增长与重新播种)在面向领域设计环境中的应用效果。重点探讨了其在多面架构、概念框架层次、领域层次以及设计层次上的表现,并结合实际案例分析了SER模型如何提升系统的灵活性、可维护性和用户参与度。此外,还讨论了SER模型在Web环境中的适用性及其在系统维护和进化中的作用。通过全面评估,得出SER模型在应对复杂多变需求和技术环境方面的显著优势,并提出了可能的改进建议。 阅读详情

相关推荐

Android Studio运行报错: failed to load include path ……\platforms\android-35\android.jar的最细解决方案

【代码】Android Studio运行报错: failed to load include path ……\platforms\android-35\android.jar的最细解决方案。

2401_86789230的博客 2万+

SER 语音情感识别-论文笔记1

《A Comprehensive Review of Speech Emotion Recognition Systems》

绿叶的博客 3843

实战!在 AMD RX 9070 XT (16G) 上使用原生 Windows ROCm 7.1 部署 ComfyUI + Z-Image-Turbo

本文详细介绍了如何在Windows系统下为AMD Radeon RX 9070 XT显卡配置Z-Image-Turbo AI绘图环境。主要内容包括:安装VS Build Tools和最新显卡驱动,配置Conda Python 3.12环境,安装ROCm 7.1.1 SDK及PyTorch适配版本,部署ComfyUI可视化界面。重点解决了AMD显卡在AI绘图中的适配问题,通过--use-split-cross-attention参数优化显存使用,最终成功搭建了可在消费级16G显存设备上运行的AI绘图环境

qq_33614778的博客 4680

Linux基本命令的使用(一)

学习掌握Linux的基本命令使用

weixin_43880061的博客 895

大模型辅助意图识别,更懂你的客户洞察平台

通过大量的学习和训练,大模型不仅具备庞大的知识库,更掌握着丰富的语言模式和语义规则,能够精准地理解每一段对话的含义,为每一通对话进行全面、准确的标注。主要来自客户的行为信息,将客户与机构的重要时刻以时间轴的方式呈现出来,掌握客户生命周期的完整脉络,识别一些容易被忽略的重要营销MOT(Moment Of Truth,关键时刻研究)机会,提示理财经理跟进处理。将客户的历史交易数据和埋点系统采集的客户行为数据结合起来,辅以部分内容资讯的偏好探测,综合分析和预测客户在各个维度的喜好程度,实现千人千面的客户推送。

Dezhuzhineng的博客 2156

ANSYS Fluent DPM实战:从单点到锥形注入的粒子模拟全流程解析

本文深度解析了ANSYS Fluent中离散相模型(DPM)的粒子注入(Injection)设置全流程。从单点注入到锥形喷雾,详细阐述了不同注入类型的物理本质、参数逻辑与适用场景,并提供了粒径分布、湍流扩散等高级参数设置技巧与实战避坑指南,帮助工程师精准模拟喷雾、粉尘等粒子运动行为。

weixin_29276847的博客 653

SE-Net整理阅读

写在前面 最近算是好不容易抽时间把这两个论文看完了,总体来说收获还是很多的,以下是自己的一些理解和整理。 SE-Net SE-Net的整体思路 引入了注意力的思想,即对于每个通道,用一个权重来表示该通道在下一阶段的重要性; 做成了一个插入式的模块,十分方便与各个基础网络的结合。   Introduction部分 这段文章中作者总结了神经网络的有点,就是 ...

wuRDmemory 1万+

Cadence OrCAD Capture 保持元器件编号情况复制元件,复制后元器件编号与复制前不同的问题解决

如下图所示复制时,已经勾选了“Preserve reference on copy”但是复制后的编号却与复制前不一样。本文简单介绍其原因及解决方法。

fydar的博客 3163

SER SIP server 進階設定2 -- serctl

SER SIP server 進階設定2 -- serctlserctl使用法 為你的realm增加新的管理者 現在我們已經有了一個可用的資料庫且SER也能正確使用它了,現在可以加入一些使用者並且最少讓其中一位使用者具有管理者的權限。如果你想要使用網頁管理工具如serweb的話這就很重要了。 簡單的號操作可以透過serctl這個指令稿程式來達成,程式位置 rpm檔安裝: /usr/

-第二月-的专栏 2639

VMware下载与安装

一、VMware下载 二、VMware安装

欢迎订阅我的“JAVA全栈开发笔记(全)”专栏,价格优惠,仅需19.9元。 315

Luma AI技术浅析(一)

是一款基于人工智能的3D内容生成平台,旨在通过深度学习技术实现高效、高质量的3D场景、物体和动画的生成。Luma AI 主要利用了等技术,以实现从图像、视频到3D模型的转换和生成。

m0_75253143的博客 1727

Ser2Net 项目使用教程

Ser2Net 是一个开源项目,用于实现串口与网络之间的连接。以下是项目的目录结构及其介绍: ``` ser2net/ ├── contrib/ ├── debian/ ├── doc/ ├── gensio/ ├── m4/ ├── src/ ├── tests/ ├── tools/ ├── .gitignore ├── .travis.yml ├── AUTHORS ├── COPYING...

gitblog_00221的博客 1321

Android AVB 分析(十三)dm-verity 设备是如何映射的?

在上一篇《Android AVB 分析(十二)嵌入式设备安全中的 dm-verity 简介》介绍 dm-verity 原理的时候,作者提供了一个 dm-verity 演示的例子。本篇我们基于 AOSP 源码 `android-13.0.0_r41` 实际编译生成的 Google Pixel 7 (“panther”) 设备的 system 分区镜像进行 dm-verity 设备验证实战。

洛奇看世界 2438

ser2net使用

在ubuntu下或者openwrt下安装了ser2net程序之后,可以将串口中的数据转发为以太网数据。 设置在/etc/ser2net.conf中最后: 3002:0:/dv/ttyUSB0:115200 8DATABITS 1STOPBIT banner 运行时执行ser2net就可以了(ubuntu下需要sudo!) 转载于:https://www.cnblogs.com/tfanaly...

weixin_30797199的博客 1146

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

符号错误率(SER,Symbol Error Rate)的计算

在通信系统中,符号错误率(SER,Symbol Error Rate)是衡量调制方式性能的重要指标。SER 表示在传输过程中接收端错误解码的符号占总符号的比例。不同的调制方式有不同的 SER 计算方式,这与调制方案的特性、信噪比(SNR)、符号映射等因素密切相关。

weixin_44012667的博客 3045

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

ser2net安装使用说明

一安装命令: sudo  apt-get      install     ser2net 二安装成功后: wzz@debian:/etc$   whereis  ser2net ser2net: /usr/sbin/ser2net     /etc/ser2net.conf      /usr/share/man/man8/ser2net.8.gz 三配置文件:

u011774239的专栏 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SER研究笔记

导读:   我们项目组现在的测试环境就是用SER作为SIP Proxy。SER以C写成,据说其性能比其他任何SIP Proxy都好,并且是高度可配置的。   默认配置下,SER在响应中加入了类似如下的头部:   Server: Sip EXpress router (0.9.6 (i386/linux))   后来,从ekiga.net(Ekiga是FedoraCore4及以上附带的开源软

面对现实,忠于梦想 6171

SER Getting Started

<br />http://www.iptel.org/ser/doc/gettingstarted

RTC hacker 816

ser2net

一安装命令: sudo  apt-get      install     ser2net 二安装成功后: wzz@debian:/etc$   whereis  ser2net ser2net: /usr/sbin/ser2net     /etc/ser2net.conf      /usr/share/man/man8/ser2net.8.gz 三配置文件:

wangzongze1986的专栏 4730

安装ser服务器

目标: 2m_z  1.SER通过mysql数据库对sip客户进行认证. QU:EY2  2.SER通过radius对sip客户进行计费. |*:tyP%m^  -------------------------------------------------------------- E;6~R M:  1.安装ser服务器 s=MT,  ==>到www.ip

buhuweishi的专栏 1257

[SER初步]SIP简介及工作原理

 Chapter 4. Getting Started What is SIP and how does it work?  SIP简介及工作原理arden免责瞎翻译http://blog.youkuaiyun.com/arden1019原文地址http://siprouter.onsip.org/doc/gettingstarted/ch04.htmlTable of Content

6614

Ser/OpenSer(Linux下安装过程及一些配置说明)--支持TLS

  SIP快速路由器(SER)严格遵守SIP标准。它用C语言编写,采用GPL许可证发行,已被移植到Linux和Solaris上。除了充当SIP服务器外,SER还可以为短消息服务(SMS)、即时通信(IM)、RADIUS记账和授权以及基于Web的用户配置充当网关。基于SER的商用产品可从iptelorg购得。可启动的LiveCD版软件也可以获得,它扩展了SER的功能,添加了用起来方便得多的基于Web

zysee的专栏 5159
上一篇: Linux crash dump文件生成与使用
下一篇: Refactoring 笔记
netnote
博客等级 码龄18年 41粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值