I've had this problem too, especially running syslog debug or external
processes. what ver of ser are you running? We had to ditch a lot of our
external processes because I assumed they took too long to run, no one
on the list was any help so I just gave up. Not being a coder is very
frustrating..
-----Original Message-----
From: AJ Grinnell [mailto:ajgrinnell@gmail.com]
Sent: Friday, February 18, 2005 8:44 AM
To: serusers(a)lists.iptel.org
Subject: [Serusers] SER stops responding
I am having a strange problem with 0.9.0. At random times, SER will just
stop responding. I run ethereal, and can see INVITEs, REGISTERs and
OPTIONs requests, but SER does not respond to any of them. The process
does not die, and moni tells me that SER is still running, just no
respones. Sometimes SER will recover after a few minutes, most of the
time it doesnt. Any ideas?
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
I am having a strange problem with 0.9.0. At random times, SER will
just stop responding. I run ethereal, and can see INVITEs, REGISTERs
and OPTIONs requests, but SER does not respond to any of them. The
process does not die, and moni tells me that SER is still running,
just no respones. Sometimes SER will recover after a few minutes, most
of the time it doesnt. Any ideas?
I'm using proxy_authorize function but something goes wrong because I check also
whether user is in defined group to make calls. In other words if sip proxy w/ ip 12.34.56.78
forwards traffic to sip proxy w/ ip 10.10.10.10 and user:1234@12.34.56.78 doesnt exsist
in 10.10.10.10 group table it's call is rejected.
Thanks,
Pavel
----- Original Message -----
From: Pavel Siderov - Hostmates
To: serusers(a)lists.iptel.org
Sent: Friday, February 18, 2005 11:23 AM
Subject: [Serusers] How to authorize sip proxies
Hi there,
Can you help me how to stop other sip proxies to forward calls to my ser and
how to authorize some of them to forward calls to me.
Thanks and regards,
Pavel Siderov
------------------------------------------------------------------------------
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers
Hi everyone,
It seems that ser-0.8.14 will become "dead" after running for a few days. I am using rtpproxy and nathelper with ser. After I restarted ser and rtpproxy, everything becomes fine again.
Would this problem be caused by ser-0.814 or rtpproxy? I don't know ser-0.814 or rtpproxy will be stable or not. Have you encountered such problem?
Also, is ser-0.9 more stable than ser-0.8.14?
Best Regards,
Thomas
Hi,
I'm trying to register my sip application to the SER
Register using MD5 authentication but I don't know
what parameters I had to concatenate to make the
response, and how to cancatenate it. If someone can
help me. Thanks.
I have readed something about the MD5 of
(username+password+nonce+method+uri), but concatenated
with a point?
Is my first time with the authentication ... :P
Raúl
______________________________________________
Renovamos el Correo Yahoo!: ¡250 MB GRATIS!
Nuevos servicios, más seguridad
http://correo.yahoo.es
I have SER and one Cisco 7960 phone in public network.
One cisco 7960 in a private network behind NAT. I have
configured SER with nathelper and rtpproxy (both are
downloaded via CVS).
Call from public to private network works fine. But
when I call from private to public network, then phone
rings fine, but there is no audio.
I'm wondering how can I get both ways to work ? I have
just one ser-server, do I have to two servers, which
one is proxy and another is used as outbound proxy.
__________________________________
Do you Yahoo!?
The all-new My Yahoo! - Get yours free!
http://my.yahoo.com
Hi there,
Can you help me how to stop other sip proxies to forward calls to my ser and
how to authorize some of them to forward calls to me.
Thanks and regards,
Pavel Siderov
Dear ALL:
I have defined these lines at my ser.cfg.
modparam("avpops", "avp_url", "mysql://ser:heslo@localhost/ser")
modparam("avpops", "avp_table", "usr_preferences")
modparam("avpops", "uuid_column", "uuid")
modparam("avpops", "username_column", "username")
modparam("avpops", "domain_column", "domain")
modparam("avpops", "attribute_column", "attribute")
modparam("avpops", "value_column", "value")
modparam("avpops", "type_column", "type")
modparam("avpops", "avp_aliases",
"voicemail=i:500;calltype=i:700;fwd_no_answer_type=i:701;fwd_busy_type=i:702")
Q1: But I don't know what it mean about 700 or 701. Is it a numeric ID
of one UA?
And I have refered to http://www.voice-system.ro/docs/avpops
And find many examples in it.
But I still can't understand what it mean about avp_db_load().
my avp table is named as "usr_preferences" and it is empty before I
use avpops modules.
Q2: Is it should have some initilized records in it?
Otherwise, what will be loaded with avp_db_load()?
For this web page said:
avp_db_load("$ruri/domain","i:/domain_preferences");
- loads all AVPs with ID from 'domain_preferences'
table for domain from RURI
Q3: Is "$ruri" the caller user's URI? and the "domain" is the same?
Is "domain_preferences" table name? Is it equal to my "usr_preferences"?
Or it is just a virtual table in memory?
Thank you for your answer my stupid questions.
Charles
Thanks Marian's help and answer. I can make a call from domainA to
domainB via PDT module.
But I got another error message from nathelper or rtpproxy.
It is "ERROR: extract_mediaip: no `c=' in SDP" from /var/log/messages.
I also find this message at source code of nathelper. So I think it
should happen from this module.
It seems voice channel can't pass throught it.
I make a call from UA_A ( under NAT ) from domainA and using PDT to
redirect to UA_B via domainB. UA_B has ring and it can answer. I can
hear the UA_A's sound from UA_B. The sound of UA_B is failed to UA_A.
UA_A(NAT) ==> domainA(PDT) ==> domainB(nathelper+rptproxy) ==> UA_B(NAT)
SOUND_A ==========================================> UA_B
UA_A <===== XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX === SOUND_B
Do I put the prefix2domain() in a wrong place?? Or Is it a bug ofi
nathelper & rtpproxy?
And my ser.cfg as below:
Best Regard.
Charles
#
# $Id: ser.cfg,v 1.25 2004/11/30 16:28:24 andrei Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
debug=8 # 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
*/
listen=xxx.xxx.xxx.xxx
alias=ser.xxx.net
alias=ser
alias=xxx.xxx.xxx.xxx
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
port=5060
children=4
fifo_mode=0666
fifo="/tmp/ser_fifo"
fifo_db_url="mysql://ser:heslo@localhost/ser"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database
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"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
loadmodule "/usr/local/lib/ser/modules/auth.so"
loadmodule "/usr/local/lib/ser/modules/auth_db.so"
# !! Nathelper
loadmodule "/usr/local/lib/ser/modules/nathelper.so"
loadmodule "/usr/local/lib/ser/modules/exec.so"
loadmodule "/usr/local/lib/ser/modules/avpops.so"
loadmodule "/usr/local/lib/ser/modules/domain.so"
loadmodule "/usr/local/lib/ser/modules/group.so"
loadmodule "/usr/local/lib/ser/modules/uri.so"
loadmodule "/usr/local/lib/ser/modules/uri_db.so"
loadmodule "/usr/local/lib/ser/modules/permissions.so"
loadmodule "/usr/local/lib/ser/modules/speeddial.so"
loadmodule "/usr/local/lib/ser/modules/acc.so"
loadmodule "/usr/local/lib/ser/modules/pdt.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)
modparam("usrloc", "db_mode", 1)
# -- 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)
# -- nathelper params --
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
# -- db_url params --
modparam("acc|auth_db|domain|group|permissions|speeddial|uri_db|usrloc|pdt",
"db_url", "mysql://ser:heslo@localhost/ser")
# -- use_domain params --
modparam("auth_db|group|registrar|speeddial|uri_db|usrloc", "use_domain", 0)
# -- permissions params --
modparam("permissions", "db_mode", 1)
modparam("permissions", "trusted_table", "trusted")
# -- accounting params --
modparam("acc", "db_flag", 1)
modparam("acc", "db_missed_flag", 1)
modparam("acc", "log_fmt", "cdfimorstup")
modparam("acc", "log_level", 1)
modparam("acc", "failed_transactions", 1)
modparam("acc", "report_cancels", 1)
modparam("acc", "report_ack", 0)
# -- domain params --
modparam("domain", "db_mode", 1)
# -- avp params --
modparam("avpops", "avp_url", "mysql://ser:heslo@localhost/ser")
modparam("avpops", "avp_table", "usr_preferences")
#modparam("avpops", "use_domain", "1")
modparam("avpops", "uuid_column", "uuid")
modparam("avpops", "username_column", "username")
modparam("avpops", "domain_column", "domain")
modparam("avpops", "attribute_column", "attribute")
modparam("avpops", "value_column", "value")
modparam("avpops", "type_column", "type")
modparam("avpops", "avp_aliases",
"voicemail=i:500;calltype=i:700;fwd_no_answer_type=i:701;fwd_busy_type=i:702")
# To use more than one tables example
#modparam("avpops", "db_scheme",
"scheme1:table=subscriber;uuid_column=uuid;value_column=first_name")
# -- tm params --
modparam("tm", "fr_timer", 15)
modparam("tm", "fr_inv_timer", 22)
modparam("tm", "wt_timer", 5)
modparam("tm", "fr_inv_timer_avp", "inv_timeout")
# -- pft params --
modparam("pdt", "db_table", "prefix_domain")
modparam("pdt", "prefix", "")
#modparam("pdt", "start_range", 2000)
#modparam("pdt", "terminator", 0)
modparam("pdt", "hsize_2pow", 2)
modparam("pdt", "sync_time", 300)
modparam("pdt", "clean_time", 600)
# ------------------------- 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 >= max_len ) {
sl_send_reply("513", "Message too big");
break;
};
if (method=="INVITE" || method=="BYE") {
setflag(1);
};
# !! Nathelper
# Special handling for NATed clients; first, NAT test is
# executed: it looks for via!=received and RFC1918 addresses
# in Contact (may fail if line-folding is used); also,
# the received test should, if completed, should check all
# vias for rpesence of received
if (nat_uac_test("3")) {
# Allow RR-ed requests, as these may indicate that
# a NAT-enabled proxy takes care of it; unless it is
# a REGISTER
if (method == "REGISTER" || ! search("^Record-Route:")) {
log("SER: Someone trying to register from
private IP, rewriting\n");
# This will work only for user agents that
support symmetric
# communication. We tested quite many of them
and majority is
# smart enough to be symmetric. In some phones
it takes a configuration
# option. With Cisco 7960, it is called
NAT_Enable=Yes, with kphone it is
# called "symmetric media" and "symmetric signalling".
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
};
};
# 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;
};
prefix2domain();
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("ser.xxx.net", "subscriber")) {
www_challenge("ser.xxx.net", "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]
{
# !! Nathelper
if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" &&
!search("^Route:")){
sl_send_reply("479", "We don't forward to private IP addresses");
break;
};
# if client or server know to be behind a NAT, enable relay
if (isflagset(6)) {
force_rtp_proxy();
};
# NAT processing of replies; apply to all transactions (for example,
# re-INVITEs from public to private UA are hard to identify as
# NATed at the moment of request processing); look at replies
t_on_reply("1");
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
sl_reply_error();
};
}
On Thu, 17 Feb 2005 12:49:10 +0100, Marian Dumitru
<marian.dumitru(a)voice-sistem.ro> wrote:
> Hi Charles,
>
> You have to use interdomain prefixes. Set on domainA a prefix for
> recognizing dialed numbers in domainB.
> The logic is like:
> PrefixToB+numberInB@domainA -> numberinB@domainB
>
> you can do this directly from script or by using PDT module.
>
> Best regards,
> Marian