General description on API protocol:
=========================================================================
-All API nodes currently use GET requests for all parameters.
+All API nodes currently use POST requests for all parameters.
All API nodes return JSON data unless explicitly noted ,
and all JSON results will contain a 'response' element.
The 'response' may be set to:
Return:
Returns 'ok' with 'cause' = 'nonexistant' if the address is available.
+ TODO: Returns 'failed' with 'cause' = 'domain' if the domain is not a kamailio domain.
Returns 'failed' with 'cause' = 'exists' if the address is in use.
Returns 'failed' with 'cause' = 'invalid' if SIP address is malformed.
a subset matching on the MAC addresses.
Return:
- TODO: Document this.
+ Returns 'list' as a simple array of registered MAC-adresses on success,
+ the list will be limited to addresses matching the search if provided.
+
phone/add
-------------------
are identical to the phone/add node.
Return:
- TODO: Document additional info provided on 'result' = 'ok'
+ Returns 'mac', 'username' and 'domain' on success.
Returns 'failed' with 'cause' = 'invalid' if SIP address is malformed.
Returns 'failed' with 'cause' = 'invalid' if MAC address is malformed.
Returns 'failed' with 'cause' = 'nonexistant' on no such registration.
(naturally).
Return:
- Returns 'ok' on success, with an array of 'destination' and 'alias'
- pairs.
+ Returns 'ok' on success, with an array 'aliases' containing
+ 'destination' and 'alias' pairs.
Returns 'ok' with an empty array if the search gave no results.
Returns 'ok' with an empty array if the database search fails.
Returns 'failed' with 'cause' = 'invalid' on invalid SIP addresses.
Some TODO's listed above ...
Permissions! (user/permissions?user=...)
-
-Change all GET to POST
-
-Implement test-tool for POST-based communication ;)
+The permissions bit-flag seems to be:
+ NOCALLS 1
+ EMERGENCY 2
+ INTERNAL 4
+ VOIP 8
+ NATIONAL 16
+ SERVICES 32
+ INTERNATIONAL 64
+ OTHERS 128
+
+can_write() checks!
+can_read_full() checks!
Improve robustness of change_pw: fetch old password for rollback/testing.