OpenSIPS3.2系列之七(事务标志和分支标志)

这篇文章探讨了如何在通信模块或脚本中设置和检查NAT标志。通过setflag和setbflag函数设置事务和分支标志,isflagset和isbflagset用于检查这些标志的状态。在处理如REGISTER请求时,保存和加载分支标志以影响路由决策。当检测到NAT时,会标记当前分支,这在后续处理中具有重要意义。深入理解和实践这些概念对于优化通信流程至关重要。
摘要由CSDN通过智能技术生成

setflag("NAT")  设置事务标志

setbflag("NAT") 设置分支标志

isflagset("NAT") 检查事务标志

isbflagset("NAT") 检查分支标志

有的标志是通知模块的(模块有flag参数),有的是脚本自己用

下面是官方给的一段例子,建议仔细揣摩:

 modparam("usrloc", "nat_bflag", "NAT_BFLAG")


 route {
   ..........
   if (nat detected)
      setbflag(NAT_BFLAG); # set branch flag "NAT_BFLAG" for the branch 0

   ..........
   if (is_method("REGISTER")) {
      # the branch flags (including "NAT_BFLAG") will be saved into location
      save("location");
      exit;
   } else {
      # lookup will load the branch flag from location
      if (!lookup("location")) {
         sl_send_reply("404","Not Found");
         exit;
      }
      t_on_branch("1")
      t_relay();
   }
 }

 branch_route[1] {
   xlog("-------branch=$T_branch_idx, branch flags=$bf\n");
   if (isbflagset(NAT_BFLAG)) {
      #current branch is marked as natted
      .........
   }
 }
 

确实,这些东西最开始不容易懂,需要多琢磨,说不定哪天就一通百通了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值