Re: [OpenSIPS-Users] redis cache sharing for dialog storage?
Hi there, I am not sure why the dialog stats will not be shared. If all records are going to redis then I have a redis cluster which synchs the cache. When I fetch the profile size it should be same (if it is being fetched from the redis) across all the opensips node. I am bit sceptical to upgrade without knowing what's happening. On Tue, Nov 6, 2018 at 4:53 AM SamyGo wrote: > I have a strong feeling that you're using an old version of opensips to > expect it to share dialog states/profiles. I think you'll need to use newer > opensips 2.4+ having dialog sharing capability using proto_bin and > clusterer module: > > http://www.opensips.org/html/docs/modules/2.4.x/dialog.html#param_profile_replication_cluster > > > On Mon, Nov 5, 2018 at 5:30 AM J E H A N Z A I B < > jehanzaib.ki...@gmail.com> wrote: > >> Hi team, >> >> I used redis cache for dialog storage. I have 2 different servers both >> are sharing the same redis. Is the profile size shared in this case? >> >> here is the dialog config. >> >> loadmodule "dialog.so" >> modparam("dialog", "enable_stats", 1) >> modparam("dialog", "cachedb_url", "redis:mysip://mysipx.xx.xx:/") >> >> This is how I check my profile size. >> create_dialog(); >> set_dlg_profile("myuniqprof","$avp(myprofile_id)"); >> get_profile_size("myuniqprof","$avp(myprofile_id >> )","$var(current_profile_size)"); >> >> Please note I am using version: opensips 1.11.3-notls >> >> >> -- >> Regards, >> Jehanzaib >> ___ >> Users mailing list >> Users@lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> > ___ > Users mailing list > Users@lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -- Regards, Jehanzaib ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] OpenSIPS Control Panel 8.2.4 was released
Hi John, Thanks for all your testing - this is something that we so most appreciate ;). To help us even more, could you please split the report (you have in the email) as individual issues and create corresponding tickets on github: https://github.com/OpenSIPS/opensips-cp/issues Best regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com OpenSIPS Bootcamp 2018 http://opensips.org/training/OpenSIPS_Bootcamp_2018/ On 11/05/2018 04:59 PM, John Quick wrote: Hello Bogdan, Thanks for releasing a new version of the Control Panel. There are some great new features in this version that I want to try. I have been testing OCP v8 on a CentOS 6 server. I'm finding quite a lot of errors - it is possible some of these are associated with the operating system or the version of PHP I am using. PHP is v 5.3.3 The most critical problem for me concerns administrator access: I am unable to change the password for the admin user. As a precaution, I created a new admin user with a different name and then tried to revoke the key privileges of the original admin user, but this made no difference until I edited the source code and changed the tool name passed to the get_priv() function as detailed below. Here are my full notes on the problems encountered so far and code adjustments I have made: In login.php: Warns me "It is not safe to rely on the systems timezone settings. You are required to use date.timezone or date_default_timezone_set() function". As a work-around, I added calls to date_default_timezone_set("Europe/London") in a couple of places to stop these warnings being written. Many of the tabs display a blank page. In the httpd log file; the httpd log files shows errors about "unexpected [". When I look up the file and line number shown in the httpd log message, it's always a line that calls the die() function to handle failure of an SQL request. I found it was due to the use of "errorInfo()[2]". If you remove the [2], it doesn't give an error and the page is rendered too. Used grep to find every case like this: # grep -rl "errorInfo()\[" . ./users/user_management/template/user_management.main.php ./users/acl_management/template/acl_management.main.php ./system/dialplan/template/dialplan.main.php ./system/dialplan/dialplan.php ./system/siptrace/template/tracer.main.php ./system/drouting/template/groups.main.php ./system/drouting/template/rules.main.php ./system/drouting/template/carriers.main.php ./system/drouting/template/gateways.main.php ./system/drouting/lib/carriers.test.inc.php ./system/drouting/lib/carriers.functions.inc.php ./system/tls_mgm/lib/data_loader.php ./system/loadbalancer/template/loadbalancer.main.php ./system/dispatcher/template/dispatcher.main.php ./system/dispatcher/template/dispatcher.form.php ./system/tviewer/lib/data_loader.php ./system/callcenter/lib/data_loader.php ./admin/list_admins/template/list_admins.main.php Admin Access Control I cannot find a way to change the admin password. It always accepts the password of "opensips" even after resetting it in the Admin User editing form and also deleting it from the field "password" in the ocp_admin_privileges table. On further testing, I then found that none of the changes I make to the admin user get saved to the DB - not just the password, but also the first name and last name fields. Access privileges were not working to restrict whether the logged-in user could change their own (and other people's) admin privileges. Found this was because the get_priv() function was being called with the argument set to "list_admins" and that the arrays used to store access privileges only have a key called "user_management" and do not have one for "list_admins". There are no lines of code to act as a "catch-all" in the get_priv() function so if the tool name passed to the function does not match any of the known tab names, then it fails to set the session variable read_only. The absence of any value is then treated as "grant full access" in the corresponding module so it is not very safe. As a work-around, I edited web/tools/admin/list_admins/index.php and changed the following line: << get_priv("list_admins"); get_priv("user_management"); John Quick Smartvox Limited ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] async(wait_for_event()) statement in a branch_route[]
Hi Vitalii, Yes, that is correct. The idea is you cannot do async() ops in the branch route as this type of route is strongly interfering with the SIP signaling - branch route is triggered when a new branch is set out (as a result of a t_relay) and no signaling operations are allowed (as you are already doing a signaling op). Still, this limitation is valid only for async calls () as async is based on the transaction status. But, you can do regular sync() queries from the branch route, with a risk of blocking the processes of opensips. The spiraling (as you described) is also a valid option, but you need to be a bit careful with the script logic to be sure you do not mix the loops :) Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com OpenSIPS Bootcamp 2018 http://opensips.org/training/OpenSIPS_Bootcamp_2018/ On 11/02/2018 12:04 PM, Vitalii Aleksandrov wrote: Hi Bogdan, Ok. Let's say I have 5 branches and before calling t_relay() want to iterate over branches and do some async() action. From my understanding if I do something via async() it will suspend the whole transaction with all branches and if I need the same action for every branch it will create a big PDD because all async() calls will be done sequentially. As a workaround I think I can send all branches to myself (spiral call) and receiving those INVITEs from loopback opensips will create a separate transaction for every destination so I'll be able to run async() tasks in parallel and forward a call to every destination immediately its async() task is finished. Hi Vitalii, The async() statement can be used only in REQUEST route. Still, whatever you need to do in terms of async query from branch route can also be done from request route. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com OpenSIPS Bootcamp 2018 http://opensips.org/training/OpenSIPS_Bootcamp_2018/ On 11/01/2018 01:46 PM, Vitalii Aleksandrov wrote: Hi, I'm a bit new to opensips, while have some experience with kamailio. Trying to figure out whether it's possible to use async() statement from branch_route[]. From the documentation I understood that async() functionality is tightly connected to the TM module and creates some context attached to a transaction, suspends it and resumes a transaction on an event. If said above is correct I suppose calling async() from a branch_route[] to suspend only one branch and expect that other branches will continue their normal execution is not what it was designed for.. Is there any way to forward a branch while other branches wait for an async event or i/o? Would appreciate any ideas. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] OpenSIPS Control Panel 8.2.4 was released
Hi Yuriy, Thanks for spotting that, I just pushed a fix: https://github.com/OpenSIPS/opensips-cp/commit/9556483a80514509def862bd2c870f738adda29a Best regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com OpenSIPS Bootcamp 2018 http://opensips.org/training/OpenSIPS_Bootcamp_2018/ On 11/05/2018 05:30 PM, zzz wrote: Hi Bogdan, Thanks for all you do. Ive tried the new release on debian8, it works great. Would you please change "domaini" to "domain" in the file acl_management.php https://github.com/OpenSIPS/opensips-cp/blob/8.2.4/web/tools/users/acl_management/acl_management.php lines 156 and 169. Thanks, Yuriy -Original Message- From: Users [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Thursday, November 1, 2018 2:12 PM To: users@lists.opensips.org; developensips ; busin...@lists.opensips.org Subject: [OpenSIPS-Users] OpenSIPS Control Panel 8.2.4 was released Hi all, We are proud and happy to announce the release of the OpenSIPS Control Panel 8.2.4 . This OpenSIPS Control Panel is a provisioning (SIP users and OpenSIPS system) web interface design for and compatible with OpenSIPS 2.4 LTS - http://controlpanel.opensips.org . The OCP 8.2.4 has new awesome additions : * a new modern look by reworking the entire CSS and layout, see http://controlpanel.opensips.org/screenshots.php * a new tool for handling the RTPEngine instances via database * a new tool for provisioning TLS domains and certificates via database * a more powerful Tviewer engine to allow more complex displaying, correlation and validation of the data types and to create inter-tool web links. In the same time the OCP 8.2.4 brings great improvements under the hood: * compatibility with PHP 7, by migrating from MDB2 to PDO database support * better security of the DB operations by migrating to prepared statements, to avoid SQL injections * improved security for the WEB sessions and page access to avoid illegitimate direct access to sub-pages * extended tooltip and data validation support * code refactoring for easy further development This new OpenSIPS Control Panel release is a significant step forward for the project in terms of vision. All this happened thanks to the people and companies involved in the development of the project. Special thanks to the Voicenter team - https://www.voicenter.com - for its great contribution in re-styling and re-designing this web interface. Download and enjoy it as it's freshly baked for you, ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] redis cache sharing for dialog storage?
I have a strong feeling that you're using an old version of opensips to expect it to share dialog states/profiles. I think you'll need to use newer opensips 2.4+ having dialog sharing capability using proto_bin and clusterer module: http://www.opensips.org/html/docs/modules/2.4.x/dialog.html#param_profile_replication_cluster On Mon, Nov 5, 2018 at 5:30 AM J E H A N Z A I B wrote: > Hi team, > > I used redis cache for dialog storage. I have 2 different servers both are > sharing the same redis. Is the profile size shared in this case? > > here is the dialog config. > > loadmodule "dialog.so" > modparam("dialog", "enable_stats", 1) > modparam("dialog", "cachedb_url", "redis:mysip://mysipx.xx.xx:/") > > This is how I check my profile size. > create_dialog(); > set_dlg_profile("myuniqprof","$avp(myprofile_id)"); > get_profile_size("myuniqprof","$avp(myprofile_id > )","$var(current_profile_size)"); > > Please note I am using version: opensips 1.11.3-notls > > > -- > Regards, > Jehanzaib > ___ > Users mailing list > Users@lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] async(wait_for_event()) statement in a branch_route[]
Hi Bogdan, Intrigued by this thread, I recall in older threads I was told that I can do something like this, I'm going to use my example. event_route[ABCD]{ route(DO_SOMETHING); } and then in that DO_SOMETHING route I can use the redis/mysql functions or anything that is not acceptable to be used in the event_route. By the same analogy is this also the right way to write? branch_route[per_branch_ops]{ xlog("I'm a branch of the call , I cant do alot here"); route(WAIT_FOR_EVENT); } where; route[WAIT_FOR_EVENT]{ async(wait_for_event("ABCX","$avp(filter"),"40"),"resume_here"); } I think another way to ask Vitalii's question would be, how parallel is "parallel forking".? If there are 5 branches and each of them takes between A-Z amount of time to process script functions then all of them are going to be relayed out only when ALL branches are done processing? or each branch is relayed out independent of how much time other branch is taking. Hope to catch some insight on this. (in context of opensips version 2.4.2) Regards, Sammy On Fri, Nov 2, 2018 at 6:07 AM Vitalii Aleksandrov wrote: > Hi Bogdan, > > Ok. Let's say I have 5 branches and before calling t_relay() want to > iterate over branches and do some async() action. From my understanding > if I do something via async() it will suspend the whole transaction with > all branches and if I need the same action for every branch it will > create a big PDD because all async() calls will be done sequentially. > > As a workaround I think I can send all branches to myself (spiral call) > and receiving those INVITEs from loopback opensips will create a > separate transaction for every destination so I'll be able to run > async() tasks in parallel and forward a call to every destination > immediately its async() task is finished. > > > > Hi Vitalii, > > > > The async() statement can be used only in REQUEST route. Still, > > whatever you need to do in terms of async query from branch route can > > also be done from request route. > > > > Regards, > > > > Bogdan-Andrei Iancu > > > > OpenSIPS Founder and Developer > > http://www.opensips-solutions.com > > OpenSIPS Bootcamp 2018 > > http://opensips.org/training/OpenSIPS_Bootcamp_2018/ > > > > On 11/01/2018 01:46 PM, Vitalii Aleksandrov wrote: > >> Hi, > >> > >> I'm a bit new to opensips, while have some experience with kamailio. > >> > >> Trying to figure out whether it's possible to use async() statement > >> from branch_route[]. > >> > >> From the documentation I understood that async() functionality is > >> tightly connected to the TM module and creates some context attached > >> to a transaction, suspends it and resumes a transaction on an event. > >> If said above is correct I suppose calling async() from a > >> branch_route[] to suspend only one branch and expect that other > >> branches will continue their normal execution is not what it was > >> designed for.. > >> > >> Is there any way to forward a branch while other branches wait for an > >> async event or i/o? > >> > >> Would appreciate any ideas. > >> > >> > >> ___ > >> Users mailing list > >> Users@lists.opensips.org > >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > > ___ > Users mailing list > Users@lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] OpenSIPS Control Panel 8.2.4 was released
Hi Bogdan, Thanks for all you do. Ive tried the new release on debian8, it works great. Would you please change "domaini" to "domain" in the file acl_management.php https://github.com/OpenSIPS/opensips-cp/blob/8.2.4/web/tools/users/acl_management/acl_management.php lines 156 and 169. Thanks, Yuriy -Original Message- From: Users [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Thursday, November 1, 2018 2:12 PM To: users@lists.opensips.org; developensips ; busin...@lists.opensips.org Subject: [OpenSIPS-Users] OpenSIPS Control Panel 8.2.4 was released Hi all, We are proud and happy to announce the release of the OpenSIPS Control Panel 8.2.4 . This OpenSIPS Control Panel is a provisioning (SIP users and OpenSIPS system) web interface design for and compatible with OpenSIPS 2.4 LTS - http://controlpanel.opensips.org . The OCP 8.2.4 has new awesome additions : * a new modern look by reworking the entire CSS and layout, see http://controlpanel.opensips.org/screenshots.php * a new tool for handling the RTPEngine instances via database * a new tool for provisioning TLS domains and certificates via database * a more powerful Tviewer engine to allow more complex displaying, correlation and validation of the data types and to create inter-tool web links. In the same time the OCP 8.2.4 brings great improvements under the hood: * compatibility with PHP 7, by migrating from MDB2 to PDO database support * better security of the DB operations by migrating to prepared statements, to avoid SQL injections * improved security for the WEB sessions and page access to avoid illegitimate direct access to sub-pages * extended tooltip and data validation support * code refactoring for easy further development This new OpenSIPS Control Panel release is a significant step forward for the project in terms of vision. All this happened thanks to the people and companies involved in the development of the project. Special thanks to the Voicenter team - https://www.voicenter.com - for its great contribution in re-styling and re-designing this web interface. Download and enjoy it as it's freshly baked for you, -- Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Raise event from MI/FIFO interface(externally)
Hi Bogdan, Sure thing I'd open up a feature request. Yes thats what we decided to go with to use sipsak or something like that to trigger SIP packet and make use of it. Apologize for late reply; thanks a lot for your response. Regards, Sammy On Tue, Oct 16, 2018 at 4:29 AM Bogdan-Andrei Iancu wrote: > Hi Sammy, > > The Event Interface philosophy is to allow external apps to get access to > the events generated by OpenSIPS; basically a data flow from OpenSIPS to > outside world. So, there is no way to trigger an event from outside (via > MI). > Still, your example is valid, so please open a feature request on github > and we could add a "raise_event" MI function. > > As really (really) dirty hack, you can use (if possible) some SIP OPTIONS > to trigger the event. From the web send an OPTIONS via UDP, with a special > RURI -> you identify the RURI in script and do a raise_event() in script. > > Regards, > > Bogdan-Andrei Iancu > > OpenSIPS Founder and Developer > http://www.opensips-solutions.com > OpenSIPS Bootcamp 2018 > http://opensips.org/training/OpenSIPS_Bootcamp_2018/ > > On 10/11/2018 07:35 PM, SamyGo wrote: > > Hi, > > I'm trying to find out document pages regarding raising events from > outside the OpenSIPS via fifo/mi_* modules. All I have read so far is > opensips can send events and their data OUT to external "subscribing" > applications. There is even a fifo command to subscribe for an event from > FIFO layer. > > Kindly guide me as how do I tell OpenSIPS that a particular Event has > triggered. > > My usage scenario is (OpenSIPS 2.2.7) a caller is > waiting_on_event("OPENSIPS_BOOTCAMP"); > Now some external web monitoring bot just realized Bootcamp has started > and it wants to raise this event to the waiting caller ! > > opensipsctl fifo raise_event OPENSIPS_BOOTCAMP 22Oct18 Romania > > Best Regards, > Sammy > > > ___ > Users mailing > listUsers@lists.opensips.orghttp://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] OpenSIPS Control Panel 8.2.4 was released
Hello Bogdan, Thanks for releasing a new version of the Control Panel. There are some great new features in this version that I want to try. I have been testing OCP v8 on a CentOS 6 server. I'm finding quite a lot of errors - it is possible some of these are associated with the operating system or the version of PHP I am using. PHP is v 5.3.3 The most critical problem for me concerns administrator access: I am unable to change the password for the admin user. As a precaution, I created a new admin user with a different name and then tried to revoke the key privileges of the original admin user, but this made no difference until I edited the source code and changed the tool name passed to the get_priv() function as detailed below. Here are my full notes on the problems encountered so far and code adjustments I have made: In login.php: Warns me "It is not safe to rely on the systems timezone settings. You are required to use date.timezone or date_default_timezone_set() function". As a work-around, I added calls to date_default_timezone_set("Europe/London") in a couple of places to stop these warnings being written. Many of the tabs display a blank page. In the httpd log file; the httpd log files shows errors about "unexpected [". When I look up the file and line number shown in the httpd log message, it's always a line that calls the die() function to handle failure of an SQL request. I found it was due to the use of "errorInfo()[2]". If you remove the [2], it doesn't give an error and the page is rendered too. Used grep to find every case like this: # grep -rl "errorInfo()\[" . ./users/user_management/template/user_management.main.php ./users/acl_management/template/acl_management.main.php ./system/dialplan/template/dialplan.main.php ./system/dialplan/dialplan.php ./system/siptrace/template/tracer.main.php ./system/drouting/template/groups.main.php ./system/drouting/template/rules.main.php ./system/drouting/template/carriers.main.php ./system/drouting/template/gateways.main.php ./system/drouting/lib/carriers.test.inc.php ./system/drouting/lib/carriers.functions.inc.php ./system/tls_mgm/lib/data_loader.php ./system/loadbalancer/template/loadbalancer.main.php ./system/dispatcher/template/dispatcher.main.php ./system/dispatcher/template/dispatcher.form.php ./system/tviewer/lib/data_loader.php ./system/callcenter/lib/data_loader.php ./admin/list_admins/template/list_admins.main.php Admin Access Control I cannot find a way to change the admin password. It always accepts the password of "opensips" even after resetting it in the Admin User editing form and also deleting it from the field "password" in the ocp_admin_privileges table. On further testing, I then found that none of the changes I make to the admin user get saved to the DB - not just the password, but also the first name and last name fields. Access privileges were not working to restrict whether the logged-in user could change their own (and other people's) admin privileges. Found this was because the get_priv() function was being called with the argument set to "list_admins" and that the arrays used to store access privileges only have a key called "user_management" and do not have one for "list_admins". There are no lines of code to act as a "catch-all" in the get_priv() function so if the tool name passed to the function does not match any of the known tab names, then it fails to set the session variable read_only. The absence of any value is then treated as "grant full access" in the corresponding module so it is not very safe. As a work-around, I edited web/tools/admin/list_admins/index.php and changed the following line: << get_priv("list_admins"); >> get_priv("user_management"); John Quick Smartvox Limited ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] redis cache sharing for dialog storage?
Hi team, I used redis cache for dialog storage. I have 2 different servers both are sharing the same redis. Is the profile size shared in this case? here is the dialog config. loadmodule "dialog.so" modparam("dialog", "enable_stats", 1) modparam("dialog", "cachedb_url", "redis:mysip://mysipx.xx.xx:/") This is how I check my profile size. create_dialog(); set_dlg_profile("myuniqprof","$avp(myprofile_id)"); get_profile_size("myuniqprof","$avp(myprofile_id )","$var(current_profile_size)"); Please note I am using version: opensips 1.11.3-notls -- Regards, Jehanzaib ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users