Hello,
If a phone re-sends a presence SUBSCRIBE requests even after 5 or 500 milliseconds, kamailio replied with '400 Bad request' to the second SUBSCRIBE
The scenario is:
Phone Kamailio SUBSCRIBE ----------> 401 <---------- SUBSCRIBE ----------> 202 <---------- Pause [ 5ms] (or 500 ms, the same thing happens) SUBSCRIBE ----------> (previous SUBSCRIBE retransmitted) 400 Bad request <----------
Is this the expected behavior? Is there any way to get kamailio to recognize the retransmission? This causes problems with Snom phones because they receive 400 reply when they retransmit the SUBSCRIBE, and presence stops working.
Thanks Catalina
2009/10/9 catalina oancea catalina.oancea@gmail.com:
If a phone re-sends a presence SUBSCRIBE requests even after 5 or 500 milliseconds, kamailio replied with '400 Bad request' to the second SUBSCRIBE
The scenario is:
Phone Kamailio SUBSCRIBE ----------> 401 <---------- SUBSCRIBE ----------> 202 <---------- Pause [ 5ms] (or 500 ms, the same thing happens) SUBSCRIBE ----------> (previous SUBSCRIBE retransmitted) 400 Bad request <----------
Is this the expected behavior? Is there any way to get kamailio to recognize the retransmission? This causes problems with Snom phones because they receive 400 reply when they retransmit the SUBSCRIBE, and presence stops working.
Ensure you use "t_newtran()" when the SUBSCRIBE is received.
catalina oancea schrieb:
Hello,
If a phone re-sends a presence SUBSCRIBE requests even after 5 or 500 milliseconds, kamailio replied with '400 Bad request' to the second SUBSCRIBE
The scenario is:
Phone Kamailio SUBSCRIBE ----------> 401 <---------- SUBSCRIBE ----------> 202 <---------- Pause [ 5ms] (or 500 ms, the same thing happens) SUBSCRIBE ----------> (previous SUBSCRIBE retransmitted) 400 Bad request <----------
Is this the expected behavior? Is there any way to get kamailio to recognize the retransmission? This causes problems with Snom phones because they receive 400 reply when they retransmit the SUBSCRIBE, and presence stops working.
First, it would be a good idea to handle the SUBSCRIBE stateful, I think his can be done by calling t_newtran() before, and t_release() after handle_subscribe().
regards klaus
Hi
Thanks for answering. I tried with t_newtran. It still doesn't work. The error is:
ERROR:presence:get_stored_info: wrong sequence number;received: 2 - stored: 2
Thanks Catalina
2009/10/9 Klaus Darilion klaus.mailinglists@pernau.at:
catalina oancea schrieb:
Hello,
If a phone re-sends a presence SUBSCRIBE requests even after 5 or 500 milliseconds, kamailio replied with '400 Bad request' to the second SUBSCRIBE
The scenario is:
Phone Kamailio SUBSCRIBE ----------> 401 <---------- SUBSCRIBE ----------> 202 <---------- Pause [ 5ms] (or 500 ms, the same thing happens) SUBSCRIBE ----------> (previous SUBSCRIBE retransmitted) 400 Bad request <----------
Is this the expected behavior? Is there any way to get kamailio to recognize the retransmission? This causes problems with Snom phones because they receive 400 reply when they retransmit the SUBSCRIBE, and presence stops working.
First, it would be a good idea to handle the SUBSCRIBE stateful, I think his can be done by calling t_newtran() before, and t_release() after handle_subscribe().
regards klaus
Try xlog() after t_newtran. In case of the retransmission, you should not see the xlog as it should be absorbed silently by t_newtran.
regards klaus
catalina oancea schrieb:
Hi
Thanks for answering. I tried with t_newtran. It still doesn't work. The error is:
ERROR:presence:get_stored_info: wrong sequence number;received: 2 - stored: 2
Thanks Catalina
2009/10/9 Klaus Darilion klaus.mailinglists@pernau.at:
catalina oancea schrieb:
Hello,
If a phone re-sends a presence SUBSCRIBE requests even after 5 or 500 milliseconds, kamailio replied with '400 Bad request' to the second SUBSCRIBE
The scenario is:
Phone Kamailio SUBSCRIBE ----------> 401 <---------- SUBSCRIBE ----------> 202 <---------- Pause [ 5ms] (or 500 ms, the same thing happens) SUBSCRIBE ----------> (previous SUBSCRIBE retransmitted) 400 Bad request <----------
Is this the expected behavior? Is there any way to get kamailio to recognize the retransmission? This causes problems with Snom phones because they receive 400 reply when they retransmit the SUBSCRIBE, and presence stops working.
First, it would be a good idea to handle the SUBSCRIBE stateful, I think his can be done by calling t_newtran() before, and t_release() after handle_subscribe().
regards klaus
Here is my config part for handling SUBSCRIBEs:
t_newtran(); xlog("L_ERROR","I am after t_newtran"); handle_subscribe(); t_release();
And for the previously mentioned scenario I see in my log: /usr/sbin/kamailio[13463]: I am after t_newtran /usr/sbin/kamailio[13463]: I am after t_newtran /usr/sbin/kamailio[13463]: ERROR:presence:get_stored_info: wrong sequence number;received: 2 - stored: 2
2009/10/9 Klaus Darilion klaus.mailinglists@pernau.at:
Try xlog() after t_newtran. In case of the retransmission, you should not see the xlog as it should be absorbed silently by t_newtran.
regards klaus
catalina oancea schrieb:
Hi
Thanks for answering. I tried with t_newtran. It still doesn't work. The error is:
ERROR:presence:get_stored_info: wrong sequence number;received: 2 - stored: 2
Thanks Catalina
2009/10/9 Klaus Darilion klaus.mailinglists@pernau.at:
catalina oancea schrieb:
Hello,
If a phone re-sends a presence SUBSCRIBE requests even after 5 or 500 milliseconds, kamailio replied with '400 Bad request' to the second SUBSCRIBE
The scenario is:
Phone Kamailio SUBSCRIBE ----------> 401 <---------- SUBSCRIBE ----------> 202 <---------- Pause [ 5ms] (or 500 ms, the same thing happens) SUBSCRIBE ----------> (previous SUBSCRIBE retransmitted) 400 Bad request <----------
Is this the expected behavior? Is there any way to get kamailio to recognize the retransmission? This causes problems with Snom phones because they receive 400 reply when they retransmit the SUBSCRIBE, and presence stops working.
First, it would be a good idea to handle the SUBSCRIBE stateful, I think his can be done by calling t_newtran() before, and t_release() after handle_subscribe().
regards klaus
Hello,
I discovered that is I use the example in the sample config for presence:
if (! t_newtran()) { sl_reply_error(); exit; };
if(is_method("PUBLISH")) { handle_publish(); t_release(); } else if( is_method("SUBSCRIBE")) { handle_subscribe(); t_release(); };
then it works, the retransmission is recognized correctly. But when I add the authentication part, and it becomes like this:
if (! t_newtran()) { sl_reply_error(); exit; };
if (!www_authorize("", "subscriber")) { www_challenge("", "0"); #t_release(); #commented on un-commented, it makes no difference exit; };
if(is_method("PUBLISH")) { handle_publish(); t_release(); } else if( is_method("SUBSCRIBE")) { handle_subscribe(); t_release(); };
then it stops working. I really need authentication so is anybody using any workaround for this?
Thanks, Catalina
2009/10/9 catalina oancea catalina.oancea@gmail.com:
Here is my config part for handling SUBSCRIBEs:
t_newtran(); xlog("L_ERROR","I am after t_newtran"); handle_subscribe(); t_release();
And for the previously mentioned scenario I see in my log: /usr/sbin/kamailio[13463]: I am after t_newtran /usr/sbin/kamailio[13463]: I am after t_newtran /usr/sbin/kamailio[13463]: ERROR:presence:get_stored_info: wrong sequence number;received: 2 - stored: 2
2009/10/9 Klaus Darilion klaus.mailinglists@pernau.at:
Try xlog() after t_newtran. In case of the retransmission, you should not see the xlog as it should be absorbed silently by t_newtran.
regards klaus
catalina oancea schrieb:
Hi
Thanks for answering. I tried with t_newtran. It still doesn't work. The error is:
ERROR:presence:get_stored_info: wrong sequence number;received: 2 - stored: 2
Thanks Catalina
2009/10/9 Klaus Darilion klaus.mailinglists@pernau.at:
catalina oancea schrieb:
Hello,
If a phone re-sends a presence SUBSCRIBE requests even after 5 or 500 milliseconds, kamailio replied with '400 Bad request' to the second SUBSCRIBE
The scenario is:
Phone Kamailio SUBSCRIBE ----------> 401 <---------- SUBSCRIBE ----------> 202 <---------- Pause [ 5ms] (or 500 ms, the same thing happens) SUBSCRIBE ----------> (previous SUBSCRIBE retransmitted) 400 Bad request <----------
Is this the expected behavior? Is there any way to get kamailio to recognize the retransmission? This causes problems with Snom phones because they receive 400 reply when they retransmit the SUBSCRIBE, and presence stops working.
First, it would be a good idea to handle the SUBSCRIBE stateful, I think his can be done by calling t_newtran() before, and t_release() after handle_subscribe().
regards klaus
Sorry for so many messages. I was using the sipp simulator which was sending different branch-es in the retransmission. The bug occured with Snom because I didn't have t_newtran in my cfg, and then replicated again with t_newtran because I was using sipp to test. So actually t_newtran did the trick.
Thanks
2009/10/9 Klaus Darilion klaus.mailinglists@pernau.at:
Try xlog() after t_newtran. In case of the retransmission, you should not see the xlog as it should be absorbed silently by t_newtran.
regards klaus
catalina oancea schrieb:
Hi
Thanks for answering. I tried with t_newtran. It still doesn't work. The error is:
ERROR:presence:get_stored_info: wrong sequence number;received: 2 - stored: 2
Thanks Catalina
2009/10/9 Klaus Darilion klaus.mailinglists@pernau.at:
catalina oancea schrieb:
Hello,
If a phone re-sends a presence SUBSCRIBE requests even after 5 or 500 milliseconds, kamailio replied with '400 Bad request' to the second SUBSCRIBE
The scenario is:
Phone Kamailio SUBSCRIBE ----------> 401 <---------- SUBSCRIBE ----------> 202 <---------- Pause [ 5ms] (or 500 ms, the same thing happens) SUBSCRIBE ----------> (previous SUBSCRIBE retransmitted) 400 Bad request <----------
Is this the expected behavior? Is there any way to get kamailio to recognize the retransmission? This causes problems with Snom phones because they receive 400 reply when they retransmit the SUBSCRIBE, and presence stops working.
First, it would be a good idea to handle the SUBSCRIBE stateful, I think his can be done by calling t_newtran() before, and t_release() after handle_subscribe().
regards klaus