Hi list. I have this problem. There's something that's not working,
because, when ever I set up a call, I receive both messages INVITE and
BYE instantly. I think the correct way would it be to send Start
messages (Acct-Status-Type = Start) upon INVITEs and Stop messages
(Acct-Status-Type = Stop) upon BYEs. But this is not happening. Look ...
radrecv: Accounting Request from host c0a801fd code=4, id=205,
length=270
Acct-Status-Type = Start
Service-Type = Sip-Session
Sip-Response-Code = 200
Sip-Method = Invite
User-Name = "1992001(a)192.168.1.253"
Calling-Station-Id = "sip:1992001@192.168.1.253:5060;user=phone"
Called-Station-Id = "sip:1992005@192.168.1.253:5060;user=phone"
Sip-Translated-Request-URI = "sip:1992005@192.168.1.178:11005"
Acct-Session-Id = "6dfb6640367b1ab7(a)192.168.1.113"
Sip-To-Tag = "54061171"
Sip-From-Tag = "39eeac148f846cb9"
Sip-CSeq = "1544"
NAS-IP-Address = 192.168.1.253
NAS-Port-Id = 5060
Acct-Delay-Time = 0
Sending Accounting Ack of id 205 to c0a801fd (nas linux)
radrecv: Accounting Request from host c0a801fd code=4, id=206,
length=270
Acct-Status-Type = Start
Service-Type = Sip-Session
Sip-Response-Code = 200
Sip-Method = Bye
User-Name = "1992001(a)192.168.1.253"
Calling-Station-Id = "sip:1992001@192.168.1.253:5060;user=phone"
Called-Station-Id = "sip:1992005@192.168.1.253:5060;user=phone"
Sip-Translated-Request-URI = "sip:1992005@192.168.1.178:11005"
Acct-Session-Id = "6dfb6640367b1ab7(a)192.168.1.113"
Sip-To-Tag = "54061171"
Sip-From-Tag = "39eeac148f846cb9"
Sip-CSeq = "1544"
NAS-IP-Address = 192.168.1.253
NAS-Port-Id = 5060
Acct-Delay-Time = 0
Sending Accounting Ack of id 206 to c0a801fd (nas linux)
Do you see ? ...Both outputs show an Acct-Status-Type = Start, but first
output refers to an INVITE and second output refers to BYE message. And
the strange thing is that both messages arrive instantly, as soon as the
peer answers the phone. Why ??? I don't think this is correct, isn't it
?
Any hint ?
here goes my ser.cfg ...
[...]
# -- RADIUS ACC --
modparam("acc", "radius_config", "/etc/radiusclient.conf")
modparam("acc", "radius_flag", 1) modparam("acc", "radius_missed_flag",
2) modparam("acc", "log_level", 1) modparam("acc", "service_type", 15)
[...]
if (loose_route())
{
t_relay();
break;
};
if (uri==myself)
{
if (method=="REGISTER")
{
# Lo siguiente es para auth con RADIUS
if (!radius_www_authorize(""))
{
www_challenge("", "0");
break;
};
save("location");
break;
};
if (method=="INVITE")
{
setflag(1);
};
# native SIP destinations are handled using our USRLOC
DB
if (!lookup("location"))
{
sl_send_reply("404", "Not Found");
break;
};
};
t_relay();
[...]
Regards,
Lucas
--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.296 / Virus Database: 265.6.6 - Release Date: 28/12/2004
Yeap.
Me.!
Cheers
Ricardo Martinez
-----Mensaje original-----
De: O-Zone [mailto:liste@zerozone.it]
Enviado el: Miércoles, 22 de Diciembre de 2004 11:12
Para: ser users
Asunto: [Serusers] SER + RADIUS
Someone use SER with Radius Auth ?
Oz
--
------
O-Zone ! www.zerozone.it
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers
Guys,
Since I just made very substantial changes to my ser.cfg I'd like to
test my full feature set before sharing it. I'm going to put a new
post on serusers_at_iptel.org in a day or two seeking comments on
establishing a "best practices" document for ser.cfg and in that post
I'll attach my ser.cfg which perhaps could be used as a basis for
beginning a dialog on this subject.
At a minimum I'd like to see a more complete and complex ser.cfg for
which other can base their work.
The problem with this is that it would require take some feedback from
the ser core team to ensure the "best practices" are correct and
properly reflect the designers intent. The reason I think this could
be a problem is that Andrei, Jiri, Jan, and company are more than busy
already.
The bottom line is that as great as ser is, coding practices are
mostly a mystry to developers seeking to install ser and when you get
in to complex functionality such as call forwarding confusion stumps
many users.
Regards,
Paul
On Sat, 19 Feb 2005 19:59:31 +0100 (CET), Medve Istvan <imedve(a)ew.hu> wrote:
> > Perhaps I'll post my entire ser.cfg this week for anyone that wants it.
>
> Please send it to me.
>
> Thanks,
> imedve
>
>
Hello all,
I've ran into a dilemma regarding on the call structure is setup for
my system right now. As of current everything goes through asterisk
ie
sip user -> ser -> asterisk -> sip user
what I want to try and accomplish is sip user -> ser -> sip user.
I believe this would remove unnecessary load on asterisk servers and
just connect the call directly.
I'm having a hard time understanding how I will do this thought. as
of right now I have a forward statement
if (uri=~"^sip:[0-9]*@.*") {
forward( 10.0.18.3, 5060 );
break;
};
Say I have multiple companies, how would I setup extensions to call
sip devices and if I wanted to dial into a sales queue how would it
forward to asterisk. Another thing would be voice mail...how would
the extension know to goto voicemail after a certain amount of seconds
and play a custom greeting that they assigned for their box.
and how would they be billed... sip to sip would be billed thru ser,
all zaptel channels thru asterisk??
Best regards,
Patrick
Hello, when I receive a certain request, I intend to insert a Route header and then forward that request to the URI in the Route header. But when loose_route is called, it prints:
find_first_route(): No Route headers found
loose_route(): There is no Route HF
This is the part of the config file:
# This would be done in a module function of my own, it is simplified:
append_hf("Route: 10.10.10.80:5062");
# loose-route processing
if (loose_route())
{
t_relay();
break;
};
Can anybody help me? How can I forward the request to the URI in the Route header that I previously inserted? It seems loose_route does not take into account changes, it looks at the request as it was received.
Thank you very much.
Hello all,
I just installed SER on my Linux (AS 3) Intel server, and Im trying to
install MySQL. But as Im reading:
To install support for a MySQL database you will need to download the
package ser-mysql.
Anyone can tell me or send me the link from where I can download it?
Thx
Hi All.
I'm located in the US and would like to comply with the Communications
Assistance for Law Enforcement Act (CALEA) that Congress passed which
basically says that VoIP providers should have the ability to wiretap
conversations for the FBI upon request.
I use mediaproxy for NAT traversal. So my question is how can I be
CALEA compliant? I assume I should be able to modify mediaproxy to
write RTP streams to disk, but I'm unclear on how to "mix" both sides
of the conversation.
Can anyone help with a suggestion?
Regards,
Paul
I'm presently working on a SIP setup whereby there are 3 Cisco
routers which each have analog phones connected to them via FXS ports.
All 3 of these routers are connected via an underlying network. I
have a machine hanging off from one of these routers running ser. For
ease of labelling, I'll call these routers: router1, router2, and
router3 (SIP server directly connected to this router via ethernet).
I'm attempting to setup call forking using the UsrLoc database (this
will eventually be SQL, but for the sake of the short-term I'm just
storing UsrLoc in memory). The desired call forking setup looks
something like this:
router1 --> router2
--> router 3
router 2 --> router 1
--> router 3
router 3 --> router 1
--> router 2
I am able to complete calls between router1 and router3 (and
vice-versa) and carry on a conversation, but when calling between
router1 and router2 the call completes, but neither party can hear the
other. Ironically, router1 and router2 are sitting right next to each
other (though, connected via another router). However, The SIP proxy
is directly connected to router3. Doing a 'debug voip rtp' I see RTP
messages travel bidirectionally in a constant stream with correct IP
addresses and ports until the call ends, but at no point during the
conversation can either party hear the other. This would lead me to
believe that something other than SIP was at play, but when I bypass
the proxy (point the two routers directly at each other via the
dial-peer) call completion works and both parties can hear each other
(I set these up as SIP, not the default H.323). Below is my ser.cfg
file and the output of 'serctl ul show' for the static UsrLoc entries
that I've created. The routers are setup with simple dial-peers and a
sip-ua.
I've verified that there isn't any type of ACL or firewall to obstruct
the conversation. Every router is able to reach each other router as
well as the proxy server. I'm using private address space at present,
but NAT isn't being done at any point. I've pondered trying rtp_proxy
and forcing the bearer (RTP) traffic through the proxy, but that isn't
a particularly good solution for my environment.
Any help would be greatly appreciated. I'm hoping that it's just a
case of broken logic in my ser.cfg. Please CC: this address in your
reply as I'm not currently on the mailing list.
Most of the configuration is derived from the sample configurations
that I ran into.
---ser.cfg start---
# ----------- global configuration parameters ------------------------
debug=7 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=yes # (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)
listen=192.168.1.2
port=5060
mhomed=1
#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/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)
# ------------------------- request routing logic -------------------
# main routing logic
alias="ser"
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
if (method=="INVITE") 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("iptel.org", "subscriber")) {
# www_challenge("iptel.org", "0");
# break;
# };
save("location");
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
};
# forward to current uri now; use stateful forwarding; that
# works reliably even if we forward from TCP to UDP
if (!t_relay()) {
sl_reply_error();
};
}
---end ser.cfg---
---start static UsrLoc entries---
ser# ../../sbin/serctl ul show 222
200 OK
<sip:222@<router2 IP>:5060>;q=1.00;expires=1003718231
<sip:222@<router3 IP>:5060>;q=1.00;expires=1003718231
ser# ../../sbin/serctl ul show 111
200 OK
<sip:111@<router1 IP>:5060>;q=1.00;expires=1003718231
<sip:111@<router3 IP>:5060>;q=1.00;expires=1003718231
ser# ../../sbin/serctl ul show 333
200 OK
<sip:111@<router1 IP>:5060>;q=1.00;expires=1003718231
<sip:222@<router2 IP>:5060>;q=1.00;expires=1003718231
---end static UsrLoc entries---
Thank you.
Hello
I want to know if it is possible to checks only the username of a from
header with an avp value
avp_check("$uncond_forwarding_dest","eq/$from/username/g") )
Laurent