将(只是 SDP 中的文本)telephone-event/16000 更改为 8000 并再次返回
change (just text in SDP) telephone-event/16000 to 8000 and back again
我的 sip 合作伙伴有时确实在 SDP 中发送:
v=0
o=HuaweiSoftx3000 69494235717543 69494235717543 IN IP4 18.8.14.12
s=-
c=IN IP4 18.8.14.12
t=0 0
m=audio 39204 RTP/AVP 96 98 8 99 100 104 0 97
a=rtpmap:96 AMR-WB/16000
a=rtpmap:8 PCMA/8000
a=rtpmap:104 telephone-event/16000
(没有 telephone-event/16000),我们期望 telephone-event/8000 所以我们更改它(只是文本替换)
所以我们修复它 - 像这样
route[FIXSDP] {
if (has_body("application/sdp")) {
if(subst("/event\/16000/event\/8000/")) {
xlog("L_INFO", "SDP SILLTFIXDTMF [$fU->$tU]");
}
}
}
它大约占 sip 流量的 20%。
但我们希望(需要)将“200”条消息中返回此聚会的 8000 替换为看起来像 16000,并且仅在那些对话框中(其他有 8000 并且工作正常),有什么提示吗? (需要对此保持状态)。
你应该检查textops模块,它有很多重写功能。
对于向后你应该使用 on_reply 路线。您可以使用对话和 avpairs 标记您的通话。
您可以使用 Kamailio htable 模块。
modparam("htable", "htable", "telEvent=>size=1024;autoexpire=10800")
$sht(telEvent=>$ci::status) = 1;
当特殊数据包到达时,您可以将此信息添加到htable。然后发送200 OK包就可以使用了
我的 sip 合作伙伴有时确实在 SDP 中发送:
v=0
o=HuaweiSoftx3000 69494235717543 69494235717543 IN IP4 18.8.14.12
s=-
c=IN IP4 18.8.14.12
t=0 0
m=audio 39204 RTP/AVP 96 98 8 99 100 104 0 97
a=rtpmap:96 AMR-WB/16000
a=rtpmap:8 PCMA/8000
a=rtpmap:104 telephone-event/16000
(没有 telephone-event/16000),我们期望 telephone-event/8000 所以我们更改它(只是文本替换)
所以我们修复它 - 像这样
route[FIXSDP] {
if (has_body("application/sdp")) {
if(subst("/event\/16000/event\/8000/")) {
xlog("L_INFO", "SDP SILLTFIXDTMF [$fU->$tU]");
}
}
}
它大约占 sip 流量的 20%。
但我们希望(需要)将“200”条消息中返回此聚会的 8000 替换为看起来像 16000,并且仅在那些对话框中(其他有 8000 并且工作正常),有什么提示吗? (需要对此保持状态)。
你应该检查textops模块,它有很多重写功能。
对于向后你应该使用 on_reply 路线。您可以使用对话和 avpairs 标记您的通话。
您可以使用 Kamailio htable 模块。
modparam("htable", "htable", "telEvent=>size=1024;autoexpire=10800")
$sht(telEvent=>$ci::status) = 1;
当特殊数据包到达时,您可以将此信息添加到htable。然后发送200 OK包就可以使用了