Передача AVP в префикс основной функции

Я работаю над простой функцией для opensips 2.2.3, но не могу заставить ее работать.

По сути, извлеките идентификатор группы из модуля разрешений и добавьте префикс к 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)");

Основная функция префикса префикс R-URI с именем переменной ($avp(22)) вместо значения "3333#". Я пробовал различные версии синтаксиса, которые закомментированы, однако безрезультатно.

Если я уберу кавычки вокруг имени переменной: prefix($avp(22));

Opensips вообще не запускается, жалуется на: синтаксическую ошибку и неправильный аргумент, ожидается строка

Я пропустил что-то простое? или префиксная функция просто не предназначена для работы с переменными?

Заранее спасибо.


person Alex    schedule 01.08.2018    source источник


Ответы (1)


prefix() несколько устарел и не поддерживается, поэтому он не поддерживает переменные. Однако вы можете добавить свою группу к имени пользователя R-URI с помощью:

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