Hi,
I want to configure SER <ser/about> 0.9.6 in such a way that It
can proxy presence messages(SUBSCRIBE,PUBLISH) to presence server. Can
you let me know how can I do that?
Thanks and Regards,
Senthil Kumar,
Presence Capability,
BT-Service Execution Platform,
B62-MH,Orion Building,Adastral Park,Ipswich
Work:+44 (0)1473 605 668
Mobile:+44 (0)7772287447
Hello,
I am a student and i do a workplacement. So i must work on the VOIP, but
ihave no experience in.
I would like know thank to a log, when an user connect/disconnect his
user ugent.
I know that i must use xlog, but i'm lost for many reasons.
The first : Idon't know variables i must use to do what i want.
The second : I don't know where i must write the line in ser.cfg to have
this log.
The third : Where is the log generated by xlog, and if there isn't one,
how i can create this log.
The fourth : If i must write something in xlog.so, how open it. Because
when i open it with VI or NANO there is only encrypted data.
THX to help me.
If you can answer on my mail : sylvain.nigen(a)legos.fr, because it's
easier ton know if i have an answer than to search the answer on SER
USER.
THANKS
hi,
I;ve installed ser 0.9.x version on linux ipv6 enabled PC.Now the ser is running.But it says it is listening on ipv4 address on udp and tcp.How do i know whether it is listening on ipv6 ?do i need to configure for anything ,for it to listen on ipv6 adress also!
Kindly help in this issue.
Regards,
Jayasree
The information contained in this e-mail message and/or attachments to it may
contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail immediately and permanently delete the message and any attachments.
I am trying to reach a suitable trade-off between minimising the amount of
proxied media and minimising one-way/no audio for all clients including
NATed ones.
When a UA that has been configured to use STUN sends a register message to
SER the behaviour differs depending on the device. Some, such as a Sipura
device, send the private address in the Via and the public address in the
Contact:
U 60.234.nnn.nnn:5060 -> 147.202.nnn.nnn:5060 REGISTER sip:domain.com
SIP/2.0..Via: SIP/2.0/UDP 192.168.0.14:5060;branch=z9hG4bK-64d76b15..From:
<sip:6435488773@domain.com >;tag=4cdc1208fa650916o0..To:
<sip:6435488773@domain.com>..Call-ID: 1143f50-45857c6e@192.168.0.14..CSeq: 1
REGISTER..Max-Forwards: 70..Contact:
<sip:6435488773@60.234.nnn.nnn:5060>;expires=60..User-Agent:
Sipura/SPA3000-2.0.13(GWg)..Content-Length: 0..Allow: ACK, BYE, CANCEL,
INFO, INVITE, NOTIFY, OPTIONS, REFER..Supported: x-sipura....
Others, such as a Grandstream device, send the public address in both the
Via and Contact:
U 60.234.nnn.nnn:32483 -> 147.202.nnn.nnn:5060 REGISTER sip:domain.com
SIP/2.0..Via: SIP/2.0/UDP
60.234.nnn.nnn:32483;branch=z9hG4bK113cfc09c6acd189..From: "User" <sip:
5551234(a)domain.com>;tag=dede17c9405d4e0e..To:
<sip:5551234@domain.com>..Contact: <sip:5551234@60.234.nnn.nnn:32483>..
Call-ID: fc200867c9a03268@192.168.0.10..CSeq: 100 REGISTER..Expires:
60..User-Agent: Grandstream BT100 1.0.6.7..Max-Forwards: 70..Allow:
INVITE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SUBSCRIBE..Content-Length:
0....
I am using the opsip.org configuration file together with mediaproxy. In the
case of the Sipura, flag(6) is set in route[2] since client_nat_test("7")
evaluates to true and so any calls with this device will be proxied. From
ready various posts on the topic I understand this is a very safe
configuration since it will deal with virtually every scenario. However it
is also very expensive since it will proxy audio in situations where it is
not really required. For example a call between two Sipura devices will be
proxied when, due to STUN, it is unecessary in most cases. As I understand
it the cases when it would be necessary are:
- both UAs behind the same NAT with the SER proxy outside the NAT and router
doesn't support hairpinning
- devices behind symmetric NATs
On the other hand, flag(6) will not be set with the Grandstream and so audio
will not be proxied when this device calls another device that is either not
behind NAT or is another NATed Grandstream. This is great in most cases but
audio problems could arise in the cases described above.
What I am therefore thinking is that by default I will not proxy media for
devices where a public IP address has been determined. But I will create an
avp that specifies by user whether to enable the standard onsip.org config.
Also there could even be a dial prefix (e.g. *666) that turns proxying on.
route[2]
#Do this by default
if (!search("^Contact: [ ]*\*") && client_nat_test("1") {
etc
#Do this if avp set or prefix dialled
if (!search("^Contact: [ ]*\*") && client_nat_test("7") {
etc
I would appreciate any comments on the above. Have I understood the issues
correctly? Will this type of configuration work? What are the disadvantages?
Regards
Cameron
Hi there,
Good afternoon..
I'd like to ask some questions depending on my last
project problems..
maybe I had ever asked it in this forum, but I quite
don't understand the solution you guys have told me.
Maybe it's because I don't give the details about my
OS and many more, and I'm a newbie too.
But I really thanx for the reply on my last question.
I'm using Red Hat 9 Linux to build my SIP Server. I
use SER 0.9.7 as the server. The problem I found here
is to test the MSILO module which I add to the ser.cfg
Below is the description of my ser.cfg:
-------------------------------------------------------
debug=9
fork=no
log_stderror=yes
listen=202.95.149.2 # put your server IP address
here
port=5060
children=4
dns=no
rev_dns=no
fifo="/tmp/ser_fifo"
fifo_db_url="mysql://ser:heslo@localhost/ser"
fifo_mode=0666
loadmodule "/usr/local/lib/ser/modules/mysql.so"
loadmodule "/usr/local/lib/ser/modules/sl.so"
loadmodule "/usr/local/lib/ser/modules/tm.so"
loadmodule "/usr/local/lib/ser/modules/rr.so"
loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
loadmodule "/usr/local/lib/ser/modules/usrloc.so"
loadmodule "/usr/local/lib/ser/modules/registrar.so"
loadmodule "/usr/local/lib/ser/modules/auth.so"
loadmodule "/usr/local/lib/ser/modules/auth_db.so"
loadmodule "/usr/local/lib/ser/modules/nathelper.so"
loadmodule "/usr/local/lib/ser/modules/textops.so"
loadmodule "/usr/local/lib/ser/modules/uri_db.so"
loadmodule "/usr/local/lib/ser/modules/uri.so"
loadmodule "/usr/local/lib/ser/modules/avpops.so"
loadmodule "/usr/local/lib/ser/modules/domain.so"
loadmodule "/usr/local/lib/ser/modules/permissions.so"
loadmodule "/usr/local/lib/ser/modules/msilo.so"
modparam("auth_db|permissions|uri_db|usrloc","db_url",
"mysql://ser:heslo@localhost/ser")
modparam("auth_db|uri_db|usrloc", "db_url",
"mysql://ser:heslo@localhost/ser")
modparam("auth_db", "calculate_ha1", 1)
modparam("auth_db", "password_column", "password")
modparam("nathelper", "natping_interval", 30)
modparam("nathelper", "ping_nated_only", 1)
modparam("nathelper", "rtpproxy_sock",
"/var/run/rtpproxy.sock")
modparam("usrloc", "db_mode", 2)
modparam("registrar", "nat_flag", 6)
modparam("rr", "enable_full_lr", 1)
modparam("tm", "fr_inv_timer", 27)
modparam("tm", "fr_inv_timer_avp", "inv_timeout")
modparam("permissions", "db_mode", 1)
modparam("permissions", "trusted_table", "trusted")
modparam("tm", "fr_timer", 10 )
modparam("tm", "fr_inv_timer", 15 )
modparam("tm", "wt_timer", 10 )
modparam("msilo", "db_url",
"mysql://ser:heslo@localhost/ser")
modparam("msilo", "db_table", "silo")
modparam("msilo","registrar","sip:registrar@pcr.ac.id")
alias="pcr.ac.id"
route {
#
-----------------------------------------------------------------
# Sanity Check Section
#
-----------------------------------------------------------------
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;
};
#
-----------------------------------------------------------------
# Record Route Section
#
-----------------------------------------------------------------
if (method!="REGISTER") {
record_route();
};
if (method=="BYE" || method=="CANCEL") {
unforce_rtp_proxy();
}
#
-----------------------------------------------------------------
# Loose Route Section
#
-----------------------------------------------------------------
if (loose_route()) {
if (has_totag() && (method=="INVITE"
|| method=="ACK")) {
if (nat_uac_test("19")) {
setflag(6);
force_rport();
fix_nated_contact();
};
force_rtp_proxy("l");
};
route(1);
break;
};
#
-----------------------------------------------------------------
# Offline Message Store Section
#
-----------------------------------------------------------------
if (is_from_local()) {
if (method=="REGISTER") {
save("location");
log("REGISTER received -> dumping messages
with MSILO\n");
# MSILO - dumping user's offline messages
if (m_dump())
{
log("MSILO: offline messages dumped -
if they were\n");
}else{
log("MSILO: no offline messages
dumped\n");
};
break;
};
# domestic SIP destinations are handled using
our USRLOC DB
if(!lookup("location"))
{
if (! t_newtran())
{
sl_reply_error();
break;
};
# we do not care about anything else but
MESSAGEs
if (!method=="MESSAGE")
{
if (!t_reply("404", "Not found"))
{
sl_reply_error();
};
break;
};
log("MESSAGE received -> storing using
MSILO\n");
# MSILO - storing as offline message
if (m_store("0"))
{
log("MSILO: offline message
stored\n");
if (!t_reply("202", "Accepted"))
{
sl_reply_error();
};
}else{
log("MSILO: offline message NOT
stored\n");
if (!t_reply("503", "Service
Unavailable"))
{
sl_reply_error();
};
};
break;
};
# if the downstream UA does not support
MESSAGE requests
# go to failure_route[1]
t_on_failure("1");
t_relay();
break;
};
# forward to current uri now; use stateful
forwarding that
# works reliably even if we forward from TCP
to UDP
if (!t_relay()) {
sl_reply_error();
};
#
-----------------------------------------------------------------
# Call Type Processing Section
#
-----------------------------------------------------------------
if (uri!=myself) {
route(5);
route(1);
break;
};
if (uri==myself) {
if (method=="ACK") {
route(6);
break;
} else 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(5);
route(1);
break;
};
if (!lookup("location")) {
sl_send_reply("404", "User Not
Found");
break;
};
};
route(1);
}
failure_route[1] {
# forwarding failed -- check if the request was a
MESSAGE
if (!method=="MESSAGE")
{
break;
};
log(1,"MSILO:the downstream UA doesn't support
MESSAGEs\n");
# we have changed the R-URI with the contact
address, ignore it now
if (m_store("1"))
{
log("MSILO: offline message stored\n");
t_reply("202", "Accepted");
}else{
log("MSILO: offline message NOT stored\n");
t_reply("503", "Service Unavailable");
};
}
route[1] {
#
-----------------------------------------------------------------
# Default Message Handler
#
-----------------------------------------------------------------
t_on_reply("1");
if (!t_relay()) {
if (method=="INVITE" && isflagset(6))
{
unforce_rtp_proxy();
};
sl_reply_error();
};
}
route[2] {
#
-----------------------------------------------------------------
# REGISTER Message Handler
#
----------------------------------------------------------------
if (!search("^Contact:\ +\*") &&
nat_uac_test("19")) {
setflag(6);
fix_nated_register();
force_rport();
};
sl_send_reply("100", "Trying");
if (!www_authorize("pcr.ac.id","subscriber"))
{
www_challenge("pcr.ac.id","0");
break;
};
if (!check_to()) {
sl_send_reply("401", "Unauthorized");
break;
};
consume_credentials();
if (!save("location")) {
sl_reply_error();
};
}
route[3] {
#
-----------------------------------------------------------------
# CANCEL and INVITE Message Handler
#
-----------------------------------------------------------------
if (!allow_trusted() && nat_uac_test("19")) {
setflag(6);
}
lookup("aliases");
if (method=="INVITE" && !allow_trusted())
{
if
(!proxy_authorize("pcr.ac.id","subscriber")) {
proxy_challenge("pcr.ac.id","0");
break;
} else if (!check_from()) {
sl_send_reply("403", "Use
From=ID");
break;
};
consume_credentials();
};
if (uri=~"^sip:9[0-9]*@") {
route(4);
break;
};
if (uri!=myself) {
route(5);
route(1);
break;
};
if (!lookup("location")) {
if (uri=~"^sip:[0-9]{10}@") {
route(4);
break;
};
sl_send_reply("404", "User Not
Found");
break;
};
if (isflagset(6)) {
force_rport();
fix_nated_contact();
force_rtp_proxy();
};
t_on_reply("1");
if (!t_relay()) {
if(isflagset(6)) {
unforce_rtp_proxy();
}
sl_reply_error();
};
}
route[4] {
#
-----------------------------------------------------------------
# PSTN Handler
#
-----------------------------------------------------------------
rewritehostport("202.95.149.2:5060"); # INSERT YOUR
PSTN GATEWAY IP ADDRESS
avp_write("i:45", "inv_timeout");
if (isflagset(6)) {
force_rport();
fix_nated_contact();
force_rtp_proxy();
};
route(1);
}
onreply_route[1] {
if (isflagset(6) &&
status=~"(180)|(183)|2[0-9][0-9]") {
if (!search("^Content-Length:\ +0")) {
force_rtp_proxy();
};
};
if (nat_uac_test("1")) {
fix_nated_contact();
};
}
-------------------------------------------------------
I don't know whether my configuration below is right
or still wrong..I've test it using 2 clients. I made
one of them online, and the other off. I try to call
the offline one, but it said user not found. In my
thought, if I've activated MSILO module, it will
automatically ask the online client if he wants to
store offline voice message or not...
Please tell me what's wrong with the configuration. In
addition, the server can be use to make a call between
online clients.
Second question is about my serweb. I have seen my
config.php in /var/www/html/serweb directory. It
contains as shown below:
-------------------------------------------------------
/* Unless you used brute-force to change SER table
names */
$this->table_subscriber="subscriber";
$this->table_pending="pending";
$this->table_grp="grp";
$this->table_aliases="aliases";
$this->table_location="location";
$this->table_missed_calls="missed_calls";
$this->table_accounting="acc";
$this->table_phonebook="phonebook";
$this->table_event="event";
$this->table_netgeo_cache="netgeo_cache";
$this->table_ser_mon="server_monitoring";
$this->table_ser_mon_agg="server_monitoring_agg";
$this->table_message_silo="silo";
/ below is the problem /
$this->table_voice_silo="voice_silo";
-------------------------------------------------------
And below is my SER tables:
+-----------------------+
| Tables_in_ser |
+-----------------------+
| acc |
| active_sessions |
| admin_privileges |
| aliases |
| calls_forwarding |
| config |
| domain |
| event |
| grp |
| location |
| missed_calls |
| pending |
| phonebook |
| preferences_types |
| reserved |
| server_monitoring |
| server_monitoring_agg |
| silo |
| speed_dial |
| subscriber |
| trusted |
| uri |
| usr_preferences |
| version |
+-----------------------+
24 rows in set (0.00 sec)
-------------------------------------------------------
You can see that there is no table named "voice_silo"
in my SER tables. It cause error on one of my web page
named message_store.php. It requires voice_silo table.
I'd like to ask you what is the different between
table named "silo" and "voice_silo"?
Can both of them store offline voice message?
If I have to add "voice_silo" in my SER table, please
give me the description of entities needed to build
voice_silo table.
Last, I'd like to thank you guys for the willingness
to read my questions and problems.
Of course I'm expecting the answers too.
Thanx again.
Regards,
Meidiana Ten
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
Hi All,
I am sure I must be missing something just not sure what it is. I granted
the permission in mysql:
GRANT ALL ON openser.* TO 'openser'@'dbhost' IDENTIFIED BY 'openserrw';
as stated in the Install guide and then launched the server from terminal
with ./script/server and in the browser typed: http://myomain:3000 which
displayed the login page.
I then typed into the login:password area openser:openserrw
But I was unsuccessful each time. Does anyone have any idea what I am
missing or doing incorrectly?
Thank you.
jwshel
Hi All,
I accessed the login/password area but I am erroring but don't know how to
fix. I granted all:
GRANT ALL ON openser.* TO 'openser'@'dbhost' IDENTIFIED BY 'openserrw';
and changed the database.yml to dbhost as well which allowed me to login
when I left it the same as localhost I was not able to login at all with
default password.
Now that I am in the login zone, I get this error:
Mysql::Error in LoginController#login
Unknown MySQL server host 'dbhost' (1)
RAILS_ROOT: script/../config/..
Application Trace | Framework Trace | Full Trace
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/mysql_adapter.rb:330:in
`real_connect'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/mysql_adapter.rb:330:in
`connect'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/mysql_adapter.rb:87:in
`initialize'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/mysql_adapter.rb:36:in
`mysql_connection'
Plus more, but I did not want to paste it all.
Any help appreciated.
jwshel
Hi
iam trying to test trusted IP kind of setup
I have openser server connect to my ITSP
another Office i have OpenSER, i want to connect to main Server and send the
calls out
could some one give me examples or docs where i can find similar kind of
real world examples
Ram