terox/sms-campaign-bundle 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

terox/sms-campaign-bundle

Composer 安装命令:

composer require terox/sms-campaign-bundle

包简介

Symfony Bundle for SMS Campaigns

README 文档

README

About The Project

The SmsCampaignBundle provides tools and services to create and send SMS campaigns to a high volume of users. Currently, it can send SMS though SMPP client, the most used protocol for send high volumes.

About the SMPP Client

Due the PHP limitations on persistent and async processes management, I have created the utility smpp-cli for NodeJS. This is a little daemon that implements a DNode protocol to connect the PHP consumers with smpp-cli processes that sent the SMS through SMPP server.

The impact of implement this architecture is minimum and solves a lot of headaches with SMPP providers like repetitive connections, timeouts, two processes (one to sent, one to receive) etc.

This is completely transparent for developer.

Note: The customized php-smpp is definitely deprecated.

Installation:

1. Require the bundle and its dependencies with composer:

composer require terox/sms-campaign-bundle

2. Install smpp-cli:

npm install -g smpp-cli

2. Register SmsCampaignBundle and RabbitMQBundle in your AppKernel.php:

public function registerBundles()
{
    $bundles = array(
        // ...
        new OldSound\RabbitMqBundle\OldSoundRabbitMqBundle(),
        new Terox\SmsCampaignBundle\TeroxSmsCampaignBundle()
        // ...
    );
    
    return $bundles;
}

3. Add the SmsCampaignBundle configuration to your config.yml:

terox_sms_campaign:
    providers:
        example_provider:
            host: "%smpp_host%"
            port: "%smpp_port%"
            login: "%smpp_login%"
            password: "%smpp_password%"
            rpc:
              port: 7070

4. If you haven't added the RabbitMQBundle configuration, add it to your config.yml:

You are free to configure the RabbitMQ bundle. The producers and consumers are preconfigured in SmsCampaignBundle.

old_sound_rabbit_mq:
    connections:
        default:
            host:     "%rabbitmq_host%"
            port:     "%rabbitmq_port%"
            user:     "%rabbitmq_user%"
            password: "%rabbitmq_password%"
            vhost:    "%rabbitmq_vhost%"
            lazy:     true
            connection_timeout: 3
            read_write_timeout: 3

            # requires php-amqplib v2.4.1+ and PHP5.4+
            keepalive: false

            # requires php-amqplib v2.4.1+
            heartbeat: 0

Usage

There are two ways to start the SMPP daemon (smpp-cli):

A. Start the SMPP daemon manually (recommended):

This will execute the daemon and will listen the dnode port. You need to pass your credentials manually:

smpp-cli listen 7070 -h smpp.example.com -p 2675 -L userLogin -P userPassword -C "/var/www/bin/console sms:dlr:update"

Note: You can use as many demons as you need, for example if you have more than one SMPP provider; only change the port number.

I recommend you that executes this command inside supervisor to keep it running if something was wrong (like server updates, unexpected errors...).

Keep in mind:

  • The credentials could be shown at the process manager (like htop) depending on how you pass the credentials to smpp-cli.
  • If you use some deployment scripts, be sure to hide the sensitive data where you store these scripts.

B. Start the SMPP daemon with a Symfony console:

The propose of this command is to use the Symfony configuration params to configure the smpp-cli daemons:

/var/www/bin/console sms:start:client

Warning! This command still not working as I expected. It need little more research. I hope fix it in the next major release, but you are free to sent your PR.

TODO

[ ] Message model extension

License

See: LICENSE.md

统计信息

  • 总下载量: 50
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 6
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 6
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固