Summary
...
Getting Started
Info |
---|
Starting with Release 3.0 of firmware, 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 Sonus SBC 1000/2000 the
into their applications, and for administrators who want to script interactions with the
Sonus SBC 1000/2000.
One of these scenarios example is scripting provisioning, that which allows you to program multiple SBCs with the same parameters, in a one shot execution instead of having to program manually one by one each SBCs.manually programming each one. This is often the case when you need to deploy multiple SBCs in a the same countrycounty, creating and must create the same routing and transformation tables manually each time.
Here are some quick start tips to let you easily jump This document outlines tips for jumping into REST programming through Microsoft PowershellPower Shell.
http://fiddler2.com/
Prerequisite
Prerequisite
Your system must include the following:
- Make sure you loaded 3.x base licenses loaded into the SBC to have ; this will define the REST license as “unlimited"
- You need to have an SBC account with REST or Administrator access level
- Windows Management Framework 3.0: http://www.microsoft.com/en-us/download/details.aspx?id=34595 (Windows 7 download: Windows6.1-KB2506143-x64.msu)To Check your Version:
Verify the Version
Verify the version of the host using the following command.
Login to REST
Login using a public signed certificate (
...
untested)
Code Block |
---|
### 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 |
...
Code Block |
---|
### 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)
Code Block |
---|
$BodyValue = "Description=Default SIP Server"
$url = "https://134.56.226.215/rest/sipservertable/8"
Invoke-RestMethod -Uri $url -Method PUT -Body $BodyValue -WebSession $ps |
...
Code Block |
---|
$url = "https://134.56.226.215/rest/sipservertable/8"
Invoke-RestMethod -Uri $url -Method DELETE -Body "" -WebSession $ps |
Advanced REST Requests
Backup Configuration
Code Block |
---|
$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
Code Block |
---|
$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)
Code Block |
---|
$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)
Code Block |
---|
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)
Code Block |
---|
[xml]$FinalResult= $Result.Substring(5)
####### Expected Result
PS C:> $FinalResult.root.sipservertable.Description
Default SIP TOTO |
...