On Wed, Jun 1, 2011 at 4:18 PM, Daniel-Constantin Mierla <miconda@gmail.com> wrote:

Any issues still going on with the module?

Best regards,
Daniel


Hi Daniel,

yes, there are still several issues we've found. I hope that you or the other authors of the module will find some time to look into the issues.

1. last member in the chat room exits + call of ./kamctl fifo imc_list_rooms crashes Kamailio.
Working example (no bugs): oz@abc.hr creates chat room chat-555@abc.hr. Doesn't write messages to the chat room. Exits (#exit). Receives message: "The room has been destroyed". Call of ./kamctl fifo imc_list_rooms works fine and doesn't display the room which was just destroyed.

Example which crashes Kamailio: oz@abc.hr creates chat room chat-555@abc.hr. Writes something to the chat room. Exits (#exit). No messages are displayed in SIP client, although he should get "The room has been destroyed". Call of ./kamctl fifo imc_list_rooms doesn't display anything (although there are other rooms besides chat-555@abc.hr) and crashes Kamailio. In the database, in imc_rooms, chat-555@abc.hr is still there, but there are no members in imc_members table. Log:
#processing of #exit

Jun  2 16:21:49 ser-test ./kamailio[5547]: INFO: <script>: going to imc: F [sip:oz@abc.hr] T [sip:chat-555@abc.hr] B [#exit]
Jun  2 16:21:49 ser-test ./kamailio[5547]: DEBUG: imc [imc.c:525]: found command
Jun  2 16:21:49 ser-test ./kamailio[5547]: DEBUG: imc [imc_cmd.c:146]: command: [exit]
Jun  2 16:21:49 ser-test ./kamailio[5547]: DEBUG: imc [imc_mng.c:373]: found member
Jun  2 16:21:49 ser-test ./kamailio[5547]: DEBUG: imc [imc_cmd.c:1091]: nr = 0

#Call of ./kamctl fifo imc_list_rooms

Jun  2 16:22:02 ser-test ./kamailio[5550]: DEBUG: mi_fifo [fifo_fnc.c:493]: entered consume
Jun  2 16:22:02 ser-test kernel: [5934996.535094] kamailio[5550]: segfault at 10 ip 7f85c0b92a46 sp 7fffffffc700 error 4 in imc.so[7f85c0b8c000+17000]
Jun  2 16:22:02 ser-test ./kamailio[5550]: DEBUG: mi_fifo [fifo_fnc.c:493]: **** done consume
Jun  2 16:22:02 ser-test ./kamailio[5550]: DEBUG: mi_fifo [fifo_fnc.c:507]: done parsing the mi tree
Jun  2 16:22:02 ser-test ./kamailio[5557]: : <core> [pass_fd.c:293]: ERROR: receive_fd: EOF on 23
Jun  2 16:22:02 ser-test ./kamailio[5557]: DEBUG: <core> [tcp_main.c:3554]: DBG: handle_ser_child: dead child 11, pid 5550 (shutting down?)
Jun  2 16:22:02 ser-test ./kamailio[5557]: DEBUG: <core> [io_wait.h:617]: DBG: io_watch_del (0x81b400, 23, -1, 0x0) fd_no=23 called
Jun  2 16:22:02 ser-test ./kamailio[5539]: ALERT: <core> [main.c:741]: child process 5550 exited by a signal 11
Jun  2 16:22:02 ser-test ./kamailio[5539]: ALERT: <core> [main.c:744]: core was generated
Jun  2 16:22:02 ser-test ./kamailio[5539]: INFO: <core> [main.c:756]: INFO: terminating due to SIGCHLD
Jun  2 16:22:02 ser-test ./kamailio[5540]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5541]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5542]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5543]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5544]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5545]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5546]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5547]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5548]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5551]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5552]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5553]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5549]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5554]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5555]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5556]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5557]: INFO: <core> [main.c:807]: INFO: signal 15 received
Jun  2 16:22:02 ser-test ./kamailio[5539]: DEBUG: imc [imc.c:709]: room 11 chat-555

Backtrace: (same as for #join to private conference described in other topic!)
#0  0x00007f85c557eed5 in raise () from /lib/libc.so.6
#1  0x00007f85c55803f3 in abort () from /lib/libc.so.6
#2  0x000000000046119e in sig_alarm_abort (signo=<value optimized out>) at main.c:651
#3  <signal handler called>
#4  0x00007f85c5619307 in syscall () from /lib/libc.so.6
#5  0x00007f85c0b9c0c6 in imc_del_room (name=0x7f85be80a388, domain=0x7f85be80a398) at ../../mem/../futexlock.h:123
#6  0x00007f85c0b9c1d8 in imc_htable_destroy () at imc_mng.c:104
#7  0x00007f85c0b9047a in destroy () at imc.c:736
#8  0x00000000004d9964 in destroy_modules () at sr_module.c:732
#9  0x0000000000462930 in cleanup (show_status=1) at main.c:527
#10 0x0000000000463564 in shutdown_children (sig=<value optimized out>, show_status=1) at main.c:668
#11 0x0000000000463e9c in handle_sigs () at main.c:759
#12 0x0000000000465572 in main_loop () at main.c:1676
#13 0x0000000000467f53 in main (argc=<value optimized out>, argv=0x0) at main.c:2398


2. #remove command prints wrong info.
Example: oz@abc.hr creates chat room chat-555@abc.hr. Invites slavko@abc.hr (#invite slavko@abc.hr). Invites pero@abc.hr. Both of them join with #accept. oz@abc.hr removes pero (#remove pero@abc.hr). Pero's client displays messages: "You have been removed from this room." and Pero can't send messages to chat room any more. However, Oz's and Slavko's clients display message: "<sip:pero@abc.hr> has joined the room". 


3. #invite & #remove commands do not work after typing some text in conference room.
Example 1: oz@abc.hr creates chat room chat-555@abc.hr. Invites slavko@abc.hr (#invite slavko@abc.hr). Invites pero@abc.hr. Both of them join with #accept. Pero and Slavko write messages to chat room. Oz can remove them at this point. However, after Oz writes a message to chat room, he can't remove members any more and receives 500 command error. Log:

Jun  2 14:58:42 ser-test /usr/local/kamailio-ozren/sbin/kamailio[4139]: INFO: <script>: going to imc: F [sip:oz@abc.hr] T [sip:chat-555@abc.hr] B [#remove slavko@abc.hr]
Jun  2 14:58:42 ser-test /usr/local/kamailio-ozren/sbin/kamailio[4139]: DEBUG: imc [imc.c:525]: found command
Jun  2 14:58:42 ser-test /usr/local/kamailio-ozren/sbin/kamailio[4139]: DEBUG: imc [imc_cmd.c:146]: command: [remove]
Jun  2 14:58:42 ser-test /usr/local/kamailio-ozren/sbin/kamailio[4139]: DEBUG: imc [imc_cmd.c:151]: parameter 0=[slavko@abc.hr]
Jun  2 14:58:42 ser-test /usr/local/kamailio-ozren/sbin/kamailio[4139]: DEBUG: imc [imc_mng.c:373]: found member
Jun  2 14:58:42 ser-test /usr/local/kamailio-ozren/sbin/kamailio[4139]: ERROR: imc [imc_cmd.c:664]: user [oz] has no right to remove other users [sip:slavko@abc.hr]!
Jun  2 14:58:42 ser-test /usr/local/kamailio-ozren/sbin/kamailio[4139]: ERROR: imc [imc.c:578]: failed to handle 'remove'

./kamctl fifo imc_list_rooms
ROOM::  URI=sip:chat-555@abc.hr MEMBERS=0 OWNER=sip:oz@abc.hr

./kamctl fifo imc_list_members sip:chat-555@abc.hr
ROOM:: sip:chat-555@abc.hr NR_OF_MEMBERS=2
        MEMBER:: sip:oz@abc.hr
        MEMBER:: sip:slavko@abc.hr

Example 2: oz@abc.hr creates chat room chat-666@abc.hr. Invites slavko@abc.hr. Slavko joins with #accept. Oz writes a message to chat room. Invites pero@abc.hr. Imc manager returns 500 command error. (NOTE: If Oz doesn't write any text to chat room, he can invite multiple users.) Here is the log:

Jun  2 16:42:43 ser-test /usr/local/kamailio-ozren/sbin/kamailio[5848]: INFO: <script>: going to imc: F [sip:oz@abc.hr] T [sip:chat-666@abc.hr] B [#invite pero@abc.hr]
Jun  2 16:42:43 ser-test /usr/local/kamailio-ozren/sbin/kamailio[5848]: DEBUG: imc [imc.c:525]: found command
Jun  2 16:42:43 ser-test /usr/local/kamailio-ozren/sbin/kamailio[5848]: DEBUG: imc [imc_cmd.c:146]: command: [invite]
Jun  2 16:42:43 ser-test /usr/local/kamailio-ozren/sbin/kamailio[5848]: DEBUG: imc [imc_cmd.c:151]: parameter 0=[pero@abc.hr]
Jun  2 16:42:43 ser-test /usr/local/kamailio-ozren/sbin/kamailio[5848]: DEBUG: imc [imc_mng.c:373]: found member
Jun  2 16:42:43 ser-test /usr/local/kamailio-ozren/sbin/kamailio[5848]: ERROR: imc [imc_cmd.c:441]: user [oz] has no right to invite other users!
Jun  2 16:42:43 ser-test /usr/local/kamailio-ozren/sbin/kamailio[5848]: ERROR: imc [imc.c:554]: failed to handle 'invite'

./kamctl fifo imc_list_rooms
ROOM::  URI=sip:chat-666@abc.hr MEMBERS=0 OWNER=sip:oz@abc.hr

./kamctl fifo imc_list_members sip:chat-666@abc.hr
ROOM:: sip:chat-666@abc.hr NR_OF_MEMBERS=2
        MEMBER:: sip:oz@abc.hr
        MEMBER:: sip:slavko@abc.hr


4. ./kamctl fifo imc_list_rooms command doesn't report correct number of members in the room, number of members remains 0, although members have successfully joined the chat room and ./kamctl fifo imc_list_members sip:chat-555@abc.hr returns correct number of members.


Best regards,
Ozren