hi,all list
i config dbtext in freebsd 4.10,ser0.8.14,and get
debug
DBT:dbt_table_check_row: NULL value not allowed - field
7
***********************
1(237) check_self - checking if port 5060 matches port
5060
1(237) check_nonce(): comparing [422583e1166b52f1b65007f2701c1f4845ff845f] and
[422583e1166b52f1b65007f2701c1f4845ff845f]
1(237) DBT:db_query: new res with 1
cols
1(237) DBT:dbt_result_new: new res with 1 cols
1(237) HA1 string calculated:
d1500a282a8f414cf66ebfb72c1dc749
1(237) check_response(): Our result =
'33871c1cced77ca171eeb83b402d72d8'
1(237) check_response(): Authorization is OK
1(237)
save_rpid(): rpid value is ''
1(237) parse_headers: flags=-1
1(237) parse_headers:
flags=33554432
1(237) DBT:dbt_table_check_row: NULL value not allowed - field 7
1(237)
DBT:db_insert: cannot insert the new row!!
1(237) DBT:db_insert: make clean!
1(237)
db_insert_ucontact(): Error while inserting contact
1(237) insert_ucontact(): Error while
inserting in database
1(237) insert(): Error while inserting contact
1(237) contacts():
Error while inserting record
1(237) parse_headers: flags=-1
1(237)
check_via_address(192.168.1.100, 192.168.1.100, 0)
1(237) DEBUG:destroy_avp_list:
destroing list 0x0
1(237) receive_msg: cleaning up
***********************
ser.cf
config
***********************
# Uncomment this if you want to use dbtext
database
loadmodule "/usr/local/lib/ser/modules/dbtext.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
# dbtext.so must be loaded !
loadmodule
"/usr/local/lib/ser/modules/auth.so"
loadmodule "/usr/local/lib/ser/modules/auth_db.so"
#
----------------- setting module-specific parameters ---------------
# -- usrloc params
--
#modparam("usrloc", "db_mode", 0)
# Uncomment this if you want to use dbtext
database
# for persistent storage and comment the previous line
modparam("usrloc",
"db_mode", 1)
modparam("usrloc", "db_url", "/usr/home/ser/db")
modparam("auth_db",
"db_url", "/usr/home/ser/db")
#modparam("usrloc", "db_url",
"dbtext://usr/home/ser/db")
#modparam("auth_db", "db_url", "dbtext://usr/home/ser/db")
#
-- auth params --
# Uncomment if you are using auth module
#
modparam("auth_db",
"calculate_ha1", 1)
#
# If you set "calculate_ha1" parameter to 1 (which true in this
config),
# uncomment also the following parameter)
#
modparam("auth_db",
"password_column", "password")
modparam("auth_db", "user_column",
"username")
modparam("auth_db", "domain_column", "domain")
# -- rr params --
# add value
to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
if
(!www_authorize("ser.fivewall.com", "subscriber")) {
www_challenge("ser.fivewall.com",
"0");
break;
};
save("location");
break;
};
***********************
aliases (is all one
line)
***********************
username(str) domn(str,null) contact(str,null)
expires(int,null) q(double,null) callid(str,null) cseq(int,null) last_modified(str)
replicate(int,null) state(int,null) flags(int) user_agent(str)
received(str)
***********************
domain (is all one
line)
***********************
domain(str,null)
ast_modified(str)
ser.fivewall.com:2005-03-01 09:58:33
***********************
location (is all one
line)
***********************
username(str) domain(str,null) contact(str,null)
expires(int,null)
q(double,null) callid(str,null) cseq(int,null)
last_modified(str)
replicate(int,null) state(int,null) flags(int) user_agent(str)
received(str)
***********************
subscriber (is all one
line)
***********************
username(str) password(str) ha1(str) domain(str)
ha1b(str)
1001:1001:xxx:ser.fivewall.com:xxx
----
ZhongShan Ether Network Security Inc
---------------------------------------------------------
Tina,
It's hard to say without seeing some source code.
Regards,
Paul
On Tue, 1 Mar 2005 19:24:07 -0800 (PST), Tina <kramarv(a)yahoo.com> wrote:
>
> I declared the function as an exported command. When the module is loaded,
> other functions can obtain the pointer to the function (by calling
> find_export) and call it. However, I can't call the function from ser.cfg.
> Have I messed some step?
>
> Thanks in advance,
> Tina
>
> Java Rockx <javarockx(a)gmail.com> wrote:
> Have you exported the mailbox function(s) your are calling from ser.cfg?
>
> Regards,
> Paul
>
>
> On Tue, 1 Mar 2005 16:46:32 -0800 (PST), Tina wrote:
> >
> > Hello,
> > I added custom module (mailbox.so) to SER to add some DB queries (just
> like
> > in DB example). The module exports the function mbx_lookupmailbox. The
> > function is available for other modules; unfortunately I obtain the
> > following when trying to call it from ser.cfg:
> >
> > %ser -c
> > %0(20596) parse error (137,24-25): unknown command, missing loadmodule?
> >
> > (Though the module is loaded, the function is registered and found by
> other
> > functions). Have I missed something?
> > Thanks in advance,
> > Tina Kramarenko
> >
> > Here is my configuration file:
> > =============================================================
> >
> > # ----------- global configuration parameters ------------------------
> > #debug=3 # debug level (cmd line: -dddddddddd)
> > #fork=yes
> > #log_stderror=no # (cmd line: -E)
> > /* Uncomment these lines to enter debugging mode
> > debug=7
> > fork=no
> > log_stderror=yes
> > */
> > 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"
> > # ------------------ 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/mailbox.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"
> > # 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"
> > # ----------------- 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)
> > # -- 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)
> > modparam("tm", "fr_inv_timer", 15 )
> > modparam("tm", "fr_timer", 10 )
> >
> > # ------------------------- 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;
> > };
> > # 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
> > record_route();
> > # loose-route processing
> > if (loose_route()) {
> > t_relay();
> > 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("localhost", "subscriber")) {
> > www_challenge("localhost", "0");
> > break;
> > };
> > save("location");
> > break;
> > };
> > # native SIP destinations are handled using our USRLOC DB
> > if (!lookup("location")) {
> > sl_send_reply("404", "Not Found");
> > break;
> > };
> >
> > # if we do not get a positive reply, continue at reply_route[1]
> > # forward the request to all destinations in destination set now
> > t_on_failure("1");
> > t_relay();
> > };
> > }
> >
> > failure_route[1]{
> > log(1, "failure_route[1]\n");
> > if (t_check_status("408|486|487")){
> > log(1, "t_check_status(408|486|487)\n");
> >
> > mbx_lookupmailbox();
> > #here will be some processing
> > t_relay();
> > break;
> > }
> > }
> >
> >
> > ________________________________
> > Do you Yahoo!?
> > Yahoo! Mail - Find what you need with new enhanced search. Learn more.
> >
> >
> > _______________________________________________
> > Serusers mailing list
> > serusers(a)lists.iptel.org
> > http://lists.iptel.org/mailman/listinfo/serusers
> >
> >
> >
>
>
> ________________________________
> Do you Yahoo!?
> Yahoo! Sports - Sign up for Fantasy Baseball.
>
>
Hello,
I added custom module (mailbox.so) to SER to add some DB queries (just like in DB example). The module exports the function mbx_lookupmailbox. The function is available for other modules; unfortunately I obtain the following when trying to call it from ser.cfg:
%ser -c
%0(20596) parse error (137,24-25): unknown command, missing loadmodule?
(Though the module is loaded, the function is registered and found by other functions). Have I missed something?
Thanks in advance,
Tina Kramarenko
Here is my configuration file:
=============================================================
# ----------- global configuration parameters ------------------------
#debug=3 # debug level (cmd line: -dddddddddd)
#fork=yes
#log_stderror=no # (cmd line: -E)
/* Uncomment these lines to enter debugging mode
debug=7
fork=no
log_stderror=yes
*/
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"
# ------------------ 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/mailbox.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"
# 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"
# ----------------- 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)
# -- 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)
modparam("tm", "fr_inv_timer", 15 )
modparam("tm", "fr_timer", 10 )
# ------------------------- 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;
};
# 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
record_route();
# loose-route processing
if (loose_route()) {
t_relay();
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("localhost", "subscriber")) {
www_challenge("localhost", "0");
break;
};
save("location");
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
# if we do not get a positive reply, continue at reply_route[1]
# forward the request to all destinations in destination set now
t_on_failure("1");
t_relay();
};
}
failure_route[1]{
log(1, "failure_route[1]\n");
if (t_check_status("408|486|487")){
log(1, "t_check_status(408|486|487)\n");
mbx_lookupmailbox();
#here will be some processing
t_relay();
break;
}
}
---------------------------------
Do you Yahoo!?
Yahoo! Mail - Find what you need with new enhanced search. Learn more.
Hi
Came across this , its for vonage only http://extensions.otabi.com/
is anyone working on, or expanded the click2dial for ser and built it for
thunderbird
Iqbal
hello
I´ve just upgraded SER from version 0.8.99-dev1 to 0.9.0 and my radius
accounting system doesn't work properly, it only generates the start
log but I can´t see any "Stop record" in radius logs when call its
finished... see my configuration file below (same that I used with
0.8.99-dev1).
thanks
RaFael
File: /usr/local/etc/ser/Ser_VM_RadAcc_NatHelp-Test1.cfg
# This default script includes nathelper support. To make it work
# you will also have to install Maxim's RTP proxy. The proxy is enforced
# if one of the parties is behind a NAT.
#
# If you have an endpoing in the public internet which is known to
# support symmetric RTP (Cisco PSTN gateway or voicemail, for example),
# then you don't have to force RTP proxy. If you don't want to enforce
# RTP proxy for some destinations than simply use t_relay() instead of
# route(1)
#
# Sections marked with !! Nathelper contain modifications for nathelper
#
# Also Include Mysql support for digest authentication, Pstn forward,
# voicemail and Radius Accounting module.
# ----------- global configuration parameters ------------------------
#/* Uncomment these lines to enter debugging mode
debug=9
fork=yes
log_stderror=yes
#*/
listen=****
port=5060
# hostname matching an alias will satisfy the condition uri==myself".
alias=domain.com
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
children=4
fifo="/tmp/ser_fifo"
# sip_warning - Should replies include extensive warnings?
# By default yes, it is good for trouble-shooting.
sip_warning=yes
# ------------------ 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/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/acc.so"
loadmodule "/usr/local/lib/ser/modules/textops.so"
# digest authentication
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"
# ----------------- setting module-specific parameters ---------------
modparam("usrloc", "db_mode", 2)
# storing passwords in our database in plain text:
# modparam("auth_db", "calculate_ha1", yes)
# modparam("auth_db", "password_column", "password")
# For Rad Accounting
modparam("acc","radius_config","/usr/local/etc/radiusclient/radiusclient.conf")
modparam("acc", "service_type", 15)
modparam("acc", "radius_flag", 1)
modparam("acc", "radius_missed_flag", 3)
modparam("acc", "report_ack", 0) # 1 reporta dos starts en acc
modparam("tm", "fr_timer", 20 )
modparam("tm", "fr_inv_timer", 30 )
modparam("tm", "wt_timer", 20 )
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
modparam("group", "db_url", "mysql://ser:heslo@localhost/ser") #
mysql in cvs head vs
# modparam("uri", "db_url", "sql://ser:heslo@localhost/ser") # in ser0814
modparam("uri_db", "db_url", "mysql://ser:heslo@localhost/ser") # in
cvs head version
# ------------- registration parameters
modparam("registrar", "nat_flag", 6)
modparam("registrar", "min_expires", 60)
modparam("registrar", "max_expires", 86400)
modparam("registrar", "default_expires", 3600)
modparam("registrar", "desc_time_order", 1)
modparam("registrar", "append_branches", 1)
# !! Nathelper
# 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
# -------------------------- request routing logic --------------------------
route {
log(1, "-------------------------------------------\n");
log(1, "entering main loop\n");
# 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;
};
# !! 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("19")) {
# 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("LOG: 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
};
};
# 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");
# t_relay();
route(1); # Nathelper!!
break;
};
# Set flag for Radius Accounting:
if (method=="INVITE") {
log(1, "INVITE MESSAGE RECEIVED - START ACC\n");
setflag(1); /* set for accounting (the same value as
in log_flag!) */
};
if (method=="BYE") {
log (1, "BYE - STOP ACCOUNTING\n");
setflag(1);
};
if (method=="CANCEL") {
log (1, "CANCEL - STOP ACCOUNTING\n");
setflag(1);
};
setflag(3); # Set Radius Missed Flag
if (!uri==myself) {
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
# t_relay();
route(1);
break;
};
if (uri==myself) {
if (method == "REGISTER") {
log(1, "ANALYZING REGISTER REQUEST\n");
# to use digest authentication
if (!www_authorize("domain.com", "subscriber")) {
www_challenge("domain.com", "0");
break;
};
if (!save("location")) {
sl_reply_error();
};
break;
};
/* ***************** Dial out to PSTN logic
****************** */
### Pendiente agregar seguridad a esta etapa, usar
Digest-Auth o "credentials"
# forward n digit requests to gateway AS5350 (Celulares Lima)
if(uri=~"^sip:9"){
log(1,"n digit expression match - Celulares");
rewritehostport("X.X.X.X:5060");
route(2);
break;
};
# forward international calls to Asterisk (a FWD, H323gws)
if(uri=~"^sip:00"){
rewritehostport("Y.Y.Y.Y:5060");
log(1,"n digit expression match - LDI");
route(2);
break;
};
/*
********************************************************************
*/
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
# t_relay();
route(1);
break;
};
# does the user wish redirection on no availability?
(i.e., is he
# in the voicemail group?) -- determine it now and store it in
# flag 4, before we rewrite the flag using UsrLoc
if (is_user_in("Request-URI", "voicemail")) {
log(1, "requested user is in voicemail group");
setflag(4);
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
log(1,"unable to locate user");
# handle user which was not found
route(4);
break;
};
}; # End of "if(uri==myself)"
append_hf("P-hint: usrloc applied\r\n");
route(1);
# if user is on-line and is in Voicemail group, enable redirection
if (method == "INVITE" && isflagset(4)) {
log(1, "invite for voicemail user->initiate failureroute[1]\n");
t_on_failure("1");
};
# t_relay();
}
route[1]
{
# !! Nathelper
if (uri=~"[@:](192\.168\.)" && !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();
};
break;
}
# !! Nathelper
onreply_route[1] {
# NATed transaction ?
if (isflagset(6) && status =~ "(183)|2[0-9][0-9]") {
fix_nated_contact();
force_rtp_proxy();
# otherwise, is it a transaction behind a NAT and we did not
# know at time of request processing ? (RFC1918 contacts)
} else if (nat_uac_test("1")) {
fix_nated_contact();
};
}
# ----------------- SIP-to-PSTN call routed -------------------
route[2]{
log(1,"route[2]:SIP-to-GW call routed");
if(!t_relay()){
sl_reply_error();
};
}
# --------------- Handling of Unavailable user ----------------
route[4] {
# non-Voip -- just send "off-line"
if (!(method=="INVITE" || method=="ACK" || method=="CANCEL" ||
method=="BYE")) {
sl_send_reply("404", "Not Found");
acc_rad_request("404 Not Found");
break;
};
# not voicemail subscriber
if (!isflagset(4)) {
sl_send_reply("404", "Not Found and no voicemail turned on");
acc_rad_request("404 Not Found");
break;
};
# forward to voicemail adding prefix to simplify * "extension.conf"
prefix("vm");
rewritehostport("Y.Y.Y.Y:5060");
t_relay_to_udp("Y.Y.Y.Y", "5060");
}
# if forwarding downstream did not succeed, try voicemail running at Asterisk
failure_route[1]{
if (t_check_status("485")){
revert_uri ();
prefix("vm");
rewritehostport ("Y.Y.Y.Y:5060");
append_branch();
t_relay();
break;
}
}
--
rrgv
It appears that aggregate_methods() is missing in PHP5. Thus, I get:
Fatal error: Call to undefined function aggregate_methods() in /opt/serweb/html/data_layer.php on line 87
when trying to access the user or admin interface of serweb.
This is with serweb cvs as of yesterday and php 5.0.3.
I have no idea if there are more issues related to php5 and serweb.
But is there a plan/chedule for making serweb working with php5?
Or should I just downgrade to php4?
Other projects have hit this problem as well:
https://sourceforge.net/tracker/?group_id=92482&atid=600780&func=detail&aid…
Thank you to everyone contributing to ser and serweb!
Dag B.
I downloaded the 0.8.14 Debian packages and tried installing them.
I know that they work, since they worked fine on my other system, but
this one (which is almost identical, save for the NIC) doesn't work.
Here is what happens in the console:
# dpkg -i ser_0.8.14_i386.deb
Selecting previously deselected package ser.
(Reading database ... 10117 files and directories currently installed.)
Unpacking ser (from ser_0.8.14_i386.deb) ...
Setting up ser (0.8.14) ...
Restarting ser: ser
It just hangs there forever. I checked the end of /var/log/messages
but there are no messages from ser there.
I would try reinstalling Debian from scratch, but the server itself is
in another country, and I'm trying to install SER remotely over SSH.
I've tried rebooting which didn't help (although I didn't expect it would).
I searched on Google and the closest thing I could find was invalid
syntax in the ser.cfg script, but this is the initial package
install...
Please, please help me out.
--
Dana
Hi to all; well I'm instaling ser and I'dont find the serweb pakage;
it's my first time; I want to use the SER in a LAN; can anyone tell me
where search the SER-WEB pakage???
Wow! A perfect description. Thanks Jan.
Wouldn't it be a good idea to put such detailed descriptions from the
mailinglist into the README files or any other repository, e.g. FAQomatic?
Sometimes there are really good descriptions on the mailinglist (e.g.
http://lists.iptel.org/pipermail/serdev/2005-February/003877.html) which
should also be put into the README files.
regards,
klaus
Jan Janak wrote:
> Hello,
>
> The development version of SER now includes enhanced NAT support in
> registrar and user location database. A small example:
>
> Let's suppose that you have a single SER instance listening on two
> ports -- 5060 and 5090. Using a different port seems to be often
> necessary because of broken SIP ALGs (Application Level Gateways) that
> are often built into DSL routers or other devices. Such ALGs would
> mangle SIP requests and responses coming to and from port 5060 and the
> only option how to avoid such mangling is using a different port number.
>
> Let's suppose that we have two UAs beind NAT, one of them is configured
> to reach SER on port 5060, the other one is configured to use port 5090
> (due to the reasons described above):
>
> +---------+
> UA1 ---- NAT1 ----| 5060 |
> | SER|
> UA2 ---- NAT2 ----| 5090 |
> +---------+
>
> The previous version of registrar would store the public IP of NAT with
> each registered contact, thus it would know how to reach both user
> agents.
>
> But, it would not store the port number of SER the UAs used to register
> themselves and later, when an INVITE comes, it would not know which
> port number (5060 or 5090) it should use as the source port number of
> the outgoing INVITE. The previous version would use the default one,
> which would be the first one configured in the configuration file
> (usually 5060).
>
> When an INVITE for UA1 comes, everything would work because UA1 used
> port 5060 when registering and that is also the destination port in the
> pinhole being kept open in NAT1:
>
> SER
> INVITE UA1 +--------+ INVITE UA1
> UA1 ---- NAT1 <------------- | 5060 | <----------------
> | |
> UA2 ---- NAT2 | 5090 |
> +--------+
>
> When an INVITE for UA2 comes, SER would again use port 5060 as the
> default outgoing source port number, but this time the message will be
> dropped by NAT2, because the pinhole opened during the registration has
> 5060 as the destination port number:
>
> SER
> INVITE UA2 +--------+ INVITE UA2
> UA1 ---- NAT1 +------ | 5060 | <---------------
> | | |
> UA2 ---- NAT2 X <----+ | 5090 |
> +--------+
>
> The new version of registrar would also store the destination IP and
> port number used on SER side when performing registration and that
> information would be used later by SER when forwarding INVITEs:
>
> SER
> +--------+ INVITE UA2
> UA1 ---- NAT1 | 5060 | <---------------
> INVITE UA2 | |
> UA2 ---- NAT2 <------------- | 5090 |
> +--------+
>
> (Note that the X next to NAT2 has disappeared in this picture which
> means that the message will be lucky enough to make it through :-).
>
> SER would encode this information into a SIP URI when saving contacts in
> database and later, after restart of SER, this information will be
> restored. The URI looks like:
>
> sip:1.2.3.4:5060;dstip=5.6.7.8;dstport=5090
>
> Where the hostname part is the public IP of the NAT, the port (5060) is
> the port allocated by the NAT, "dstip" parameter is the IP used on SER
> side and "dstport" parameter is the port number used on SER side during
> registration. This information is later used to find the correct outgoing
> socket in SER. If no such socket can be found (it can happen if you
> reconfigure SER to use different ports or IPs), it will use the default
> IP/port again.
>
> Daredevils are encouraged to give it a try and send feedback to the list :-)
>
> Jan.
>
> _______________________________________________
> Serdev mailing list
> serdev(a)lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serdev
>
>