- 博客(131)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 FreeSWITCH配置文件解析(8) 编译mod_shout支持录音mp3格式
FreeSWITCH配置文件解析(8) 编译mod_shout支持录音mp3格式
2025-07-21 09:30:43
111
原创 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
原创 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
原创 kamailio 虚变量
伪变量是以$开头的一些变量,这些变量可以作为参数提供给不同的脚本函数,并且在执行函数之前,它们将被替换为一个值.伪变量的开头用字符$标记。如果你想让字符$加倍$$。有一组预定义的伪变量,其名称由一个或多个字符组成,以及作为动态字段(AVP和Headers)引用的特殊伪变量。伪变量是由各种模块实现的,其中大多数是由pv提供的(如果没有对某个模块的特殊引用,则期望伪变量由pv模块提供)。
2024-04-15 22:40:34
1602
原创 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
原创 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
原创 RSA加密解密(无数据大小限制,php、go、java互通实现)
RSA加解密中必须考虑到的**长度、明文长度和密文长度问题。明文长度需要小于**长度,而密文长度则等于**长度。因此当加密内容长度大于**长度时,有效的RSA加解密就需要对内容进行分段。这是因为,RSA算法本身要求加密内容也就是明文长度m必须0
2023-07-13 12:25:29
2073
原创 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
原创 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
原创 基于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
PHP 使用什么加密或者代码混淆工具?
2023-11-16
nginx怎么从一个地址转到另外一个地址
2018-08-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人