自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

淡淡忧桑

孤独才能使自己变的更强大

  • 博客(131)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 FreeSWITCH配置文件解析(10) 配置IP封禁(防暴力破解)

FreeSWITCH配置文件解析(10) 配置IP封禁(防暴力破解)

2025-07-26 07:19:44 294

原创 FreeSWITCH配置文件解析(9) 常规录音通道变量说明

FreeSWITCH配置文件解析(9) 常规录音通道变量说明

2025-07-21 11:11:13 318

原创 FreeSWITCH配置文件解析(8) 编译mod_shout支持录音mp3格式

FreeSWITCH配置文件解析(8) 编译mod_shout支持录音mp3格式

2025-07-21 09:30:43 111

原创 FreeSWITCH配置文件解析(7) 挂断原因代码表

FreeSWITCH配置文件解析(7) 挂断原因代码表

2025-07-17 17:54:25 884

原创 FreeSWITCH配置文件解析(6) mod_format_cdr 话单中字段解析

 FreeSWITCH mod_format_cdr 支持将 CDR 数据以 JSON 或 XML 格式发送到 HTTP 服务端点。话单中字段的详细解释

2025-07-17 15:58:30 875

原创 FreeSWITCH配置文件解析(4) sip_profiles 网关配置

FreeSWITCH配置文件解析(4) sip_profiles 网关配置

2025-07-10 09:23:59 162

原创 FreeSWITCH配置文件解析(5) 处理信令和媒体的三种模式

FreeSWITCH 处理媒体的三种方式(Default、Proxy-Media、Bypass-Media)在功能、性能和应用场景上有显著差异

2025-07-09 18:00:39 413

原创 FreeSWITCH配置文件解析(3) dialplan 拨号计划中xml 的condition中field解析

在 FreeSWITCH Dialplan 的 <condition> 中,可以使用大量的通道变量(Channel Variables)来进行匹配和决策。这些变量包含了呼叫的各个方面信息。以下是一些​​最核心和常用​​的变量及其含义:

2025-06-29 12:19:58 852

原创 FreeSWITCH配置文件解析(2) dialplan 拨号计划中xml 的action解析

在 FreeSWITCH 的拨号计划(Dialplan)中,使用 XML 配置。其中,<action>标签用于指定要执行的操作。这些操作通常是应用程序(applications)或设置变量等。下面列出常见的<action>

2025-06-28 23:00:19 390

原创 FreeSWITCH配置文件解析(1)-conf/directory/ 目录下的 XML

在 FreeSWITCH 中,conf/directory/ 目录下的 XML 文件用于定义 ​​用户账户(SIP 终端)的配置信息​​。这些文件决定了用户的 SIP 认证、呼叫权限、主叫信息、路由规则等核心功能。以下是一个典型用户配置文件(如 1000.xml)的字段解析:

2025-06-28 14:23:30 409

原创 debian12 安装 rtpengine

文件:/etc/apt/sources.list。

2025-03-24 16:31:30 290

原创 centos 9 编译安装 rtpengine (快方式)-使用 debian12 系统自带

centos 9 编译安装 rtpengine

2025-03-21 13:43:43 346

原创 kamailio6.0默认配置文件中文注释说明

【代码】kamailio6.0默认配置文件中文注释说明。

2025-03-03 10:52:11 223

原创 Uniswap V2 SDK 学习笔记

Core实现某个交易的 Pair 的管理逻辑,Periphery提供了与 Uniswap V2 进行交互的外围合约实现路由,即一个或者多个交易对的兑换逻辑。Core 主要有以下合约:UNI-V2 代币合约,即 LP Token 合约。:工厂合约,用来部署配对合约。:配对合约,管理着流动性资金池,不同币对有着不同的配对合约实例,比如 USDT-WETH 这一个币对,就对应一个配对合约实例,DAI-WETH 又对应另一个配对合约实例。配对合约继承了 UniswapV2ERC20 合约,即。

2024-10-31 14:28:00 1646

原创 Uniswap/v2-core使用及其交易流程

Uniswap SDK 是一个同构 (Isomorphic) 的库,既可以在客户端使用也可以在服务端使用。SDK不能代表用户执行或发送交易,它提供了实用的类和函数,帮助计算出安全地与 Uniswap 交互所需要的数据。不同于传统订单薄的交易模式, uniswap交易使用的是恒定乘积公式的自动做市商模式。即交易前后,池子内一对代币的乘积保持不变。在uniswap v2中,每次会收取0.3%的手续费,即。中扣除分发给流动性提供者。,这笔手续费从交易者的。

2024-10-31 13:53:29 1386

原创 CentOS7编译安装freeswitch1.10.11

CentOS7编译安装freeswitch1.10.11

2024-05-07 21:29:41 714

原创 kamailio 虚变量

伪变量是以$开头的一些变量,这些变量可以作为参数提供给不同的脚本函数,并且在执行函数之前,它们将被替换为一个值.伪变量的开头用字符$标记。如果你想让字符$加倍$$。有一组预定义的伪变量,其名称由一个或多个字符组成,以及作为动态字段(AVP和Headers)引用的特殊伪变量。伪变量是由各种模块实现的,其中大多数是由pv提供的(如果没有对某个模块的特殊引用,则期望伪变量由pv模块提供)。

2024-04-15 22:40:34 1602

原创 kamailio mysql数据表之subscriber用户表

kamailio mysql数据表之subscriber用户表

2024-04-09 10:30:53 416

原创 kamailio mysql数据表解析

dr_gw_lists:存储动态路由(dynamic routing)中网关列表(gateway list)的信息。domain_attrs:存储域属性(domain attributes)的信息,例如域的访问控制列表(ACL)等。dr_groups:存储动态路由(dynamic routing)中组(group)的信息,用于路由选择。uid_global_attrs:存储全局的用户标识(User Identity)属性的信息。这个表可以定义和配置用户标识域的属性。这个表可以定义和配置用户标识的用户属性。

2024-04-07 16:22:19 592

原创 kamailio初始化myql数据库

1: 安装db mysql module时会安装kamdbctl.mysql文件。2:修改配置文件:/usr/local/etc/kamailio。kamailio.cfg:加载mysql模块。kamctlrc:配置数据库信息。

2024-04-07 14:27:54 658

原创 kamailio 6.0.0安装以及模块安装

安装db mysql module时会安装kamdbctl.mysql文件。

2024-04-07 11:25:53 1027

原创 Freeswitch配置之sofia

是的,从物理上来讲,它确实只是一个 UA,但由于它同时支持多个 Session,在逻辑上就是相当于两个 UA,为了不使用读者太纠结于这种概念问题中,我在前面没有太多的分析。RTP 可以像 SIP一样经过 FreeSWITCH转发,但是,RTP 占用很大的带宽,如果FreeSWITCH不需要“偷听”他们谈话的话,为了节省带宽,完全可以让 RTP直接在两者间传送,这种情况对FreeSWITCH来讲就是没有 media的,在 FreeSWITCH中也称 bypass media(绕过媒体)。

2024-03-31 15:13:22 1292

原创 sip 用户名密码注册通信流程

客户端收到 `401 Unauthorized` 后,根据收到的 `WWW-Authenticate` 头字段,使用摘要认证算法计算 `Authorization` 头字段的值,并将其包含在下一个REGISTER请求中。- 客户端再次发送包含计算得出的 `Authorization` 头字段的REGISTER请求。- `Authorization`: 如果需要身份验证,客户端将包含计算得出的Authorization头字段。- `From`: 呼叫的发起方标识(可能包含用户名和SIP地址)。

2023-12-05 20:53:03 2473

原创 golang 实现和linephone的功能

要在Go语言中实现类似于 Linphone 的 VoIP 功能,您可以结合使用适用于Go的 SIP 库和 WebRTC 库。具体的实现可能会受到所使用库的特定要求的影响,因此请确保查阅相关库的文档以获取更多详细信息。- 在Go语言中,您可以使用 `github.com/cloudwebrtc/sip` 等SIP库。- 在Go语言中,可以使用 `github.com/pion/webrtc/v3` 等库。- 使用 SIP 客户端发起呼叫。3. **初始化 SIP 客户端:**1. **选择 SIP 库:**

2023-12-05 20:37:40 959 1

原创 Usergolang 一些优质关于sip协议包

GitHub 地址:[pixelbender/go-sips](https://github.com/pixelbender/go-sips)- GitHub 地址:[cloudwebrtc/sip](https://github.com/cloudwebrtc/sip)- GitHub 地址:[negbie/sipproxy](https://github.com/negbie/sipproxy)- 该库提供了用于SIP消息处理的功能,包括解析和构建SIP请求和响应。

2023-12-05 20:24:51 779

原创 golang使用sip实现语音通话

在实际应用中,您还需要处理媒体传输,包括通过 RTP(Real-time Transport Protocol)进行音频传输。此外,您可能需要添加更多的错误处理和状态检查以确保通话的稳定性和安全性。这个 Go 语言库时,要实现通话,您需要处理 SIP 协议的一系列操作,包括建立和终止呼叫、处理媒体传输等。需要替换为您的实际配置。请注意,上述代码中的。

2023-12-05 20:20:43 2162

原创 golang使用sip协议 用户名和密码注册到vos3000

此示例代码创建了一个SIP客户端,使用指定的用户名、密码和域进行注册,然后等待一段时间以保持注册状态,最后注销并关闭客户端。在实际应用中,您可能需要根据您的具体需求和网络环境进行更详细的配置。在Go语言中,要使用SIP协议进行注册,您可以使用第三方库,如。需要替换为您在VOS3000上配置的实际用户名、密码和域。请注意,上述代码中的。

2023-12-05 20:14:15 634 1

原创 thinkphp5 切换多语言

1、 header中增加:Accept-Language 语言。2、在请求地址中增加 lang=语言参数。

2023-07-19 19:07:31 660

原创 RSA加密解密(无数据大小限制,php、go、java互通实现)

RSA加解密中必须考虑到的**长度、明文长度和密文长度问题。明文长度需要小于**长度,而密文长度则等于**长度。因此当加密内容长度大于**长度时,有效的RSA加解密就需要对内容进行分段。这是因为,RSA算法本身要求加密内容也就是明文长度m必须0

2023-07-13 12:25:29 2073

原创 OTTPay对接微信小程序

【代码】OTTPay对接微信小程序。

2023-06-30 10:02:44 398

原创 CentOS安装无GUI的Chrome浏览器-exec: “google-chrome“: executable file not found in $PATH

CentOS安装无GUI的Chrome浏览器-exec: "google-chrome": executable file not found in $PATH

2023-04-21 17:12:58 1236

原创 PHP支付-Stripe支付对接支付宝

2:注册stripe账号,获取公钥和秘钥。1:安装stripe包。

2023-01-11 11:12:07 1397

原创 thinkphp验证规则

/** * Class ValidateRule * @package think\validate * @method ValidateRule confirm(mixed $rule, string $msg = '') static 验证是否和某个字段的值一致 * @method ValidateRule different(mixed $rule, string $msg = '') static 验证是否和某个字段的值是否不同 * @method ValidateRule egt(mi.

2022-03-21 11:33:23 1607

原创 MySQL 主从库配置参数详解

MySQL 主从库配置参数详解

2022-02-15 16:56:57 989

原创 apisix网关+golang服务 jwt验证

apisixjwt

2022-02-13 11:35:48 2008

原创 Centos编译安装Python3.9

Centos编译安装Python3.9

2022-01-11 17:23:02 2535

原创 基于Redis位图实现用户点赞功能(golang)

场景需求 适用场景点赞,收藏等设计思路对于用户签到数据,如果每条数据都用K/V的方式存储,当用户量大的时候内存开销是非常大的。而位图(BitMap)是由一组bit位组成的,每个bit位对应0和1两个状态,虽然内部还是采用String类型存储,但Redis提供了一些指令用于直接操作位图,可以把它看作是一个bit数组,数组的下标就是偏移量。它的优点是内存开销小、效率高且操作简单,很适合用于签到这类场景。Redis提供了以下几个指令用于操作位图:SETBITGETBITBITCOUNT实.

2021-05-21 17:30:59 1552

原创 基于Redis位图实现用户签到功能(golang)

场景需求适用场景如签到送积分、签到领取奖励等,大致需求如下:签到1天送1积分,连续签到2天送2积分,3天送3积分,3天以上均送3积分等。 如果连续签到中断,则重置计数,每月初重置计数。 当月签到满3天领取奖励1,满5天领取奖励2,满7天领取奖励3……等等。 显示用户某个月的签到次数和首次签到时间。 在日历控件上展示用户每月签到情况,可以切换年月显示……等等。设计思路对于用户签到数据,如果每条数据都用K/V的方式存储,当用户量大的时候内存开销是非常大的。而位图(BitMap)是由一组bi

2021-05-18 10:03:12 1372

原创 golang 正确的使用指针

声明结构体方法的时候,有两种方式:一种普通、一种指针方式。一、普通方式type Person struct { age int name string}func (p Person) SetName(name string) { p.name = name}func (p Person) GetName() { fmt.Println(p.name)}二、指针方式type Person struct { age int name string}f.

2021-05-11 18:54:00 486

原创 golang 在项目中灵活的配置文件写法用作参考

package mainimport "fmt"func main(){ var conf config = BuildConfig(WitchConfiga(2),WitchConfigb("1111")) fmt.Print(conf)}//项目中配置文件的写法type config struct{ a int b string}func BuildConfig(ops ...Option) config { var c config = config{ .

2021-03-08 13:39:08 491

MySQL异步复制延迟解决的架构设计与运维架构

MySQL异步复制延迟解决的架构设计与运维架构

2015-07-30

文件分割-免安装

文件分割-免安装

2016-03-21

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

TA关注的人

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