<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        font-size:10.5pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
 /* Page Definitions */
 @page Section1
        {size:595.3pt 841.9pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;
        layout-grid:15.6pt;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=ZH-CN link=blue vlink=purple style='text-justify-trim:punctuation'>

<div class=Section1 style='layout-grid:15.6pt'>

<p class=MsoNormal><font size=1 face=Arial><span lang=EN-US style='font-size:
9.0pt;font-family:Arial'>Hi,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=1 face=Arial><span lang=EN-US style='font-size:
9.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=1 face=Arial><span lang=EN-US style='font-size:
9.0pt;font-family:Arial'>We have problem with 0.8.12 release in cvs –r rel_0_8_12
sip_router,&nbsp; we are unable to see contact online status. &nbsp;&nbsp;From debug
mode,&nbsp; we see “lookup() ‘xxxxx’ not found in usrloc”&nbsp; <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=1 face=Arial><span lang=EN-US style='font-size:
9.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=1 face=Arial><span lang=EN-US style='font-size:
9.0pt;font-family:Arial'>Here is our configuration:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=1 face=Arial><span lang=EN-US style='font-size:
9.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>route {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!mf_process_maxfwd_header(&quot;10&quot;)) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
log(&quot;LOG: Too many hops\n&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
sl_send_reply(&quot;483&quot;, &quot;Alas Too Many Hops&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;if (msg:len &gt;= max_len) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
sl_send_reply(&quot;513&quot;, &quot;Message too large&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};&nbsp;&nbsp; <o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-indent:30.0pt;
text-autospace:none'><font size=2 face=宋体><span lang=EN-US style='font-size:
10.0pt;font-family:宋体'>&nbsp; if (nat_uac_test(&quot;3&quot;)) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# Allow RR-ed requests, as these may indicate that<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# a NAT-enabled proxy takes care of it; unless it is<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# a REGISTER<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (method == &quot;REGISTER&quot; || ! search(&quot;^Record-Route:&quot;)) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
log(&quot;LOG: Someone trying to register from private IP, rewriting\n&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# This will work only for user agents that support symmetric<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# communication. We
tested quite many of them and majority is<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# smart enough to be symmetric. In some phones it takes a configuration<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# option. With Cisco 7960, it is called NAT_Enable=Yes, with kphone it is<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# called &quot;symmetric media&quot; and &quot;symmetric signalling&quot;.<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
fix_nated_contact(); # Rewrite contact with source IP of signalling<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (method == &quot;INVITE&quot;) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
fix_nated_sdp(&quot;1&quot;); # Add direction=active to SDP<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
force_rport(); # Add rport parameter to topmost Via<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
setflag(6);&nbsp;&nbsp;&nbsp; # Mark as NATed<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
append_to_reply(&quot;P-NATed-Caller: Yes\r\n&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (loose_route()) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
setflag(1);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
t_relay();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (method == &quot;REGISTER&quot;) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
/*<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!allow_register(&quot;register.allow&quot;, &quot;register.deny&quot;)) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
log(1, &quot;LOG: alert: Forbidden IP in Contact\n&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
sl_send_reply(&quot;403&quot;, &quot;Forbidden&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
*/<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# prohibit attempts to grab someone else's To address<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# using&nbsp; valid credentials;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!www_authorize(&quot;xxxxx.com&quot;, &quot;subscriber&quot;)) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# challenge if none or invalid credentials<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;www_challenge(&quot;xxxxx.com&quot;,
&quot;0&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!save(&quot;location&quot;)) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
sl_reply_error();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
m_dump();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
lookup(&quot;aliases&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# Remove leading + if it is a number begining with +<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (uri =~ &quot;^[a-zA-Z]+:\+[0-9]+@&quot;) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
strip(1);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
prefix(&quot;00&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!does_uri_exist()) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# Try numeric destinations through the gateway<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (uri =~ &quot;^[a-zA-Z]+:[0-9]+@&quot;) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
route(4);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
} else {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
sl_send_reply(&quot;604&quot;, &quot;Does Not Exist Anywhere&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!lookup(&quot;location&quot;)) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# handle user which was not found<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
route(3);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
append_hf(&quot;P-hint: usrloc applied\r\n&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
route(1);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>}<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>route[1]
{<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;
if (uri=~&quot;[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)&quot;
&amp;&amp; !search(&quot;^Route:&quot;)) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
sl_send_reply(&quot;479&quot;, &quot;We don't forward to private IP
addresses&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;
if (isflagset(6)) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!is_present_hf(&quot;P-RTP-Proxy&quot;)) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
force_rtp_proxy();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
append_hf(&quot;P-RTP-Proxy: YES\r\n&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
append_hf(&quot;P-NATed-Callee: Yes\r\n&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;
# nat processing of replies; apply to all transactions (for example,<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;
# re-INVITEs from public to private UA are hard to identify as<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;
# natted at the moment of request processing); look at replies<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;
t_on_reply(&quot;1&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;
if (!t_relay()) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sl_reply_error();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>}<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>onreply_route[1]
{<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# natted transaction ?<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (isflagset(6) &amp;&amp; status =~ &quot;(183)|2[0-9][0-9]&quot;) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
fix_nated_contact();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
force_rtp_proxy();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# otherwise, is it a transaction behind a NAT and we did not<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# know at time of request processing? (RFC1918 contacts)<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
} else if (nat_uac_test(&quot;1&quot;)) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
fix_nated_contact();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# keep Cisco gatweay sending keep-alives<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (isflagset(7) &amp;&amp; status=~&quot;2[0-9][0-9]&quot;) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
remove_hf(&quot;Session-Expires&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
append_hf(&quot;Session-Expires: 60;refresher=UAC\r\n&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
fix_nated_sdp(&quot;1&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>}<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>route[3]
{<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# message store<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;if (method == &quot;MESSAGE&quot;) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!t_newtran()) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
sl_reply_error();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (m_store(&quot;0&quot;)) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
t_reply(&quot;202&quot;, &quot;Accepted for Later Delivery&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
t_reply(&quot;503&quot;, &quot;Service Unavailable&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# non-Voip -- just send &quot;off-line&quot;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!(method==&quot;INVITE&quot; || method == &quot;ACK&quot; || method ==
&quot;CANCEL&quot;)) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
sl_send_reply(&quot;404&quot;, &quot;Not Found&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (t_newtran()) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (method == &quot;ACK&quot;) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
log(1, &quot;CAUTION: strange thing: ACK passed t_newtran\n&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
t_reply(&quot;404&quot;, &quot;Not Found&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# we account missed incoming calls; previous statteful processing<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# guarantees that retransmissions are not accounted<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (method == &quot;INVITE&quot;) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
acc_log_request(&quot;404 missed call\n&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
acc_db_request(&quot;404 missed call&quot;, &quot;missed_calls&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>route[4]
{<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# discard non-PSTN methods<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!(method == &quot;INVITE&quot; || method == &quot;ACK&quot; || method ==
&quot;CANCEL&quot; || method == &quot;OPTIONS&quot; || method ==
&quot;BYE&quot;)) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sl_send_reply(&quot;500&quot;,
&quot;only VoIP methods accepted for GW&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# continue with requests to PSTN gateway ...<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# no authentication needed if the destination is on our free-pstn<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# list or if the caller is the digest-less gateway<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
#<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# apply ACLs only to INVITEs -- we don't need to protect other<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# requests, as they don't imply charges; also it could cause troubles<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# when a call comes in via PSTN and goes to a party that can't<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# authenticate (voicemail, other domain) -- BYEs would fail then<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (method == &quot;INVITE&quot; || method==&quot;ACK&quot; ||
method==&quot;CANCEL&quot; || method==&quot;BYE&quot;) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# does the authenticated user have a permission for local<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# calls (destinations beginning with a single zero)?<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# (i.e., is he in the &quot;local&quot; group?)<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (uri=~&quot;sip:0[1-9][0-9]+@.*&quot;) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!is_user_in(&quot;from&quot;, &quot;all&quot;) &amp;&amp;
!is_user_in(&quot;from&quot;,&quot;ld&quot;)) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
rewriteuser(&quot;unregistereduser&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
forward(211.147.234.158,5090);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
record_route();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
setflag(1);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
route(5);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# the same for long-distance (destinations begin with two zeros&quot;)<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
else if (uri=~&quot;sip:00[1-9][0-9]+@.*&quot;) {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!is_user_in(&quot;from&quot;, &quot;all&quot;) &amp;&amp; !is_user_in(&quot;from&quot;,&quot;int&quot;))
{<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
rewriteuser(&quot;unregistereduser&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
forward(123.123.123.122,5090);&nbsp; #announcement server<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></font><font size=2 face=宋体><span style='font-size:10.0pt;font-family:
宋体'>};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
record_route();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
setflag(1);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
route(10);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# everything else (e.g., interplanetary calls) is denied<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></font><font size=2 face=宋体><span style='font-size:10.0pt;font-family:
宋体'>} else {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
rewriteuser(&quot;wrongnumber&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;forward(123.123.123.122,5090);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
};<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}; # authorized PSTN<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'>}<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>route[5]
{<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
rewritehostport(&quot;123.123.123.125:5060&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
append_branch(); # Command needed for reroute to work<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
consume_credentials();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
append_hf(&quot;P-Hint: GATEWAY\r\n&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
t_on_failure(&quot;6&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
t_relay();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>}<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>failure_route[6]
{<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
rewritehostport(&quot;123.123.123.124:5060&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
append_branch();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
t_on_failure(&quot;7&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
t_relay();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'>}<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'>failure_route[7] {<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
rewritehostport(&quot;123.123.123.123:5060&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
append_branch();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
t_on_failure(&quot;8&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
t_relay();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>}<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>failure_route[8]
{<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
rewriteuser(&quot;networkbusy&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
rewritehostport(&quot;123.123.123.122:5090&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
append_branch();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span lang=EN-US style='font-size:10.0pt;font-family:宋体'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
t_relay();<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'>}<o:p></o:p></span></font></p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'><font
size=2 face=宋体><span style='font-size:10.0pt;font-family:宋体'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=1 face=Arial><span lang=EN-US style='font-size:
9.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>