i based my reasoning regarding the need to add record route only to the
initial request to this text in rfc3261. i guess the proxy may add
record route to any request, but since it doesn't have any effect to the
dialog state, i don't see a point of doing it.
-- juha
12.2 Requests within a Dialog
Requests within a dialog MAY contain Record-Route and Contact header
fields. However, these requests do not cause the dialog s route set to
be modified, although they may modify the remote target URI. Specifi-
cally, requests that are not target refresh requests do not modify the
dialog s remote target URI, and requests that are target refresh
requests do. For dialogs that have been established with an INVITE, the
only target refresh request defined is re-INVITE (see Section 14). Other
extensions may define different target refresh requests for dialogs
established in other ways. Note that an ACK is NOT a target refresh
request. Target refresh requests only update the dialog s remote target
URI, and not the route set formed from the Record-Route. Updating the
latter would introduce severe backwards compatibility problems with RFC
2543-compliant systems.
Use the alternative SER Media proxy which runs without recompilation
(SER stable version only)
http://SERMediaProxy.dns-hosting.info/
---
Adrian Georgescu
www.ag-projects.com
Message: 11
Date: Sat, 10 Jan 2004 21:48:11 -0300
From: rfrez(a)vtr.net
Subject: [Serusers] Problems compiling main.c 1.2 RTPPROXY
To: serusers(a)lists.iptel.org
Message-ID: <3FE9489100021E5B(a)hudson.vtr.net>
Content-Type: text/plain; charset="ISO-8859-15"
Im unable to compile, because send a warning about a :
"sa_len is not defined in structure (socketaddr)"
Im using Suse 9, maybe Im missing some libs, or need an update???
Im unable to compile, because send a warning about a :
"sa_len is not defined in structure (socketaddr)"
Im using Suse 9, maybe Im missing some libs, or need an update???
Hi,
I have problem installing and run the STUN server. Error as below:~
# service stund start
Starting /usr/sbin/stund: Port 10000 for receiving UDP is in use
Port 10001 for receiving UDP is in use
stund: stun.cxx:365: void stunServer(StunAddress, StunAddress, bool):
Assertion `myFd != INVALID_SOCKET' failed.
[FAILED]
# /usr/sbin/stunq sipserver.com:5060
Internet connection is type: Blocked
Please advice why the service when start have problem. and why the internet
connection is blocked?
Please help and any ways to encounter the problem of symmetical NAT and Full
cone NAT, when my user is behind the Symmetrical firewall there is one way
audio but for full cone NAT is okie. any solution to this problem?
Thank you in advance....
regards,
shirley
Hi to all,
i have to implement the call transfer service for our offices using SER.
We have a PSTN gateway (cisco 3725) that receive calls from PSTN to out VOIP
equipments. I have already implemented an interface to let the user to
activate the CFU and set it in a database.
I made an external script to check this database (made in php). If is the CFU
it active it rewrite the uri with the new destination number.
Now i have accomplished to all work but i don't know how to make an IF
statement based on a result of an esternal script i.e.:
if(external_script==1) do the rewriting;
else continue with the traversal of the rules.
I need to do this in this way becouse after this check i have other rules that
manage outgoing calls from VOIP so i need that if the CFU is not active the
next rule have to be checked to determine the real destination address.
After this i have another problem:
If the call transfer is active the source number is leaved as is and the
central Phone Switch do not allow to pass that number as source number, so it
keep the default number (or anonymous) to originate the call. This becouse
being on the client side we cannot generate the calls with all the source we
want.
I place the example:
A) Calling number: 123456 (from PSTN)
B) Called Number: 555555 (on VOIP)
C) Transferred number : 999999 (on PSTN selected by VOIP user 555555 to
transfer the call to)
D) Default Number of the PRI : 111111
I am the user B and activate the call transfer to C.
A call come from A to B.
The SIP proxy receive the call and change the destination from B to C and
mantain the source as A.
When the Cisco generate the call to C it keep as source A and destination C.
The problem is that A is not allowed as outgoing number from the PRI in this
way the switch take the default number D as source and the customer on C see
the D number as originator.
This is not a wanted behaviour becouse the user is not able to know he is
calling him.
I know that there is a way to change the answer of SIP to insert B as source
and C as destination and A as CC-Diversion in the sip request.
In this way the cisco will put in the ISDN setup the redirecting number A and
the switch box will interpret it as source.
I have not so much experience in SIP Proxy to do it.
I hope someone can help me.
thanks,
regards particularly to Ulrich that helped me a lot in the past.
Bye,
MArcello
Hello,
is there a piece of software which will connect a SIP Proxy to
a H323 Gatekeeper/Softswitch?
We want to route SIP calls into a H323 network for PSTN termination
and and call routing to H323 endpoints within the H323 network.
We are currently testing Vovidas siph323csgw but with no avail.
Has anyone a similiar setup? If yes, which software youre using?
best regards,
Arnd
Hi,
Has anyone tried SER with SIPH323 protocol translator from sipquest.com? for making SIP->H323 calls and viceversa. If anybody has tried, could you tell how to configure SER to work properly with SIPH323?. I get error messages in SER while I call from SIP->Cisco skinny phones.
Thanks,
balaji
I cant make registration with a sip client... my server doesnt throw errors...
and is running, but I cant make a registration... here is my ser.cfg:
I have one user : serctl add rfrez rfrezpwd rfrez(a)email.net
and I tested with windows messenger with rfrez(a)172.16.6.84 as account,
and 172.16.6.84 as server with udp
------
#
# $Id: ser.cfg,v 1.21.4.1 2003/11/10 15:35:15 andrei Exp $
#
# simple quick-start config script
#
# ----------- 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=no
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"
# ------------------ 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)
modparam("usrloc", "db_url","sql://ser:heslo@localhost/ser")
# -- auth params --
# Uncomment if you are using auth module
#
modparam("auth_db", "db_url","sql://ser:heslo@localhost/ser")
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="172.16.6.84"
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
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=~"172.16.6.84") {
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
if (!www_authorize("172.16.6.84", "subscriber")) {
www_challenge("172.16.6.84", "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();
};
}