定制 mrcnpdlk/grandstream-xmlapp 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

mrcnpdlk/grandstream-xmlapp

Composer 安装命令:

composer require mrcnpdlk/grandstream-xmlapp

包简介

Grandstream telephone utils

README 文档

README

Latest Stable Version Latest Unstable Version Total Downloads Monthly Downloads License

Scrutinizer Code Quality Build Status Code Coverage

Code Climate

GRANDSTREAM XMLAPP

This library supports to create AddressBook and XML Application for Grandstream Phones:

  • GXP 2100
  • GXP 2110
  • GXP 2120
  • GXP 2124

Installation

Install the latest version with composer

composer require mrcnpdlk/grandstream-xmlapp

Module for inserting images requires Imagick PHP extension. Pictures are converted on the fly to greyscale 8-bit format.

Basic usage

AddressBook

use mrcnpdlk\Grandstream\XMLApp\AddressBook\View;

require __DIR__ . '/../vendor/autoload.php';

$oView = new View();

$oView->addContact('Doe', '123123123', 'John');
$oView->addContact('Nowak', '456456456');

header('Content-type: application/xml; charset="utf-8"');

echo $oView->asTxt();

Result:

<AddressBook>
    <Contact>
        <LastName>Doe</LastName>
        <FirstName/>
        <Email/>
        <Department/>
        <Company/>
        <Icon/>
        <Phone>
            <phonenumber>123123123</phonenumber>
            <accountindex>1</accountindex>
        </Phone>
    </Contact>
    <Contact>
        <LastName>Nowak</LastName>
        <FirstName/>
        <Email/>
        <Department/>
        <Company/>
        <Icon/>
        <Phone>
            <phonenumber>456456456</phonenumber>
            <accountindex>1</accountindex>
        </Phone>
    </Contact>
</AddressBook>

XML App

use mrcnpdlk\Grandstream\XMLApp\Application\Model\Components\ElemBitmap;
use mrcnpdlk\Grandstream\XMLApp\Application\Model\Components\ElemRectangle;
use mrcnpdlk\Grandstream\XMLApp\Application\Model\Components\ElemSelect;
use mrcnpdlk\Grandstream\XMLApp\Application\Model\Components\ElemString;
use mrcnpdlk\Grandstream\XMLApp\Application\Model\Container;
use mrcnpdlk\Grandstream\XMLApp\Application\Model\Event;
use mrcnpdlk\Grandstream\XMLApp\Application\Model\SoftKey;
use mrcnpdlk\Grandstream\XMLApp\Application\Model\Styles;
use mrcnpdlk\Grandstream\XMLApp\Application\ModelConstant;
use mrcnpdlk\Grandstream\XMLApp\Application\View;
use mrcnpdlk\Grandstream\XMLApp\Helper\Color;
use mrcnpdlk\Grandstream\XMLApp\Helper\Rectangle;

require __DIR__ . '/../vendor/autoload.php';

$oView = new View();

/**
 * create 1st Container
 */
$oContainer_1 = new Container();
/**
 * create required elements
 */
$oString_1 = new ElemString('First line');
$oString_2 = new ElemString('Second line');
$oString_2->move(0, 10);
/**
 * Add some elements to Container and easy move all container on LCD Display
 * Pay attention to the size of the screen
 */
$oContainer_1->addElement($oString_1)
             ->addElement($oString_2)
             ->move(0, 60)
;
/**
 * Put Container on LCD Display
 */
$oView->addContainer($oContainer_1);

/**
 * create 2nd Container
 */
$oContainer_2 = new Container();

$oSelect_1 = new ElemSelect('select_1');
$oSelect_1->setStyles((new  Styles(100))
    ->setColorBg(new Color(100))
    ->setColor(new Color(0))
    ->setColorBorder(new Color(30))
)
          ->addItem('one', 1)
          ->addItem('two', 2)
          ->addItem('three', 3)
;


$oSelect_2 = new ElemSelect('select_2');
$oSelect_2->setStyles(new  Styles(100))
          ->addItem('apple', 1)
          ->addItem('orange', 2)
          ->addItem('lemon', 3)
          ->move(0, 20)
;

$oContainer_2
    ->addElement($oSelect_1)
    ->addElement($oSelect_2)
    ->move(0, 20)
;
$oView->addContainer($oContainer_2);

/**
 * Elements can be added directly on the View without using Container
 */
$oView->addElem(new ElemRectangle(10, 10));

/**
 * You can also define SoftKey
 */
$oView->addSoftkey(new SoftKey(ModelConstant::ACTION_QUIT_APP, 'Exit'));

/**
 * And define Events
 */
$oEvent = new Event(ModelConstant::STATE_OFFHOOK, ModelConstant::ACTION_DIAL, '299');
$oView->addEvent($oEvent);
/**
 * Add picture (100x100) to screen
 */
$oBitmap = new ElemBitmap(
    __DIR__ . '/../devel/logo.png',
    new Rectangle(100)
);
$oView->addElem($oBitmap->move(120, 0));

/**
 * Last thing. Left status bar can be disabled (more space on screen)
 */
$oView->setVisibleStatusLine(false);

/**
 * Echo text for phone
 */
header('Content-type: application/xml; charset="utf-8"');
echo $oView->asTxt();

Result:

<Screen>
    <Page ignoreCallUpdate="false">
        <ShowStatusLine>false</ShowStatusLine>
        <Contents>
            <DisplayString font="unifont" color="Black" bgcolor="None" halign="left">
                <X>0</X>
                <Y>60</Y>
                <DisplayStr>First line</DisplayStr>
            </DisplayString>
            <DisplayString font="unifont" color="Black" bgcolor="None" halign="left">
                <X>0</X>
                <Y>70</Y>
                <DisplayStr>Second line</DisplayStr>
            </DisplayString>
            <select name="select_1">
                <styles pos_x="0" pos_y="20" width="100" color="White" bgcolor="Black" border-color="Light3"/>
                <items>
                    <item value="1">one</item>
                    <item value="2">two</item>
                    <item value="3">three</item>
                </items>
            </select>
            <select name="select_2">
                <styles pos_x="0" pos_y="40" width="100" color="Black" bgcolor="Light4" border-color="Black"/>
                <items>
                    <item value="1">apple</item>
                    <item value="2">orange</item>
                    <item value="3">lemon</item>
                </items>
            </select>
            <DisplayRectangle x="0" y="0" width="10" height="10" bgcolor="None" border-color="Black"/>
            <DisplayBitmap isfile="false" isflash="false">
                <X>120</X>
                <Y>0</Y>
                <Bitmap>..BASE_64_STRING..</Bitmap>
            </DisplayBitmap>
        </Contents>
        <SoftKeys>
            <SoftKey action="QuitApp" label="Exit"/>
        </SoftKeys>
    </Page>
    <Events>
        <Event state="offhook">
            <Action action="Dial" commandArgs="299"/>
        </Event>
    </Events>
</Screen>

统计信息

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

GitHub 信息

  • Stars: 4
  • Watchers: 2
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-09-21

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固