


























在U2BUA场景下,dialplan中进行bridge时,当bleg 在未返回有效信令(例如183)之前,通话被主动挂掉,此时mod_odbc_cdr模块是获取不到b leg invite sip头中的call-id字段的。
解决方案:
在dialplan配置项中主动指定 bleg的call-id,同时新增一个bleg channel变量leg_sip_call_id,保证bleg 的call-id和leg_sip_call_id一直,传给bleg。同时修改mod_odbc_cdr配置,修改call-id取值,从leg_sip_call_id字段中取值即可。
<!-- aleg中把sip-call-id 字段赋值给 leg_call_id,获取aleg的值--> <action application="set" data="leg_sip_call_id=${sip_call_id}"/> <!-- 生成bleg的sipheader call-id--> <action application="set" data="tempCallId=${uuid}@fs"/> <!-- bleg中把tempCallId 传递给bleg,主动指定bleg的sip_call_id 同时复制给bleg通道变量leg_sip_call_id,以便mod_odbc_cdr从该变量中取值--> <action application="bridge" data="{sip_h_Call-ID=${tempCallId},leg_sip_call_id=${tempCallId}}sofia/external/sipp_gw_0/sip:123123123@192.168.1.10:5069"/>
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。