Hello All,
Sorry, I had mistype in previous message... this is correct:
Has somebody any idea how to rewrite the part of the 'To'
field (789) the same as the part of header field (123456)..?
in other words, how to make the 'user' field of this part
of both messages the same?
INVITE sip:123456@20.30.40.50 SIP/2.0
To: <sip:789@myserver.com;user=phone>
~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,.
Mike Tkachuk, ph:380-3433-47067
YES ISP, fx:380-3433-47067
Valova 17, mike|a|yes.net.ua
Kolomyia, www.yes.net.ua
Ukraine 78200 FWD: 66518
23.09.2004
ICQ# 57698805
MSN: mike_tkachuk|a|hotmail.com
~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,.
Hi All,
Has any one looked at having ser auth and account to FreeRadius to a
mysql backend?
I currently have this working, with the stock mysql db schema, but I
would like to change FreeRadius to feed [off] the mysql radius using
sers default mysql schema.
Has anyone been down this road before?
Thanks,
-Jev
Hi
We have a phone system consisting primarily of SER and Asterisk, and are
having trouble transferring inbound calls from the PSTN.
We believe the problem is basically that because our phones register
with SER, the Asterisk box never sees the call from the original callee
to the new callee.
i.e.
caller --> PSTN --> Asterisk --> SER --> callee's SIP phone
callee's SIP phone --> SER --> new callee's SIP phone
when the original caller hangs up, the transfer is requested, however
Asterisk does not know anything about the second call shown above, and
so we see an error about "supervised transfer requested; callid not
found".
We have found that if, in our SER config, we route 8<extension> through
Asterisk, having stripped off the leading '8', and on to the SIP phone
via SER, then it works, because Asterisk then 'knows' about the new
call, since the second call above becomes
callee's SIP phone --> SER --> Asterisk --> SER --> new callee's SIP phone
Of course, this is a rather inelegant fix, especially when we actually
have more than one PSTN gateway. Does anyone know if there is a more
flexible fix, either on the SER or Asterisk side, that might fix our
problem?
thanks
peter
--
peter gradwell. gradwell dot com Ltd. http://www.gradwell.com/
-- engineering & hosting services for email, web and voip --
-- http://www.peter.me.uk/ -- http://www.voip.org.uk/ --
Dear serusers,
I've been working on configuring ser. And now it seems to work fine with Xten.
But if I use sipsak, I always get the "Too many hops" error.
I followed ser's admin guide. I added alias and if( loose_route()).
But still, I can find the error with sipsak.
Could someone tell me how to solve the problem?
Thanks in advance.
Sincerely,
Kun
Hi,
Does any one know a relible and free-of-charge b2bua, other than vovida?
Unfortunately any try of this one ends with 'Segmentation fault' message :(
Lokotes.
Dear all,
I am trying to use SER with PostgreSQL but in separate boxes, one for
the proxy and the other one with the DB backend.
A group of colleagues succeed in installing everything in the same box,
but I am trying to go further, because the database is also part of a
bigger database system application and We would like to gather
everything together.
Anyway I got an authorized 401 code when I try to log on in the SER
system. I am trying to find out what is going on. I have downloaded the
sip_scenario utility to analyse the tcpdump files generated with the
ethernet utility. Anyway I still dont see what happens when the SER
server tries to connect with the PostgreSQL database, the tcpdump tool
says that there is any kind of connection but I dont know really what is
going on.
Can anyone give any hint to help me out?
Many thanks in advance
Miguel
Hi Folks!
I'm using ser version 0.8.14 source. I compiled in my box and rtpProxy. the
version I downloaded from http://www.portaone.com/~sobomax/rtpproxy.tar . I
compiled in my linux RedHat version 8.0. I didn't get any error when I run
the rtpProxy.. I do ./rtpProxy -l myip
and when SER is starting It disabled rtpproxy support because he can't
connect to the rtpproxy...
I don't know what is wrong here., please any help will be really appreciate.
Armando Marrero
Cti, Miami. FL
Hello, serusers!
I am trying to add support to our SER routing to do the right thing
when users add extra digits to phone numbers. We have silly users
trying to dial 1-800-JABBER-WOCK type numbers, and they don't know to
stop dialing after the "W", since you don't need to on a standard
analog line.
It seems like this would either require a reg-exp back reference
(ie, \1), or a while loop and a function like strip() that works on
the other side of the user portion of the SIP address:
while (uri =~ ^sip:[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]) {
endstrip(1);
}
Are any of these functions available, but not documented? I've found
the language reference/Admin's guide to be a bit obscure at times for
discovering these sorts of things. Or can anyone suggest another way
to truncate the number down?
Also, as long as I'm writing in: are there any minimum and maximum
quantifiers (ie, [0-9]{3,5}) available in SER? It's hard to read code
that's 90% repeated character classes!
^Jeremy$
--
Jeremy M. Dolan <mailto:jmd@pobox.com> <http://jmd.us/>
PGP: 1024D/3C68A1BA 9470 210C A476 FFBB 6D11 0223 0D1C ABFC 3C68 A1BA
the problem is that only one side is heard during the conversation.
Now viewing the capture of SIP session i can see that the NATed client's SDP and Contact header were changed correctly
but still the RTP proxy is listening for data from 192.168.10.14 instead of data from the NAT ip.
attached the output of RTP proxy during debug mode the ser.cfg file please help!!!
RTP proxy was started with the command:
rtpproxy -2f -l 192.168.10.62/80.178.94.82
RTP proxy Output:
rtpproxy: rtpproxy started, pid 23524
rtpproxy: new session 227142944229442YbiJ-400--500(a)192.168.10.14, tag 1c-2023537854 requested
rtpproxy: new session on a port 64900 created, tag 1c-2023537854
rtpproxy: pre-filling caller's address with 192.168.10.14:8000
*Remark client 192.168.10.14 is behind a NAT
rtpproxy: lookup on a ports 64900/64900, session timer restarted
rtpproxy: pre-filling callee's address with 192.168.10.12:8000
rtpproxy: session timeout
rtpproxy: RTP stats: 330 in from callee, 0 in from caller, 330 relayed, 0 dropped
rtpproxy: RTCP stats: 2 in from callee, 0 in from caller, 2 relayed, 0 dropped
rtpproxy: session on ports 64900/64900 is cleaned up
SER.cfg :
#
#
#
# ----------- 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=yes
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"
listen=192.168.10.62
listen=80.178.94.82
mhomed=yes
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database
loadmodule "/lib/ser/modules/mysql.so"
loadmodule "/lib/ser/modules/sl.so"
loadmodule "/lib/ser/modules/tm.so"
loadmodule "/lib/ser/modules/rr.so"
loadmodule "/lib/ser/modules/maxfwd.so"
loadmodule "/lib/ser/modules/usrloc.so"
loadmodule "/lib/ser/modules/registrar.so"
loadmodule "/lib/ser/modules/textops.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
loadmodule "/lib/ser/modules/auth.so"
loadmodule "/lib/ser/modules/auth_db.so"
# !! Nathelper
loadmodule "/lib/ser/modules/nathelper.so"
# EXEC module
#loadmodule "/lib/ser/modules/exec.so"
# ----------------- setting module-specific parameters ---------------
# -- usrloc params --
modparam("usrloc", "db_url", "mysql://ser:******@localhost/ser")
modparam("usrloc", "db_mode", 1)
# 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)
# !! Nathelper
modparam("registrar", "nat_flag", 6)
modparam("nathelper", "natping_interval", 10) # Ping interval 30 s
modparam("nathelper", "ping_nated_only", 1) # Ping only clients behind NAT
modparam("nathelper", "rtpproxy_sock", "/var/run/rtpproxy.sock") #rtp proxy socket
# ------------------------- request routing logic -------------------
# main routing logic
route{
# initial sanity checks -- messages with
# max_forwards==0, or excessively long requests
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
break;
};
if (msg:len >= max_len ) {
sl_send_reply("513", "Message too big");
break;
};
if (method !="REGISTER" && !proxy_authorize("", "subscriber")){
proxy_challenge("", "0");
break;
};
if (method == "BYE" || method == "CANCEL")
unforce_rtp_proxy();
# !! Nathelper
# Special handling for NATed clients; first, NAT test is
# executed: it looks for via!=received and RFC1918 addresses
# in Contact (may fail if line-folding is used); also,
# the received test should, if completed, should check all
# vias for rpesence of received
if (nat_uac_test("3") && dst_ip == 80.178.94.82) {
sl_send_reply("", "Client is behind NAT");
# 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") {
sl_send_reply("", "Client is behind NAT And Requested a call");
if (fix_nated_sdp("1")) sl_send_reply("", "Client SDP Replaced"); # Add direction=active to SDP
};
force_rport(); # Add rport parameter to topmost Via
setflag(6); # Mark as NATed
};
};
# we record-route all messages -- to make sure that
# subsequent messages will go through our proxy; that's
# particularly good if upstream and downstream entities
# use different transport protocol
if (!method=="REGISTER") record_route();
# subsequent messages withing a dialog should take the
# path determined by record-routing
if (loose_route()) {
sl_send_reply("", "loose route");
# mark routing logic in request
append_hf("P-hint: rr-enforced\r\n");
route(1);
break;
};
if (!uri==myself) {
sl_send_reply("", "outbound");
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
route(1);
break;
};
# if the request is for other domain use UsrLoc
# (in case, it does not work, use the following command
# with proper names and addresses in it)
if (uri==myself) {
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
if (!www_authorize("", "subscriber")) {
www_challenge("", "0");
break;
};
if (dst_ip == 192.168.10.62){
save("secure_loc");
} else {
if (dst_ip == 80.178.94.82){
save("net_loc");
} else {
sl_send_reply("403", "Call cannot be served here");
};
};
break;
};
lookup("aliases");
if (!uri==myself) {
sl_send_reply("", "aliases outbound");
append_hf("P-hint: outbound alias\r\n");
route(1);
break;
};
# native SIP destinations are handled using our USRLOC DB
if (method == "INVITE") {
# exec_msg("env > /root/sip_call_env ");
if (lookup("secure_loc")) {
sl_send_reply("","secure loc");
if (dst_ip == 192.168.10.62){
sl_send_reply("","192.168.10.62");
if (force_rtp_proxy("FAII"))
t_on_reply("1");
};
if (dst_ip == 80.178.94.82){
sl_send_reply("","80.178.94.82");
if (force_rtp_proxy("FAEI"))
t_on_reply("1");
};
} else if (lookup("net_loc")) {
sl_send_reply("","net loc");
if (dst_ip == 192.168.10.62){
sl_send_reply("","192.168.10.62");
if (force_rtp_proxy("FAIE")){
t_on_reply("1");
sl_send_reply("","FAEI");
};
};
if (dst_ip == 80.178.94.82){
sl_send_reply("","80.178.94.82");
if (force_rtp_proxy("FAEE"))
t_on_reply("1");
};
} else {
sl_send_reply("403", "Call cannot be served here");
break;
};
};
};
append_hf("P-hint: usrloc applied\r\n");
route(1);
}
route[1]
{
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
t_on_reply("1");
if (!t_relay()) {
sl_reply_error();
};
}
onreply_route[1] {
if (dst_ip == 80.178.94.82 && nat_uac_test("1")) {
fix_nated_contact();
if (status =~ "(183)|2[0-9][0-9]") fix_nated_sdp("1");
};
if (status =~ "(183)|2[0-9][0-9]") force_rtp_proxy("FA");
}
Serusers,
SER server starts and registration is successfull,but msn client cann't communication each other .when I use Ethereal:
........
Request:INVITE sip:test@192.168.0.206,with session description
Status: 100 trying --your call is important to us
Request:INVITE sip:test@192.168.0.207:10328;with session description
Status: 100 trying
Status: 200 OK,with session description
Request: BYE sip:test@192.168.0.206;ftag=f92d17003fg64albad12e56a04c4c5aa;Ir=on
Status: 200 OK,with session description
Resquest:ACK sip:test@192.168.0.206;ftag=f92d17003fg64albad12e56a04c4c5aa;Ir=on
Resquest:Message test(a)192.168.0.206;ftag=f92d17003fg64albad12e56a04c4c5aa;Ir=on with session description
Resquest: BYE sip:192.168.0.208:13698
Status: 200 OK
Resquest:ACK sip:192.168.0.208:13698
Resquest:Message sip:19292.168.0.207:10328. with session description
Status: 200 OK
Status: 481 call leg/transaction Does Not Exist
Status: 481 call leg/transaction Does Not Exist
.....
I donn't know how to do? please help me!Thanks!
zhangsezhen(a)sict.ac.cn
2004-07-13