[OpenSIPS-Devel] Error in script

Liviu Chircu liviu at opensips.org
Fri Apr 19 04:49:34 EDT 2019


Indeed, this is caused by the preprocessor extension, which adds some 
extra tokens which are not consumed because they happen to be enclosed 
within " ", so the STRING lexer rule takes precedence and includes 
them.  In short, the acc module actually receives this input:

modparam("acc", "extra_fields", "
__OSSPP_LINE__ 13
         log:
__OSSPP_LINE__ 14
                 username -> User-Name;
__OSSPP_LINE__ 15
                 asserted_identity -> Sip-RPid;
__OSSPP_LINE__ 16
                 billing_party -> Billing-Party")

Working on a fix -- currently, the script does not work with multi-line 
strings.

Liviu Chircu
OpenSIPS Developer
http://www.opensips-solutions.com

On 19.04.2019 11:27, Dan Pascu wrote:
> On 19 Apr 2019, at 8:38, Liviu Chircu wrote:
>
>> Can you try to skip the backslashes?  Syntactically, it should work without them.
> Removing them changes nothing. What fixes it is if I put everything on a single line (remove both backslashes and newlines between items). It used to work with backslashes and multiple lines in 2.4.
>
>>   If that doesn't fix it, please paste your exact global acc settings (loadmodule + modparams) or the whole o.cfg file (if possible), so I can try to reproduce.
> Here is a minimalistic configuration that triggers the problem (you'll have to adjust mpath):
>
> -----------------------------
>
> mpath = "/home/dan/work/opensips/test-3.0/opensips/modules"
> loadmodule "tm.so"
> loadmodule "acc.so"
>
> modparam("acc", "extra_fields", "aaa:
>                                   username -> User-Name;
>                                   asserted_identity -> Sip-RPid;
>                                   billing_party -> Billing-Party")
>
> modparam("acc", "extra_fields", "log:
>                                   username -> User-Name;
>                                   asserted_identity -> Sip-RPid;
>                                   billing_party -> Billing-Party")
>
> route {
>      $acc_extra(username) := $Au;
>      $acc_extra(asserted_identity) := $avp(asserted_identity);
>      $acc_extra(billing_party) := $avp(billing_party);
> }
>
> -----------------------------------
>
>> Liviu Chircu
>> OpenSIPS Developer
>> http://www.opensips-solutions.com
>>
>> On 18.04.2019 20:07, Dan Pascu wrote:
>>> I get this error reported in script:
>>>
>>> Apr 18 20:02:02 [21404] ERROR:acc:pv_parse_acc_extra_name: tag <username> not declared in modparam section!
>>> Apr 18 20:02:02 [21404] ERROR:core:pv_parse_spec: pvar "acc_extra" has an invalid name param [username]
>>> Apr 18 20:02:02 [21404] ERROR:core:pv_parse_spec: wrong char [)/41] in [$acc_extra(username)] at [19 (5)]
>>> Apr 18 20:02:02 [21404] Traceback (last included file at the bottom):
>>> Apr 18 20:02:02 [21404]  0. o.cfg
>>> Apr 18 20:02:02 [21404] CRITICAL:core:yyerror: parse error in o.cfg:2288:5-25: unknown script variable
>>> Apr 18 20:02:02 [21404] #
>>> Apr 18 20:02:02 [21404] route[SETUP_ACCOUNTING] {
>>> Apr 18 20:02:02 [21404]     $acc_extra(username) := $Au;
>>> Apr 18 20:02:02 [21404]     ^~~~~~~~~~~~~~~~~~~~~
>>> Apr 18 20:02:02 [21404]     $acc_extra(asserted_identity) := $avp(asserted_identity);
>>> Apr 18 20:02:02 [21404]     $acc_extra(billing_party) := $avp(billing_party);
>>> Apr 18 20:02:02 [21404] ERROR:acc:pv_parse_acc_extra_name: tag <asserted_identity> not declared in modparam section!
>>> Apr 18 20:02:02 [21404] ERROR:core:pv_parse_spec: pvar "acc_extra" has an invalid name param [asserted_identity]
>>> Apr 18 20:02:02 [21404] ERROR:core:pv_parse_spec: wrong char [)/41] in [$acc_extra(asserted_identity)] at [28 (5)]
>>> Apr 18 20:02:02 [21404] CRITICAL:core:yyerror: parse error in o.cfg:2289:5-34: unknown script variable
>>> Apr 18 20:02:02 [21404] ERROR:acc:pv_parse_acc_extra_name: tag <billing_party> not declared in modparam section!
>>> Apr 18 20:02:02 [21404] ERROR:core:pv_parse_spec: pvar "acc_extra" has an invalid name param [billing_party]
>>> Apr 18 20:02:02 [21404] ERROR:core:pv_parse_spec: wrong char [)/41] in [$acc_extra(billing_party)] at [24 (5)]
>>>
>>>
>>> However username is declared in extra fields (this worked fine in 2.4):
>>>
>>> modparam("acc", "extra_fields", "aaa: \
>>>                                   username -> User-Name; \
>>>                                   asserted_identity -> Sip-RPid; \
>>>                                   billing_party -> Billing-Party; \
>>>                                   ...")
>>>
>>> --
>>> Dan
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Devel mailing list
>>> Devel at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/devel
>> _______________________________________________
>> Devel mailing list
>> Devel at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/devel
>
> --
> Dan
>
>
>
>
>
> _______________________________________________
> Devel mailing list
> Devel at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/devel



More information about the Devel mailing list