- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的场景是:SIP 中继连接到 Kamailio 服务器,该服务器在本地连接到多个 Asterisk 服务器,并且应该在这些 Asterisk 服务器之间负载平衡调用。如何? Kamailio 服务器中有一个 mysql 数据库表,它将传入调用的 sip header 的 TO
部分映射到 Asterisk 的 IP 之一。
Kamailio 应该读取 sip header 并在数据库中搜索,在获得 IP 后,将调用转发到正确的 asterisk 服务器。
例如,传入 sip header 中 To
的值为 123456
因此 kamailio 查询数据库并发现号码 123456
在 中192.168.1.10
因此调用应转发到服务器 192.168.1.10
。
我已从其网站上阅读多篇文章和 Kamailio 的帮助,但找不到与此场景相关的任何内容。有谁知道kamailio.cfg里面的路由怎么写?
最佳答案
有一些方法可以做到这一点。其中之一是使用调度程序模块。
此模块提供 SIP 负载平衡器功能,可用作 SIP 流量调度器。有许多负载平衡和流量调度算法可供您选择,例如:循环法、基于权重的负载平衡、调用负载分配和 SIP 消息属性散列。
该模块可用作无状态负载均衡器;它不依赖于任何调用状态跟踪模块。如果启用事件/非事件网关的自动发现,它需要 TM 模块。
它非常轻巧,因此适合处理繁重的 SIP 流量。由于该模块占用空间小,并且能够从纯文本文件加载平衡规则,因此适用于嵌入式系统。
您需要添加一个包含 Asterisk IP 列表的 dispatcher.list
文件,如下所示:
1 sip:192.168.0.10 #asterisk 01
1 sip:192.168.0.11 #asterisk 02
然后在转发请求之前,您将执行 ds_select_dst(1, 0);
请确保为您的调度程序模块指定列表文件:
loadmodule "dispatcher.so"
modparam("dispatcher", "list_file", "/var/run/kamailio/dispatcher.list")
如果你想使用数据库而不是文件,你可以通过指定数据库来实现:
modparam("dispatcher", "db_url", "mysql://user:passwb@localhost/database")
此外,还有其他参数指定数据库表等。
您可以在 kamailio dispatcher documentation 中阅读更多内容
关于database - Kamailio:如何根据 IP 负载平衡多个 Asterisk 服务器之间的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48627262/
关于我我对 Kamailio 解决方案的使用非常陌生,有 SIP 实际应用的基本背景 概述 我的任务是作为主动/主动注册商构建 Kamailio 解决方案 Kamailio Design 问题 您会使
我在服务器上使用 Kamailio 和 OpnVPN,在安卓设备上使用 CSipSimple。, 问题在于,对于某些设备,这可以工作,而对于其他设备,则不能。 当其中一个设备是鲜为人知的设备(阿尔卡特
尝试运行在 kamailio 中创建 mysql 数据库的脚本时出现错误(/usr/local/sbin/kamdbctl create)。错误: 第 1 行出现错误 1682 (HY000): na
出于某种我不知道的原因,我有一些带有 utf32_general_ci 排序规则的 Kamailio 表(示例中的位置),还有一些带有 latin1_swedish_ci 的表。 我尝试在 githu
我正在尝试使用 Kamailio 和 Freeswitch。我正在关注此处列出的文章: http://nil.uniza.sk/sip/kamailio-33-and-freeswitch-122-i
在安装 Kamailio SIP 服务器的过程中,我遇到了问题。在我写完 /usr/local/sbin/kamdbctl create 后,只出现了 ERROR: database engine n
各位开发人员大家好... 我们已经测试 Kamailio 一周了,它运行良好......但是我们的一些 friend 报告说他们无法使用移动互联网连接到我们的服务器...并且默认的 SIP 端口似乎被
我需要通过 Lua 脚本在 Kamailio 3.3.1 中设置自定义 header 。理论上我可以像这样在配置脚本中设置一个 - append_hf("X-MyHeader: myvalue\r\n
各位开发人员大家好... 我们已经测试 Kamailio 一周了,它运行良好......但是我们的一些 friend 报告说他们无法使用移动互联网连接到我们的服务器...并且默认的 SIP 端口似乎被
我需要通过 Lua 脚本在 Kamailio 3.3.1 中设置自定义 header 。理论上我可以像这样在配置脚本中设置一个 - append_hf("X-MyHeader: myvalue\r\n
我有三个运行 Ubuntu 14.04 的虚拟服务器。我在一台服务器上安装了 Kamailio,在其他服务器上安装了 Asterisk。我希望 Kamailio 服务器充当负载平衡器并将传入调用转发到
我想在 kamalio 中用 redis 数据库替换 MySQL。然而,kamalio 支持与 MySQL 的事务,即在 MySql 数据库中保存数据。在尝试使用 redis 运行 kamailio
嗨,我正在一个项目中,我们需要连接我们的 kamailio SIP 服务器 4.1(安装在 ubuntu 上,我可以从中提供 SIP 服务我尝试使用 jitsi 还为 Kamailio 安装 radi
我是第一次使用 Kamailio,我已经成功地启动并运行了它,从而可以在客户端之间进行调用。 是否可以同时调用多个客户,并且第一个接听电话的客户可以接听电话? 最佳答案 您似乎在这里寻找的是多重分支。
在特定情况下,我需要将 Kamailio 连接到 PostgreSQL 数据库而不是 MySQL。有人可以为此提供步骤吗?尝试了论坛中的多个步骤,但都失败了。 面临的问题:每当 kamailio 在
需要使用 PHP 以编程方式向 Kamailio 添加新用户。我尝试使用 SQL 查询手动将用户名和密码添加到 订阅者 表,但它不起作用,因为 ha1> 和 ha1b 应添加到表中。我不知道Kamai
我已经安装了带有 mysql、presence、nat、auth 模块的 kamailio。它们都在另一台服务器(Amazon Ec2)上工作。现在我在笔记本电脑上尝试,遇到了一些问题。 当我尝试使用
我正在使用 Kamailio 作为 SIP 服务器,我想将 SIP 消息转发到 C++ 应用程序。我一直在寻找 SIP 模块来执行此操作,但文档并不完全清楚,并且在线示例也不多。 如果有人能在要使用的
我正在使用 SIP 协议(protocol)栈开发 IOS VoIP 应用程序。我将使用 Kamailio 作为 sip 服务器。 但是每个VoIP客户端调用VoIP电话都需要一个sip地址(sip账
我的场景是:SIP 中继连接到 Kamailio 服务器,该服务器在本地连接到多个 Asterisk 服务器,并且应该在这些 Asterisk 服务器之间负载平衡调用。如何? Kamailio 服务器
我是一名优秀的程序员,十分优秀!