如何解决kamailio:如何从SIP INVITE标头中获取价值
请帮助我从到达{@ {1}}的kamailio的SIP INVITE标头中获取一个值,我想将myid值+34保存到没有域名的变量中。
INVITE sip:+341930203454@sub.domain.com;myid=+34@sub.domain.com SIP/2.0
我在上面尝试过,它会打印 $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
。
请帮忙获取它,或者如果有其他替代方法/单行方法获取此值,请帮忙。
提前谢谢。
解决方法
单行语句变体可以是:
$var(result) = $(ru{uri.param,myid}{s.select,@});
位置:
- $ ru -是请求URI(请求第一行中的sip地址)
- {uri.param,myid} -是一种转换,它返回URI中的参数值(在这种情况下为 myid )
- {s.select,0,@} -是一种转换,通过使用定界符 @ 将其拆分,从而从字符串中返回第一个标记
我认为类似的方法会起作用:
$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});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。