Hi,<br>&nbsp;<br>If anybody can take a look openser.cfg below. I`m working vmware (enviroments virtual)...Whenever I try a &quot;register&quot; a client I get 483: Too many Hops....as if he had a loop (config file) but I am unable to find the problem...<br>
&nbsp;<br>I use OpenSER 1.3-notls, client softphone: twincle or xlite...<br>&nbsp;<br>OpenSER - <a href="http://192.168.0.10">192.168.0.10</a><br>Client - <a href="http://192.168.0.25">192.168.0.25</a><br>&nbsp;<br>Bind9/named.conf(SRV, A): <a href="http://spo.voip.br">spo.voip.br</a><br>
&nbsp;<br>&nbsp;<br>Does anyone know how to fix this ?<br>&nbsp;<br>Any hints.....??<br>&nbsp;<br>thx...<br><br>&nbsp;<br>&nbsp;<br>OpenSER File:<br>&nbsp;<br><br>####### Global Parameters #########<br>alias=&quot;<a href="http://vmw02-srv.spo.voip.br">vmw02-srv.spo.voip.br</a>&quot;<br>
debug=6<br>log_stderror=no<br>log_facility=LOG_LOCAL0<br>log_name=&quot;Openser&quot;<br>fork=yes<br>children=8<br>tcp_children=4<br>group=&quot;openser&quot;<br>user=&quot;openser&quot;<br><br>/* uncomment the next line to disable TCP (default on) */<br>
disable_tcp=yes<br><br>/* uncomment the next line to enable the auto temporary blacklisting of<br>not available destinations (default disabled) */<br>#disable_dns_blacklist=no<br><br>/* uncomment the next line to enable IPv6 lookup after IPv4 dns<br>
lookup failures (default disabled) */<br>#dns_try_ipv6=yes<br><br>/* uncomment the next line to disable the auto discovery of local aliases<br>based on revers DNS on IPs (default on) */<br>#auto_aliases=no<br><br>/* uncomment the following lines to enable TLS support (default off) */<br>
#disable_tls = no<br>#listen = tls:your_IP:5061<br>#tls_verify_server = 1<br>#tls_verify_client = 1<br>#tls_require_client_certificate = 0<br>#tls_method = TLSv1<br>#tls_certificate = &quot;/usr/local/etc/openser/tls/user/user-cert.pem&quot;<br>
#tls_private_key = &quot;/usr/local/etc/openser/tls/user/user-privkey.pem&quot;<br>#tls_ca_list = &quot;/usr/local/etc/openser/tls/user/user-calist.pem&quot;<br><br>port=5060<br><br>/* uncomment and configure the following line if you want openser to<br>
bind on a specific interface/port/proto (default bind on all available) */<br>listen=udp:<a href="http://192.168.0.10:5060">192.168.0.10:5060</a><br><br>####### Modules Section ########<br>#set module path<br>mpath=&quot;/usr/local/lib/openser/modules/&quot;<br>
<br>/* uncomment next line for MySQL DB support */<br>loadmodule &quot;mysql.so&quot;<br>loadmodule &quot;sl.so&quot;<br>loadmodule &quot;tm.so&quot;<br>loadmodule &quot;rr.so&quot;<br>loadmodule &quot;maxfwd.so&quot;<br>
modparam(&quot;maxfwd&quot;, &quot;max_limit&quot;, 256)<br>loadmodule &quot;usrloc.so&quot;<br>loadmodule &quot;registrar.so&quot;<br>loadmodule &quot;textops.so&quot;<br>loadmodule &quot;mi_fifo.so&quot;<br>loadmodule &quot;uri_db.so&quot;<br>
loadmodule &quot;uri.so&quot;<br>loadmodule &quot;xlog.so&quot;<br>loadmodule &quot;acc.so&quot;<br>loadmodule &quot;avpops.so&quot;<br><br>/* uncomment next lines for MySQL based authentication support<br>NOTE: a DB (like mysql) module must be also loaded */<br>
loadmodule &quot;auth.so&quot;<br>loadmodule &quot;auth_db.so&quot;<br><br>/* uncomment next line for aliases support<br>NOTE: a DB (like mysql) module must be also loaded */<br>loadmodule &quot;alias_db.so&quot;<br><br>/* uncomment next line for multi-domain support<br>
NOTE: a DB (like mysql) module must be also loaded<br>NOTE: be sure and enable multi-domain support in all used modules<br>(see &quot;multi-module params&quot; section ) */<br>loadmodule &quot;domain.so&quot;<br><br>/* uncomment the next two lines for presence server support<br>
NOTE: a DB (like mysql) module must be also loaded */<br>#loadmodule &quot;presence.so&quot;<br>#loadmodule &quot;presence_xml.so&quot;<br><br><br># ----------------- setting module-specific parameters ---------------<br>
<br># ----- mi_fifo params -----<br>modparam(&quot;mi_fifo&quot;, &quot;fifo_name&quot;, &quot;/tmp/openser_fifo&quot;)<br>&nbsp;<br><br># ----- rr params -----<br># add value to ;lr param to cope with most of the UAs<br>modparam(&quot;rr&quot;, &quot;enable_full_lr&quot;, 1)<br>
<br># do not append from tag to the RR (no need for this script)<br>#modparam(&quot;rr&quot;, &quot;append_fromtag&quot;, 0)<br><br><br># ----- rr params -----<br>#modparam(&quot;registrar&quot;, &quot;method_filtering&quot;, 1)<br>
<br>/* uncomment the next line to disable parallel forking via location */<br># modparam(&quot;registrar&quot;, &quot;append_branches&quot;, 0)<br><br>/* uncomment the next line not to allow more than 10 contacts per AOR */<br>
#modparam(&quot;registrar&quot;, &quot;max_contacts&quot;, 10)<br><br><br># ----- uri_db params -----<br><br>/* by default we disable the DB support in the module as we do not need it<br>in this configuration */<br>modparam(&quot;uri_db&quot;, &quot;use_uri_table&quot;, 0)<br>
modparam(&quot;uri_db&quot;, &quot;db_url&quot;, &quot;&quot;)<br>&nbsp;<br><br># ----- acc params -----<br><br>/* what sepcial events should be accounted ? */<br>modparam(&quot;acc&quot;, &quot;early_media&quot;, 1)<br>modparam(&quot;acc&quot;, &quot;report_ack&quot;, 1)<br>
modparam(&quot;acc&quot;, &quot;report_cancels&quot;, 1)<br><br>/* by default ww do not adjust the direct of the sequential requests.<br>if you enable this parameter, be sure the enable &quot;append_fromtag&quot;<br>in &quot;rr&quot; module */<br>
<br>modparam(&quot;acc&quot;, &quot;detect_direction&quot;, 0)<br><br>/* account triggers (flags) */<br>modparam(&quot;acc&quot;, &quot;failed_transaction_flag&quot;, 3)<br>modparam(&quot;acc&quot;, &quot;log_flag&quot;, 1)<br>
modparam(&quot;acc&quot;, &quot;log_missed_flag&quot;, 2)<br><br>/* uncomment the following lines to enable DB accounting also */<br>modparam(&quot;acc&quot;, &quot;db_flag&quot;, 1)<br>modparam(&quot;acc&quot;, &quot;db_missed_flag&quot;, 2)<br>
&nbsp;<br><br># ----- usrloc params -----<br><br>#modparam(&quot;usrloc&quot;, &quot;db_mode&quot;, 0)<br>/* uncomment the following lines if you want to enable DB persistency<br>for location entries */<br>modparam(&quot;usrloc&quot;, &quot;db_mode&quot;, 2)<br>
modparam(&quot;usrloc&quot;, &quot;db_url&quot;, &quot;mysql://openser:openserrw@192.168.0.10/openser&quot;)<br>modparam(&quot;usrloc&quot;, &quot;user_column&quot;, &quot;username&quot;)<br>modparam(&quot;usrloc&quot;, &quot;domain_column&quot;, &quot;domain&quot;)<br>
modparam(&quot;usrloc&quot;, &quot;contact_column&quot;, &quot;contact&quot;)<br>modparam(&quot;usrloc&quot;, &quot;expires_column&quot;, &quot;expires&quot;)<br>modparam(&quot;usrloc&quot;, &quot;q_column&quot;, &quot;q&quot;)<br>
modparam(&quot;usrloc&quot;, &quot;callid_column&quot;, &quot;callid&quot;)<br>modparam(&quot;usrloc&quot;, &quot;cseq_column&quot;, &quot;cseq&quot;)<br>modparam(&quot;usrloc&quot;, &quot;methods_column&quot;, &quot;methods&quot;)<br>
modparam(&quot;usrloc&quot;, &quot;flags_column&quot;, &quot;flags&quot;)<br>modparam(&quot;usrloc&quot;, &quot;user_agent_column&quot;, &quot;user_agent&quot;)<br>modparam(&quot;usrloc&quot;, &quot;received_column&quot;, &quot;received&quot;)<br>
modparam(&quot;usrloc&quot;, &quot;socket_column&quot;, &quot;socket&quot;)<br>modparam(&quot;usrloc&quot;, &quot;use_domain&quot;, 0)<br>modparam(&quot;usrloc&quot;, &quot;desc_time_order&quot;, 0)<br>modparam(&quot;usrloc&quot;, &quot;timer_interval&quot;, 60)<br>
modparam(&quot;usrloc&quot;, &quot;matching_mode&quot;, 0)<br>modparam(&quot;usrloc&quot;, &quot;cseq_delay&quot;, 20)<br><br># ----- auth_db params -----<br><br>/* uncomment the following lines if you want to enable the DB based<br>
authentication */<br><br>#modparam(&quot;auth_db&quot;, &quot;calculate_ha1&quot;, yes)<br>#modparam(&quot;auth_db&quot;, &quot;password_column&quot;, &quot;password&quot;)<br>modparam(&quot;auth_db&quot;, &quot;db_url&quot;, &quot;mysql://openser:openserrw@192.168.0.10/openser&quot;)<br>
<br>#modparam(&quot;auth_db&quot;, &quot;load_credentials&quot;, &quot;&quot;)<br><br><br># ----- alias_db params -----<br><br>/* uncomment the following lines if you want to enable the DB based aliases */<br><br>modparam(&quot;alias_db&quot;, &quot;db_url&quot;, &quot;mysql://openser:openserrw@192.168.0.10/openser&quot;)<br>
<br>&nbsp;<br><br># ----- domain params -----<br><br>/* uncomment the following lines to enable multi-domain detection support */<br><br>modparam(&quot;domain&quot;, &quot;db_url&quot;, &quot;mysql://openser:openserrw@192.168.0.10/openser&quot;)<br>
modparam(&quot;domain&quot;, &quot;db_mode&quot;, 1) # Use caching<br><br># ----- multi-module params -----<br><br>/* uncomment the following line if you want to enable multi-domain support in the modules (dafault off) */<br>
modparam(&quot;alias_db|auth_db|usrloc|uri_db&quot;, &quot;use_domain&quot;, 1)<br>&nbsp;<br><br># ----- presence params -----<br><br>/* uncomment the following lines if you want to enable presence */<br>#modparam(&quot;presence|presence_xml&quot;, &quot;db_url&quot;,<br>
# &quot;mysql://openser:openserrw@192.168.1.3/openser_1_3&quot;)<br>#modparam(&quot;presence_xml&quot;, &quot;force_active&quot;, 1)<br>#modparam(&quot;presence&quot;, &quot;server_address&quot;, &quot;sip:<a href="http://192.168.1.2:5060">192.168.1.2:5060</a>&quot;)<br>
&nbsp;<br><br>####### Routing Logic ########<br><br>&nbsp;<br><br># main request routing logic<br><br>route{<br><br>&nbsp;&nbsp; &nbsp;if (!mf_process_maxfwd_header(&quot;10&quot;)) {<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;sl_send_reply(&quot;483&quot;,&quot;Too Many Hops&quot;);<br>
<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;exit;<br><br>&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;&nbsp; &nbsp;if (has_totag()) {<br><br>&nbsp;&nbsp; &nbsp;# sequential request withing a dialog should<br>&nbsp;&nbsp; &nbsp;# take the path determined by record-routing<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (loose_route()) {<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (is_method(&quot;BYE&quot;)) {<br>
<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;setflag(1); # do accouting ...<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;setflag(3); # ... even if the transaction fails<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;route(1);<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} else {<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;sl_send_reply(&quot;404&quot;,&quot;Not here&quot;);<br>
<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;exit;<br><br>&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;&nbsp; &nbsp;#initial requests<br>&nbsp;&nbsp; &nbsp;# CANCEL processing<br><br>&nbsp;&nbsp; &nbsp;if (is_method(&quot;CANCEL&quot;)){<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (t_check_trans())<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;t_relay();<br><br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;exit;<br><br>&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;&nbsp; &nbsp;t_check_trans();<br><br><br>&nbsp;&nbsp; &nbsp;# authenticate if from local subscriber (uncomment to enable auth)<br><br>&nbsp;&nbsp; &nbsp;if (!(method==&quot;REGISTER&quot;) &amp;&amp; from_uri==myself) {<br><br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (!proxy_authorize(&quot;&quot;, &quot;subscriber&quot;)) {<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;proxy_challenge(&quot;&quot;, &quot;0&quot;);<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;exit;<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (!check_from()) {<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;sl_send_reply(&quot;403&quot;,&quot;Forbidden auth ID&quot;);<br>
<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;exit;<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;consume_credentials();<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;# caller authenticated<br><br>&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;&nbsp; &nbsp;# record routing<br>&nbsp;&nbsp; &nbsp;if (!is_method(&quot;REGISTER|MESSAGE&quot;)) {<br>&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;record_route();<br>
<br>&nbsp;&nbsp; &nbsp;# account only INVITEs<br><br>&nbsp;&nbsp; &nbsp;if (is_method(&quot;INVITE&quot;)) {<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;setflag(1); # do accouting<br><br>&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;&nbsp; &nbsp;if (!uri==myself)<br><br>&nbsp;&nbsp; &nbsp;/* replace with following line if multi-domain support is used */<br>
<br>&nbsp;&nbsp; &nbsp;##if (!is_uri_host_local())<br>&nbsp;&nbsp; &nbsp;{<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;append_hf(&quot;P-hint: outbound\r\n&quot;);<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;# if you have some interdomain connections via TLS<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;##if($rd==&quot;tls_domain1.net&quot;) {<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;## t_relay(&quot;tls:<a href="http://domain1.net">domain1.net</a>&quot;);<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;## exit;<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;##} else if($rd==&quot;tls_domain2.net&quot;) {<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;## t_relay(&quot;tls:<a href="http://domain2.net">domain2.net</a>&quot;);<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;## exit;<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;##}<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;route(1);<br>&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;&nbsp; &nbsp;# requests for my domain<br><br>&nbsp;&nbsp; &nbsp;/* uncomment this if you want to enable presence server and comment the next &#39;if&#39; block<br>&nbsp;&nbsp; &nbsp;NOTE: uncomment also the definition of route[2] from below */<br>
<br>&nbsp;&nbsp; &nbsp;##if( is_method(&quot;PUBLISH|SUBSCRIBE&quot;))<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;## route(2);<br><br>&nbsp;&nbsp; &nbsp;if (is_method(&quot;PUBLISH&quot;)){<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;sl_send_reply(&quot;503&quot;, &quot;Service Unavailable&quot;);<br><br>&nbsp;&nbsp; &nbsp;exit;<br>
<br>&nbsp;&nbsp; &nbsp;}<br>&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp; &nbsp;if (is_method(&quot;REGISTER&quot;)){<br>&nbsp;&nbsp; &nbsp;# ACRESCENTEI O IP ADDR - MRG<br>&nbsp;&nbsp; &nbsp;# authenticate the REGISTER requests (uncomment to enable auth)<br><br>&nbsp;&nbsp; &nbsp;#if (!www_authorize(&quot;vmw02-srv&quot;, &quot;subscriber&quot;)){<br>
<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;# www_challenge(&quot;vmw02-srv&quot;, &quot;0&quot;);<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;# exit;<br><br>&nbsp;&nbsp; &nbsp;#}<br>&nbsp;&nbsp; &nbsp;#<br><br>&nbsp;&nbsp; &nbsp;#if (!check_to()){<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;## sl_send_reply(&quot;403&quot;,&quot;Forbidden auth ID&quot;);<br>
<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;## exit;<br><br>&nbsp;&nbsp; &nbsp;##}<br><br>&nbsp;&nbsp; &nbsp;if (!save(&quot;location&quot;))<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;sl_reply_error();<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;exit;<br><br>&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;&nbsp; &nbsp;if ($rU==NULL) {<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;# request with no Username in RURI<br>
<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;sl_send_reply(&quot;484&quot;,&quot;Address Incomplete&quot;);<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;exit;<br><br>&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;&nbsp; &nbsp;# apply DB based aliases (uncomment to enable)<br><br>&nbsp;&nbsp; &nbsp;alias_db_lookup(&quot;dbaliases&quot;);<br>
<br>&nbsp;&nbsp; &nbsp;if (!lookup(&quot;location&quot;)) {<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;switch ($retcode) {<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;case -1:<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;case -3:<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;t_newtran();<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;t_reply(&quot;404&quot;, &quot;Not Found&quot;);<br>
<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;exit;<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;case -2:<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;sl_send_reply(&quot;405&quot;, &quot;Method Not Allowed&quot;);<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;exit;<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;&nbsp; &nbsp;# when routing via usrloc, log the missed calls also<br>
<br>&nbsp;&nbsp; &nbsp;setflag(2);<br><br>&nbsp;&nbsp; &nbsp;route(1);<br><br>&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;<br><br>&nbsp;&nbsp; &nbsp;route[1] {<br><br>&nbsp;&nbsp; &nbsp;# for INVITEs enable some additional helper routes<br><br>&nbsp;&nbsp; &nbsp;if (is_method(&quot;INVITE&quot;)) {<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;t_on_branch(&quot;2&quot;);<br>
<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;t_on_reply(&quot;2&quot;);<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;t_on_failure(&quot;1&quot;);<br><br>&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;&nbsp; &nbsp;if (!t_relay()) {<br><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;sl_reply_error();<br><br>&nbsp;&nbsp; &nbsp;};<br><br>&nbsp;&nbsp; &nbsp;exit;<br><br>&nbsp;&nbsp; &nbsp;}<br><br>&nbsp;<br><br># Presence route<br>
<br>/* uncomment the whole following route for enabling presence<br><br>NOTE: do not forget to enable the call of this route from the main<br><br>route */<br><br>##route[2]<br><br>##{<br><br>## if (!t_newtran())<br><br>## {<br>
<br>## sl_reply_error();<br><br>## exit;<br><br>## };<br><br>##<br><br>## if(is_method(&quot;PUBLISH&quot;))<br><br>## {<br><br>## handle_publish();<br><br>## t_release();<br><br>## }<br><br>## else<br><br>## if( is_method(&quot;SUBSCRIBE&quot;))<br>
<br>## {<br><br>## handle_subscribe();<br><br>## t_release();<br><br>## }<br><br>##<br><br>## exit;<br><br>##}<br><br>&nbsp;<br><br>branch_route[2] {<br><br>xlog(&quot;new branch at $ru\n&quot;);<br><br>}<br><br>&nbsp;<br><br>onreply_route[2] {<br>
<br>xlog(&quot;incoming reply\n&quot;);<br><br>}<br><br>&nbsp;<br><br>failure_route[1] {<br><br>if (t_was_cancelled()) {<br><br>exit;<br><br>}<br><br># uncomment the following lines if you want to block client<br><br># redirect based on 3xx replies.<br>
<br>##if (t_check_status(&quot;3[0-9][0-9]&quot;)) {<br><br>##t_reply(&quot;404&quot;,&quot;Not found&quot;);<br><br>## exit;<br><br>##}<br><br># uncomment the following lines if you want to redirect the failed<br><br># calls to a different new destination<br>
<br>##if (t_check_status(&quot;486|408&quot;)) {<br><br>## sethostport(&quot;<a href="http://192.168.2.100:5060">192.168.2.100:5060</a>&quot;);<br><br>## append_branch();<br><br>## # do not set the missed call flag again<br>
<br>## t_relay();<br><br>##}<br><br>}<br><br>&nbsp;<br><br>Ngrep -d eth1 -qt -W byline port 5060<br><br>root@vmw02-srv:~# ngrep -d eth1 -qt -W byline port 5060<br>interface: eth1 (<a href="http://192.168.0.0/255.255.255.0">192.168.0.0/255.255.255.0</a>)<br>
filter: (ip or ip6) and ( port 5060 )<br><br>U 2008/03/20 13:57:31.763060 <a href="http://192.168.0.25:5060">192.168.0.25:5060</a> -&gt; <a href="http://192.168.0.10:5060">192.168.0.10:5060</a><br>REGISTER sip:<a href="http://spo.voip.br">spo.voip.br</a> SIP/2.0.<br>
Via: SIP/2.0/UDP <a href="http://192.168.0.25">192.168.0.25</a>;rport;branch=z9hG4bKignjupsg.<br>Max-Forwards: 70.<br>To: &quot;vmwcli03&quot; &lt;<a href="mailto:sip:vmwcli03@spo.voip.br">sip:vmwcli03@spo.voip.br</a>&gt;.<br>
From: &quot;vmwcli03&quot; &lt;<a href="mailto:sip:vmwcli03@spo.voip.br">sip:vmwcli03@spo.voip.br</a>&gt;;tag=dcoan.<br>Call-ID: <a href="mailto:iswtwciijecswfp@192.168.0.25">iswtwciijecswfp@192.168.0.25</a>.<br>CSeq: 883 REGISTER.<br>
Contact: &lt;<a href="mailto:sip:vmwcli03@192.168.0.25">sip:vmwcli03@192.168.0.25</a>&gt;;expires=3600.<br>Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO.<br>User-Agent: Twinkle/1.0.<br>Content-Length: 0.<br>
<br>.<br><br>U 2008/03/20 13:57:32.333159 <a href="http://192.168.0.25:5060">192.168.0.25:5060</a> -&gt; <a href="http://192.168.0.10:5060">192.168.0.10:5060</a><br><br>REGISTER sip:<a href="http://spo.voip.br">spo.voip.br</a> SIP/2.0.<br>
Via: SIP/2.0/UDP <a href="http://192.168.0.25">192.168.0.25</a>;rport;branch=z9hG4bKignjupsg.<br>Max-Forwards: 70.<br>To: &quot;vmwcli03&quot; &lt;<a href="mailto:sip:vmwcli03@spo.voip.br">sip:vmwcli03@spo.voip.br</a>&gt;.<br>
From: &quot;vmwcli03&quot; &lt;<a href="mailto:sip:vmwcli03@spo.voip.br">sip:vmwcli03@spo.voip.br</a>&gt;;tag=dcoan.<br>Call-ID: <a href="mailto:iswtwciijecswfp@192.168.0.25">iswtwciijecswfp@192.168.0.25</a>.<br>CSeq: 883 REGISTER.<br>
Contact: &lt;<a href="mailto:sip:vmwcli03@192.168.0.25">sip:vmwcli03@192.168.0.25</a>&gt;;expires=3600.<br>Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO.<br>User-Agent: Twinkle/1.0.<br>Content-Length: 0.<br>
<br>.<br><br>&nbsp;<br><br>U 2008/03/20 13:57:33.321952 <a href="http://192.168.0.25:5060">192.168.0.25:5060</a> -&gt; <a href="http://192.168.0.10:5060">192.168.0.10:5060</a><br>REGISTER sip:<a href="http://spo.voip.br">spo.voip.br</a> SIP/2.0.<br>
Via: SIP/2.0/UDP <a href="http://192.168.0.25">192.168.0.25</a>;rport;branch=z9hG4bKignjupsg.<br>Max-Forwards: 70.<br>To: &quot;vmwcli03&quot; &lt;<a href="mailto:sip:vmwcli03@spo.voip.br">sip:vmwcli03@spo.voip.br</a>&gt;.<br>
From: &quot;vmwcli03&quot; &lt;<a href="mailto:sip:vmwcli03@spo.voip.br">sip:vmwcli03@spo.voip.br</a>&gt;;tag=dcoan.<br>Call-ID: <a href="mailto:iswtwciijecswfp@192.168.0.25">iswtwciijecswfp@192.168.0.25</a>.<br>CSeq: 883 REGISTER.<br>
Contact: &lt;<a href="mailto:sip:vmwcli03@192.168.0.25">sip:vmwcli03@192.168.0.25</a>&gt;;expires=3600.<br>Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO.<br>User-Agent: Twinkle/1.0.<br>Content-Length: 0.<br>
.<br>&nbsp;<br><br>U 2008/03/20 13:57:35.309584 <a href="http://192.168.0.25:5060">192.168.0.25:5060</a> -&gt; <a href="http://192.168.0.10:5060">192.168.0.10:5060</a><br><br>REGISTER sip:<a href="http://spo.voip.br">spo.voip.br</a> SIP/2.0.<br>
Via: SIP/2.0/UDP <a href="http://192.168.0.25">192.168.0.25</a>;rport;branch=z9hG4bKignjupsg.<br>Max-Forwards: 70.<br>To: &quot;vmwcli03&quot; &lt;<a href="mailto:sip:vmwcli03@spo.voip.br">sip:vmwcli03@spo.voip.br</a>&gt;.<br>
From: &quot;vmwcli03&quot; &lt;<a href="mailto:sip:vmwcli03@spo.voip.br">sip:vmwcli03@spo.voip.br</a>&gt;;tag=dcoan.<br>Call-ID: <a href="mailto:iswtwciijecswfp@192.168.0.25">iswtwciijecswfp@192.168.0.25</a>.<br>CSeq: 883 REGISTER.<br>
Contact: &lt;<a href="mailto:sip:vmwcli03@192.168.0.25">sip:vmwcli03@192.168.0.25</a>&gt;;expires=3600.<br>Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO.<br>User-Agent: Twinkle/1.0.<br>Content-Length: 0.<br>
<br>.<br><br>&nbsp;<br>U 2008/03/20 13:57:37.026703 <a href="http://192.168.0.10:5060">192.168.0.10:5060</a> -&gt; <a href="http://192.168.0.25:5060">192.168.0.25:5060</a><br><br>SIP/2.0 483 Too Many Hops.<br><br>Via: SIP/2.0/UDP <a href="http://192.168.0.25">192.168.0.25</a>;rport=5060;branch=z9hG4bKignjupsg.<br>
To: &quot;vmwcli03&quot; &lt;<a href="mailto:sip:vmwcli03@spo.voip.br">sip:vmwcli03@spo.voip.br</a>&gt;;tag=1333af5435552d3677a0ca954c3a6e9f.6889.<br>From: &quot;vmwcli03&quot; &lt;<a href="mailto:sip:vmwcli03@spo.voip.br">sip:vmwcli03@spo.voip.br</a>&gt;;tag=dcoan.<br>
Call-ID: <a href="mailto:iswtwciijecswfp@192.168.0.25">iswtwciijecswfp@192.168.0.25</a>.<br>CSeq: 883 REGISTER.<br>Server: OpenSER (1.3.0-notls (i386/linux)).<br>Content-Length: 0.