opensips核心变量(三)

OpenSIPS提供了在路由脚本中使用的多种类型的变量。变量类型之间的差异来自
(1)变量的可见性(当变量可见时),
(2)变量附加到什么(变量驻留的位置),
(3)变量的读写状态(某些类型的变量是只读的)以及(4)多个值(对于同一个变量)的处理方式。

OpenSIPS变量在脚本中很容易识别,因为它们的所有名称(或符号)都以$符号开头。

OpenSIps有下面几种变量类型Types of variables:

脚本变量 —— 顾名思义,这些变量严格绑定到脚本路由。这些变量仅在路由块中可见-它们与消息或事务无关,但与进程相关(脚本变量将由同一OpenSIPS进程执行的脚本路由继承)。

脚本变量是读写的,它们可以有整数值或字符串值。脚本变量只能包含一个值。新的赋值(或写操作)将覆盖现有值。

AVP——属性值对-AVP是可以创建的动态变量(如名称)-AVP链接到单个消息或事务(如果使用有状态处理)。

AVP - Attribute Value Pair - the AVPs are dynamic variables (as name) that can be created - the AVPS are linked to a singular message or transaction (if stateful processing is used). A message or a transaction will initially (when received or created) have an empty list of AVPS attached to it. During the routing script, the script directly or functions called from script may create new AVPS that will automatically attached to the message/transaction. The AVPS will be visible in all routes where any message (reply or request) of the transaction will be processed - branch_route , failure_route, onreply_route (for this last route you need to enable the TM parameter onreply_avp_mode).
AVPs are read write and an existing AVP can be even deleted (removed). An AVP may contain multiple values - a new assignment (or write operation) will add a new value to the AVP; the values are kept in “last added first to be used” order (stack).
A special index append is defined to allow you to add a new value at the end of the list (at the bottom of the stack) - $(avp(name)[append]) = “last value”;

AVP - 属性值对 - AVP 是可以创建的动态变量(如名称) - AVPS 链接到单个消息或事务(如果使用状态处理)。消息或交易最初(在接收或创建时)会附加一个空的 AVPS 列表。在路由脚本期间,直接的脚本或从脚本调用的函数可能会创建新的 AVPS,该新的 AVPS 将自动附加到消息/交易。 AVPS 将在将处理事务的任何消息(回复或请求)的所有路由中可见 -branch_route、failure_route、onreply_route(对于最后一个路由,您需要启用 TM 参数 onreply_avp_mode)。

AVP 是可读写的,甚至可以删除(移除)现有的 AVP。一个AVP可能包含多个值——一个新的赋值(或写操作)将会给AVP添加一个新的值;这些值按“最后添加最先使用”的顺序保存(堆栈)。

定义了一个特殊的索引附加,以允许您在列表末尾(堆栈底部)添加新值 - $(avp(name)[append]) = “last value”;

消息或事务最初(在接收或创建时)会附带一个空的avp列表。在路由脚本期间,脚本直接或从脚本调用的函数可以创建新的avp,该avp将自动附加到消息/事务。avp将在处理事务的任何消息(回复或请求)的所有路由中可见-分支路由、失败路由、onreply路由(对于最后一个路由,您需要启用TM参数onreply\u avp\u mode)。

AVP是读写的,甚至可以删除(删除)现有的AVP。一个AVP可能包含多个值-一个新的赋值(或写操作)将向AVP添加一个新值;这些值保持在“最后添加的第一个要使用的”顺序(堆栈)。

定义了一个特殊的索引append,允许您在列表末尾(堆栈底部)添加一个新值-$(avp(name)[append])=“last value”;

伪变量——伪变量(或PV)提供对已处理SIP消息(标头、RURI、传输级别信息、a.s.o)或OpenSIPS内部(时间值、进程PID、函数返回代码)中信息的访问。根据它们提供的信息,pv要么绑定到消息,要么不绑定(全局)。大多数pv是只读的,只有几个允许写操作。一个PV可以返回多个值或者只返回一个值,这取决于引用的信息(如果可以有多个值或者没有)。

标准PV是只读的,并且返回单个值(如果没有其他文档记录)。

转义序列——用于格式化字符串的转义序列;它们实际上不是变量,而是格式化程序。

opensips核心变量很多,在编写opensips.cfg文件中,你能看到使用了大量的核心变量,具体请看如下链接:

https://www.opensips.org/Documentation/Script-CoreVar-2-4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值