Hi everybody,
I'm using Slackware 10.1, and I'm migrating SER 0.8.14 to 0.9.0, is there a good howto explaining how to install it with full resources ? I found the INSTALL file (the one that comes with ser-0.9.0.tar.gz) very confusing.
Thanks a lot
Best Regards.
--
Felipe Martins
Mundivox Communications
Tecnologia e Projetos
fmartins(a)mundivox.com
Tel.: +55 +21 +3820 8839
Cel.: +55 +21 +9823 8602
Fax.: +55 +21 +3820 8844
www.mundivox.com
When I try to route calls through my SER using sipp, I get there errors
May 11 17:17:34 proxy-ser ser[23159]: ERROR: udp_send:
sendto(sock,0x283555b8,650,0,0x28355960,16): Can't assign requested
address(49)
May 11 17:17:34 proxy-ser ser[23159]: msg_send: ERROR: udp_send failed
May 11 17:17:34 proxy-ser ser[23159]: ERROR: t_forward_nonack: sending
request failed
Google didn't turn up anything interesting on them. Anyone here know whats
up with them?
OS: FreeBSD 5.3
SER: version: 0.8.14 (i386/freebsd)
Also, I have accounting enabled to a database but I can not get it to log
Bye messages. I know they are going through my server from some debug
messages but they are not making it into the database. partial ser.cfg shown
below. Any other suggestions on it are also appreciated.
# Accounting
loadmodule "/usr/local/lib/ser/modules/acc.so"
# -- acc params --
# set the reporting log level
modparam("acc", "log_level", 1)
modparam("acc", "db_flag", 1)
#modparam("acc", "db_missed_flag", 1)
modparam("acc", "failed_transactions", 1)
modparam("acc", "report_ack", 0)
modparam("acc", "report_cancels", 1)
modparam("acc", "early_media", 1)
route{
# xlog("L_ERR", "time [%Tf] method <%rm> r-uri <%ru> - %tu\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 -- probebly a loop or
something");
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();
/* grant Route routing if route headers present */
# 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(!(src_ip==x.x.x.x || src_ip==127.0.0.1)) {
if (method=="REGISTER") {
if (!www_authorize("proxy-ser.voip.aebc.com",
"subscriber")) {
www_challenge("proxy-ser.voip.aebc.com",
"1");
break;
};
save("ser_location");
break;
} else if (method=="INVITE"){
if (!proxy_authorize("proxy-ser.voip.aebc.com",
"subscriber")) {
proxy_challenge("proxy-ser.voip.aebc.com",
"1");
break;
};
if(!check_from()) {
sl_send_reply("403", "You can't lie about
who you are");
}
}
}
#Accounting if a call is started or ended
if (method=="INVITE" || method=="BYE" || method=="CANCEL") {
# xlog("L_NOTICE", "Accounting INVITE/BYE/CANCLE\n");
setflag(1);
acc_db_request("", "acc");
}
# native SIP destinations are handled using our USRLOC DB
if (lookup("ser_location")) {
xlog("L_NOTICE", "Routing - Incommming call \n");
if (!t_relay()) {
sl_reply_error();
};
break;
};
} else {
if(!(method=="ACK")) {
sl_send_reply("403", "I only relay for my own customers");
}
};
# authorize only for INVITEs . RR/Contact may result in weird
# things showing up in d-uri that would break our logic; our
if (method=="INVITE") {
##
## Conditional relaying using if(uri=~ and rewritehostport omitted for
space and security
##
}
# 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();
};
When I try to route calls through my SER using sipp, I get there errors
May 11 17:17:34 proxy-ser ser[23159]: ERROR: udp_send:
sendto(sock,0x283555b8,650,0,0x28355960,16): Can't assign requested
address(49)
May 11 17:17:34 proxy-ser ser[23159]: msg_send: ERROR: udp_send failed
May 11 17:17:34 proxy-ser ser[23159]: ERROR: t_forward_nonack: sending
request failed
Google didn't turn up anything interesting on them. Anyone here know whats
up wiht them?
Also, I have accounting enabled to a database but I can not get it to log
Bye messages. I know they are going through my server from some debug
messages but they are not making it into the database. partial ser.cfg shown
below. Any other suggestions on it are also appriciated.
# Accounting
loadmodule "/usr/local/lib/ser/modules/acc.so"
# -- acc params --
# set the reporting log level
modparam("acc", "log_level", 1)
modparam("acc", "db_flag", 1)
#modparam("acc", "db_missed_flag", 1)
modparam("acc", "failed_transactions", 1)
modparam("acc", "report_ack", 0)
modparam("acc", "report_cancels", 1)
modparam("acc", "early_media", 1)
route{
# xlog("L_ERR", "time [%Tf] method <%rm> r-uri <%ru> - %tu\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 -- probebly a loop or
something");
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();
/* grant Route routing if route headers present */
# 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(!(src_ip==x.x.x.x || src_ip==127.0.0.1)) {
if (method=="REGISTER") {
if (!www_authorize("proxy-ser.voip.aebc.com",
"subscriber")) {
www_challenge("proxy-ser.voip.aebc.com",
"1");
break;
};
save("ser_location");
break;
} else if (method=="INVITE"){
if (!proxy_authorize("proxy-ser.voip.aebc.com",
"subscriber")) {
proxy_challenge("proxy-ser.voip.aebc.com",
"1");
break;
};
if(!check_from()) {
sl_send_reply("403", "You can't lie about
who you are");
}
}
}
#Accounting if a call is started or ended
if (method=="INVITE" || method=="BYE" || method=="CANCEL") {
# xlog("L_NOTICE", "Accounting INVITE/BYE/CANCLE\n");
setflag(1);
acc_db_request("", "acc");
}
# native SIP destinations are handled using our USRLOC DB
if (lookup("ser_location")) {
xlog("L_NOTICE", "Routing - Incommming call \n");
if (!t_relay()) {
sl_reply_error();
};
break;
};
} else {
if(!(method=="ACK")) {
sl_send_reply("403", "I only relay for my own customers");
}
};
# authorize only for INVITEs . RR/Contact may result in weird
# things showing up in d-uri that would break our logic; our
if (method=="INVITE") {
##
## Conditional relaying using if(uri=~ and rewritehostport omitted for
space and security
##
}
# 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();
};
Hi everybody,
I'm playing with SER andd I would like to add tha auth_radius module..
versions:
ser: 0.8.14
radiusclient: 0.4.8
The compilation went well, but when I start SER, it says:
0(31749) DEBUG: init_mod: auth_radius
0(31749) auth_radius - Initializing
0(31749) auth_radius: No `Cisco' vendor in Radius dictionary
0(31749) find_export: found <pre_auth> in module auth
[/usr/local/lib/ser/modules/auth.so]
0(31749) find_export: found <post_auth> in module auth
[/usr/local/lib/ser/modules/auth.so]
0(31749) ERROR: auth_radius: can't get code for the User-Name attribute
0(31749) init_mod(): Error while initializing module auth_radius
ERROR: error while initializing modules
the relevant part of my ser.cfg:
----------------------------------------- CUT
--------------------------------------------
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/exec.so"
loadmodule "/usr/local/lib/ser/modules/textops.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_radius.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)
modparam("usrloc", "db_url", "sql://xxx:yyy@localhost/ser")
# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
modparam("auth_radius", "radius_config",
"/usr/local/etc/radiusclient/radiusclient.conf")
----------------------------------------- CUT
--------------------------------------------
radclient.conf:
auth_order radius,local
login_tries 4
login_timeout 60
nologin /etc/nologin
issue /usr/local/etc/radiusclient/issue
authserver localhost
acctserver localhost
servers /usr/local/etc/radiusclient/servers
dictionary /usr/local/etc/radiusclient/dictionary
dictionary /usr/local/etc/radiusclient/dictionary.sip
dictionary /usr/local/etc/radiusclient/dictionary.ascend
dictionary /usr/local/etc/radiusclient/dictionary.compat
dictionary /usr/local/etc/radiusclient/dictionary.merit
login_radius /usr/local/sbin/login.radius
seqfile /var/run/radius.seq
mapfile /usr/local/etc/radiusclient/port-id-map
default_realm
radius_timeout 10
radius_retries 3
bindaddr localhost
login_local /bin/login
As you can see, I have added all of the dictionary files, but still does
not work :(
what can be the problem????
Thanks, Regards
Misi
Hi Greger
Thank you for the information I have found it just what I needed.
Calls To SER from Asterisk:
To add to trusted in MYSQL I would use this right:
INSERT INTO trusted SET
src_ip='***.***.***.***',proto='any',from_pattern='sip:[0-9]*@***.***.***.**
*'; #replace *** with the asterisk ip address
With this in my ser.cfg:
modparam("permissions", "db_url", "mysql://ser:heslo@localhost/ser
<mysql://ser:heslo@localhost/ser%22> ")
modparam("permissions", "db_mode", 1)
modparam("permissions", "trusted_table", "trusted")
and for routing to Asterisk From SER:
if (method == "INVITE" && (uri=~"^sip:0")){
rewritehostport ("***.***.***.***:5060");
t_relay();
break();
};
Or do I just add:
Asterisk to the trusted table and the following near the
if(!allow_trusted)
if (!proxy_authorize("","subscriber")) {
proxy_challenge("","0");
break;
} else if (!check_from()) {
sl_send_reply("403", "Use From=ID");
break;
Thank you very much for your help
Cheers
Greg
_____
From: Greger V. Teigre [mailto:greger@teigre.com]
Sent: Wednesday, 11 May 2005 6:20 PM
To: Mr Greg Plater; serusers(a)lists.iptel.org
Subject: Re: [Serusers] Ser Accepting Calls From Asterisk
Greg,
Basically, you can do four things (first two for dialing asterisk-ser, the
next two for dialing ser-asterisk):
1. Accept INVITEs from a specific src ip (asterisk) and add if(src_ip !=
asterisk_ip) around the INVITE authentication to avoid that part being
triggered
2. Or you accomplish the same thing be adding asterisk to the trusted table
and us if(!allow_trusted) instead. This will give you more control as you
can filter on ruri as well.
3. You can create an account in asterisk and have asterisk register with SER
like a regular user (who will be available in location for dialling into
asterisk). This only makes sense if you have one main number for all users
registered on asterisk (you don't need 1 or 2 if you do this)
4. Use some kind of routing, either through manual configuration (uri=~"some
pattern", then forward to asterisk) or use the LCR (least cost routing)
module to look up the ruris and forward to asterisk. This must be done in
combination with 1 or 2.
Hope this helps.
g-)
---- Original Message ----
From: Mr Greg Plater
To: serusers(a)lists.iptel.org
Sent: Wednesday, May 11, 2005 06:10 AM
Subject: [Serusers] Ser Accepting Calls From Asterisk
> Hi
>
> I am using the onsip getting started doc with mediaproxy.
>
> Calls for registered users on SER work great but when I try to call a
> registered ser user from my asterisk box.
> I get a response in Asterisk Debug. Says "failed to auth on INVITE"
>
> If I wish to allow calls from my asterisk box to registered users on
> SER what do I change.
>
>
> IN SER.cfg I note these 2 snippets
>
>
> if (!www_authorize("","subscriber")) {
> www_challenge("","0");
> break;
> };
>
>
>
> if (!proxy_authorize("","subscriber")) {
> proxy_challenge("","0");
> break;
> } else if (!check_from()) {
> sl_send_reply("403", "Use From=ID");
> break;
> };
>
>
>
> _______________________________________________
> Serusers mailing list
> serusers(a)lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
I've configured call forwarding in my SER script but to catch a
situation where a user forwards to another user that is forwarding back
to the first user i've added a second "if (
!mf_process_maxfwd_header("10") )" stanza to the SER script.
However, i'm finding that it will actually add additional "Max-Forwards"
headers to the SIP message as opposed to decrimenting one that is
already there:
--
Max-Forwards: 9.
Record-Route: *REMOVED*
Max-Forwards: 10.
Max-Forwards: 10.
--
I am under the impression that when called the
mf_process_maxfwd_header() function should search the message for the
"Max-Forwards" header and only add additional headers if it is missing.
tavis
Hi all,
I've used for long time the QoS capabilities of linux for
shaping/prioritizing traffic. Now, i'm willing to prioritize rtp packets
in my lan, over the rest ot packets. I've used the u32 filters, but I
did not really found a nice way of "matching" a rtp packet. I read the
rfc so as to look at the rtp-header and found that the only field wich
does not change its value along time is the version-field. It is located
at the 29th byte ( with byte 0 at the IP heder first byte ). But it is a
really poor way of doing it, because there may be many other packets
wich will "get caugth" by this rule ...
any ideas ? any experience in the subject ...
Regards,
Lucas
--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.308 / Virus Database: 266.11.8 - Release Date: 10/05/2005
Hi everybody,
Do anybody know a good sip softphone for linux that works with the following codecs:
- G 723.1
- G 729a
- G 711
- and others
I'm experiencing the following problem. I have 2 ser servers, a sip softphone connected to each one of them talking to each other with no problem (softphones: phoner (M$), kphone (Linux)), my problem is that When I try to do the same test but between a softphone (linux or ms) and a HardPhone (Grandstream Budge Tone 100) I can't hear a thing. No sound is passed in any direction.
I believe this is a codec problem, because between my softphones the conversation goes OK.
Any Hand
Thanks in Advance
Best Regards.
--
Felipe Martins
Mundivox Communications
Tecnologia e Projetos
fmartins(a)mundivox.com
Tel.: +55 +21 +3820 8839
Cel.: +55 +21 +9823 8602
Fax.: +55 +21 +3820 8844
www.mundivox.com