Dear all,
Does anyone know if SER (0.8.14) supports PRACK messages ? I want to know
if it forwards them.I want to add in my configuration if(method==PRACK)
{..} and I want to know if I can do that and if SER allows this
configuration line.
Best regards,
Razvan
Hello,
This question isn't directly related to SER so I apologise, however I am
finding it difficult to find a windows softphone that is fully RTCP
compliant (according to RFC 1889, 3550). I use a SER platform. I was
using XLite and discovered that they have implemented the RTCP stack
incorrectly. I subsequently tried a copy of Eyebeam and unfortunately
there are errors in that implementation also. SJPhone doesn't seem to
send RTCP values and with Windows Messenger some of the RTCP fields are
consistently set to 0 which is most definitely incorrect. If anyone can
advise on this I would be very grateful.
Many thanks,
Aisling.
-------------------Legal Disclaimer---------------------------------------
The above electronic mail transmission is confidential and intended only for the person to whom it is addressed. Its contents may be protected by legal and/or professional privilege. Should it be received by you in error please contact the sender at the above quoted email address. Any unauthorised form of reproduction of this message is strictly prohibited. The Institute does not guarantee the security of any information electronically transmitted and is not liable if the information contained in this communication is not a proper and complete record of the message as transmitted by the sender nor for any delay in its receipt.
Hi Everyone,
Can anyone point me in the right direction as to how to implement distinctive ringing using SER?!
Has anyone attempted it at all?!
I would very much appreciate your help
ramin
Hello to all
Did you ever made it to put a Cisco phone (Cisco IP phone 7940 with SIP)
behind ADSL (and NAT) and make calls??
Im trying to do it, and with X-Lite I can place calls, but with the
Cisco phone I cant... :(
I already putted the NAT= yes in the Cisco Phone.
Is there any way of doing this ?
Thanks
Joao Pereira
www.fccn.pt
Look for Alert-Info header.
Adrian
>>>>>
Hi Everyone,
Can anyone point me in the right direction as to how to implement
distinctive ringing using SER?!
Has anyone attempted it at all?!
I would very much appreciate your help
ramin
Try CDRTool it is now open source
http://cdrtool.ag-projects.com
Adrian
>>>>>>>>>>>>>>
Hi all!
I am a newcomer to this list
Anyone who can point me in right direction to find a billing software
that
works with SER?
All suggestions are welcome, open source or commercial
Regards
------------------------------------
Talky Communications
Anders Svensson
Manager
anders(a)talkycom.com
Sjörrödsvägen 1
S-280 23 Hästveda
tel: +46 40 608 2250
mobile: +46 703 17 13 06
------------------------------------
Hi all!
I am a newcomer to this list
Anyone who can point me in right direction to find a billing software that
works with SER?
All suggestions are welcome, open source or commercial
Regards
------------------------------------
Talky Communications
Anders Svensson
Manager
anders(a)talkycom.com
Sjörrödsvägen 1
S-280 23 Hästveda
tel: +46 40 608 2250
mobile: +46 703 17 13 06
------------------------------------
I have been jailed by this script for almost one week. I refered all archives available(including Onsip's Getting Started) and simply couldn't make the Call Forwarding(at no answer) run properly.
In route[1], I used:
if (isflagset(28)){
avp_pushto("$ruri", "s:fwdnoanswer");
append_branch();
lookup("location");
xlog("L_INFO", "No answer, relaying after lookup. method <%rm> From <%fu> To <%tu> Contact <%ct> r-uri <%ru>\n");
};
t_relay();
In failure _route[1], I used:
if (isflagset(27) && t_check_status("408")) {
setflag(28);
revert_uri();
route(1);
};
I think this is quite simple and straightforward,right? However, after I did revert_uri, avp_pushto, append_branch and lookup, t_relay never could relay the INVITE message to the new branch(I knew this because I checked with ngrep and found no any INVITE message for the new branch).
Anyone can help? It's urgent! Thank you so much!
Jerry.
P.S., here is my original ser.cfg. Just for your reference:
=============================================================================
debug=3 # debug level (cmd line: -dddddddddd)
fork=no
log_stderror=yes # (cmd line: -E)
listen=xx.xx.xx.xx
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
port=5060
children=4
fifo="/tmp/ser_fifo"
fifo_db_url="mysql://ser:heslo@localhost/ser"
alias="sip.xx.com"
alias="xx.xx.xx.xx"
alias="xx.com"
# ------------------ module loading ----------------------------------
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/textops.so"
loadmodule "/usr/local/lib/ser/modules/auth.so"
loadmodule "/usr/local/lib/ser/modules/auth_db.so"
loadmodule "/usr/local/lib/ser/modules/uri.so"
loadmodule "/usr/local/lib/ser/modules/uri_db.so"
loadmodule "/usr/local/lib/ser/modules/group.so"
loadmodule "/usr/local/lib/ser/modules/nathelper.so"
loadmodule "/usr/local/lib/ser/modules/acc.so"
loadmodule "/usr/local/lib/ser/modules/avpops.so"
loadmodule "/usr/local/lib/ser/modules/xlog.so"
# ----------------- setting module-specific parameters ---------------
modparam("rr", "enable_full_lr", 1)
modparam("registrar", "nat_flag", 6)
modparam("nathelper", "natping_interval", 30) # Ping interval 30 s
modparam("nathelper", "ping_nated_only", 1) # Ping only clients behind NAT
modparam("tm", "fr_timer", 20 )
modparam("tm", "fr_inv_timer", 30 )
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "db_url", "mysql://ser:heslo@localhost/ser")
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
modparam("auth_db", "db_url", "mysql://ser:heslo@localhost/ser")
modparam("uri_db", "db_url", "mysql://ser:heslo@localhost/ser")
modparam("acc", "log_level", 1)
modparam("acc", "log_flag", 1 )
modparam("acc", "db_url","mysql://ser:heslo@localhost/ser")
modparam("acc", "db_flag", 1 )
modparam("avpops", "avp_url", "mysql://ser:heslo@localhost/ser")
modparam("avpops", "avp_table", "usr_preferences")
# ------------------------- request routing logic -------------------
route
{
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
break;
};
if (msg:len >= max_len ) {
sl_send_reply("513", "Message too big");
break;
};
if (method == "REGISTER" || ! search("^Record-Route:")) {
fix_nated_contact(); # Rewrite contact with source IP of signalling
if (method == "INVITE")
{
fix_nated_sdp("1"); # Add direction=active to SDP
};
force_rport(); # Add rport parameter to topmost Via
setflag(6); # Mark as NATed
};
setflag(1); # used for acc.
if (method=="INVITE")
log(1, "INVITE message received\n");
if (method=="ACK")
log(1, "ACK message received\n");
if (method=="BYE")
log(1, "BYE message received\n");
if (method=="CANCEL")
log(1, "CANCEL message received\n");
if (!method=="REGISTER")
record_route();
if (loose_route()) {
route(1);
break;
};
if (uri!=myself) {
route(1);
break;
};
if (method=="REGISTER") {
save("location");
break;
};
if (method=="INVITE") {
if (avp_db_load("$ruri/username", "s:fwdnoanswer")) {
setflag(27);
log(1, "dbg: FWDBUSY/FWDNOANSWER recorded!\n");
lookup("location");
};
};
t_on_failure("1");
route(1);
}
route[1]
{
if (isflagset(6))
force_rtp_proxy();
if (isflagset(28)){
avp_pushto("$ruri", "s:fwdnoanswer");
append_branch();
lookup("location");
xlog("L_INFO", "No answer, relaying after lookup. method <%rm> From <%fu> To <%tu> Contact <%ct> r-uri <%ru>\n");
};
t_relay();
}
failure_route[1] {
if (t_check_status("487")) {
break;
};
if (isflagset(27) && t_check_status("408")) {
revert_uri();
setflag(28);
route(1);
};
}
i keep getting to many hops when i enable the mysql feature in ser useing
http://www.iptel.org/ser/doc/ser-howto/ser-Howto.html
and the latest version of ser
im on cent os 4.3 server ed i think its 4.3
i think thats all the info you need.
thanks
Alex Wood
Hello,
I have a question regarding my ser.cfg. First let me explain our
situation.
I have a SER server (actually openser) behind a NAT firewall (Cisco PIX,
which is doing SIP ALG). The SER server has ip address 10.254.254.1
which is translated by de NAT Firewall to a public IP address. Behind
the SER we have a connect with a telco who provides us a SIP PSTN
gateway. It's IP address is 10.166.38.108 (so, also private).
Remote clients connect to our SER via the public IP address of the SER.
For this to work, I use RTPProxy for all sessions. So I do NO client_nat
tests or whatsoever. Most of the time, all calls go well. However
sometimes when a UAC retransmits INVITE requests, the retransmitted
responses display the wrong proxy-address (for RTPProxy). For example,
when the UAC does 4 INVITE request (so 1 request, and 3
retransmissions), 3 of the responses have SDP with 10.254.254.1 in their
body. The last one doesn't change the SDP address, but has 10.166.38.108
in its body. What could be causing this? Clients obviously don't get
audio in their conversation.
Next, since I wrote the ser.cfg by my own, it would be nice if some of
you could review my ser.cfg and, if needed, give me some suggestions
etc.
Thank you all very much in advance,
My ser.cfg:
########################################################################
######################################
debug=3
fork=yes
log_stderror=no
#debug=4
#fork=no
#log_stderror=yes
listen=10.254.254.1
port=5060
children=4
dns=no
rev_dns=no
fifo="/tmp/openser_fifo"
fifo_db_url="mysql://XXX:XXX@localhost/ser"
fifo_mode=0666
loadmodule "/usr/local/lib/openser/modules/mysql.so"
loadmodule "/usr/local/lib/openser/modules/sl.so"
loadmodule "/usr/local/lib/openser/modules/tm.so"
loadmodule "/usr/local/lib/openser/modules/rr.so"
loadmodule "/usr/local/lib/openser/modules/maxfwd.so"
loadmodule "/usr/local/lib/openser/modules/usrloc.so"
loadmodule "/usr/local/lib/openser/modules/registrar.so"
loadmodule "/usr/local/lib/openser/modules/auth.so"
loadmodule "/usr/local/lib/openser/modules/auth_db.so"
loadmodule "/usr/local/lib/openser/modules/uri.so"
loadmodule "/usr/local/lib/openser/modules/uri_db.so"
loadmodule "/usr/local/lib/openser/modules/mediaproxy.so"
loadmodule "/usr/local/lib/openser/modules/nathelper.so"
loadmodule "/usr/local/lib/openser/modules/textops.so"
loadmodule "/usr/local/lib/openser/modules/domain.so"
loadmodule "/usr/local/lib/openser/modules/permissions.so"
loadmodule "/usr/local/lib/openser/modules/acc.so"
loadmodule "/usr/local/lib/openser/modules/xlog.so"
loadmodule "/usr/local/lib/openser/modules/exec.so"
loadmodule "/usr/local/lib/openser/modules/group.so"
modparam("auth_db|permissions|uri_db|usrloc|acc|domain|group",
"db_url", "mysql://XXX:XXX@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("rr", "append_fromtag", 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("acc", "log_level", 1)
modparam("acc", "log_flag", 1)
modparam("acc", "db_flag", 1)
route {
#
-----------------------------------------------------------------
# Sanity Check Section
#
-----------------------------------------------------------------
if (search("User-Agent: Grandstream")) {
replace("UPDATE,", "");
}
if (search("Server: Cisco ATA.*")) {
replace(", UPDATE", "");
}
if (search("User-Agent: Cisco ATA.*")) {
replace(", UPDATE", "");
}
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483", "Too Many Hops");
exit;
};
if (msg:len > max_len) {
sl_send_reply("513", "Message Overflow");
exit;
};
#
-----------------------------------------------------------------
# Record Route Section
#
-----------------------------------------------------------------
if (method!="REGISTER") {
record_route();
};
#
-----------------------------------------------------------------
# Call Tear Down Section
#
-----------------------------------------------------------------
if (method=="BYE" || method=="CANCEL") {
unforce_rtp_proxy();
};
#
-----------------------------------------------------------------
# Loose Route Section
#
-----------------------------------------------------------------
if (loose_route()) {
if (has_totag() && (method=="INVITE" || method=="ACK"))
{
setflag(6);
force_rport();
fix_nated_contact();
force_rtp_proxy();
};
route(1);
exit;
};
#
-----------------------------------------------------------------
# Call Type Processing Section
#
-----------------------------------------------------------------
if (!is_uri_host_local()) {
if (is_from_local() || src_ip=="10.166.38.108") {
route(4);
route(1);
} else {
sl_send_reply("403", "Forbidden");
};
exit;
};
if (method=="CANCEL") {
route(1);
exit;
} else if (method=="INVITE") {
route(3);
exit;
} else if (method=="REGISTER") {
route(2);
exit;
} else if (method=="ACK") { # Added 28-3-06: I won't send a
reply for ACK!
route(1);
exit;
};
lookup("aliases");
if (uri!=myself) {
route(4);
route(1);
exit;
};
if (!lookup("location")) {
sl_send_reply("404", "User Not Found");
exit;
};
route(1);
}
route[1] {
#
-----------------------------------------------------------------
# Default Message Handler
#
-----------------------------------------------------------------
t_on_reply("1");
setflag(1);
if (!t_relay()) {
if (method=="INVITE" || method=="ACK") {
unforce_rtp_proxy();
};
sl_reply_error();
};
}
route[2] {
#
-----------------------------------------------------------------
# REGISTER Message Handler
#
-----------------------------------------------------------------
sl_send_reply("100", "Trying");
if (!search("^Contact:[ ]*\*")) {
setflag(6);
fix_nated_register();
force_rport();
};
if (!www_authorize("","subscriber")) {
www_challenge("","0");
return;
};
if (!check_to()) {
sl_send_reply("401", "Unauthorized");
return;
};
consume_credentials();
if (!save("location")) {
sl_reply_error();
};
}
route[3] {
#
-----------------------------------------------------------------
# INVITE Message Handler
#
-----------------------------------------------------------------
if (!src_ip=="10.166.38.108") {
if (!proxy_authorize("","subscriber")) {
proxy_challenge("","0");
return;
};
consume_credentials();
};
setflag(6);
lookup("aliases");
if (uri!=myself) {
route(4);
route(1);
return;
};
if (!lookup("location")) {
if (uri=~"^sip:0[0-9]*@") { # PSTN
route(5);
return;
};
sl_send_reply("404", "User Not Found");
return;
};
route(4);
route(1);
}
route[4] {
#
-----------------------------------------------------------------
# NAT Traversal Section
#
-----------------------------------------------------------------
if (isflagset(6)) {
force_rport();
fix_nated_contact();
force_rtp_proxy();
};
}
route[5] {
#
-----------------------------------------------------------------
# PSTN Handler
#
-----------------------------------------------------------------
rewritehost("10.166.38.108"); # INSERT YOUR PSTN GATEWAY IP
ADDRESS
avp_write("i:45", "inv_timeout");
route(4);
route(1);
}
onreply_route[1] {
if (search("Server: Cisco ATA.*")) {
replace(", UPDATE", "");
}
if (search("User-Agent: Grandstream")) {
replace("UPDATE,", "");
}
if (isflagset(6) && (status=~"180|183|2[0-9][0-9]")) {
if (search("application/sdp")) {
force_rtp_proxy();
};
};
fix_nated_contact();
}
########################################################################
################
Regards,
Ronald