_____
From: administrator [mailto:administrator@hellasfon.com]
Sent: Wednesday, October 26, 2005 11:49 AM
To: 'b2bua(a)vovida.org'
Subject: EmbeddedObj.o Make error
Hello everybody,
I am trying to install b2bus from cvs and I get the following error:
make[1]: Leaving directory `/root/vocal/sip/sipstack'
make[1]: Entering directory `/root/vocal/sip/sipstack'
g++ -Wall -fPIC -Wno-deprecated -D_REENTRANT -DUSE_PTHREADS -g
-I../../build -I../../build/../sdp/sdp2 -I../../build/../util
-I../../build/../util/threads -I../../build/../util/logging
-I../../build/../util/crypto -I../../build/../util/statistics
-I../../build/../util/snmp -I../../build/../util/signals
-I../../build/../util/behavior -I../../build/../util/io
-I../../build/../util/services -I../../build/../util/transport
-I../../build/../util/config -I../../build/../util/dnssrv
-I../../build/../util/deprecated -I../../build/../util/adt
-I../../build/../contrib/libxml2.Linux.i686
-I../../build/../contrib/libxml2.Linux.i686/include/libxml
-I../../build/../contrib/libxml2.Linux.i686/include
-DVOCAL_USE_DEPRECATED -DVOCAL_USING_PENTIUM -DOLD_PROV -c -o
obj.debug.Linux.i686/EmbeddedObj.o EmbeddedObj.cxx
BaseUrl.hxx:146: error: specialization of βtemplate<class _Key> struct
__gnu_cxx::hashβ in different namespace
/usr/lib/gcc/i386-redhat-linux/4.0.1/../../../../include/c++/4.0.1/ext/hash_
fun.h:71: error: from definition of βtemplate<class _Key> struct
__gnu_cxx::hashβ
EmbeddedObj.cxx: In member function βData
Vocal::EmbeddedObj::doReverseEscape(const std::string&)β:
EmbeddedObj.cxx:213: warning: comparison between signed and unsigned integer
expressions
make[1]: *** [obj.debug.Linux.i686/EmbeddedObj.o] Error 1
make[1]: Leaving directory `/root/vocal/sip/sipstack'
make: *** [sip] Error 2
I user SER(0.9.4) and freeRadius (latest) on Fedora Core 4.
Please Help ASAP.
Thank you in advance
Yiannis Marios
Hello everybody,
I have a question about the conference server. I wanted how the mixer part
is done. Specifically, how it could be implemented. For example, should the
input streams (and so the input samples) from different participants be
interleaved to build the output stream? or should they be added in linear
way? are there other alternatives?
Thanks in advance!
Hi all,
I just committed some new functionalities in maxfwd modules. Shortly:
- more detailed reporting via the return code of the functions -
success cases and error cases
- new function - is_maxfwd_lt(x) - checks if the value of the MF is
less then x. Is useful when you forward via a path with a known number
of hops. Ex: avoid fwd to another proxy requests with MF=0 (which will
be rejected for sure).
for more details, please see
http://www.openser.org/docs/modules/1.0.x/maxfwd.html
regards,
bogdan
I am using uac_replace_from to set the Sip display info. The problem
is that it only replaces the display when one exists and is passed.
It doesn't create one when one doesn't exist. So for example if I
use ...
uac_replace_from("batman","");
then place a call from one of my registered user agents to another
then the callerid name value is displayed properly as "batman",
however if I place a call from the pstn to one of my user agents
which comes in with no Sip display into set then it is not generated
as batman and added. I need sip display info to be replaced if it
does exist, and generated if it doesn't. Any help will be greatly
appreciated.
Hi to all, sorry for this mail, but, I need some help to implement some
voicemail compatibility, above I put my ser.cfg, this config work in Fedora
3 + MySQL + Ser 0.9.3 and work fine, the server have 2 NIC and can talk with
user into my lan and out my land. But I read some documents of SEMS and try
some configs and don't work. If anyone can waste some time to see this code
and help me a gratefully her with some beer if visit my city for tourist :D
Sems are 0.9.0 and the config are above.
Sorry for my horrible English and thanks for the help.
Antonio Membrives
####---------------------- ser.cfg ---------------------------------###
debug=3
fork=yes
log_stderror=no
listen=82.159.201.35
listen=192.168.10.240
alias=telintcable.es
alias=82.159.201.35
port=5060
children=4
dns=no
rev_dns=no
fifo="/tmp/ser_fifo"
fifo_mode=0666
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/domain.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/acc.so"
loadmodule "/usr/local/lib/ser/modules/msilo.so"
modparam("auth_db|domain|uri_db|usrloc", "db_url",
"mysql://ser:heslo@localhost/ser")
modparam("auth_db", "calculate_ha1", 1)
modparam("auth_db", "password_column", "password")
modparam("auth_db","use_domain",1)
modparam("domain", "db_mode", 1)
modparam("domain", "domain_table", "domain")
modparam("domain", "domain_col", "domain")
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_url", "mysql://ser:heslo@localhost/ser")
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "use_domain", 1)
modparam("registrar", "nat_flag", 6)
modparam("registrar", "use_domain", 1)
modparam("rr", "enable_full_lr", 1)
modparam("msilo", "registrar", "sip:registar@telintcable.es")
modparam("msilo", "db_url", "mysql://ser:heslo@localhost/ser")
modparam("tm", "fr_timer", 10)
modparam("tm", "fr_inv_timer", 15)
modparam("tm", "wt_timer", 10)
modparam("acc", "log_flag", 2) #1
modparam("acc", "log_level", 2)
modparam("acc", "db_flag", 2) #1
modparam("acc", "db_missed_flag", 3)
modparam("acc", "log_missed_flag", 3)
modparam("acc", "db_url", "mysql://ser:heslo@localhost/ser")
#modparam("acc", "report_ack", 0)
modparam("acc", "log_fmt", "miocfsp")
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("82.159.201.35: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;
};
setflag(1);
# -----------------------------------------------------------------
# Call Type Processing Section
# -----------------------------------------------------------------
if (uri!=myself) {
route(4);
route(1);
break;
};
if (method=="CANCEL") {
route(1);
break;
} else if (method=="INVITE") {
route(3);
break;
} else if (method=="REGISTER") {
route(2);
break;
};
lookup("aliases");
if (uri!=myself) {
route(4);
route(1);
break;
};
if (!lookup("location")) {
if (method == "MESSAGE") {
if (!t_newtran()) {
sl_reply_error();
break;
};
if (m_store("0")) {
t_reply("202", "Accepted for Later Delivery");
break;
};
t_reply("503", "Service Unavailable");
break;
};
if ((method=="INVITE" || method=="ACK") && t_newtran() ) {
t_reply("404", "Not Found");
acc_db_request("Llamada perdida","missed_calls");
break;
};
sl_send_reply("404", "Usuario Not Found");
break;
};
setflag(3);
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("telintcable.es","subscriber")) {
www_challenge("telintcable.es","0");
break;
};
if (!check_to()) {
sl_send_reply("401", "Unauthorized");
break;
};
consume_credentials();
if (!save("location")) {
sl_reply_error();
};
m_dump(); #msilo.so
}
route[3] {
# -----------------------------------------------------------------
# INVITE Message Handler
# -----------------------------------------------------------------
if (!proxy_authorize("telintcable.es","subscriber")) {
proxy_challenge("telintcable.es","0");
break;
} else if (!check_from()) {
sl_send_reply("403", "Use From=ID");
break;
};
consume_credentials();
if (client_nat_test("3")) {
setflag(7);
force_rport();
fix_nated_contact();
};
lookup("aliases");
if (uri!=myself) {
route(4);
route(1);
break;
};
if(uri=~"sip:100.*@telintcable.es" ||
uri=~"sip:100.*@82.159.201.35"){
log(1, "LOG: Contactando con el modulo de conferencia\n");
if(!t_write_req("/tmp/am_fifo","conference")){
t_reply("500","Error contacting sems conference");
};
log(1, "LOG: Cerrando conexion con el modulo de
conferencia\n");
break;
};
if(method=="BYE" || method=="CANCEL"){
log(1,"LOG: vm end - inicio\n");
if(!t_write_req("/tmp/am_fifo","bye")){
log(1,"LOG: No se ha podido contactar con vm\n");
t_reply("500","Error contacting sems");
};
log(1,"LOG: vm end - final\n");
};
if (!lookup("location")) {
if ((method=="INVITE" || method=="ACK") && t_newtran() ) {
t_reply("404", "Usuario no conectado");
acc_db_request("Llamada perdida","missed_calls");
break;
};
sl_send_reply("404", "Usuario no encontrado");
break;
};
setflag(3);
route(4);
route(1);
}
route[4] {
# -----------------------------------------------------------------
# NAT Traversal Section
# -----------------------------------------------------------------
if (isflagset(6) || isflagset(7)) {
use_media_proxy();
};
}
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();
};
}
### ------------------- sems.config ---------------------------------####
# $Id: sems.conf.sample,v 1.21 2005/01/05 16:48:04 sayer Exp $
#
# sems.conf.sample
#
# Sip Express Media Server (sems)
#
# sample configuration file
#
#
# whitespaces (spaces and tabs) are ignored
# comments start with a "#" and may be used inline
#
# example: option=value1, value2 # i like this option
#
##################################
# global parameters #
##################################
# optional parameter: fork={yes|no}
#
# - specifies if sems should run in daemon mode (background)
# (fork=no is the same as -E)
fork=yes
# optional parameter: stderr={yes|no}
#
# - debug mode: do not fork and log to stderr
# (stderr=yes is the same as -E)
stderr=no
# optional parameter: loglevel={0|1|2|3}
#
# - sets log level (error=0, warning=1, info=2, debug=3)
# (same as -D)
loglevel=1
# optional parameter: fifo_name=<filename>
#
# - path and file name of our fifo file (same as -i)
fifo_name=/tmp/am_fifo
# optional parameter: ser_fifo_name=<filename>
#
# - path and file name of Ser's fifo file (same as -o)
ser_fifo_name=/tmp/ser_fifo
# optional parameter: socket_name=<filename>
#
# - path and file name of our unix socket
#socket_name=/tmp/am_sock
# optional parameter: ser_socket_name=<filename>
#
# - path and file name of Ser's unix socket
#ser_socket_name=/tmp/ser_sock
# optional parameter: send_method=<filename>
#
# - sets which method will be used to contact Ser:
# FIFO or unix socket server.
# - values: fifo (default), unix_socket
#
# - PLEASE NOTE THAT: if you use 'fifo', make sure that
# fifo_name and ser_fifo_name have been set. if you use 'unix_socket',
# make sure that socket_name and ser_socket_name have been set.
#
#send_method=unix_socket
send_method=fifo
# optional parameter: plugin_path=<path>
#
# - sets the path to the plug-ins
# - may be absolute or relative to CWD
plugin_path=/usr/local/lib/sems/plug-in/
# optional parameter: smtp_server=<hostname>
#
# - sets address of smtp server
smtp_server=82.159.201.34
# optional parameter: smtp_port=<port>
#
# - sets port of smtp server
smtp_port=25
# optional parameter: rtp_low_port=<port>
#
# - sets port of rtp lowest server
#rtp_low_port=1024
# optional parameter: rtp_high_port=<port>
#
# - sets port of rtp highest server
#rtp_high_port=65535
##################################
# module specific parameters #
##################################
# sample voicemail configuration (inline)
config.voicemail=inline
# optional parameter: rec_file_extension=<ext>
#
# - sets the file extension which will be used
# to record messages.
# - example 1: wav
# - example 2: mp3
#
# WARNING: you must compile the mp3 plug-in
# in order to use 'mp3' as default
# extension. You will need the lame
# encoder for that.
# See plug-in/mp3/ReadmeMP3.txt for
# more information.
#
rec_file_extension=wav
# optional parameter: announce_path=<path>
#
# - sets the path where announce files are searched for
# - the file to be played is searched in the following order:
# <announce_path>/<domainname>/<username>.wav
# <announce_path>/<domainname>/<language>/<default_announce>
# <announce_path>/<domainname>/<default_announce>
# <announce_path>/<language>/<default_announce>
# <announce_path>/<default_announce>
# where <language> is taken from the body of P-Language header
# of the request (if any).
announce_path=/usr/local/lib/sems/audio/
# parameter: default_announce=<filename>
#
# - sets the name of the default announce WAV file
default_announce=default_en.wav
# parameter: max_record_time=<seconds>
#
# - maximum record time
max_record_time=30
# parameter: accept_delay=<x>
#
# - delays accepting of the call for x seconds
# - default value is 0
accept_delay=0
# parameter: email_template_path=<filename>
#
# - email templates path
#
# See the README file in <sems-src>/plug-in/voicemail
# for more information on the syntax used.
# - template to be used is selected in the following order:
# <email_template_path><domain>_<language>.template
# <email_template_path><domain>.template
# <email_template_path>default_<language>.template
# <email_template_path>default.template
# where <language> is taken from the body of P-Language header
# of the request (if any).
#
email_template_path=/usr/local/etc/sems/
# end of configuration section for voicemail module
config.voicemail=end
# sample announcement configuration (inline)
config.announcement=inline
# optional parameter: announce_path=<path>
#
# - sets the path where announce files are searched for
announce_path=/usr/local/lib/sems/audio/
# parameter: default_announce=<filename>
#
# - sets the name of the default announce WAV file
default_announce=default_en.wav
# end of configuration section for announcement module
config.announcement=end
# sample isdngw module configuration (external file)
#config.isdngw=/etc/isdngw.conf
# sample ivr module configuration (inline)
config.ivr=inline
#
#
# The IVR checks for a script with the named of the callee
# (<local part in r-uri>.py for python, <local part in r-uri>.pl for perl)
# in the directory <ivr_script_path><domain>, then for
# <ivr_script_path><domain><ivr_script_file>. If this is not found,
# <ivr_script_path>/<local part in r-uri>.py if searched,
# and if this is not found, <ivr_script_path>/<ivr_script_file> is used.
#
# So with a call to sayer(a)iptel.org and
#ivr_script_path=/etc/ivr and
#ivr_script_file=ivr.py
# these files are checked:
#/etc/ivr/iptel.org/sayer.py
#/etc/ivr/iptel.org/ivr.py
#/etc/ivr/sayer.py
#/etc/ivr/ivr.py
#
#parameter: ivr_script_path:
# path to ivr scripts
#
ivr_script_path=/etc/ivr/
# default script file: this will be executed if <user>.py does not exist.
#
ivr_script_file=ivr.py
# parameter : tts_caching
# y or n
# text will be read from waves already synthesized and
# cached in cache_path
tts_caching=y
# parameter : tts_cache_path
# path to cache waves
# path must exist!
tts_cache_path=/tmp/wavs
# end of configuration section for ivr module
config.ivr=end
# sample conference configuration (inline)
config.conference=inline
# parameter: default_announce=<filename>
#
# - sets the full pathed name of the default announce WAV file.
# Will be played to lonely users.
default_announce=/usr/local/lib/sems/audio/first_participant.wav
join_sound=/usr/local/lib/sems/audio/beep.wav
drop_sound=/usr/local/lib/sems/audio/beep.wav
# end of configuration section for conference module
config.conference=end
# example configuration for number reader
config.number_reader=inline
number_path=/usr/local/lib/sems/audio/
prolog_file=welcome_to_number_reader.wav
epilog_file=thanks_calling_number_reader.wav
# end of number_reader configuration
config.number_reader=end
# add more module configurations here (inline or external):
#
# config.mymodule=<filename>
# or
# config.mymodule=inline
# ...
# config.mymodule=end
MTU 1500 is kind a everywhere (almost) if you increase it on your
interface/router then your ISP will find out that your packet too long
and split it.. or block
In my case I removed all information fields from SIP header
-----Original Message-----
From: serusers-bounces(a)iptel.org [mailto:serusers-bounces@lists.iptel.org] On
Behalf Of Arek Bekiersz
Sent: Thursday, November 03, 2005 4:11 AM
To: Federico Giannici; SER Users
Subject: Re: [Serusers] Packets fragmentation and message reduction
Hi Federico,
Had the same problems. Solutions that work:
- you have somewhere MTU limit of 1500 bytes. Check where you have this
limit, it is possible you will be able to send bigger messages after
changes
- use SER's consume_credentials() function to remove Authorization or
Proxy-Authorization HF after use
- configure all phones to use and describe in SDP only 1 or 2 codecs
(decide
about your system codec, delete the rest from UAs)
- write your small function (in example in nathelper module) to edit SDP
and
remove unused codecs when messages go through proxy
Arek,
----- Original Message -----
From: "Federico Giannici" <giannici(a)neomedia.it>
To: "SER Users" <serusers(a)lists.iptel.org>
Sent: Thursday, November 03, 2005 1:24 AM
Subject: [Serusers] Packets fragmentation and message reduction
> I found a situation where some SIP phones worked and some don't.
>
> After a while I found that, because of the added bytes of the
> "Proxy-Authorization:" header, the messages generated by some sip
phones
> were larger than 1480 bytes and this caused the connection with the
PSTN
> gateway to not work.
>
> I tried to forwad the message with the t_relay_to_tcp() function, but
by
> the ngrep output it seems that it still uses UDP (but I may be wrong).
>
> Anyway, what can be done in this situations?
>
> What about a SER module that rewrite all header field names with their
> compact form? Often, the message is only a few bytes more than 1480,
so
> this could be a solution...
>
> What do you think?
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers
Hi
Anyone know regex to match 0061 andf not 00611, basically match
australia, and not australia mobile, have thought of 0061[2-9], but if I
need to do this for all countries its a pain, since they all have their
own logic.
iqbal
Hello,
We have configured SER 0.9.4 and SEMS last cvs version in order to
implement a conference funcionallity.
Everything is working fine when the clients are using public IPs. When a
client starts a conference,
he listens a message that in on a wav file. When a client is behind NAT,
when he tries to start a
conference, he doen's listen to any message and in the soft phone
(X-Lite) it appears a message saying
"connected". We have captured the traffic with tcpdump, on the machine
that ser and sems is running,
and we've noticed that the RTP packets that the client behind NAT send
are well received, however,
there is only one RTP packet sent by the SER to the Client, and the
Client does not get that message,
maybe because he is behind NAT. Any ideia?
In the ser.cfg file, to the conference funcionallity we have :
_________________________________________________________
route[1] {
# -----------------------------------------------------------------
# Default Message Handler
# -----------------------------------------------------------------
t_on_reply("1");
if (!t_relay()) {
if (method=="INVITE" && isflagset(6)) {
unforce_rtp_proxy();
};
sl_reply_error();
};
}
route[4] {
# -----------------------------------------------------------------
# NAT Traversal Section
# -----------------------------------------------------------------
if (isflagset(6)) {
force_rport();
fix_nated_contact();
force_rtp_proxy();
};
}
route[5] {
# select messages to redirect:
if ( method=="ACK" || method=="INVITE" || method=="BYE" ||
method=="CANCEL" ){
# switch to stateful mode:
if (!t_newtran()){
sl_send_reply("500","could not create transaction");
break;
};
# prevent timeout on the other side:
t_reply("100","Trying - just wait a minute !");
# actively absorb ACKs
if (method == "ACK") {
t_relay();
break;
}
if (method=="INVITE"){
if (nat_uac_test("19")) {
setflag(6);
}
# redirect the call to the 'conference' plug-in
# if the URI begin with 100
if (uri=~"sip:100.*@") {
# assumes that Sems configuration parameter 'socket_name='
# has been set to /tmp/am_sock
if(!t_write_req("/tmp/am_fifo","conference")) {
t_reply("500","error contacting sems");
};
break;
route(4);
route(1);
};
}
else if (method=="BYE" || method=="CANCEL") {
# Sems should already know which plug-in is handling that
# call. "bye" is no plug-in name. It is a reserved name
which
# tells Sems to terminate the call.
if(!t_write_req("/tmp/am_fifo","bye")) {
t_reply("500","error contacting sems");
};
};
};
}
_______________________________________________________
Best regards,
Ravic Costa