Plum offers four services for its Call Log REST API:
Method | Service | Description |
​GET​ | ​calls/logs​ | ​Returns a filtered list of recent calls for which logs exist​ |
​GET​ | ​calls/log​ | |
​GET​ | ​calls/sessions​ | |
​GET​ | ​calls/errors​ |
Please note that each of these Call Log REST APIs use HTTP AUTH for authentication. The username/password to be used for authentication are the same as your standard Plum DEV login credentials.
All of the Call Log REST APIs have the same return format that includes a status (success or failure), error message and the result data.
{"status":"success","error":"","result": {// SAMPLE RESULT DATA}}
{"status":"failure","error":"Unauthorized access to sample service",}
<sample><status>success</status><error/><result><!-- SAMPLE RESULT DATA --></result></sample>
<sample><status>failure</status><error>Unauthorized access to sample service</error></sample>
{"status":"success","error":"","result":{"total_logs":"1234","logs":[{"log_id":"421752831","session_id":"400050;000;1510159646","dest":"6177123000","type":"inbound","src":"2125551234","start":"1510159657","end":"1510159689"},{"log_id":"421627729","session_id":"300025;000;1510142108","dest":"6177123000","type":"inbound","src":"7185551234","start":"1510142148","end":"1510142215"}]}}
<?xml version="1.0"?><logs><status>success</status><error></error><result><total_logs>1234</total_logs><logs><log><log_id>421752831</log_id><session_id>400050;000;1510159646</session_id><dest>6177123000</dest><type>inbound</type><src>2125551234</src><start>1510159657</start><end>1510159689</end></log><log><log_id>421627729</log_id><session_id>300025;000;1510142108</session_id><dest>6177123000</dest><type>inbound</type><src>7185551234</src><start>1510142148</start><end>1510142215</end></log></logs></result></logs>
Sample Code
The following code sample is written in PHP but any language that can connect to a JSON or XML REST service can utilize this API.
<?phpheader("Content-type: text/xml");​// initialize curl$ch = curl_init();​// set necessary curl optionscurl_setopt($ch, CURLOPT_URL, "https://hosting.plumvoice.com/ws/calls/logs/1509681600/1510203600?number=6177123000&offset=0&limit=2");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/xml'));curl_setopt($ch, CURLOPT_USERPWD, "username:password");​echo(curl_exec($ch));​curl_close($ch);?>
curl -u username:password -H"Accept: application/xml" "https://hosting.plumvoice.com/ws/calls/logs/1509681600/1510203600?number=6177123000&offset=0&limit=2"
log_id
returned in the calls/logs response. To fetch all logs for your account you should call calls/logs to get the list of calls then loop through those results calling calls/log/{log_id}
to fetch each individual call log. {"status":"success","error":"","result":{"dest":"6177123000","src":"2125551234","type":"inbound","timestamp":"1510142148","location":"Boston","log":"...log data string..."}}​
<?xml version="1.0"?><log><status>success</status><error></error><result><dest>6177123000</dest><src>2125551234</src><type>inbound</type><timestamp>1510142148</timestamp><location>Boston</location><log>...log data string...</log></result></log>
Sample Code
The following code sample is written in PHP but any language that can connect to a JSON or XML REST service can utilize this API.
<?phpheader("Content-type: text/xml");​// initialize curl$ch = curl_init();​// set necessary curl optionscurl_setopt($ch, CURLOPT_URL, "https://hosting.plumvoice.com/ws/calls/log/421627729");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/xml'));curl_setopt($ch, CURLOPT_USERPWD, "username:password");​echo(curl_exec($ch));​curl_close($ch);?>
curl -u username:password -H"Accept: application/xml" "https://hosting.plumvoice.com/ws/calls/log/421627729"
{"status":"success","error":"","result":{"total_sessions":"8","sessions":["outbound 12125551234 26 [03\/Nov\/2017:00:10:42 -0500] test@login.com 300024;026;1509673023 1509682242 1509682255 00:00:13","inbound 7185551234 3 [03\/Nov\/2017:14:38:30 -0500] 6177123000 200035;003;1509734279 1509734310 1509734339 00:00:29","inbound 6175551234 1 [03\/Nov\/2017:18:11:07 -0500] 8009957586 400050;001;1509747051 1509747067 1509747180 00:01:53"]}}
<?xml version="1.0"?><sessions><status>success</status><error></error><result><total_sessions>8</total_sessions><sessions><session>outbound 12125551234 26 [03\/Nov\/2017:00:10:42 -0500] test@login.com 300024;026;1509673023 1509682242 1509682255 00:00:13</session><session>inbound 7185551234 3 [03\/Nov\/2017:14:38:30 -0500] 6177123000 200035;003;1509734279 1509734310 1509734339 00:00:29</session><session>inbound 6175551234 1 [03\/Nov\/2017:18:11:07 -0500] 8009957586 400050;001;1509747051 1509747067 1509747180 00:01:53</session></sessions></result></sessions>
Sample Code
The following code sample is written in PHP but any language that can connecting to a JSON or XML REST service can utilize this API.
<?phpheader("Content-type: text/xml");​// initialize curl$ch = curl_init();​// set necessary curl optionscurl_setopt($ch, CURLOPT_URL, "https://hosting.plumvoice.com/ws/calls/sessions/1509681600/1510203600?number=6177123000&offset=0&limit=2");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/xml'));curl_setopt($ch, CURLOPT_USERPWD, "username:password");​echo(curl_exec($ch));​curl_close($ch);?>
curl -u username:password -H"Accept: application/xml" "https://hosting.plumvoice.com/ws/calls/sessions/1509681600/1510203600?number=6177123000&offset=0&limit=2"
{"status":"success","error":"","result":{"total_errors":"3","errors":["error 2125551234 6 [17\/Nov\/2016:14:40:46 -0400] 6177123000 100025;006;1479411625 Max Disconnect Count Exceeded","error 7185551234 1 [20\/Nov\/2016:21:28:46 -0400] 8009957586 100037;001;1479692314 errno: 210 message Maximum loop count exceeded","error 6175551234 0 [09\/Jan\/2017:08:33:31 -0400] 8009957586 000020;000;1483968637 ReferenceError: d is not defined line 1"]}}
<?xml version="1.0"?><errors><status>success</status><error></error><result><total_errors>3</total_errors><errors><error>error 2125551234 6 [17\/Nov\/2016:14:40:46 -0400] 6177123000 100025;006;1479411625 Max Disconnect Count Exceeded</error><error>error 7185551234 1 [20\/Nov\/2016:21:28:46 -0400] 8009957586 100037;001;1479692314 errno: 210 message Maximum loop count exceeded</error><error>error 6175551234 0 [09\/Jan\/2017:08:33:31 -0400] 8009957586 000020;000;1483968637 ReferenceError: d is not defined line 1</error></errors></result></errors>
Sample Code
The following code sample is written in PHP but any language that can connect to a JSON or XML REST service can utilize this API.
<?phpheader("Content-type: text/xml");​// initialize curl$ch = curl_init();​// set necessary curl optionscurl_setopt($ch, CURLOPT_URL, "https://hosting.plumvoice.com/ws/calls/errors/1509681600/1510203600?number=6177123000&offset=0&limit=2");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/xml'));curl_setopt($ch, CURLOPT_USERPWD, "username:password");​echo(curl_exec($ch));​curl_close($ch);?>
curl -u username:password -H"Accept: application/xml" "https://hosting.plumvoice.com/ws/calls/errors/1509681600/1510203600?number=6177123000&offset=0&limit=2"