Hello all,
I have:
UAC ---------- SER ------------ UAS
I have a problem with ACK.
When I send an INVITE, UAS sends a 200 OK and then UAC sends ACK to finalize
the INVITE.
The problem is that SER doesn't reply this ACK from UAC to UAS.
This is my ser.cfg:
route{
# initial sanity checks -- messages with
# max_forwards==0, or excessively long requests
if (!mf_process_maxfwd_header("16")) {
sl_send_reply("483","Too Many Hops");
};
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=="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);
break;
};
if (!uri==myself) {
# 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
(uri=~"^sip:(.+@)?(10\.22\.1\.[0-9]+|(.+@)?(10\.22\.2\.[0-9]+|(.+\.)?T\.local)([:;\?].*)?$"){
# if
(uri=~"^sip:(.+@)?([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+|(.+\.)?T\.local)([:;\?].*)?$"){
if (uri=~"^sip:(.+@)?(.+)([:;\?].*)?$"){
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
# if ((!www_authorize("10.22.1.249", "subscriber"))) {
# www_challenge("10.22.1.249", "0");
# break;
# };
save("location");
break;
};
if (method=="BYE") {
t_relay();
sl_send_reply("200", "OK");
break;
};
if (method=="ACK") {
t_relay();
break;
};
if (method=="CANCEL") {
t_relay();
sl_send_reply("200", "OK");
break;
};
if (method=="INVITE") {
record_route();
};
if ((method=="INVITE")&&(!lookup("location"))) {
record_route();
exec_msg("printenv SRCIP; /bin/bash /usr/local/ser/sbin/script");
sl_send_reply("100", "Trying");
exec_msg("sleep 10");
if (!lookup("location")){
sl_send_reply("100", "Trying");
exec_msg("sleep 10");
} else {
t_relay();
break;
}
if (!lookup("location")){
sl_send_reply("100", "Trying");
exec_msg("sleep 10");
} else {
t_relay();
break;
}
if (!lookup("location")){
sl_send_reply("100", "Trying");
exec_msg("sleep 10");
} else {
t_relay();
break;
}
if (!lookup("location")){
sl_send_reply("100", "Trying");
exec_msg("sleep 10");
} else {
t_relay();
break;
}
if (!lookup("location")){
sl_send_reply("100", "Trying");
exec_msg("sleep 10");
} else {
t_relay();
break;
}
if (!lookup("location")){
sl_send_reply("100", "Trying");
exec_msg("sleep 10");
} else {
t_relay();
break;
}
if (!lookup("location")){
sl_send_reply("404", "Not on-line");
break;
} else {
t_relay();
break;
}
};
if (method=="SUBSCRIBE") {
if (!t_newtran()) {
# log(1, "newtran error\n");
sl_reply_error();
};
handle_subscription("registrar");
break;
};
if (method=="PUBLISH") {
if (!t_newtran()) {
# log(1, "newtran error\n");
sl_reply_error();
};
handle_publish("registrar");
break;
};
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
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
if (!t_relay()) {
sl_reply_error();
};
}
Could someone help me?
Thank you.
Hi,
I am currently using the Openser debian version with mysql. I am quite
impress on the performance of the server but wondering if anyone is
using the system for a call center with different Application running on
different server. Right now my setup is a astguiclient with two server
which depends more on the power of it (mem and processor)...
//jollyr
Hello,
the avpops module was refurbished to benefit better of pseudo-variables.
In addition, the avp and hdr pseudo-variables can have dynamic names.
Here are some details:
- all parameters being avp names in avpops functions MUST be specified
in the same format as pseudo-variables:
- $avp(i:23) - refers to the avp having the integer id 23
- $avp(s:test) - refers to the avp having the name 'test'
- $avp($aliasid) - refers to the avp defined by avp alias 'aliasid'
- example: avp_write("i:10", "$avp(i:30)") - write integer value 10
into the avp having the id 30
- avps and hdrs pseudo-variables can have dynamic names:
-$avp($pvar) refers to the avp having the name the value of $pvar
-$hdr($pvar) refers to the hdr having the name the value of $pvar
- please note that the pseudo-variables specifiers have priority
over avp aliases (if you define an avp alias $ru, $avp(ru) will refer to
the avp having the name the value of R-URI)
- in all parameters of avpops module can be used pseudo-variables where
are expected values
- avp_check("$fd", "eq/$td") returns true if the domain of From uri
is the same with domain part of To uri
- avp_write("$tU", "$avp($fU)") - writes the username in To header
in the avp having the name the username from From header
- avp_pushto() - cannot add anymore headers - same functionality is
provided by the textops module via append_hf() and append_to_reply()
functions
- the format of the first parameter of avp_pushto() follows the
pseudo-variables names as well.
- avp_pushto("$ru[/username|domain]", "...") to rewrite parts of R-URI
- avp_pushto("$du", "...") to rewrite dst_uri
- for developers, internal structure int_str has changed from (int,
str*) to (int,str) to avoid extra reference
- the documentation will be updated soon (module readme and avpops tutorial)
Still to come:
- support for global avps: avps shared between all processes during the
openser lifetime
- support for script avps: avps specific per process with life time only
during the script execution (temporary avps, which do not need to last
too much, using private memory)
- support for local avps: avps specific per process kept during openser
lifetime (avps which need to be kept for each process, without
synchronized access, using private memory)
- avp_db_query() - ability to send a raw query (simple, joins, unions
...) to database and load the result in avps (e.g., avp_db_query("select
first_name, last_name from subscriber where username='$tU' and
domain='$td'", "$avp(first_name);$avp(last_name)"))
Testing and feedback are more than welcome.
Cheers,
Daniel
I have a successful implementation of openser 0.9.5
and its been working very nicely.
I am faced with transferring of calls from pstn to
userC by way of userB and I am struggling.
path:
PSTN=>GW=>SBC=>openser=>uB
uB transfers call to uC
Call is failing to transfer as "refer" message is not
properly handled by my openser script.
Any guidance would be appreciated.
Transfer works when all legs are from registered
clients. Only when the initial call leg is from the
PSTN does it not work.
Thanks, Rock
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
Hey guys. How can you configure SER to associate a particular phone number,
say 12341234, with a particular SIP client/user agent?
The aim is to be able to call them with either john(a)foo.bar or 12341234,
but ensure that SER associates 12341234 with john(a)foo.bar rather than
john(a)foo.bar telling SER "I can be reached at 12341234".
Cheers!
-- Nick
e: nick.hoffman(a)altcall.com
p: +61 7 5591 3588
f: +61 7 5591 6588
If you receive this email by mistake, please notify us and do not make any
use of the email. We do not waive any privilege, confidentiality or
copyright associated with it.
Hello,
I have installed ser-0.9.6 and I was able to make calls. But when I make the call logs using log() and xlog() functions, value of the timestamp that comes in the log is found to be different from the actual timestamp.
I used (%Ts,%Tf) parameters in xlog() function to create the log. Is there any way I can log the call disconnect time?
Thanks & Regards,
"Research is what I'm doing when I don't know what I'm doing."
Binu V B
Trikon Electronics Pvt Ltd
Hey guys, so I've been doing lots of reading up on how SER works, but I
haven't found all that much information how SER deals with CDRs.
[How] can CDRs be stored in a database?
[How] can CDRs be sent to another running process in realtime?
Thanks!
-- Nick
e: nick.hoffman(a)altcall.com
p: +61 7 5591 3588
f: +61 7 5591 6588
If you receive this email by mistake, please notify us and do not make any
use of the email. We do not waive any privilege, confidentiality or
copyright associated with it.
I get this response
/usr/libexec/ipsec/eroute: NETKEY does not support eroute table.
Im using kernel 2.6.15
Thanks
_____
De: users-bounces(a)openswan.org [mailto:users-bounces@openswan.org] En nombre
de Christophe Ngo Van Duc
Enviado el: Viernes, 10 de Febrero de 2006 02:19 p.m.
Para: users(a)openswan.org
Asunto: Re: [Openswan Users] Openswan VPN MOnitor
Wouldn't "ipsec eroute" gives you this information ?
On 2/10/06, Fernando Rodriguez <frod(a)aitelecom.net> wrote:
Hello,
Is there any way to see witch tunnels are up using a simple command like the
ipsek look thar works on the 2.4 kernels now im using 2.6 and I don't find a
way to know if the connection is up or down ..
Thanks
Fernando Rodriguez V.
_______________________________________________
Users mailing list
Users(a)openswan.org
http://lists.openswan.org/mailman/listinfo/users
hi
ser users....
any one can help me ....
I am ser user. My requirement is to farward rtp streams to multiple user
agents which are
interested to stablish media session (i.e sending 200 OK ).
with regards
manoj