********************************* This message and any attachments (the "message") are confidential and intended solely for the addressees. Any unauthorised use or dissemination is prohibited. Messages are susceptible to alteration. France Telecom Group shall not be liable for the message if altered, changed or falsified. If you are not the intended addressee of this message, please cancel it immediately and inform the sender. ********************************
Bernard,
Your config looks ok to me. Something rather weird must happen with the call signaling if users C and D receive the calls 15 secs after dialing user B. A tcpdump trace would help to debug this problem. Can you run
% tcpdump -i any -s 1500 -w /tmp/sip.pcap
on the proxy host and post the sip.pcap file.
/Christian
bernard.le@orange-ftgroup.com wrote:
Hi
I'm trying to do some call forking but I can't manage to make it work well. I explain quickly what it is : If user A call user B and user B is registered more than once (on different system), the proxy will fork natively to all registered user B.
What I want to do now is if user A call user B then the proxy fork to user C, user D and so on. I have found the command append_branch("sip:userC at domain http://openser.org/cgi-bin/mailman/listinfo/users").
The thing is that it is not working well. For the first time (when the server restart), I make a call from user A, only user B receive the call, then ignored the call from the user B and wait for about 15sec then the call ring on user C and D. I make the 2nd try, user A call B, B, C & D receive the ring. Then I wait some minute, the problem came back again
what is wrong with the first call, a bug or configuration error ?
please help Bernard
here is my config file : # ----------- global configuration parameters ------------------------ debug=3 # debug level (cmd line: -dddddddddd) fork=yes log_stderror=no # (cmd line: -E) children=4
listen=192.168.17.107 port=5060 # ------------------ module loading ---------------------------------- #set module path mpath="/usr/local/lib/openser/modules/"
loadmodule "mysql.so" loadmodule "auth.so" loadmodule "auth_db.so" loadmodule "sl.so" loadmodule "tm.so" loadmodule "rr.so" loadmodule "maxfwd.so loadmodule "usrloc.so" loadmodule "registrar.so" loadmodule "textops.so" loadmodule "mi_fifo.so" # ----------------- setting module-specific parameters --------------- modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo") modparam("usrloc", "db_mode", 3) modparam("auth_db", "calculate_ha1", yes) modparam("auth_db", "password_column", "password") modparam("rr", "enable_full_lr", 1) # ------------------------- request routing logic ------------------- # main routing logic route{ if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); exit; };
if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); exit; }; if (!method=="REGISTER") record_route(); if (loose_route()) { # mark routing logic in request append_hf("P-hint: rr-enforced\r\n"); route(1); }; if (!uri==myself) { # mark routing logic in request append_hf("P-hint: outbound\r\n"); route(1); }; if (uri==myself) { if (method=="REGISTER") { route(2); }; if (method=="INVITE") { route(3); }; lookup("aliases"); if (!uri==myself) { append_hf("P-hint: outbound alias\r\n"); route(1); }; if (!lookup("location")) { sl_send_reply("404", "User not found"); exit; }; append_hf("P-hint: usrloc applied\r\n"); }; route(1);
}
route[1] { if (!t_relay()) { sl_reply_error(); }; exit; }
route[2] { if (!www_authorize("etraliSIP.fr", "subscriber")) { www_challenge("etraliSIP.fr", "1"); exit; }; save("location"); exit; }
route[3] { if (!proxy_authorize("etraliSIP.fr", "subscriber")) { proxy_challenge("etraliSIP.fr", "1"); exit; }; if (from_uri=="sip:leb at etraliSIP http://openser.org/cgi-bin/mailman/listinfo/users" && to_uri=="sip:patrice at etraliSIP http://openser.org/cgi-bin/mailman/listinfo/users" && !search("P-hint: ok call forking")) { append_hf("P-hint: ok call forking\r\n"); append_branch("sip:test at etraliSIP http://openser.org/cgi-bin/mailman/listinfo/users"); append_branch("sip:tony at etraliSIP http://openser.org/cgi-bin/mailman/listinfo/users"); }; }
=
This message and any attachments (the "message") are confidential and intended solely for the addressees. Any unauthorised use or dissemination is prohibited. Messages are susceptible to alteration. France Telecom Group shall not be liable for the message if altered, changed or falsified. If you are not the intended addressee of this message, please cancel it immediately and inform the sender.
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
Hi Christian
Sorry for the late answer :-( Ok I have found the problem. I don't know why but in my /etc/hosts, the localhost also have the name of my eth0. So the SIP Proxy sometime send to 127.0.0.1 and sometime to eth0. Now I have fixe my hosts file and the fork work perfectly.
Now the other problem I have some since I have remove this is that I can not create new user in the openser DB via openser_mysql.sh. error message is : ERROR : user 'blabla' already exists. I have check my openserctlrc and the DBHOST is the same name as eth0 (etralisip) When I change this to localhost, no more problem.
I think I have to change something in the configuration on mysql server but I don't know which file ? can someone help me ?
Bernard
Christian Schlatter cs@unc.edu A bernard.le@orange-ftgroup.com 22/08/2007 03:28 cc users@openser.org Objet Re: [OpenSER-Users] call forking
Bernard,
Your config looks ok to me. Something rather weird must happen with the call signaling if users C and D receive the calls 15 secs after dialing user B. A tcpdump trace would help to debug this problem. Can you run
% tcpdump -i any -s 1500 -w /tmp/sip.pcap
on the proxy host and post the sip.pcap file.
/Christian
bernard.le@orange-ftgroup.com wrote:
Hi
I'm trying to do some call forking but I can't manage to make it work
well.
I explain quickly what it is : If user A call user B and user B is registered more than once (on
different
system), the proxy will fork natively to all registered user B.
What I want to do now is if user A call user B then the proxy fork to
user
C, user D and so on. I have found the command append_branch("sip:userC at domain http://openser.org/cgi-bin/mailman/listinfo/users").
The thing is that it is not working well. For the first time (when the server restart), I make a call from user A, only user B receive the call, then ignored the call from the user B and wait for about 15sec then the call ring on user C and D. I make the 2nd try, user A call B, B, C & D receive the ring. Then I wait some minute, the problem came back again
what is wrong with the first call, a bug or configuration error ?
please help Bernard
here is my config file : # ----------- global configuration parameters ------------------------ debug=3 # debug level (cmd line: -dddddddddd) fork=yes log_stderror=no # (cmd line: -E) children=4
listen=192.168.17.107 port=5060 # ------------------ module loading ---------------------------------- #set module path mpath="/usr/local/lib/openser/modules/"
loadmodule "mysql.so" loadmodule "auth.so" loadmodule "auth_db.so" loadmodule "sl.so" loadmodule "tm.so" loadmodule "rr.so" loadmodule "maxfwd.so loadmodule "usrloc.so" loadmodule "registrar.so" loadmodule "textops.so" loadmodule "mi_fifo.so" # ----------------- setting module-specific parameters --------------- modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo") modparam("usrloc", "db_mode", 3) modparam("auth_db", "calculate_ha1", yes) modparam("auth_db", "password_column", "password") modparam("rr", "enable_full_lr", 1) # ------------------------- request routing logic ------------------- # main routing logic route{ if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); exit; };
if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); exit; }; if (!method=="REGISTER") record_route(); if (loose_route()) { # mark routing logic in request append_hf("P-hint: rr-enforced\r\n"); route(1); }; if (!uri==myself) { # mark routing logic in request append_hf("P-hint: outbound\r\n"); route(1); }; if (uri==myself) { if (method=="REGISTER") { route(2); }; if (method=="INVITE") { route(3); }; lookup("aliases"); if (!uri==myself) { append_hf("P-hint: outbound alias\r\n"); route(1); }; if (!lookup("location")) { sl_send_reply("404", "User not found"); exit; }; append_hf("P-hint: usrloc applied\r\n"); }; route(1);
}
route[1] { if (!t_relay()) { sl_reply_error(); }; exit; }
route[2] { if (!www_authorize("etraliSIP.fr", "subscriber")) { www_challenge("etraliSIP.fr", "1"); exit; }; save("location"); exit; }
route[3] { if (!proxy_authorize("etraliSIP.fr", "subscriber")) { proxy_challenge("etraliSIP.fr", "1"); exit; }; if (from_uri=="sip:leb at etraliSIP http://openser.org/cgi-bin/mailman/listinfo/users" && to_uri=="sip:patrice at etraliSIP http://openser.org/cgi-bin/mailman/listinfo/users" && !search("P-hint: ok call forking")) { append_hf("P-hint: ok call forking\r\n"); append_branch("sip:test at etraliSIP http://openser.org/cgi-bin/mailman/listinfo/users"); append_branch("sip:tony at etraliSIP http://openser.org/cgi-bin/mailman/listinfo/users"); }; }
=
This message and any attachments (the "message") are confidential and
intended solely for the addressees.
Any unauthorised use or dissemination is prohibited. Messages are susceptible to alteration. France Telecom Group shall not be liable for the message if altered,
changed or falsified.
If you are not the intended addressee of this message, please cancel it
immediately and inform the sender.
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
********************************* This message and any attachments (the "message") are confidential and intended solely for the addressees. Any unauthorised use or dissemination is prohibited. Messages are susceptible to alteration. France Telecom Group shall not be liable for the message if altered, changed or falsified. If you are not the intended addressee of this message, please cancel it immediately and inform the sender. ********************************
Bernard,
Try looking at the OpenSER FIFO settings (especially permissions).
Regards, Norm
bernard.le@orange-ftgroup.com wrote:
Hi Christian
Sorry for the late answer :-( Ok I have found the problem. I don't know why but in my /etc/hosts, the localhost also have the name of my eth0. So the SIP Proxy sometime send to 127.0.0.1 and sometime to eth0. Now I have fixe my hosts file and the fork work perfectly.
Now the other problem I have some since I have remove this is that I can not create new user in the openser DB via openser_mysql.sh. error message is : ERROR : user 'blabla' already exists. I have check my openserctlrc and the DBHOST is the same name as eth0 (etralisip) When I change this to localhost, no more problem.
I think I have to change something in the configuration on mysql server but I don't know which file ? can someone help me ?
Bernard
Christian Schlatter <cs@unc.edu> A bernard.le@orange-ftgroup.com 22/08/2007 03:28 cc users@openser.org Objet Re: [OpenSER-Users] call forking
Bernard,
Your config looks ok to me. Something rather weird must happen with the call signaling if users C and D receive the calls 15 secs after dialing user B. A tcpdump trace would help to debug this problem. Can you run
% tcpdump -i any -s 1500 -w /tmp/sip.pcap
on the proxy host and post the sip.pcap file.
/Christian
bernard.le@orange-ftgroup.com wrote:
Hi
I'm trying to do some call forking but I can't manage to make it work
well.
I explain quickly what it is : If user A call user B and user B is registered more than once (on
different
system), the proxy will fork natively to all registered user B.
What I want to do now is if user A call user B then the proxy fork to
user
C, user D and so on. I have found the command append_branch("sip:userC at domain http://openser.org/cgi-bin/mailman/listinfo/users").
The thing is that it is not working well. For the first time (when the server restart), I make a call from user A, only user B receive the call, then ignored the call from the user B and wait for about 15sec then the call ring on user C and D. I make the 2nd try, user A call B, B, C & D receive the ring. Then I wait some minute, the problem came back again
what is wrong with the first call, a bug or configuration error ?
please help Bernard
here is my config file : # ----------- global configuration parameters ------------------------ debug=3 # debug level (cmd line: -dddddddddd) fork=yes log_stderror=no # (cmd line: -E) children=4
listen=192.168.17.107 port=5060 # ------------------ module loading ---------------------------------- #set module path mpath="/usr/local/lib/openser/modules/"
loadmodule "mysql.so" loadmodule "auth.so" loadmodule "auth_db.so" loadmodule "sl.so" loadmodule "tm.so" loadmodule "rr.so" loadmodule "maxfwd.so loadmodule "usrloc.so" loadmodule "registrar.so" loadmodule "textops.so" loadmodule "mi_fifo.so" # ----------------- setting module-specific parameters --------------- modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo") modparam("usrloc", "db_mode", 3) modparam("auth_db", "calculate_ha1", yes) modparam("auth_db", "password_column", "password") modparam("rr", "enable_full_lr", 1) # ------------------------- request routing logic ------------------- # main routing logic route{ if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); exit; };
if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); exit; }; if (!method=="REGISTER") record_route(); if (loose_route()) { # mark routing logic in request append_hf("P-hint: rr-enforced\r\n"); route(1); }; if (!uri==myself) { # mark routing logic in request append_hf("P-hint: outbound\r\n"); route(1); }; if (uri==myself) { if (method=="REGISTER") { route(2); }; if (method=="INVITE") { route(3); }; lookup("aliases"); if (!uri==myself) { append_hf("P-hint: outbound alias\r\n"); route(1); }; if (!lookup("location")) { sl_send_reply("404", "User not found"); exit; }; append_hf("P-hint: usrloc applied\r\n"); }; route(1);
}
route[1] { if (!t_relay()) { sl_reply_error(); }; exit; }
route[2] { if (!www_authorize("etraliSIP.fr", "subscriber")) { www_challenge("etraliSIP.fr", "1"); exit; }; save("location"); exit; }
route[3] { if (!proxy_authorize("etraliSIP.fr", "subscriber")) { proxy_challenge("etraliSIP.fr", "1"); exit; }; if (from_uri=="sip:leb at etraliSIP http://openser.org/cgi-bin/mailman/listinfo/users" && to_uri=="sip:patrice at etraliSIP http://openser.org/cgi-bin/mailman/listinfo/users" && !search("P-hint: ok call forking")) { append_hf("P-hint: ok call forking\r\n"); append_branch("sip:test at etraliSIP http://openser.org/cgi-bin/mailman/listinfo/users"); append_branch("sip:tony at etraliSIP http://openser.org/cgi-bin/mailman/listinfo/users"); }; }
=
This message and any attachments (the "message") are confidential and
intended solely for the addressees.
Any unauthorised use or dissemination is prohibited. Messages are susceptible to alteration. France Telecom Group shall not be liable for the message if altered,
changed or falsified.
If you are not the intended addressee of this message, please cancel it
immediately and inform the sender.
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
This message and any attachments (the "message") are confidential and intended solely for the addressees. Any unauthorised use or dissemination is prohibited. Messages are susceptible to alteration. France Telecom Group shall not be liable for the message if altered, changed or falsified. If you are not the intended addressee of this message, please cancel it immediately and inform the sender.
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users