Hi List
Can someone please help me?
I need to implement PBX Services for a customer that has 10 IP Phones at his Main site and then 20 IP Phones located over 5 Branches.
My goal is to have RTP go end to end and not proxied.
I had a look at the below link and tried it, but with no luck.
http://kamailio.org/dokuwiki/doku.php/examples:caller-callee-behind-same-nat
Here is a partial output of my kamailio.cfg file if someone would be so kind to help me.
#!ifdef WITH_NAT # ----- rtpproxy params ----- modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:7722")
# ----- nathelper params ----- modparam("nathelper", "natping_interval", 30) modparam("nathelper", "ping_nated_only", 1) modparam("nathelper", "sipping_bflag", FLB_NATSIPPING) modparam("nathelper", "sipping_from", "sip:pinger@x.x.x.x")
# params needed for NAT traversal in other modules modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)") modparam("usrloc", "nat_bflag", FLB_NATB) #!endif
####### Routing Logic ########
# Main SIP request routing logic # - processing of any incoming SIP request starts with this route route {
# per request initial checks route(REQINIT);
# NAT detection route(NAT);
# Caller NAT detection route route[NAT] { #!ifdef WITH_NAT force_rport(); if (nat_uac_test("19")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); } setflag(FLT_NATS); } #!endif return; }
# RTPProxy control route[RTPPROXY] { #!ifdef WITH_NAT if (is_method("BYE")) { unforce_rtp_proxy(); } else if (is_method("INVITE")){ force_rtp_proxy(); } if (!has_totag()) add_rr_param(";nat=yes"); #!endif return; }
Thank you in advance
Kind Regards Deon
Hello,
On 12/20/10 11:25 AM, Deon Vermeulen wrote:
Hi List
Can someone please help me?
I need to implement PBX Services for a customer that has 10 IP Phones at his Main site and then 20 IP Phones located over 5 Branches.
My goal is to have RTP go end to end and not proxied.
I had a look at the below link and tried it, but with no luck.
http://kamailio.org/dokuwiki/doku.php/examples:caller-callee-behind-same-nat
Here is a partial output of my kamailio.cfg file if someone would be so kind to help me.
#!ifdef WITH_NAT # ----- rtpproxy params ----- modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:7722")
# ----- nathelper params ----- modparam("nathelper", "natping_interval", 30) modparam("nathelper", "ping_nated_only", 1) modparam("nathelper", "sipping_bflag", FLB_NATSIPPING) modparam("nathelper", "sipping_from", "sip:pinger@x.x.x.x")
# params needed for NAT traversal in other modules modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)") modparam("usrloc", "nat_bflag", FLB_NATB) #!endif
####### Routing Logic ########
# Main SIP request routing logic # - processing of any incoming SIP request starts with this route route {
# per request initial checks route(REQINIT); # NAT detection route(NAT);
# Caller NAT detection route route[NAT] { #!ifdef WITH_NAT force_rport(); if (nat_uac_test("19")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); } setflag(FLT_NATS); } #!endif return; }
# RTPProxy control route[RTPPROXY] { #!ifdef WITH_NAT if (is_method("BYE")) { unforce_rtp_proxy(); } else if (is_method("INVITE")){ force_rtp_proxy(); } if (!has_totag()) add_rr_param(";nat=yes"); #!endif return; }
what you have to do is to check if the source is natted and $si==$dd, then callee and caller are behind same nat (if there is one level of nat), so you don't force rtpproxy usage.
Cheers, Daniel
Hi Daniel
Thank you so much for your feedback.
I came upon the below post, but I'm unable to find the example Norman posted. http://www.mail-archive.com/users@openser.org/msg01932.html
In short the end solution is:
# If both clients are behind nat we can check to see if they are behind the same # external IP and optimize the media path to go directly between them else if ( isflagset(2) and isflagset(3) ) { log(1, "Both Clients are behind NAT");
# Store the destination domain into an AVP avp_printf("i:450", "$dd");
if ( avp_check("i:450", "eq/$src_ip/g") ) { xlog("L_INFO", "Detected Two Clients Behind the Same NAT - Disabling Mediaproxy");
# Do not use mediaproxy as the clients seem to be behind the same NAT resetflag(2); resetflag(3); }
}
I haven't tested yet, but would I be right in saying my config should look something like:
####### Routing Logic ########
# Main SIP request routing logic # - processing of any incoming SIP request starts with this route route {
# per request initial checks route(REQINIT);
# NAT detection route(NAT);
# Caller NAT detection route route[NAT] { #!ifdef WITH_NAT force_rport(); if (nat_uac_test("19")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); } setflag(FLT_NATS);
# If both clients are behind nat we can check to see if they are behind the same # external IP and optimize the media path to go directly between them else if ( isflagset(FLT_NATS) and isflagset(FLT_NATB) ) { log(1, "Both Clients are behind NAT");
# Store the destination domain into an AVP avp_printf("i:450", "$dd");
if ( avp_check("i:450", "eq/$src_ip/g") ) { xlog("L_INFO", "Detected Two Clients Behind the Same NAT - Disabling RTPproxy");
# Do not use rtpproxy as the clients seem to be behind the same NAT resetflag(FLT_NATS); resetflag(FLT_NATB); } } } #!endif return; }
# RTPProxy control route[RTPPROXY] { #!ifdef WITH_NAT if (is_method("BYE")) { unforce_rtp_proxy(); } else if (is_method("INVITE")){ force_rtp_proxy(); } if (!has_totag()) add_rr_param(";nat=yes"); #!endif return; }
Rgds Deon
On Dec 20, 2010, at 2:41 PM, Daniel-Constantin Mierla wrote:
Hello,
On 12/20/10 11:25 AM, Deon Vermeulen wrote:
Hi List
Can someone please help me?
I need to implement PBX Services for a customer that has 10 IP Phones at his Main site and then 20 IP Phones located over 5 Branches.
My goal is to have RTP go end to end and not proxied.
I had a look at the below link and tried it, but with no luck.
http://kamailio.org/dokuwiki/doku.php/examples:caller-callee-behind-same-nat
Here is a partial output of my kamailio.cfg file if someone would be so kind to help me.
#!ifdef WITH_NAT # ----- rtpproxy params ----- modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:7722")
# ----- nathelper params ----- modparam("nathelper", "natping_interval", 30) modparam("nathelper", "ping_nated_only", 1) modparam("nathelper", "sipping_bflag", FLB_NATSIPPING) modparam("nathelper", "sipping_from", "sip:pinger@x.x.x.x")
# params needed for NAT traversal in other modules modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)") modparam("usrloc", "nat_bflag", FLB_NATB) #!endif
####### Routing Logic ########
# Main SIP request routing logic # - processing of any incoming SIP request starts with this route route {
# per request initial checks route(REQINIT); # NAT detection route(NAT);
# Caller NAT detection route route[NAT] { #!ifdef WITH_NAT force_rport(); if (nat_uac_test("19")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); } setflag(FLT_NATS);
}
#!endif return; }
# RTPProxy control route[RTPPROXY] { #!ifdef WITH_NAT if (is_method("BYE")) { unforce_rtp_proxy(); } else if (is_method("INVITE")){ force_rtp_proxy(); } if (!has_totag()) add_rr_param(";nat=yes"); #!endif return; }
what you have to do is to check if the source is natted and $si==$dd, then callee and caller are behind same nat (if there is one level of nat), so you don't force rtpproxy usage.
Cheers, Daniel
-- Daniel-Constantin Mierla Kamailio (OpenSER) Advanced Training Jan 24-26, 2011, Irvine, CA, USA http://www.asipto.com
Hello,
that's a hint for a very old version, where cfg file language didn't had support for variables and avpops module was used for comparison (as you could see, $dd is stored in an avp and them compared with src ip -- no longer need for such workaround, just do if($si==$dd) ...).
You have to plug the when you force usage of rtp proxy, so you skip it in such cases.
Cheers, Daniel
On 12/20/10 2:32 PM, Deon Vermeulen wrote:
Hi Daniel
Thank you so much for your feedback.
I came upon the below post, but I'm unable to find the example Norman posted. http://www.mail-archive.com/users@openser.org/msg01932.html
In short the end solution is:
# If both clients are behind nat we can check to see if they are behind the same # external IP and optimize the media path to go directly between them else if ( isflagset(2) and isflagset(3) ) { log(1, "Both Clients are behind NAT");
# Store the destination domain into an AVP avp_printf("i:450", "$dd"); if ( avp_check("i:450", "eq/$src_ip/g") ) { xlog("L_INFO", "Detected Two Clients Behind the Same
NAT - Disabling Mediaproxy");
# Do not use mediaproxy as the clients seem to be
behind the same NAT resetflag(2); resetflag(3); }
}
I haven't tested yet, but would I be right in saying my config should look something like:
####### Routing Logic ########
# Main SIP request routing logic # - processing of any incoming SIP request starts with this route route {
# per request initial checks route(REQINIT); # NAT detection route(NAT);
# Caller NAT detection route route[NAT] { #!ifdef WITH_NAT force_rport(); if (nat_uac_test("19")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); } setflag(FLT_NATS);
# If both clients are behind nat we can check to see if
they are behind the same # external IP and optimize the media path to go directly between them else if ( isflagset(FLT_NATS) and isflagset(FLT_NATB) ) { log(1, "Both Clients are behind NAT");
# Store the destination domain into an AVP avp_printf("i:450", "$dd"); if ( avp_check("i:450",
"eq/$src_ip/g") ) {
xlog("L_INFO", "Detected Two Clients Behind the Same NAT - Disabling RTPproxy");
# Do not use rtpproxy as the clients
seem to be behind the same NAT
resetflag(FLT_NATS);
resetflag(FLT_NATB); } } } #!endif return; }
# RTPProxy control route[RTPPROXY] { #!ifdef WITH_NAT if (is_method("BYE")) { unforce_rtp_proxy(); } else if (is_method("INVITE")){ force_rtp_proxy(); } if (!has_totag()) add_rr_param(";nat=yes"); #!endif return; }
Rgds Deon
On Dec 20, 2010, at 2:41 PM, Daniel-Constantin Mierla wrote:
Hello,
On 12/20/10 11:25 AM, Deon Vermeulen wrote:
Hi List
Can someone please help me?
I need to implement PBX Services for a customer that has 10 IP Phones at his Main site and then 20 IP Phones located over 5 Branches.
My goal is to have RTP go end to end and not proxied.
I had a look at the below link and tried it, but with no luck.
http://kamailio.org/dokuwiki/doku.php/examples:caller-callee-behind-same-nat
Here is a partial output of my kamailio.cfg file if someone would be so kind to help me.
#!ifdef WITH_NAT # ----- rtpproxy params ----- modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:7722")
# ----- nathelper params ----- modparam("nathelper", "natping_interval", 30) modparam("nathelper", "ping_nated_only", 1) modparam("nathelper", "sipping_bflag", FLB_NATSIPPING) modparam("nathelper", "sipping_from", "sip:pinger@x.x.x.x")
# params needed for NAT traversal in other modules modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)") modparam("usrloc", "nat_bflag", FLB_NATB) #!endif
####### Routing Logic ########
# Main SIP request routing logic # - processing of any incoming SIP request starts with this route route {
# per request initial checks route(REQINIT); # NAT detection route(NAT);
# Caller NAT detection route route[NAT] { #!ifdef WITH_NAT force_rport(); if (nat_uac_test("19")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); } setflag(FLT_NATS);
}
#!endif return; }
# RTPProxy control route[RTPPROXY] { #!ifdef WITH_NAT if (is_method("BYE")) { unforce_rtp_proxy(); } else if (is_method("INVITE")){ force_rtp_proxy(); } if (!has_totag()) add_rr_param(";nat=yes"); #!endif return; }
what you have to do is to check if the source is natted and $si==$dd, then callee and caller are behind same nat (if there is one level of nat), so you don't force rtpproxy usage.
Cheers, Daniel
-- Daniel-Constantin Mierla Kamailio (OpenSER) Advanced Training Jan 24-26, 2011, Irvine, CA, USA http://www.asipto.com
Thanks again.
So then my config should look something like:
# Caller NAT detection route route[NAT] { #!ifdef WITH_NAT force_rport(); if (nat_uac_test("19")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); } setflag(FLT_NATS);
# If both clients are behind nat we can check to see if they are behind the same # external IP and optimize the media path to go directly between them else if ( $si==$dd || $si==rd) { xlog("L_INFO", "Detected Two Clients Behind the Same NAT - Disabling RTPproxy");
# Do not use rtpproxy as the clients seem to be behind the same NAT resetflag(FLT_NATS); resetflag(FLT_NATB); } } } #!endif return; }
# RTPProxy control route[RTPPROXY] { #!ifdef WITH_NAT if (is_method("BYE")) { unforce_rtp_proxy(); } else if (is_method("INVITE")){ force_rtp_proxy(); } if (!has_totag()) add_rr_param(";nat=yes"); #!endif return; }
Rgds Deon
On Dec 20, 2010, at 3:37 PM, Daniel-Constantin Mierla wrote:
Hello,
that's a hint for a very old version, where cfg file language didn't had support for variables and avpops module was used for comparison (as you could see, $dd is stored in an avp and them compared with src ip -- no longer need for such workaround, just do if($si==$dd) ...).
You have to plug the when you force usage of rtp proxy, so you skip it in such cases.
Cheers, Daniel
On 12/20/10 2:32 PM, Deon Vermeulen wrote:
Hi Daniel
Thank you so much for your feedback.
I came upon the below post, but I'm unable to find the example Norman posted. http://www.mail-archive.com/users@openser.org/msg01932.html
In short the end solution is:
# If both clients are behind nat we can check to see if they are behind the same # external IP and optimize the media path to go directly between them else if ( isflagset(2) and isflagset(3) ) { log(1, "Both Clients are behind NAT");
# Store the destination domain into an AVP avp_printf("i:450", "$dd"); if ( avp_check("i:450", "eq/$src_ip/g") ) { xlog("L_INFO", "Detected Two Clients Behind the Same NAT - Disabling Mediaproxy"); # Do not use mediaproxy as the clients seem to be behind the same NAT resetflag(2); resetflag(3); } }
I haven't tested yet, but would I be right in saying my config should look something like:
####### Routing Logic ########
# Main SIP request routing logic # - processing of any incoming SIP request starts with this route route {
# per request initial checks route(REQINIT); # NAT detection route(NAT);
# Caller NAT detection route route[NAT] { #!ifdef WITH_NAT force_rport(); if (nat_uac_test("19")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); } setflag(FLT_NATS);
# If both clients are behind nat we can check to see if they are behind the same # external IP and optimize the media path to go directly between them else if ( isflagset(FLT_NATS) and isflagset(FLT_NATB) ) { log(1, "Both Clients are behind NAT"); # Store the destination domain into an AVP avp_printf("i:450", "$dd"); if ( avp_check("i:450", "eq/$src_ip/g") ) { xlog("L_INFO", "Detected Two Clients Behind the Same NAT - Disabling RTPproxy"); # Do not use rtpproxy as the clients seem to be behind the same NAT resetflag(FLT_NATS); resetflag(FLT_NATB); } } }
#!endif return; }
# RTPProxy control route[RTPPROXY] { #!ifdef WITH_NAT if (is_method("BYE")) { unforce_rtp_proxy(); } else if (is_method("INVITE")){ force_rtp_proxy(); } if (!has_totag()) add_rr_param(";nat=yes"); #!endif return; }
Rgds Deon
On Dec 20, 2010, at 2:41 PM, Daniel-Constantin Mierla wrote:
Hello,
On 12/20/10 11:25 AM, Deon Vermeulen wrote:
Hi List
Can someone please help me?
I need to implement PBX Services for a customer that has 10 IP Phones at his Main site and then 20 IP Phones located over 5 Branches.
My goal is to have RTP go end to end and not proxied.
I had a look at the below link and tried it, but with no luck.
http://kamailio.org/dokuwiki/doku.php/examples:caller-callee-behind-same-nat
Here is a partial output of my kamailio.cfg file if someone would be so kind to help me.
#!ifdef WITH_NAT # ----- rtpproxy params ----- modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:7722")
# ----- nathelper params ----- modparam("nathelper", "natping_interval", 30) modparam("nathelper", "ping_nated_only", 1) modparam("nathelper", "sipping_bflag", FLB_NATSIPPING) modparam("nathelper", "sipping_from", "sip:pinger@x.x.x.x")
# params needed for NAT traversal in other modules modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)") modparam("usrloc", "nat_bflag", FLB_NATB) #!endif
####### Routing Logic ########
# Main SIP request routing logic # - processing of any incoming SIP request starts with this route route {
# per request initial checks route(REQINIT); # NAT detection route(NAT);
# Caller NAT detection route route[NAT] { #!ifdef WITH_NAT force_rport(); if (nat_uac_test("19")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); } setflag(FLT_NATS);
}
#!endif return; }
# RTPProxy control route[RTPPROXY] { #!ifdef WITH_NAT if (is_method("BYE")) { unforce_rtp_proxy(); } else if (is_method("INVITE")){ force_rtp_proxy(); } if (!has_totag()) add_rr_param(";nat=yes"); #!endif return; }
what you have to do is to check if the source is natted and $si==$dd, then callee and caller are behind same nat (if there is one level of nat), so you don't force rtpproxy usage.
Cheers, Daniel
-- Daniel-Constantin Mierla Kamailio (OpenSER) Advanced Training Jan 24-26, 2011, Irvine, CA, USA http://www.asipto.com
-- Daniel-Constantin Mierla Kamailio (OpenSER) Advanced Training Jan 24-26, 2011, Irvine, CA, USA http://www.asipto.com
Destination uri (for $dd) is set after lookup("location"). If you use default config, route[NAT] is executed before.
Cheers, Daniel
On 12/20/10 2:48 PM, Deon Vermeulen wrote:
Thanks again.
So then my config should look something like:
# Caller NAT detection route route[NAT] { #!ifdef WITH_NAT force_rport(); if (nat_uac_test("19")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); } setflag(FLT_NATS);
# If both clients are behind nat we can check to see if
they are behind the same # external IP and optimize the media path to go directly between them else if ( $si==$dd || $si==rd) { xlog("L_INFO", "Detected Two Clients Behind the Same NAT - Disabling RTPproxy");
# Do not use rtpproxy as the clients
seem to be behind the same NAT resetflag(FLT_NATS); resetflag(FLT_NATB); } } } #!endif return; }
# RTPProxy control route[RTPPROXY] { #!ifdef WITH_NAT if (is_method("BYE")) { unforce_rtp_proxy(); } else if (is_method("INVITE")){ force_rtp_proxy(); } if (!has_totag()) add_rr_param(";nat=yes"); #!endif return; }
Rgds Deon
On Dec 20, 2010, at 3:37 PM, Daniel-Constantin Mierla wrote:
Hello,
that's a hint for a very old version, where cfg file language didn't had support for variables and avpops module was used for comparison (as you could see, $dd is stored in an avp and them compared with src ip -- no longer need for such workaround, just do if($si==$dd) ...).
You have to plug the when you force usage of rtp proxy, so you skip it in such cases.
Cheers, Daniel
On 12/20/10 2:32 PM, Deon Vermeulen wrote:
Hi Daniel
Thank you so much for your feedback.
I came upon the below post, but I'm unable to find the example Norman posted. http://www.mail-archive.com/users@openser.org/msg01932.html
In short the end solution is:
# If both clients are behind nat we can check to see if they are behind the same # external IP and optimize the media path to go directly between them else if ( isflagset(2) and isflagset(3) ) { log(1, "Both Clients are behind NAT");
# Store the destination domain into an AVP avp_printf("i:450", "$dd"); if ( avp_check("i:450", "eq/$src_ip/g") ) { xlog("L_INFO", "Detected Two Clients Behind the Same
NAT - Disabling Mediaproxy");
# Do not use mediaproxy as the clients seem to be
behind the same NAT resetflag(2); resetflag(3); }
}
I haven't tested yet, but would I be right in saying my config should look something like:
####### Routing Logic ########
# Main SIP request routing logic # - processing of any incoming SIP request starts with this route route {
# per request initial checks route(REQINIT); # NAT detection route(NAT);
# Caller NAT detection route route[NAT] { #!ifdef WITH_NAT force_rport(); if (nat_uac_test("19")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); } setflag(FLT_NATS);
# If both clients are behind nat we can check to see
if they are behind the same # external IP and optimize the media path to go directly between them else if ( isflagset(FLT_NATS) and isflagset(FLT_NATB) ) { log(1, "Both Clients are behind NAT");
# Store the destination domain into an AVP avp_printf("i:450", "$dd"); if ( avp_check("i:450",
"eq/$src_ip/g") ) {
xlog("L_INFO", "Detected Two Clients Behind the Same NAT - Disabling RTPproxy");
# Do not use rtpproxy as the clients
seem to be behind the same NAT
resetflag(FLT_NATS);
resetflag(FLT_NATB); } } } #!endif return; }
# RTPProxy control route[RTPPROXY] { #!ifdef WITH_NAT if (is_method("BYE")) { unforce_rtp_proxy(); } else if (is_method("INVITE")){ force_rtp_proxy(); } if (!has_totag()) add_rr_param(";nat=yes"); #!endif return; }
Rgds Deon
On Dec 20, 2010, at 2:41 PM, Daniel-Constantin Mierla wrote:
Hello,
On 12/20/10 11:25 AM, Deon Vermeulen wrote:
Hi List
Can someone please help me?
I need to implement PBX Services for a customer that has 10 IP Phones at his Main site and then 20 IP Phones located over 5 Branches.
My goal is to have RTP go end to end and not proxied.
I had a look at the below link and tried it, but with no luck.
http://kamailio.org/dokuwiki/doku.php/examples:caller-callee-behind-same-nat
Here is a partial output of my kamailio.cfg file if someone would be so kind to help me.
#!ifdef WITH_NAT # ----- rtpproxy params ----- modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:7722")
# ----- nathelper params ----- modparam("nathelper", "natping_interval", 30) modparam("nathelper", "ping_nated_only", 1) modparam("nathelper", "sipping_bflag", FLB_NATSIPPING) modparam("nathelper", "sipping_from", "sip:pinger@x.x.x.x")
# params needed for NAT traversal in other modules modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)") modparam("usrloc", "nat_bflag", FLB_NATB) #!endif
####### Routing Logic ########
# Main SIP request routing logic # - processing of any incoming SIP request starts with this route route {
# per request initial checks route(REQINIT); # NAT detection route(NAT);
# Caller NAT detection route route[NAT] { #!ifdef WITH_NAT force_rport(); if (nat_uac_test("19")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); } setflag(FLT_NATS);
}
#!endif return; }
# RTPProxy control route[RTPPROXY] { #!ifdef WITH_NAT if (is_method("BYE")) { unforce_rtp_proxy(); } else if (is_method("INVITE")){ force_rtp_proxy(); } if (!has_totag()) add_rr_param(";nat=yes"); #!endif return; }
what you have to do is to check if the source is natted and $si==$dd, then callee and caller are behind same nat (if there is one level of nat), so you don't force rtpproxy usage.
Cheers, Daniel
-- Daniel-Constantin Mierla Kamailio (OpenSER) Advanced Training Jan 24-26, 2011, Irvine, CA, USA http://www.asipto.com http://www.asipto.com/
-- Daniel-Constantin Mierla Kamailio (OpenSER) Advanced Training Jan 24-26, 2011, Irvine, CA, USA http://www.asipto.com
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