第一节 如何熟悉Kamailio文档的文档结构

我始终认为,快速学习一门知识,最为重要的就是熟悉它的文档结构。 对于熟悉OpenSIPS的文档结构来说的人,看了Kamailio的文档,往往觉得无从下手。 当我们打开Km的官网(kamailio.org)后, 会重定向到https://www.kamailio.org/w/, 在页面的右侧, 接着,我们会导航到 https://www.kamailio.org/w/documentation/ 这个页面的结构需要烂熟于心 1. 模块文档 如果你知道km的版本号和对应的模块,可以点击这里进入对应版本,然后再选择对应模块 2. wiki部分 2.1 必学部分 wiki部分主要是一些教程,非常值得看。 其中有三个重点部分 core cookbook: 主要讲解km的脚本的结构、全局参数、模块参数、路由类型、预处理、脚本操作等等,是编写km脚本的必学之处,各种参数都可以看看 Pseudo-Variables CookBook:主要讲解各种伪变量,用来读写SIP消息 Transformations CookBook: 主要讲解各种操作变换,例如把字符串型转为int型数据 全部函数索引 在km的wiki官网,即https://www.kamailio.org/wikidocs/, 其中Alphabetic Indexes就是所有的参数或者函数的索引。 在你学些km的脚本时,有时候想知道某个函数在哪个模块中,就可以用这个全部函数索引中查找。 源码安装 这部分讲解如何通过GIT进行源码安装。 FAQ https://www.kamailio.org/wikidocs/tutorials/faq/main/ 外部资源 这里涉及了如何用km和常见的媒体服务器如何集成 其他 官方的Web版本的wiki, 对于刚入门的人来说,还是有点绕的。 另外一个问题就是mkdocs的页面渲染效果的确不太行,目录滚动一点都不灵敏。 如果你想看的不是某个模块的说明文档,我更建议你直接把https://github.com/kamailio/kamailio-wiki 这个git仓库下载到本地查看。 总结 总体来说,km的文档算是非常完整了,但是和OpenSIPS相比,还有待加强。

2024-12-02 22:43:24 · 1 分钟 · Eddie Wang

AXB的玩法说明

2024-11-18 19:58:38 · 0 分钟 · Eddie Wang

第二份工作的辞职总结

总结 第二份工作快到一年了,我最近申请离职了。 同事问我离职原因,我说被领导骂了,感觉自尊受辱,索性不干了。 实际上被领导骂只是压死骆驼的最后一根稻草,我也不是那种会心血来潮说干就不干的。 这份工作,我做了不到一年,大部分的时间我是做的不开心的。 所以离职是一直在心里酝酿。 为什么会工作不开心? 主要原因有以下四点: 行业前景暗淡:S公司处在行业的中游,上游受到运营商管控,下游在客户层面话语权也不大。这是一个资源限制型的行业,行业的命脉就在运营商,可能运营商有个风吹草动,整个行业就要翻江倒海。 自研能力薄弱:S公司大部分业务都是购买的第三方的软件,各种变更都受到制约,添加一个小功能都要付费升级。自研能力弱的一个原因可能就是前些年赚钱太容易了,投资研发哪有赚快钱来的舒服呢。同时也是这个原因,多个第三方软件之间也造成了数据割裂,运行维护困难。 家族企业制约:S公司大部分人员都是老板的亲朋好友,家族式企业的优点是内聚力强,但是包容性弱。之前也有一些大厂进来的员工,没多久就辞职了。 我曾经也跟老板沟通过,似乎老板也有心做些变革。但是变革哪有那么容易,要变革不早都变了,还要等到现在? 短期主义:似乎S公司没有什么具体的愿景,唯一感觉到的愿景就是赚快钱。一旦发现投入的回报太少,就立即切换目标。 企业关怀差:说实在,我没有感觉到多少员工关怀。在S公司的工作和在地主家做短工也没啥区别,老板想什么都要管,但是即管不了那么多,又管的不好。所以给人的感觉就是东一棒槌,西一榔头,看起来很卖力,实际上并没有什么产出。几乎每个月都有人离职,对员工都吝啬,不考虑员工的自尊,员工怎么可能对公司有归属感。 工作压力大:受限于资源收紧、产品优势小,老板想提高营业额的方法是提高员工的服务水平。说实在,这真是杯水车薪。不想着从底层系统的解决问题,只想着通过给员工压力、通过加班来解决问题,只会造成工作压力大、人员流失大。 所以,我的离职,实际上也是考虑再三的一个选择。 当然,我在S公司也不是什么收获都没有。 收获总结 深入了解了行业的运行原理、客户、资源、政策等信息 对于数据分析方面有了较大的进步,毕竟我做了40+个数据报表来分析运行数据 深入学习了python, 主要用来做数据分析。数据分析方面的协议栈主要有pandas、duckdb、doris(MySQL)、grafana来组成 深入学习了python的GUI开发,主要用到的框架是wxPython,开发的两个工具分别给到运维人员和客服去使用,来提高运行效率

2024-09-10 21:08:51 · 1 分钟 · Eddie Wang

Windows安装Tesserocr

安装tesserocr-windows_build 到tesserocr-windows_build release页面下载对应的whl文件 如下载 tesserocr-2.6.2-cp312-cp312-win_amd64.whl, 下载之后用pip安装 pip install tesserocr-2.6.2-cp312-cp312-win_amd64.whl 安装ocr windows exe程序 在这个页面,有对应的exe程序,https://digi.bib.uni-mannheim.de/tesseract/ 例如下载这个exe文件 https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-v5.3.0.20221214.exe 下载完成之后点击安装,一般我们不需要修改他的安装位置,默认的安装位置是C:\Program Files\Tesseract-OCR 我们将C:\Program Files\Tesseract-OCR\tessdata下的所有文件,复制到C:\Program Files\Tesseract-OCR\目录下 参考 https://github.com/simonflueckiger/tesserocr-windows_build/releases https://digi.bib.uni-mannheim.de/tesseract/ https://tesseract-ocr.github.io/tessdoc/Downloads.html https://blog.csdn.net/Yuyh131/article/details/103880585

2024-04-24 08:34:07 · 1 分钟 · Eddie Wang

使用Excel理解prometheus的变化率相关函数

counter类型的变化率 rate, irate, increase counter类型一般是只增不减的累积值,例如系统累计的http请求数量, 累计的话单数量。 counter类型的指标变化率一般使用三个函数来计算,rate, irate, increase 指标每隔15s采样一次数据, A列是采集的指标值,B列是对应的采集时间。 demo_api_request_duration_seconds_count{instance="demo-service-0:10000",path="/api/bar",status="200",method="GET"}[1m] 序号 A B 1 294401976 1710549816.105 2 294402185 1710549831.105 3 294402393 1710549846.105 4 294402599 1710549861.105 rate是计算每秒的变化率, rate 计算方案 (A4-A1) / (B4-B1), 这里选择了首尾两个值的差值,除以时长秒 irate 计算方案 (A4-A3) / (B4-B3) , 这里只选择里最后两个点的差值,除以时长秒 increase 计算方式 (A4-A1) / (B4-B1) * 60, 这里的60是1m, 其实increase就是rate() * windows_seconds的语法糖 guage 296164749 @1710648381.105 296165055 @1710648396.105 296165364 @1710648411.105 296165668 @1710648426.105 296165978 @1710648441.105 296166186 @1710648456.105 296166505 @1710648471.105 296166826 @1710648486.105 296167151 @1710648501.105 296167478 @1710648516.105 296167810 @1710648531.105 296168139 @1710648546.105 296168472 @1710648561.105 296168764 @1710648576.105 296169026 @1710648591.105 296169363 @1710648606.105 296169709 @1710648621.105 296170059 @1710648636.105 296170410 @1710648651.105 296170759 @1710648666.107

2024-03-16 08:38:46 · 1 分钟 · Eddie Wang

解决 VsCode pwsh终端环境变量不生效问题

我在系统的环境变量设置里,用户和系统中,都加入了ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/这个环境变量。 单独打开windows Terminal应用,使用 env | grep ELE 是能搜到我设置的环境变量的。但是在vscode中,这个环境变量不存在。 我尝试了以下几个方法 重启电脑,无效 配置"terminal.integrated.persistentSessionReviveProcess": "never", 然后重启电脑,无效 在终端直接执行code ., 在终端打开vscode, 依然无效 因此,我想起了之前配置的pwsh的配置文件。 可以使用code $PROFILE, 打开pwsh的配置文件。 然后再配置文件中设置环境变量, 之后重启vscode, 环境变量就正常能读取到了。 # 文件名 Microsoft.PowerShell_profile.ps1 $env:ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/" 参考 https://www.zhihu.com/question/266858097

2023-11-16 08:08:39 · 1 分钟 · Eddie Wang

如何选择,汉王Clear7与文石Leaf3

购买选择 我的kindle pw4已经用了快三年了,机器性能有些不足,电池也有些不够用了。正逢双十一之际,我觉得可以买一个开放系统的电纸书来用用。 买开放系统的另一个原因是自从亚马逊退出中国后,我用微信读书比较多,也买了微信读书的会员。 开放系统基本上都是基于安卓系统定制的,可以选择的厂商比较多。 最终筛选下来,我选择了汉王clear7和文石leaf3, 我下单了两个,觉得先体验一下,然后在退一个。 然而用了不到两天之后,我还是决定把两个机器都给退了,继续用我的kindle pw4。 选择因素 就我个人而言,电子书最为重要的选择因素有以下三点。 显示效果: 说实在的,现在的电子书基本上都是carta1200、300ppi、冷暖光。基本上从显示效果上来说,各大厂家都是半斤八两。就我自己体验而言,我并没有发现汉王的显示效果和文石leaf3有何不同。 握持手感: 外观影响握持手感,外观一般分为两类,一类是就是平板设计,像kindle paperwhite系列。另一类就是书脊式设计,握持更舒适,像kindle os3, 汉王clear7之类的。 简洁系统: 电子书并不是手机,不需要太多的功能,功能太多反而成为累赘 稳定性: 点子产品难免被摔、或者淋水,对于这些意外情况,如果产品非常脆弱,那么很大可能会损失大笔的金额。 续航 文石的缺点 文石和汉王的两款产品,拿到手开机不到一小时,我就决定先退了文石。 原因有以下几点 显示效果文石和汉王差不多,没啥突出亮点 握持手感文石肯定比不过汉王的书脊式设计, 并且汉王更轻 文石的系统太复杂,设置太多,甚至还有个iphone类似的小白点设计,小白点点击之后展开很多图标,每个图标我都不知道做什么的 掉电速度,文石的电量肉眼可见的在不断减少 汉王的缺点 微信读书功能阉割, 这不是汉王的问题,而是微信读书自身的问题。例如书架页面,书籍只有一个排序的顺序,就是按照最近阅读的排序。而无法像ios或者安卓app一样能够按照阅读进度排序,另外也没有阅读时长分析的功能。 另外我也注意到,微信读书电纸书版,扫码登录的有效期是24小时,我不知道这是不是意味着24小时之后我又要重新扫码。 触感光滑,汉王的背板的触感让人感觉非常光滑,感觉稍不注意就会滑下去的样子。完全没有kindle pw4那种拿在手机,就粘在手上的感觉。所以我觉得,买汉王,就必须要买一个保护套,但是官方卖的保护套也太贵了吧,居然要110多块,这点有点像割韭菜。什么保护套能卖那么贵,都快赶上十分之一的电纸书的价格了。 词典缺陷,汉王的词典也是我要吐槽的功能之一,只能把单词的原型加入到单词本,单词来个复数或者过去分词,就不能加入单词本了。kindle的生词本,所有单词,无论什么形式都能加入单词本。 掉电速度, 从昨晚五点多开机,到今天早上,基本上没到一天,电池已经掉电接近40%了 自动关机, 为了省电,汉王在2小时不使用后,会自动关机。然而这个开机时间就有点久,你可设想一下,每天早上,你想看书的时候,你都要等几十秒的开机时间,那你能受得了吗? 按钮反馈,松松垮垮, 触感没有一致性体验 结论 目前而言,国产的电纸书系统,除了开放的系统之外,其他各个方面还是存在与kindle有较大的差距。 当然,如果你从未使用过kindle系列的产品,国产的电纸书还是值得买的。

2023-11-06 09:30:34 · 1 分钟 · Eddie Wang

MacBook icloud 同步卡死, 请尝试重启电脑

环境说明 MacBook Pro M2 系统版本 13.4.1 网络环境为wifi 操作步骤 我往icloud的文件夹下,粘贴几个文件夹,文件的内容挺多的,然后finder上显示icloud的状态就一直是处于同步中了。 等了好久,同步的过程似乎卡住了。 网上看了一些解决方案,似乎都没啥作用。 我想起来以前的同样的一次卡顿同步的解决方案:重启电脑 于是,我重启了一次电脑,再次开机,打开finder, icloud文件状态非常快同步完了。

2023-08-20 13:07:40 · 1 分钟 · Eddie Wang

安装NodeJS, N命令似乎卡住了

我一般会紧跟着NodeJS官网的最新版,来更新本地的NodeJS版本。 我的系统是ubuntu 20.4, 我用tj/n这个工具来更新Node。 但是这一次,这个命令似乎卡住了。 我排查后发现,是n这个命令在访问https://nodejs.org/dist/index.tab这个地址时,卡住了。 请求超时,因为默认没有设置超时时长,所以等待了很久才显示超时的报错,表现象上看起来就是卡住了。 首先我用dig命令查了nodejs.org的dns解析,我发现是正常解析的。 然后我又用curl对nodejs官网做了一个测试,发现也是请求超时。 curl -i -m 5 https://nodejs.org curl: (28) Failed to connect to nodejs.org port 443 after 3854 ms: 连接超时 这样问题就清楚了,然后我就想起来npmirrror上应该有nodejs的镜像。 在查看n这个工具的文档时,我也发现,它是支持设置mirror的。 其中给的例子用的就是淘宝NPM 就是设置了一个环境变量。然后执行source ~/.zshrc export N_NODE_MIRROR=https://npmmirror.com/mirrors/node 但是,我发现在命令行里用echo可以打印N_NODE_MIRROR这个变量的值,但是在安装脚本里,还是无法获取设置的这个mirror。 我想或许和我在执行sudo n lts时的sudo有关,这个.zshrc在sudo这种管理员模式下是不生效的。普通用户的环境变量也不会继承到sudo执行的环境变量里 最后,我用sudo -E n lts, 成功的从npmmirror上更新了nodejs的版本。 关于curl超时的这个问题,我也给n仓库提出了pull request, https://github.com/tj/n/pull/771

2023-07-09 14:20:45 · 1 分钟 · Eddie Wang

VScode激活Tab更容易区分

默认情况下VScode的tab栏,当前的颜色会更深一点。如下图所示,第三个就是激活的。 但是实际上并没有太高的区分度,特别是当显示屏有点反光的时候。 我想应该不止一个人有这个问题吧 看了github上,有个人反馈了这个问题,https://github.com/Microsoft/vscode/issues/24586 后面有人回复了 "workbench.colorCustomizations": { "tab.activeBorder": "#ff0000", "tab.unfocusedActiveBorder": "#000000" } 上面就是用来配置Tab边界的颜色的。 看下效果,当前激活的Tab下有明显的红线,是不是更容易区分了呢

2023-04-18 13:43:07 · 1 分钟 · Eddie Wang