简体   繁体   English

kamailio隐私标题和取消

[英]kamailio Privacy header and CANCEL

I am dealing with a Private caller case where the Privacy header is only passed in the initial INVITE but not in the subsequent mid-dialog requests (eg CANCEL). 我正在处理一个私人来电案例,其中隐私标题仅在初始INVITE中传递,但不在随后的中间对话请求中传递(例如CANCEL)。

When the Privacy header is present, my downstream expects me to send them another header. 当Privacy头存在时,我的下游希望我向他们发送另一个头。

For the most part, I was able to deal with this by using dlg module to keep track of state within dialog so that the mid-dialog requests will know about the Privacy header's presence in initial INVITE. 在大多数情况下,我能够通过使用dlg模块来跟踪对话框中的状态来处理这个问题,以便中间对话框请求知道隐私标头在初始INVITE中的存在。

However, a problem i have is that just for the CANCEL request, I am unable to add any headers to the SIP request relayed to downstream. 但是,我遇到的问题是,仅针对CANCEL请求,我无法将任何标头添加到中继到下游的SIP请求。

I've read in other posts (dated years back) that an option would be to use stateless CANCELs downstream. 我已经读过其他帖子(多年前的日期),一个选项是在下游使用无状态CANCEL。 Another potential option would be to start a new transaction at my level. 另一个可能的选择是在我的级别开始新的交易。

I am wondering if there are other alterantives to this. 我想知道是否还有其他改变。 I would've recommended my downstream to use $avp but it seems like even though initial INVITE and the CANCEL are supposed to be in same transaction, the $avp value stored in initial INVITE is not accessible by the CANCEL. 我建议我的下游使用$ avp但似乎即使初始INVITE和CANCEL应该在同一个事务中,CANCEL也无法访问存储在初始INVITE中的$ avp值。

There are other tricks that can work. 还有其他技巧可行。 Such as using the Record-Route as a data store (that can be security issue) or asking downstream to use dlg module, which can be a big performance cost to the,. 比如使用Record-Route作为数据存储(可能是安全问题)或要求下游使用dlg模块,这可能是一个很大的性能成本。

I am wonder if any of you have solved this problem already. 我很惊讶你们中是否有人已经解决了这个问题。

Instead of dialog module , i prefer that using htable to store transaction until get ACK. 而不是对话模块,我更喜欢使用htable来存储事务,直到获得ACK。 It is faster than it . 它比它快。 After getting ACK , stored transaction can be removed. 获得ACK后,可以删除存储的事务。

In addition , You can look at TM module and TMX module that has features about Cancel. 此外,您可以查看具有取消功能的TM模块TMX模块

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM