I have also had problems with getting the ACK back. I don't completely understand your configuration, you must allow for packets going both directions, right? Here is my config :
route { # check to see if the message has been around too long # probably means that it is looping # if (!mf_process_maxfwd_header("10")) { log("LOG: Too many hops\n"); sl_send_reply("483","Too Many Hops"); break; };
# # make sure the length of the message isn't too long! # if (len_gt( max_len )) { sl_send_reply("513", "Wow -- Message too large"); break; };
# # do the loose-routing thing, this is important! # if(loose_route()) { log(1,"doing top loose route"); t_relay(); break; };
# this is where I was dropping the ACKS. # I was simply dropping these, but they must be relayed # because they can be ACKs if(!(uri==myself)) { if(!t_relay()) { sl_reply_error(); break; }; break; };
This gets the ACKs through for me.
By the way, I have this configured with Cisco ATAs, version 2.16. ---greg
I have the same problem and posed it to the group yesterday ([Serusers] Ignored 200 OK message.) So far the only workaround that I have found is to use the rules in my gateway to rewrite the dialed digits before sending them to the PSTN PRI, thus leaving the origianl URI intact for SIP communications.
One person told me that this is a bug in the Cisco ATA, but it happens on my IPDialog phones also. It seems to me that the INVITE is being processed by the SER dial rules and is rewritten, but the ACK is not.
Sean _______________________________________________
Sean Robertson
NETXUSA p. 800-289-6389 f. 864-233-4344 "Ask me about Voice over IP." http://www.netxusa.com/
----- Original Message ----- From: "Alexander Mayrhofer" axelm@nic.at To: serusers@lists.iptel.org Sent: Friday, June 27, 2003 12:15 PM Subject: [Serusers] rewrite & ACK forwarding problem
Hi,
we're running SER together with a PSTN Gateway. Before a call get's forwarded to the gateway, we are rewriting the request URI to make rewriting on the GW as simple as possible:
route { ... strip(3); # +43xxx -> xxx prefix("0"); # xxx -> 0xxx rewritehostport(xxx.xxx.xxx.xxx, 5060); # request to gateway route(1); break; ...
SIP call flow looks like (record route enabled):
(1) phone -> SER INVITE sip:*43699xxxxxxxx@nic.at43.at SIP/2.0
(2) SER -> phone SIP/2.0 100 trying -- your call is important to us
(3) SER -> GW INVITE sip:0699xxxxxxxx@xx.xx.xx.xx:5060 SIP/2.0
(4) GW -> SER SIP/2.0 100 Trying
(5) GW -> SER SIP/2.0 183 Session Progress
(6) SER -> phone SIP/2.0 183 Session Progress
(7) GW -> SER SIP/2.0 180 Ringing
(8) SER -> phone SIP/2.0 180 Ringing
(9) GW -> SER SIP/2.0 200 OK Contact: sip:0699xxxxxxxx@xx.xx.xx.xx:5060
(10) SER -> phone SIP/2.0 200 OK Contact: sip:0699xxxxxxx@xx.xx.xx.xx:5060
[ call established, we can talk, but ... ]
(11) phone -> SER ACK sip:0699xxxxxxxx@xx.xx.xx.xx:5060 SIP/2.0
--> Here starts the problem. That ACK (11) never gets forwarded to the Gateway, so after a few seconds, the GW starts over at (9). Those three packets (9-11) repeat a few times until GW runs into a timeout and drops the call.
I have the impression that SER can't match the packet to the previous requests because of the rewritten URI. Is that correct?
The only output at debug level 3 is:
Warning: sl_send_reply: I won't send a reply for ACK!!
Is that a routing goof somewhere in our scripts or is that a more generic problem? Is the problem that the warning indicates somehow related to the fact that the ACK is not being forwarded?
Help appreciated.
cheers
axelm
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
I read the List and understand the use of Groups.
Now, i need to certain group can't call to another group. Example
Group marketing 8000,8001,8002
Group sales 9000,9001,9002
User 8000 can't call to User 9000 and viceversa, marketing can't call to group sales....
Any Ideas ??
Regards!!
Sergio Diaz wrote:
Group marketing 8000,8001,8002
Group sales 9000,9001,9002
User 8000 can't call to User 9000 and viceversa, marketing can't call to group sales....
Maybe you should try something like this:
if (!proxy_authorize("your.domain", "subscriber")) { log(1, "No proxy authorization\n"); proxy_challenge("your.domain", "0"); break; };
if(!(uri=~"^sip:8[0-9]+@your.domain.*" && is_user_in("credentials", "marketing"))) { log(1, "Unpermitted call to marketing\n"); sl_send_reply("403", "Unpermitted call to marketing"); break; };
if(!(uri=~"^sip:9[0-9]+@your.domain.*" && is_user_in("credentials", "sales"))) { log(1, "Unpermitted call to sales\n"); sl_send_reply("403", "Unpermitted call to sales"); break; };
etc...
hth, Andy
Thank You Andreas.!!
Let me try... =)
On Fri, 2004-04-30 at 09:04 +0200, Andreas Granig wrote:
Sergio Diaz wrote:
Group marketing 8000,8001,8002
Group sales 9000,9001,9002
User 8000 can't call to User 9000 and viceversa, marketing can't call to group sales....
Maybe you should try something like this:
if (!proxy_authorize("your.domain", "subscriber")) { log(1, "No proxy authorization\n"); proxy_challenge("your.domain", "0"); break; };
if(!(uri=~"^sip:8[0-9]+@your.domain.*" && is_user_in("credentials", "marketing"))) { log(1, "Unpermitted call to marketing\n"); sl_send_reply("403", "Unpermitted call to marketing"); break; };
if(!(uri=~"^sip:9[0-9]+@your.domain.*" && is_user_in("credentials", "sales"))) { log(1, "Unpermitted call to sales\n"); sl_send_reply("403", "Unpermitted call to sales"); break; };
etc...
hth, Andy
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Hi,
Another alternative is to use a domain for each group. Before forwarding the call, check if they belong to the same domain. So you don't have to change the script every time you add a new group.
Thanks, Richard
--- Andreas Granig a.granig@inode.at wrote:
Sergio Diaz wrote:
Group marketing 8000,8001,8002
Group sales 9000,9001,9002
User 8000 can't call to User 9000 and viceversa,
marketing can't call to
group sales....
Maybe you should try something like this:
if (!proxy_authorize("your.domain", "subscriber")) { log(1, "No proxy authorization\n"); proxy_challenge("your.domain", "0"); break; };
if(!(uri=~"^sip:8[0-9]+@your.domain.*" && is_user_in("credentials", "marketing"))) { log(1, "Unpermitted call to marketing\n"); sl_send_reply("403", "Unpermitted call to marketing"); break; };
if(!(uri=~"^sip:9[0-9]+@your.domain.*" && is_user_in("credentials", "sales"))) { log(1, "Unpermitted call to sales\n"); sl_send_reply("403", "Unpermitted call to sales"); break; };
etc...
hth, Andy
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
__________________________________ Do you Yahoo!? Win a $20,000 Career Makeover at Yahoo! HotJobs http://hotjobs.sweepstakes.yahoo.com/careermakeover
Richard wrote:
Another alternative is to use a domain for each group. Before forwarding the call, check if they belong to the same domain. So you don't have to change the script every time you add a new group.
On the other hand that would mean that only group-internal calls are allowed when using domains. With acl-groups you could add users to multiple groups...
Andy