playSMS 1.4.7 test version

Hi Anton
All looks good with the FIXes. Thanks

Azaman

I added 2 more changes for 1.4.7:

  • change password to password_hash() BCRYPT
    • user’s password stays the same but the format will be changed to bcrypt hash during login or preferences update automatically
  • update core_net_match() to secure webservices with mlocati/ip-lib package
    • supports ipv4 and ipv6

change logs since last tag:

latest 1.4.7 test version:

anton

***my fresh install.conf on ubuntu 22.0.4.3 PHP8.2 ***

# Path to playSMS extracted source files
PATHSRC="$(pwd)"

# Path to playSMS web files
# note: please make sure your web root path, in this example its /var/www/html
PATHWEB="/home/ubuntu/web"

# Path to playSMS additional files
PATHLIB="/home/ubuntu/lib"

# Path to playSMS daemon and other binary files
PATHBIN="/home/ubuntu/bin"

# Path to playSMS log files
PATHLOG="/home/ubuntu/log"

# Path to playSMS daemon configuration file
# note: this example will create playsmsd.conf in /etc
PATHCONF="/home/ubuntu/etc"


# END OF INSTALL DATA

playsmsd is running BUT in portal playSMS daemon status is RED although the logs are shown

Checked web/plugin/feature/playsmslog/config.php on the running server indicated differently from install config

<?php
defined('_SECURE_') or die('Forbidden');

if (auth_isadmin()) {
	$menutab = $core_config['menutab']['reports'];
	$menu_config[$menutab][] = array(
		"index.php?app=main&inc=feature_playsmslog&op=playsmslog_list",
		_('View log') 
	);
}

$plugin_config['playsmslog']['playsmsd']['bin'] = '/usr/local/bin/playsmsd';
$plugin_config['playsmslog']['playsmsd']['conf'] = '/etc/playsmsd.conf';

1. Changed the config below manually, restart the apache server BUT the playsms status BUTTON still RED when click the View Log (update: Got the Button to GREEN after going to other menu items and the click the View Log menu again then only it shows GREEN)

2. Can the config updated accordingly when do fresh install for the following to reflect as per install.conf?

$plugin_config['playsmslog']['playsmsd']['bin'] = '/home/ubuntu/bin/playsmsd';
$plugin_config['playsmslog']['playsmsd']['conf'] = '/home/ubuntu/etc/playsmsd.conf';

3. Also noticed that the time in the View Log is NOT as per system and php datetime set. In my case I have configured my system date for the OS, php.ini all to +0800 time zone BUT the log TIME seem not match

Hi,

Ill see what I can do about the log path, it would be nice if we dont need to change config file.

Datetime on log and database should be in UTC, utc+0. My take at the time it was coded: datetime should be at utc for things recorded, and should be in user’s timezone for display.

Anton

Hi
Thanks Anton for the consideration as it will smoothen the installation process.
Noted wrt to the date in the log view.

Thanks
Azaman

Hi,

I hope this is the last update for 1.4.7 test version :smiley:

Change log:

  • saves playsmsd check_json data and last_update time to registry
  • playsmslog plugin reads IS_RUNNING status from registry, no need to define paths

No new files added so you can just replace all previous tag files with this, and don’t forget to update playsmsd too

anton

Hi
Looks good install from fresh. :clap:

Thanks Anton

When I was testing with fake sms outgoing (using gateway dev) for about 1 to 3 millions submission continuously, I found playSMS so slow in updating delivery reports, so I made some changes, while this should’ve been released last week as 1.4.7.

Anyway, if anyone can test please do:

Use this to generate lots of test SMS outgoing, make sure to setup route so that the test SMS is using gateway dev:

anton

Hi Anton

  1. Had some issues on 1.4.7 with sending sms using webservices. Got authentication failed. Tested with 2 different users got same ERROR. Using user admin with token it’s OK

No issue sending message from compose message for user1 and admin

curl 'http://192.168.64.11/index.php?app=ws&op=pv&u=user1&h=118e5be8d3b987c8449251f05a667c78&to=155501&msg=message+from+webtoken+commanline&smsc=smpp1'
{"status":"ERR","error":"100","error_string":"authentication failed","timestamp":1702138638}
  1. Yes agree the DLR update is very slow. Even with this latest version 1.4.7-2312081230. I was tring to do another test sending using the webservices and found the issue no 1 above.

regards
Azaman

Hi,

auth_validate_token() used to returns username if token is valid but now it returns state true instead.

Replace you lib/fn_webservices.php with this one:
https://raw.githubusercontent.com/playsms/playsms/1.4.x/web/lib/fn_webservices.php

Changes:

As for slow DLR, make sure to index smslog_id on tblDLR too, its added recently:

ALTER TABLE playsms_tblDLR ADD INDEX smslog_id (smslog_id);

All suggested indexes:

Its better after index, but still slow, another change required to process DLRs in paralel. You may also try to increase dlrd_limit to 10000 for example in config.php (requires more memory):

// limit the number of DLR processed by dlrd in one time
$core_config['dlrd_limit'] = 10000;

anton

Hi

  1. Replaced lib/fn_webservices.php with the new updated version as suggested, unfortunately, still getting same authentication error when using normal users with token. Using admin credentials it’s OK.

Azaman

Hi,

Another changes is allowed webservices source network/ip cannot be set to *.*.*.* or 0.0.0.0, try using 192.168.0.0/16 for example, or specify specific IPs seperated by comma

Anton

Hi
Million apologies. It’s my bad that I have not included the other IP apart from the localhost for the webservices. Thanks Anton

Best regards
Azaman

1 Like