Hi everybody,
does somebody know if the iptelorg GmbH is still existent.Visited their homepage www.iptelorg.com and it look pretty unmaintained to me.
Is there any other company in Germany who offers support & installation services for SER?
Best regards,
Sebastian
P.S. Congrats to iptel.org for their new homepage, will look closer at it tommorow :-)
> -----Ursprüngliche Nachricht-----
> Von: Sebastian Gabris <Sebastian.Gabris(a)web.de>
> Gesendet: 11.08.06 16:21:36
> An: ratif(a)burraqtel.com.p, serusers(a)iptel.org
> Betreff: [Serusers] ser SDP rewrite problem, rtpproxy is not working !!!
> Hi,
>
> got also this problem, did you find a solution?
>
> Sebastian
>
> hello there,
>
> I am working on SER with two network interfaces.
>
> EP1--------------->(172.16.16.160) SER (192.168.5.1) -------------> EP2
>
> what happens, SER receives invite from EP1, it reinitiates invite for
> EP2. now what it does is that it writes the external IP i.e.
> 172.16.16.160 in the SDP contact info, where as it should be the
> internal one i.e. 192.168.5.1 ...
> now I want to overwrite the SDP contact info in that invite. I have got
> two options to do it one option is to use force_rtp_proxy("ei",
> "192.168.5.1") or use sdp_mangle_ip() function of mangler.so . but they
> are not working for me. when I play around with force_rtp_proxy function
> rtpproxy get crashed and sdp_mangle_ip() is not behaving properly ......
> whats your experience ?
>
> I have used ser-0.8.14 and now using ser-0.9.0 with cvs rtpproxy. I am
> running rtpproxy like
> rtpproxy -s udp:192.168.5.1 -l 172.16.16.160
> and I am using this line in ser.cfg
> modparam("nathelper", "rtpproxy_sock", "udp:192.168.5.1")
>
> I am really stucked please help !!!!
>
> thanking you
>
> regards,
> --
> Atif
> ______________________________________________________________
> Verschicken Sie romantische, coole und witzige Bilder per SMS!
> Jetzt bei WEB.DE FreeMail: http://f.web.de/?mc=021193
>
> _______________________________________________
> Serusers mailing list
> Serusers(a)lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
______________________________________________________________
Verschicken Sie romantische, coole und witzige Bilder per SMS!
Jetzt bei WEB.DE FreeMail: http://f.web.de/?mc=021193
Dear All
I have a problem about the alias call
When I use my PC and hardphone (cisco7960) , I can call someone by alias name
But, It can't if I use the NB or use other PCs,
Could anyone help me?
thanks
AR.
Hi all,
I cannot register as new user. The reply email from iptel has a different username but my password(from the registration formular) in it.
Tried it two times, and got two different usernames as reply.
Also if I tried to login with my email-address instead of username but it didnt work.
best regards,
Sebastian
> -----Ursprüngliche Nachricht-----
> Von: "Greger V. Teigre" <greger(a)teigre.com>
> Gesendet: 16.08.06 14:59:10
> An: sip <sip(a)arcdiv.com>
> CC: serdev(a)iptel.org, serusers(a)iptel.org, serusers-bounces(a)lists.iptel.org
> Betreff: Re: [Serusers] IMPORANT ANNOUNCEMENT: Launch of new iptel.org site!!
sip wrote:
> I actually just happened to hit the main site yesterday and noticed the
> change. Much glitzier looking, although it's going to take me a little time to
> get used to the new layout.
> ;-) at least there is no flash...
> One thing I didn't notice on there (perhaps because I just missed it) was a
> link to the CVS repository to browse. Not a huge deal, it just used to be nice
> to browse the READMEs for the modules (since the documentation hasn't all been
> in once place).
> Good point! Feel free to add it!
> Maybe here?!
> http://www.iptel.org/doc
>
> There is a need to do something about the module documentation. The
> xml-based based documentation is a bit hard to maintain and I don't
> think anybody has really gotton used to it. One suggestion is to move
> the authoritative module documention to the new iptel.org site and keep
> them maintained there. It will then be easier to maintain, more easily
> accessible, and we can keep documentation for different versions easily
> accessible.
>
> I'm looking forward to seeing the future of SER.
> Me too!
> g-)
>
>
> N.
> On Wed, 16 Aug 2006 09:50:09 +0200, Greger V. Teigre wrote
>
>
> Dear all!
> We are doing this the soft way: Launching when everybody is on vacation :-D
> We have for some time now been working on putting up a new community-based framework for the iptel.org open source projects. Our aim is to step-wise address lack of documentation, roadmap,
> release plans, transparent management and so on.
> The new http://iptel.org/ site contains quite a lot of content. There is still plenty to migrate from the old iptel.org site,
> ONsip.org, as well as better organize documentation around SER development and releases. You can help out with that by adding a small FAQ, how-to, copy something from ONsip.org that you found particularly helpful and so on!
> We have created some basic content that we hope you will help comment and develop further. Here are some pointers to content on the new site:
> ========================================
> About the new site and how to contribute content
> http://www.iptel.org/iptelorgsite/intro
> How to get started with SER?
> http://www.iptel.org/ser/using
> Overview of documentation
> http://www.iptel.org/doc
> The old ONsip.org Getting Started document
> http://www.iptel.org/ser/doc/gettingstarted
> Contributed modules and patches
> http://www.iptel.org/ser/contributions
> A beginning skeleton for a roadmap
> http://www.iptel.org/ser/roadmap
> A wishlist for future versions
> http://www.iptel.org/ser/wishlist
> Release policies
> http://www.iptel.org/ser/development/release_policies
> ======================================================
> Below is the launch announcement.
> Best regards,
> Greger Teigre
> g-)
> ---------------------------------------------------------
> The new http://iptel.org/, home of SER, SEMS, and SERWeb is now up. If you have an account from ONsip.org, you can log in using your old ONsip.org username/password. However, all content is available without registration.
> The new site is supported by the joint efforts of the iptel.org and ONsip.org teams. Our aim is to dramatically improve the project communication, documentation, and development process. The start is already up there, and we have many plans. The best thing of all: The new http://iptel.org site is a great basis for contributions from anyone.
> We are working on migrating and organizing the remaining content from the old site, but meanwhile you can access everything from the old site from http://dog.iptel.org/
> We look forward to a revitalised SER open source project!
> _______________________________________________
> Serusers mailing list
> Serusers(a)lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
>
>
>
>
>
> -----------------------------------------------------------------
> _______________________________________________
> Serusers mailing list
> Serusers(a)lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
>
______________________________________________________________
Verschicken Sie romantische, coole und witzige Bilder per SMS!
Jetzt bei WEB.DE FreeMail: http://f.web.de/?mc=021193
Hello
Is permitted to mix the two via forms (normal form and compact form) in one SIP message?
For example i have an INVITE with this VIA's :
INVITE sip:005623341876@10.0.0.67:5060 SIP/2.0
Record-Route: <sip:10.0.0.36;ftag=2179110362;lr=on>
Record-Route: <sip:10.0.0.35;ftag=2179110362;lr=on>
Via: SIP/2.0/UDP 10.0.0.36;branch=z9hG4bK58f4.cdc602d2.0
Via: SIP/2.0/UDP 10.0.0.35;branch=z9hG4bK58f4.83fe5745.0
v: SIP/2.0/UDP 64.76.148.234:5060;branch=z9hG4bK2881566366
....
If the answer is yes where can i found some documents to support this information?
Thanks again!
Best Regards,
Ricardo Martinez.-
Howdy!
How can I get rid of the tel: number crap on the end
of a RURI like the one in the header? When I do my enum lookup
it is failing, because it is looking up
+5555;npdi=yes
when I want it to look up
+5555
Any advice from the wise would be greatly appreciated!
Thanks,
---greg
--
Greg Fausak
greg(a)thursday.com
Hi
I am migrating OpenSER v1.0.9 to v1.1.0 using the config file I send
below that works perfect in 1.0.9 and I modified to run in 1.1.x ,
I´ve just needed to change naming schema in parameter given to
exported functions of avpops module to run without errors in this new
version but when running can´t see basic logs and can´t register any
client even if I install DB schema and create subscriber using its
openserctl , ngrep just show me a 'forbidden' message but dont know
why, please someone send me some advice.
thanks
rafael
# ----------------- global configuration parameters --------------------
debug=4
fork=yes
log_stderror=yes
listen=192.168.2.136 # OPENSER IP ADDRESS HERE
port=5060
# Hostname matching an alias will satisfy the condition uri==myself".
# alias=mydomain.com.pe:5060
# alias=mydomain.com.pe
alias=192.168.2.136:5060
alias=192.168.2.136
check_via=yes # (cmd. line: -v)
children=4
dns=no
rev_dns=no
fifo="/tmp/openser_fifo"
# fifo="FIFO"
fifo_mode=0666 # Fifo permissions can be changes from here.
fifo_db_url="mysql://dbuser:dbpass@dbt2.mydomain.com.pe/openser"
# -----------------------------------------------------------------------
loadmodule "/usr/local/lib/openser/modules/mysql.so"
loadmodule "/usr/local/lib/openser/modules/sl.so"
loadmodule "/usr/local/lib/openser/modules/tm.so"
loadmodule "/usr/local/lib/openser/modules/rr.so"
loadmodule "/usr/local/lib/openser/modules/maxfwd.so"
loadmodule "/usr/local/lib/openser/modules/usrloc.so"
loadmodule "/usr/local/lib/openser/modules/registrar.so"
loadmodule "/usr/local/lib/openser/modules/group.so"
loadmodule "/usr/local/lib/openser/modules/auth.so"
loadmodule "/usr/local/lib/openser/modules/auth_db.so"
loadmodule "/usr/local/lib/openser/modules/uri.so"
loadmodule "/usr/local/lib/openser/modules/uri_db.so"
## loadmodule "/usr/local/lib/openser/modules/mediaproxy.so"
loadmodule "/usr/local/lib/openser/modules/nathelper.so"
loadmodule "/usr/local/lib/openser/modules/textops.so"
loadmodule "/usr/local/lib/openser/modules/avpops.so"
loadmodule "/usr/local/lib/openser/modules/domain.so"
loadmodule "/usr/local/lib/openser/modules/permissions.so"
loadmodule "/usr/local/lib/openser/modules/acc.so"
loadmodule "/usr/local/lib/openser/modules/uac_redirect.so"
loadmodule "/usr/local/lib/openser/modules/diversion.so"
# -----------------------------------------------------------------------
modparam("auth_db|permissions|group|uri_db|usrloc", "db_url",
"mysql://dbuser:dbpass@dbt2.mydomain.com.pe/openser")
modparam("auth_db", "calculate_ha1", 1)
modparam("auth_db", "password_column", "password")
modparam("nathelper", "natping_interval", 30)
modparam("nathelper", "ping_nated_only", 1)
modparam("nathelper", "rtpproxy_sock", "unix:/var/run/rtpproxy.sock")
modparam("usrloc", "db_mode", 2)
modparam("registrar", "nat_flag", 6)
modparam("rr", "enable_full_lr", 1)
modparam("tm", "fr_inv_timer", 27)
modparam("permissions", "db_mode", 1)
modparam("permissions", "trusted_table", "trusted")
modparam("avpops", "avp_url",
"mysql://dbuser:dbpass@dbt2.mydomain.com.pe/openser")
modparam("avpops", "avp_table", "usr_preferences")
# ------------- Mysql Accounting parameters
modparam("acc", "log_flag", 1)
modparam("acc", "log_level", 2)
modparam("acc", "db_flag", 1)
modparam("acc", "db_missed_flag", 3)
modparam("acc", "log_missed_flag", 3)
modparam("acc", "db_url", "mysql://dbuser:dbpass@dbt2.mydomain.com.pe/openser")
modparam("acc", "report_ack", 0) # 1 reporta dos starts en acc (para
INVITE y ACK)
modparam("acc", "log_fmt", "miocfsputdr")
modparam("acc", "detect_direction", 1) # only in 1.1.x or cvs
modparam("acc", "multi_leg_enabled", 1)
modparam("acc", "src_leg_avp_id", 110)
modparam("acc", "dst_leg_avp_id", 111)
# ------------- Domain parameters
modparam("usrloc", "use_domain", 1)
modparam("auth_db", "use_domain", 1)
modparam("registrar", "use_domain", 1)
modparam("domain", "db_mode", 1)
modparam("domain", "domain_table", "domain")
modparam("domain", "domain_col", "domain")
# -------------------------------------------------------------------------
route {
# log(1, "-------------------------------------------------------\n");
# log(1, "entering main loop\n");
## populate the avps (for Multi call leg accounting):
if (!method=="REGISTER" && !method=="NOTIFY") {
avp_write("$from/username", "$avp(i:110)");
avp_write("$ruri/username", "$avp(i:111)");
};
# set flag for Missed calls for Accounting:
if (!method=="OPTIONS") setflag(3);
if (method=="INVITE") {
log(1, " INVITE MESSAGE RECEIVED - START ACC\n");
};
if (method=="BYE") {
log (1, " BYE MESSAGE RECEIVED - STOP ACCOUNTING\n");
};
if (method=="CANCEL") {
log (1, " CANCEL MESSAGE RECEIVED - STOP ACCOUNTING\n");
};
if (method=="OPTIONS") {
log(1, " OPTIONS MESSAGE RECEIVED\n");
return; #Do Nothing for 'Options'
};
# -----------------------------------------------------------------
# Sanity Check Section
# -----------------------------------------------------------------
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483", "Too Many Hops");
return;
};
if (msg:len > max_len) {
sl_send_reply("513", "Message Overflow");
return;
};
# -----------------------------------------------------------------
# Handle NOTIFY requests from Sipura's to keep-alive NAT
# -----------------------------------------------------------------
if ((is_method("NOTIFY")) && (! uri=~"sip:.*[@]+.*")) {
sl_send_reply("200", "OK keep-alive");
log(1, " OK keep-alive\n");
return;
};
# -----------------------------------------------------------------
# Only allow known sip messages
# -----------------------------------------------------------------
if (!is_method("INVITE|REGISTER|BYE|NOTIFY|ACK|CANCEL|REFER|SUBSCRIBE"))
{
sl_send_reply("501", "Not implemented here");
log(1, " 501 - Not implemented here\n");
return;
};
# -----------------------------------------------------------------
# SUBSCRIBE cleanup
# -----------------------------------------------------------------
if (is_method("SUBSCRIBE")) {
replace(" talk", "talk");
};
# -----------------------------------------------------------------
# Record Route Section
# -----------------------------------------------------------------
if (method=="INVITE" && nat_uac_test("19")) {
# OPENSER IP ADDRESS OR DOMAIN HERE:
record_route_preset("192.168.2.136:5060;nat=yes");
setflag(1); ## Set Flag 1 for Acc: test from this location!!
} else if (method!="REGISTER") {
record_route();
};
# -----------------------------------------------------------------
# Call Tear Down Section
# -----------------------------------------------------------------
if (method=="BYE" || method=="REFER" || method=="CANCEL") {
unforce_rtp_proxy();
setflag(1); ### Set Flag 1 for Acounting
};
# -----------------------------------------------------------------
# Loose Route Section
# -----------------------------------------------------------------
if (loose_route()) {
if (has_totag() && (method=="INVITE" || method=="ACK")) {
if (nat_uac_test("19")) {
setflag(7);
force_rport();
fix_nated_contact();
};
force_rtp_proxy("l");
};
route(1);
return;
};
# -----------------------------------------------------------------
# Call Type Processing Section
# -----------------------------------------------------------------
if (!is_uri_host_local()) {
if (is_from_local() || allow_trusted()) {
route(4);
route(1);
} else {
sl_send_reply("403", "Forbidden");
};
return;
};
if (method=="CANCEL") {
route(1);
return;
} else if (method=="INVITE") {
setflag(1); # Set Flag for Acounting
route(3);
return;
} else if (method=="REGISTER") {
route(2);
return;
};
lookup("aliases");
if (uri!=myself) {
route(4);
route(1);
return;
};
if (!lookup("location") && !method=="ACK") {
if (does_uri_exist()) {
log(1, " uri_exist but its Temporarily
Unavailable 1 \n");
route(7); # To Voicemail
return;
} else {
log(1, " unable to locate user - User
Not Exist 1 \n");
sl_send_reply("404", "User Not Exist");
acc_db_request("404 User Not Exist", "missed_calls");
return;
};
};
route(1);
}
route[1] {
# -----------------------------------------------------------------
# Default Message Handler
# -----------------------------------------------------------------
t_on_reply("1");
if (!t_relay()) {
if (method=="INVITE" || method=="ACK") {
unforce_rtp_proxy();
};
sl_reply_error();
};
}
route[2] {
# -----------------------------------------------------------------
# REGISTER Message Handler
# -----------------------------------------------------------------
sl_send_reply("100", "Trying");
if (is_user_in("from", "desactivado")) {
sl_send_reply("402", "desactivada temporalmente");
log(1," Cta. desactivada temporalmente \n");
return;
};
if (!search("^Contact:[ ]*\*") && nat_uac_test("19")) {
setflag(6);
fix_nated_register();
force_rport();
};
if (!www_authorize("","subscriber")) {
log(1," Fails to Register \n");
www_challenge("","0");
return;
};
if (!check_to()) {
log(1," Unauthorized registration attempt \n");
sl_send_reply("401", "Unauthorized");
return;
};
consume_credentials();
log(1," Registered! \n");
if (!save("location")) {
sl_reply_error();
};
}
route[3] {
# -----------------------------------------------------------------
# INVITE Message Handler
# -----------------------------------------------------------------
log(1," route[3]---> INVITE Message Handler \n");
if ( allow_trusted() ) log(1, " Call from pstn or *pbx, no
authentication is required. \n");
if (!allow_trusted()) {
if (!proxy_authorize("","subscriber")) {
proxy_challenge("","0");
return;
} else if (!check_from()) {
sl_send_reply("403", "Use From=ID");
log(1, " Sorry, only registered users
are allowed \n");
return;
};
consume_credentials();
};
append_rpid_hf();
# some digits rules here....
lookup("aliases");
if (!is_uri_host_local()) {
route(4);
route(1);
return;
};
if (nat_uac_test("19")) {
setflag(7);
force_rport();
};
# -----------------------------------------------------------------
# to PSTN Routes!!!
# -----------------------------------------------------------------
route(6); # To PSTN & LDI Routes block!!!
# -----------------------------------------------------------------
if ( is_uri_host_local() ) {
# (Is he in the voicemail group?) -- determine it now
and store it in
# flag 4, before we rewrite the flag using UsrLoc:
if (is_user_in("Request-URI", "voicemail")) {
log(1, " requested user is in voicemail
group \n");
setflag(4);
};
# if user is on-line and is in Voicemail group, enable
redirection
# Pendiente: # ver como meter voicemail al avp junto a
las otras funciones...
if (method == "INVITE" && isflagset(4)) {
log(1, " invite for voicemail
user->initiate failureroute[1]\n");
t_on_failure("1");
};
# flag 22 determines if we need to call the
append_branch() for Blind CallFwd.
if (avp_db_load("$ruri/username", "$avp(s:callfwd)")) {
setflag(22);
avp_pushto("$ruri", "$avp(s:callfwd)");
route(6);
return;
};
# native SIP destinations are handled using our USRLOC DB:
if (!lookup("location") ) {
if (does_uri_exist()) {
log(1," uri_exist but its
Temporarily Unavailable 2 \n");
route(7); # To Voicemail
return;
} else {
log(1," Unable to locate
xcompany user - User Not Exist 2X \n");
prefix("iu"); ## in asterisk: iu:
exten => _iu1780XXXX,1,Playback(invalid,noanswer)
acc_db_request("404 User Invalid",
"missed_calls");
rewritehostport("192.168.2.131:5070");
t_relay();
return;
};
};
# t_on_failure() informs SER that we want to perform
special handling when a failure condition occurs.
# Failure conditions in this context refer to 4xx and
5xx response codes.
# By setting t_on_failure(1) before calling t_relay(),
oSER will pass control to the failure_route[1]
t_on_failure("1");
route(4);
route(1);
};
}
route[4] {
# -----------------------------------------------------------------
# NAT Traversal Section
# -----------------------------------------------------------------
### First check and resetflags if UAS are behind the same NAT
system: ###
if (isflagset(6) && isflagset(7)){
log(2, " Both Clients are behind NAT");
# Store the destination domain into an AVP
avp_printf("$avp(i:450)", "$dd");
if (avp_check("$avp(i:450)", "eq/$src_ip/g")){
log(3, " Detected Two Clients Behind the
Same NAT - Disabling Mediaproxy");
# Do not use media-proxy as the clients seem
to be behind the same NAT
resetflag(6);
resetflag(7);
};
};
if (isflagset(6) || isflagset(7)) {
if (!isflagset(8)) {
setflag(8);
force_rport();
fix_nated_contact();
force_rtp_proxy();
};
};
}
route[5] {
# -----------------------------------------------------------------
# ILD - PSTN Handler
# -----------------------------------------------------------------
# Forward international calls to Asterisk (a SIP LDI Providers):
if(uri=~"^sip:011"){
log(1, " 011N match - Larga Distancia Internacional a USA \n");
if (!is_user_in("from", "ldiusa")) {
log(1," No permission for international
calls to USA \n");
sl_send_reply("403", "No permission for
international calls to USA");
acc_db_request("403 Forbidden", "missed_calls");
return;
};
strip(2);
};
if(uri=~"^sip:011"){
log(1," 011N match - Larga Distancia Internacional \n");
if (!is_user_in("from", "ldix")) {
log(1, " No permission for
international calls \n");
sl_send_reply("403", "No permission
for international calls");
acc_db_request("403 Forbidden", "missed_calls");
return;
};
};
rewritehostport("192.168.2.137:5070"); # Asterisk or PSTN
GATEWAY IP ADDRESS
t_on_failure("1");
route(4);
route(1);
}
route[6] {
# ----------------- Free Calls -------------------
# To Info numbers 102, 104, 123 y 080011236
if(uri=~"^sip:102@" || uri=~"^sip:104@" ||
uri=~"^sip:123@" || uri=~"^sip:0800123456@"){
log(1," To CallCenter xcompany!! \n");
rewriteuri("sip:123456@mydomain.com.pe");
rewritehostport("callcenter.mydomain.com.pe:5060");
route(4);
route(1);
return;
};
if (is_user_in("from", "restringido")) {
sl_send_reply("402", "Restriccion temporal");
log(1," 402 - Restriccion temporal \n");
acc_db_request("402 Restricted", "missed_calls");
return;
};
lookup("aliases");
if (!is_uri_host_local()) {
if (!isflagset(22)) {
append_branch();
};
route(4);
route(1);
return;
};
# -------------------------- Seccion de Rutas a LDI
----------------------------------------
# Forward international calls to Asterisk (To SIP LDI Providers):
if (uri=~"^sip:011[0-9]*@" && !uri=~"^sip:01152*@") {
route(5);
return;
};
if( uri=~"^sip:[2-8][0-9]{6}@" || uri=~"^sip:1[2-8][0-9]{6}@"
|| uri=~"^sip:01[2-8][0-9]{6}@" ) {
log(1, " A Fijos Mexico PSTN \n");
if (uri=~"^sip:01[2-8][0-9][0-9][0-9][0-9][0-9][0-9]@") {
strip(1);
};
if (uri=~"^sip:[2-8][0-9][0-9][0-9][0-9][0-9][0-9]@") {
prefix("1");
};
if (!is_user_in("from", "fijomexico")) {
sl_send_reply("403", "No permission for local
fixed calls");
log(1, " 403 - No permission for local
fixed calls \n");
acc_db_request("403 Forbidden", "missed_calls");
return;
};
rewritehostport("192.168.2.137:5070");
prefix("52");
route(4);
route(1);
return;
};
# no existe? (debe ir al final siempre)
if ( uri=~"^sip:[0-9]" && !does_uri_exist() ) {
log(1, " Unable to locate route for this dnid -
User Not Exist 3X \n");
prefix("mc");
acc_db_request("404 Number Invalid or Incomplete",
"missed_calls");
rewritehostport("192.168.2.131:5070");
t_relay();
return;
};
}
route[7] {
# ---------------------- Handling of Unavailable user
----------------------
# non-Voip -- just send "off-line"
if (!(method=="INVITE" || method=="ACK" || method=="CANCEL" ||
method=="BYE" || method=="OPTIONS")) {
sl_send_reply("404", "Not Found");
acc_db_request("404 Not Found", "missed_calls");
log(1, " 404 Not Found & non-Voip -- just send
off-line \n");
return;
};
# Not voicemail subscriber:
if (!isflagset(4) && !method=="OPTIONS" && !method=="ACK" &&
!method=="BYE" && !method=="CANCEL") {
#sl_send_reply("404", "Not Found and no VMail turned on");
acc_db_request("480 Temporarily Unavailable", "missed_calls");
# A locucion (Usuario temporalmente fuera de servicio
'ss-noservice');
log(1, " 404 Not Found and no voicemail \n");
prefix("fu"); ## su: exten =>
_su1780XXXX,1,Playback(ss-noservice,noanswer)
rewritehostport("192.168.2.131:5070");
t_relay();
return;
};
# forward to voicemail adding prefix to simplify asterisk
"extension.conf" ::
if (isflagset(4) && !method=="OPTIONS" && !method=="ACK" &&
!method=="BYE" && !method=="CANCEL") {
prefix("vm");
acc_db_request("480 Temporarily Unavailable -> Vm",
"missed_calls");
rewritehostport ("192.168.2.131:5070");
t_relay();
return;
};
}
# --------------------------------------------------------------------------
onreply_route[1] {
if ((isflagset(6) || isflagset(7)) &&
(status=~"(180)|(183)|2[0-9][0-9]")) {
if (!search("^Content-Length:[ ]*0")) {
force_rtp_proxy();
};
};
if (nat_uac_test("1")) {
fix_nated_contact();
};
}
failure_route[1] {
if (t_check_status("487")) {
return;
};
if (t_check_status("486")){
prefix("vmb");
acc_db_request("486 Busy -> Vm", "missed_calls");
rewritehostport ("192.168.2.131:5070");
append_branch();
t_relay();
return;
};
if (t_check_status("408")){
prefix("vmu");
acc_db_request("408 Timeout -> Vm", "missed_calls");
rewritehostport ("192.168.2.131:5070");
append_branch();
t_relay();
return;
};
unforce_rtp_proxy();
}
failure_route[2] {
# handle 302 redirects
if (t_check_status("3[0-9][0-9]")) {
get_redirects("*");
t_relay();
};
}
### The End ###
Hello.
My main configuration is based on the ser.cfg from the issue 5 plus some modifications included by me. Beside that i'm using
version: ser 0.9.3 (i386/linux)
flags: STATS: Off, USE_IPV6, USE_TCP, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535
@(#) $Id: main.c,v 1.197 2004/12/03 19:09:31 andrei Exp $
main.c compiled on 11:03:37 Dec 22 2005 with gcc 3.2
I have a question regarding to sending a CANCEL message for an INVITE from a NAT'd endpoint. As far as i know the force_rport() command adds the received IP port to the top most via header in the SIP message, this enables subsequent SIP message to return to the proper port later on in a SIP transaction. My problem is that for a CANCEL message coming from a NAT'd endpoint this command seems not to be working. This is the scenario.
NAT'd endpoint : 200.100.100.248
SER : 200.100.100.246
SER-2 : 200.100.100.36
GW : 200.100.100.69
The NAT'd endpoint send an INVITE to the proxy, but then in the middle of the transaction decide to CANCEL the request.
As you can see in the "cancel_debug.txt" file included on this mail, the CANCEL message does not contain the "rport" in the Via header, so it seems to be routed back to the default sip port (5060). Is there a way to force the rport in a CANCEL? for a enpoint unable to put the rport by itself?
I want to do this according to the onsip document, in a compatible way..
Anyway i made a little test including a force_rport(); in the CANCEL handler
..........
# -----------------------------------------------------------------
# Record Route Section
# -----------------------------------------------------------------
if (method=="INVITE" && client_nat_test("3")) {
# INSERT YOUR IP ADDRESS HERE
record_route_preset("200.100.100.246:5060;nat=yes");
} else if (method!="REGISTER") {
record_route();
};
# -----------------------------------------------------------------
# Call Tear Down Section
# -----------------------------------------------------------------
if (method=="BYE" || method=="CANCEL") {
end_media_session();
setflag(1);
};
# -----------------------------------------------------------------
# Loose Route Section
# -----------------------------------------------------------------
if (loose_route()) {
if (has_totag() && (method=="INVITE" || method=="ACK")) {
if (client_nat_test("3")||search("^Route:.*;nat=yes")){
setflag(6);
use_media_proxy();
};
};
route(1);
break;
};
# -----------------------------------------------------------------
# Call Type Processing Section
# -----------------------------------------------------------------
if (!is_uri_host_local()) {
if (is_from_local() || allow_trusted()) {
route(4);
route(1);
} else {
sl_send_reply("403", "Forbidden");
};
break;
};
if (method=="CANCEL") {
force_rport();
route(1);
break;
} else if (method=="INVITE") {
route(3);
break;
} else if (method=="REGISTER") {
route(2);
break;
} else if (method=="ACK") {
route(1);
break;
};
lookup("aliases");
if (uri!=myself) {
route(4);
route(1);
break;
};
if (!lookup("location")) {
sl_send_reply("404", "User Not Found");
break;
};
route(1);
this solve my problem but it seems not to be so accurate.
I hope that someone can help me
Thanks!
Ricardo Martinez.-
<<cancel_debug.txt>>
Dear all!
We are doing this the soft way: Launching when everybody is on vacation :-D
We have for some time now been working on putting up a new
community-based framework for the iptel.org open source projects. Our
aim is to step-wise address lack of documentation, roadmap, release
plans, transparent management and so on.
The new http://iptel.org/ site contains quite a lot of content. There
is still plenty to migrate from the old iptel.org site, ONsip.org, as
well as better organize documentation around SER development and
releases. You can help out with that by adding a small FAQ, how-to,
copy something from ONsip.org that you found particularly helpful and so on!
We have created some basic content that we hope you will help comment
and develop further. Here are some pointers to content on the new site:
========================================
About the new site and how to contribute content
http://www.iptel.org/iptelorgsite/intro
How to get started with SER?
http://www.iptel.org/ser/using
Overview of documentation
http://www.iptel.org/doc
The old ONsip.org Getting Started document
http://www.iptel.org/ser/doc/gettingstarted
Contributed modules and patches
http://www.iptel.org/ser/contributions
A beginning skeleton for a roadmap
http://www.iptel.org/ser/roadmap
A wishlist for future versions
http://www.iptel.org/ser/wishlist
Release policies
http://www.iptel.org/ser/development/release_policies
======================================================
Below is the launch announcement.
Best regards,
Greger Teigre
g-)
---------------------------------------------------------
The new http://iptel.org/, home of SER, SEMS, and SERWeb is now up. If
you have an account from ONsip.org, you can log in using your old
ONsip.org username/password. However, all content is available without
registration.
The new site is supported by the joint efforts of the iptel.org and
ONsip.org teams. Our aim is to dramatically improve the project
communication, documentation, and development process. The start is
already up there, and we have many plans. The best thing of all: The new
http://iptel.org site is a great basis for contributions from anyone.
We are working on migrating and organizing the remaining content from
the old site, but meanwhile you can access everything from the old site
from http://dog.iptel.org/
We look forward to a revitalised SER open source project!