Hello,
using a proxy in front of the pbx has some side effects if your phones
are behind the nat. First, for registration, you have to enable with
Path in the proxy and the pbx has to support it. AFAIK, Asterisk got
just recently a patch for supporting Path.
Then, the asterisk has to be also changed a bit, because it will match
all phone registrations coming from the same IP, which can create
troubles if you match by source IP (not sure if this is still in latest
Asterisks, but with some versions I run in such troubles, but since I
was not the one handling the Asterisk, I cannot tell more).
If you really need to stick to existing asterisk deployment, then maybe
looking at next tutorial will help a bit:
If you can redesign the platform, you may want to change the logic so
that kamailio takes care of registration and signaling and asterisk of
media related services. This is more scalable and easier to handle in
long term.
Cheers,
Daniel
On 8/1/13 12:44 AM, Rafael Carvallo wrote:
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.
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users