自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(331)
  • 收藏
  • 关注

原创 FreeSWITCH testserver 测试

用这个跟 Fs 官网对照着看,是不是就明白很多了。eyebeam 挂机,同时结束 tcpdump。用 wireshark 打开 esl.pcap。蓝色部分是 testserver 发给 Fs。红色部分是 Fs 发给 testserver。eyebeam 注册,再呼叫 9196。

2025-03-31 13:20:01 254

原创 opensips.cfg for version 3.2.8

这几天翻旧电脑,找到了一个文件,哈哈!

2025-03-29 14:10:29 95

原创 docker-compose.yml 增加 extra_hosts

再定义一个全局变量, sip_gethostbyname=true。进到容器,`cat /etc/hosts`,正是上面配置的内容。现在配置一个向 IMS 注册的 Fs 网关,就易如反掌了。

2025-03-24 13:43:54 121

原创 FreeSWITCH 之 chat

todo

2025-03-08 21:27:52 189

原创 FreeSWITCH 禁止显示 ‘Outbound Call‘

send-display-update=false # 上面不改,只改这个试试。如果是通过网关呼出,在网关配置里面设置通道变量,这个办法更好。allow-update=false # 改这个肯定可以。可以设置通道变量 sip_cid_type=none。另外,联调时有时远端不喜欢。多读书多试试,每天进步一点点。

2025-03-05 12:47:22 191

原创 docker 回收空间

但,慎用,除非你知道发生了什么。

2025-02-24 21:03:02 103

原创 rtpengine build mr12.5.1 镜像

现在 rtpengine-ctl 可以用了。不过, build 出来有点大。回头研究下 alpine。

2025-02-24 19:18:14 226

原创 FreeSWITCH Alpine 安装

FreeSWITCH 版本为 1.10.11,还不错。但比较遗憾,没有 mod_av 模块。mod_lua 基于 lua5.3。先更新 Alpine 仓库。

2025-02-21 17:05:37 259

原创 记录一次 ALG 的处理过程

如果 FS 不发 SIP 消息,从 FS 一侧 telnet mccp-server-ip 1544 (mrcp 侦听端口) 是正常的。经过反复沟通之后,给我一幅图,SIP 呀,H.323 呀,TFTP 呀,问我哪些需要 disable;而 FS 发了 SIP 消息之后,再 telnet 就失败,卡了大约 1 分钟之后,telnet 才能恢复正常。等问题复现时,在 FS 一侧做 路由测试,发现卡在某一跳,当然是查这里的 ALG。前几天朋友找我帮忙,说碰到很大困难了,实际上,不过如此。

2025-02-21 09:39:42 164

原创 测试 FreeSWITCH 的 sip_invite_route_uri

剩下的就很简单了,配置 kamailio/opensips,用 sip proxy 修改 sip 头。FreeSWITCH 很强很方便,只要用心,就能找到解决问题的办法。# 修改主叫号码(取 Route 头里面的 user)但想修改 sip 头,有什么好办法呢?(比如修改主叫号码等)# 删除某些 sip 头(视情况而定)# 如果不是 INVITE, 那么返回。# 如果没有 Route 头,那么返回。也就是 fs->sip proxy->落地。# 这就是预加载路由。

2025-02-20 21:42:39 275

原创 rtpengine and redis

redis 用来在不同 rtpengine 实例之间同步会话信息。其中之一是陶宇飞的演讲稿,致敬陶女士!回头做做测试,看下到底怎么用。

2025-02-20 09:46:39 160

原创 介绍 Kamailio 的 kamcmd

kamcmd ,或者 kamcmd -s unix:/run/kamailio/kamailio_ctl。Kamailio 的 kamcmd 作用跟 FreeSWITCH 的 fs_cli 类似,kamailio.cfg 可以增加 xhttp.so 以及 xhttp 路由的路由处理。前者调用 kamailio 核心的 rpc 或者kamailio 模块的 rpc。Kamailio 早期版本也支持 MI,文档说现在不再支持 MI 了。其实还有很多命令,kamcmd help ,看下哪些对自己有用。

2025-02-19 11:42:15 100

原创 聊聊 sngrep 的配置

F8], 再 Save,这样就有一份配置文件了,文件名就是 ~/.sngreprc。[F10],再 Save, 配置文件增加了新的内容。

2025-02-13 10:28:21 164

原创 play_and_detect_speech 怎么接收 dtmf

但这需要 mrcp server 支持,但目前 sdm 是不支持 dtmf 的。FS 的 play_and_detect_speech 可以接收 dtmf。多个 dtmf 要怎么接收,我搞不定,如果您知情请不吝赐教。FS 本身貌似只能接收一个,处理不了多个。传了个内置的 mrcp 语法。但貌似只能接收一个码。

2025-02-08 10:32:11 124

原创 FreeSWITCH 的 mod_fail2ban

对待挑战失败要慎重一点,可以针对 IP 进行计数,累计几次失败之后可以禁止这个 IP。--->invite(seq: n+1),如果这个请求超时还没有收到,那么 fs 就会 fire wrong_call_state。这个处理很简单,直接禁止就行。user_agent 如果包含了 friendly-scanner,或者包含了 VaxSIPUserAgent 等,大概率是来自国外的 SIP 扫描。所谓 register_attempt,就是 fs 收到注册请求(初始请求)时 fire 这个事件。

2025-02-08 09:51:00 246

原创 FreeSWITCH 删除过期的录音文件

放 cron, 每天自动执行。

2025-02-06 17:02:56 361

原创 FreeSWITCH 跟踪内存泄漏

做几个呼叫,然后 shutdown。最后分析 /tmp/vg.log。

2025-02-06 14:59:50 111

原创 Kamailio 6.0.0 已经 release

粗略看了下,个人感觉最大的变化是支持多线程。

2025-02-05 09:02:26 117

原创 2600hz sbc 从 OpenSIPS 迁移到 Kamailio

如题。

2025-02-04 08:15:01 127

原创 Kamailio 不通过 dmq 实现注册复制功能

【代码】Kamailio 不通过 dmq 实现注册复制功能。

2025-02-03 19:03:55 187

原创 Kamailio 迷你镜像

这样 build 出来的 Kamailio 应该是最小的,不到 60 兆。Debian 可以添加 packagecloud 仓库。目前 Kamailio 的版本是 5.8.4。有个 shell 脚本可以自动完成这个事情。基于 alpine 的镜像体积比较小。CentOS 似乎也行,但我没测试过。支持 x86 和 arm 架构。

2025-02-03 11:11:32 131

原创 FreeSWITCH 的 SLA

不过我还没实际测试过,如果有 NAT 方面的问题,估计不好搞,即使我已经工作了很多年。

2025-02-02 09:05:40 177

原创 H.323 转 SIP 之我见

H.323 转 SIP,一般是为了设备利旧,思科/AVAYA 等大厂 的 H.323 早就部署了 N 套。FreeSWITCH 有 mod_h323 模块,但已经好多年不更新了,我做过压力测试,会 crash。听说还有不开源的 mod_ooh323,支持视频,这个特性特别好,但有时也会 crash。我有一套 YATE 5 年前就上线了,480 个通道的并发,一直比较稳定。我自己习惯使用 Yate,把 H.323 转成 SIP。如果想讨论这方面的问题可加 1052294031。

2025-01-21 08:58:45 248

原创 FreeSWITCH 呼出成功后自动执行 uuid_debug_media

不去做这个检查 `!rtp_session->flags[SWITCH_RTP_FLAG_RESET]`, 似乎更好一些。如果已经 bridged, 那么 send_msg 不为空,将不会调用 get_next_write_ts。如果是单腿,那么 send_msg 为空,将调用 get_next_write_ts 函数。个人觉得,某些情况下可能会有问题(目前还不十分确定)在跟踪一个rtp方面的bug。

2025-01-16 10:36:01 230

原创 Kamailio dlg_bridge

所谓 bridge 应该是 Kamailio 先呼通一个,成功后再发 refer |到另外一个。在 xhttp 路面里面调用 dlg_bridge, 应该是实现了点击拨号的功能。坦白讲,要完全调通可能还有很多细节需要注意,可能还要修改源码。逻辑不复杂,但能不能做成功还不清楚,以后有机会试试。

2025-01-15 09:09:53 387

原创 FreeSWITCH rtp session 的初始化

rtp

2025-01-10 16:53:43 163

原创 测试 FreeSWITCH 的 disable_q850_reason

1002 和 1003 都注册到 FreeSWITCH。1003 正常应答,sip 流程跟以前一样。现在 1002 呼叫 1003。

2025-01-08 15:17:52 321

原创 试试 FreeSWITCH 的 tone2wav

dtmf1234.wav 不要写成 dtmf-1234.wav,但可以写成 dtmf_1234.wav。-R8000 速率8000,但不要写成 -R 8000,加上空格就不能工作了。'tone_stream://1234' TGML,可以查看相关文档。`tonestream://` 可以忽略掉。SIPp 可以播放 wav,是不是很方便?tone2wav,不带任何参数,看帮助。-s Stereo 默认是 Mono。-v verbose,打印详细日志。同上,但音量为 -5。

2025-01-08 14:41:41 854

原创 Kamalio 的 $nh(key)

JSSIP 跟 Kamailio 之间的 WSS 链接断开了(可能因为某种原因),JSSIP 会在 2 秒之后自动注册。Kamailio 发 BYE 给 JSSIP,正常情况下是发不到的,那怎么办呢?本文仅仅给一个思路,切勿原文照抄,多查文档多做练习多思考,方为上策。JSSIP 呼叫 Kamailio,应答。JSSIP 注册到 Kamailio。

2025-01-08 10:52:33 314

原创 SIPp uac-cdr.xml

【代码】SIPp uac-cdr.xml。

2025-01-07 17:18:56 133

原创 FreeSWITCH 呼出之我见

uuid varchar channel-uuid,如果为空,那么调用 fs_cli -x 'create_uuid'4 个 SIP Profile,其中每个 Profile 对应一个网关,所有的这些网关都指向同一个语音网关。换我上的话我肯定用 Kamailio,控制起来比较方便。如果当前 channels 数超过某个阈值,则退出。调用 fsapi 呼出,并写回数据库的表。如果当前 sps 超过某个阈值,则退出。fs --- 语音网关 --- 运营商。语音网关 5060 --- 运营商。

2025-01-06 18:16:54 136

原创 FreeSWITCH 的 soa 问题

soa

2025-01-06 11:02:26 714

原创 sniff2sipp: 把 pcap 处理成 sipp.xml

到这里下载:先安装依赖:测试一把:cd samplessniff2sipp -a 172.16.178.128:5060 -f call.cap,看到的是:

2025-01-03 15:52:46 448

原创 比较 FreeSWITCH 的 asr 事件和回调函数

这种做法是调用 switch_core_session_queue_event 直接给 session 发事件。识别到结果之后可以收到 DETECTED_SPEECH 事件。用 lua 来描述,是这样的。这种搞法是收不到事件的。

2025-01-02 16:49:51 544 2

原创 FreeSWITCH dialplan/default.xml 之释疑

todo

2025-01-02 12:01:45 469

原创 跟踪一例 FreeSWITCH 语音单向的案子

如果执行 dialplan2, 那么语音网关先收到 FS 发过来的 RTP 包,重点是收到的 RTP 包其源地址是 FS 的本机地址 192.168.1.200, 而不是 FS 出口地址 192.168.1.100,于是语音网关自动发到 了192.168.1.200,但这个地址是不能达的,结果导致了语音单向。语音网关 10.x.x.x --------- FS 出口地址 192.168.1.100 ------- FS 本地地址 192.168.1.200。-- FS 回的是正确的 C 地址-->

2024-12-31 10:46:29 163

原创 MicroSIP 之配置

SIP Server` 到底是何方神圣,试着改为 `192.168.99.206`,结果只是 `Request Domain` 从 `demo1.com` 变成了 `192.168.99.206`, `From Domain` 和 `To Domain` 没有变化,依旧是 `demo1.com`。有些字段很容易理解,比如 Username 和 Login 可以不同,Login 其实是 Authorization ID,如果跟 Username 相同,可以不配置。

2024-12-30 10:39:22 522

原创 Debian12 安装配置 ODBC for GaussDB

ODBC for GaussDB

2024-12-24 11:41:38 363

原创 lua dofile 传参数

lua 版本 5.2.4。

2024-12-20 19:22:38 464

原创 FreeSWITCH 异步播放 wav 文件

1. lm 循环播放,在 lega 上执行 dispace,lega & legb 互相可以听到,lega 听到 legb的同时 还能听到 wav 文件, 但 legb 听不到 wav。2. lrw 循环播放,lega 和 legb 互相听不到,但都听到同一个 wav 文件。此外,用 local_stream://moh 代替 wav 文件名,没问题。4. f,first, 设置成第一个 media bug,估计很少有人用。2. m,mute ,在以前通话的基础上叠加 wav 文件。

2024-12-20 09:30:46 358

Deploying STIR/SHAKEN with Kamailio

Deploying STIR/SHAKEN with Kamailio

2023-11-13

Homer VoIP Monitoring From zero to hero

Homer VoIP Monitoring From zero to hero

2023-05-22

SIP AND MSRP OVER WEBSOCKET

SIP AND MSRP OVER WEBSOCKET

2023-04-10

跟踪调试Kamailio路由

跟踪调试Kamailio路由

2023-03-30

Kamailio Variables and Transformations

Kamailio Variables and Transformations

2023-03-29

空空如也

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

TA关注的人

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