[Users] Multiple IP in one box
Iqbal
iqbal at gigo.co.uk
Thu Nov 24 12:32:26 CET 2005
have a look at a call trace to see if the contact headers and sdp are
all correct after passing through mediaproxy
Iqbal
Fernando Rodriguez wrote:
>Iqbal,
>
>Actualy the conection between the atas is made the problem is that only one
>side can hear the other so the voice is not going tru.
>
>Of I run ser/openser with out forking I see it listening to all the ip
>addresses, I think is more an issue of using media proxy or rtpproxy.
>
>The 10.xx and 192.169.xx networks can ping and do anything to the internet
>the problem is from the internet to the inside ..
>
>
>
>-----Mensaje original-----
>De: Iqbal [mailto:iqbal at gigo.co.uk]
>Enviado el: Martes, 22 de Noviembre de 2005 10:38 a.m.
>Para: Fernando Rodriguez
>Asunto: Re: [Users] Multiple IP in one box
>
>Hi
>
>You have 3 IP to which you want ser to listen to, to allow ATA to make
>calls, why not just tell the ATA the sip proxy addess, instead and let
>it deal with the NAT issue and henceonly listen to one IP address, I
>mean can your ATA on the 10.254 network see the public IP address vis NA
>translation. If not get SER to listen to all the IP address, by using
>the listen command
>
>iqbal
>
>Fernando Rodriguez wrote:
>
>
>
>>Im trying to use openser as a Proxy for different interfaces in one
>>box I have tried almos averithing to make it work properly but for
>>some reason I cant.
>>
>>
>>
>>Here is my setup and I hope someone can helpme or guide me in the
>>right way.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>One Linux-OpenSer box with 4 netcards
>>
>>
>>
>>1 Has a public ip
>>
>>2 Has a 192.168.23.10 ip
>>
>>3 Has a 10.254.10.240 ip
>>
>>4 Is not being used
>>
>>
>>
>>I want to be able to make calls from the ATAs in all the different
>>networks, but the fact is that as it is now I cant, I want to know if
>>I have to set up multiple media proxies or rtpproxy if I have to use a
>>proxy dispatcher or not.
>>
>>
>>
>>This is my configuration file
>>
>>
>>
>>
>>
>>
>>
>>
>>
>># ----------- global configuration parameters ------------------------
>>
>>
>>
>>#debug=9 # debug level (cmd line: -dddddddddd)
>>
>>fork=yes
>>
>>log_stderror=no # (cmd line: -E)
>>
>>
>>
>>/* Uncomment these lines to enter debugging mode
>>
>>#fork=no
>>
>>#log_stderror=yes
>>
>>*/
>>
>>
>>
>>check_via=no # (cmd. line: -v)
>>
>>dns=no # (cmd. line: -r)
>>
>>rev_dns=no # (cmd. line: -R)
>>
>>#port=5060
>>
>>children=4
>>
>>fifo="/tmp/openser_fifo"
>>
>>fifo_db_url="mysql://openser:openserrw@localhost/openser"
>>
>>
>>
>>alias="test.net"
>>
>># ------------------ module loading ----------------------------------
>>
>>
>>
>>#loadmodule "/usr/lib/openser/modules/acc.so"
>>
>>loadmodule "/usr/lib/openser/modules/mysql.so"
>>
>>loadmodule "/usr/lib/openser/modules/sl.so"
>>
>>loadmodule "/usr/lib/openser/modules/tm.so"
>>
>>loadmodule "/usr/lib/openser/modules/rr.so"
>>
>>loadmodule "/usr/lib/openser/modules/maxfwd.so"
>>
>>loadmodule "/usr/lib/openser/modules/usrloc.so"
>>
>>loadmodule "/usr/lib/openser/modules/registrar.so"
>>
>>loadmodule "/usr/lib/openser/modules/auth.so"
>>
>>loadmodule "/usr/lib/openser/modules/auth_db.so"
>>
>>loadmodule "/usr/lib/openser/modules/uri.so"
>>
>>loadmodule "/usr/lib/openser/modules/uri_db.so"
>>
>>loadmodule "/usr/lib/openser/modules/domain.so"
>>
>>loadmodule "/usr/lib/openser/modules/mediaproxy.so"
>>
>>loadmodule "/usr/lib/openser/modules/nathelper.so"
>>
>>loadmodule "/usr/lib/openser/modules/textops.so"
>>
>>
>>
>>
>>
>># ----------------- setting module-specific parameters ---------------
>>
>># -- usrloc params --
>>
>>
>>
>>modparam("usrloc", "db_mode", 2)
>>
>>modparam("usrloc", "timer_interval", 10)
>>
>>modparam("usrloc", "db_url",
>>"mysql://openser:openserrw@localhost/openser")
>>
>>
>>
>># -- auth params --
>>
>>modparam("auth_db", "db_url",
>>"mysql://openser:openserrw@localhost/openser")
>>
>>modparam("auth_db", "calculate_ha1", yes)
>>
>>modparam("auth_db", "password_column", "password")
>>
>>
>>
>># -- rr params --
>>
>># add value to ;lr param to make some broken UAs happy
>>
>>modparam("rr", "enable_full_lr", 1)
>>
>>
>>
>>
>>
>># -- tm Params --
>>
>>modparam("tm", "fr_inv_timer", 45 )
>>
>>modparam("tm", "fr_timer", 12 )
>>
>>
>>
>>modparam("registrar", "nat_flag", 6)
>>
>>
>>
>>
>>
>>modparam("nathelper", "rtpproxy_disable", 1)
>>
>>#modparam("nathelper", "natping_interval", 30)
>>
>>#modparam("nathelper", "sipping_from", "sip:ping at sipserver.net")
>>
>>
>>
>>
>>
>>#modparam("mediaproxy", "ping_nated_only", 0) # Ping only clients
>>behind NAT
>>
>>modparam("mediaproxy", "natping_interval", 20)
>>
>>modparam("mediaproxy", "mediaproxy_socket", "/var/run/mediaproxy.sock")
>>
>>
>>
>>modparam("registrar", "nat_flag", 6)
>>
>>
>>
>>
>>
>># ------------------------- request routing logic -------------------
>>
>>
>>
>># main routing logic
>>
>>
>>
>>route {
>>
>>
>>
>> #
>>-----------------------------------------------------------------
>>
>> # Procesos de Limpieza
>>
>> #
>>-----------------------------------------------------------------
>>
>> if (!mf_process_maxfwd_header("10")) {
>>
>> sl_send_reply("483", "Too Many Hops");
>>
>> break;
>>
>> };
>>
>>
>>
>> if (msg:len > max_len) {
>>
>> sl_send_reply("513", "Message Overflow");
>>
>> break;
>>
>> };
>>
>>
>>
>> #
>>-----------------------------------------------------------------
>>
>> # Registro
>>
>> #
>>-----------------------------------------------------------------
>>
>> if (method!="REGISTER") {
>>
>> log(1, "Area de Registro\n");
>>
>>
>>
>> record_route();
>>
>> };
>>
>>
>>
>>
>>
>> #
>>-----------------------------------------------------------------
>>
>> # Call Tear Down Section
>>
>> #
>>-----------------------------------------------------------------
>>
>> if (method=="BYE" || method=="CANCEL") {
>>
>> log(1, "Proceso de fin de llamada\n");
>>
>> end_media_session();
>>
>> };
>>
>> #
>>-----------------------------------------------------------------
>>
>> # Loose Route Section
>>
>> #
>>-----------------------------------------------------------------
>>
>> if (loose_route()) {
>>
>>
>>
>> if (has_totag() && (method=="INVITE" || method=="ACK")) {
>>
>>
>>
>> if (client_nat_test("3") ||
>>search("^Route:.*;nat=yes")) {
>>
>> setflag(6);
>>
>> use_media_proxy();
>>
>> };
>>
>> };
>>
>>
>>
>> route(1);
>>
>> break;
>>
>> };
>>
>>
>>
>> #
>>-----------------------------------------------------------------
>>
>> # Call Type Processing Section
>>
>> #
>>-----------------------------------------------------------------
>>
>>
>>
>> if (uri!=myself) {
>>
>> route(1);
>>
>> break;
>>
>> };
>>
>>
>>
>> if (uri==myself) {
>>
>>
>>
>> if (method=="CANCEL") {
>>
>> route(3);
>>
>> break;
>>
>> } else if (method=="INVITE") {
>>
>> route(3);
>>
>> break;
>>
>> } else if (method=="REGISTER") {
>>
>> route(2);
>>
>> break;
>>
>> };
>>
>>
>>
>> lookup("aliases");
>>
>> if (uri!=myself) {
>>
>> route(1);
>>
>> break;
>>
>> };
>>
>>
>>
>> if (!lookup("location")) {
>>
>> sl_send_reply("404", "User Not Found");
>>
>> break;
>>
>> };
>>
>> };
>>
>>
>>
>> route(1);
>>
>>}
>>
>>
>>
>>route[1] {
>>
>>
>>
>> #
>>-----------------------------------------------------------------
>>
>> # Default Message Handler
>>
>> #
>>-----------------------------------------------------------------
>>
>>
>>
>> t_on_reply("1");
>>
>>
>>
>> if (!t_relay()) {
>>
>>
>>
>> if (method=="INVITE" || method=="ACK") {
>>
>> end_media_session();
>>
>> };
>>
>>
>>
>> sl_reply_error();
>>
>> };
>>
>>}
>>
>>
>>
>>route[2] {
>>
>>
>>
>> #
>>-----------------------------------------------------------------
>>
>> # REGISTER Message Handler
>>
>> # ----------------------------------------------------------------
>>
>>
>>
>> sl_send_reply("100", "Trying");
>>
>>
>>
>># if(dst_ip==192.168.1.1) {
>>
>># log("message received on loopback interface\n");
>>
>># setflag(7);
>>
>># fix_nated_register();
>>
>># force_rport();
>>
>># };
>>
>># if(dst_ip==192.168.108.253) {
>>
>># log("message received on loopback interface\n");
>>
>># setflag(6);
>>
>># fix_nated_register();
>>
>># force_rport();
>>
>># };
>>
>>
>>
>> if (!www_authorize("test.net","subscriber")) {
>>
>> www_challenge("test.net","0");
>>
>> break;
>>
>> };
>>
>>
>>
>> if (!check_to()) {
>>
>> sl_send_reply("401", "Unauthorized");
>>
>> break;
>>
>> };
>>
>>
>>
>> consume_credentials();
>>
>>
>>
>> if (!save("location")) {
>>
>> sl_reply_error();
>>
>> };
>>
>>fix_nated_register();
>>
>>}
>>
>>
>>
>>route[3] {
>>
>>
>>
>> #
>>-----------------------------------------------------------------
>>
>> # CANCEL and INVITE Message Handler
>>
>> #
>>-----------------------------------------------------------------
>>
>>
>>
>> lookup("aliases");
>>
>> if (uri!=myself) {
>>
>> route(1);
>>
>> break;
>>
>> };
>>
>>
>>
>> if (!lookup("location")) {
>>
>> sl_send_reply("404", "User Not Found");
>>
>> break;
>>
>> };
>>
>>
>>
>> if (method=="CANCEL") {
>>
>> route(1);
>>
>> break;
>>
>> };
>>
>>
>>
>> if (!proxy_authorize("","subscriber")) {
>>
>> proxy_challenge("","0");
>>
>> break;
>>
>> } else if (!check_from()) {
>>
>> sl_send_reply("403", "Use From=ID");
>>
>> break;
>>
>> };
>>
>>
>>
>> consume_credentials();
>>
>>
>>
>> #
>>------------------------------------------------------------------------
>>
>> # Reglas de LLamada
>>
>> #
>>------------------------------------------------------------------------
>>
>>
>>
>> if(uri=~"(^sip:1[0-9]*@.*)" &&
>>from_uri=~"(^sip:2[0-9]*@.*)") {
>>
>> log(1, "Llamada de extenciones 1xxx a 2xxx\n");
>>
>> use_media_proxy();
>>
>> };
>>
>>
>>
>> if(uri=~"(^sip:1[0-9]*@.*)" &&
>>from_uri=~"(^sip:3[0-9]*@.*)") {
>>
>> log(1, "Llamada de extenciones 1xxx a 3xxx\n");
>>
>> fix_contact();
>>
>> use_media_proxy();
>>
>> };
>>
>>
>>
>> if(uri=~"(^sip:1[0-9]*@.*)" &&
>>from_uri=~"(^sip:4[0-9]*@.*)") {
>>
>> log(1, "Llamada de extenciones 1xxx a 4xxx\n");
>>
>> fix_contact();
>>
>> use_media_proxy();
>>
>> };
>>
>>
>>
>> if(uri=~"(^sip:2[0-9]*@.*)" &&
>>from_uri=~"(^sip:1[0-9]*@.*)") {
>>
>> log(1, "Llamada de extenciones 2xxx a 1xxx\n");
>>
>> fix_contact();
>>
>> use_media_proxy();
>>
>> };
>>
>>
>>
>> if(uri=~"(^sip:2[0-9]*@.*)" &&
>>from_uri=~"(^sip:3[0-9]*@.*)") {
>>
>> log(1, "Llamada de extenciones 2xxx a 3xxx\n");
>>
>> fix_contact();
>>
>> use_media_proxy();
>>
>> };
>>
>>
>>
>> if(uri=~"(^sip:2[0-9]*@.*)" &&
>>from_uri=~"(^sip:4[0-9]*@.*)") {
>>
>> log(1, "Llamada de extenciones 2xxx a 4xxx\n");
>>
>> fix_contact();
>>
>> use_media_proxy();
>>
>> };
>>
>>
>>
>> if(uri=~"(^sip:3[0-9]*@.*)" &&
>>from_uri=~"(^sip:1[0-9]*@.*)") {
>>
>> log(1, "Llamada de extenciones 3xxx a 1xxx\n");
>>
>> fix_contact();
>>
>> use_media_proxy();
>>
>> };
>>
>>
>>
>> if(uri=~"(^sip:3[0-9]*@.*)" &&
>>from_uri=~"(^sip:2[0-9]*@.*)") {
>>
>> log(1, "Llamada de extenciones 3xxx a 2xxx\n");
>>
>> fix_contact();
>>
>> use_media_proxy();
>>
>> };
>>
>>
>>
>> if(uri=~"(^sip:3[0-9]*@.*)" &&
>>from_uri=~"(^sip:4[0-9]*@.*)") {
>>
>> log(1, "Llamada de extenciones 3xxx a 4xxx\n");
>>
>> fix_contact();
>>
>> use_media_proxy();
>>
>> };
>>
>>
>>
>> if(uri=~"(^sip:4[0-9]*@.*)" &&
>>from_uri=~"(^sip:1[0-9]*@.*)") {
>>
>> log(1, "Llamada de extenciones 4xxx a 1xxx\n");
>>
>> fix_contact();
>>
>> use_media_proxy();
>>
>> };
>>
>>
>>
>> if(uri=~"(^sip:4[0-9]*@.*)" &&
>>from_uri=~"(^sip:2[0-9]*@.*)") {
>>
>> log(1, "Llamada de extenciones 4xxx a 2xxx\n");
>>
>> fix_contact();
>>
>> use_media_proxy();
>>
>> };
>>
>>
>>
>> if(uri=~"(^sip:4[0-9]*@.*)" &&
>>from_uri=~"(^sip:3[0-9]*@.*)") {
>>
>> log(1, "Llamada de extenciones 4xxx a 3xxx\n");
>>
>> fix_contact();
>>
>> use_media_proxy();
>>
>> };
>>
>>
>>
>> route(1);
>>
>>}
>>
>>
>>
>>onreply_route[1] {
>>
>>
>>
>> #if ((isflagset(6) || isflagset(7)) &&
>>(status=~"(180)|(183)|2[0-9][0-9]")) {
>>
>>
>>
>> # if (!search("^Content-Length:\ +0")) {
>>
>> log(1, "Mensaje de prueba en reply route\n");
>>
>> fix_contact();
>>
>> use_media_proxy();
>>
>> # };
>>
>> # };
>>
>>
>>
>>}
>>
>>
>>
>>
>>
>>As you can see I use different starting numbers for the ATA for each
>>of the interfaces, I tested using only one mediaproxy listening to
>>127.0.0.1 but I have tried a lot of configurations, all the clients
>>register perfectly but cant seem to call one another exept the ones
>>that are on the same interface.
>>
>>
>>
>>Im using fedora core 3 with openser 0.95 mediaproxy 1.42
>>
>>
>>
>>Hope any one can help me or point me the way to do this of if its not
>>viable or cant be done.
>>
>>
>>
>>Thanks a lot for your kind help
>>
>>
>>
>>Yours truly
>>
>>
>>
>>
>>
>>Fernando Rodriguez V.
>>
>>frod at aitelecom.net <mailto:frod at aitelecom.net>
>>
>>AITelecom S.A. de C.V.
>>
>>http://www.aitelecom.net
>>
>>
>>
>>
>>
>>
>>
>>------------------------------------------------------------------------
>>
>>_______________________________________________
>>Users mailing list
>>Users at openser.org
>>http://openser.org/cgi-bin/mailman/listinfo/users
>>
>>
>>
>>
>
>
>.
>
>
>
More information about the Users
mailing list