1

我们有一个 Kamailio SIP 服务器启动并运行身份验证。现在我们希望 SIP 用户说 abc@localhost.com 只能与特定的 SIP 用户(比如 xyz@locahost.com)进行通信,而不能与存储在数据库表中的所有其他 SIP 用户通信。我试图找到解决方案,但可以找到解决方法。任何帮助将不胜感激。

所以场景是:

SIP 用户 1 ---------------> 仅 SIP 用户 2 并且如果 SIP 用户 1 ---------------> SIP 用户 3 访问应该是拒绝

4

1 回答 1

1

您必须保持用户与其可以拨打的内容之间的关系。一种选择是在数据库中创建自己的表并使用 sqlops 来检查它。

假设表(名为 dialrules)将具有 src 和 dst 列,以判断是否允许 src 调用 dst。

允许 alice 调用 bob、carol、david 的一些示例记录:

{src: "alice", dst: "bob"}
{src: "alice", dst: "carol"}
{src: "alice", dst: "david"}

然后,当有人(爱丽丝)打电话时,有这样的情况:

sql_query("ca", "select dst from dialrules where src='$fU' and dst='$rU'", "ra");
if($dbr(ra=>rows)<=0) {
  # not allowed to dial this dst
  send_reply("404", "Dst forbidden");
  exit;
}
于 2015-08-28T16:21:44.583 回答