Repository navigation
Added
- SAS Bulk SMS provider (
sasbulksmsdriver). SAS runs on the REVE SMS HTTP API athttp://sms.sasbulksms.com:3040; it needsSASBULKSMS_APIKEYandSASBULKSMS_SECRETKEY, sends numbers as8801XXXXXXXXX, and uses sender ID0(the account's default) unlessSASBULKSMS_SENDER_IDis set. The sending server's IP must be whitelisted by SAS. There is no balance API, sogetBalance()throws. (#34) - Queue settings in the new
queueconfig section, all with defaults:TEXTIFY_QUEUE_CONNECTION,TEXTIFY_QUEUE_NAME,TEXTIFY_QUEUE_TRIES(3),TEXTIFY_QUEUE_BACKOFF(10,30,60),TEXTIFY_QUEUE_TIMEOUT(60),TEXTIFY_QUEUE_DELAY(0) andTEXTIFY_QUEUE_COOLDOWN(0, seconds between each SMS of one bulkqueue()call). (#35) - Failure kinds with their own retry switches. Network failures now return
CONNECTION_FAILED(never reached the gateway),SERVER_ERROR(5xx except 504) orTIMEOUT(request sent, no answer; the SMS may already be out), available asTextifyResponse::ERROR_*constants. Queued jobs retry connection and server errors by default, and never retry timeouts or gateway rejections unlessTEXTIFY_QUEUE_RETRY_TIMEOUTS/TEXTIFY_QUEUE_RETRY_PROVIDER_ERRORSare turned on. (#35) TEXTIFY_FALLBACK_ON_TIMEOUT(defaultfalse). (#35)- REVE error codes
-1(invalid apikey/secretkey) and-59(IP not allowed); other unknown codes now show the gateway'sStatusDescription. (#34)
Changed
- Network exceptions used to return error code
PROVIDER_ERROR. They now returnCONNECTION_FAILED,SERVER_ERRORorTIMEOUT. Update any code that checks forPROVIDER_ERRORon network errors. (#35) - The fallback provider is no longer used after a timeout, since the first gateway may already have sent the SMS. Set
TEXTIFY_FALLBACK_ON_TIMEOUT=truefor the old behaviour. (#35) - A queued SMS whose send failed used to finish as a successful job. It now retries or fails the job, depending on the failure kind; failed jobs show in
failed_jobsand fireTextifyJobFailed. For the old behaviour setTEXTIFY_QUEUE_TRIES=1. (#35) TEXTIFY_QUEUE_CONNECTIONandTEXTIFY_QUEUE_NAMEwere documented but never read; they work now. (#35)
Maintenance
- Dependency floors raised to current releases (Guzzle
^7.8.2, Larastan^3.13, Pint^1.32, Collision^8.9); unused PHPStan 1.x options dropped. (#36) - CI tests on PHP 8.5 and runs PHPStan on 8.5. (#36)
Full Changelog: v1.7.0...v1.8.0