Hi,
Looks like you are mixing together nathelper and mediaproxy module.
You need to call force_rport() even for INVITEs.
Look at Getting started ser configs
ftp://siprouter.onsip.org/pub/gettingstarted/configs/
Lada
İlker Aktuna (Koç.net) wrote:
> Hi,
>
> Did you receive my reply yesterday ?
>
> Thanks,
> ilker
>
> -----Original Message-----
> From: serusers-bounces(a)lists.iptel.org [mailto:serusers-bounces@lists.iptel.org] On Behalf Of İlker Aktuna (Koç.net)
> Sent: Monday, April 09, 2007 11:29 AM
> To: Ladislav Andel
> Cc: serusers(a)iptel.org
> Subject: RE: [Serusers] interesting 2 way SIP signalling problem
>
> Hi,
>
> This is under my method=="REGISTER" section:
>
> if (nat_uac_test("1")) {
> setflag(6);
> fix_nated_contact();
> force_rport();
> };
>
>
> I also have this under method=="INVITE" :
>
> if (method=="INVITE" || method=="ACK") {
>
> if (client_nat_test("19")) {
> fix_nated_contact();
> };
>
> And this one under a onreply route :
>
> onreply_route[2] {
> if (status=~"(183)|(2[0-9][0-9])") {
> use_media_proxy();
>
> if (nat_uac_test("19")) {
> fix_nated_contact();
> };
> }
> };
>
>
> Thanks for your reply...
>
> ilker
>
> -----Original Message-----
> From: Ladislav Andel [mailto:ladaan@iptel.org]
> Sent: Monday, April 09, 2007 11:31 AM
> To: İlker Aktuna (Koç.net)
> Cc: serusers(a)iptel.org
> Subject: Re: [Serusers] interesting 2 way SIP signalling problem
>
> Hi,
>
> do you call force_rport() function for NATed clients?
> Can you paste in the NAT section of your ser.cfg here?
> Paste in NAT detecting section too.
>
> Lada
>
>
> İlker Aktuna (Koç.net) wrote:
>
>> Hi,
>>
>> I have a working configuration on my SER server. Most of the users can make calls (both way incoming and outgoing) with no problem.
>> However, I have some clients that can't make calls.
>> When I analyze these by ngrep and/or tcpdump, I see that the SER server does not reply the packet on the correct port.
>>
>> For example, I have a testing client which is behind NAT.
>> The client sends INVITE message from UDP port 3023 to port 5061 of my SER.
>> (cseq number is 1)
>> SER exchanges the message with the uplink sip gateway and when it
>> receives a "OK" response it forwards this message to the client's NAT
>> IP address BUT on a different port (14640) with correct cseq number
>> (1)
>>
>> Of course, this new port is not open on the NAT router and it does not reach the client.
>>
>> I see that the first INVITE message has Contact field with internal IP address of the client and the port number as 14640.
>> So the SER server sends the returning message to the external IP address with internal port number.
>>
>> How can I fix this issue ?
>>
>> I can send the configuration of my SER server if that would help to find the problem.
>>
>
> _______________________________________________
> Serusers mailing list
> Serusers(a)lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
> _____________________________________________________________________________________________________________________________________________
> Bu e-posta mesaji kisiye ozel olup, gizli bilgiler iceriyor olabilir. Eger bu e-posta mesaji size yanlislikla ulasmissa, icerigini hic bir sekilde kullanmayiniz ve ekli dosyalari acmayiniz. Bu durumda lutfen e-posta mesajini kullaniciya hemen geri gonderiniz ve tum kopyalarini mesaj kutunuzdan siliniz. Bu e-posta mesaji, hic bir sekilde, herhangi bir amac icin cogaltilamaz, yayinlanamaz ve para karsiligi satilamaz. Bu e-posta mesaji viruslere karsi anti-virus sistemleri tarafindan taranmistir. Ancak yollayici, bu e-posta mesajinin - virus koruma sistemleri ile kontrol ediliyor olsa bile - virus icermedigini garanti etmez ve meydana gelebilecek zararlardan dogacak hicbir sorumlulugu kabul etmez.
> This message is intended solely for the use of the individual or entity to whom it is addressed , and may contain confidential information. If you are not the intended recipient of this message or you receive this mail in error, you should refrain from making any use of the contents and from opening any attachment. In that case, please notify the sender immediately and return the message to the sender, then, delete and destroy all copies. This e-mail message, can not be copied, published or sold for any reason. This e-mail message has been swept by anti-virus systems for the presence of computer viruses. In doing so, however, sender cannot warrant that virus or other forms of data corruption may not be present and do not take any responsibility in any occurrence.
> _____________________________________________________________________________________________________________________________________________
>
Hello:
I need to perform a check several times within a failure_route and I'm
not sure how to accomplish this task.
The way I implemented sequentially hunting I perform the relay to the
first number in the hunt list within route block 0. If this number is
unavailable I "fail" to a failure block then interate through the
remaining numbers in the huntlist in that failure route but this
presents a problem.
All of the "feature" and "call permission" checks which I normally
perform on an extension are only performed in route block 0. This means
I am not checking the feature and call permission flags for the 2nd
through Nth number in the huntlist once I enter the failure route.
I created a route block to perform the necessary checks but the
problem is I do not see how to return to the failure route if the
feature check for a given number fails.
For example. If the t_relay to extension 1234 fails I will enter
failure_route #1. In failure_route #1 I load the next extension, 2345,
but if the call permission check for 2345 fails how do I skip this
number in the huntlist, load the next number in the list and repeat the
failure_route #1 processing?
Thanks,Steve
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello,
I have sems with voicemail module and mp3 support running. I modified it
to save recorded mp3 files on harddisc. I modified ivr's mailbox_query
module to load that prevoiusly on harddisc saved mp3 files.
Unfortunately the male mp3 library isn#t able to decode/read/play that
mp3 files. Is there any change that there will be mp3 decoding support
in mp3 module?
regards
helmut
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFGJOTm4tZeNddg3dwRAhxdAJ9UjRKha1hqV52MN70uwagyLMawVACfQwz8
FnrVEKj0ln45hZmlA9S2xYk=
=2q7+
-----END PGP SIGNATURE-----
hi-
I am looking into using SER as part of our test infrastructure for a
SIP-based messaging system and have 2 questions: one about SER capacity, and
one about the best way to configure it. Firstly though, the setup:
We use a script-driven inhouse SIP/RTP test tool in association with our
messaging system which can either send or accept SIP invitations and process
the associated RTP streams (eg act as UAS or UAC). This tool has a capacity
of ~125 ports.
We need the messaging system to create around 800 concurrent SIP/RTP
sessions (dial out), and our system allows only one outbound sip gateway. I
therefore need to configure a sip redirector which can take incoming SIP
invites from the messaging system and redirect them to one of 7 test tool
clients (125x7 > 800).
First question, re capacity - the 800 concurrent sessions will be staggered
and spread over 2 minutes. This works out at about 7 SIP invites per second.
Should SER be able to handle this (proposed SER box =2.8Ghz, 512mB RAM).
Secondly, the Request-URIs of the SIP invites sent by the messaging system
are structured, and it is easy to tell from the Request-URI which client
machine we want this invite to be redirected to. Eg:
1000000000-1000000999(a)dom.com -> should go to client 1
1000001000-1000001999(a)dom.com -> should go to client 2
1000002000-1000002999(a)dom.com -> should go to client 3
1000003000-1000003999(a)dom.com -> should go to client 4
etc
Rather than registering all these accounts on SER, is there an alternative
way I can get SER to redirect various SIP invites using wildcards to check
the structure of their r-URI?
eg
1000000...(a)dom.com redirects to A
1000001...(a)dom.com redirects to B
1000001...(a)dom.com redirects to C
etc.
Thanks for advice.
Tom
_________________________________________________________________
Txt a lot? Get Messenger FREE on your mobile.
https://livemessenger.mobile.uk.msn.com/
Hi there,
Thanx before for my past questions.
Now, I want to add mailbox application on my server but I cannot find IVR plugin
Then, I read some tutorial that I must make the plugin itself
I've followed the step but it failed.
What should I do then?
Please advise
Thanx
Regards,
Meidiana
---------------------------------
Ahhh...imagining that irresistible "new car" smell?
Check outnew cars at Yahoo! Autos.
Hello All,
I'm having problems when calling next_gw from a failure_route. It
appears that extra characters are getting appended after the
transport=udp portion of the INVITE.
This first INVITE that goes out on the wire looks normal. I'm
intentionally causing the 1st gateway to be offline (time out) so it
failure routes to the next gw:
SIP/SD Request: INVITE sip:1310xxxyyyy@192.168.18.13:5060;transport=udp
The next INVITE to the next gw (called from failure_route) fails due to
extra characters. Note the \000dp after the transport=udp:
SIP/SD Request: INVITE
sip:1310xxxyyyy@192.168.142.40:5060;transport=udp\000dp
And the same thing happens on the next failure route with the \0009b
SIP/SD Request: INVITE
sip:1310xxxyyyy@192.168.101.202:5060;transport=udp\0009b
Looks like I've got extras characters on each of the bad INVITES.
\0009b = .9b & \000dp = .dp
A sample config that reproduces the problem looks like this:
# -------------------------------------------------------------
route{
...snip...
route(1);
}
# -------------------------------------------------------------
route[1] {
if(!load_gws()){
sl_send_reply("500", "Internal server error\n");
xlog("LCR Failure: Unable to load gateways\n");
exit;
};
if(!next_gw()){
sl_send_reply("503", "Service not available");
xlog("LCR Failure: No gateways found\n");
exit;
};
t_on_failure("1"); # Process Failures
if (!t_relay()) {
sl_reply_error();
};
exit;
}
# -------------------------------------------------------------
failure_route[1]{
if(!next_gw()){
t_reply("503", "Service not available");
xlog("$CwrLCR Failure: No gateways found$Cxx\n");
exit;
};
t_relay();
exit;
}
# -------------------------------------------------------------
If I replace the next_gw call in the failure_route with a rewrite_uri(),
append_branch() and a t_relay() then it works as desired so I believe
that the problem is LCR related.
Debug shows the URI's seem to be correct in the gw_uri_avp:
2(12902) load_gws(): DEBUG: Added gw_uri_avp
<sip:1|0@192.168.101.202:5060;transport=udp>
2(12902) load_gws(): DEBUG: Added gw_uri_avp
<sip:1|0@192.168.142.40:5060;transport=udp>
2(12902) load_gws(): DEBUG: Added gw_uri_avp
<sip:|0@192.168.18.13:5060;transport=udp>
System: Solaris10/Sparc64
OpenSER: 1.2.0 with TLS
Any suggestions or thoughts?
Thanks,
Lyle
Hi,
I'm having some interesting results with using the ds_select_dst
function to load balance asterisk boxes. I.e. packets with
method==INVITE are routed with ds_select_dst.
when using two destinations in the dispatcher.txt file, the calls get
disproportionately sent to one destination, unless i'm using the
callid hash. However callid's property of changing with every invite
(reinvite, etc) causes me to question it's suitableness.
For example:
A calls B, puts B on hold, takes B off hold. Error prone or not?
A calls B, puts B on hold, calls C, conferences.
Ad nauseum.
Am I missing something?
Is there a better approach?
Should it Just Work, even hashing on callid?
Mark Price
Hi All,
I found that the Openser 1.1.0 Debian package doesn't install the OSF
module. I would like to make use of the OSF module now, what will the
best way to get the OSF module?
can i just simple do apt-get install openser again to upgarde to 1.1.1
? will that come with OSF module?
Since the system is currently production, i want to avoid any downtime
or server reboot.
Regards,
Howard
Hi, Folks...
When I try to compile OpenSER 1.2.0 with MI_XMLRPC support, I get this
error:
mi_xmlrpc.c:44:26: error: xmlrpc_abyss.h: No such file or directory
mi_xmlrpc.c: In function âmod_child_initâ:
mi_xmlrpc.c:162: warning: implicit declaration of function
âxmlrpc_server_abyss_init_registryâ
mi_xmlrpc.c:172: error: âxmlrpc_server_abyss_rpc2_handlerâ undeclared (first
use in this function)
mi_xmlrpc.c:172: error: (Each undeclared identifier is reported only once
mi_xmlrpc.c:172: error: for each function it appears in.)
mi_xmlrpc.c:178: error: âxmlrpc_server_abyss_default_handlerâ undeclared
(first use in this function)
make[1]: *** [mi_xmlrpc.o] Error 1
I know that its because of the lack of the xmlrpc_abyss.h file, but my
problem is where to find this file? In which package did it reside?
As sad on the subject Im using OpenSUSE 10.2 - 64 bits on a Xeon machine.
Edson.
------
"It wouldn't be sell if it were easy..." (myself)
I was using lcr for failover with a route that looks like....
------------------------------------------------------------------------
------------
{
if(!t_check_status("200")){
xlog("got to failure route 2 lcr");
if (!next_gw()) {
xlog ("503, service not available -
no more gateways");
t_reply("503", "Service not
available - no more gateways");
exit;
} else {
t_on_failure("2");
xlog("lcr forwarding invite
from $fu to -> $ru");
t_relay();
return;
};
};
}
------------------------------------------------------------------------
------------
The t_relay after the line that says xlog("lcr forwarding invite from
$fu to -> $ru"); no longer works. I can see the correct $fu and $ru
values in the xlog output but the t_relay is never done. For example..
my.sip.proxy.ip -> my.pstn.gw.ip SIP/SDP Request: INVITE sip:
+13143212222@my.pstn.gw.ip:5060;transport=udp, with session description
my.pstn.gw.ip -> my.sip.proxy.ip SIP Status: 100 Trying
my.pstn.gw.ip -> my.sip.proxy.ip SIP Status: 604 Invalid Number Format
my.sip.proxy.ip -> my.pstn.gw.ip SIP Request: ACK sip:
+13143212222@my.pstn.gw.ip:5060;transport=udp
just ends there where as witn 1.1 it would then forward the invite to
the next gw in the lcr table. Any help would be greatly appreciated.