<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7232.39">
<TITLE>Error in restarting SER after a successful first start and addition of a user using SERCTL tool</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Courier New">Hi,</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">I tried to turn on authetication in SER. I was able to add a new user to the subscriber table using serctl utility, but when I restarted the server, after adding the user, I am getting the following error:</FONT></P>

<P><FONT SIZE=2 FACE="Courier New">==================================================================================================</FONT>

<BR><FONT SIZE=2 FACE="Courier New">SERVER LOG AND THE SERVER WONT START</FONT>

<BR><FONT SIZE=2 FACE="Courier New">==================================================================================================</FONT>

<BR><FONT SIZE=2 FACE="Courier New">0(0) get_connection(): Connection not found in the pool</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;0(0) new_connection(): Access denied for user: 'ser@localhost' (Using password: YES)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;0(0) db_init(): Could not create a connection</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;0(0) register_udomain(): Can not open database connection</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;0(0) domain_fixup(): Error while registering domain</FONT>

<BR><FONT SIZE=2 FACE="Courier New">ERROR: error ffffffff while trying to fix configuration</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;0(0) DEBUG: tm_shutdown : start</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;0(0) DEBUG: unlink_timer_lists : emptying DELETE list</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;0(0) DEBUG: tm_shutdown : emptying hash table</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;0(0) DEBUG: tm_shutdown : releasing timers</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;0(0) DEBUG: tm_shutdown : removing semaphores</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;0(0) DEBUG: tm_shutdown : destroying tmcb lists</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;0(0) DEBUG: tm_shutdown : done</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;0(5165) shm_mem_destroy</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;0(5165) destroying the shared memory lock</FONT>
</P>
<BR>
<BR>
<BR>

<P><FONT SIZE=2 FACE="Courier New">when I connect to the database directly using mysql, I can connect without any hassle. Now, I am not sure, whether it is the domain_fixup() which is causing problems or the error where it cannot connect to the database. But SER did start the first time I tried, and I was able to add a user. Can someone point me out, what is going wrong and needs to be fixed?</FONT></P>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>

<P><FONT SIZE=2 FACE="Courier New">==================================================================================================</FONT>

<BR><FONT SIZE=2 FACE="Courier New">ADDED A USER BEFORE</FONT>

<BR><FONT SIZE=2 FACE="Courier New">==================================================================================================</FONT>

<BR><FONT SIZE=2 FACE="Courier New">[root@sip-ex-rtr root]# serctl add root root root@ser.com</FONT>

<BR><FONT SIZE=2 FACE="Courier New">MySql password:</FONT>

<BR><FONT SIZE=2 FACE="Courier New">ERROR 1045: Access denied for user: 'ser@localhost' (Using password: YES)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">introducing a new user to the database failed</FONT>

<BR><FONT SIZE=2 FACE="Courier New">ERROR 1045: Access denied for user: 'ser@localhost' (Using password: YES)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">introducing a new user into uri table failed</FONT>

<BR><FONT SIZE=2 FACE="Courier New">[root@sip-ex-rtr root]# serctl add root root root@ser.com</FONT>

<BR><FONT SIZE=2 FACE="Courier New">MySql password:</FONT>

<BR><FONT SIZE=2 FACE="Courier New">new user added</FONT>

<BR><FONT SIZE=2 FACE="Courier New">new user into uri table added</FONT>

<BR><FONT SIZE=2 FACE="Courier New">[root@sip-ex-rtr root]# serctl add root root root@ser.com</FONT>

<BR><FONT SIZE=2 FACE="Courier New">MySql password:</FONT>

<BR><FONT SIZE=2 FACE="Courier New">user already exists</FONT>

<BR><FONT SIZE=2 FACE="Courier New">[root@sip-ex-rtr root]# serctl add root2 root2 root2@ser.com</FONT>

<BR><FONT SIZE=2 FACE="Courier New">MySql password:</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">[root@sip-ex-rtr root]# /usr/local/sbin/serctl: line 333: /tmp/ser_fifo: Interrupted system call</FONT>

<BR><FONT SIZE=2 FACE="Courier New">==================================================================================================</FONT>

<BR><FONT SIZE=2 FACE="Courier New">CONFIGURATION FILE</FONT>

<BR><FONT SIZE=2 FACE="Courier New">==================================================================================================</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#</FONT>

<BR><FONT SIZE=2 FACE="Courier New"># $Id: ser.cfg,v 1.24 2003/11/11 15:32:36 andrei Exp $</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#</FONT>

<BR><FONT SIZE=2 FACE="Courier New"># simple quick-start config script</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New"># ----------- global configuration parameters ------------------------</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">debug=10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # debug level (cmd line: -dddddddddd)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#fork=yes</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#log_stderror=no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # (cmd line: -E)</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New"># Uncomment these lines to enter debugging mode </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#fork=no</FONT>

<BR><FONT SIZE=2 FACE="Courier New">log_stderror=yes</FONT>
</P>
<BR>

<P><FONT SIZE=2 FACE="Courier New">check_via=no&nbsp;&nbsp;&nbsp; # (cmd. line: -v)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">dns=no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # (cmd. line: -r)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">rev_dns=no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # (cmd. line: -R)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">port=5060</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#children=4</FONT>

<BR><FONT SIZE=2 FACE="Courier New">fifo=&quot;/tmp/ser_fifo&quot;</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New"># ------------------ module loading ----------------------------------</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New"># Uncomment this if you want to use SQL database</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/mysql.so&quot;</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/sl.so&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/tm.so&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/rr.so&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/maxfwd.so&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/usrloc.so&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/registrar.so&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/textops.so&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/pa.so&quot;</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">/*loadmodule &quot;/usr/local/lib/ser/modules/sl.so&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/tm.so&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/rr.so&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/maxfwd.so&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/usrloc.so&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/registrar.so&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/textops.so&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">*/</FONT>
</P>
<BR>

<P><FONT SIZE=2 FACE="Courier New"># Uncomment this if you want digest authentication</FONT>

<BR><FONT SIZE=2 FACE="Courier New"># mysql.so must be loaded !</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/auth.so&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">loadmodule &quot;/usr/local/lib/ser/modules/auth_db.so&quot;</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New"># ----------------- setting module-specific parameters ---------------</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New"># -- usrloc params --</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">#modparam(&quot;usrloc&quot;, &quot;db_mode&quot;,&nbsp;&nbsp; 0)</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New"># Uncomment this if you want to use SQL database </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># for persistent storage and comment the previous line</FONT>

<BR><FONT SIZE=2 FACE="Courier New">modparam(&quot;usrloc&quot;, &quot;db_mode&quot;, 2)</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New"># -- auth params --</FONT>

<BR><FONT SIZE=2 FACE="Courier New"># Uncomment if you are using auth module</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#modparam(&quot;auth&quot;, &quot;db_url&quot;,&quot;sql://ser:ser@localhost/ser&quot;)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">modparam(&quot;auth_db&quot;, &quot;calculate_ha1&quot;, yes)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#</FONT>

<BR><FONT SIZE=2 FACE="Courier New"># If you set &quot;calculate_ha1&quot; parameter to yes (which true in this config), </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># uncomment also the following parameter)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#</FONT>

<BR><FONT SIZE=2 FACE="Courier New">modparam(&quot;auth_db&quot;, &quot;password_column&quot;, &quot;password&quot;)</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New"># -- rr params --</FONT>

<BR><FONT SIZE=2 FACE="Courier New"># add value to ;lr param to make some broken UAs happy</FONT>

<BR><FONT SIZE=2 FACE="Courier New">modparam(&quot;rr&quot;, &quot;enable_full_lr&quot;, 1)</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">#modparam(&quot;pa&quot;, &quot;new_tuple_on_publish&quot;, 1)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#modparam(&quot;pa&quot;, &quot;pa_domain&quot;, &quot;orka.dhs.org&quot;)</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New"># -------------------------&nbsp; request routing logic -------------------</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New"># main routing logic</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">route{</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># initial sanity checks -- messages with</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># max_forwards==0, or excessively long requests</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">if (!mf_process_maxfwd_header(&quot;10&quot;)) {</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">sl_send_reply(&quot;483&quot;,&quot;Too Many Hops&quot;);</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">break;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">};</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">if (msg:len &gt;=&nbsp; max_len ) {</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">sl_send_reply(&quot;513&quot;, &quot;Message too big&quot;);</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">break;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">};</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># we record-route all messages -- to make sure that</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># subsequent messages will go through our proxy; that's</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># particularly good if upstream and downstream entities</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># use different transport protocol</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">if (!method==&quot;REGISTER&quot;) record_route();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># subsequent messages withing a dialog should take the</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># path determined by record-routing</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">if (loose_route()) {</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># mark routing logic in request</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">append_hf(&quot;P-hint: rr-enforced\r\n&quot;); </FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">route(1);</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">break;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">};</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">if (!uri==myself) {</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># mark routing logic in request</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">append_hf(&quot;P-hint: outbound\r\n&quot;); </FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">route(1);</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">break;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">};</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># if the request is for other domain use UsrLoc</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># (in case, it does not work, use the following command</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># with proper names and addresses in it)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">if (uri==myself) {</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">if (method==&quot;REGISTER&quot;) {</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New"># Uncomment this if you want to use digest authentication</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">if (!www_authorize(&quot;ser.com&quot;, &quot;subscriber&quot;)) {</FONT>

<BR>&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; <FONT SIZE=2 FACE="Courier New">www_challenge(&quot;ser.com&quot;, &quot;0&quot;);</FONT>

<BR>&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; <FONT SIZE=2 FACE="Courier New">break;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">};</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">save(&quot;location&quot;);</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">break;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">};</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">if (method==&quot;SUBSCRIBE&quot;) {</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">if (t_newtran()) {</FONT>

<BR>&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; <FONT SIZE=2 FACE="Courier New">handle_subscription(&quot;registrar&quot;);</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">};</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">break;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">};</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

<BR><FONT SIZE=2 FACE="Courier New">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (method==&quot;PUBLISH&quot;) {</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (t_newtran()) {</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#&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; handle_publish(&quot;registrar&quot;);</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">lookup(&quot;aliases&quot;);</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">if (!uri==myself) {</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">append_hf(&quot;P-hint: outbound alias\r\n&quot;); </FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">route(1);</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">break;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">};</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># native SIP destinations are handled using our USRLOC DB</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">if (!lookup(&quot;location&quot;)) {</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">sl_send_reply(&quot;404&quot;, &quot;Not Found&quot;);</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">break;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">};</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">};</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">append_hf(&quot;P-hint: usrloc applied\r\n&quot;); </FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">route(1);</FONT>

<BR><FONT SIZE=2 FACE="Courier New">}</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">route[1] </FONT>

<BR><FONT SIZE=2 FACE="Courier New">{</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># send it out now; use stateful forwarding as it works reliably</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New"># even for UDP2TCP</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">if (!t_relay()) {</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">sl_reply_error();</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">};</FONT>

<BR><FONT SIZE=2 FACE="Courier New">}</FONT>
</P>


<BR>
_____________________________________________________________________<BR>
This e-mail has been scanned for viruses by MCI's Internet Managed Scanning Services - powered by MessageLabs. For further information visit http://www.mci.com<BR>
</BODY>
</HTML>