It comes from Asterisk with max_forward 70. Question is why is it
changed (and not to 69 value)?
cheers,
Daniel
---Oryginalna wiadomość---
Nadawca:"Greger V. Teigre" <greger(a)teigre.com>
Do:dciepiel@orange.pl
Otrzymana:2007-08-10 10:54
Temat:Re: [Serusers] Why max_forwards=16?
SER is forwarding the INVITE, look at where it comes from.
g-)
dciepiel(a)orange.pl wrote:
> Ser is isending INVITE message to Xlite, with max forwards 16 /
> instead of 70? Why?
>
>
> cheers,
>
> Daniel
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Serusers mailing list
> Serusers(a)lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
>
Hi,
I want to make an application server using SER with few more entities. The
system would be like this
| XLite Phone | -------------------- | SIP Proxy Server |
--------------------- | App Server using SER | -------------------------- |
Media Server |
Now these are the tasks I need to accomplish:
1. Registering App Server with SIP Proxy Server. (How to register SER
with another Proxy Server?)
2. It should also behave like a proxy. (SER should forward the packet
to and from Media Server)
3. RTP must only be created b/w XLite Phone and Media Server.
4. And finally sending INFO Method from App Server to Media Server with
MSCML Script. (How does SER send INFO Method with an xml script as a body?)
Please suggest something how should I achieve it.
Thanks and Regards,
Kapil Goel
Hello everybody,
I want that openser can call a PSTN number for example:
0296487631. But in the request of INVITE, I see that the callee is
always
0296487631(a)opensersip.test.machine ( and opensersip.test.machine is my
sip server), that means the (uri==myself) is always ture. So this
request of INVITE can not reache the gateway of PSTN. Anybody can give
me some advices? This is my openser.cfg and I use openser+radius+mysql.
Thank you very much!!!
Yin
#
# $Id: openser.cfg 1827 2007-03-12 15:22:53Z bogdan_iancu $
# simple quick-start config script
# Please refer to the Core CookBook at
http://www.openser.org/dokuwiki/doku.php
# for a explanation of possible statements, functions and parameters.
#
# ----------- global configuration parameters ------------------------
debug=3 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=no # (cmd line: -E)
children=4
# Uncomment these lines to enter debugging mode
#fork=no
#log_stderror=yes
#
port=5060
# uncomment the following lines for TLS support
#disable_tls = 0
#listen = tls:your_IP:5061
#tls_verify_server = 1
#tls_verify_client = 1
#tls_require_client_certificate = 0
#tls_method = TLSv1
#tls_certificate = "/usr/local/etc/openser/tls/user/user-cert.pem"
#tls_private_key = "/usr/local/etc/openser/tls/user/user-privkey.pem"
#tls_ca_list = "/usr/local/etc/openser/tls/user/user-calist.pem"
# ------------------ module loading ----------------------------------
#set module path
mpath="/usr/local/lib/openser/modules/"
# Uncomment this if you want to use SQL database
loadmodule "mysql.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "rr.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "mi_fifo.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
loadmodule "auth.so"
#loadmodule "auth_db.so"
loadmodule "auth_radius.so"
loadmodule "group_radius.so"
loadmodule "acc.so"
# ----------------- setting module-specific parameters ---------------
# -- mi_fifo params --
modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
# -- usrloc params --
modparam("usrloc", "db_mode", 0)
modparam("auth_radius|group_radius|acc", "radius_config",
"/usr/local/etc/radiusclient-ng/radiusclient.conf")
modparam("group_radius","use_domain", 0)
modparam("auth_radius", "service_type", 15)
modparam("auth", "secret", "testing123")
modparam("acc", "radius_flag", 1)
modparam("acc", "radius_missed_flag", 2)
modparam("acc", "service_type", 15)
modparam("acc", "radius_extra",
"User-Name=$fU;Sip-Src-IP=$si;Sip-Src-Port=$sp")
# 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
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");
exit;
};
if (msg:len >= 2048 ) {
sl_send_reply("513", "Message too big");
exit;
};
#-------set flag for Radius Accounting
#if (!method=="OPTIONS") setflag(3);
#if (method=="INVITE"){
# log (1, "INVITE MESSAGE RECEIVED - START ACC\n");
# setflag(1);
# setflag(2);
#};
if (method=="BYE"){
log (1, "BYE - STOP ACCOUNTING\n");
setflag(1);
};
if (method=="CANCEL"){
log (1, "CANCEL -STOP ACCOUNTING\n");
setflag(1);
};
# 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()) {
# mark routing logic in request
append_hf("P-hint: rr-enforced\r\n");
route(1);
};
if (!uri==myself) {
# mark routing logic in request
# append_hf("P-hint: outbound\r\n");
# if you have some interdomain connections via TLS
#if(uri=~"@tls_domain1.net") {
# t_relay("tls:domain1.net");
# exit;
#} else if(uri=~"@tls_domain2.net") {
# t_relay("tls:domain2.net");
# exit;
#}
# route(1);
if (method=="ACK") {
route(1);
exit;
}else
if (method=="CANCEL"){
route(1);
exit;
}else
if (method=="INVITE")
{
route(3);
exit;
}else
if (method=="REGISTER")
{
route(2);
exit;
};
lookup("aliases");
if (uri!=myself)
{
route(1);
exit;
};
if (!lookup("location"))
{
sl_send_reply("404","Not User PSTN Found");
exit;
};
route(1);
}
# 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
(!radius_www_authorize("opensersip.test.machine")) {
www_challenge("opensersip.test.machine",
"0");
exit;
};
save("location");
exit;
};
if (method=="INVITE") {
if
(!radius_proxy_authorize("opensersip.test.machine")){
proxy_challenge("opensersip.test.machine","0");
exit;
};
};
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
};
# native SIP destinations are handled using our USRLOC
DB
if (!lookup("location")) {
sl_send_reply("404", "Not SIP User Found");
exit;
};
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
if (!t_relay()) {
sl_reply_error();
};
exit;
}
route[2] {
# Register Message Handler
sl_send_reply("100","Trying");
if (!radius_www_authorize("opensersip.test.machine")) {
www_challenge("opensersip.test.machine", "0");
exit;
};
if (!save("location"))
{
sl_reply_error();
};
}
route[3] {
# Invite Message Handler
# if (!radius_proxy_authorize("opensersip.test.machine")){
# proxy_challenge("opensersip.test.machine","0");
# exit;
# }
# lookup("aliases");
# if (!uri==myself) {
# append_hf("P-hint: outbound alias\r\n");
# route(1);
# };
if (uri=~"^sip:[0-9]{10}@") {
route(4);
exit;
};
if (!lookup("location")) {
if (uri=~"^sip:[0-9]{10}@") {
route(4);
exit;
};
sl_send_reply("404","User not Found");
exit;
};
route(1);
}
route[4] {
rewritehost("172.20.14.32");
route(1);
}
Because I use pua_usrloc I want to apply pua_set_publish() in a REGISTER only
if the user wasn't already registered (in order to avoid new NOTIFY with
just "online" which can substitute the user client real state PUBLISH).
So I need a function to determine if the user is registered. I can't use:
if ( ! lookup("location") { ...
because that function checks the URI in "location" table, and in a REGISTER
message the URI is just:
sip:server
So I need a function to check if the "To:" field ($tu) is registered. Is that
exist? or should I make a custom avp_query and so?
Thanks.
--
Iñaki Baz Castillo
ibc(a)in.ilimit.es
I have 3 patton from 8 channels everyone. I must make the sum of the channels 8+8+8=24. The patton they are connects to with the SER. How to make the switch of the channels when one of the three is saturate?
Thanks.