<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1498" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hi to all,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I took the sources of SER version 0.9. and I 
compiled them. I installed this SER version but when I tried to start it up I 
got this error:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>textops - initializing<BR>&nbsp;0(0) fixing 
/usr/local/lib/ser/modules/maxfwd.so mf_process_maxfwd_header<BR>&nbsp;0(0) 
qm_free(0x80fbe60, 0x8130d58), called from maxfwd.c: 
fixup_maxfwd_header(122)<BR>&nbsp;0(0) qm_free: freeing frag. 0x8130d40 alloc'ed 
from cfg.lex: addstr(572)<BR>&nbsp;0(0) fixing /usr/local/lib/ser/modules/sl.so 
sl_send_reply<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x8130f90), called from sl.c: 
fixup_sl_send_reply(142)<BR>&nbsp;0(0) qm_free: freeing frag. 0x8130f78 alloc'ed 
from cfg.lex: addstr(572)<BR>&nbsp;0(0) fixing /usr/local/lib/ser/modules/sl.so 
sl_send_reply<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x81312d4), called from sl.c: 
fixup_sl_send_reply(142)<BR>&nbsp;0(0) qm_free: freeing frag. 0x81312bc alloc'ed 
from cfg.lex: addstr(572)<BR><STRONG>ERROR: error -478 while trying to fix 
configuration</STRONG><BR>&nbsp;0(0) qm_free(0x80fbe60, 0x813096c), called from 
sr_module.c: destroy_modules(357)<BR>&nbsp;0(0) qm_free: freeing frag. 0x8130954 
alloc'ed from sr_module.c: register_module(136)<BR>&nbsp;0(0) qm_free(0x80fbe60, 
0x813087c), called from sr_module.c: destroy_modules(357)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x8130864 alloc'ed from sr_module.c: 
register_module(136)<BR>&nbsp;0(0) qm_free(0x401ff000, 0x403b6400), called from 
ul_callback.c: destroy_ulcb_list(75)<BR>&nbsp;0(0) qm_free: freeing frag. 
0x403b63e8 alloc'ed from ul_callback.c: init_ulcb_list(50)<BR>&nbsp;0(0) 
qm_free(0x80fbe60, 0x813078c), called from sr_module.c: 
destroy_modules(357)<BR>&nbsp;0(0) qm_free: freeing frag. 0x8130774 alloc'ed 
from sr_module.c: register_module(136)<BR>&nbsp;0(0) qm_free(0x80fbe60, 
0x813069c), called from sr_module.c: destroy_modules(357)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x8130684 alloc'ed from sr_module.c: 
register_module(136)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x81305ac), called from 
sr_module.c: destroy_modules(357)<BR>&nbsp;0(0) qm_free: freeing frag. 0x8130594 
alloc'ed from sr_module.c: register_module(136)<BR>&nbsp;0(0) DEBUG: tm_shutdown 
: start<BR>&nbsp;0(0) DEBUG: unlink_timer_lists : emptying DELETE 
list<BR>&nbsp;0(0) DEBUG: tm_shutdown : emptying hash table<BR>&nbsp;0(0) 
qm_free(0x401ff000, 0x40236070), called from h_table.c: 
free_hash_table(309)<BR>&nbsp;0(0) qm_free: freeing frag. 0x40236058 alloc'ed 
from h_table.c: init_hash_table(323)<BR>&nbsp;0(0) DEBUG: tm_shutdown : 
releasing timers<BR>&nbsp;0(0) qm_free(0x401ff000, 0x403b60e0), called from 
timer.c: free_timer_table(551)<BR>&nbsp;0(0) qm_free: freeing frag. 0x403b60c8 
alloc'ed from timer.c: tm_init_timers(515)<BR>&nbsp;0(0) DEBUG: tm_shutdown : 
removing semaphores<BR>&nbsp;0(0) qm_free(0x401ff000, 0x403b60a0), called from 
lock.c: lock_cleanup(205)<BR>&nbsp;0(0) qm_free: freeing frag. 0x403b6088 
alloc'ed from lock.c: lock_initialize(99)<BR>&nbsp;0(0) DEBUG: tm_shutdown : 
destroying tmcb lists<BR>&nbsp;0(0) qm_free(0x401ff000, 0x403b63c8), called from 
t_hooks.c: destroy_tmcb_lists(83)<BR>&nbsp;0(0) qm_free: freeing frag. 
0x403b63b0 alloc'ed from t_hooks.c: init_tmcb_lists(58)<BR>&nbsp;0(0) 
qm_free(0x401ff000, 0x403b6368), called from t_stats.c: 
free_tm_stats(223)<BR>&nbsp;0(0) qm_free: freeing frag. 0x403b6350 alloc'ed from 
t_stats.c: init_tm_stats(185)<BR>&nbsp;0(0) qm_free(0x401ff000, 0x403b6308), 
called from t_stats.c: free_tm_stats(225)<BR>&nbsp;0(0) qm_free: freeing frag. 
0x403b62f0 alloc'ed from t_stats.c: init_tm_stats(178)<BR>&nbsp;0(0) 
qm_free(0x401ff000, 0x403b62a8), called from t_stats.c: 
free_tm_stats(227)<BR>&nbsp;0(0) qm_free: freeing frag. 0x403b6290 alloc'ed from 
t_stats.c: init_tm_stats(171)<BR>&nbsp;0(0) qm_free(0x401ff000, 0x403b6250), 
called from t_stats.c: free_tm_stats(228)<BR>&nbsp;0(0) qm_free: freeing frag. 
0x403b6238 alloc'ed from t_stats.c: init_tm_stats(163)<BR>&nbsp;0(0) DEBUG: 
tm_shutdown : done<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x81304bc), called from 
sr_module.c: destroy_modules(357)<BR>&nbsp;0(0) qm_free: freeing frag. 0x81304a4 
alloc'ed from sr_module.c: register_module(136)<BR>&nbsp;0(0) 
qm_free(0x401ff000, 0x40235bfc), called from sl_stats.c: 
sl_stats_destroy(164)<BR>&nbsp;0(0) qm_free: freeing frag. 0x40235be4 alloc'ed 
from sl_stats.c: init_sl_stats(179)<BR>&nbsp;0(0) qm_free(0x401ff000, 
0x4023603c), called from sl_funcs.c: sl_shutdown(99)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x40236024 alloc'ed from sl_funcs.c: sl_startup(82)<BR>&nbsp;0(0) 
qm_free(0x80fbe60, 0x81303cc), called from sr_module.c: 
destroy_modules(357)<BR>&nbsp;0(0) qm_free: freeing frag. 0x81303b4 alloc'ed 
from sr_module.c: register_module(136)<BR>&nbsp;0(0) qm_free(0x401ff000, 
0x40233474), called from tcp_main.c: destroy_tcp(1367)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x4023345c alloc'ed from tcp_main.c: init_tcp(1303)<BR>&nbsp;0(0) 
qm_free(0x401ff000, 0x402334dc), called from tcp_main.c: 
destroy_tcp(1371)<BR>&nbsp;0(0) qm_free: freeing frag. 0x402334c4 alloc'ed from 
tcp_main.c: init_tcp(1326)<BR>&nbsp;0(0) qm_free(0x401ff000, 0x4023450c), called 
from tcp_main.c: destroy_tcp(1375)<BR>&nbsp;0(0) qm_free: freeing frag. 
0x402344f4 alloc'ed from tcp_main.c: init_tcp(1338)<BR>&nbsp;0(0) 
qm_free(0x401ff000, 0x402334a8), called from tcp_main.c: 
destroy_tcp(1380)<BR>&nbsp;0(0) qm_free: freeing frag. 0x40233490 alloc'ed from 
tcp_main.c: init_tcp(1315)<BR>&nbsp;0(0) qm_free(0x401ff000, 0x40233440), called 
from timer.c: destroy_timer(80)<BR>&nbsp;0(0) qm_free: freeing frag. 0x40233428 
alloc'ed from timer.c: init_timer(57)<BR>&nbsp;0(0) qm_free(0x80fbe60, 
0x8134104), called from timer.c: destroy_timer(89)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x81340ec alloc'ed from timer.c: register_timer(104)<BR>&nbsp;0(0) 
qm_free(0x80fbe60, 0x8133fbc), called from timer.c: 
destroy_timer(89)<BR>&nbsp;0(0) qm_free: freeing frag. 0x8133fa4 alloc'ed from 
timer.c: register_timer(104)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x81344cc), called 
from unixsock_server.c: close_unixsock_server(652)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x81344b4 alloc'ed from unixsock_server.c: 
unixsock_register_cmd(673)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x813448c), called 
from unixsock_server.c: close_unixsock_server(652)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x8134474 alloc'ed from unixsock_server.c: 
unixsock_register_cmd(673)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x813444c), called 
from unixsock_server.c: close_unixsock_server(652)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x8134434 alloc'ed from unixsock_server.c: 
unixsock_register_cmd(673)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x813440c), called 
from unixsock_server.c: close_unixsock_server(652)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x81343f4 alloc'ed from unixsock_server.c: 
unixsock_register_cmd(673)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x81343cc), called 
from unixsock_server.c: close_unixsock_server(652)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x81343b4 alloc'ed from unixsock_server.c: 
unixsock_register_cmd(673)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x813438c), called 
from unixsock_server.c: close_unixsock_server(652)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x8134374 alloc'ed from unixsock_server.c: 
unixsock_register_cmd(673)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x813434c), called 
from unixsock_server.c: close_unixsock_server(652)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x8134334 alloc'ed from unixsock_server.c: 
unixsock_register_cmd(673)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x8134044), called 
from unixsock_server.c: close_unixsock_server(652)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x813402c alloc'ed from unixsock_server.c: 
unixsock_register_cmd(673)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x8133f7c), called 
from unixsock_server.c: close_unixsock_server(652)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x8133f64 alloc'ed from unixsock_server.c: 
unixsock_register_cmd(673)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x8133f3c), called 
from unixsock_server.c: close_unixsock_server(652)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x8133f24 alloc'ed from unixsock_server.c: 
unixsock_register_cmd(673)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x8133efc), called 
from unixsock_server.c: close_unixsock_server(652)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x8133ee4 alloc'ed from unixsock_server.c: 
unixsock_register_cmd(673)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x8133ebc), called 
from unixsock_server.c: close_unixsock_server(652)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x8133ea4 alloc'ed from unixsock_server.c: 
unixsock_register_cmd(673)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x8133d3c), called 
from unixsock_server.c: close_unixsock_server(652)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x8133d24 alloc'ed from unixsock_server.c: 
unixsock_register_cmd(673)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x813430c), called 
from fifo_server.c: destroy_fifo(158)<BR>&nbsp;0(0) qm_free: freeing frag. 
0x81342f4 alloc'ed from fifo_server.c: register_fifo_cmd(133)<BR>&nbsp;0(0) 
qm_free(0x80fbe60, 0x81342cc), called from fifo_server.c: 
destroy_fifo(158)<BR>&nbsp;0(0) qm_free: freeing frag. 0x81342b4 alloc'ed from 
fifo_server.c: register_fifo_cmd(133)<BR>&nbsp;0(0) qm_free(0x80fbe60, 
0x813428c), called from fifo_server.c: destroy_fifo(158)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x8134274 alloc'ed from fifo_server.c: 
register_fifo_cmd(133)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x813424c), called from 
fifo_server.c: destroy_fifo(158)<BR>&nbsp;0(0) qm_free: freeing frag. 0x8134234 
alloc'ed from fifo_server.c: register_fifo_cmd(133)<BR>&nbsp;0(0) 
qm_free(0x80fbe60, 0x813420c), called from fifo_server.c: 
destroy_fifo(158)<BR>&nbsp;0(0) qm_free: freeing frag. 0x81341f4 alloc'ed from 
fifo_server.c: register_fifo_cmd(133)<BR>&nbsp;0(0) qm_free(0x80fbe60, 
0x81341cc), called from fifo_server.c: destroy_fifo(158)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x81341b4 alloc'ed from fifo_server.c: 
register_fifo_cmd(133)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x813418c), called from 
fifo_server.c: destroy_fifo(158)<BR>&nbsp;0(0) qm_free: freeing frag. 0x8134174 
alloc'ed from fifo_server.c: register_fifo_cmd(133)<BR>&nbsp;0(0) 
qm_free(0x80fbe60, 0x8134004), called from fifo_server.c: 
destroy_fifo(158)<BR>&nbsp;0(0) qm_free: freeing frag. 0x8133fec alloc'ed from 
fifo_server.c: register_fifo_cmd(133)<BR>&nbsp;0(0) qm_free(0x80fbe60, 
0x8133e7c), called from fifo_server.c: destroy_fifo(158)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x8133e64 alloc'ed from fifo_server.c: 
register_fifo_cmd(133)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x8133e3c), called from 
fifo_server.c: destroy_fifo(158)<BR>&nbsp;0(0) qm_free: freeing frag. 0x8133e24 
alloc'ed from fifo_server.c: register_fifo_cmd(133)<BR>&nbsp;0(0) 
qm_free(0x80fbe60, 0x8133dfc), called from fifo_server.c: 
destroy_fifo(158)<BR>&nbsp;0(0) qm_free: freeing frag. 0x8133de4 alloc'ed from 
fifo_server.c: register_fifo_cmd(133)<BR>&nbsp;0(0) qm_free(0x80fbe60, 
0x8133dbc), called from fifo_server.c: destroy_fifo(158)<BR>&nbsp;0(0) qm_free: 
freeing frag. 0x8133da4 alloc'ed from fifo_server.c: 
register_fifo_cmd(133)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x8133cfc), called from 
fifo_server.c: destroy_fifo(158)<BR>&nbsp;0(0) qm_free: freeing frag. 0x8133ce4 
alloc'ed from fifo_server.c: register_fifo_cmd(133)<BR>&nbsp;0(0) 
qm_free(0x80fbe60, 0x81340c4), called from script_cb.c: 
destroy_script_cb(81)<BR>&nbsp;0(0) qm_free: freeing frag. 0x81340ac alloc'ed 
from script_cb.c: register_script_cb(53)<BR>&nbsp;0(0) qm_free(0x80fbe60, 
0x8133d7c), called from script_cb.c: destroy_script_cb(81)<BR>&nbsp;0(0) 
qm_free: freeing frag. 0x8133d64 alloc'ed from script_cb.c: 
register_script_cb(53)<BR>&nbsp;0(0) qm_free(0x80fbe60, 0x8134084), called from 
script_cb.c: destroy_script_cb(83)<BR>&nbsp;0(0) qm_free: freeing frag. 
0x813406c alloc'ed from script_cb.c: register_script_cb(53)<BR>&nbsp;0(0) 
qm_free(0x401ff000, 0x4023553c), called from main.c: cleanup(373)<BR>&nbsp;0(0) 
qm_free: freeing frag. 0x40235524 alloc'ed from main.c: 
main(1534)<BR>&nbsp;0(2180) shm_mem_destroy<BR>&nbsp;0(2180) destroying the 
shared memory lock</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>The ser.cfg that I have used is the 
same&nbsp;included in the compilation except for the debugs to get 
activated.&nbsp;Next I include it in case you see something rare:</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Any help or idea is very very welcome 
:-)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Thank you very much</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Jesús</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>**********************************************************************</FONT></DIV>
<DIV><FONT face=Arial size=2>#<BR># $Id: ser.cfg,v 1.25 2004/11/30 16:28:24 
andrei Exp $<BR>#<BR># simple quick-start config script<BR>#</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2># ----------- global configuration parameters 
------------------------</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>debug=7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # debug level 
(cmd line: -dddddddddd)<BR>#fork=yes<BR>#log_stderror=no&nbsp;# (cmd line: 
-E)</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>/* Uncomment these lines to enter debugging mode 
*/<BR>fork=no<BR>log_stderror=yes</FONT></DIV>
<DIV>&nbsp;</DIV><FONT face=Arial size=2>
<DIV><BR>check_via=no&nbsp;# (cmd. line: 
-v)<BR>dns=no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 
(cmd. line: -r)<BR>rev_dns=no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # (cmd. line: 
-R)<BR>#port=5060<BR>#children=4<BR>fifo="/tmp/ser_fifo"</DIV>
<DIV>&nbsp;</DIV>
<DIV># ------------------ module loading 
----------------------------------</DIV>
<DIV>&nbsp;</DIV>
<DIV># Uncomment this if you want to use SQL database<BR>#loadmodule 
"/usr/local/lib/ser/modules/mysql.so"</DIV>
<DIV>&nbsp;</DIV>
<DIV>loadmodule "/usr/local/lib/ser/modules/sl.so"<BR>loadmodule 
"/usr/local/lib/ser/modules/tm.so"<BR>loadmodule 
"/usr/local/lib/ser/modules/rr.so"<BR>loadmodule 
"/usr/local/lib/ser/modules/maxfwd.so"<BR>loadmodule 
"/usr/local/lib/ser/modules/usrloc.so"<BR>loadmodule 
"/usr/local/lib/ser/modules/registrar.so"<BR>loadmodule 
"/usr/local/lib/ser/modules/textops.so"</DIV>
<DIV>&nbsp;</DIV>
<DIV># Uncomment this if you want digest authentication<BR># mysql.so must be 
loaded !<BR>#loadmodule "/usr/local/lib/ser/modules/auth.so"<BR>#loadmodule 
"/usr/local/lib/ser/modules/auth_db.so"</DIV>
<DIV>&nbsp;</DIV>
<DIV># ----------------- setting module-specific parameters 
---------------</DIV>
<DIV>&nbsp;</DIV>
<DIV># -- usrloc params --</DIV>
<DIV>&nbsp;</DIV>
<DIV>modparam("usrloc", "db_mode",&nbsp;&nbsp; 0)</DIV>
<DIV>&nbsp;</DIV>
<DIV># Uncomment this if you want to use SQL database <BR># for persistent 
storage and comment the previous line<BR>#modparam("usrloc", "db_mode", 2)</DIV>
<DIV>&nbsp;</DIV>
<DIV># -- auth params --<BR># Uncomment if you are using auth 
module<BR>#<BR>#modparam("auth_db", "calculate_ha1", yes)<BR>#<BR># If you set 
"calculate_ha1" parameter to yes (which true in this config), <BR># uncomment 
also the following parameter)<BR>#<BR>#modparam("auth_db", "password_column", 
"password")</DIV>
<DIV>&nbsp;</DIV>
<DIV># -- rr params --<BR># add value to ;lr param to make some broken UAs 
happy<BR>modparam("rr", "enable_full_lr", 1)</DIV>
<DIV>&nbsp;</DIV>
<DIV># -------------------------&nbsp; request routing logic 
-------------------</DIV>
<DIV>&nbsp;</DIV>
<DIV># main routing logic</DIV>
<DIV>&nbsp;</DIV>
<DIV>route{</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;# initial sanity checks -- messages with<BR>&nbsp;# max_forwards==0, 
or excessively long requests<BR>&nbsp;if (!mf_process_maxfwd_header("10")) 
{<BR>&nbsp;&nbsp;sl_send_reply("483","Too Many 
Hops");<BR>&nbsp;&nbsp;break;<BR>&nbsp;};<BR>&nbsp;if (msg:len &gt;=&nbsp; 
max_len ) {<BR>&nbsp;&nbsp;sl_send_reply("513", "Message too 
big");<BR>&nbsp;&nbsp;break;<BR>&nbsp;};<BR>&nbsp;<BR>&nbsp;if 
(src_ip==193.175.135.0/24){<BR>&nbsp;&nbsp;force_send_socket(smaug:5080);<BR>&nbsp;&nbsp;forward(193.175.135.179);<BR>&nbsp;&nbsp;break;<BR>&nbsp;}</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;# we record-route all messages -- to make sure that<BR>&nbsp;# 
subsequent messages will go through our proxy; that's<BR>&nbsp;# particularly 
good if upstream and downstream entities<BR>&nbsp;# use different transport 
protocol<BR>&nbsp;if (!method=="REGISTER") record_route();&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;# subsequent messages withing a dialog should take the<BR>&nbsp;# 
path determined by record-routing<BR>&nbsp;if (loose_route()) {<BR>&nbsp;&nbsp;# 
mark routing logic in request<BR>&nbsp;&nbsp;append_hf("P-hint: 
rr-enforced\r\n"); 
<BR>&nbsp;&nbsp;route(1);<BR>&nbsp;&nbsp;break;<BR>&nbsp;};</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;if (!uri==myself) {<BR>&nbsp;&nbsp;# mark routing logic in 
request<BR>&nbsp;&nbsp;append_hf("P-hint: outbound\r\n"); 
<BR>&nbsp;&nbsp;route(1);<BR>&nbsp;&nbsp;break;<BR>&nbsp;};</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;# if the request is for other domain use UsrLoc<BR>&nbsp;# (in case, 
it does not work, use the following command<BR>&nbsp;# with proper names and 
addresses in it)<BR>&nbsp;if (uri==myself) {</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;if (method=="REGISTER") {</DIV>
<DIV>&nbsp;</DIV>
<DIV># Uncomment this if you want to use digest 
authentication<BR>#&nbsp;&nbsp;&nbsp;if (!www_authorize("iptel.org", 
"subscriber")) {<BR>#&nbsp;&nbsp;&nbsp;&nbsp;www_challenge("iptel.org", 
"0");<BR>#&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>#&nbsp;&nbsp;&nbsp;};</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;save("location");<BR>&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;};</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;lookup("aliases");<BR>&nbsp;&nbsp;if (!uri==myself) 
{<BR>&nbsp;&nbsp;&nbsp;append_hf("P-hint: outbound alias\r\n"); 
<BR>&nbsp;&nbsp;&nbsp;route(1);<BR>&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;};</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;# native SIP destinations are handled using our USRLOC 
DB<BR>&nbsp;&nbsp;if (!lookup("location")) 
{<BR>&nbsp;&nbsp;&nbsp;sl_send_reply("404", "Not 
Found");<BR>&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;};<BR>&nbsp;};<BR>&nbsp;append_hf("P-hint: 
usrloc applied\r\n"); <BR>&nbsp;route(1);<BR>}</DIV>
<DIV>&nbsp;</DIV>
<DIV>route[1] <BR>{<BR>&nbsp;# send it out now; use stateful forwarding as it 
works reliably<BR>&nbsp;# even for UDP2TCP<BR>&nbsp;if (!t_relay()) 
{<BR>&nbsp;&nbsp;sl_reply_error();<BR>&nbsp;};<BR>}</DIV>
<DIV>&nbsp;</DIV>
<DIV></FONT>&nbsp;</DIV></BODY></HTML>