将 AVP 传递给前缀核心功能

Passing AVP to prefix core function

我正在处理一个看似简单的 opensips 2.2.3 函数,但似乎无法使其正常工作。

本质上,从权限模块中提取groupID,并在出口侧为R-URI 添加前缀。

https://www.opensips.org/Documentation/Script-CoreFunctions-2-2#toc26

http://www.opensips.org/html/docs/modules/2.2.x/permissions.html#idp5689232

配置路由如下所示:

    route[relay] {

    if ( get_source_group("$avp(group)") ) {
            # do something with $avp(group)
            xlog("group is $avp(group)\n");

    };

    #Add the string parameter in front of username in R-URI.
    #prefix("$avp(group)");
    #prefix("$avp(group){s.substr,0,0}");

    $avp(22) = "3333#";
    prefix("$avp(22)");

Prefix 核心函数为 R-URI 添加前缀变量名称 ($avp(22)) 而不是值“3333#”。 我尝试了各种被注释掉的语法版本,但是没有用..

如果我删除变量名称周围的引号: 前缀($avp(22));

Opensips 根本不启动,抱怨: 语法错误和参数错误,应为字符串

我是不是漏掉了一些简单的东西? 要么 前缀函数根本就不是为变量而设计的?

提前谢谢你。

prefix() 有点旧且无人维护,因此它不支持变量。但是,您可以将您的组添加到 R-URI 用户名前:

$rU = $avp(group) + $rU;
xlog("My new R-URI is $ru.  My new R-URI username is $rU\n");