You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Table of Contents

Getting Started

Starting with Release 3.0 of 

Unable to show "metadata-from": No such page "_space_variables"
firmware, the REST license is free of charge and you can use it for multiple scenarios.

REST APIs are provided for developers who want to programmatically integrate the 

Unable to show "metadata-from": No such page "_space_variables"
into their applications, and for administrators who want to script interactions with the
Unable to show "metadata-from": No such page "_space_variables"
.

An example is scripting provisioning, which allows you to program multiple SBCs with the same parameters, instead of manually programming each one. This is often the case when you need to deploy multiple SBCs in the same county, and must create the same routing and transformation tables manually each time.

This article outlines tips for accessing REST programming through Microsoft Powershell 3.

Prerequisites

Your system must include the following:

Verify the Version

Verify the version of the host using the following command.

$host.version

Log into REST

Login using a public signed certificate (untested)

### Load the Certificate x509
$CertPathDer = "C:\Users\plessisa\Desktop\Rest\Cert.der"
$certDer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($CertPath)

### Login
$BodyValue = "Username=restuser&Password=restpass"

$url = "https://134.56.226.215/rest/login"
Invoke-RestMethod -Uri $url -Certificate $certDer -Method Post -Body $BodyValue -SessionVariable ps 

Login without certificate

### Allow self Sign Cert
add-type @"
    using System.Net;
    using System.Security.Cryptography.X509Certificates;
    
    public class IDontCarePolicy : ICertificatePolicy {
        public IDontCarePolicy() {}
        public bool CheckValidationResult(
            ServicePoint sPoint, X509Certificate cert,
            WebRequest wRequest, int certProb) {
            return true;
        }
    }
"@
[System.Net.ServicePointManager]::CertificatePolicy = new-object IDontCarePolicy
                                            
### Login
$BodyValue = "Username=restuser&Password=restpass"

$url = "https://134.56.226.215/rest/login"
Invoke-RestMethod -Uri $url -Method Post -Body $BodyValue -SessionVariable ps 

Basic REST requests - Samples

Create resources (PUT)

$BodyValue = "Description=Default SIP Server"
$url = "https://134.56.226.215/rest/sipservertable/8"
Invoke-RestMethod -Uri $url -Method PUT -Body $BodyValue -WebSession $ps

Modify resources (POST)

$BodyValue = "Description=Default SIP TOTO"
$url = "https://134.56.226.215/rest/sipservertable/8"
Invoke-RestMethod -Uri $url -Method POST -Body $BodyValue -WebSession $ps

Get resources (GET)

$url = "https://134.56.226.215/rest/sipservertable/8"
Invoke-RestMethod -Uri $url -Method GET -WebSession $ps

Delete resources (DELETE)

$url = "https://134.56.226.215/rest/sipservertable/8"
Invoke-RestMethod -Uri $url -Method DELETE -Body "" -WebSession $ps

Advanced REST Requests

Backup Configuration

$DestFile = "C:\Users\plessisa\Desktop\Rest\backup.tar.gz"
$url = "https://134.56.226.215/rest/system?action=backup"
Invoke-RestMethod -Uri $url -Method POST -Body "" -WebSession $ps -OutFile $DestFile 

Restore Configuration

$url= "https://134.56.226.215/rest/system?action=importconfig"
$body = "--MyBoundary`n"
$body += 'Content-Disposition: form-data; name="Filename"; filename="symphonyconfig.xml"'
$body += "`nContent-Type: application/xml`n`n"
$body += $(get-content symphonyconfig.xml -raw)
$body += "`n--MyBoundary--"
 
Invoke-RestMethod -uri $url -method POST -ContentType "multipart/form-data; boundary=MyBoundary" -body $body -WebSession $ps

Upload new Sbc Firmware (Does not work)

$url= "https://134.56.226.215/rest/partition/1?action=upgrade"
$body = "--MyBoundary`n"
$body += 'Content-Disposition: form-data; name="Filename"; filename="sbc1000-release-3.1.0.img"'
$body += "`nContent-Type: application/octet-stream`n`n"
$body += $(get-content sbc1000-release-3.1.0.img -raw)
$body += "`n--MyBoundary--"
 
Invoke-RestMethod -uri $url -method POST -ContentType "multipart/form-data; boundary=MyBoundary" -body $body -WebSession $ps

Upload new SbcComms (Does not work)

$url= "https://134.56.226.215/rest/sbaconfig?action=sbaupgrade"
$body = "--MyBoundary`n"
$body += 'Content-Disposition: form-data; name="sbaInstallFilename"; filename="Setup.msi"'
$body += "`nContent-Type: application/octet-stream`n`n"
$body += $(get-content Setup.msi -raw)
$body += "`n--MyBoundary--"
 
Invoke-RestMethod -uri $url -method POST -ContentType "multipart/form-data; boundary=MyBoundary" -body $body -WebSession $ps

Scripting with REST

Basic Handler (PUT, POST, GET, DELETE)

Function BasicHandler {
    Param($ResultIn)
    [xml]$XmlResultIn = $ResultIn.Substring(5)
    if($XmlResultIn.root.status.http_code.contains("200")) {
        return "Success"
    } else {
        return "Error Code:<"+$XmlResultIn.root.status.app_status.app_status_entry.code+"> Param:<"+$XmlResultIn.root.status.app_status.app_status_entry.params+">"
    }
}

####### Expected
PS C:> BasicHandler $Result
Success
or
Error Code:<20013> Param:<8|SIPServerTable>

Content Handler (GET)

[xml]$FinalResult= $Result.Substring(5)

####### Expected Result
PS C:> $FinalResult.root.sipservertable.Description
Default SIP TOTO

  • No labels