OpenSIPs利用flex bison对opensips.cfg路由脚本进行快速的词法分析,opensips.cfg是
OpenSIPs处理SIP服务的核心业务流程,其中t_relay接口是完成向指定目标域名地址或IP地址
列表进行SIP报文转发的核心,通过该函数可fork出与UAS完成一对多的UAC通信流程,该处理流程
可以完成缺省的一个IP设备列表携带多个号码标识的呼叫,因此无需对t_forward_nonack函数中的
处理流程进行更改,但是在不同的应用场景下,t_relay fork出的UAC可能归属不同的IP设备,此时
不允许同时呼叫两个设备,解决该问题比较简单的办法是通过增加t_forward_nonack中对i的branch
的过滤,通过变量i索引uac数组对应的UAC,此时需增加将i的过滤,即开发人员可跳过无需转发的i变量
for (i=t->first_branch; i<t->nr_of_outgoings; i++) {
省略代码
if (SEND_BUFFER( &t->uac[i].request)==0) { //只允许UAS-->UAC时再调用此行