kamailio:如何从 SIP INVITE Header 中获取值
kamailio: how to get a value from SIP INVITE Header
请帮助我从 SIP INVITE header 获取 a 值到达 kamailio,如 INVITE sip:+341930203454@sub.domain.com;myid=+34@sub.domain.com SIP/2.0
我想将 myid 值 +34 保存到一个变量中,没有域名。
$var(uri) = $sel(ruri);
xavp_params_explode("$(var(uri){s.unbracket})", "uri");
xlog("L_INFO", "$var(uri) Received converted to $xavp(uri=>myid[0])\n");
我在上面尝试过,它打印了 +34@sub.domain.com
但我只想将 +34
保存到一个变量中以进一步检查数据库中的 prefix based routing
。
能否请您帮助如何获取它或如果有任何alternate/single行方法来获取此值,请帮助。
提前致谢。
我认为这样的方法可行:
$var(uri) = $sel(ruri);
$var(myid-param) = $(var(uri){param.value,myid}); # this should return +34@sub.domain.com
$var(sip-myid-param) = "sip:" + $var(myid-param); # this should return sip:+34@sub.domain.com
$var(user-part) = $(var(sip-myid-param){uri.user}); # this should return +34
以上所有字符串操作都可以放在一行中,我用了多行只是为了简单说明。
在一行中应该是这样的,但是请不要引用我,但我希望你能得到一个想法
$var(user-part) = $(var("sip:" + $var($(var(uri){param.value,myid}))){uri.user});
单行语句变体可以是:
$var(result) = $(ru{uri.param,myid}{s.select,0,@});
其中:
- $ru - 是请求URI(请求第一行的sip地址)
- {uri.param,myid} - 是一个返回参数值的转换(myid 在这种情况下)在一个 URI
- {s.select,0,@} - 是一种转换,通过使用定界符 @[= 拆分字符串来返回第一个标记24=]
请帮助我从 SIP INVITE header 获取 a 值到达 kamailio,如 INVITE sip:+341930203454@sub.domain.com;myid=+34@sub.domain.com SIP/2.0
我想将 myid 值 +34 保存到一个变量中,没有域名。
$var(uri) = $sel(ruri);
xavp_params_explode("$(var(uri){s.unbracket})", "uri");
xlog("L_INFO", "$var(uri) Received converted to $xavp(uri=>myid[0])\n");
我在上面尝试过,它打印了 +34@sub.domain.com
但我只想将 +34
保存到一个变量中以进一步检查数据库中的 prefix based routing
。
能否请您帮助如何获取它或如果有任何alternate/single行方法来获取此值,请帮助。
提前致谢。
我认为这样的方法可行:
$var(uri) = $sel(ruri);
$var(myid-param) = $(var(uri){param.value,myid}); # this should return +34@sub.domain.com
$var(sip-myid-param) = "sip:" + $var(myid-param); # this should return sip:+34@sub.domain.com
$var(user-part) = $(var(sip-myid-param){uri.user}); # this should return +34
以上所有字符串操作都可以放在一行中,我用了多行只是为了简单说明。
在一行中应该是这样的,但是请不要引用我,但我希望你能得到一个想法
$var(user-part) = $(var("sip:" + $var($(var(uri){param.value,myid}))){uri.user});
单行语句变体可以是:
$var(result) = $(ru{uri.param,myid}{s.select,0,@});
其中:
- $ru - 是请求URI(请求第一行的sip地址)
- {uri.param,myid} - 是一个返回参数值的转换(myid 在这种情况下)在一个 URI
- {s.select,0,@} - 是一种转换,通过使用定界符 @[= 拆分字符串来返回第一个标记24=]