You have to create a dialing plan for openser also.
In your script, after the block: if (!uri==myself) { # mark routing logic in request append_hf("P-hint: outbound\r\n"); route(1); break; };
(Just four your information, you don't need "if (uri==myself)" because will be true all the time)
Back to dialing plan, you have to add some rules like:
if(uri=~"^sip:05[0-9]+@") { # call to mobile rewritehost("192.168.1.35 mailto:20105353490056@192.168.1.35%29"); prefix("201"); route(1); break; }
Daniel
On 06/20/05 11:00, Ozan Blotter wrote:
Dear Team,
I know this is annoying to post nearly same things but still no answer :( Is it really so hard or can anybody tell me why this is not working.
Basically the system is as :
ATA 1 : 12345 (registered and can call 54321, no problem) This is Zyxel P2002. ATA 2 : 54321 (registered and can call 12345, no problem) This is Zyxel P2002 too. ANALOG FXO : 201 (registered as 201, for test purposes i only registered one port of it) This is Eusso 7104-S 4 Port Analog FXO and i can add 3 more ports as available.
With Brekeke's Ondo SIP Proxy, i created a simple dial-plan and it worked, even i can add more prefixes no problem. But in SER i cannot :( I'm using OpenSER. Normally it's like when i want to call a GSM, proxy simply adds a prefix 201 which is same with registered sip number for regarding analog port and forwards it (looks like sip:20105353490056@192.168.1.35) mailto:20105353490056@192.168.1.35%29 to Gateway and Gateway simply strips 201 from it and dials 05353490056, yes it connects. But what this same does not work on SER, any ideas because it's very boring to play all day and night ?
Thanks....
This is my current SER.CFG as it comes with OPENSER. Can you please help me to add lines where or/and add remove somethings...
[root@localhost openser]# cat ser.cfg # # $Id: openser.cfg,v 1.1.1.1 2005/06/13 16:47:30 bogdan_iancu Exp $ # # simple quick-start config script #
# ----------- global configuration parameters ------------------------
#debug=3 # 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"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database #loadmodule "/usr/local/lib/ser/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/textops.so"
# Uncomment this if you want digest authentication # mysql.so must be loaded ! #loadmodule "/usr/lib/openser/modules/auth.so" #loadmodule "/usr/lib/openser/modules/auth_db.so"
# ----------------- setting module-specific parameters ---------------
# -- usrloc params --
modparam("usrloc", "db_mode", 0)
# Uncomment this if you want to use SQL database # for persistent storage and comment the previous line #modparam("usrloc", "db_mode", 2)
# -- auth params -- # Uncomment if you are using auth module # #modparam("auth_db", "calculate_ha1", yes) # # If you set "calculate_ha1" parameter to yes (which true in this config), # uncomment also the following parameter) # #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)
# ------------------------- request routing logic -------------------
# main routing logic
route{
# initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; }; # we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol if (!method=="REGISTER") record_route(); # subsequent messages withing a dialog should take the # path determined by record-routing if (loose_route()) { # mark routing logic in request append_hf("P-hint: rr-enforced\r\n"); route(1); break; }; if (!uri==myself) { # mark routing logic in request append_hf("P-hint: outbound\r\n"); route(1); break; }; # if the request is for other domain use UsrLoc # (in case, it does not work, use the following command # with proper names and addresses in it) if (uri==myself) { if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication # if (!www_authorize("openser.org", "subscriber")) { # www_challenge("openser.org", "0"); # break; # };
save("location"); break; }; lookup("aliases"); if (!uri==myself) { append_hf("P-hint: outbound alias\r\n"); route(1); break; }; # native SIP destinations are handled using our USRLOC DB if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; }; append_hf("P-hint: usrloc applied\r\n"); route(1);
}
route[1] { # send it out now; use stateful forwarding as it works reliably # even for UDP2TCP if (!t_relay()) { sl_reply_error(); }; }
[root@localhost openser]#
Team mailing list Team@openser.org http://openser.org/cgi-bin/mailman/listinfo/team
I've changed the config as follows but still i cannot dial, any ideas ?
# # $Id: openser.cfg,v 1.1.1.1 2005/06/13 16:47:30 bogdan_iancu Exp $ # # simple quick-start config script #
# ----------- global configuration parameters ------------------------
#debug=3 # 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"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database #loadmodule "/usr/local/lib/ser/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/textops.so"
# Uncomment this if you want digest authentication # mysql.so must be loaded ! #loadmodule "/usr/lib/openser/modules/auth.so" #loadmodule "/usr/lib/openser/modules/auth_db.so"
# ----------------- setting module-specific parameters ---------------
# -- usrloc params --
modparam("usrloc", "db_mode", 0)
# Uncomment this if you want to use SQL database # for persistent storage and comment the previous line #modparam("usrloc", "db_mode", 2)
# -- auth params -- # Uncomment if you are using auth module # #modparam("auth_db", "calculate_ha1", yes) # # If you set "calculate_ha1" parameter to yes (which true in this config), # uncomment also the following parameter) # #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)
# ------------------------- request routing logic -------------------
# main routing logic
route{
# initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; };
# we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol if (!method=="REGISTER") record_route();
# subsequent messages withing a dialog should take the # path determined by record-routing if (loose_route()) { # mark routing logic in request append_hf("P-hint: rr-enforced\r\n"); route(1); break; };
if (!uri==myself) { # mark routing logic in request append_hf("P-hint: outbound\r\n"); route(1); break; };
# if the request is for other domain use UsrLoc # (in case, it does not work, use the following command # with proper names and addresses in it)
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication # if (!www_authorize("openser.org", "subscriber")) { # www_challenge("openser.org", "0"); # break; # };
save("location"); break; };
lookup("aliases"); append_hf("P-hint: outbound alias\r\n"); route(1); break;
if(uri=~"^sip:05[0-9]+@") {# call to mobile rewritehost("192.168.1.35"); prefix("201"); route(1); break; };
# native SIP destinations are handled using our USRLOC DB if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; };
append_hf("P-hint: usrloc applied\r\n"); route(1); }
route[1] { # send it out now; use stateful forwarding as it works reliably # even for UDP2TCP if (!t_relay()) { sl_reply_error(); }; }
----- Original Message ----- From: "Daniel-Constantin Mierla" daniel@voice-system.ro To: "Ozan Blotter" cosmocid@ispro.net.tr Cc: users@openser.org Sent: Tuesday, June 21, 2005 1:39 PM Subject: Re: no solution yet :( that's why i've decided to write to you
You have to create a dialing plan for openser also.
In your script, after the block: if (!uri==myself) { # mark routing logic in request append_hf("P-hint: outbound\r\n"); route(1); break; };
(Just four your information, you don't need "if (uri==myself)" because will be true all the time)
Back to dialing plan, you have to add some rules like:
if(uri=~"^sip:05[0-9]+@") { # call to mobile rewritehost("192.168.1.35 mailto:20105353490056@192.168.1.35%29"); prefix("201"); route(1); break; }
Daniel
On 06/20/05 11:00, Ozan Blotter wrote:
Dear Team, I know this is annoying to post nearly same things but still no answer :( Is it really so hard or can anybody tell me why this is not working. Basically the system is as : ATA 1 : 12345 (registered and can call 54321, no problem) This is Zyxel P2002. ATA 2 : 54321 (registered and can call 12345, no problem) This is Zyxel P2002 too. ANALOG FXO : 201 (registered as 201, for test purposes i only registered one port of it) This is Eusso 7104-S 4 Port Analog FXO and i can add 3 more ports as available. With Brekeke's Ondo SIP Proxy, i created a simple dial-plan and it worked, even i can add more prefixes no problem. But in SER i cannot :( I'm using OpenSER. Normally it's like when i want to call a GSM, proxy simply adds a prefix 201 which is same with registered sip number for regarding analog port and forwards it (looks like sip:20105353490056@192.168.1.35) mailto:20105353490056@192.168.1.35%29 to Gateway and Gateway simply strips 201 from it and dials 05353490056, yes it connects. But what this same does not work on SER, any ideas because it's very boring to play all day and night ? Thanks.... This is my current SER.CFG as it comes with OPENSER. Can you please help me to add lines where or/and add remove somethings... [root@localhost openser]# cat ser.cfg # # $Id: openser.cfg,v 1.1.1.1 2005/06/13 16:47:30 bogdan_iancu Exp $ # # simple quick-start config script # # ----------- global configuration parameters ------------------------ #debug=3 # 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" # ------------------ module loading ---------------------------------- # Uncomment this if you want to use SQL database #loadmodule "/usr/local/lib/ser/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/textops.so" # Uncomment this if you want digest authentication # mysql.so must be loaded ! #loadmodule "/usr/lib/openser/modules/auth.so" #loadmodule "/usr/lib/openser/modules/auth_db.so" # ----------------- setting module-specific parameters --------------- # -- usrloc params -- modparam("usrloc", "db_mode", 0) # Uncomment this if you want to use SQL database # for persistent storage and comment the previous line #modparam("usrloc", "db_mode", 2) # -- auth params -- # Uncomment if you are using auth module # #modparam("auth_db", "calculate_ha1", yes) # # If you set "calculate_ha1" parameter to yes (which true in this config), # uncomment also the following parameter) # #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) # ------------------------- request routing logic ------------------- # main routing logic route{ # initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; };
# we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol if (!method=="REGISTER") record_route();
# subsequent messages withing a dialog should take the # path determined by record-routing if (loose_route()) { # mark routing logic in request append_hf("P-hint: rr-enforced\r\n"); route(1); break; }; if (!uri==myself) { # mark routing logic in request append_hf("P-hint: outbound\r\n"); route(1); break; }; # if the request is for other domain use UsrLoc # (in case, it does not work, use the following command # with proper names and addresses in it) if (uri==myself) { if (method=="REGISTER") { # Uncomment this if you want to use digest authentication # if (!www_authorize("openser.org", "subscriber")) { # www_challenge("openser.org", "0"); # break; # }; save("location"); break; }; lookup("aliases"); if (!uri==myself) { append_hf("P-hint: outbound alias\r\n"); route(1); break; }; # native SIP destinations are handled using our USRLOC DB if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; }; append_hf("P-hint: usrloc applied\r\n"); route(1); } route[1] { # send it out now; use stateful forwarding as it works reliably # even for UDP2TCP if (!t_relay()) { sl_reply_error(); }; } [root@localhost openser]#
Team mailing list Team@openser.org http://openser.org/cgi-bin/mailman/listinfo/team
The block:
lookup("aliases"); append_hf("P-hint: outbound alias\r\n"); route(1); break; <<< is wrog, change it with:
if(lookup("aliases")) { if(uri!=myself) { append_hf("P-hint: outbound alias\r\n"); route(1); break; } } <<<
lookup("aliases") changes the r-uri and you have to test it if it is local. In your case all the requests were relayed using route (1) and then exit from route[0] because of 'break'.
Also, I assumed that the gateway's ip is 192.168.1.35, if not, change the value in rewritehost() parameter.
Daniel
On 06/21/05 15:09, Ozan Blotter wrote:
I've changed the config as follows but still i cannot dial, any ideas ?
# # $Id: openser.cfg,v 1.1.1.1 2005/06/13 16:47:30 bogdan_iancu Exp $ # # simple quick-start config script #
# ----------- global configuration parameters ------------------------
#debug=3 # 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"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database #loadmodule "/usr/local/lib/ser/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/textops.so"
# Uncomment this if you want digest authentication # mysql.so must be loaded ! #loadmodule "/usr/lib/openser/modules/auth.so" #loadmodule "/usr/lib/openser/modules/auth_db.so"
# ----------------- setting module-specific parameters ---------------
# -- usrloc params --
modparam("usrloc", "db_mode", 0)
# Uncomment this if you want to use SQL database # for persistent storage and comment the previous line #modparam("usrloc", "db_mode", 2)
# -- auth params -- # Uncomment if you are using auth module # #modparam("auth_db", "calculate_ha1", yes) # # If you set "calculate_ha1" parameter to yes (which true in this config), # uncomment also the following parameter) # #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)
# ------------------------- request routing logic -------------------
# main routing logic
route{
# initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; }; # we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol if (!method=="REGISTER") record_route(); # subsequent messages withing a dialog should take the # path determined by record-routing if (loose_route()) { # mark routing logic in request append_hf("P-hint: rr-enforced\r\n"); route(1); break; }; if (!uri==myself) { # mark routing logic in request append_hf("P-hint: outbound\r\n"); route(1); break; }; # if the request is for other domain use UsrLoc # (in case, it does not work, use the following command # with proper names and addresses in it) if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication # if (!www_authorize("openser.org", "subscriber")) { # www_challenge("openser.org", "0"); # break; # };
save("location"); break; }; lookup("aliases"); append_hf("P-hint: outbound alias\r\n"); route(1); break; if(uri=~"^sip:05[0-9]+@") {# call to mobile rewritehost("192.168.1.35"); prefix("201"); route(1); break; }; # native SIP destinations are handled using our USRLOC DB if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; append_hf("P-hint: usrloc applied\r\n"); route(1);
}
route[1] { # send it out now; use stateful forwarding as it works reliably # even for UDP2TCP if (!t_relay()) { sl_reply_error(); }; }
----- Original Message ----- From: "Daniel-Constantin Mierla" daniel@voice-system.ro To: "Ozan Blotter" cosmocid@ispro.net.tr Cc: users@openser.org Sent: Tuesday, June 21, 2005 1:39 PM Subject: Re: no solution yet :( that's why i've decided to write to you
You have to create a dialing plan for openser also.
In your script, after the block: if (!uri==myself) { # mark routing logic in request append_hf("P-hint: outbound\r\n"); route(1); break; };
(Just four your information, you don't need "if (uri==myself)" because will be true all the time)
Back to dialing plan, you have to add some rules like:
if(uri=~"^sip:05[0-9]+@") { # call to mobile rewritehost("192.168.1.35 mailto:20105353490056@192.168.1.35%29"); prefix("201"); route(1); break; }
Daniel
On 06/20/05 11:00, Ozan Blotter wrote:
Dear Team, I know this is annoying to post nearly same things but still no answer :( Is it really so hard or can anybody tell me why this is not working. Basically the system is as : ATA 1 : 12345 (registered and can call 54321, no problem) This is Zyxel P2002. ATA 2 : 54321 (registered and can call 12345, no problem) This is Zyxel P2002 too. ANALOG FXO : 201 (registered as 201, for test purposes i only registered one port of it) This is Eusso 7104-S 4 Port Analog FXO and i can add 3 more ports as available. With Brekeke's Ondo SIP Proxy, i created a simple dial-plan and it worked, even i can add more prefixes no problem. But in SER i cannot :( I'm using OpenSER. Normally it's like when i want to call a GSM, proxy simply adds a prefix 201 which is same with registered sip number for regarding analog port and forwards it (looks like sip:20105353490056@192.168.1.35) mailto:20105353490056@192.168.1.35%29 to Gateway and Gateway simply strips 201 from it and dials 05353490056, yes it connects. But what this same does not work on SER, any ideas because it's very boring to play all day and night ? Thanks.... This is my current SER.CFG as it comes with OPENSER. Can you please help me to add lines where or/and add remove somethings... [root@localhost openser]# cat ser.cfg # # $Id: openser.cfg,v 1.1.1.1 2005/06/13 16:47:30 bogdan_iancu Exp $ # # simple quick-start config script # # ----------- global configuration parameters ------------------------ #debug=3 # 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" # ------------------ module loading ---------------------------------- # Uncomment this if you want to use SQL database #loadmodule "/usr/local/lib/ser/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/textops.so" # Uncomment this if you want digest authentication # mysql.so must be loaded ! #loadmodule "/usr/lib/openser/modules/auth.so" #loadmodule "/usr/lib/openser/modules/auth_db.so" # ----------------- setting module-specific parameters --------------- # -- usrloc params -- modparam("usrloc", "db_mode", 0) # Uncomment this if you want to use SQL database # for persistent storage and comment the previous line #modparam("usrloc", "db_mode", 2) # -- auth params -- # Uncomment if you are using auth module # #modparam("auth_db", "calculate_ha1", yes) # # If you set "calculate_ha1" parameter to yes (which true in this config), # uncomment also the following parameter) # #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) # ------------------------- request routing logic ------------------- # main routing logic route{ # initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; };
# we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol if (!method=="REGISTER") record_route();
# subsequent messages withing a dialog should take the # path determined by record-routing if (loose_route()) { # mark routing logic in request append_hf("P-hint: rr-enforced\r\n"); route(1); break; }; if (!uri==myself) { # mark routing logic in request append_hf("P-hint: outbound\r\n"); route(1); break; }; # if the request is for other domain use UsrLoc # (in case, it does not work, use the following command # with proper names and addresses in it) if (uri==myself) { if (method=="REGISTER") { # Uncomment this if you want to use digest authentication # if (!www_authorize("openser.org", "subscriber")) { # www_challenge("openser.org", "0"); # break; # }; save("location"); break; }; lookup("aliases"); if (!uri==myself) { append_hf("P-hint: outbound alias\r\n"); route(1); break; }; # native SIP destinations are handled using our USRLOC DB if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; }; append_hf("P-hint: usrloc applied\r\n"); route(1); } route[1] { # send it out now; use stateful forwarding as it works reliably # even for UDP2TCP if (!t_relay()) { sl_reply_error(); }; } [root@localhost openser]#
Team mailing list Team@openser.org http://openser.org/cgi-bin/mailman/listinfo/team
On 06/21/05 13:39, Daniel-Constantin Mierla wrote:
You have to create a dialing plan for openser also.
In your script, after the block: if (!uri==myself) { # mark routing logic in request append_hf("P-hint: outbound\r\n"); route(1); break; };
(Just four your information, you don't need "if (uri==myself)" because will be true all the time)
Back to dialing plan, you have to add some rules like:
if(uri=~"^sip:05[0-9]+@") { # call to mobile rewritehost("192.168.1.35 mailto:20105353490056@192.168.1.35%29");
^^^ - this line is wrong, I believe because of mail client and copy&paste. It has to be: rewritehost("192.168.1.35");
Daniel
prefix("201"); route(1); break;
}
Daniel
On 06/20/05 11:00, Ozan Blotter wrote:
Dear Team,
I know this is annoying to post nearly same things but still no answer :( Is it really so hard or can anybody tell me why this is not working.
Basically the system is as :
ATA 1 : 12345 (registered and can call 54321, no problem) This is Zyxel P2002. ATA 2 : 54321 (registered and can call 12345, no problem) This is Zyxel P2002 too. ANALOG FXO : 201 (registered as 201, for test purposes i only registered one port of it) This is Eusso 7104-S 4 Port Analog FXO and i can add 3 more ports as available.
With Brekeke's Ondo SIP Proxy, i created a simple dial-plan and it worked, even i can add more prefixes no problem. But in SER i cannot :( I'm using OpenSER. Normally it's like when i want to call a GSM, proxy simply adds a prefix 201 which is same with registered sip number for regarding analog port and forwards it (looks like sip:20105353490056@192.168.1.35) mailto:20105353490056@192.168.1.35%29 to Gateway and Gateway simply strips 201 from it and dials 05353490056, yes it connects. But what this same does not work on SER, any ideas because it's very boring to play all day and night ?
Thanks....
This is my current SER.CFG as it comes with OPENSER. Can you please help me to add lines where or/and add remove somethings...
[root@localhost openser]# cat ser.cfg # # $Id: openser.cfg,v 1.1.1.1 2005/06/13 16:47:30 bogdan_iancu Exp $ # # simple quick-start config script #
# ----------- global configuration parameters ------------------------
#debug=3 # 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"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database #loadmodule "/usr/local/lib/ser/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/textops.so"
# Uncomment this if you want digest authentication # mysql.so must be loaded ! #loadmodule "/usr/lib/openser/modules/auth.so" #loadmodule "/usr/lib/openser/modules/auth_db.so"
# ----------------- setting module-specific parameters ---------------
# -- usrloc params --
modparam("usrloc", "db_mode", 0)
# Uncomment this if you want to use SQL database # for persistent storage and comment the previous line #modparam("usrloc", "db_mode", 2)
# -- auth params -- # Uncomment if you are using auth module # #modparam("auth_db", "calculate_ha1", yes) # # If you set "calculate_ha1" parameter to yes (which true in this config), # uncomment also the following parameter) # #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)
# ------------------------- request routing logic -------------------
# main routing logic
route{
# initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; }; # we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol if (!method=="REGISTER") record_route(); # subsequent messages withing a dialog should take the # path determined by record-routing if (loose_route()) { # mark routing logic in request append_hf("P-hint: rr-enforced\r\n"); route(1); break; }; if (!uri==myself) { # mark routing logic in request append_hf("P-hint: outbound\r\n"); route(1); break; }; # if the request is for other domain use UsrLoc # (in case, it does not work, use the following command # with proper names and addresses in it) if (uri==myself) { if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication # if (!www_authorize("openser.org", "subscriber")) { # www_challenge("openser.org", "0"); # break; # };
save("location"); break; }; lookup("aliases"); if (!uri==myself) { append_hf("P-hint: outbound alias\r\n"); route(1); break; }; # native SIP destinations are handled using our
USRLOC DB if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; }; append_hf("P-hint: usrloc applied\r\n"); route(1); }
route[1] { # send it out now; use stateful forwarding as it works reliably # even for UDP2TCP if (!t_relay()) { sl_reply_error(); }; }
[root@localhost openser]#
Team mailing list Team@openser.org http://openser.org/cgi-bin/mailman/listinfo/team
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users