bandwidth-temp / iris
Bandwidth 的 Iris SDK for PHP
v0.0.9
2015-07-10 05:44 UTC
Requires
- php: >=5.3.0
- guzzlehttp/guzzle: ~6.0
Requires (Dev)
- php: >=5.3.0
- guzzlehttp/guzzle: ~6.0
- phpunit/phpunit: 3.7.*
README
安装
运行
composer require bandwidth/iris
用法
$client = new \Iris\Client($login, $password, ['url' => 'https://api.inetwork.com/v1.0/']);
运行测试
$ composer install $ php phpunit.phar --bootstrap ./vendor/autoload.php tests/
=======
示例
源代码树中有一个 'examples' 文件夹,其中包含了如何使用 API 对象的简单示例代码。要运行示例
$ cd examples
$ composer install
$ cp config.php.example config.php
编辑 config.php 以匹配您的 IRIS 凭据,并单独运行示例。例如。
php availableNumbers-sample.php
如果示例需要命令行参数,您可以通过直接执行单个脚本获得用法。
API 对象
基本原则
在大多数情况下,您应该以 Account 对象作为起点。
$account = new \Iris\Account($your_account_id, $client);
Account 有相关的实体,如订单、站点等。
示例
$sites = $account->sites();
要获取存储的站点,您应该创建 $sites 对象并执行 get() 方法。
$items = $sites->getList(); // Array(Site1, Site2)
反映对象结构
echo json_encode($site->to_array());
可用号码
$account->availableNumbers([ "areaCode" => "818" ]);
可用 NpaNxx
$account->availableNpaNxx(["state" => "CA"]);
城市
$cities = new \Iris\Cities($client); $items = $cities->getList(["state" => "NC"]);
覆盖的费率中心
$rcs = new Iris\CoveredRateCenters($client); $rateCenters = $rcs->getList(["page" => 1, "size" => 10 ]);
断开连接的号码
$account->disnumbers(["areaCode" => "919"]);
断开号码
断开对象用于从账户中断开号码。创建可跟踪的断开订单
创建断开
$disconnect = $account->disconnects()->create([ "name" => "test disconnect order 4", "CustomerOrderId" => "Disconnect1234", "DisconnectTelephoneNumberOrderType" => [ "TelephoneNumberList" => [ "TelephoneNumber" => [ "9192755378", "9192755703" ] ] ] ]]);
获取断开
$disconnect = $account->disconnects()->disconnect("b902dee1-0585-4258-becd-5c7e51ccf5e1", true); // tnDetails: true
为断开添加注释
$disconnect->notes()->create([ "UserId" => "byo_dev", "Description" => "Test Note"]);
获取断开的注释
$items = $disconnect->notes()->getList();
Dlda
创建 Ddla
$order_data = [ "CustomerOrderId" => "123", "DldaTnGroups" => [ "DldaTnGroup" => [ [ "TelephoneNumbers" => [ "TelephoneNumber" => "4352154856" ], "AccountType" => "RESIDENTIAL", "ListingType" => "LISTED", "ListAddress" => "true", "ListingName" => [ "FirstName" => "FirstName", "FirstName2" => "FirstName2", "LastName" => "LastName", "Designation" => "Designation", "TitleOfLineage" => "TitleOfLineage", "TitleOfAddress" => "TitleOfAddress", "TitleOfAddress2" => "TitleOfAddress2", "TitleOfLineageName2" => "TitleOfLineageName2", "TitleOfAddressName2" => "TitleOfAddressName2", "TitleOfAddress2Name2" => "TitleOfAddress2Name2", "PlaceListingAs" => "PlaceListingAs", ], "Address" => [ "HousePrefix" => "HousePrefix", "HouseNumber" => "915", "HouseSuffix" => "HouseSuffix", "PreDirectional" => "PreDirectional", "StreetName" => "StreetName", "StreetSuffix" => "StreetSuffix", "PostDirectional" => "PostDirectional", "AddressLine2" => "AddressLine2", "City" => "City", "StateCode" => "StateCode", "Zip" => "Zip", "PlusFour" => "PlusFour", "Country" => "Country", "AddressType" => "AddressType" ] ] ] ] ]; $dlda = $account->dldas()->create($order_data);
获取 Dlda
$dlda = $account->dldas()->dlda("7802373f-4f52-4387-bdd1-c5b74833d6e2");
获取 Dlda 历史记录
$dlda->history();
列出 Dldas
$account->dldas()->getList(["telephoneNumber" => "9195551212"]);
在服务号码
列出在服务号码
$account->inserviceNumbers(["areaCode" => "919"]);
Lidb
创建
$order_data = [ "LidbTnGroups" => [ "LidbTnGroup" => [ [ "TelephoneNumbers" => [ "TelephoneNumber" => "4352154856" ], "SubscriberInformation" => "Steve", "UseType" => "RESIDENTIAL", "Visibility" => "PUBLIC" ], [ "TelephoneNumbers" => [ "TelephoneNumber" => "4352154855" ], "SubscriberInformation" => "Steve", "UseType" => "RESIDENTIAL", "Visibility" => "PUBLIC" ] ] ] ]; $lidb = $account->lidbs()->create($order_data);
获取 Lidb
$lidb = $account->lidbs()->lidb("7802373f-4f52-4387-bdd1-c5b74833d6e2");
列出 Lidbs
$lidbs = $account->lidbs()->getList(["lastModifiedAfter" => "mm-dd-yy", "telephoneNumber"=> "888"]);
LNP 检查器
检查 LNP
$account->lnpChecker(["4109255199", "9196190594"], "true");
订单
创建订单
$order = $account->orders()->create([ "Name" => "Available Telephone Number order", "SiteId" => "2297", "CustomerOrderId" => "123456789", "ExistingTelephoneNumberOrderType" => [ "TelephoneNumberList" => [ "TelephoneNumber" => [ "9193752369", "9193752720", "9193752648"] ] ] ]);
获取订单
$response = $account->orders()->order("f30a31a1-1de4-4939-b094-4521bbe5c8df", true); // tndetail=true $order = $response->Order;
列出订单
$items = $account->orders()->getList();
向订单添加注释
$order->notes()->create([ "UserId" => "byo_dev", "Description" => "Test Note"]);
获取订单的所有 Tns
$order->tns()->getList();
端口输入
创建端口输入
$portin = $account->portins()->create(array( "BillingTelephoneNumber" => "6882015002", "Subscriber" => array( "SubscriberType" => "BUSINESS", "BusinessName" => "Acme Corporation", "ServiceAddress" => array( "HouseNumber" => "1623", "StreetName" => "Brockton Ave", "City" => "Los Angeles", "StateCode" => "CA", "Zip" => "90025", "Country" => "USA" ) ), "LoaAuthorizingPerson" => "John Doe", "ListOfPhoneNumbers" => array( "PhoneNumber" => array("9882015025", "9882015026") ), "SiteId" => "365", "Triggered" => "false" ));
获取端口输入
$portin = $account->portins()->portin("d28b36f7-fa96-49eb-9556-a40fca49f7c6"));
列出端口输入
$portins = $account->portins()->getList(["pon" => "a pon" ]);
端口输入实例方法
$portin->update(); $portin->delete(); $portin->get_activation_status(); $status = $portin->set_activation_status([ "AutoActivationDate" => "2014-08-30T18:30:00+03:00" ]); $portin->history(); $portin->totals(); $portin->notes()->getList();
端口输入文件管理
$portin->list_loas(true); // metadata = true $portin->loas_send("./1.txt"); $portin->loas_update("./1.txt", "1.txt"); $portin->loas_delete("1.txt"); $portin->get_metadata("1.txt"); $meta_new = array( "DocumentName" => "text.txt", "DocumentType" => "INVOICE" ); $portin->set_metadata('test.txt', $meta_new); $portin->delete_metadata('test.txt');
费率中心
列出费率中心
$rc = new \Iris\RateCenter($client); $cities = $rc->getList(["state" => "CA", "available" => "true"]);
SIP 对等方
创建 SIP 对等方
$sippeer = $account->sippeers()->create(array( "PeerName" => "Test5 Peer", "IsDefaultPeer" => false, "ShortMessagingProtocol" => "SMPP", "VoiceHosts" => array( "Host" => array( "HostName" => "192.168.181.90" ) ), "SmsHosts" => array( "Host" => array( "HostName" => "192.168.181.90" ) ), "TerminationHosts" => array( "TerminationHost" => array( "HostName" => "192.168.181.90", "Port" => 0, "CustomerTrafficAllowed" => "DOMESTIC", "DataAllowed" => true ) ) ));
获取 SIP 对等方
$sippeer = $account->sippeers->sippeer("500651");
列出 SIP 对等方
$sippeers = $account->sippeers()->getList();
删除 SIP 对等方
$sippeer->delete();
移动 TNs
$sippeer->movetns([ "FullNumber" => [ "9192000046", "9192000047", "9192000048" ]]);
获取 TNs
$tns = $sippeer->tns()->getList();
获取 TN
$tn = $sippeer->tns()->tn("8183386251");
总 TNs
$count = $sippeer->totaltns();
设置 TN 选项
$sippeer->tns()->tn("8183386251")->set_tn_options([ "FullNumber" => "8183386251", "CallForward" => "9194394706", "RewriteUser" => "JohnDoe", "NumberFormat" => "10digit", "RPIDFormat" => "e164" ]);
站点
创建站点
$site = $account->sites()->create( array("Name" => "Test Site", "Address" => array( "City" => "Raleigh", "AddressType" => "Service", "HouseNumber" => "1", "StreetName" => "Avenue", "StateCode" => "NC" )));
更新站点
$site->Name = "New Name"; $site->update();
删除站点
$site->delete();
列出所有站点
$sites = $account->sites()->getList();
站点的订单
$site->orders()->getList(["status" => "disabled"]);
站点的总 TNs
$site->totaltns();
站点的端口输入
$site->portins()->getList(["status" => "disabled" ]);
Sippeers
$site->sippeers()->create([...])
[查看 SIP 对等方]
订阅
创建订阅
$subscription = $account->subscriptions()->create([ "OrderType" => "portins", "OrderId" => "98939562-90b0-40e9-8335-5526432d9741", "EmailSubscription" => [ "Email" => "test@test.com", "DigestRequested" => "DAILY" ] ]);
获取订阅
$subscription = $account->subscriptions()->subscription($id);
列出订阅
$account->subscriptions()->getList(["orderType" => "portins"]);
更新
$subscription->OrderType = "portins"; $subscription->update();
DELETE
$subscription->delete();
TNs
获取 TN
$tns = new Iris\Tns(null, $client); $tn = $tns->tn($id);
列出 TNs
$tns = new Iris\Tns(null, $client); $tns_items = $tns->getList(["page" => 1, "size" => 10 ]);
TN 实例方法
$tn = $tns->tn("7576768750"); $site = $tn->site(); $sippeer = $tn->sippeer(); $tnreservation = $tn->tnreservation(); $tn->tndetails(); $rc = $tn->ratecenter(); $lata = $tn->lata(); $lca = $tn->lca();
TN 预订
创建 TN 预订
$resertation = $account->tnsreservations()->create(["ReservedTn" => "2512027430"]);
获取 TN 预订
$resertation = $account->tnsreservations()->tnsreservation("0099ff73-da96-4303-8a0a-00ff316c07aa");
删除 TN 预订
$resertation = $account->tnsreservations()->tnsreservation("0099ff73-da96-4303-8a0a-00ff316c07aa"); $resertation->delete();