[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sr-users
Subject:    [SR-Users] Asterisk and Kamailio as a sip router
From:       Rafael Carvallo <shaoranrch () gmail ! com>
Date:       2013-07-31 22:32:02
Message-ID: CABo7iV+qtP_jkiRZBYG5=QObG-CTxwkDV04Q49xW5qNqiYc8bg () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hey everyone, currently i have this configuration set on kamailio:

 modparam("dispatcher", "list_file", "/etc/kamailio/dispatcher.list")

modparam("dispatcher", "force_dst", 0) #forzado de la reescritura direccion
de destino

modparam("dispatcher", "flags", 2) #banderas de funcionamiento, 2 significa
"soporte para failover"

modparam("dispatcher", "dst_avp", "$avp(dsdst)")

modparam("dispatcher", "grp_avp", "$avp(dsgrp)")

modparam("dispatcher", "cnt_avp", "$avp(dscnt)")

modparam("dispatcher", "ds_ping_method", "OPTIONS")

modparam("dispatcher", "ds_ping_interval", 5) #tiempo que transcurre antes
de verificar nuevamente una salida inactiva

modparam("dispatcher", "ds_probing_threshhold", 5) #Numero de intentos
antes de marcar una salida como inactiva


 modparam("dispatcher", "ds_ping_reply_codes",
"class=2;code=403;code=488;class=3")

modparam("dispatcher", "ds_probing_mode", 1)

modparam("dispatcher", "ds_hash_expire", 3600)

modparam("dispatcher", "ds_hash_initexpire", 60)



 #loadmodule "dispatcher.so"

####### Routing Logic ########



 # Main SIP request routing logic

# - processing of any incoming SIP request starts with this route

# - note: this is the same as route { ... }

request_route {


 if (is_method("SUBSCRIBE")){

if (src_ip == 192.168.2.1 | src_ip == 192.168.2.2){

t_relay();

}


 route(REGISTRAR);


 }


 if (src_ip == 192.168.2.1 | src_ip == 192.168.2.2){

t_relay();

}


 else{

route(ASTERISK);

}

}



 route[ASTERISK]{

ds_select_dst("1", "8");

t_relay();

exit();

}

Everything else is left with the same basic configuration it had when i
installed the software.

I want to use it kinda of a sip router, so what Kamailio does is just
forward the packets betwen my Asterisk boxes and the Sip Phones. Currently
it seems to work (partially) but i have doubts about if this is correctly
done (it's the first time using Kamailio and i need this working withing a
week at most).

As you can see i use the module dispatcher for failover/failback (this is
the purpose of using Kamailio, a failover/failback setup). One major
problem i've found with this setup is, if the phones are currently
connected and working with one of my 2 asterisk boxes and  if that box
fails, Kamailio starts sending the traffic to the second box (as intended),
but the phones don't try to subscribe to the new asterisk box, rather they
just keep sending traffic (and obviously kamailio forwarding it).

Sometimes one of the phones subscribe to the new box, but that's not always
the case, the packets reach the new Asterisk box, but since the phones
aren't registered to it, they can't make calls.

Other times the behavior of the setup is rather weird, i can call some
extensions and some others i can not (even though they are registered
within the asterisk box) The traffic gets to the Asterisk box (as shown in
the asterisk logs) but the call is shown as "service unavailable". I've
checked a lot of times the Asterisk setup and it seems to be fine so i
think it has something to do with Kamailio.

I know this might be a really bad configuration file, but it's been at most
3 days since i started using Kamailio which i sometimes find kinda hard to
understand and i really need this working within a week.

To summarize all i want is kamailio forwarding packets between the
currently active server and the phones so if it fails, then the packets go
to the second one, the phones must re-subscribe to the new active server.

[Attachment #5 (text/html)]

<div dir="ltr"><div><div><div><div><div><div>Hey everyone, currently i have this \
configuration set on kamailio:<br><br>


	
	
	
	<style type="text/css">P { margin-bottom: 0.21cm; }</style>


<p style="margin-bottom:0cm"><font face="Arial, \
serif"><font>modparam(&quot;dispatcher&quot;, &quot;list_file&quot;, \
&quot;/etc/kamailio/dispatcher.list&quot;)</font></font></p> <p \
style="margin-bottom:0cm"><font face="Arial, \
serif"><font>modparam(&quot;dispatcher&quot;, &quot;force_dst&quot;, 0) #forzado de \
la reescritura direccion de destino</font></font></p>
<p style="margin-bottom:0cm"><font face="Arial, \
serif"><font>modparam(&quot;dispatcher&quot;, &quot;flags&quot;, 2) #banderas de \
funcionamiento, 2 significa &quot;soporte para failover&quot;</font></font></p>
<p style="margin-bottom:0cm"><font face="Arial, \
serif"><font>modparam(&quot;dispatcher&quot;, &quot;dst_avp&quot;, \
&quot;$avp(dsdst)&quot;)</font></font></p> <p style="margin-bottom:0cm"><font \
face="Arial, serif"><font>modparam(&quot;dispatcher&quot;, &quot;grp_avp&quot;, \
&quot;$avp(dsgrp)&quot;)</font></font></p> <p style="margin-bottom:0cm"><font \
face="Arial, serif"><font>modparam(&quot;dispatcher&quot;, &quot;cnt_avp&quot;, \
&quot;$avp(dscnt)&quot;)</font></font></p> <p style="margin-bottom:0cm"><font \
face="Arial, serif"><font>modparam(&quot;dispatcher&quot;, \
&quot;ds_ping_method&quot;, &quot;OPTIONS&quot;)</font></font></p> <p \
style="margin-bottom:0cm"><font face="Arial, \
serif"><font>modparam(&quot;dispatcher&quot;, &quot;ds_ping_interval&quot;, 5) \
#tiempo que transcurre antes de verificar nuevamente una salida \
inactiva</font></font></p> <p style="margin-bottom:0cm"><font face="Arial, \
serif"><font>modparam(&quot;dispatcher&quot;, &quot;ds_probing_threshhold&quot;, 5) \
#Numero de intentos antes de marcar una salida como inactiva</font></font></p>
<p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm"><font face="Arial, \
serif"><font>modparam(&quot;dispatcher&quot;, &quot;ds_ping_reply_codes&quot;, \
&quot;class=2;code=403;code=488;class=3&quot;)</font></font></p> <p \
style="margin-bottom:0cm"><font face="Arial, \
serif"><font>modparam(&quot;dispatcher&quot;, &quot;ds_probing_mode&quot;, \
1)</font></font></p> <p style="margin-bottom:0cm"><font face="Arial, \
serif"><font>modparam(&quot;dispatcher&quot;, &quot;ds_hash_expire&quot;, \
3600)</font></font></p> <p style="margin-bottom:0cm"><font face="Arial, \
serif"><font>modparam(&quot;dispatcher&quot;, &quot;ds_hash_initexpire&quot;, \
60)</font></font></p> <p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm"><font face="Arial, serif"><font>#loadmodule
&quot;dispatcher.so&quot;</font></font></p>
<p style="margin-bottom:0cm"><font face="Arial, serif"><font>#######
Routing Logic ########</font></font></p>
<p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm"><font face="Arial, serif"><font>#
Main SIP request routing logic</font></font></p>
<p style="margin-bottom:0cm"><font face="Arial, serif"><font>#
- processing of any incoming SIP request starts with this route</font></font></p>
<p style="margin-bottom:0cm"><font face="Arial, serif"><font>#
- note: this is the same as route { ... }</font></font></p>
<p style="margin-bottom:0cm"><font face="Arial, serif"><font>request_route
{</font></font></p>
<p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm">        <font face="Arial, serif"><font>if
(is_method(&quot;SUBSCRIBE&quot;)){</font></font></p>
<p style="margin-bottom:0cm">                <font face="Arial, serif"><font>if
(src_ip == 192.168.2.1 | src_ip == 192.168.2.2){</font></font></p>
<p style="margin-bottom:0cm">                        <font face="Arial, \
serif"><font>t_relay();</font></font></p> <p style="margin-bottom:0cm">               \
<font face="Arial, serif"><font>}</font></font></p> <p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm">                <font face="Arial, \
serif"><font>route(REGISTRAR);</font></font></p> <p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm">        <font face="Arial, \
serif"><font>}</font></font></p> <p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm">        <font face="Arial, serif"><font>if
(src_ip == 192.168.2.1 | src_ip == 192.168.2.2){</font></font></p>
<p style="margin-bottom:0cm">                <font face="Arial, \
serif"><font>t_relay();</font></font></p> <p style="margin-bottom:0cm">        <font \
face="Arial, serif"><font>}</font></font></p> <p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm">        <font face="Arial, \
serif"><font>else{</font></font></p> <p style="margin-bottom:0cm">        <font \
face="Arial, serif"><font>route(ASTERISK);</font></font></p> <p \
style="margin-bottom:0cm">        <font face="Arial, serif"><font>}</font></font></p> \
<p style="margin-bottom:0cm"><font face="Arial, serif"><font>}</font></font></p> <p \
style="margin-bottom:0cm"><br> </p>
<p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm"><font face="Arial, \
serif"><font>route[ASTERISK]{</font></font></p> <p style="margin-bottom:0cm">        \
<font face="Arial, serif"><font>ds_select_dst(&quot;1&quot;, \
&quot;8&quot;);</font></font></p> <p style="margin-bottom:0cm">        <font \
face="Arial, serif"><font>t_relay();</font></font></p> <p style="margin-bottom:0cm">  \
<font face="Arial, serif"><font>exit();</font></font></p> <p \
style="margin-bottom:0cm"><font face="Arial, serif"><font>}</font></font></p>

<br></div><div>Everything else is left with the same basic configuration it had when \
i installed the software.<br></div><div><br></div>I want to use it kinda of a sip \
router, so what Kamailio does is just forward the packets betwen my Asterisk boxes \
and the Sip Phones. Currently it seems to work (partially) but i have doubts about if \
this is correctly done (it&#39;s the first time using Kamailio and i need this \
working withing a week at most).<br> <br></div>As you can see i use the module \
dispatcher for failover/failback (this is the purpose of using Kamailio, a \
failover/failback setup). One major problem i&#39;ve found with this setup is, if the \
phones are currently connected and working with one of my 2 asterisk boxes and  if \
that box fails, Kamailio starts sending the traffic to the second box (as intended), \
but the phones don&#39;t try to subscribe to the new asterisk box, rather they just \
keep sending traffic (and obviously kamailio forwarding it).<br> <br></div>Sometimes \
one of the phones subscribe to the new box, but that&#39;s not always the case, the \
packets reach the new Asterisk box, but since the phones aren&#39;t registered to it, \
they can&#39;t make calls.<br><br> </div>Other times the behavior of the setup is \
rather weird, i can call some extensions and some others i can not (even though they \
are registered within the asterisk box) The traffic gets to the Asterisk box (as \
shown in the asterisk logs) but the call is shown as &quot;service unavailable&quot;. \
I&#39;ve checked a lot of times the Asterisk setup and it seems to be fine so i think \
it has something to do with Kamailio.<br> <br></div>I know this might be a really bad \
configuration file, but it&#39;s been at most 3 days since i started using Kamailio \
which i sometimes find kinda hard to understand and i really need this working within \
a week.<br> <br></div>To summarize all i want is kamailio forwarding packets between \
the currently active server and the phones so if it fails, then the packets go to the \
second one, the phones must re-subscribe to the new active server. <br> </div>



_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic