The PbxTableUsers protocol is available on AppWebsocket connections to innovaphone PBX objects, if the object is enabled for the TableUsers. It allows the App to replicate the User Objects from the PBX using the Replicator.
{
"api": "PbxTableUsers",
"src": string,
"mt": string,
}
In general operatios are performed by sending a message with a message type <name> to the PBX. The result is retured with a message with message type <name>Result.
Replicator MessagesTable with the user data
ReplicationString | guid | Globally unique identifier |
ReplicationString | h323 | Username |
ReplicationString | pwd | Password |
ReplicationString | cn | Common name |
ReplicationString | dn | Display name |
ReplicationString | apps-my | List of the apps displayed on the home screen |
ReplicationString | config | Config template |
ReplicationString | node | Node |
ReplicationString | loc | Location |
ReplicationBool | hide | Hide from LDAP |
ReplicationString | e164 | Phone number |
ReplicationTristate | cfpr | Call forward based on Presence |
ReplicationTristate | t-cfpr | Call forward based on Presence inherited from the config template |
ReplicationString | pseudo | Pseudo information of the object |
ReplicationBool | h323-email | If true, the email is the username |
ReplicationString | apps | List of the apps that the user has rights to access |
ReplicationBool | fax | If true, the user has a fax license |
Table with the emails of the users
ReplicationString |
Table with the visibility filters defined for the user
ReplicationString | name | Filter name |
ReplicationString | grp | If true, the name is a group name |
ReplicationBool | visible | Visible |
ReplicationBool | online | Online |
ReplicationBool | presence | Presence |
ReplicationBool | otf | On the phone |
ReplicationBool | note | Presence note |
ReplicationBool | dialog | Calls |
ReplicationBool | ids | Calls with id |
Table with the visibility filters defined on the config templates. Do not use anymore, this does not work together with the new replication alogoritm, which only replicates changes after reconnect.
ReplicationString | name | Filter name |
ReplicationString | grp | If true, the name is a group name |
ReplicationBool | visible | Visible |
ReplicationBool | online | Online |
ReplicationBool | presence | Presence |
ReplicationBool | otf | On the phone |
ReplicationBool | note | Presence note |
ReplicationBool | dialog | Calls |
ReplicationBool | ids | Calls with id |
Table with the users groups
ReplicationString | name | Group name |
ReplicationString | mode | Mode |
ReplicationString | dyn | Dynamic |
Table with the users devices
ReplicationString | hw | Hardware ID |
ReplicationString | text | Name |
ReplicationString | app | App |
ReplicationBool | admin | PBX Pwd |
ReplicationBool | no-filter | No IP Filter |
ReplicationBool | tls | TLS only |
ReplicationBool | no-mob | No Mobility |
ReplicationBool | trusted | Reverse Proxy |
ReplicationBool | sreg | Single Reg. |
ReplicationBool | mr | Media Relay |
ReplicationString | voip | Config VOIP |
ReplicationString | gk-id | Gatekeeper ID |
ReplicationString | prim | Primary gatekeeper |
Table with the users call diversions
ReplicationString | type | Diversion type (cfu, cfb or cfnr) |
ReplicationString | bool | Boolean object |
ReplicationBool | bool-not | Not flag (boolean object) |
ReplicationString | e164 | Phone number |
ReplicationString | h323 | Username |
ReplicationString | src | Filters data on XML format |
Table with the users forks
ReplicationString | e164 | Phone number |
ReplicationString | h323 | Username |
ReplicationString | bool | Boolean object |
ReplicationBool | bool-not | Not flag (boolean object) |
ReplicationString | mobility | Mobility object |
ReplicationString | app | App |
ReplicationUnsigned | delay | Delay |
ReplicationString | hw | Device |
ReplicationBool | off | Disable |
ReplicationBool | cw | Call-Waiting |
ReplicationUnsigned | min | Min-Alert |
ReplicationUnsigned | max | Max-Alert |
Table with the users wakeups
ReplicationUnsigned | h | Hour |
ReplicationUnsigned | m | Minute |
ReplicationUnsigned | s | Second |
ReplicationString | name | |
ReplicationString | num | |
ReplicationUnsigned | retry | |
ReplicationBool | mult | |
ReplicationUnsigned | to | |
ReplicationString | fallback | |
ReplicationString | bool | Boolean object |
ReplicationBool | bool-not | Not flag (boolean object) |
After the user object has been edited on the PBX side, a ReplicateUpdate
message is sent to the app instance including all the user object data. An example of how the message would look like is this one:
{
"mt":"ReplicateUpdate",
"api":"PbxTableUsers",
"columns":
{
"guid":"c9ebcc5914bd5e01c8020090334106ee",
"h323":"user0",
"pwd":"05a14fa93ec663b04deaf54277b1eb874612793587f0b287",
"cn":"User0",
"apps-my":"apps,usersadmin,profile,phone,users,users2,softphone,devices,pbxmanager",
"config":"Config",
"node":"root",
"loc":"master",
"hide":false,
"e164":"201",
"emails":[
{
"email":"user0@example.com"
}
],
"allows":[
{
"name":"@test1.com",
"presence":true,
"visible":true
},
{
"name":"@test2.com",
"presence":true,
"visible":true
}
],
"t-allows":[
{
"name":"@test1.com",
"online":true,
"presence":true,
"visible":true
}
],
"grps":[
{
"name":"group1",
"mode":"active",
"dyn":"in"
}
],
"devices":[
{
"hw":"Swphone_user0",
"text":"softphone",
"app":"softphone",
"tls":true,
"sreg":true
}
],
"cds":[
{
"type":"cfnr",
"bool":"booltest",
"e164":"203"
},
{
"type":"cfb",
"h323":"test",
"src":"<src type=\"do\"><ep ext=\"false\" fwd=\"fwd\" /></src>"
}
],
"forks":[
{
"e164":"9999",
"bool":"booltest",
"bool-not":true,
"mobility":"Mobility",
"delay":30,
"hw":"Smartphone",
"app":"rcc",
"cw":true,
"min":1,
"max":10
}
]
}
}
It is possible to replicate PBX object of other types than User Objects. Therefore a ReplicateStart
message is extended by the property pseudo
which is an array of types that should be replicated. In the example below the PBX objects of type Waiting Queue are replicated.
{
"mt": "ReplicateStart",
"api": "PbxTableUsers",
"columns": {
"cn": {
"update": true
},
"guid": {},
"h323": {
"update": true
},
"pseudo": {
"update": true
}
},
"pseudo": [
"waiting"
]
}