我使用调度程序将邀请发送给 asterisk,但我发现需要替换 from 和 to 标头的问题,因为 asterisk 知道 uacreg 内的其他用户。我像这样更改标题
remove_hf("From");
remove_hf_re("^From.*");
append_hf("$var(new_from)", "Call-ID");
remove_hf("To");
remove_hf_re("^To.*");
append_hf("$var(new_to)", "From");
这确实删除了从软件电话生成的“发件人”和“收件人”。并将其替换为正确的“从”和“到”。问题是当第一个调度员不工作时,它会自动选择下一个调度员。 包含早期调度程序 uri 的 From 和 To 未删除。首次和故障转移都会在转发邀请之前调用相同的代码来替换 header 和 uri。
Content-Length: 2095
From: <sip:[email protected]>
To: <sip:[email protected]>
From: <sip:[email protected]>
To: <sip:[email protected]>
我尝试将其删除并期望它消失。 uac_replace_ 会给我这样的东西,我什至不知道这是否有效
To: 12345678 12345678 <sip:[email protected]:[email protected]>
From: userbusera <sip:[email protected]:[email protected]>;tag=smrfmpicup
要为要发送的请求的每个分支使用不同的标头,则必须将标头更改操作放在 branch_route{} 块中。在 request_route{} 处理中的 t_relay() 之前,您必须装备一条分支路由,例如:
...
t_on_branch("HDROPS");
t_relay();
...
分支路由块定义如下:
branch_route[HDROPS] {
# header changing operations
...
}
故障转移时,在 failure_route{} 处理中,必须再次使用 t_on_branch("HDROPS"),然后才能再次中继。