自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

淡淡忧桑

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

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

原创 CentOS7编译安装freeswitch1.10.11

CentOS7编译安装freeswitch1.10.11

2024-05-07 21:29:41 360

原创 kamailio 虚变量

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

2024-04-15 22:40:34 768

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

kamailio mysql数据表之subscriber用户表

2024-04-09 10:30:53 198

原创 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 403

原创 kamailio初始化myql数据库

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

2024-04-07 14:27:54 225

原创 kamailio安装以及模块安装

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

2024-04-07 11:25:53 335

原创 Freeswitch配置之sofia

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

2024-03-31 15:13:22 706

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

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

2023-12-05 20:53:03 1160

原创 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 685 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 545

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

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

2023-12-05 20:20:43 1202

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

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

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

原创 thinkphp5 切换多语言

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

2023-07-19 19:07:31 494

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

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

2023-07-13 12:25:29 1707

原创 OTTPay对接微信小程序

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

2023-06-30 10:02:44 251

原创 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 834

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

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

2023-01-11 11:12:07 1122

原创 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 1425

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

MySQL 主从库配置参数详解

2022-02-15 16:56:57 918

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

apisixjwt

2022-02-13 11:35:48 1815

原创 Centos编译安装Python3.9

Centos编译安装Python3.9

2022-01-11 17:23:02 2430

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

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

2021-05-21 17:30:59 1349

原创 基于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 1145

原创 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 396

原创 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 419

原创 golang 归并排序(Merge Sort)算法思想及其实现

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。1 算法描述把长度为n的输入序列分成两个长度为n/2的子序列; 对这两个子序列分别采用归并排序; 将两个排序好的子序列合并成一个最终的排序序列。2 动图演示3:golang代码func merger(a []int, b .

2021-01-02 00:00:25 579

原创 通过这几篇文章我彻底了解了CGI、FastCGI和PHP-FPM

1、cgi fast-cgi php-fpm三者的理解2、全面了解CGI、FastCGI、PHP-FPM3、CGI、FastCGI和PHP-FPM关系图解

2020-12-30 14:08:27 176

原创 mysql如何减少回表提高查询效率(覆盖索引和延时关联)

mysql的索引类型 mysql支持的索引类型为:主键索引(key)、全文索引(FULLTEXT)、普通索引(NORMAL)、空间索引(SPATIAL)、唯一索引(UNIQUE)。无论使用什么方式的索引,都是通过hash或者b-tree来实现索引的存储结构。 主键索引:主键索引又称为聚簇索引通过B+tree的方式实现,并把索引和数据保存在一起。 全文索引:主要是匹配文本中的关键字,建议谨慎使用,数据量比较大的时候可以使用elasticsearch或者其他的效率更高的搜索引擎。 ..

2020-12-26 15:09:51 1436

原创 力扣49题:字母异位词分组

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。解题简单思路,把每个单词转换成单个数组字母,然后排序,合并成字符串。排序后的字符串比较合并1、直接把单词切割成数组,字符串排序,在组合成字...

2020-12-14 21:55:19 201

原创 jwt-go源码解析

下载地址:https://github.com/dgrijalva/jwt-go一、基本数据结构解析type StandardClaims struct { Audience string `json:"aud,omitempty"` //该JWT所面向的用户 ExpiresAt int64 `json:"exp,omitempty"` //token什么时候过期 Id string `json:"jti,omitempty"` //ID为web token提供唯一标识

2020-12-13 00:10:49 1024

原创 微服务grpc证书-TLS 证书认证(二)

grpc微服务,为了增加其安全性,使用tls证书一:使用openssl生成证书 1、安装openssl 2、生成证书openssl genrsa -out server.key 2048 //生成私钥openssl req -new -x509 -sha256 -key server.key -out server.pem -days 36500 //生成私钥You are about to be asked to enter information that wil...

2020-12-08 09:38:58 1542 2

原创 微服务grpc安装及其及其第一个程序调通(一)

一:安装grpc在go使用了module 只需要在 go.mod文件中添加一下文件,进入次目录执行 go build 自动安装了(需要更改go的代理,我使用的是七牛云的代理,能直接下载)require ( google.golang.org/grpc v1.34.0 google.golang.org/protobuf v1.25.0)二:准备编译protoful需要的工具1、安装protoc 根据开发环境和需求下载:https://github.com/protocolbuff..

2020-12-07 23:28:24 420

转载 简单理解InnoDB聚簇索引与MyISAM非聚簇索引

通俗点讲聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据 非聚簇索引:将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行,myisam通过key_buffer把索引先缓存到内存中,当需要访问数据时(通过索引访问数据),在内存中直接搜索索引,然后通过索引找到磁盘相应数据,这也就是为什么索引不在key buffer命中时,速度慢的原因澄清一个概念:innodb中,在聚簇索引之上创建的索引称之为辅助索引,辅助索引访问数据总是需要二次查找,非聚簇索引都是辅助索引,像复合索引、前缀索引

2020-11-25 23:33:40 1548 1

原创 PHP查找算法之二分查找

二分查找思想:  ①搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;  ②如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。  ③如果在某一步数组为空,则代表找不到。  这种搜索算法每一次比较都使搜索范围缩小一半。二分查找优势:如果列表包含100个元素,最多要猜7次; 如果列表包含40亿个数字,最多要猜32次 二分查找的运行时间为对数时间(或log时间)三:算法实现php语言...

2020-11-17 23:18:55 232

原创 php排列组合的两种组合算法

1:递归算法(算法来自于网络)function comb(array$input,int $m): array{ if($m==1) { foreach($input as $item) { $result[]=array($item); } return $result; } for($i=0;$i<=count($input)-$m;$i++) {

2020-11-15 00:19:34 898

原创 php数组查找的几种方法

一:简单使用foreach查找查找结果 $flag 为true 则存在,为false 则不存在<?php$codeArr = [1,2,3,4,5,6,7,8,9,10];$name = 13;$flag = false;foreach ($codeArr as $key => $value) { if($value == $name){ $flag = true; }}var_dump($flag);?>二:使用php自带的函数查找..

2020-11-04 11:28:48 6893 1

原创 centos搭建golang环境

1:下载golang包访问:https://studygolang.com/dl 下载包复制连接地址下载并解压,把包复制到usr/local下[root@codeserver soft]# wget https://studygolang.com/dl/golang/go1.15.3.linux-amd64.tar.gz[root@codeserver soft]# tar -xvf go1.15.3.linux-amd64.tar.gz[root@codeserver soft.

2020-10-17 14:38:46 2528 2

原创 docker 修改默认存储路径 /var/lib/docker

一、环境:centos7.x系统,已经装好docker-ce服务包二、查看当前docker的存储路径[yukw@yfb ~]$ docker info |grep DirWARNING: bridge-nf-call-iptables is disabledWARNING: bridge-nf-call-ip6tables is disabledWARNING: the devicemapper storage-driver is deprecated, and will be remov

2020-10-17 10:41:23 6114

原创 Docker 安装 PHP7.4 GD扩展

1、进入 php-fpm 容器docker exec -it 容器ID /bin/bash2、编译phpGD库扩展# 更新软件源apt-get update # 安装相关库apt-get install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev # 解压源码docker-php-source extract # gd 源码文件夹cd /usr/src/php/ext/gddocker-php-ext-

2020-10-04 21:11:19 6324 1

原创 centos 安装docker 并安装php7.4+nginx+mysql

一:安装docker 1:安装所需的软件包 yum install-yyum-utils device-mapper-persistent-data lvm22:由于官方源地址比较慢,可以自己配置源地址,这里使用阿里云源地址yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3:查询docker版本,可以根据自己需要的版本安装#更......

2020-10-03 23:04:26 5933 2

文件分割-免安装

文件分割-免安装

2016-03-21

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

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

2015-07-30

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

TA关注的人

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