- URL: https://github.com/kamailio/kamailio/commit/9ce119126c6d618b83fe2a2ba6caeeac698c63eb Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00
imc: rename command "deny" to "reject" Since the command effectively "rejects" an invitation, the word "reject" is a better match. Keep "deny" as an alias to the command for backward compatibility. - URL: https://github.com/kamailio/kamailio/commit/196c2e360d29189e318f6a16c6d79453a40b8e0d Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: minor language fixes - URL: https://github.com/kamailio/kamailio/commit/cc4778b4ec537cabdd7cceb0d2cfde041647e459 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: rename "exit" to "leave", keep backward compatiblity The command name "leave" better describes what the command does and is less confusing for users (coincidentally, source code comments and debugging messages also use leave, not exit). The command name "exit" is kept as an alias for backward compatibility. - URL: https://github.com/kamailio/kamailio/commit/3261a0aefbcd9c9d7e412b699ef34312e6af09e3 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: remove code duplication. A significant portion of the functions handling invite and remove was duplicated code. Refactor the code into a common function. - URL: https://github.com/kamailio/kamailio/commit/3318a7f95fb4c5b38d1da0afd60db0365b0f16fc Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: collect chat room related strings in one place. Rather than embedding strings directly in the functions that use them, it is better to have them collected at one place so that they can be easily modified. Later, we may turn the strings into module parameters so that they can be customized at startup time, e.g., to translate them. - URL: https://github.com/kamailio/kamailio/commit/95335ae341085f6eeecde53362bc0db8370c7ec5 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: use STR_FMT in formatted string arguments. This makes the code somewhat shorter and safer. - URL: https://github.com/kamailio/kamailio/commit/b66870a0ff94399d9af284062a16ceb564b19995 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: use correct command prefix in the invite message. When showing the INVITATION to the user, make sure to show the actual command prefix that has been configured via the module parameter. - URL: https://github.com/kamailio/kamailio/commit/4e2a3682569ebdfb33f09a3251382b2c2da3039f Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: make behavior of "#join" when room does not exist configurable Before, the command "#join" would automatically create the room and add the user to the room if it does not exist. That behavior can be confusing, especially on mobile where it is easy to miss-type room name. With the default behavior, the user would be added to the wrong room in that case. This patch introduces module parameter "create_on_join" which makes this behavior configurable. If set to 0, command join will not create the room if it does not exist and would send an error back to the user instead. - URL: https://github.com/kamailio/kamailio/commit/ab87f61a5889ad90229b0d3ec9dcae0c16506385 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: define message prefix with a macro This simple change makes it much easier to consistently change the prefix across all messages sent to the user. By default, the prefix is "*** ". - URL: https://github.com/kamailio/kamailio/commit/56c012664e9aadcb5f61f1093710d73f9ea3156e Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: make behavior of "#create" configurable when room already exists The default behavior of the create command is to silently add the user to a group of one already exists. This can be confusing in some scenarios, e.g., when the user miss-types the room number. This patch adds a module parameter called "check_on_create" which makes it possible to customize this behavior. If set and the user attempts to create a room that already exists, the command will report an error. - URL: https://github.com/kamailio/kamailio/commit/dbdf69264d65a72490bea33b68b2d04115eb71b6 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: pass both parsed and unparsed URIs to all command handlers In order for the command handler to be able to send a response back when the corresponding room does not exist, e.g., when sending an error message, the handler must have access to the original unparsed URI. This change fixes one bug on the side: when sending a response, the response will be sent to the correct part number which was part of the original SIP URI. Previously, port numbers were ignored since the SIP URI to send the message to was constructed just from the username and domain parts. - URL: https://github.com/kamailio/kamailio/commit/b39822eff0c0857f9b5a5220504ad6d36fa944b6 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: consistent handling of command parameters. Most (all) commands takes parametes in one of the following forms: username, username@domain, sip:username@domain. The purpose of this change is to provide consistent handling of such parameters across all commands and their arguments. If a command takes a user or a room as a parameter, the user can provide just a username, username@domain, or a full URI sip:username@domain. The imc module will automatically obtain missing parts from other parts of the message, e.g., the Request-URI or From headers. In addition, all debugging and logging messages print the full URI of users and rooms. This significantly helps with debugging and development. - URL: https://github.com/kamailio/kamailio/commit/b00433b7710b7c4f879341258edad78ff4a622fc Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: make #create command arguments optional With no arguments, the room name is taken from To header and the room will be made public. With one argument, if the value is 'private', a private room with name from To is created. If the value of the single argument is anything else, it is taken as room name and the room will be made public. With two argument, the first argument is room name and the second argument must be string 'private'. This change makes the #create command consistent with all other commands where the room/user name is also optional. - URL: https://github.com/kamailio/kamailio/commit/39457968f10be50b5ccf3f81c71dd68c078af344 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: rename command #list to #members. List was not very good name for the command, because the user would not know whether the command lists rooms or members within a room. The alias "list" is kept for backward compatibility. - URL: https://github.com/kamailio/kamailio/commit/e10974fd6d0ace3654e6b45eb6b5a9e13d270903 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: cleanup in invite related messages. In the original version, when the user receives an invitation to join the room, it was not obvious who is inviting. - URL: https://github.com/kamailio/kamailio/commit/d7e3d921a41de6ebc40ed13a788b9a06c26c3045 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: consistent formatting of room/user names. No matter in which message a room URI or user URI is printed, always use the same function to consistent format the resulting string. In most cases, this means printing just the username portion of the full URI. - URL: https://github.com/kamailio/kamailio/commit/3de5f6da6a07c2d1afec7ddd3fdd6d1f8d7a1b7b Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: improved #join command handling This patch improves the overall handling of the #join command on the chat server. If a user attempts to join a room they are already a member of, notify the user, instead of sending a broadcast that the user has joined again to the entire room. If a user attempts to join a private room, notify them that private rooms are by invitation only with a unicast message and send a broadcast to the entire room about the join attempt so that administrators can see the join attempt in order to decide whether or not to send an invitation to the user. - URL: https://github.com/kamailio/kamailio/commit/afe2a81a8e9ded484b4b161e3cd629e56a665747 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: notify user #leaving a room. When a user chooses to leave a room, send the broadcast first. That way, the broadcast will include the leaving user and they will be able to see that they have left the room successfully. Also, this behavior is consistent with the behavior of #join. - URL: https://github.com/kamailio/kamailio/commit/7ad7bb300e4ef2feb9691d7e6e0b2be57f1f6366 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: make message buffer larger Enlarge the buffer so that longer messages and user lists can be sent. A larger buffer is fine when TCP and or TLS is used. - URL: https://github.com/kamailio/kamailio/commit/ce45d49d837d5ba0f02ebba48899ef5c872aba71 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: a small fix in #join When a user has left or been removed from a room and try to join again, make sure to test the IMC_MEMBER_DELETED flag, otherwise they'd be getting a message that they are already in the room. - URL: https://github.com/kamailio/kamailio/commit/d6760d680bed15d0f90c402ffca9b98a01eb7274 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: check arguments in #invite The command has one required argument: the name/URI of the user to be invited to the room. - URL: https://github.com/kamailio/kamailio/commit/ec243a6a205b647a83e3a3535fca3626ad91fba7 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: implement command #add The command can be used by room owners and administrators to explicitly add other users as members to the room. It works a bit like the command #invite, except that the added user will have no chance to accept or reject the request. - URL: https://github.com/kamailio/kamailio/commit/e742fe4dc56e8ba37b4058996e037c851301c2d4 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: implement command #rooms The command can be used to list all the rooms available on the chat server. - URL: https://github.com/kamailio/kamailio/commit/1073c6d0a133df342983829e430415a33b227ddc Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: add In-Reply-To header to MESSAGEs generated in response When generating a MESSAGE in response to a command, add a In-Reply-To header field to the second message with the Call-ID of the (original) message that carried the command. A chat client could then use the In-Reply-To header field to correlate requests and responses carried in-band in chat messages. - URL: https://github.com/kamailio/kamailio/commit/42a66e4f075c244e41e8b828f394e949974e2363 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: add Supported header to all chat room MESSAGEs. The header contains value "kamailio/imc" which indicates that the end-point is a chat room that supports the in-band signaling protocol implemented by Kamailio's imc module. - URL: https://github.com/kamailio/kamailio/commit/ba4de81405c7e1801ea7cafb5bbf5c8849a1b3d4 Author: Jan Janak <jan...@cs.columbia.edu> Date: 2019-02-26T17:24:33+01:00 imc: report error if room owner sends #leave Previously, if the room owner send the #leave command, the room would have been automatically destroyed. That is somewhat dangerous and error prone, e.g., if the user sends the #leave command to the wrong room. With this patch, #leave reports an error if used by a room owner and the user is encouraged to use #destroy instead. _______________________________________________ Kamailio (SER) - Development Mailing List sr-dev@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev