<html><body>
<p>Hi Bogdan,<br>
<br>
I think there is likely another race condition in the tm timer code. The problem is when the same struct timer_link is used on two or more timer lists. For example, uac-&gt;request.fr_timer is used on both FR_TIMER_LIST and FR_INV_TIMER_LIST, and the call on t_reply.c:1532 moves it between timer lists. The problem is that the FR_TIMER_LIST is not locked while the move takes place. That is, set_timer() locks the list it is moving to, but not the list it is moving from. The thus call to remove_timer_unsafe() is not guarded by the appropriate lock.<br>
<br>
I found this while searching for the earlier problem. I added check into set_timer():
<ul> if (new_tl-&gt;timer_list==DETACHED_LIST){<br>
                LM_CRIT(&quot;set_timer for %d list called on a \&quot;detached\&quot; &quot;<br>
                        &quot;timer -- ignoring: %p\n&quot;, list_id, new_tl);<br>
                goto end;<br>
        }<br>
        /* make sure I'm not already on a list */<br>
        if (new_tl-&gt;timer_list!=0 &amp;&amp; new_tl-&gt;timer_list!=list) {<br>
                LM_CRIT(&quot;set_timer for %d list called while on other list %d&quot;,  list_id, new_tl-&gt;timer_list-&gt;id);<br>
                abort();<br>
        }<br>
        remove_timer_unsafe( new_tl );<br>
<br>
        insert_timer_unsafe( list, new_tl, timeout +<br>
                        ((timer_id2type[list_id]==UTIME_TYPE)?get_uticks():get_ticks()));<br>
end:<br>
</ul>
And I got:<br>
<br>
Oct 26 21:37:37 org-sip01 /var/run/openser/opensips-proxy[9708]: CRITICAL:tm:set_timer: set_timer for 1 list called while on other list 0<br>
<br>
Regards,<br>
Kennard<br>
<br>
<br>
<img width="16" height="16" src="cid:1__=07BBFD5ADF89E6128f9e8a93df9@logitech.com" border="0" alt="Inactive hide details for Bogdan-Andrei Iancu ---10/25/2010 06:35:04 AM---Done! This bug is affecting trunk only."><font color="#424282">Bogdan-Andrei Iancu ---10/25/2010 06:35:04 AM---Done! This bug is affecting trunk only.</font><br>
<br>
<font size="2" color="#5F5F5F">From:        </font><font size="2">Bogdan-Andrei Iancu &lt;bogdan@voice-system.ro&gt;</font><br>
<font size="2" color="#5F5F5F">To:        </font><font size="2">OpenSIPS users mailling list &lt;users@lists.opensips.org&gt;</font><br>
<font size="2" color="#5F5F5F">Date:        </font><font size="2">10/25/2010 06:35 AM</font><br>
<font size="2" color="#5F5F5F">Subject:        </font><font size="2">Re: [OpenSIPS-Users] opensips tm timer core dump</font><br>
<font size="2" color="#5F5F5F">Sent by:        </font><font size="2">users-bounces@lists.opensips.org</font><br>
<hr width="100%" size="2" align="left" noshade style="color:#8091A5; "><br>
<br>
<br>
<tt>Done!<br>
<br>
This bug is affecting trunk only.<br>
<br>
Regards,<br>
Bogdan<br>
<br>
Bogdan-Andrei Iancu wrote:<br>
&gt; Hi Kennard,<br>
&gt;<br>
&gt; You are perfectly right - there was a change &nbsp;in moving the setT(cell) <br>
&gt; upper in the function (we needed it in the callbacks), and this bug <br>
&gt; looks like a side effect.<br>
&gt;<br>
&gt; I will make the fix asap !<br>
&gt;<br>
&gt; Thanks and regards,<br>
&gt; Bogdan<br>
&gt;<br>
&gt; Kennard_White@logitech.com wrote:<br>
&gt; &nbsp; <br>
&gt;&gt; Hi Bogdan,<br>
&gt;&gt;<br>
&gt;&gt; I believe I found the problem. When sip_msg_cloner() within <br>
&gt;&gt; build_cell() fails due to out-of-mem, and dangling pointer to the cell <br>
&gt;&gt; is left in the global transaction pointer. Later on the post_cb() code <br>
&gt;&gt; attempts to clean this up, and &quot;resurrects&quot; the now-free memory, and <br>
&gt;&gt; in particular puts it on a wait timer. My guess is that later on this <br>
&gt;&gt; memory is allocated into a new transaction which eventually uses the <br>
&gt;&gt; same wait timer link, and the two threads fight it out.<br>
&gt;&gt;<br>
&gt;&gt; Adding a set_t(0) fixes the problem. While looking, I believe I found <br>
&gt;&gt; a memory leak in uac creation code that is also triggered by out of <br>
&gt;&gt; memory conditions. Please see attached patch.<br>
&gt;&gt;<br>
&gt;&gt; The &quot;problem&quot; also manifest itself as a core dump with <br>
&gt;&gt; insert_timer_unsafe. Once I disabled optimization, I saw multiple <br>
&gt;&gt; variations within this function. The most common was that ptr==tl <br>
&gt;&gt; after the search. The sequence of events for this is: new cell <br>
&gt;&gt; created, stored into global T, free'd, added to wait-list by cleanup <br>
&gt;&gt; code from global T, memory re-allocated into new cell, timer link <br>
&gt;&gt; zero'd, and then added again to wait list. At least that is my best guess.<br>
&gt;&gt;<br>
&gt;&gt; Regards,<br>
&gt;&gt; Kennard<br>
&gt;&gt;<br>
&gt;&gt; /(See attached file: opensips-tm-cell.patch)/<br>
&gt;&gt;<br>
&gt;&gt; Inactive hide details for Bogdan-Andrei Iancu ---10/22/2010 07:02:36 <br>
&gt;&gt; AM---Hi Kennard, I suppose the bt is the same ? do you <br>
&gt;&gt; stiBogdan-Andrei Iancu ---10/22/2010 07:02:36 AM---Hi Kennard, I <br>
&gt;&gt; suppose the bt is the same ? do you still have the core file ?<br>
&gt;&gt;<br>
&gt;&gt; From: Bogdan-Andrei Iancu &lt;bogdan@voice-system.ro&gt;<br>
&gt;&gt; To: OpenSIPS users mailling list &lt;users@lists.opensips.org&gt;<br>
&gt;&gt; Date: 10/22/2010 07:02 AM<br>
&gt;&gt; Subject: Re: [OpenSIPS-Users] opensips tm timer core dump<br>
&gt;&gt; Sent by: users-bounces@lists.opensips.org<br>
&gt;&gt;<br>
&gt;&gt; ------------------------------------------------------------------------<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Hi Kennard,<br>
&gt;&gt;<br>
&gt;&gt; I suppose the bt is the same ? do you still have the core file ?<br>
&gt;&gt;<br>
&gt;&gt; Regards,<br>
&gt;&gt; Bogdan<br>
&gt;&gt;<br>
&gt;&gt; Kennard_White@logitech.com wrote:<br>
&gt;&gt; &nbsp; &nbsp; <br>
&gt;&gt;&gt; Hi Bodgen,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I replicated the error. Unfortunately the entire insert_timer_unsafe<br>
&gt;&gt;&gt; and been in-lined and little is available:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Program terminated with signal 11, Segmentation fault.<br>
&gt;&gt;&gt; #0 0x00007f8b8356c2c2 in insert_timer_unsafe (new_tl=0x7f8b7a54e310,<br>
&gt;&gt;&gt; list_id=WT_TIMER_LIST, ext_timeout=&lt;value optimized out&gt;) at timer.c:731<br>
&gt;&gt;&gt; 731 timer.c: No such file or directory.<br>
&gt;&gt;&gt; in timer.c<br>
&gt;&gt;&gt; (gdb) print tl<br>
&gt;&gt;&gt; $1 = &lt;value optimized out&gt;<br>
&gt;&gt;&gt; (gdb) print *tl<br>
&gt;&gt;&gt; Cannot access memory at address 0x0<br>
&gt;&gt;&gt; (gdb) print ptr<br>
&gt;&gt;&gt; $2 = &lt;value optimized out&gt;<br>
&gt;&gt;&gt; (gdb) print *ptr<br>
&gt;&gt;&gt; Cannot access memory at address 0x0<br>
&gt;&gt;&gt; (gdb) print *new_tl<br>
&gt;&gt;&gt; No symbol &quot;new_tl&quot; in current context.<br>
&gt;&gt;&gt; (gdb) up<br>
&gt;&gt;&gt; #1 set_1timer (new_tl=0x7f8b7a54e310, list_id=WT_TIMER_LIST,<br>
&gt;&gt;&gt; ext_timeout=&lt;value optimized out&gt;) at timer.c:904<br>
&gt;&gt;&gt; 904 in timer.c<br>
&gt;&gt;&gt; (gdb) print *new_tl<br>
&gt;&gt;&gt; $3 = {next_tl = 0x0, prev_tl = 0x0, ld_tl = 0x0, time_out = 0,<br>
&gt;&gt;&gt; timer_list = 0x0, deleted = 0}<br>
&gt;&gt;&gt; (gdb) print list<br>
&gt;&gt;&gt; $4 = &lt;value optimized out&gt;<br>
&gt;&gt;&gt; (gdb) print timeout<br>
&gt;&gt;&gt; $5 = 32<br>
&gt;&gt;&gt; (gdb) print new_tl<br>
&gt;&gt;&gt; $6 = (struct timer_link *) 0x7f8b7a54e310<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I'll keep the core for a while -- please let me know if there is<br>
&gt;&gt;&gt; anything else I can try.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks,<br>
&gt;&gt;&gt; Kennard<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Inactive hide details for Bogdan-Andrei Iancu ---10/08/2010 04:40:47<br>
&gt;&gt;&gt; AM---Hi Kennard, Ok, keep the core next time :)Bogdan-Andrei Iancu<br>
&gt;&gt;&gt; ---10/08/2010 04:40:47 AM---Hi Kennard, Ok, keep the core next time :)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; From: Bogdan-Andrei Iancu &lt;bogdan@voice-system.ro&gt;<br>
&gt;&gt;&gt; To: OpenSIPS users mailling list &lt;users@lists.opensips.org&gt;<br>
&gt;&gt;&gt; Date: 10/08/2010 04:40 AM<br>
&gt;&gt;&gt; Subject: Re: [OpenSIPS-Users] opensips tm timer core dump<br>
&gt;&gt;&gt; Sent by: users-bounces@lists.opensips.org<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; ------------------------------------------------------------------------<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Hi Kennard,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Ok, keep the core next time :)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Regards,<br>
&gt;&gt;&gt; Bogdan<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Kennard_White@logitech.com wrote:<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt;&gt;&gt; Hi Bogden,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Thanks for explaining the child processes involved -- I misunderstood<br>
&gt;&gt;&gt;&gt; what was happening.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Unfortunately, I don't have the core anymore. My recollection is that<br>
&gt;&gt;&gt;&gt; I couldn't print anything useful due to compiler optimization. That<br>
&gt;&gt;&gt;&gt; said, this should re-create pretty easily, and I'll get more dumps<br>
&gt;&gt;&gt;&gt; next time it happens.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Regards,<br>
&gt;&gt;&gt;&gt; Kennard<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Inactive hide details for Bogdan-Andrei Iancu ---10/05/2010 01:41:38<br>
&gt;&gt;&gt;&gt; AM---Hi Kennard, The core was generated by process 22255:Bogdan-Andrei<br>
&gt;&gt;&gt;&gt; Iancu ---10/05/2010 01:41:38 AM---Hi Kennard, The core was generated<br>
&gt;&gt;&gt;&gt; by process 22255:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; From: Bogdan-Andrei Iancu &lt;bogdan@voice-system.ro&gt;<br>
&gt;&gt;&gt;&gt; To: OpenSIPS users mailling list &lt;users@lists.opensips.org&gt;<br>
&gt;&gt;&gt;&gt; Date: 10/05/2010 01:41 AM<br>
&gt;&gt;&gt;&gt; Subject: Re: [OpenSIPS-Users] opensips tm timer core dump<br>
&gt;&gt;&gt;&gt; Sent by: users-bounces@lists.opensips.org<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt; ------------------------------------------------------------------------<br>
&gt;&gt; &nbsp; &nbsp; <br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Hi Kennard,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; The core was generated by process 22255:<br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp;[22238]: INFO:core:handle_sigs: child process 22255 exited by a<br>
&gt;&gt;&gt;&gt; signal 11<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; and this process also reported mem problems:<br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp;[22255]: ERROR:tm:new_t: out of mem<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Can you print the &quot;tl&quot; or &quot;ptr&quot; variables in frame 0?<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Regards,<br>
&gt;&gt;&gt;&gt; Bogdan<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Kennard_White@logitech.com wrote:<br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt;&gt;&gt;&gt; Running against opensips HEAD, I got a segfault in the tm timer <br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt; code.<br>
&gt;&gt; &nbsp; &nbsp; <br>
&gt;&gt;&gt;&gt;&gt; I believe this is triggered by running out of shared memory.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; The stack trace:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; (gdb) where<br>
&gt;&gt;&gt;&gt;&gt; #0 0x00007fe8f8d96212 in insert_timer_unsafe (new_tl=0x7fe8f66337b0,<br>
&gt;&gt;&gt;&gt;&gt; list_id=WT_TIMER_LIST, ext_timeout=&lt;value optimized out&gt;) at<br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt;&gt; timer.c:731<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt;&gt;&gt;&gt; #1 set_1timer (new_tl=0x7fe8f66337b0, list_id=WT_TIMER_LIST,<br>
&gt;&gt;&gt;&gt;&gt; ext_timeout=&lt;value optimized out&gt;) at timer.c:904<br>
&gt;&gt;&gt;&gt;&gt; #2 0x00007fe8f8d78ac8 in t_release_transaction <br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt; (trans=0x7fe8f6633730)<br>
&gt;&gt; &nbsp; &nbsp; <br>
&gt;&gt;&gt;&gt;&gt; at t_funcs.c:122<br>
&gt;&gt;&gt;&gt;&gt; #3 0x00007fe8f8d808e5 in t_unref (p_msg=&lt;value optimized out&gt;)<br>
&gt;&gt;&gt;&gt;&gt; at t_lookup.c:1152<br>
&gt;&gt;&gt;&gt;&gt; #4 0x0000000000483ae5 in exec_post_req_cb ()<br>
&gt;&gt;&gt;&gt;&gt; #5 0x000000000046c1e4 in receive_msg ()<br>
&gt;&gt;&gt;&gt;&gt; #6 0x00000000004bc77c in udp_rcv_loop ()<br>
&gt;&gt;&gt;&gt;&gt; #7 0x000000000042de9c in main ()<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; The offending code (I believe):<br>
&gt;&gt;&gt;&gt;&gt; if (tl-&gt;time_out==ptr-&gt;time_out) {<br>
&gt;&gt;&gt;&gt;&gt; tl-&gt;ld_tl = ptr-&gt;ld_tl<br>
&gt;&gt;&gt;&gt;&gt; ptr-&gt;ld_tl = 0;<br>
&gt;&gt;&gt;&gt;&gt; tl-&gt;ld_tl-&gt;ld_tl = tl; &lt;-- SEG FAULT HERE (according to trace)<br>
&gt;&gt;&gt;&gt;&gt; } else {<br>
&gt;&gt;&gt;&gt;&gt; tl-&gt;ld_tl = tl;<br>
&gt;&gt;&gt;&gt;&gt; }<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Unfortunately, due to optimization I cannot dump anything <br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt; useful, and<br>
&gt;&gt; &nbsp; &nbsp; <br>
&gt;&gt;&gt;&gt;&gt; I'm not convinced the actual fault is on the line indicated. <br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt; Note that<br>
&gt;&gt; &nbsp; &nbsp; <br>
&gt;&gt;&gt;&gt;&gt; the core dump is not one of the processes that reported out of <br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt; memory.<br>
&gt;&gt; &nbsp; &nbsp; <br>
&gt;&gt;&gt;&gt;&gt; Maybe one of the other processes left the timer list in a corrupt<br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt;&gt; state?<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt;&gt;&gt;&gt; The log file:<br>
&gt;&gt;&gt;&gt;&gt; Sep 29 11:43:36 org-sip01 /var/run/openser/opensips-pres[22255]:<br>
&gt;&gt;&gt;&gt;&gt; ERROR:tm:sip_msg_cloner: no more share memory<br>
&gt;&gt;&gt;&gt;&gt; Sep 29 11:43:36 org-sip01 /var/run/openser/opensips-pres[22255]:<br>
&gt;&gt;&gt;&gt;&gt; ERROR:tm:new_t: out of mem<br>
&gt;&gt;&gt;&gt;&gt; Sep 29 11:43:36 org-sip01 /var/run/openser/opensips-pres[22255]:<br>
&gt;&gt;&gt;&gt;&gt; ERROR:tm:t_newtran: new_t failed<br>
&gt;&gt;&gt;&gt;&gt; Sep 29 11:43:36 org-sip01 /var/run/openser/opensips-pres[22254]:<br>
&gt;&gt;&gt;&gt;&gt; WARNING:core:fm_malloc: Not enough free memory, will atempt<br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt;&gt;&gt; defragmenation<br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt;&gt;&gt;&gt; Sep 29 11:43:36 org-sip01 /var/run/openser/opensips-pres[22254]:<br>
&gt;&gt;&gt;&gt;&gt; ERROR:tm:sip_msg_cloner: no more share memory<br>
&gt;&gt;&gt;&gt;&gt; Sep 29 11:43:36 org-sip01 /var/run/openser/opensips-pres[22254]:<br>
&gt;&gt;&gt;&gt;&gt; ERROR:tm:new_t: out of mem<br>
&gt;&gt;&gt;&gt;&gt; Sep 29 11:43:36 org-sip01 /var/run/openser/opensips-pres[22254]:<br>
&gt;&gt;&gt;&gt;&gt; ERROR:tm:t_newtran: new_t failed<br>
&gt;&gt;&gt;&gt;&gt; Sep 29 11:43:36 org-sip01 /var/run/openser/opensips-pres[22238]:<br>
&gt;&gt;&gt;&gt;&gt; INFO:core:handle_sigs: child process 22255 exited by a signal 11<br>
&gt;&gt;&gt;&gt;&gt; Sep 29 11:43:36 org-sip01 /var/run/openser/opensips-pres[22238]:<br>
&gt;&gt;&gt;&gt;&gt; INFO:core:handle_sigs: core was generated<br>
&gt;&gt;&gt;&gt;&gt; Sep 29 11:43:36 org-sip01 /var/run/openser/opensips-pres[22238]:<br>
&gt;&gt;&gt;&gt;&gt; INFO:core:handle_sigs: terminating due to SIGCHLD<br>
&gt;&gt;&gt;&gt;&gt; Sep 29 11:43:36 org-sip01 /var/run/openser/opensips-pres[22256]:<br>
&gt;&gt;&gt;&gt;&gt; INFO:core:sig_usr: signal 15 received<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt;&gt; ------------------------------------------------------------------------<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt;&gt; Users mailing list<br>
&gt;&gt;&gt;&gt;&gt; Users@lists.opensips.org<br>
&gt;&gt;&gt;&gt;&gt; </tt><tt><a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a></tt><tt><br>
&gt;&gt;&gt;&gt;&gt; &nbsp;<br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt; Bogdan-Andrei Iancu<br>
&gt;&gt;&gt;&gt; OpenSIPS Bootcamp<br>
&gt;&gt;&gt;&gt; 15 - 19 November 2010, Edison, New Jersey, USA<br>
&gt;&gt;&gt;&gt; </tt><tt>www.voice-system.ro</tt><tt><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; Users mailing list<br>
&gt;&gt;&gt;&gt; Users@lists.opensips.org<br>
&gt;&gt;&gt;&gt; </tt><tt><a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a></tt><tt><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt; ------------------------------------------------------------------------<br>
&gt;&gt; &nbsp; &nbsp; <br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; Users mailing list<br>
&gt;&gt;&gt;&gt; Users@lists.opensips.org<br>
&gt;&gt;&gt;&gt; </tt><tt><a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a></tt><tt><br>
&gt;&gt;&gt;&gt; &nbsp;<br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; Bogdan-Andrei Iancu<br>
&gt;&gt;&gt; OpenSIPS Bootcamp<br>
&gt;&gt;&gt; 15 - 19 November 2010, Edison, New Jersey, USA<br>
&gt;&gt;&gt; </tt><tt>www.voice-system.ro</tt><tt><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; Users mailing list<br>
&gt;&gt;&gt; Users@lists.opensips.org<br>
&gt;&gt;&gt; </tt><tt><a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a></tt><tt><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; ------------------------------------------------------------------------<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; Users mailing list<br>
&gt;&gt;&gt; Users@lists.opensips.org<br>
&gt;&gt;&gt; </tt><tt><a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a></tt><tt><br>
&gt;&gt;&gt; &nbsp;<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; <br>
&gt;&gt; -- <br>
&gt;&gt; Bogdan-Andrei Iancu<br>
&gt;&gt; OpenSIPS Bootcamp<br>
&gt;&gt; 15 - 19 November 2010, Edison, New Jersey, USA<br>
&gt;&gt; </tt><tt>www.voice-system.ro</tt><tt><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Users mailing list<br>
&gt;&gt; Users@lists.opensips.org<br>
&gt;&gt; </tt><tt><a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a></tt><tt><br>
&gt;&gt;<br>
&gt;&gt; ------------------------------------------------------------------------<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Users mailing list<br>
&gt;&gt; Users@lists.opensips.org<br>
&gt;&gt; </tt><tt><a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a></tt><tt><br>
&gt;&gt; &nbsp; <br>
&gt;&gt; &nbsp; &nbsp; <br>
&gt;<br>
&gt;<br>
&gt; &nbsp; <br>
<br>
<br>
-- <br>
Bogdan-Andrei Iancu<br>
OpenSIPS Bootcamp<br>
15 - 19 November 2010, Edison, New Jersey, USA<br>
</tt><tt>www.voice-system.ro</tt><tt><br>
<br>
<br>
_______________________________________________<br>
Users mailing list<br>
Users@lists.opensips.org<br>
</tt><tt><a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a></tt><tt><br>
</tt><br>
</body></html>