Kamailio 的 uuid_kill

server/2024/10/11 13:27:20/

Kamailio 是否有类似 FreeSWITCH 的 uuid_kill 命令

试了试,发现还真的有

如果正在振铃,那么 tm.cancel 可以结束呼叫,参考链接:

https://kamailio.org/docs/modules/5.5.x/modules/tm.html#tm.rpc.cancel

如果已经应答,那么 dlg.terminate_dlg 可以结束呼叫,参考链接:

https://kamailio.org/docs/modules/5.5.x/modules/dialog.html#dlg.r.terminate_dlg

以官方的配置文件 https://github.com/kamailio/kamailio/blob/master/etc/kamailio.cfg 为基础,增加  dialog 模块

测试步骤如下:

1)192.168.1.131 上启动 kamailio

2)1000(ip 是 192.168.1.132)注册到 kamailio

3)1001(ip 是 192.168.1.120)注册到 kamailio

4)1000 呼叫 1001,振铃

5)kamcmd tm.list

{
        cell: 0x7f7756ef3000
        tindex: 37537
        tlabel: 494791369
        method: INVITE
        from: From: <sip:1000@192.168.1.131>;tag=N4y7FrQy60Bva

        to: To: <sip:1001@192.168.1.131>

        callid: Call-ID: 0264de75-e7d3-123a-cb9d-08002722ff3e

        cseq: CSeq: 46086918
        uas_request: yes
        tflags: 65
        outgoings: 1
        ref_count: 1
        lifetime: 22968048
}
kamcmd dlg.list

{
        h_entry: 289
        h_id: 50
        ref: 1
        call-id: 0264de75-e7d3-123a-cb9d-08002722ff3e
        from_uri: sip:1000@192.168.1.131
        to_uri: sip:1001@192.168.1.131
        state: 2
        start_ts: 0
        init_ts: 1641281418
        end_ts: 0
        timeout: 0
        lifetime: 43200
        dflags: 512
        sflags: 0
        iflags: 0
        caller: {
                tag: N4y7FrQy60Bva
                contact: sip:gw+kam@192.168.1.132:5080;transport=udp;gw=kam
                cseq: 46086918
                route_set:
                socket: udp:192.168.1.131:5060
        }
        callee: {
                tag: <null string>
                contact: <null string>
                cseq: <null string>
                route_set: <null string>
                socket: <null string>

        }
        profiles: {
        }
        variables: {
        }
}
6)如果运行下面这个命令(tm.cancel callid cseq)

kamcmd tm.cancel 0264de75-e7d3-123a-cb9d-08002722ff3e s:46086918  # 这里要加 s:,否则rpc 会认为是一个整数

那么 kamailio 向 uac 回 487,向 uas 发 cancel

7)如果 uas 正常应答

kamcmd tm.list 什么都不显示,现在没有了 Transaction

kamcmd dlg.list

{
        h_entry: 289
        h_id: 50
        ref: 2
        call-id: 0264de75-e7d3-123a-cb9d-08002722ff3e
        from_uri: sip:1000@192.168.1.131
        to_uri: sip:1001@192.168.1.131
        state: 4
        start_ts: 1641281434
        init_ts: 1641281418
        end_ts: 0
        timeout: 1641324634
        lifetime: 43200
        dflags: 515
        sflags: 0
        iflags: 0
        caller: {
                tag: N4y7FrQy60Bva
                contact: sip:gw+kam@192.168.1.132:5080;transport=udp;gw=kam
                cseq: 46086918
                route_set:
                socket: udp:192.168.1.131:5060
        }
        callee: {
                tag: 8a7b336a
                contact: sip:1001@192.168.1.120:8320;rinstance=64005a538988814c
                cseq: 0
                route_set:
                socket: udp:192.168.1.131:5060
        }
        profiles: {
        }
        variables: {
        }
}
dlg 的 state 发生了改变,而且 callee 里面有内容了

8) 运行下面命令

kamcmd dlg.terminate_dlg 0264de75-e7d3-123a-cb9d-08002722ff3e N4y7FrQy60Bva 8a7b336a #Callid, from tag, to tag

kamailio 同时向 uac 和 uas 发 bye 消息


http://www.ppmy.cn/server/15015.html

相关文章

Hive安装与配置实战指南

Hive安装与配置实战指南 在大数据领域中&#xff0c;Hive以其类SQL的查询语言HQL、可扩展的数据仓库能力和对Hadoop生态系统的良好集成&#xff0c;成为了数据分析和处理的重要工具。本文将指导您完成Hive的安装与配置&#xff0c;帮助您快速搭建起自己的Hive环境。 一、环境…

企业微信hook接口协议,标签变动回调

个人标签新增回调 {"labellist": [{"op": 3, "bDeleted": 0, //0代表新增"create_time": 1678114162, "label_groupid": 14073749131792038, "label_type": 2, "source_appid": 0, "business_typ…

Spring boot + MyBatis-Plus3

学习 增删改查 在 service 层直接调用。 insert(user) 增selectById(1) 根据id查updateById(user) 更新selectByMap(map) 根据条件查selectBatchIds(list) 根据多个id查selectPage(page, null) 分页查deleteById(1) 删除id为1的用户deleteByMap(map) 删除符合条件的用户d…

CS61B sp21fall Project02 Gitlet

Project02 Gitlet 一、项目简介二、Git和Gitlet2.1 Git简介2.2 Gitlet简介 三、框架设计3.1 Blobs3.2 Trees3.3 Commits 四、.Gitlet文件结构设计4.1 .git文件架构4.1.1 重点介绍index&#xff08;VSCode中无法查看&#xff0c;会乱码&#xff09;objects&#xff08;VSCode中无…

物联网网关硬件和云端分别实现了哪些功能?-天拓四方

在物联网&#xff08;IoT&#xff09;的广阔领域中&#xff0c;物联网网关硬件和云端各自扮演着不可或缺的角色。它们通过一系列功能&#xff0c;共同确保物联网系统的顺畅运行&#xff0c;为各类设备提供稳定、高效的数据传输与处理服务。本文将详细解析物联网网关硬件和云端分…

一个联合均值与方差模型的R包——dglm

目录 一、引言二、包的安装与载入三、模拟例子3.1 数据生成3.2 数据查看3.3 模型估计参数 一、引言 在 R 语言中&#xff0c;dglm 包是用于拟合双参数广义线性模型&#xff08;Double Generalized Linear Models&#xff0c;简称 DGLMs&#xff09;的一个工具。这类模型允许同…

写一个函数实现:将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大存放)之解法改写

#include<stdio.h> void change(int *p){ int i,j,temp; int *pmax,*pmin; // 初始化最大值和最小值的指针 pmaxp; pminp; // 遍历矩阵&#xff0c;寻找最大和最小值 for(i0;i<5;i) for(ji;j<5;j) { if(*pm…

Java树表查找

树表查找通常指的是利用树形数据结构进行查找操作&#xff0c;其中最著名的树表结构是二叉查找树&#xff08;也称为二叉搜索树、BST&#xff09;。在BST中&#xff0c;每个节点都包含一个键&#xff08;key&#xff09;和相应的值&#xff08;value&#xff09;&#xff0c;并…