Hi all: Have running this script on Openser 1.2.3-notls version managing forwards this way:
route[3] { ... t_on_failure("1"); if avp_db_load("$ru", "*") { if (is_avp_set("$avp(s:fwdbusy)/s")) { setflag(23); }; ...
failure_route[1] { ... if ((isflagset(23)) && (t_check_status("486"))) { if (avp_pushto("$ru", "$avp(s:fwdbusy)")) { t_reply("302","Moved Temporarily"); return; }; }; ...
User A calls user B and B has fwdbusy parameter set in user preferences; if B is busy, proxy sends 302 message back to A with contact set to $avp(s:fwdbusy) value. This setup usually works fine. However, sometimes the proxy shows a strange behaviour. It starts to append an arbitrary contact to the contact header in every forwarding it does. The contact appended has nothing to do with A or B or the uri set in the avp. The same uri is appended in all call forwardings performed in the system. If the proxy is restarted, the problem disappears.
Example:
SIP/2.0 302 Moved Temporarily Via: SIP/2.0/UDP 10.100.2.254:5060;branch=z9hG4bK51461DD5 From: <sip:30132@10.100.2.254 sip%3A30132@10.100.2.254>;tag=92DAB388-EE7 To: <sip:20050@domain.com sip%3A20050@domain.com
;tag=880a5593aeb097bc75600b31d6e17107-78ac
Call-ID: C0C84A1C-33CE11DE-BEBEEAA9-C0D323DF@192.168.2.40 CSeq: 101 INVITE Contact: sip:30050@domain.com sip%3A30050@domain.com, sip:030410@10.172.0.254:5060;transport=udp;q=0 Server: OpenSER (1.2.3-notls (i386/linux)) Content-Length: 0
sip:030410@10.172.0.254:5060;transport=udp;q=0 is added in all forwardings done the system.
Unfortunately I have no debug info cause it happens in production environment. I couldn't reproduce the problem in test environment. Have you got any idea on what could make it happen?
Thanks a lot: Fran Lizaran
On Donnerstag, 30. April 2009, Francisco Javier Lizaran Vilches wrote:
Hi all: Have running this script on Openser 1.2.3-notls version managing forwards this way: [..] User A calls user B and B has fwdbusy parameter set in user preferences; if B is busy, proxy sends 302 message back to A with contact set to $avp(s:fwdbusy) value. This setup usually works fine. However, sometimes the proxy shows a strange behaviour. It starts to append an arbitrary contact to the contact header in every forwarding it does. The contact appended has nothing to do with A or B or the uri set in the avp. The same uri is appended in all call forwardings performed in the system. If the proxy is restarted, the problem disappears.
Example: Contact: sip:30050@domain.com sip%3A30050@domain.com, sip:030410@10.172.0.254:5060;transport=udp;q=0
Hi Francisco,
strange.. How frequent do you observe this? Did i understand you correctly, if this change in behaviour occur, it alter the Contact header in every forwarding? Do you get also some other problems, like a eventual crash, or errors in other areas? Do you use any custom (self written) module in your setup?
Cheers,
Henning
Hi Henning:
It happens after one or two weeks of operation. Yes, it changes the contact header in every forwarding appending the same uri. If a restart is performed, after a few days it happens again but a different uri is appended this time, and so on. I have not noticed any other problem apart from that. The only change made to this version was a backport of mysql module from 1.3 to avoid mysql connection problems (see that thread http://openser.org/pipermail/users/2008-February/016101.html ).
Regards:
Francisco
2009/4/30 Henning Westerholt henning.westerholt@1und1.de
On Donnerstag, 30. April 2009, Francisco Javier Lizaran Vilches wrote:
Hi all: Have running this script on Openser 1.2.3-notls version managing forwards this way: [..] User A calls user B and B has fwdbusy parameter set in user preferences;
if
B is busy, proxy sends 302 message back to A with contact set to $avp(s:fwdbusy) value. This setup usually works fine. However, sometimes the proxy shows a strange behaviour. It starts to append an arbitrary contact to the contact header in every forwarding it does. The contact appended has nothing to do with A or B or the uri set in the avp. The
same
uri is appended in all call forwardings performed in the system. If the proxy is restarted, the problem disappears.
Example: Contact: sip:30050@domain.com sip%3A30050@domain.com <
sip%3A30050@domain.com sip%253A30050@domain.com>,
Hi Francisco,
strange.. How frequent do you observe this? Did i understand you correctly, if this change in behaviour occur, it alter the Contact header in every forwarding? Do you get also some other problems, like a eventual crash, or errors in other areas? Do you use any custom (self written) module in your setup?
Cheers,
Henning
On Montag, 4. Mai 2009, Francisco Javier Lizaran Vilches wrote:
It happens after one or two weeks of operation. Yes, it changes the contact header in every forwarding appending the same uri.
Hi Francisco,
ok, understand.
If a restart is performed, after a few days it happens again but a different uri is appended this time, and so on. I have not noticed any other problem apart from that.
This looks like a random memory corruption to me at the moment, perhaps one that is not in a really critical area, otherwise the server would definitely crash.
The only change made to this version was a backport of mysql module from 1.3 to avoid mysql connection problems (see that thread http://openser.org/pipermail/users/2008-February/016101.html ).
This is only a minor change, could not imagine how this could caused this problem. I also backported this to our 1.3 version that we use in production.
If the server did is not is under a really heavy load, you could try to enable memory debugging. (edit Makefile.defs file and remove from the DEFS string the F_MALLOC define (delete ”-DF_MALLOC” line) and add the DBG_QM_MALLOC define (insert a ”-DDBG_QM_MALLOC” line.) Then the server will do more run-time checks in the memory manager and perhaps catch the bug when its happened.
Cheers,
Henning