如果接听电话,openSIPS会设置一个onreply路由

时间:2018-03-01 13:26:31

标签: sip voip opensips

我想知道是否可以在onreply_route中设置接听/接听电话的条件

类似这样的事情

onreply_route {
 if(call picked up) {
  xlog("ON AIR");
 }
}

1 个答案:

答案 0 :(得分:0)

有很多方法可以实现这一目标。对于您的情况,我会使用tm模块的t_check_status()函数:

onreply_route {
    if (t_check_status("2[0-9][0-9]")) {
        xlog("ON AIR");
    }
}

但是,请注意,如果您的SIP代理是无状态的(即,如果您根本不使用tm),这将无效!在这种情况下,我们需要以更低级别的方式访问信息,方法是使用$rs变量( SIP回复状态)直接从收到的消息中读取信息:

onreply_route {
    if ($rs == 200) { # or ($rs =~ "2[0-9][0-9]")
        xlog("ON AIR");
    }
}