配置Kamailio以允许sip用户向除特定用户之外的任何人发送消息

时间:2015-08-12 13:24:29

标签: sip sip-server kamailio

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

所以场景是:

SIP用户1 --------------->仅限SIP用户2 而如果 SIP用户1 --------------->应拒绝SIP用户3访问

1 个答案:

答案 0 :(得分: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;
}