hi,
i have the same probleme with jabber module :
0(0) bind_dbmod: Module sql does not export db_use_table function
0(0) XJAB:mod_init: error - database module not found
0(0) init_mod(): Error while initializing module jabber
ERROR: error while initializing modules
did you find a solution to this problem
please i need help
regards
Hi all,
I would like to know if anyone has some experience (maybe some dev?) with
rtpproxy and video. I have done some testing but with no result, audio works
like a charm but it looks like video is unsupported. I hope someone can tell
me I'm wrong and point me to the right way to set up video.
I set up ser.cfg routing for video the same way it is set up for audio, is
this correct? (it should as SIP is media independent...)
I read in some past message that video support was added to cvs rtpproxy so i
downloaded it and made some test with no luck, so I was wondering wether the
problem is in my cfg or in rtpproxy.
My ser.cfg is from onsip.org with some customization, I was testing it with
eyebeam which sends another INVITE when starting video, this INVITE enters
loose_route section and then force_rtp_proxy("l") command, rtpproxy responds
but I can't get video.
Any comments?
thanks a lot
ciao
--
Giovanni Balasso
giaso(a)yahoo.it
hi,
i have the same probleme with jabber module :
0(0) bind_dbmod: Module sql does not export db_use_table function
0(0) XJAB:mod_init: error - database module not found
0(0) init_mod(): Error while initializing module jabber
ERROR: error while initializing modules
did you find a solution to your probleme;
please i need help
Regards
Alle 13:03, lunedì 30 maggio 2005, Ozan Blotter ha scritto:
> Dear Giovanni Balasso,
>
> Thanks for you reply, but some parts i'm confused... Because i have two
> setflag(1) in my ser.cfg, which one i need to remove or add, if i delete
> the one on top of route, BYE messages are not recorded into database. Can
> you please tell me how can i ?
>
You should use one setflag when the call starts (on INVITE) and one when the
call ends (BYE or CANCEL), so I suggest
- remove setflag on top of route, then add
if ((method=="BYE" || method=="CANCEL") && !(uri=~"^sip:833*@WHATEVER")) {
setflag(1);
}
between record route and loose route sections (as you record_route your calls,
BYEs or CANCELs are relayed in loose_route section, so you need to set acc
flag before relaying BYE in loose_route)
- you can safely remove || method=="BYE" || method=="CANCEL" and keep only
method=="INVITE" in uri==myself section (remember BYE and CANCEL hit
loose_route!), and add uri check as above to the following setflag
So your routing logic now should work like this
INVITE --> call for 833* ? --> if not: flag 1 (call started) --> call relayed
--> BYE --> call for 833*? --> if not: flag 1 (call ended) --> SIP session
closed
ciao
--
Giovanni Balasso
giaso(a)yahoo.it
Dear Friends,
A friend of me is writing Basic Billing for SER :) in PHP. I'm gonna place it somewhere so anyone can add remove features to it and repost it. Will let all of you know and download it. But for now i need to create a dial plan. I do not want to make accounting for numbers beginning with 833 prefix, is there a way for it ? Another thing is , i've tried with so many things but always give errors in config. I have 2 x 4 Port Analog GSM Gateways, first IP is 192.168.1.10 and second IP is 192.168.1.20, SER Server has two ethernets, one is for Public IP 212.154.XXX.YYY for general use and the second ethernet is 192.168.1.5 connected to HUB where Gateways's LAN is. All ports of FXO's are registered with SER like 1111,2222,3333,4444 (Gateway A) and 5555,6666,7777,8888 (Gateway B). I want SER to send some calls to that numbers depending on Prefix :
Before i worked with Ondo SIP Proxy a little and was successful with dial plan. Ex: a user dials 05353490056, proxys adds 1111 prefix, route to registered SIP client 1111 and send the call as 111105353490056(a)IP.of.Proxy to Gateway, prefix 1111 is stripped from SIP and the gateway connects to GSM like 05353490056(a)IP.of.Gateway
Ex for Gateways:
* for 1111,2222,3333 and 4444 : i want to use 053 prefix, so when a user dial a number like 05353490056, SER has to route it to 1111, if it's busy then route to 2222 so on till 4444.
* for 5555 and 6666 : i want to use 050 and 055 prefix, again same as above.
* for 7777 and 8888 : i want to use 054 prefix.
* for prefixes apart from above and 833, i want to route all calls to 85.96.XXX.YYY , important thing is the clients are registered on SER but i want to route calls over from SER and by keeping their username/password combination since the clients are created on 85.96.XXX.YYY and that Gateway does auth for users, but SER also has to do accounting for this calls.
Do i need so many things ?
Thanks,
Ozan Blotter
*ps : I'm using SER 0.9.2 from CVS :)
current SER.CFG as follows :
[root@localhost ser]# cat ser.cfg
debug=3
fork=yes
log_stderror=no
listen=192.168.1.9 # 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"
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/acc.so"
loadmodule "/usr/local/lib/ser/modules/uri_db.so"
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("usrloc", "db_mode", 1)
modparam("rr", "enable_full_lr", 1)
modparam("acc", "log_level", 1)
modparam("acc", "db_flag", 1)
modparam("acc", "log_missed_flag", 3)
modparam("acc", "log_fmt", "fimos")
modparam("acc", "db_url", "mysql://ser:heslo@localhost/ser")
modparam("acc", "db_missed_flag", 2)
modparam("acc", "early_media", 1)
modparam("acc", "failed_transactions", 1)
modparam("acc", "log_flag", 1)
route {
setflag(1);
# -----------------------------------------------------------------
# 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();
};
# -----------------------------------------------------------------
# Loose Route Section
# -----------------------------------------------------------------
if (loose_route()) {
route(1);
break;
};
# -----------------------------------------------------------------
# Call Type Processing Section
# -----------------------------------------------------------------
if (uri!=myself) {
route(1);
break;
};
if (uri==myself) {
if (method=="INVITE" || method=="BYE" || method=="CANCEL") {
setflag(1);
route(3);
break;
} else if (method=="REGISTER") {
route(2);
break;
};
lookup("aliases");
if (uri!=myself) {
route(1);
break;
};
if (!lookup("location")) {
if (uri=~"^sip:053[0-9]*@") {
prefix("1111");
rewritehost ("192.168.1.10");
break;
};
sl_send_reply("404", "User Not Found");
break;
};
route(1);
};
}
route[1] {
# -----------------------------------------------------------------
# Default Message Handler
# -----------------------------------------------------------------
if (!t_relay()) {
sl_reply_error();
};
}
route[2] {
# -----------------------------------------------------------------
# REGISTER Message Handler
# ----------------------------------------------------------------
sl_send_reply("100", "Trying");
if (!www_authorize("","subscriber")) {
www_challenge("","0");
break;
};
if (!check_to()) {
sl_send_reply("401", "Unauthorized");
break;
};
consume_credentials();
if (!save("location")) {
sl_reply_error();
};
}
route[3] {
# -----------------------------------------------------------------
# INVITE Message Handler
# -----------------------------------------------------------------
if (!proxy_authorize("localhost","subscriber")) {
proxy_challenge("localhost","0");
break;
} else if (!check_from()) {
sl_send_reply("403", "Use From=ID");
break;
};
consume_credentials();
lookup("aliases");
if (uri!=myself) {
route(1);
break;
};
if (!lookup("location")) {
sl_send_reply("404", "User Not Found");
break;
};
route(1);
}
[root@localhost ser]#
I think it indicates the number of transactions whic had returned
failure messages. As happens with Waiting, these are internal counters
that may have not been properly adapted through the SER versions and
therefore its value could be not exact.
Samuel.
Unclassified.
>>> Ricardo Martinez <rmartinez(a)redvoiss.net> 05/28/05 12:03AM >>>
Hello.
In the serctl moni appears a "failure" indicator. What
represent
this indicator?
Could be something related to exec_dst() function?
Thanks!
Ricardo Martinez-.
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers
Hi Ser Users !
I'd like to use the uri table in SER database to check if the URI submitted on
registration in 'TO' header is allowed for the user that tries to register
(username for credentials and SIP URI are not the same).
I tried to use the check_to() funtion of the uri_db module : "Check From
username against URI table or digest credentials."
But this check_to() function always reject the user because the URI is not the
username, and it does not even try to check the uri table.
How should I use this function (or another) to enable this verification ?
Thanks for your help
Hi All
>From where we can get the data for
1) ASR on various countries
2) Average Call drop on VoIP
3) Average Call Quality
This we require to get an idea of what types of problem normally users use to face on voip and what is the average percentage of those problems.
Pls. help me if anybody have the factsheet for various service provider on these paramaters
Thanks & Regards
Ritesh Jalan
Hello list...
I've installed SER 0.9.0 and mediaproxy 1.2.1 and dowloaded the getting
started scripts (issue 04a) from onsip.org.
Setup everything as instructed, added a couple of users to the database and
tried to setup a call between one public and one NATed UA.
Both phones register properly and signalling seems to be working fine, I
ring each device from the other, problem is there is no sound.
So I checked the mediaproxy sessions... and it looks like this
Caller Via Called Status
Duration Codec Type Traffic
----------------------------------------------------------------------------
----------------------------------
82.182.194.x:5004 - 212.247.91.x:35014 - 82.182.194.x:49160 inactive
0'07" Unknown Audio 0/0/0
Total traffic: 0bps/0bps/0bps (in1/in2/out)
Session count: 1
I dont really understand the output but I think "inactive" as well as
"Unknown Audio" is not a good sign.
How ever, I then used Ngrep to see if there are some rtp traffic going on
and sure enough, there is traffic comming in from both UAs but no traffic is
leaving the proxy. Strange!
Anyone with some bright idea on why mediaproxy is not relaying the sound?
My ser.cfg
===================================
debug=3
fork=yes
log_stderror=no
listen=212.247.91.<hidden> # INSERT YOUR IP ADDRESS HERE
port=5060
children=4
alias=sip.<somedomain>.com
dns=no
rev_dns=no
fifo="/tmp/ser_fifo"
fifo_db_url="mysql://ser:heslo@localhost/ser"
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/uri.so"
loadmodule "/usr/local/lib/ser/modules/uri_db.so"
loadmodule "/usr/local/lib/ser/modules/mediaproxy.so"
loadmodule "/usr/local/lib/ser/modules/nathelper.so"
loadmodule "/usr/local/lib/ser/modules/textops.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"
modparam("auth_db|permissions|uri_db|usrloc", "db_url",
"mysql://ser:heslo@localhost/ser")
modparam("auth_db", "calculate_ha1", 1)
modparam("auth_db", "password_column", "password")
#modparam("nathelper", "rtpproxy_disable", 1)
#modparam("nathelper", "natping_interval", 0)
modparam("mediaproxy","natping_interval", 30)
modparam("mediaproxy","mediaproxy_socket", "/var/run/mediaproxy.sock")
modparam("mediaproxy","sip_asymmetrics","/usr/local/etc/ser/sip-clients")
modparam("mediaproxy","rtp_asymmetrics","/usr/local/etc/ser/rtp-clients")
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")
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=="INVITE" && client_nat_test("3")) {
# INSERT YOUR IP ADDRESS HERE
record_route_preset("212.247.91.<hidden>:5060;nat=yes");
} else if (method!="REGISTER") {
record_route();
};
# -----------------------------------------------------------------
# Call Tear Down Section
# -----------------------------------------------------------------
if (method=="BYE" || method=="CANCEL") {
end_media_session();
};
# -----------------------------------------------------------------
# Loose Route Section
# -----------------------------------------------------------------
if (loose_route()) {
if (has_totag() && (method=="INVITE" || method=="ACK")) {
if (client_nat_test("3")||search("^Route:.*;nat=yes")){
setflag(6);
use_media_proxy();
};
};
route(1);
break;
};
# -----------------------------------------------------------------
# Call Type Processing Section
# -----------------------------------------------------------------
if (uri!=myself) {
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(1);
break;
};
if (!lookup("location")) {
sl_send_reply("404", "User Not Found");
break;
};
};
log("NO MATCH");
route(1);
}
route[1] {
# -----------------------------------------------------------------
# Default Message Handler
# -----------------------------------------------------------------
t_on_reply("1");
if (!t_relay()) {
if (method=="INVITE" || method=="ACK") {
end_media_session();
};
sl_reply_error();
};
}
route[2] {
# -----------------------------------------------------------------
# REGISTER Message Handler
# -----------------------------------------------------------------
sl_send_reply("100", "Trying");
if (!search("^Contact:\ +\*") && client_nat_test("7")) {
setflag(6);
fix_nated_register();
force_rport();
};
if (!www_authorize("","subscriber")) {
www_challenge("","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 (client_nat_test("3")) {
setflag(7);
force_rport();
fix_nated_contact();
};
if (method=="INVITE" && !allow_trusted()) {
if (!proxy_authorize("","subscriber")) {
proxy_challenge("","0");
break;
} else if (!check_from()) {
sl_send_reply("403", "Use From=ID");
break;
};
consume_credentials();
};
lookup("aliases");
if (uri!=myself) {
route(1);
break;
};
if (uri=~"^sip:[+|00][0-9]*@") { # International PSTN inleds antingen med +
eller 00
route(4);
break;
};
if (!lookup("location")) {
if (uri=~"^sip:0[1-9]*@") { # Domestic PSTN startar med 0
route(4);
break;
};
sl_send_reply("404", "User Not Found");
break;
};
if (method=="CANCEL") {
route(1);
break;
};
route(5);
route(1);
}
route[4] {
# -----------------------------------------------------------------
# PSTN Handler
# -----------------------------------------------------------------
rewritehost("192.0.2.245"); # INSERT YOUR PSTN GATEWAY IP ADDRESS
avp_write("i:45", "inv_timeout");
route(5);
route(1);
}
route[5] {
# -----------------------------------------------------------------
# RTP Proxy Enabler
# -----------------------------------------------------------------
if (isflagset(6) || isflagset(7)) {
use_media_proxy();
};
}
route[6] {
# ------------------------------------------------------------------------
# ACK Handler
# ------------------------------------------------------------------------
# ------------------------------------------------------------------------
# Aliases Section
# ------------------------------------------------------------------------
lookup("aliases");
if (uri!=myself) {
route(1);
break;
};
lookup("location");
route(1);
}
onreply_route[1] {
if ((isflagset(6) || isflagset(7)) &&
(status=~"(180)|(183)|2[0-9][0-9]")) {
if (!search("^Content-Length:\ +0")) {
use_media_proxy();
};
};
if (client_nat_test("1")) {
fix_nated_contact();
};
}
==================================
My mediaproxy.ini
==================================
;
; Configuration file for MediaProxy
;
[Dispatcher]
[MediaProxy]
start = yes
socket = /var/run/mediaproxy.sock
group = ser
;listen = None
allow = Any
proxyIP = 212.247.91.<hidden>
portRange = 35000:65000
TOS = 0xb8
idleTimeout = 60
holdTimeout = 3600
;forceClose = 0
accounting = off
[Accounting]
user = dbuser
password = dbpass
host = dbhost
database = radius
table = radacct
==================================