[Serusers] Problem with ACK
Klaus Darilion
klaus.mailinglists at pernau.at
Tue Dec 28 10:58:49 CET 2004
Yes - thats somehow strange. From my experience: strict routers (e.g.
Windows Messenger) will be processed by the loose_route whereas loose
routers like Xlite will not processed by loose_route.
regards,
klaus
Amozurrutia Jesus wrote:
> The loose route in my config is located before any sl_send_reply, but the
> ACK is not being processed as loose route. why?
> Should I include something like:
>
> if (method=="ACK") {
> t_relay();
> break;
> };
>
>
> My config file is:
>
> ######################################################################
> # SER Config File
> ######################################################################
>
> check_via=no # (cmd. line: -v)
> dns=no # (cmd. line: -r)
> rev_dns=no # (cmd. line: -R)
> fifo="/tmp/ser_fifo"
>
> ######################################################################
> # Load Modules
> ######################################################################
>
> # Uncomment this if you want to use SQL database
> loadmodule "/usr/lib/ser/modules/sl.so" /*Stateless routing*/
> loadmodule "/usr/lib/ser/modules/tm.so" /*Statefull routing*/
> loadmodule "/usr/lib/ser/modules/acc.so" /*Accounting*/
> loadmodule "/usr/lib/ser/modules/rr.so" /*Record Routing*/
> loadmodule "/usr/lib/ser/modules/maxfwd.so" /*Max-fwd header logic*/
> loadmodule "/usr/lib/ser/modules/usrloc.so" /*User Location*/
> loadmodule "/usr/lib/ser/modules/registrar.so" /*SIP Register functions*/
> loadmodule "/usr/lib/ser/modules/exec.so" /*Execute external
> commands*/
> loadmodule "/usr/lib/ser/modules/mysql.so" /*MySQL DB Module*/
> # MySQL dependant modules
> loadmodule "/usr/lib/ser/modules/auth.so" /*User authentication*/
> loadmodule "/usr/lib/ser/modules/auth_db.so" /*User auth. using MySQL
> DB*/
> loadmodule "/usr/lib/ser/modules/group.so" /*Group commands*/
>
> ######################################################################
> # Establecer parametros para los modulos
> ######################################################################
>
> # -- usrloc params --
> modparam("usrloc", "db_mode", 2)
> modparam("usrloc", "db_url", "sql://user:pass@localhost/db")
>
> # -- auth params --
> modparam("auth_db", "db_url", "sql://user:pass@localhost/db")
> modparam("auth_db", "calculate_ha1", yes)
> modparam("auth_db", "password_column", "password")
>
> # -- rr params --
> modparam("rr", "enable_full_lr", 0)
>
> # -- group params --
> modparam("group", "db_url", "sql://user:pass@localhost/db")
>
> # -- accounting params --
> modparam("acc", "log_level", 3)
> modparam("acc", "db_url", "mysql://user:pass@localhost/db")
> modparam("acc", "db_flag", 2)
> modparam("acc", "db_missed_flag", 3)
> modparam("acc", "report_ack", 1)
> modparam("acc", "report_cancels", 1)
>
> ######################################################################
> # Server Aliases
> ######################################################################
> alias="mydomain.com"
>
> ######################################################################
> # Main Routing Logic
> ######################################################################
>
> route{
>
> ##################################################
> # Initial sanity checks -- messages with
> # max_forwards==0, or excessively long requests
> ##################################################
> if (!mf_process_maxfwd_header("15")) {
> sl_send_reply("483","Too Many Hops");
> break;
> };
> if ( msg:len > max_len ) {
> sl_send_reply("513", "Message too big");
> break;
> };
>
> ##################################################
> # Loose-route processing
> ##################################################
> if (loose_route()) {
> setflag(2);
> t_relay();
> break;
> };
>
> ##################################################
> # We record-route all messages
> ##################################################
> if (method=="INVITE") {
> record_route();
> };
>
> ##################################################
> # Registering routines start here
> ##################################################
> if (method=="REGISTER") {
> if (!src_ip==server2.mydomain.com) {
> if (!www_authorize("mydomain.com", "subscriber")) {
> www_challenge("mydomain.com", "0");
> break;
> };
> t_replicate("server2.mydomain.com", "5060");
> };
> save("location");
> break;
> };
>
> ##################################################
> # Check the source of call and auth. if required
> ##################################################
> # If the call comes from the gateways, no authentication is required
> if (src_ip==gateway.mydomain.com ) {
> log(1,"Call from pstn. \n");
> } else {
> if (method=="INVITE") {
> if (!proxy_authorize("mydomain.com", "subscriber"))
> {
> proxy_challenge("mydomain.com", "0");
> break;
> };
> };
> }
>
> ##################################################
> # Route call
> ##################################################
> if (uri=~"^sip:59803[0-9][0-9][0-9]@.*") {
> if (!lookup("location")) {
> sl_send_reply("404", "Not Found");
> break;
> } else {
> if (!t_relay()) {
> sl_reply_error();
> };
> };
> } else if (uri=~"^sip:[0|1|2|3|5|8|9][0-9]*@.*") {
> rewritehost("gateway.mydomain.com");
> t_relay();
> };
> }
>
>
> -----Original Message-----
> From: Greger V. Teigre [mailto:greger at teigre.com]
> Sent: Viernes, 24 de Diciembre de 2004 01:32 a.m.
> To: Amozurrutia Jesus; serusers at lists.iptel.org
> Subject: Re: [Serusers] Problem with ACK
>
>
> The ACK has a Route header that is supposed to be picked up by the loose
> route part of your config. If the loose route call is not reached before
> you do other processing, the ACK may be dropped...
> Route: <sip:5559853979 at X.X.84.93;ftag=2413706159;lr>
> g-)
>
> Amozurrutia Jesus wrote:
>
>>I double checked and the ACK are ignored by SER.
>>
>>The log file thows this:
>>Dec 23 13:26:13 sip2 /usr/sbin/ser[21127]: Warning: sl_send_reply: I
>>won't send a reply for ACK!!
>>
>>
>>Jesus
>>
>>-----Original Message-----
>>From: Greger V. Teigre [mailto:greger at teigre.com]
>>Sent: Lunes, 20 de Diciembre de 2004 01:43 a.m.
>>To: Amozurrutia Jesus; serusers at lists.iptel.org
>>Subject: Re: [Serusers] Problem with ACK
>>
>>
>>Are you sure that the ACK stops at ser? The ACKs should just flow
>>through ser. I have seen a similar problem with XLite where Cisco
>>drops the ACK because XLite there is a bug in XLIte's Via parsing.
>>This is a Cisco gateway appending an x-route-tag to via. Turn on
>>debugging (ALL) on Cisco and check if it drops the ACK due to
>>wrong/no branch info in Via.
>>g-)
>>
>>Amozurrutia Jesus wrote:
>>
>>>I'm implementing the scenario shown below.
>>>
>>> ___ ______
>>> / 0 \ ---/ \ |
>>> /_\ | ATA1 |---| ____ _ _ _ _ _____
>>> \______/ | / \ / \/ \/ \/ \ / \
>>> |---| FW |---| IP Net |---| CCM |
>>> | \____/ \_/\_/\_/\_/ \_____/
>>> | | |
>>> | | |
>>> | |
>>> --- ---
>>> / \ / \
>>> |NAT| |SER|
>>> |-T | | |
>>> \___/ \___/
>>>
>>>When calling between the CCM (Cisco CallManager) and the ATA, SER
>>>simply ignores the call ACK.
>>>The ACK looks like:
>>>
>>> ACK sip:5559853979*sip1.mcm.net.mx=X.X.71.2+17081 at X.X.81.92:5063
>>> SIP/2.0 Via: SIP/2.0/UDP X.X.67.218:5060;branch=z9hG4bK29b2c750
>>> From: "5559852600" <sip:5559852600 at X.X.67.218>;tag=16781758
>>> To: <sip:5559853979 at mcm.net.mx>;tag=2602576443
>>> Date: Tue, 30 Nov 2004 23:53:15 GMT
>>> Call-ID: fef8ed00-1da1612d-24d-da4334c8 at X.X.67.218
>>> Route: <sip:5559853979 at X.X.81.94;ftag=16781758;lr>
>>> Max-Forwards: 70
>>> CSeq: 101 ACK
>>> Content-Length: 0
>>>
>>>The call flow:
>>>
>>> CallManager SIP Server ATA
>>> | | |
>>> |-- INVITE -------->| |
>>> |<-- trying --------| |
>>> | |-- INVITE -------->|
>>> | |<-- Trying --------|
>>> | |<-- Ringing -------|
>>> |<-- Ringing -------| |
>>> | |<-- OK ------------|
>>> |<-- OK ------------| |
>>> |-- ACK ----------->| |
>>> | |<-- OK ------------|
>>> |<-- OK ------------| |
>>> |-- ACK ----------->| |
>>> | |<-- OK ------------|
>>> |<-- OK ------------| |
>>> |-- ACK ----------->| |
>>> | |<-- OK ------------|
>>> |<-- OK ------------| |
>>> |-- ACK ----------->| |
>>> | |<-- OK ------------|
>>> ......
>>>
>>>My guess is that SER does not accept the URI
>>>"5559853979*sip1.mcm.net.mx=X.X.71.2+17081 at X.X.81.92:5063" because it
>>>contains "*+=" signs ore something similar.
>>>When calling from ATA - ATA there is no preoblem because ATAs
>>>construct the ACK message different (URI and Rote flipped).
>>>
>>>Any ideas?
>>>
>>>Thanks in advance,
>>>
>>>Jesus
>>>
>>>
>>>_______________________________________________
>>>Serusers mailing list
>>>serusers at lists.iptel.org
>>>http://lists.iptel.org/mailman/listinfo/serusers
>
>
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
>
>
More information about the sr-users
mailing list