Kamailio - получить первое вхождение значения параметра в строку - PullRequest
0 голосов
/ 28 января 2020

Мне нужно получить значение первого параметра tgrp в этой строке, используя Kamailio:

$var(x) = <sip:xxxxxxxxx;tgrp=0001000;trunk-context=xx.xx.xx.xx@xx.xx.xx.xx:5060;transport=UDP;user=phone;tgrp=237>

Я пытаюсь $var(y) = $(var(x){param.value,tgrp});, но он получает последнее значение tgrp, равное 237>.

Принимая во внимание, что первый tgrp не всегда находится во втором индексе, в строку можно добавить некоторые другие параметры.

Как получить значение первого появления параметра tgrp?

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

Попробуйте решение на основе xavp_params_explode ():

Что-то вроде:

xavp_params_explode("$(var(x){s.unbracket})", "x");
xdbg("$xavp(x=>tgrp[0])"); # <- print the value of first parameter tgrp

Индекс [0] можно опустить, без возврата первого значения, но если вам нужно второе значение параметра, используйте [1] в качестве индекса.

0 голосов
/ 10 марта 2020

строковые операции param.value, предназначенные для работы с уникальными именами параметров.

Вы можете l oop по всем параметрам, используя для l oop и проверяя {param .name, индекс}

...