Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Kamailio 多租户之简介

Kamailio 多租户之简介

作者头像
杜金房
发布于 2025-05-10 03:28:29
发布于 2025-05-10 03:28:29
4100
代码可运行
举报
运行总次数:0
代码可运行

众所周知 Kamailio 支持多租户,但官方文档关于多租户的介绍分散在很多地方,对新手来说,要熟练把握多租户方面的关键信息,确实不易。本文分享 REGISTRAR/AUTH/AUTH_DB/USRLOC 这几个常用模块多租户方面的经验。

做几个测试就可以直观地了解,什么叫多租户了。

先运行 apt install -y kamailio kamailio-* 安装 kamailio 和相应的模块。

运行下面这个 shell 文件,以便产生 /etc/kamailio-local.cfg

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
echo 'alias=demo1.com' > /etc/kamailio-local.cfg

现在启动 kamailio,目前关闭了多租户。

启动 MicroSIP,代理填 kamailio 的 IP 地址,域名demo1.com,用户名填 1001, 密码任意(目前的 kamailio 路由脚本是不认证的)。

kamailio 收到的 SIP 注册消息如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
REGISTER sip:demo1.com SIP/2.0
Via: SIP/2.0/UDP 192.168.31.166:54629;rport;branch=z9hG4bKPj2c89d35f26024834bb6a7f696517e002
Route: <sip:192.168.31.103;lr>
Max-Forwards: 70
From: <sip:1001@demo1.com>;tag=5ddf603694534646855549c3872c01de
To: <sip:1001@demo1.com>
Call-ID: 1dad57ab1b6348a788423cdf05fd29c7
CSeq: 14331 REGISTER
User-Agent: MicroSIP/3.21.4
Contact: <sip:1001@192.168.31.166:54629;ob>
Expires: 300
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Content-Length:  0

运行 kamcmd ul.lookup location 1001@demo1.com,查用户位置信息,得到如下输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  AoR: 1001
  Contacts: {
    Contact: {
      Address: sip:1001@192.168.31.166:54629;ob
      Expires: 60
      Q: -1
      Call-ID: 1dad57ab1b6348a788423cdf05fd29c7
      CSeq: 14331
      User-Agent: MicroSIP/3.21.4
      Received: [not set]
      Path: [not set]
      State: CS_NEW
      Flags: 0
      CFlags: 0
      Socket: udp:192.168.31.103:5060
      Methods: 8159
      Ruid: uloc-6709d372-558-5
      Instance: [not set]
      Reg-Id: 0
      Server-Id: 0
      Tcpconn-Id: -1
      Keepalive: 0
      Last-Keepalive: 1728698054
      KA-Roundtrip: 0
      Last-Modified: 1728698054
    }
  }
}

接着运行 kamcmd ul.lookup location 1001@demo2.com,得到的结果跟上面完全一样。

也就是说,目前的路由完全不介意域名是什么。

运行下面这个 shell 文件,使能多租户:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo '#!define WITH_MULTIDOMAIN' >> /etc/kamailio-local.cfg

重启 kamailio。(如果启动失败,修改 kamailio.cfg,把 domain 模块和模块参数都删除)

MicroSIP 重新注册。

运行 kamcmd ul.lookup location 1001@demo1.com,得到如下输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  AoR: 1001@demo1.com
  Contacts: {
    Contact: {
      Address: sip:1001@192.168.31.166:54629;ob
      Expires: 290
      Q: -1
      Call-ID: e52be1029b5f4fffa48735b3ffe019e4
      CSeq: 52257
      User-Agent: MicroSIP/3.21.4
      Received: [not set]
      Path: [not set]
      State: CS_NEW
      Flags: 0
      CFlags: 0
      Socket: udp:192.168.31.103:5060
      Methods: 8159
      Ruid: uloc-6709dafa-6c2-1
      Instance: [not set]
      Reg-Id: 0
      Server-Id: 0
      Tcpconn-Id: -1
      Keepalive: 0
      Last-Keepalive: 1728699448
      KA-Roundtrip: 0
      Last-Modified: 1728699448
    }
  }
}

AoR 跟之前的对比,多了域名。

运行 kamcmd ul.lookup location 1001@demo1.com 能查到位置信息,但 kamcmd ul.lookup location 1001@demo2.com,得到的却是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
error: 500 - AOR not found in location table

最后要提醒下,demo1.comDEMO1.COM 这二个域名是完全等效的,kamailio 在处理域名时自动处理成了小写。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeSWITCH中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Kamailio RPC和OpenSIPS MI
其中Cflags保存的是分支标志,上面的例子Kamailio的分支标志是64,一般在Kamailio.cfg的开头几行能找到这样的定义:
杜金房
2023/02/28
1.3K0
Kamailio RPC和OpenSIPS MI
关于Kamailio registrar、auth、usrloc等模块的补充说明
Kamailio跟注册、认证以及用户位置有关的模块,常见的就是registrar、auth、auth_db以及usrloc等,尽管有官方手册,但是要熟练掌握是需要一个过程的。笔者在这里分享下使用经验,希望起到一个抛砖引玉的效果。
杜金房
2023/02/28
2.7K0
关于Kamailio registrar、auth、usrloc等模块的补充说明
Kamailio Tips
日志的前面几行表明收到了OPTIONS请求,其中uri是sip:test.com。
杜金房
2022/12/12
2.9K0
Kamailio UAC 模块简述
Kamailio 是一款非常强大的 SIP 代理服务器,Kamailio 一般转发 SIP 信令,不主动产生和发送 SIP 信令。但有时您可能希望 Kamailio 向 IPPBX 注册、主动发 SIP 消息,等等,也就是让 Kamailio 起到客户端的作用,这就需要用到 UAC 模块。
杜金房
2025/03/13
1220
Kamailio UAC 模块简述
SIP REG Digest认证算法分析
在FreeSwitch控制台中,输入上面的命令行(on为打开,off为关闭),然后用Client(比如:免费开源软电话MicroSIP)注册,此时FreeSwitch中会输出4段SIP报文,分别对应认证过程中的4个阶段,类似下面这样:
菩提树下的杨过
2021/09/26
1.6K0
SIP REG Digest认证算法分析
oraclejobschedulerorcl禁用_oracledbconsoleorcl找不到
This document covers information about the SBC Setup.
全栈程序员站长
2022/10/01
4.1K0
SIP菜鸟如何学SIP
SIP是一个应用层的控制协议,可以用来建立、修改、和终止多媒体会话(或者会议)例如Internet电话。SIP在建立和维持终止多媒体会话协议上,支持5个方面:
杜金房
2022/12/12
3K0
SIP菜鸟如何学SIP
SIPp测试freeswitch用户注册
默认情况下,拨打内部用户时,freeswitch需要该用户注册了才能对其发起呼叫,否则会提示-ERR USER_NOT_REGISTERED
菩提树下的杨过
2021/05/27
3.9K0
技术解码 | GB28181协议简介及实践
GB28181协议是视频监控领域的国家标准,本文将解析如何在FFmpeg中增加对GB28181协议的支持,使其可以与支持GB28181协议的设备进行通信与控制,实现设备的注册、保活以及流媒体的传输。  GB28181协议指的是国家标准GB/T 28181—2016《公共安全视频监控联网系统信息传输、交换、控制技术要求》1,该标准规定了公共安全视频监控联网系统的互联结构, 传输、交换、控制的基本要求和安全性要求, 以及控制、传输流程和协议接口等技术要求,是视频监控领域的国家标准。GB28181协
腾讯云音视频
2021/05/13
18.1K1
国标GB28181协议客户端开发(二)程序架构和注册
在GB28181协议设备端的开发中,良好的程序架构设计是保证系统稳定性和可扩展性的基础。我们可以考虑以下方面:
hbstream
2023/06/25
2.1K0
国标GB28181协议客户端开发(二)程序架构和注册
国标GB28181协议客户端开发(三)查询和实时视频画面
设备目录查询是GB28181协议中的一项重要功能。其通过查询设备目录,获取到当前系统中的所有设备信息。设备目录查询的信令交互流程如下:
hbstream
2023/07/02
1.6K0
国标GB28181协议客户端开发(三)查询和实时视频画面
如何解析SIP报文
技术上讲,完全可以逐行按String解析,白手起家,拆解出其中的内容,但是这样做一来有些原始,二来也未必高效,幸好社区里已经类似的开源项目:pkts ,借助这个开源项目,可以很方便的把上述内容快速解析出来,示例代码如下:
菩提树下的杨过
2021/09/29
2.6K0
Android平台GB28181设备接入端语音广播支持PS格式
对接Android平台GB28181设备接入端语音广播的时候,我们有遇到过INVITE SDP需要PCMA格式的audio,对方同时回了PS和PCMA两种,然后,发数据的时候,直接发了PS的。
音视频牛哥
2023/03/14
3890
Android平台GB28181设备接入端语音广播支持PS格式
在 ubuntu 12.10 中安装 opensips 1.8.2
解压软件包: tar -zxvf opensips-1.8.2_src.tar.gz
Michael Chen
2018/09/05
1.2K0
使用Workerman实现基于UDP的异步SIP服务器
基于Workerman实现基于UDP的异步SIP服务器是一个涉及网络编程和协议实现的复杂任务。Workerman是一个高性能的PHP socket服务器框架,它支持TCP、UDP、UnixSocket等多种协议,非常适合用于开发需要长连接或高并发的网络应用。下面将详细介绍如何使用Workerman来实现一个基于UDP的异步SIP服务器。
Tinywan
2024/04/01
2340
使用Workerman实现基于UDP的异步SIP服务器
SkeyeVSS国标视频汇聚云服务通过GB28181协议进行摄像机设备接入以及获取设备信息
SkeyeVSS国标视频融合云平台基于端-边-云一体化架构,部署轻量简单、功能灵活多样,平台可支持多协议、多类型设备接入,包括国标GB28181、RTMP、RTSP/Onvif等,2023年我们将拓展更多SDK接入,包括海康SDK、大华SDK、海康Ehome协议、华为SDK、宇视SDK、萤石SDK、乐橙SDK。
Openskeye
2023/05/04
6140
sipp学习笔记
sipp是一个针对SIP协议进行测试的免费开源工具,可运行于windows/mac/linux,官方地址:http://sipp.sourceforge.net/。
菩提树下的杨过
2021/05/18
3.3K0
sipp学习笔记
Android平台GB28181设备接入端语音广播技术探究和填坑指南
消息头 Content-type字段为 Content-type:Application/MANSCDP+xml。
音视频牛哥
2023/07/18
4380
Android平台GB28181设备接入端语音广播技术探究和填坑指南
如何在XSwitch中使用mod_unimrcp
MRCP(Media Resource Control Protocol)媒体资源控制协议,是语音服务器用来向客户端提供各种服务(比如我们熟悉的语音识别和语音合成)的通信协议。MRCP需要承载于其他协议之上,如RTSP (Real Time Streaming protocol)或SIP (Session Initiation protocol),MRCP协议有两个版本,版本v1依赖于RTSP协议来创建媒体流和数据传输,但版本V1兼容性较差,很难兼容不同厂家的扩展要求。版本v2使用了SIP来负责会话和媒体的创建,增加了扩展性,保证了兼容性,目前大多数使用的都是V2版本。
杜金房
2024/03/18
4301
如何在XSwitch中使用mod_unimrcp
国网B接口调阅实时视频规范解读和代码示例分析
调阅实时视频包括信令接口和媒体流接口,采用标准的SIP INVITE+SDP流程,媒体传输使用RTP/RTCP。
音视频牛哥
2023/04/14
6260
国网B接口调阅实时视频规范解读和代码示例分析
推荐阅读
相关推荐
Kamailio RPC和OpenSIPS MI
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验