# VConnct Client API - Client Documetation (v1) ## Description - This tool used for making conference meetings with some settings for every meeting. - There are 2 different concepts : 1. Meeting: is the static meeting which scheduled before with static id used every time you need to start this meeting, every meeting id can run several times. 2. Session: When the meeting is running it is called session, the session id used just once. - There are two types of users: 1. Moderator. 2. Attendee. - Every Business Partner has License key used for accessing the APIs and every License key has **expiration** **date**, **maximum Meeting rooms** and **maximum Attendance for every room** . # APIs Endpoints **Request headers** **to be considered for every request**. | **Key** | **Value** | **Description** | | :--- | :--- | :--- | | `license` | `string` | **Required**. Business Partner license key to access API endpoints. key | | `Accept-Language` | `string` |**Optional**. indicates the natural language and locale that the client prefers.| ## 1. Create Meeting The API responsible for the meeting creation. ```http POST /api/v1/create_meeting/ ``` | **Key** | **Value** | Description | :--- | :--- | :--- | | `title` | `string` | **Optional**. Meeting title | | `moderator_password` | `string` | **Optional**. moderator password for start a new meeting session or enter as a moderator | | `welcome_text` | `string` | **Optional**. Meeting welcome text | | `meeting_setting` | `array` | **Required**. Array of 10 required setting objects | **Request example** ```javascript { "title": "meeting title", "moderator_password": "modpwd", "welcome_text": "welcome to the class", "meeting_setting": [ { "setting":"lock_settings_disable_public_chat", "value":true }, { "setting":"lock_settings_disable_mic", "value":true }, { "setting":"auto_start_recording", "value":true }, { "setting":"lock_settings_disable_cam", "value":true }, { "setting":"lock_settings_locked_layout", "value":true }, { "setting":"allow_start_stop_recording", "value":true }, { "setting":"record", "value":true }, { "setting":"webcam_only_for_moderators", "value":true }, { "setting":"lock_settings_disable_note", "value":true }, { "setting":"lock_settings_disable_private_chat", "value":true } ] } ``` **Response example** ```javascript { "status": true, "status_code": 201, "message": "success", "data": { "meeting_id": "0db9ac9d-399b-4b9b-987c-50fd77f5d15d", "title": "meeting title", "moderator_password": "modpwd", "welcome_text": "welcome to the class", "meeting_setting": [ { "setting":"lock_settings_disable_public_chat", "value":true }, { "setting":"lock_settings_disable_mic", "value":true }, { "setting":"auto_start_recording", "value":true }, { "setting":"lock_settings_disable_cam", "value":true }, { "setting":"lock_settings_locked_layout", "value":true }, { "setting":"allow_start_stop_recording", "value":true }, { "setting":"record", "value":true }, { "setting":"webcam_only_for_moderators", "value":true }, { "setting":"lock_settings_disable_note", "value":true }, { "setting":"lock_settings_disable_private_chat", "value":true } ] }, "success_message": "تمت اضافه الاجتماع بنجاح!" } ``` ## 2. Update Meeting The API responsible for the meeting update. ```http PUT /api/v1/update_meeting/?meeting_id=0db9ac9d-399b-4b9b-987c-50fd77f5d15d ``` | **Key** | **Value** | Description | :--- | :--- | :--- | | `title` | `string` | **Optional**. Meeting title | | `moderator_password` | `string` | **Optional**. moderator password for start a new meeting session or enter as a moderator | | `welcome_text` | `string` | **Optional**. Meeting welcome text | | `meeting_setting` | `array` | **Required**. Array of 10 required setting objects | **Request example** ```javascript { "title": "updated meeting title", "moderator_password": "updated_modpwd", "welcome_text": "updated welcome to the class", "meeting_setting": [ { "setting":"lock_settings_disable_public_chat", "value":false }, { "setting":"lock_settings_disable_mic", "value":true }, { "setting":"auto_start_recording", "value":false }, { "setting":"lock_settings_disable_cam", "value":true }, { "setting":"lock_settings_locked_layout", "value":false }, { "setting":"allow_start_stop_recording", "value":true }, { "setting":"record", "value":false }, { "setting":"webcam_only_for_moderators", "value":true }, { "setting":"lock_settings_disable_note", "value":false }, { "setting":"lock_settings_disable_private_chat", "value":true } ] } ``` **Response example** ```javascript { "status": true, "status_code": 200, "message": "success", "data": { "meeting_id": "0db9ac9d-399b-4b9b-987c-50fd77f5d15d", "title": "updated meeting title", "moderator_password": "updated_modpwd", "welcome_text": "updated welcome to the class", "meeting_setting": [ { "setting":"lock_settings_disable_public_chat", "value":false }, { "setting":"lock_settings_disable_mic", "value":true }, { "setting":"auto_start_recording", "value":false }, { "setting":"lock_settings_disable_cam", "value":true }, { "setting":"lock_settings_locked_layout", "value":false }, { "setting":"allow_start_stop_recording", "value":true }, { "setting":"record", "value":false }, { "setting":"webcam_only_for_moderators", "value":true }, { "setting":"lock_settings_disable_note", "value":false }, { "setting":"lock_settings_disable_private_chat", "value":true } ] }, "success_message": "لقد تم تعديل بيانات الاجتماع بنجاح!" } ``` ## 3. Start Meeting The API responsible for starting a new meeting session. ```http POST /api/v1/start_meeting/ ``` | **Key** | **Value** | Description | :--- | :--- | :--- | | `meeting_id` | `UUID` | **Required**. The meeting id to start meeting session with | | `title` | `string` | **Optional**. moderator password for start a new meeting session or enter as a moderator | | `attendee_password` | `string` | **Optional**. password for joining the meeting as an attendee | | `moderator_password` | `string` | **Optional**. Meeting moderator password for creating a new session | | `moderator_name` | `string` | **Required**. moderator name | | `logout_url` | `string` | **Optional**. logout URL to be redirected to | **Request example** ```javascript { "meeting_id": "0db9ac9d-399b-4b9b-987c-50fd77f5d15d", "title": "session title", "attendee_password": "attpwd", "moderator_password": "modpwd", "moderator_name": "mod1", "logout_url": "example.com", } ``` **Response example** ```javascript { "status": true, "status_code": 200, "message": "success", "data": { "title": "session title", "url": "https://vconnct-client-api.com/api/join?fullName=mod1&meetingID=0db9ac9d-399b-4b9b-987c- 50fd77f5d15d&password=modpwd&checksum=1531e711a3cf4ac3ecd7227e3a8e28ad0764c868" }, "success_message": "الاجتماع الان تم تشغيله!" } ``` ## 4. Join Meeting The API responsible for joining a running meeting session. There are two scenarios here: 1. join as moderator: (moderator) required moderator password to be passed with password key, if the password matches. The requested user will join as a moderator. 2. join as attendee: (viewer) required attendee password to be passed with password key, if the password matches. The requested user will join as an attendee. ```http POST /api/v1/start_meeting/ ``` | **Key** | **Value** | Description | :--- | :--- | :--- | | `meeting_id` | `UUID` | **Required**. The meeting id to join meeting session with | | `fullname` | `string` | **Required**. Full name for attendee or moderator | | `password` | `string` | **Optional**. Password phrase for authentication | | `role` | `string` | **Required**. Select between two options: **moderator** or **viewer** | **Request example** ```javascript { "meeting_id": "0db9ac9d-399b-4b9b-987c-50fd77f5d15d", "fullname": "John Doe", "password": "attpwd", "role": "viewer" } ``` **Response example** ```javascript { "status": true, "status_code": 200, "message": "success", "data": { "url": "https://vconnct-client-api.com/api/join?fullName=John_Doe&meetingID=0db9ac9d-399b-4b9b-987c- 50fd77f5d15d&password=modpwd&checksum=1531e711a3cf4ac3ecd7227e3a8e28ad0764c868" }, "success_message": "لقد تم دخولك للاحتماع بنجاح!" } ``` ## 5. End Meeting The API responsible for ending a running meeting session. ```http GET /api/v1/end_meeting/?meeting_id=0db9ac9d-399b-4b9b-987c-50fd77f5d15d ``` **Response example** ```javascript { "status": true, "status_code": 200, "message": "success", "data": null, "success_message": "تم بنجاح!" } ``` ## 6. Delete Scheduled Meeting The API responsible for deleting a scheduled meeting. User can’t delete a scheduled meeting if it’s running. ```http DELETE /api/v1/delete_scheduled_meeting/?meeting_id=0db9ac9d-399b-4b9b-987c-50fd77f5d15d ``` **Response example** ```javascript { "status": true, "status_code": 200, "message": "success", "data": null, "success_message": "تم الحذف بنجاح!" } ``` ## 7. List Sessions The API responsible for list all sessions related to a specific meeting. ```http GET /api/v1/list_sessions/?meeting_id=0db9ac9d-399b-4b9b-987c-50fd77f5d15d ``` **Response example** ```javascript { "status": true, "status_code": 200, "message": "success", "data": [ { "session_id": "546b4f17-16dc-4d07-b155-a5994e0ce161", "title": "session1 title", "session_start_time": "2022-12-20T12:08:46.148Z", "session_end_time": "2022-12-20T12:08:57.281Z", "attendee_password": "attpwd", "status": true }, { "session_id": "546b4f17-16dc-4d07-b155-a5994e0ce161", "title": "session2 title", "session_start_time": "2022-12-20T12:08:46.148Z", "session_end_time": "2022-12-20T12:08:57.281Z", "attendee_password": "attpwd", "status": true } ], "success_message": "تم بنجاح!" } ``` ## 8. List Meetings The API responsible for list all meetings. ```http GET /api/v1/list_meetings/ ``` **Response example** ```javascript { "status": true, "status_code": 200, "message": "success", "data": [ { "meeting_id": "cc22d75f-2e53-4b1a-a1da-afcafa633364", "title": "meeting1 title", "is_running": true, "moderator_password": "modpwd", "welcome_text": "welcome to the class" }, { "meeting_id": "cc22d75f-2e53-4b1a-a1da-afcafa633364", "title": "meeting2 title", "is_running": true, "moderator_password": "modpwd", "welcome_text": "welcome to the class" } ], "success_message": "تم بنجاح!" } ``` ## 9. List Attendance The API responsible for list all meeting session attendance. ```http GET /api/v1/list_attendance/?session_id=f7b75854-7cdc-4a4e-9888-9cfb8bb1feef ``` **Response example** ```javascript { "status": true, "status_code": 200, "message": "success", "data": [ { "full_name": "attendee 3", "joined_date": "2022-12-20T12:22:30.564Z" }, { "full_name": "attendee 1", "joined_date": "2022-12-20T12:22:21.897Z" }, { "full_name": "attendee 2", "joined_date": "2022-12-20T12:22:25.430Z" } ], "success_message": "تم بنجاح!" } ``` ## 10. List Settings The API responsible for list all meeting settings. ```http GET /api/v1/list_setting/?meeting_id=0db9ac9d-399b-4b9b-987c-50fd77f5d15d ``` **Response example** ```javascript { "status": true, "status_code": 200, "message": "success", "data": [ { "setting":"lock_settings_disable_public_chat", "value":false }, { "setting":"lock_settings_disable_mic", "value":true }, { "setting":"auto_start_recording", "value":false }, { "setting":"lock_settings_disable_cam", "value":true }, { "setting":"lock_settings_locked_layout", "value":false }, { "setting":"allow_start_stop_recording", "value":true }, { "setting":"record", "value":false }, { "setting":"webcam_only_for_moderators", "value":true }, { "setting":"lock_settings_disable_note", "value":false }, { "setting":"lock_settings_disable_private_chat", "value":true } ], "success_message": "تم بنجاح!" } ``` ## 11. List General Meeting Settings The API responsible for list all general meeting settings. ```http GET /api/v1/list_general_meeting_setting/ ``` **Response example** ```javascript { "status": true, "status_code": 200, "message": "success", "data": [ "lock_settings_disable_cam": false, "record": false, "lock_settings_disable_note": false, "lock_settings_disable_public_chat": false, "webcam_only_for_moderators": false, "lock_settings_disable_mic": false, "lock_settings_locked_layout": false, "lock_settings_disable_private_chat": false, "allow_start_stop_recording": false, "auto_start_recording": false ], "success_message": "تم بنجاح!" } ``` ## 12. Get Session Recording The API responsible for get session recording. ```http GET /api/v1/get_record/?session_id=f7b75854-7cdc-4a4e-9888-9cfb8bb1feef ``` **Response example** ```javascript { "status": true, "status_code": 200, "message": "success", "data": "https://vconnct-client-api.com/playback/presentation/2.3/8e3838a10f13e06cecbef7a464b86de74e66a5b8-1672672130203", "success_message": "تم بنجاح!" } ``` *** ## Error Responses | Key | Possible Values/Responses | :--- | :--- | `status` | false | | `status_code` | [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) - [404](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404) - [401](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401) | | `message` | error | | `error_messages` | [ "error_1", "error_2", "error_3" ] |