本人就是这么理解的:
$ru - requst url,sip请求的第一行里面的地址
$du - destination url,一般用来ip寻址
$ru可读可写,可读就没什么好讨论的,如果修改了$ru会发生什么
下面举例说明:
- request_route {
- if (is_method("INVITE") && !has_totag()) {
- $ru = "sip:abc.com";
- $du = "sip:192.168.1.100:5080";
- t_relay();
- exit;
- }
- }
上面的路由很简单,INVITE请求会relay到192.168.1.100:5080,但是request的第一行可能变成这样了:
INVITE sip:1001@abc.com
是否真的有abc.com这样域名,其实不重要了
换句话说,如果同时设置$ru和$du,$ru负责修改sip包,$du等于是设置outbound proxy
当然还有其它的变化,比如路由脚本只修改$ru,不设置$du,或者只修改$du,等等,大家可以去试试。试试就试试,反正又不花钱
有的模块函数只修改$ru,而有的模块函数可能同时修改$ru和$du
比如lookup就可能同时修改$du和$ru(路由脚本处理sip ua注册时检查到了nat)