在freeSwitch中,sip_from_user_stripped和sip_from_user的区别
时间: 2024-05-18 10:11:02 浏览: 245
在 FreeSWITCH 中,`sip_from_user` 和 `sip_from_user_stripped` 都是 SIP 协议中 From 头域中的用户名(user)信息,但是它们之间有一些区别。
`sip_from_user` 变量包含了 From 头域中的完整用户名(user)信息,包括了可能存在的特殊字符或转义字符,例如 `sip_from_user="Bob%20Smith%26lt%3Bsip%3Abob%40example.com%26gt%3B"`。
而 `sip_from_user_stripped` 变量则是对 `sip_from_user` 变量进行了解析和转义后得到的结果,去除了可能存在的特殊字符或转义字符,例如 `sip_from_user_stripped="Bob Smith<sip:bob@example.com>"`。
因此,如果需要在 FreeSWITCH 中使用 SIP 头域中的用户名信息进行条件判断或逻辑分支等操作,可以使用 `sip_from_user_stripped` 变量。如果需要使用原始的、未经解析或转义的用户名信息,可以使用 `sip_from_user` 变量。
相关问题
freeSwitch sip_from_user_stripped 用法
在 FreeSWITCH 中,sip_from_user_stripped是一个用于存储 SIP 协议中 From 头域中的用户名(user)信息的变量。这个变量通常用于自定义路由逻辑,例如根据用户ID选择路由方案。
sip_from_user_stripped 变量的值是通过对 SIP From 头域中的用户名(user)信息进行解析得到的。在执行路由逻辑时,可以使用此变量进行条件判断、逻辑分支等操作。
在 FreeSWITCH 中,sip_from_user_stripped 变量可以通过以下方式进行使用:
1.在 dialplan.xml 文件中使用:
```
<extension name="my-extension">
<condition field="destination_number" expression="^1234$">
<action application="set" data="sip_from_user_stripped=${sip_from_user:user}"/>
<action application="bridge" data="sofia/gateway/provider/${sip_from_user_stripped}"/>
</condition>
</extension>
```
2.在脚本中使用:
```
local sip_from_user_stripped = freeswitch.ChannelVariables:get("sip_from_user_stripped")
```
需要注意的是,sip_from_user_stripped 变量的值只在一次呼叫中保持不变,如果需要在不同的呼叫中使用,需要重新解析 From 头域中的用户名信息并更新变量的值。
freeswitch sofia sofia_test_pflag(profile, PFLAG_SHUTDOWN)
根据函数名和参数名的命名规则,这个函数调用应该是在FreeSWITCH中使用的。它的作用是设置SIP用户代理协议栈中某个特定SOFIA会话的标志位,用于通知SIP协议栈关闭该会话。其中,profile参数应该是一个指向包含SOFIA会话信息的数据结构的指针,PFLAG_SHUTDOWN是一个常量值,表示关闭标志位。这个函数的具体实现和作用需要查看代码上下文。
阅读全文