Dear ALL:
I install my SER on two machines, one named "SER_A" and the other named "SER_B".
Two UACs register to each server. One named "UAC_A" the other named "UAC_B".
Server Domain Prefix UAC UAC's ID
-------------------------------------------------------------------------
SER_A A.com 852 UAC_A 1011
SER_B B.com 886 UAC_B 2022
-------------------------------------------------------------------------
Prefix_Domain table:
---------------------------------
domain | prefix
----------------|-----------------
A.com | 852
B.com | 886
----------------|-----------------
My senario is below:
UAC_A ======> SER_A ====> SER_B ====> UAC_B
1011 || || 2022
(dial a number || || (Ringing)
8862022) || Accept 2022(a)B.com
|| and forward to UAC_B
change 8862022(a)A.com
to 2022(a)B.com
I install SER+MediaProxy on my systems and using pdt modules to
do the prefix convert.
I find these error behaviors on my SER_A's log file. And the call from
1011 to 2022.
The call seems be process twice. You can find "Prefix To Domain
Checking" twice at the beginning. Can anybody give me some tips to
solve it?
---------------------- My log file
-----------------------------------------------
ser /usr/local/sbin/ser[23458]: SER: Prefix To Domain Checking...
ser /usr/local/sbin/ser[23458]: SER: SIP Call On-Net section route(2)
ser /usr/local/sbin/ser[23456]: SER: Prefix To Domain Checking...
ser /usr/local/sbin/ser[23456]: SER: SIP Call On-Net section route(2)
ser proxydispatcher[23541]: command request
D24BF98F-101E-43F4-9765-4DBB863A999D(a)192.168.11.5
192.168.11.5:8000:audio xxx.xxx.133.108 A.com local B.com remote
X-PRO=20build=201082
info=from:1011@A.com,to:8862022@A.com,fromtag:3667188260,totag:
ser /usr/local/sbin/ser[23463]: SER: Prefix To Domain Checking...
ser /usr/local/sbin/ser[23463]: SER: SIP Call On-Net section route(2)
ser proxydispatcher[23542]: command request
D24BF98F-101E-43F4-9765-4DBB863A999D(a)192.168.11.5
192.168.11.5:8000:audio xxx.xxx.133.108 A.com local B.com remote
X-PRO=20build=201082
info=from:1011@A.com,to:8862022@A.com,fromtag:3667188260,totag:
ser proxydispatcher[23541]: domain A.com doesn't define any mediaproxy.
ser proxydispatcher[23541]: will use default mediaproxy for this call.
ser mediaproxy[18756]: command request
D24BF98F-101E-43F4-9765-4DBB863A999D(a)192.168.11.5
192.168.11.5:8000:audio xxx.xxx.133.108 A.com local B.com remote
X-PRO=20build=201082
info=from:1011@A.com,to:8862022@A.com,fromtag:3667188260,totag:,dispatcher
ser mediaproxy[18756]: session
D24BF98F-101E-43F4-9765-4DBB863A999D(a)192.168.11.5: started. listening
on xxx.xxx.190.248:35020
ser mediaproxy[18756]: command execution time: 10.30 ms
ser proxydispatcher[23541]: forwarding to mediaproxy on
/var/run/mediaproxy.sock: got: 'xxx.xxx.190.248 35020'
ser proxydispatcher[23541]: command execution time: 3365.77 ms
ser proxydispatcher[23542]: domain A.com doesn't define any mediaproxy.
ser proxydispatcher[23542]: will use default mediaproxy for this call.
ser mediaproxy[18756]: command request
D24BF98F-101E-43F4-9765-4DBB863A999D(a)192.168.11.5
192.168.11.5:8000:audio xxx.xxx.133.108 A.com local B.com remote
X-PRO=20build=201082
info=from:1011@A.com,to:8862022@A.com,fromtag:3667188260,totag:,dispatcher
ser mediaproxy[18756]: command execution time: 0.39 ms
ser proxydispatcher[23542]: forwarding to mediaproxy on
/var/run/mediaproxy.sock: got: 'xxx.xxx.190.248 35020'
ser proxydispatcher[23542]: command execution time: 4101.53 ms
ser /usr/local/sbin/ser[23463]: SER: Failure Route section failure_route(1)
ser /usr/local/sbin/ser[23456]: SER: Prefix To Domain Checking...
ser /usr/local/sbin/ser[23456]: SER: SIP Call On-Net section route(2)
--------------------- My ser.cfg
-----------------------------------------------------------
# ----------- global configuration parameters ------------------------
debug=10 # 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
*/
alias=A.com
alias=xxx.xxx.190.248
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"
loadmodule "/usr/local/lib/ser/modules/auth.so"
loadmodule "/usr/local/lib/ser/modules/auth_db.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"
loadmodule "/usr/local/lib/ser/modules/options.so"
loadmodule "/usr/local/lib/ser/modules/mediaproxy.so"
loadmodule "/usr/local/lib/ser/modules/xlog.so"
# ----------------- setting module-specific parameters ---------------
# -- mediaproxy params --
modparam("mediaproxy", "natping_interval", 30)
modparam("mediaproxy", "sip_asymmetrics",
"/usr/local/etc/ser/sip-asymmetric-clients")
modparam("mediaproxy", "rtp_asymmetrics",
"/usr/local/etc/ser/rtp-asymmetric-clients")
# -- usrloc params --
modparam("usrloc", "db_mode", 1)
modparam("usrloc", "timer_interval", 60)
modparam("usrloc", "desc_time_order", 1)
# -- auth params --
modparam("auth_db", "calculate_ha1", yes)
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)
# -- 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)
# ------------- exec parameters
modparam("exec", "setvars", 1)
modparam("exec", "time_to_kill", 10)
# -- registration params --
modparam("registrar", "nat_flag", 2)
modparam("registrar", "min_expires", 60)
modparam("registrar", "max_expires", 86400)
modparam("registrar", "default_expires", 3600)
modparam("registrar", "append_branches", 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", 30)
modparam("tm", "fr_inv_timer", 30)
modparam("tm", "wt_timer", 5)
modparam("tm", "fr_inv_timer_avp", "inv_timeout")
# -- pdt params --
modparam("pdt", "db_table", "prefix_domain")
modparam("pdt", "prefix", "")
modparam("pdt", "hsize_2pow", 2)
modparam("pdt", "sync_time", 300)
modparam("pdt", "clean_time", 600)
# -- logging params
modparam("xlog", "buf_size", 8192)
# -- group params --
modparam("group", "table", "grp")
modparam("group", "user_column", "username")
modparam("group", "domain_column", "domain")
modparam("group", "group_column", "grp")
# ------------------------- request routing logic -------------------
# main routing logic
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;
};
# ------------------------------------------------------------------------
# NOTIFY Keep-Alive Section
# ------------------------------------------------------------------------
if (method=="NOTIFY") {
sl_send_reply("200", "OK");
break;
};
# ------------------------------------------------------------------------
# NAT Test Section #1
# ------------------------------------------------------------------------
if (method=="REGISTER" && client_nat_test("3")) {
fix_contact();
force_rport();
setflag(2);
};
# ------------------------------------------------------------------------
# Registration Section
# ------------------------------------------------------------------------
if (method=="REGISTER") {
# allow all requests from user 700 - the Click2Dial controller
if (!isflagset(14)) {
if (!is_from_local()) {
sl_send_reply("403", "Unknown Domain");
break;
};
if (!www_authorize("", "subscriber")) {
www_challenge("", "0");
break;
};
if (!check_to()) {
sl_send_reply("401", "Unauthorized");
break;
};
# To - Use To username and (optionally) domain to check
if (is_user_in("To", "demo-disabled")) {
sl_send_reply("403", "Your evaluation period has expired");
break;
};
# To - Use To username and (optionally) domain to check
if (is_user_in("To", "disabled")) {
sl_send_reply("403", "Your account has been disabled");
break;
};
};
# snom sip phones use this header to start their
# keep-alive mechanism for NAT bindings
append_to_reply("P-NAT-Refresh: 15\r\n");
if (!save("location")) {
sl_reply_error();
};
break;
};
# ------------------------------------------------------------------------
# Accounting Section # 1
# ------------------------------------------------------------------------
if ((method=="INVITE" || method=="BYE") && !isflagset(14)) {
setflag(1);
};
# ------------------------------------------------------------------------
# NAT Tear-Down Section
# ------------------------------------------------------------------------
if ((method == "BYE" || method == "CANCEL")) {
end_media_session();
};
# ------------------------------------------------------------------------
# Record Route Section
# ------------------------------------------------------------------------
if (!method=="REGISTER") {
record_route();
};
# ------------------------------------------------------------------------
# Loose Route Section
# ------------------------------------------------------------------------
if (loose_route()) {
route(2);
break;
};
# ------------------------------------------------------------------------
# Prefix To Domain Section
# ------------------------------------------------------------------------
log(1, "SER: Prefix To Domain Checking...\n");
prefix2domain();
# ------------------------------------------------------------------------
# NAT Test Section #1
# ------------------------------------------------------------------------
if (client_nat_test("3") && !search("^Record-Route:")) {
force_rport();
fix_contact();
};
# ------------------------------------------------------------------------
# PSTN Section
# ------------------------------------------------------------------------
if (method=="INVITE") { ## Deny PSTN to 0204 and 095 on Tawan
if ((uri=~"^sip:0204[0-9]*@") || (uri=~"^sip:095[0-9]*@")) {
sl_send_reply("503", "Service Unavailable");
break;
};
};
# ------------------------------------------------------------------------
# Alias Routing Section
# ------------------------------------------------------------------------
lookup("aliases");
if (!uri==myself) {
route(2);
break;
};
# ------------------------------------------------------------------------
# Load ACL Section
# ------------------------------------------------------------------------
if (method=="INVITE" && !isflagset(14)) {
xlog("L_ERR", "Time:[%Tf] Method:<%rm> r-uri:<%ru>\n");
xlog("L_ERR", "IP:<%is> From:<%fu> To:<%tu> %ct\n");
if (is_from_local() || is_uri_host_local()) {
# Check user from grp table
if (is_user_in("From", "int")) {
log(1, "SER: a INT user\n");
setflag(29);
};
if (is_user_in("From", "free-pstn")) {
log(1, "SER: a FREE-PSTN user\n");
setflag(28);
};
if (avp_db_load("$from/username", "s:callidblock")) {
if (avp_check("s:callidblock", "eq/y/i")) {
setflag(25);
};
};
};
if (avp_db_load("$ruri/username", "s:anoncallrej")) {
if (avp_check("s:anoncallrej", "eq/y/i")) {
log(1, "SER: a ANON-CALL-REJ user\n");
setflag(24);
};
};
};
# ------------------------------------------------------------------------
# Anonymous Call Rejection Section # 24
# ------------------------------------------------------------------------
if (isflagset(24) && (method=="INVITE") &&
search("^(f|F)rom:.*(a|A)nonymous")) {
route(8);
break;
};
# ------------------------------------------------------------------------
# 002 International Call Section # 29
# ------------------------------------------------------------------------
if (method=="INVITE" && uri=~"^sip:002[0-9]*@") {
if (isflagset(29)) {
log(1, "SER: an International Call route(6)\n");
route(6);
} else {
sl_send_reply("503", "Service Unavailable");
};
break;
};
# ------------------------------------------------------------------------
# 0XXXXXXXXX Domestic Call Section # 29
# ------------------------------------------------------------------------
if (method=="INVITE" && uri=~"^sip:0[0-9]{9}@") {
if (isflagset(29)) {
log(1, "SER: a Domestic Call route(6)\n");
route(6);
} else {
sl_send_reply("503", "Service Unavailable");
};
break;
};
# ------------------------------------------------------------------------
# Blind Call Forwarding Section
# ------------------------------------------------------------------------
if (method=="INVITE") {
log(1, "SER: BLIND CALL FORWARDING\n");
# here we must store the current (aka original) R-URI because if
# we set call forwarding and the forwarded number is busy then we
# need to use this original R-URI to determine which voicemail
# box we should go to
if (isflagset(31)) {
avp_write("$ruri", "$voicemail");
};
if (avp_db_load("$ruri/username", "s:callfwd")) {
avp_pushto("$ruri", "s:callfwd");
# lookup the call fowarding number to see if it is a served
# sip number or a PSTN number
# check forwarding number rules
log(1, "SER: Check Forwarding Number Rules\n");
route(1);
# test for domestic PSTN gateway
if (uri=~"^sip:0[1-9]{9}@") {
#if (avp_check("$calltype", "eq/dom/i")) {
log(1, "SER: Start a domestic PSTN call route(3)\n");
route(3);
break;
};
# test for international PSTN gateway
if (uri=~"^sip:002[1-9]*@") {
# if (avp_check("$calltype", "eq/int/i")) {
log(1, "SER: Start an international PSTN call route(6)\n");
route(6);
break;
};
# test for H323 gatekeeper
if (uri=~"^sip:888251[0-9]*@") {
# if (avp_check("$calltype", "eq/int/i")) {
log(1, "SER: Start a H323 call route(9)\n");
route(9);
break;
};
};
};
# ------------------------------------------------------------------------
# Call Routing Section
# ------------------------------------------------------------------------
if (!lookup("location")) {
# if flag 31 (ie voicemail) is set and we made it here this means
# the user's phone is not registered anywhere. We'll forward to
# voicemail after this block because we need to check the call
# forward settings first
if (isflagset(31)) {
# flag 19 means the user has voicemail but is not online
# so we need to remember to send to voicemail if call
# forwarding is not enabled
setflag(19);
};
if (method=="INVITE") {
if (does_uri_exist()) {
# subscriber record found, but they're offline
log(1, "SER: Temporarily Unavailable\n");
sl_send_reply("480", "Temporarily Unavailable");
break;
};
if (uri=~"^sip:0[0-9]{9}@") {
# Send to PSTN Gateway
if (isflagset(28) || (is_user_in("From", "int")) ||
(is_user_in("From", "free-pstn"))) {
log(1, "SER: Start a PSTN call\n");
route(3);
} else {
log(1, "SER: 503 Service Unavailable 2\n");
sl_send_reply("503", "Service Unavailable");
};
break;
};
if (uri=~"^sip:888251[0-9]*@") {
# Send to H323 Gatekeeper
if (isflagset(28) || (is_user_in("From", "int")) ||
(is_user_in("From", "free-pstn"))) {
log(1, "SER: Start a H323 call\n");
route(9);
} else {
log(1, "SER: 503 Service Unavailable 2\n");
sl_send_reply("503", "Service Unavailable");
};
break;
};
sl_send_reply("404", "User Not Found");
break;
};
};
# ------------------------------------------------------------------------
# Call Forwarding Section
# ------------------------------------------------------------------------
if (method=="INVITE") {
# save R-URI in a temp AVP for later use
avp_write("$ruri", "i:99");
# only load the forward no answer option if voice mail is not enabled
if (!isflagset(31)) {
if (avp_db_load("$ruri/username", "s:fwdnoanswer")) {
route(1);
setflag(27);
};
};
if (avp_db_load("$ruri/username", "s:fwdbusy")) {
route(1);
setflag(26);
};
avp_pushto("$ruri", "i:99");
};
if (isflagset(19)) {
# send to voicemail
route(5);
} else {
route(2);
};
}
route[1] {
----skip here------
}
route[2] {
log(1, "SER: SIP Call On-Net section route(2)\n");
if ((method=="INVITE") && !allow_trusted()) {
if (!proxy_authorize("", "subscriber")) {
proxy_challenge("", "0");
break;
} else if (!check_from()) {
log(1, "Spoofed SIP call attempt");
sl_send_reply("403", "Use From=ID");
break;
} else if (!(is_from_local() || is_uri_host_local())) {
sl_send_reply("403", "Please register to use our service");
break;
};
};
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 (isflagset(25)) {
replace("^From:(.*)>" , "From: \"Anonymous\"
<sip:someone@anonymous.invalid>");
};
if (method=="INVITE" || method=="ACK") {
use_media_proxy();
};
t_on_failure("1");
t_on_reply("1");
if (!t_relay()) {
if (method=="INVITE" || method=="ACK") {
end_media_session();
};
sl_reply_error();
};
}
route[3] {
----skip here------
}
route[4] {
----skip here------
}
route[5] {
----skip here------
}
route[6] {
----skip here------
}
route[7] {
----skip here------
}
route[8] {
----skip here------
}
route[9] {
----skip here------
}
onreply_route[1] {
# Not all 2xx messages have a content body so here we
# make sure our Content-Length > 0 to avoid a parse error
if (status=~"(180)|(183)|2[0-9][0-9]") {
if (!search("^Content-Length:\ 0")) {
use_media_proxy();
};
};
if (client_nat_test("1")) {
fix_contact();
};
}
failure_route[1] {
log(1, "SER: Failure Route section failure_route(1)\n");
# if caller hung up then don't sent to voicemail
if (t_check_status("487")) {
break;
};
if (isflagset(26) && t_check_status("486")) {
# forward busy is flag 26
if (avp_pushto("$ruri", "s:fwdbusy")) {
log(1, "SER: fork to fwdbusy\n");
avp_delete("s:fwdbusy");
append_branch();
resetflag(26);
# test for domestic PSTN gateway
if (uri=~"^sip:0[0-9]{9}@") {
# if (avp_check("$fwd_busy_type", "eq/dom/i")) {
# test for domestic PSTN gateway
log(1, "SER: Busy Failure and Jump to route(6)\n");
route(6);
} else if (uri=~"^sip:002[1-9][0-9]*@") {
# } else if (avp_check("$fwd_busy_type", "eq/int/i")) {
# test for international PSTN gateway
log(1, "SER: Busy Failure and Jump to route(3)\n");
route(3);
} else {
# default to sip call
log(1, "SER: Busy Failure and Jump to route(2)\n");
route(2);
};
break;
};
};
# here we can have either voicemail __OR__ forward no answer
if (isflagset(27) && t_check_status("408")) {
# forward no answer is flag 27
if (avp_db_load("$ruri/username", "s:fwdnoanswer")) {
avp_pushto("$ruri", "s:fwdnoanswer");
log(1, "SER: fork to fwdnoanswer\n");
avp_delete("s:fwdnoanswer");
append_branch();
resetflag(27);
if (uri=~"^sip:0[0-9]{9}@") {
# if (avp_check("$fwd_no_answer_type", "eq/dom/i")) {
# test for domestic PSTN gateway
log(1, "SER: No Answer Failure and Jump to route(3)\n");
route(3);
} else if (uri=~"^sip:002[1-9][0-9]*@") {
# } else if (avp_check("$fwd_no_answer_type", "eq/int/i")) {
# test for international PSTN gateway
log(1, "SER: No Answer Failure and Jump to route(6)\n");
route(6);
} else {
# default to sip call
log(1, "SER: No Answer Failure and Jump to route(2)\n");
route(2);
};
break;
};
} else if (isflagset(31) && avp_pushto("$ruri", "$voicemail")) {
avp_delete("$voicemail");
log(1, "SER: No Answer Failure and Jump to route(4)\n");
route(4);
break;
};
}
Hi Jan,
Thank you for your reply and sorry for coming back so late on the
subject. Below is some output from SER and the backtrace that I obtained
with gdb.
Quang
-----Message d'origine-----
De : Jan Janak [mailto:jan@iptel.org]
Envoyé : jeudi 27 janvier 2005 18:47
À : PHAN, Quang-Minh (Docteur Ordinateur)
Cc : 'serusers(a)lists.iptel.org'
Objet : Re: [Serusers] SER crash !!! ( Problem with q_malloc ???? )
Unfortunately the coredump itself is not enough, could you make a
backtrace in gdb so that we can see where exactly does it crash ?
Jan.
On 20-01 11:50, PHAN, Quang-Minh (Docteur Ordinateur) wrote:
> Hi all,
>
> I'm running SER 0.9 on an FEDORA CORE 3 machine and it crashes every
> time I try to use mysql module. I have compile SER in mode debug and spent
> some time trying to figure it out. I first found a bug in the q_find_free
> function in q_malloc.c:290: "if (f->size == size)" which cause memory
> access violation when f is NULL. I fixed this but it didn't solve the
> problem.
>
> I attached here the coredump and the ser.cfg file. The version of
MySQL
> Server and libraries is 4.1
>
> Any helps will be highly appreciated,
>
> Quang
>
[ser@localhost sbin]$ ./ser -f ser.cfg
127.0.0.1 [127.0.0.1]:5060
0(9063) WARNING: fix_socket_list: could not rev.
resolve 192.168.4.24
192.168.4.24 [192.168.4.24]:5060
127.0.0.1 [127.0.0.1]:5060
0(9063) WARNING: fix_socket_list: could not rev.
resolve 192.168.4.24
192.168.4.24 [192.168.4.24]:5060 Listening on
udp: 127.0.0.1 [127.0.0.1]:5060
udp: 192.168.4.24 [192.168.4.24]:5060
tcp: 127.0.0.1 [127.0.0.1]:5060
tcp: 192.168.4.24 [192.168.4.24]:5060
Aliases:
tcp: localhost:5060
tcp: localhost.localdomain:5060
udp: localhost:5060
udp: localhost.localdomain:5060
WARNING: no fork mode and more than one listen address found(will use only
the the first one) stateless - initializing
0(0) Maxfwd module- initializing
Erreur de segmentation (core dumped)
[ser@localhost sbin]$ ls
core.9063 gen_ha1 ser ser.cfg serctl ser_mysql.sh serunix
[ser@localhost sbin]$ gdb ser core.9063
GNU gdb Red Hat Linux (6.1post-1.20040607.41rh) Copyright 2004 Free Software
Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as
"i386-redhat-linux-gnu"...Using host libthread_db library
"/lib/tls/libthread_db.so.1".
Core was generated by `./ser -f ser.cfg'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libresolv.so.2...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /lib/tls/libc.so.6...done.
Loaded symbols for /lib/tls/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from
/home/ser/compiled/sip_router/lib/ser/modules/mysql.so...done.
Loaded symbols for
/home/ser/compiled/sip_router/lib/ser/modules/mysql.so
Reading symbols from /usr/lib/libz.so.1...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from
/home/ser/compiled/sip_router/lib/ser/modules/sl.so...done.
Loaded symbols for
/home/ser/compiled/sip_router/lib/ser/modules/sl.so
Reading symbols from
/home/ser/compiled/sip_router/lib/ser/modules/tm.so...done.
Loaded symbols for
/home/ser/compiled/sip_router/lib/ser/modules/tm.so
Reading symbols from
/home/ser/compiled/sip_router/lib/ser/modules/rr.so...done.
Loaded symbols for
/home/ser/compiled/sip_router/lib/ser/modules/rr.so
Reading symbols from
/home/ser/compiled/sip_router/lib/ser/modules/maxfwd.so...done.
Loaded symbols for
/home/ser/compiled/sip_router/lib/ser/modules/maxfwd.so
Reading symbols from
/home/ser/compiled/sip_router/lib/ser/modules/usrloc.so...done.
Loaded symbols for
/home/ser/compiled/sip_router/lib/ser/modules/usrloc.so
Reading symbols from
/home/ser/compiled/sip_router/lib/ser/modules/registrar.so...done.
Loaded symbols for
/home/ser/compiled/sip_router/lib/ser/modules/registrar.so
Reading symbols from /lib/libnss_files.so.2...done.
Loaded symbols for /lib/libnss_files.so.2 Reading symbols from
/lib/libnss_dns.so.2...done.
Loaded symbols for /lib/libnss_dns.so.2
#0 0x002f3da3 in strlen () from /lib/tls/libc.so.6
(gdb) bt
#0 0x002f3da3 in strlen () from /lib/tls/libc.so.6
#1 0xf6eecb57 in new_my_id (url=0x8d6dbc0
"mysql://root@192.168.4.24/ser") at my_id.c:80
#2 0xf6eed299 in get_connection (url=0x8d6dbc0
"mysql://root@192.168.4.24/ser") at my_pool.c:69
#3 0xf6eeb3c2 in db_init (_url=0x8d6dbc0
"mysql://root@192.168.4.24/ser") at dbase.c:260
#4 0xf6e77a4d in register_udomain (_n=0x8136df0 "location", _d=0xfef72ce0)
at dlist.c:233
#5 0xf6e6f6ce in domain_fixup (param=0x8136eb4,
param_no=1) at reg_mod.c:207
#6 0x0806cac0 in fix_actions (a=0x8136ea0) at
route.c:238
#7 0x0806c9cc in fix_actions (a=0x8136f40) at
route.c:225
#8 0x0806c9cc in fix_actions (a=0x8136240) at
route.c:225
#9 0x0806ef97 in fix_rls () at route.c:721 #10 0x0805cdb6 in main (argc=3,
argv=0xfef72f84) at
main.c:1558
> _______________________________________________
> Serusers mailing list
> serusers(a)lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
Hi everyone,
>From what Ive seen in the archives, the latest unstable version of
ser is needed to support presence (i.e. the pa module),is that
correct?? I am currently running 8.0.14....If this is the case,could
someone let me know how I use cvs to get the latest unstable and if I
do get this version will it overwrite my current ser config??
Also does windows messenger 5 work with the pa module or should I
just not bother and use a different client?
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.
* Andres <andres(a)telesip.net> [050313 19:15]:
>
> >As I said I already have a solution to this. Using it I can know if a call
> >did timeout because the gateway is dead, or it did timeout because the
> >callee didn't answer which is all that I want.
> >I tested it and it works just fine.
> >
> >
> >
> Dan,
>
> Could you please share you ser.cfg trick to solve this issue? I am
> trying the "set flag" approach but have not quite nailed it.
In you reply_route, setflag(10);
and in failure_route(..);
if(is_flag_set(10)){
do_your_stuff();
};
>
> Thanks,
>
> --
> Andres
> Network Admin
> http://www.telesip.net
>
>
> _______________________________________________
> Serdev mailing list
> serdev(a)lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serdev
>
Hi Barry!
Barry Murphy wrote:
> Hi,
>
> Thanks for the advice.
>
> Well here's the thing, bandwidth between Auckland & Wellington is chargeable
> and not every ISP has a big pipe going down the country. I want Wellington
> users to connect to Wellington and Auckland users to connect to Auckland,
> this way if they make a local call to their city, the traffic isn't going up
> and down the country for no reason. Correct me if I'm wrong but the SIP
> server does the encoding of the calls etc, it's not passed P2P, so the
> server that the user is connected to passes 64k of traffic per call or
> similar?
Please always send the emails to the mailinglist.
Typically, RTP goes directly between the user agent, not via the proxy.
Only in certain situations the rtpproxy is necessary (user is behind
symmetric NAT)
In must situations, the NAT problem can be solved by using STUN and
rtpproxy is not necessary. Nevertheless a rtpproxy is necessary in
certain situations and therefore (as traffic matters) it makes sense to
use multiple rtpproxys.
regards,
Klaus
>
> Thanks
> Barry
> ----- Original Message -----
> From: "Klaus Darilion" <klaus.mailinglists(a)pernau.at>
> To: "Barry Murphy" <barry(a)unix.co.nz>
> Cc: "Alistair Cunningham" <acunningham(a)integrics.com>; <serusers(a)lists.iptel.org>
> Sent: Friday, March 11, 2005 9:17 PM
> Subject: Re: [Serusers] Voip Solution advice
>
>
>
>>Hi Barry!
>>
>>A one server setup is simple. Use ser+serweb and you are done. For
>>multiple server it depends an what do you want to achieve. There is nood
>>need to have the subscribtion on several servers. Setting up serweb on
>>one server should be sufficient.
>>
>>Using rtpproxy it makes sense to distribute the servers if you expect a
>>worldwide community.
>>
>>As long as there aren't millions of user, I would setup 1 server on your
>>main location (ser+rtpproxy+serweb+asterisk), and maybe a second server
>>with rtpproxy only on a second location (depending on the
>>round-trip-times inside New Zealand).
>>
>>We have a one server setup with 1000 users. ser+asterisk
>>(voicemail,conference)+db on the same PC without any performance issues:
>># uptime
>> load average: 0.17, 0.10, 0.09
>>
>>Thus, as long as the delays for the RTPproxy will not heavily effect
>>voice quality, I would stay with a 1 server setup.
>>
>>regards,
>>klaus
>>
>>
>>Barry Murphy wrote:
>>
>>
>>>How does one implement the following:
>>>
>>>US Server - 202.7.6.33
>>>NZ Auckland - 202.7.6.33
>>>NZ Wellington - 202.7.6.33
>>>
>>>Each server also has a unique real world IP to communicate in the
>
> backend
>
>>>for mysql etc, however the anycast range above is used to connect a
>
> person
>
>>>to the closest peering server. I'm starting something similar to FWD but
>>>with a NZ presence, there are a number of very excited users wishing to
>>>signup, with an option of making international calls via a gateway
>
> provider
>
>>>in the future.
>>>
>>>The Auckland server will have the DB and all the others will connect
>>>remotely to the DB via the unique IP address. The Auckland server will
>
> have
>
>>>an Asterisk installation running on 5070 to deal with voicemail and
>
> peering
>
>>>to other providers with my unique user/pass (Unless this can be done
>
> with
>
>>>SER)
>>>
>>>If anyone is willing to help with this community project please advise,
>
> if
>
>>>you could help with configs, that would be a GREAT help. If you're a
>
> current
>
>>>VOIP provider and have a solution that I could use to deploy this
>
> network,
>
>>>it'd be much appreciated. I'm not doing this for money so I don't expect
>
> to
>
>>>be paying any money to set it up, I have the server resources and
>
> bandwidth
>
>>>and thought this would be a great way to put it to use. In return I can
>>>advertise your PBX solutions to the NZ market as there are currently
>
> none
>
>>>that I know of.
>>>
>>>Thanks
>>>Kindest Regards
>>>Barry Murphy
>>>
>>>----- Original Message -----
>>>From: "Alistair Cunningham" <acunningham(a)integrics.com>
>>>To: "Barry Murphy" <barry(a)unix.co.nz>
>>>Cc: <serusers(a)lists.iptel.org>
>>>Sent: Friday, March 11, 2005 11:09 AM
>>>Subject: Re: [Serusers] problem with serwev confirmation...
>>>
>>>
>>>
>>>
>>>>Barry,
>>>>
>>>>The fifo is used by programs such as serctl and the web interface to
>>>>communicate with SER itself. It's not accessible from remote machines,
>>>>which means that the web interface needs to run on the same machine as
>>>>SER. If you have 2 SER machines you need to think carefully about how to
>>>>do the web interface, as the web accesses both MySQL directly and SER
>>>>through the FIFO.
>>>>
>>>>If you have to change the permissions each time, something is still
>
> wrong.
>
>>>>Alistair Cunningham,
>>>>Integrics Ltd,
>>>>Telephony, Database, Unix consulting worldwide
>>>>+44 (0)7870 699 479
>>>>http://integrics.com/
>>>>
>>>>
>>>>Barry Murphy wrote:
>>>>
>>>>
>>>>>I've edited the code and got it all working, however still get slow
>
> page
>
>>>>>loads when trying to access ser_fifo (pages dont load, just blue bar
>>>
>>>going
>>>
>>>
>>>>>slowly till timeout). Another thing i'm thinking may be an issue is I
>>>
>>>have 2
>>>
>>>
>>>>>servers sharing the same DB, one remote server and then the local one,
>>>
>>>how
>>>
>>>
>>>>>are they going to share ser_fifo info; what the heck is ser_fifo used
>>>
>>>for;
>>>
>>>
>>>>>cant it use the DB?
>>>>>
>>>>>Everytime i start ser I have to change the permissions of ser_fifo :/
>>>>>
>>>>>Barry
>>>>>
>>>>>----- Original Message -----
>>>>>From: "Alistair Cunningham" <acunningham(a)integrics.com>
>>>>>To: "Barry Murphy" <barry(a)unix.co.nz>
>>>>>Cc: <serusers(a)lists.iptel.org>
>>>>>Sent: Friday, March 11, 2005 10:04 AM
>>>>>Subject: Re: [Serusers] problem with serwev confirmation...
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>Barry,
>>>>>>
>>>>>>You shouldn't need to delete pending users by hand. If it's not being
>>>>>>done automatically, something's wrong.
>>>>>>
>>>>>>Sure SER is running and is accessing the fifo? Try this command as
>
> root:
>
>>>>>>fuser -v /tmp/ser_fifo
>>>>>>
>>>>>>It ought to list quite a few SER processes running.
>>>>>>
>>>>>>If you'd like commercial help getting this fixed, I can ssh into your
>>>>>>server and take a look if you like. It wouldn't be very much. Drop me
>
> an
>
>>>>>>email off list if you're interested.
>>>>>>
>>>>>>Alistair Cunningham,
>>>>>>Integrics Ltd,
>>>>>>Telephony, Database, Unix consulting worldwide
>>>>>>+44 (0)7870 699 479
>>>>>>http://integrics.com/
>>>>>>
>>>>>>
>>>>>>Barry Murphy wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>>Hi Alistair,
>>>>>>>
>>>>>>>Same list different thread.
>>>>>>>
>>>>>>>Yeah I did notice this mistake I made and corrected it, however since
>>>>>
>>>>>doing
>>>>>
>>>>>
>>>>>
>>>>>>>so, when I go to the confirmation page it says "opening page" with
>
> the
>
>>>>>vlue
>>>>>
>>>>>
>>>>>
>>>>>>>bar slowly moving across, never stops until timeout has exceeded.
>
> It's
>
>>>>>doing
>>>>>
>>>>>
>>>>>
>>>>>>>it's thing in the backround as it copys the user to subscribers but
>>>>>
>>>>>still
>>>>>
>>>>>
>>>>>
>>>>>>>not removing from pending, I may need to edit the code manually
>
> however
>
>>>>>>>didnt really want to do this. If I click the confirmation, see
>
> "Opening
>
>>>>>>>page" then click refresh I get:
>>>>>>>
>>>>>>>error in SQL query, line: 43
>>>>>>>We regret but your voipweb.fast.co.nz confirmation attempt failed.
>>>>>>>Please contact voip(a)fast.co.nz for further assistance.
>>>>>>>
>>>>>>>Removing pended users, well I can do this at midnight every sunday
>>>>>
>>>>>maybe.
>>>>>
>>>>>
>>>>>
>>>>>>>Barry
>>>>>>>
>>>>>>>----- Original Message -----
>>>>>>>From: "Alistair Cunningham" <acunningham(a)integrics.com>
>>>>>>>To: "Barry Murphy" <barry(a)unix.co.nz>
>>>>>>>Cc: <serusers(a)lists.iptel.org>
>>>>>>>Sent: Friday, March 11, 2005 8:57 AM
>>>>>>>Subject: Re: [Serusers] problem with serwev confirmation...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>Barry,
>>>>>>>>
>>>>>>>>(We seem to be meeting on more than one mailing list today!)
>>>>>>>>
>>>>>>>
>>>>>>>>From your output below, the fifo has owner 777, not permissions
>
> 777 -
>
>>>>>>>>perhaps you were doing chown when you meant chmod?
>>>>>>>>
>>>>>>>>The fifo needs to be writeable by the user your web server is
>
> running
>
>>>>>>>>as. On my lab system, it's:
>>>>>>>>
>>>>>>>>prw-rw-rw- 1 root root 0 Feb 21 10:53 /tmp/ser_fifo
>>>>>>>>
>>>>>>>>To get this, run the following commands as root:
>>>>>>>>
>>>>>>>>chown root.root /tmp/ser_fifo
>>>>>>>>chmod 0666 /tmp/ser_fifo
>>>>>>>>
>>>>>>>>On production systems, I like to make a 'ser' group, put the ser and
>>>>>>>>http server users in it, then chmod 0660 instead of 0666.
>>>>>>>>
>>>>>>>>Leaving the user in the pending table is a bit ugly, but the system
>>>
>>>will
>>>
>>>
>>>>>>>>probably still work. You may care to fire up the mysql command line
>>>>>>>>client, and do a 'delete from pending' when you know there's no-one
>
> in
>
>>>>>>>>the queue.
>>>>>>>>
>>>>>>>>Alistair Cunningham,
>>>>>>>>Integrics Ltd,
>>>>>>>>Telephony, Database, Unix consulting worldwide
>>>>>>>>+44 (0)7870 699 479
>>>>>>>>http://integrics.com/
>>>>>>>>
>>>>>>>>
>>>>>>>>Barry Murphy wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>Ok i've brought this up in the past but no one answered:
>>>>>>>>>
>>>>>>>>>1./ User signs up
>>>>>>>>>2./ User receives confirmation email
>>>>>>>>>3./ User clicks on URL
>>>>>>>>>4./ User receives:
>>>>>>>>>Warning: fopen(/tmp/ser_fifo): failed to open stream: Permission
>>>
>>>denied
>>>
>>>
>>>>>>>in
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>>/www/serweb/html/functions.php on line 206
>>>>>>>>>sorry -- cannot open write fifo
>>>>>>>>>We regret but your voipweb.fast.co.nz confirmation attempt failed.
>>>>>>>>>Please contact voip(a)fast.co.nz for further assistance.
>>>>>>>>>5./ In the backround user is actually added to subscription table
>
> but
>
>>>>>>>left
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>>in pending table too, is this a problem?
>>>>>>>>>
>>>>>>>>>prw-rw---- 1 777 wheel 0 Mar 10 16:51 /tmp/ser_fifo
>>>>>>>>>I've tried chmod 777 this file many times, doesnt seem to help
>>>>>>>>>
>>>>>>>>>Any idea's people? Is this ser_fifo file needed, what does it do?
>
> How
>
>>>>>do
>>>>>
>>>>>
>>>>>
>>>>>>>I
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>>fix serweb?
>>>>>>>>>
>>>>>>>>>Barry
>>>>>>>>>
>>>>>>>>>P.S. Latest stable Serweb via cvs
>>>>>>>>>
>>>>>>>>>_______________________________________________
>>>>>>>>>Serusers mailing list
>>>>>>>>>serusers(a)lists.iptel.org
>>>>>>>>>http://lists.iptel.org/mailman/listinfo/serusers
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>
>>>_______________________________________________
>>>Serusers mailing list
>>>serusers(a)lists.iptel.org
>>>http://lists.iptel.org/mailman/listinfo/serusers
>>>
>>>
>>
>>
>
>
I want to add some extra header to the positive responce.
I don't want to attain that in script, instead I want to
do that in the code or another module. What I did is
to add the following into the reply_received function.
if((t->flags & T_IS_INVITE_FLAG) && (!is_local(t)) && (msg_status >=200
&& msg_status <300))
{
typedef int(*local_fp)(struct sip_msg *msg, char *txt, int flags);
local_fp append_to_reply = NULL;
append_to_reply = (local_fp)find_export("append_to_reply", 1, 0);
if(append_to_reply){
DBG("DEBUG: SUNZJ find apppend_to_reply\n");
append_to_reply(p_msg, "P-Security-Nobody: this is a test header
for \r\n", 0);
}
}
But it doesn't seem to work for me. I can't see the added text from my
SIP UA log.
How could I get to that??
Thanks for your instructions!
Best Regards
Sun Zongjun
Dear All,
Paul, Greger and myself would like you to know that we have released the
first Issue of our Getting Started document. This is just the first and
last sections of the document. It covers the basic 'Hello World'
configuration together with instructions on how to download the ser
code, compile it and install the binaries.
We are working on the next section of MySQL support quickly be followed
up with NAT support.
We are doing this for the community and would welcome any feedback on
the document to make it more readable etc. Comments are welcome on the
www.ONsip.org web site, goto Forums and select the Getting Started
Feedback area.
To download the document, go to the download section.
We hope this is of benefit to the Community.
Thanks
Paul, Simon, Greger
I have a problem in deleting users from the admin interface of serweb.
I am running ser 0.9.0 and serweb from cvs.
When I click on cancell, the php script cancell the alias record but then get: DB error: no such field
Any help???
Thanks
Hi Antonio,
I did leave e password blank....it still stating
ERROR 1007 at line 1: Can't create database 'ser'.
Database exists.
Sorry abt tis...
Regards,
EricQ
--- Antonio Rabena <antonio(a)lgatelecom.net> wrote:
> hi..
>
> reinstall the database..
>
> # ser_mysql.sh reinstall
>
> or
>
> # ser_mysql.sh drop
> # ser_mysql.sh create
>
>
> just leave the password blank.. (just press ENTER)
>
>
> Regards,
>
> antonio
>
>
>
> eric quek wrote:
>
> >thx Antonio,
> >
> >I did use 'sip.nyp.edu.sg', but then it promt me
> for
> >password again....shld i leave blank or type in my
> new
> >password...?
> >
> >as i did my new password it state tat "ERROR 1045:
> >Access denied for user: 'root@localhost' (Using
> >password:YES)"
> >if i leave it blank then "ERROR 1007 at line 1:
> Can't
> >create database 'ser'. Database exists"
> >
> >Anything wrong with 'modparam("usrloc", "db_url",
> >"sql://ser:heslo@localhost/ser")' in my ser.cfg?
> >
> >Regards,
> >EricQ
> >
> >
> > --- Antonio Rabena <antonio(a)lgatelecom.net> wrote:
>
> >
> >
> >>Hi,
> >>
> >>yes you can.. just do export SIP_DOMAIN = <your
> sip
> >>domain/realm>
> >>before u add any user..
> >>
> >>Regards,
> >>
> >>antonio
> >>
> >>eric quek wrote:
> >>
> >>
>
>
__________________________________________________
Do You Yahoo!?
Download the latest ringtones, games, and more!
http://sg.mobile.yahoo.com
Hi All,
Anyone who wants to help us setup a SIP server, maybe ser and asterisk
integration, we're willing to pay. e-mail me privately. Thank you
Regards
Ronald