在OpenSIPS配置脚本中,可以直接执行赋值、字符串操作,和算术运算。
赋值操作的语法类似C语言,通过等号(=)操作符完成。需要注意的是:并非所有变量都是可写的,有些是只读的。
$var(a) = 123;
$ru = "sip:user@domain";
对AVP的赋值,有一个特定的操作符:=(冒号+等号)。如赋值表达式右值为null,那么变量名所指向的AVP的所有值都将被删除。如果有值,那么新值将会覆盖AVP存储的现值。
$avp(val) := 123;
对字符串操作,加号+操作符可用于连接字符串:
$var(a) = "test";
$var(b) = "sip:" + $var(a) + "@" + $fd;
对数字类型,可以执行以下操作:
给个实例:
$var(a) = 4 + (7 & (~2));
为了保证表达式中的运算优先级,可以使用圆括号。
在条件判断表达式中,可以通过测试操作符[...]测试一个算术表达式:
if([$var(a) & 4])
log("var a has third bit set\n");
OpenSIPS 提供了类似编程的语句,比如if、switch、while。
逻辑表达式里,可用的操作符如下:
给个while循环的实例:
Here is an example of a while loop:
$var(i) = 0;
while($var(i) < 10) {
xlog("counter: $var(i)\n");
$var(i) = $var(i) + 1;
}
OpenSIPS提供了一系列的终止语句,用于控制脚本逻辑的退出。