$var
переменные являются локальными для процесса, что означает, что вы не можете поделиться ими с другими работниками SIP, даже если бы захотели!На самом деле, они настолько оптимизированы, что их начальное значение часто будет таким же, как и тот же процесс, оставшийся после предыдущей обработки SIP-сообщения (совет: вы можете доказать это, запустив opensips с children = 1
и сделав два вызова).
С другой стороны, такие переменные, как $avp
, совместно используются процессами, но не "опасным" образом, так что вам придется беспокоиться о двух параллельных обработках повторной передачи INVITE, каждая из которых перезаписывает $avp
другой, и т. Д.Нет!Об этом позаботятся под капотом.«Совместное использование» означает только то, что, например, во время ответа «200 OK», обработанного процессом, отличным от того, который передал начальное сообщение «INVITE», вы все равно сможете читать и записывать в тот же $avp
, который вы установили во время запроса.обработка.
Наконец, ваш код кажется правильным, но его можно значительно упростить:
if ($rU =~ "^+")
strip(1);