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

配置Kamailio以允许sip用户向特定用户以外的任何人发送消息,sip,sip-server,kamailio,Sip,Sip Server,Kamailio,我们有一个Kamailio SIP服务器,并通过身份验证运行。现在我们希望SIP用户说abc@localhost.com只能与特定的SIP用户通信,例如xyz@locahost.com而不是存储在数据库表中的所有其他SIP用户。我试图找到解决办法,但能找到办法。任何帮助都将不胜感激 所以情况是: SIP用户1------------------->仅限SIP用户2 如果 SIP User 1------------------->应拒绝SIP User 3访问您必须保持用户与它可以拨打的电话之间

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

所以情况是:

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

您必须保持用户与它可以拨打的电话之间的关系。一个选项是在数据库中创建自己的表,并使用sqlops进行检查

假设该表(名为dialrules)将有src和dst列,以说明是否允许src调用dst

允许alice给bob、carol、david打电话的一些示例记录:

{src: "alice", dst: "bob"}
{src: "alice", dst: "carol"}
{src: "alice", dst: "david"}
然后,当有人(alice)打电话时,出现如下情况:

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;
}
sql_查询(“ca”,“从拨号规则中选择dst,其中src='$fU'和dst='$rU'”,“ra”);

如果($dbr(ra=>rows)谢谢,我将尝试这种方法,并尽快发布我的反馈。