# Changelog Itgrix_bx (/changelog-bx)
## Versions [#versions]
| Version (new features) | Type | Latest release (patch) |
| ---------------------------------- | --------- | ------------------------------------------------ |
| [3.13](/changelog-bx#id-3.13.0).\* | Latest | [3.13.16](/changelog-bx#id-3.13.16) - 23.06.2026 |
| [3.12](/changelog-bx#id-3.12.0).\* | Supported | [3.12.11](/changelog-bx#id-3.12.11) - 29.01.2026 |
| [3.11](/changelog-bx#id-3.11.0).\* | Supported | [3.11.14](/changelog-bx#id-3.11.14) - 15.07.2025 |
Versions are denoted with three numbers `X.Y.Z`:
* `X` - major version, big changes that may break compatibility
* `Y` - minor version, new features and improvements
* `Z` - patch, bug fixes
Last 3 minor versions are being updated with patches. Latest minor version contains newest features and all applicable bug fixes. Supported versions are only getting compatible bug fixes.
To update to version `X.Y.Z`: `/opt/itgrix_bx/update.sh --version=X.Y.Z`
## Changelog [#changelog]
Versions are sorted by release date.
### 3.1.9 [#id-3.1.9]
> 23.06.2026
Admin panel:
* Fixed display of the "Use Click-to-Call server" setting in the admin panel
* Added detailed messages about missing required AMI user permissions on the status page
Fixed:
* Fixed incorrect call type changes when phone numbers are placed incorrectly in the call end event
* Fixed unspecified errors in the application state (observed since version [3.1.5](/changelog-kommo#id-3.1.5))
* Fixed parsing of custom CRM fields of the "file" type
* Customizer errors are now included in the error statistics
* The `/status` output now includes the state of the phone number parser
### 3.13.16 [#id-3.13.16]
> 23.06.2026
Admin panel:
* Added detailed messages on the status page about missing required AMI user permissions
Fixed:
* Fixed incorrect call type change when phone numbers are incorrectly placed in the call end event
* Fixed an error saving/loading statistics for the number of calls (observed since version [3.12.0](/changelog-bx#id-3.12.0))
* Customizer errors are now included in the error statistics
* The `/status` output now includes the state of the phone number parser
### 3.13.15 [#id-3.13.15]
> 29.04.2026
Fixed:
* Fixed rare event handling misordering of conversation initialization and answer for C2C calls (observed since version [3.13.0](/changelog-bx#id-3.13.0))
* Fixed error when customizing phone numbers for calls initialized on local channels (observed since version [3.13.0](/changelog-bx#id-3.13.0))
* Fixed license check delay after network issues
* Fixed typo in the output of the `--help` flag
* Call registration request now uses the field `EXTERNAL_CALL_ID`
* Improved AMI user check procedure
* Completing authorization in the portal automatically adds its address to the list of allowed CORS domains
* On installation, the logrotate configuration file is created with stricter access permissions `0600`
* Updated the default version of the logrotate configuration file: keep 7 rotations instead of 5, use "yesterday" date in file names, updated comments
Customizer:
* All customization points are now listed in the configuration file, including those that are disabled
### 3.12.11 [#id-3.12.11]
> 29.01.2026
Fixed:
* Fixed database permission check with old settings when changing connection settings
* Fixed building recording URLs with non-HTTP(S) schemes
* Optimized the search query for related calls
* Improved backup logging and added support for symlinks during backup
### 3.13.14 [#id-3.13.14]
> 28.01.2026
Admin panel:
* Improved layout of tables in the admin panel
* Improved display of call reprocessing errors in the admin panel
* Fixed errors when executing state commands in the admin panel (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Fixed a rare error when generating CSV files
* Added an option to reprocess calls with clearing state
Fixed:
* Fixed error when handling call data before displaying the call card on answer (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Optimized the search query for related calls (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Fixed database reconnection error in case of network issues
* Fixed building recording URLs with non-HTTP(S) schemes
Customizer:
* `custom_data` customization data is restored during repeated call processing
* In the `customize_recording_query` customization data, the "CallID" field was renamed to "call\_id"
### 3.13.13 [#id-3.13.13]
> 16.10.2025
Admin panel:
* Added the ability to download the output in CSV format on the Itgrix DB page
* Only active users are shown in user lists in the admin panel
* Fixed database permission checks with old settings when changing connection settings (observed since version v[3.13.10](/changelog-bx#id-3.13.10))
Fixed:
* Fixed cyclic re-processing of calls with error during registration (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Fixed filter for internal numbers triggering on trunk numbers
### 3.13.12 [#id-3.13.12]
> 20.08.2025
Fixed:
* Fixed rare crash due to conversation ID collisions between calls (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Fixed outdated search query for downtime calls (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Fixed logging of timeout errors when SQL queries execute very quickly (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Fixed timeout handling when checking connection to the Asterisk database (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Improved backup logging and added support for symlinks during backup
### 3.11.14 [#id-3.11.14]
> 15.07.2025
Admin panel:
* Updated order, names and logos of applications on CRM authentication page
* Updated minimum Asterisk version format in admin panel texts
* Fixed handling of "certified" versions of Asterisk
Fixed:
* Fixed hanging when both AMI and MySQL fail simultaneously
* Added support for `path` parameter in `/get_config` API node
### 3.12.10 [#id-3.12.10]
> 14.07.2025
Please note the changes in licensing for the Bitrix24 Market subscription license:
* 5 users instead of 6;
* only basic customizations instead of all customizations.
To use the subscription license, access to the licensing server lk.bx24asterisk.ru is required; otherwise, the free license with reduced functionality applies.
Admin panel:
* Added CDR table update permission check to statuses on the main page
* Fixed issue with saving AMI login
* Fixed issue with displaying license status
* Updated minimum Asterisk version format in admin panel texts
* Fixed errors when saving settings
Fixed:
* Fixed loading of user IDs in saved calls when resuming after a stop
* Fixed a rare crash during call transfers
* Changed conditions for the free license via Bitrix24 Market subscription: 5 users, only basic customizations
* Improved logging of the `/status` API request
### 3.13.11 [#id-3.13.11]
> 03.07.2025
Fixed:
* Fixed socket reconnection loop in the admin panel (observed since version v[3.13.10](/changelog-bx#id-3.13.10))
* Fixed crash when handling duplicate call registration error (observed since version v[3.13.10](/changelog-bx#id-3.13.10))
* Improved logging for the `/status` API request
### 3.13.10 [#id-3.13.10]
> 01.07.2025
New:
* Added CDR table update permission check to statuses on the main page
* Added `app.launched_at` and `app.system_up_since` fields to the `/status` API request output
Admin panel:
* Fixed rare socket reconnection error and incorrect socket port usage
* Improved layout on the Asterisk DB page
* Updated query fields placeholders in admin panel
Fixed:
* Fixed missing call start event when processing calls that include dialing oneself
* Improved `state.db` handling when skipping call processing steps and working with dependent steps
* Fixed delay in applying black/white filter settings (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Added error handling for missing call in CRM at the moment of call completion
Customizer:
* Call ID is used for logging in the customizer
* Call data added to autodistribution customization
### 3.13.9 [#id-3.13.9]
> 29.04.2025
Fixed:
* Fixed updating call recording path in the CDR table when the original `recordingfile` value does not contain a full path (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Added support for the `Accept: application/json` header in the `/state` API endpoint
* Prevent updating call recording path in the CDR table if the `recordingfile` field alias matches another field
Customizer:
* Added `initial_cdr_recordingfile` and `updated_cdr_recordingfile` parameters to the `customize_record_conversion` customization
* Logging functions in the customizer now accept values of any type, not just strings
* Added the call ID (`2_call_id`) in the `process_record_file_path` and `customize_autodistribution` customizations
### 3.13.8 [#id-3.13.8]
> 10.04.2025
Admin panel:
* Added query history on the Itgrix DB page
Fixed:
* Fixed updating recording name in CDR table when converting recordings to mp3 (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
### 3.13.7 [#id-3.13.7]
> 02.04.2025
Admin panel:
* Added handling for Supervisor service HTTPS access misconfiguration in admin panel (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Fixed display of new customizations in admin panel (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Updated tooltip about enabling mp3 recording conversion
Fixed:
* Fixed crash when disconnecting from Asterisk DB during query execution (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Fixed table creation order in Itgrix DB when using the `--sql` flag (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Added regular logging of call statistics from Itgrix DB
### 3.13.6 [#id-3.13.6]
> 17.03.2025
Fixed:
* Fixed how trunk black/white list is applied: now only applies to incoming calls (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Disabled record conversion through customization by default, using converter settings from admin panel instead
* Changed the ffmpeg executable path from relative to absolute by default
### 3.13.5 [#id-3.13.5]
> 11.03.2025
Admin panel:
* Fixed how customizations are displayed in admin panel in subscription mode (observed since version v[3.13.4](/changelog-bx#id-3.13.4))
Fixed:
* Fixed crash when reading outdated call registration data from database (observed since version v[3.13.4](/changelog-bx#id-3.13.4))
* Added default HTTPS port for Supervisor service
### 3.13.4 [#id-3.13.4]
> 10.03.2025
Admin panel:
* Fixed Asterisk database status check error before creating tables in Itgrix database (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
Fixed:
* Improved call re-registration procedure during reprocessing
* Fixed handling of callbacks from short numbers
* Changed conditions for free license with Bitrix24 Market subscription: 5 users, basic customizations only
### 3.13.3 [#id-3.13.3]
> 03.03.2025
Fixed:
* Fixed loading of user IDs from saved calls when resuming work (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Fixed outdated data cleanup flags functionality (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Added statistics for database operation execution time
* Improved logging for database operation timeouts
### 3.13.2 [#id-3.13.2]
> 27.02.2025
Admin panel:
* Fixed execution of custom SQLite "update" queries from admin panel (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
Fixed:
* Fixed crash when checking for presence of registration in call data (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
### 3.13.1 [#id-3.13.1]
> 26.02.2025
Admin panel:
* Fixed displaying outdated version of black/white lists page in admin panel (observed since version v[3.13.0](/changelog-bx#id-3.13.0))
* Fixed issue with displaying updates in admin panel (observed since version v[3.12.0](/changelog-bx#id-3.12.0))
* Fixed output format for minimum Asterisk version in statuses in admin panel
Fixed:
* Removed examples of allowed users from initial configuration file
### 3.13.0 [#id-3.13.0]
> 24.02.2025
New:
* The `state.json` file is replaced with an SQLite database `state.db`. This entails:
* During low activity, the application reprocesses calls that had errors during initial processing
* Results of each action during call processing are saved and used during reprocessing to prevent duplication
* After restarting, accumulated calls from the downtime period are processed in a separate low-priority thread and don't block processing of current calls, similar to reprocessing during low activity
* Reduced logging volume, now call data is only logged at the end of the call by default
* Added conversion of call recordings in the main logic (not in customization) using third-party converters, including `ffmpeg` bundled with the module
* Added ability to pass arbitrary data between customizations without using a special database
* Added black/white list for trunks in admin panel
* Added new customizations: recording conversion parameters, recording search request, Originate response processing
Admin panel:
* Status page now shows presence/activity in CRM for all users selected in settings
* Added recording conversion settings
* Added "Itgrix DB" page for accessing `state.db`
* Improved work with lists
* Improved work with websockets
* Fixed presence of inactive users in lists
Call data processing:
* Implemented processing of C2C calls to multiple devices via PJSIP protocol
* Fixed missing conversation end in one of the calls during attended transfer
* Fixed processing of unanswered FollowMe calls
Fixed:
* Fixed output of escaped Unicode characters in logs
* Fixed use of parallel batch requests with low fill percentage
* On CRM error 401, token update is attempted
* Added timeout for application shutdown procedure
* Improved error handling in CRM connector
* Improved logging of CRM request errors
Customizer:
* Data from AMI OriginateResponse message is included in call registration data
* Updated documentation in customizations
Supervisor service:
* Added HTTPS support
### 3.12.9 [#id-3.12.9]
> 19.02.2025
Admin panel:
* Fixed errors when saving changes in setup master
* Fixed handling of "certified" versions of Asterisk
Fixed:
* Added support for `path` parameter in `/get_config` API node
* Fixed error when comparing timestamps of conversation end times on x32 systems
* Added protection against potential hangs during application shutdown process
### 3.12.8 [#id-3.12.8]
> 13.01.2025
Admin panel:
* Updated order, names and logos of applications on CRM authentication page
* Fixed display of the services restart button
* Fixed settings saving when moving between steps in the setup master
* Fixed password display
Fixed:
* Fixed responses to `/pbx/read_call`, `/pbx/read_cel` and `/crm/request` requests when the module is stopped
* Fixed rare hanging when reprocessing partially processed calls (observed since version v[3.12.0](/changelog-bx#id-3.12.0))
### 3.12.7 [#id-3.12.7]
> 17.12.2024
Admin panel:
* Fixed displaying old logs in response to a call reprocessing request (observed since version v[3.10.0](/changelog-bx#id-3.10.0))
Fixed:
* Fixed hanging when both AMI and MySQL fail simultaneously
* Fixed rare crash when simultaneously filling and outputting statistics data (observed since version v[3.12.0](/changelog-bx#id-3.12.0))
* Added an attempt to automatically update the token when there is an authorization error in CRM
* Improved logging of CRM request errors
### 3.12.6 [#id-3.12.6]
> 20.11.2024
Admin panel:
* Fixed regular loss of connection with the websocket for updating the application status in the admin panel (observed since version v[3.11.0](/changelog-bx#id-3.11.0))
Fixed:
* Fixed reading of integer values in diagnostic requests to the Asterisk DB (observed since version v[3.12.3](/changelog-bx#id-3.12.3))
* Fixed handling of inactive users: prioritize active users when searching by phone number (observed since version v[3.12.3](/changelog-bx#id-3.12.3))
### 3.11.13 [#id-3.11.13]
> 19.11.2024
Admin panel:
* Updated customization documentation in the Admin Panel
Fixed:
* Added caching for inactive users
* Improved handling of C2C server connection errors
* Fixed logging of attended transfer result (observed since version v[3.11.0](/changelog-bx#id-3.11.0))
* Fixed reading of integer values in diagnostic requests to the Asterisk DB
### 3.10.19 [#id-3.10.19]
> 19.11.2024
Admin panel:
* Updated customization documentation in the Admin Panel
Fixed:
* Extended the list of default AMI permissions
* More detailed logging of call registration data
* Fixed rare crash when reading AMI data
* Fixed error reading ID when creating a task
* Improved handling of C2C server connection errors
* Fixed reading of integer values in diagnostic requests to the Asterisk DB
Customizer:
* Allowed increasing the timeout for recording path customization
### 3.12.5 [#id-3.12.5]
> 08.10.2024
Fixed:
* Fixed logging of record file content on request timeout
* Added request ID to `/crm/request` responses
* When handling `/pbx/read_call` requests, the request ID is logged, and a warning is logged if zero CEL records are found
* Enabled logging of a successful call transfer
### 3.12.4 [#id-3.12.4]
> 03.09.2024
Admin panel:
* Updated documentation for customizations in the Admin Panel
Fixed:
* Fixed errors when searching for inactive users in the module API (observed since version v[3.12.3](/changelog-bx#id-3.12.3))
* Fixed error handling for reading requests from the C2C server
* Fixed default behavior for customizations of record links and card display: instead of canceling the request, do not make any changes (observed since version v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed logging of special HTML characters
* Fixed error when logging incoming requests (observed since version v[3.10.10](/changelog-bx#id-3.10.10))
### 3.12.3 [#id-3.12.3]
> 18.07.2024
Fixed:
* Fixed potential hang up of the HTTP server authorization when there is a simultaneous timeout and success
* Added caching for inactive users
### 3.11.12 [#id-3.11.12]
> 04.07.2024
Fixed:
* Fixed rare crash when determining responsible user for calls that are unanswered on IVR
* Fixed an error in the alternative method of finding the conversation ID during an attended transfer
* Fixed error reading ID of a created task (observed since version v[3.11.0](/changelog-bx#id-3.11.0))
* Fixed rare freeze during prolonged network communication issues with AMI (observed since version v[3.11.0](/changelog-bx#id-3.11.0))
### 3.12.2 [#id-3.12.2]
> 03.07.2024
Admin panel:
* Fixed displaing result after clicking the "Refresh Users" button (observed since version v[3.12.0](/changelog-bx#id-3.12.0))
Fixed:
* Fixed rare crash on calls with empty numbers in transfers (observed since version v[3.12.0](/changelog-bx#id-3.12.0))
* Fixed rare crash when determining responsible user for calls that are unanswered on IVR (observed since version v[3.12.0](/changelog-bx#id-3.12.0))
* Fixed rare freeze during prolonged network communication issues with AMI (observed since version v[3.11.0](/changelog-bx#id-3.11.0))
* Fixed error in calculating statistics data per hour (observed since version v[3.12.0](/changelog-bx#id-3.12.0))
* Expanded CRM request statistics
### 3.12.1 [#id-3.12.1]
> 26.06.2024
Fixed:
* Fixed an error in editing trunk sources in the admin panel (observed since version v[3.12.0](/changelog-bx#id-3.12.0))
* Fixed an error in loading users in the admin panel (observed since version v[3.12.0](/changelog-bx#id-3.12.0))
### 3.12.0 [#id-3.12.0]
> 18.06.2024
New:
* CEL events with `channame` in the format `Local/...` are now processed and used for handling attended transfers
* Added updating responsible users in repeated leads
* Improved performance by sending multiple `batch` requests to the CRM simultaneously
* Creation of an entity is considered successful as long as an ID is received, even if the entity itself is not fetched successfully
* Changed the format of internal IDs in logs
* More traceable logging using internal IDs for autodistribution, C2C, and requests from customizations
* Improved handling and error output for CRM requests
* A report for tech support can be generated by running the application with the `--report` flag, even if the normal startup is unsuccessful
* In the `/pbx/read_call` request, you can specify the interval settings between call events and include related calls
* Added support for `.json` data format in the `/pbx/read_cel` request
* In the `/crm/request` requests, you can specify the call ID
Admin panel:
* Added support for displaying multiple messages in one application status on the main page
* Added FMC configuration page
* Improved real-time updating of application statuses
Fixed:
* Explicitly specify the use of date in file names in the `logrotate` settings during installation
* Improved handling of time zones when reading CEL
* Unknown call types are no longer dropped from the cache when answered
* Made the procedure for updating phone numbers in a call safer
* Fixed an error in the alternative method of finding the conversation ID during an attended transfer
Customizer:
* Added customization for rejected call events, allowing handling of calls between employees, unrecognized calls, duplicate calls, and calls with incorrect data
* Call transfers are now stored as separate objects in call data
* User cache can now be used for searching by ID and phone number in the user request
* ActionID parameter for Originate is included in customization
### 3.11.11 [#id-3.11.11]
> 30.05.2024
Fixed:
* Fixed display of successful CRM authorization
* Fixed rare settings validation errors
* Fixed multiple restarts when updating CRM token while admin panel is open (observed since version v[3.11.0](/changelog-bx#id-3.11.0))
* Fixed hiding of call card after long calls (observed since version v[3.11.0](/changelog-bx#id-3.11.0))
* Improved error handling for CRM authorization
* Updated default AMI permissions
* Fixed license check schedule errors (observed since version v[3.11.0](/changelog-bx#id-3.11.0))
* Fixed rare crash when reading AMI data
* More detailed logging of call registration data
* Added logging of the moment when an Originate request is sent
### 3.10.18 [#id-3.10.18]
> 08.04.2024
Fixed:
* "Users" requests can work based on cache when there is no connection to CRM
* Fixed user cache reset when requesting users with a filter (observed since version v[3.8.0](/changelog-bx#id-3.8.0))
* Fixed a potential freeze on license check errors (observed since version v[3.8.0](/changelog-bx#id-3.8.0))
* Fixed error when closing call card on prolonged conversations
### 3.11.10 [#id-3.11.10]
> 04.04.2024
New:
* Added a new optional permission `user.userfield` for accessing custom user fields
Admin Panel:
* Added links to the most recent documentation in tips in the admin panel
Fixed:
* Fixed user cache reset when requesting users with a filter (observed since version v[3.8.0](/changelog-bx#id-3.8.0))
* Fixed error when registering a call with an external line not belonging to the current instance (observed since version v[3.11.0](/changelog-bx#id-3.11.0))
* Fixed a delay in the processing of attended transfers in presence of local channels (observed since version v[3.11.0](/changelog-bx#id-3.11.0))
* Fixed a rare error in determining call status on call end (observed since version v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed license check error when launching customizations (observed since version v[3.10.14](/changelog-bx#id-3.10.14))
* Fixed a potential freeze on license check errors (observed since version v[3.8.0](/changelog-bx#id-3.8.0))
### 3.11.9 [#id-3.11.9]
> 12.02.2024
Admin Panel:
* Updated tips in the admin panel
Fixed:
* Implemented synchronization of `from` numbers between initial outgoing PJSIP conversations
* Added autoreplacement for client numbers in C2C calls in default settings (on initial installation): removal of non-digit characters
* Disabled autoreplacement of FMC numbers in default settings (on initial installation)
* Fixed extraneous license requests when updating CRM token
* Fixed detection of `fmc_patterns` file path for non-standard installations
Logs:
* Fixed incorrect entity search error output in `OriginatedConversationRequested`
* Fixed incorrect logging of ID in channel creation error
### 3.11.8 [#id-3.11.8]
> 18.12.2023
Fixed:
* Fixed a crash when dialing an unrecognized FMC number (observed since version v[3.10.0](/changelog-bx#id-3.10.0))
### 3.11.7 [#id-3.11.7]
> 11.12.2023
Admin Panel:
* Fixed issues with displaying the list of external lines in the admin panel (observed since version v[3.11.5](/changelog-bx#id-3.11.5))
Fixed:
* Not only the user's number but also the client's number can be found on call end (observed since version [v3.11.0](/changelog-bx#id-3.11.0))
* When starting an outgoing call with PJSIP user number, it is used in all simultaneously initiated conversations and not just one
* Fixed timezone when parsing channel creation time (observed since version v[3.11.3](/changelog-bx#id-3.11.3))
* "Users" requests can work based on cache when there is no connection to CRM
* Added a statistics section with errors and calls to the `/status` request
### 3.9.11 [#id-3.9.11]
> 24.11.2023
Admin Panel:
* MySQL output in admin panel shows `NULL` values correctly
Fixed:
* Fixed a rare freeze when disconnecting from AMI (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed a rare case of C2C client restarting in a loop (observed since v[3.10.0](/changelog-bx#id-3.10.0))
### 3.10.17 [#id-3.10.17]
> 24.11.2023
Admin Panel:
* Updated status text for absence of recent call records in the CDR table
Fixed:
* Fixed a rare freeze when disconnecting from AMI (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Added support for reading from CEL "extra" column with `NULL` values
* Fixed a rare case of C2C client restarting in a loop (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Improved error handling for AMI connection errors
### 3.11.6 [#id-3.11.6]
> 15.11.2023
Admin Panel:
* Fixed error when editing trunks list (observed since v[3.11.5](/changelog-bx#id-3.11.5))
* Improved validation of CORS host values and portal address
### 3.11.5 [#id-3.11.5]
> 14.11.2023
Admin panel:
* Fixed error when saving settings on first launch (observed since v[3.11.0](/changelog-bx#id-3.11.0))
* Updated table formatting on MySQL page
* Updated status text for absence of recent call records in the CDR table
Fixed:
* Improved call synchronization while handling call pickup events
* Fixed unnecessary restarts when updating token on a schedule (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed a rare case of C2C client restarting in a loop (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Improved error handling for AMI connection errors
* Fixed a rare misinterpretation of hangup reason (observed since v[3.10.0](/changelog-bx#id-3.10.0))
### 3.11.4 [#id-3.11.4]
> 17.10.2023
Admin panel:
* Fixed saving of prefix list and blacklist/whitelist in admin panel
Fixed:
* Fixed direction detection error during handling of attended transfers in some incoming calls
* Added support for reading from CEL "extra" column with `NULL` values
* Improved error output in logs
### 3.11.3 [#id-3.11.3]
> 11.10.2023
Fixed:
* Fixed saving changes of the trunk list in the admin panel (observed since v[3.11.0](/changelog-bx#id-3.11.0))
* Fixed a rare freeze when disconnecting from AMI (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed the reset of the last read CEL ID after restart
* Fixed a rare error of timezone determination for CEL events
* Fixed missing call start event when the client number becimes known upon answer (observed since v[3.11.0](/changelog-bx#id-3.11.0))
* Fixed a hanging when ending a conversation repeatedly during attended transfer (observed since v[3.11.0](/changelog-bx#id-3.11.0))
* Fexed incorrect termination of conversation during attended transfer (observed since v[3.11.0](/changelog-bx#id-3.11.0))
* Fixed a crash when a conversation is missing during attended transfer (observed since v[3.11.0](/changelog-bx#id-3.11.0))
* Fixed cancellation of task creation from customization (observed since v[3.11.0](/changelog-bx#id-3.11.0))
### 3.10.16 [#id-3.10.16]
> 13.09.2023
Admin panel:
* MySQL output in admin panel shows `NULL` values correctly
* Added ability to resize query field on MySQL page
* Fixed minor layout issues on admin panel pages
Fixed:
* Fixed rare issue with conversations priority (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed incorrect error logging during entity creation for C2C calls (observed since v[3.10.11](/changelog-bx#id-3.10.11))
* Fixed duplicate reading of call events that are in the processing queue at the time of restart
Customizer:
* Fixed handling of task creation cancellation from customization (observed since v[3.10.0](/changelog-bx#id-3.10.0))
### 3.11.2 [#id-3.11.2]
> 13.09.2023
Admin panel:
* Fixed delay in displaying statuses on the main page (observed since v[3.11.0](/changelog-bx#id-3.11.0))
* Added ability to resize query field on MySQL page
* Fixed minor layout issues on admin panel pages
Fixed:
* Fixed leakage of open files towards system limit when handling token file (observed since v[3.10.0](/changelog-bx#id-3.10.0))
### 3.11.1 [#id-3.11.1]
> 06.09.2023
Fixed:
* Fixed saving autoreplacement settings in admin panel (observed since v[3.11.0](/changelog-bx#id-3.11.0))
* Fixed crashing on database connection errors (observed since v[3.11.0](/changelog-bx#id-3.11.0))
### 3.11.0 [#id-3.11.0]
> 31.08.2023
New:
* Added separate autoreplacements for FMC numbers, trunks, and Originate requests
* Added setting for CRM data language
* Extended support for attended transfers with more call configurations
* In attended transfers, time when employees talk to each other is not counted towards either of the two conversations
* Added support for calls where the `to` number in conversations is unknown until answered
* Multiple app instances working with the same portal now track their ownership/use of event handlers and external lines
* Paused calls are preserved across service restarts
* Added attaching call recordings for calls that are unanswered on IVR
* Added handling for AMI `OriginateResponse` event
* C2C requests from CRM are matched against Asterisk calls using IDs instead of phone numbers
* Data of very large calls are now compressed before being passed to customizations
Admin panel:
* Application status is now updated live and visible on all pages when issues are present
* Added indication of active offline license
* Separated settings of external lines from trunks
* When settings master is completed successfully, business logic page opens automatically
* Moved prefixes from business logic page to module settings page
* "Restart services" button on the main page now displays state of the restart process
Customizer:
* Execution timeout is now configurable for every customization separately
* Allowed enabling/disabling all customizations, even those that used to be "mandatory"
* Customizer logs are formatted similarly to those of CRM requests
Logging:
* Log fields are padded to improve readability
* CRM requests that are grouped into batches are not logged separately after the batch, with IDs of related calls
* More detailed logging of CEL processing
* Total number of calls and active calls are logged when saving calls to `state.json`
* "Processing finished" is logged even when end of call is not being processed
* Added request UUID to `/crm/request` logs
Fixed:
* CEL event processing timeout is increased to 3 hours
* MySQL output in admin panel shows `NULL` values correctly
* Autodistribution ignores inactive users during responsible lookup
* FMC numbers are refreshed at the same time as the users cache
* Fixed placeholder margins in admin panel
* CRM error 500 is not considered a network issue anymore
* Fixed handling of special characters in phone numbers during C2C calls
* Fixed delayed switching of portal in the bottom-left corner of admin panel pages
* Fixed missing restart upon modification of the token file
* Improved error handling when app finishes working
### 3.10.15 [#id-3.10.15]
> 15.08.2023
Fixed:
* Fixed editing ports in admin panel
* Changed logging levels of some events
### 3.9.10 [#id-3.9.10]
> 15.08.2023
Fixed:
* `last_id` is no longer reset on restart when `state.json` is disabled
* Fixed admin panel crash when editing C2C address (observed since v[3.9.0](/changelog-bx#id-3.9.0))
* Fixed editing ports in admin panel
### 3.8.9 [#id-3.8.9]
> 15.08.2023
Fixed:
* `last_id` is no longer reset on restart when `state.json` is disabled
### 3.10.14 [#id-3.10.14]
> 24.07.2023
Fixed:
* `last_id` is no longer reset on restart when `state.json` is disabled
* Added CRM authorization information to the response of `/status` request
* Fixed repeated processing of "conversation ended" stage during blind transfer
* Fixed admin panel crash when editing C2C address (observed since v[3.9.0](/changelog-bx#id-3.9.0))
### 3.10.13 [#id-3.10.13]
> 27.06.2023
Fixed:
* Fixed potential problems with checking license
* Attended transfer now triggers processing not only for answer but also for conversation request
* Added support for attended transfer without answer in conversation between employees
* Fixed issue with determining the path to `state.json` on non-new and non-primary application instances (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed logging of requests from C2C-server
### 3.10.12 [#id-3.10.12]
> 02.05.2023
Fixed:
* Fixed MySQL connections leak
* Optimized work with enities on autodistribution
* Status of unanswered call is defined by direction: incoming is missed, outgoing is temporarily unavailable
* Fixed missing `CallStarted` stage while processing some C2C calls\* Оптимизирована работа с сущностями при автораспределении
* Fixed AMI reconnection error when changing authentication data
* Fixed Apix reconnection error when switching portals
* Improved logging for CEL processing
### 3.9.9 [#id-3.9.9]
> 02.05.2023
Fixed:
* Status of unanswered call is defined by direction: incoming is missed, outgoing is temporarily unavailable
* Fixed missing `CallStarted` stage while processing some C2C calls\* Оптимизирована работа с сущностями при автораспределении
* Fixed AMI reconnection error when changing authentication data
### 3.8.8 [#id-3.8.8]
> 02.05.2023
Fixed:
* Optimized work with enities on autodistribution
* Status of unanswered call is defined by direction: incoming is missed, outgoing is temporarily unavailable
* Fixed missing `CallStarted` stage while processing some C2C calls
### 3.10.11 [#id-3.10.11]
> 23.03.2023
Fixed:
* Fixed incorrect check for minimal Asterisk version (**13.0.0**)
* Fixed crash when target conversation is missing in attended transfer of an outgoing call (observed since v[3.10.10](/changelog-bx#id-3.10.10))
* Optimized launch procedure (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed string case for application status in `/status` API request output
Customizer:
* Fixed missing entity in call structure for C2C calls (observed since v[3.10.0](/changelog-bx#id-3.10.0))
### 3.10.10 [#id-3.10.10]
> 07.03.2023
Fixed:
* Fixed rare hangs while processing C2C calls (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed attaching records for calls that are unanswered on IVR (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Unanswered call status now depends on its direction: missed for incoming, temporarily unavailable for outgoing (observed since v[3.10.5](/changelog-bx#id-3.10.5))
* Fixed processing attended transfers with non-standard configuration (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed processing incoming answered calls distributed to FMC numbers (observed since v[3.10.9](/changelog-bx#id-3.10.9))
* Restored launch flag `--legal` (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Optimized entity search on autodistribution (observed since v[3.9.0](/changelog-bx#id-3.9.0))
* Improved logging
Customizer:
* Added new fields `old_description` and `record_url` to attach record URL customization
### 3.10.9 [#id-3.10.9]
> 14.02.2023
Admin panel:
* Fixed crashing after loading module settings page
Fixed:
* Fixed incorrect processing of attended transfers on outgoing calls (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed problem with establishing connection on some routes of certain ISPs that caused `TLS Handshake timeout`
* Fixed C2C requests not being processed when experiencing errors with accessing calls data
* Fixed a rare problem with processing unanswered outgoing calls
Customizer:
* Added missing data to customizations
### 3.9.8 [#id-3.9.8]
> 14.02.2023
Fixed:
* Fixed problem with establishing connection on some routes of certain ISPs that caused `TLS Handshake timeout`
### 3.8.7 [#id-3.8.7]
> 14.02.2023
Fixed:
* Improved error handling when checking license key
* Fixed problem with establishing connection on some routes of certain ISPs that caused `TLS Handshake timeout`
### 3.10.8 [#id-3.10.8]
> 31.01.2023
Fixed:
* Improved error handling when checking license key
### 3.9.7 [#id-3.9.7]
> 31.01.2023
Fixed:
* Improved error handling when checking license key
### 3.10.7 [#id-3.10.7]
> 31.01.2023
Admin panel:
* Fixed small layout errors
Fixed:
* Fixed error while checking license key right after start (observed since v[3.9.0](/changelog-bx#id-3.9.0))
* Fixed rare hangs when one call event is processed multiple times (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Improved logging
### 3.9.6 [#id-3.9.6]
> 31.01.2023
Fixed:
* Fixed error while checking license key right after start (observed since v[3.9.0](/changelog-bx#id-3.9.0))
* Improved logging
### 3.10.6 [#id-3.10.6]
> 23.01.2023
Fixed:
* Fixed hanging on restart
* Improved logging
### 3.9.5 [#id-3.9.5]
> 19.01.2023
Fixed:
* Checking working day status is now available in the free application as well
* Fixed rarely setting incorrect end time in conversation
* Incoming unanswered call status is changed from 480 (temporarily unavailable) to 304 (missed) and activity is created as open
* During Click-to-Call the `to` number is updated according to customization output
* Fixed phone number handling error when loading call recording via link that happened when beginning of a number was the same as one of the prefixes
* Fixed error "user is not administrator" being shown incorrectly in CRM status
* Fixed autodistribution to inactive users
* FMC numbers from CRM are now updated simultaneously with users cache (hourly)
* Fixed escaping in `csv` files
* Improved output for request errors
* Improved logging
Customizer:
* Added more cases for removing duplicated paths in recording path customization
### 3.8.6 [#id-3.8.6]
> 19.01.2023
Fixed:
* Checking working day status is now available in the free application as well
* Fixed rarely setting incorrect end time in conversation
* Incoming unanswered call status is changed from 480 (temporarily unavailable) to 304 (missed) and activity is created as open
* During Click-to-Call the `to` number is updated according to customization output
* Fixed phone number handling error when loading call recording via link that happened when beginning of a number was the same as one of the prefixes
* Fixed error "user is not administrator" being shown incorrectly in CRM status
* Fixed autodistribution to inactive users
* FMC numbers from CRM are now updated simultaneously with users cache (hourly)
* Improved output for request errors
* Improved logging
Customizer:
* Added more cases for removing duplicated paths in recording path customization
### 3.10.5 [#id-3.10.5]
> 18.01.2023
Fixed:
* Fixed a rare memory leak when events processing times out (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed autodistribution to inactive users
* FMC numbers from CRM are now updated simultaneously with users cache (hourly)
* Increased frequency of logging applicaton status (hourly)
* Fixed incorrect log entries
Customizer:
* Added more cases for removing duplicated paths in recording path customization
### 3.10.4 [#id-3.10.4]
> 28.12.2022
Fixed:
* Fixed crash when processing unanswered call to an FMC number when uploading recording files to CRM is enabled (observed since v[3.10.2](/changelog-bx#id-3.10.2))
### 3.10.3 [#id-3.10.3]
> 28.12.2022
Fixed:
* Fixed crashes when call is transferred to an FMC number and not answered (observed in v[3.10.2](/changelog-bx#id-3.10.2))
* Added registration for unanswered calls that were distributed to FMC numbers
### 3.10.2 [#id-3.10.2]
> 26.12.2022
Admin panel:
* Fixed error when editing list of allowed users
* Added check for CEL being outdated by 15 hours to main page, with priority higher than missing `extra` field
* Added check for CDL being outdated by one hour
* Added `extra` field to example MySQL queries
Fixed:
* Phone numbers in a call are now processed at the beginning of every stage, if they weren't processed yet
* Fixed updating `to` number in a call (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed hanging on `state.json` saving problems (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed a problem of deleting old calls from `state.json` (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed order of `from`/`to` numbers in recording URLs (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed external lines updating errors (observed since v[3.10.0](/changelog-bx#id-3.10.0))
* Original trunk number is now used for matching trunk settings and external line on call finish, instead of customized number
* Added registering unanswered calls to FMC numbers similarly to calls unanswered on IVR, when the phone number can't be retrieved
* Fixed a rare crash on token read problems
* Fixed a config handling problem when building a tech support report (observed since v[3.10.0](/changelog-bx#id-3.10.0))
Customizer:
* Removed extraneous launch of `post_registration` customization after finishing call registration
* Fixed building legacy entity data
### 3.10.1 [#id-3.10.1]
> 12.12.2022
Fixed:
* Fixed error while building list of phone numbers for call recording search (observed in v[3.10.0](/changelog-bx#id-3.10.0))
* Fixed hanging when searching for call recordings in calls with no conversations (observed in v[3.10.0](/changelog-bx#id-3.10.0))
* Added `path` parameter to `/status` API request
### 3.10.0 [#id-3.10.0]
> 08.12.2022
**Attention! These changes may affect your work with application:**
1. Minimum required version of Asterisk has been updated to `1.13.0`. Starting from this version, CEL has the `extra` field present and formatted as we need.
Application will still work on older versions, but with warnings. Call transfers will be processed in compatibility mode and pickups will not be processed.
2. There are changes in application main logic and customizations launch order. This is especially important for non-standard customizations of phone numbers, `need_registration` customization, and black/white lists.
`need_registration` and black/white list are now called at the beginning of every call processing stage, except `CallStarted`. Phone numbers customizations are now only called when the numbers first appear - on `CallStarted` and `ConversationRequested`.
3. Data passed to customizations have changed, but the legacy data is preserved for backward compatibility.
"Default" customizations will update automatically, but if there are any changes in them, then they will need manual rewriting. The most significant change is that all customizations now receive a `call_full` object with more detailed call data. All the data now should be taken from this object.
**If you have ordered any customizations from us, please address our tech support for help with updating them.**
4. Log format has changed: it has new field names and new time format.
If you had any additional applications set up for analyzing logs, e.g., for monitoring errors, then you will need to set them up again.
5. Changes in `/etc/itgrix_bx/config.json` and `/opt/itgrix_bx/token.json` are now tracked in real time.
You will not need to stop and restart the application anymore when editing those files, but keep in mind that any incomplete changes will also be applied instantly. If a config file with incorrect contents is saved during work, the application will continue working with previous settings, but the next launch attempt will fail.
6. When the config file has any incorrect data, they will not be ignored anymore. Instead, the application will refuse to start.
7. Requests from customizer functions to CRM will not expose any other data than results and errors anymore.
Such data as request execution time by CRM are now not available. If you were relying on them in your customizations, those will need to be rewritten.
New:
* Enhanced standardization of the main application logic
* Added an option to choose whether the call card is shown when phone is ringing or when answered
* Checking working day status is now available in the free application as well
* Added CORS white list settings (for managing from which domains it is allowed to make requests to the application, for instance, it could be your website)
* Added API request `/crm/request` for sending requests to CRM through connector's queue, which prevents significant slowdown when making additional requests from customizations
* Added new customizations for: showing call card, attaching call recording URL, and a customization after conversation is registered
* Added real time tracking of changes in config and token files
* Optimized setup of CRM event handlers and initial requests on application start
* Optimized CRM list requests (entities, activities, tasks)
* Updated log format
Admin panel:
* Added automatic sorting of black/white list
* Added indication for unsaved changes
* Added automatic formatting for CRM portal address
* Added error message when license prices fail to load
* Added users internal phones configuration status on main page
* Updated layout of log tables
* Added error messages when inactive buttons are pressed
* Fixed incorrect positioning of the chat button
* Updated customizations help texts
Fixed:
* Added graceful application stop procedure
* Added centralized synchronous call data storage
* Fixed repeated processing of calls / hanging of writing to `state.json`
* Fixed rare crash when working with offline license
* Activity requests now specify exact set of fields to fetch
* Resetting user list also resets FMC numbers
* Fixed incorrect attachment of recording URL and/or files in some cases (split phone trimming logic)
* When recordings are configured to be attached with links, activity customization runs after attaching record instead of simultaneously
* Fixed hanging after reconnecting to AMI after losing connection
* Fixed rarely setting incorrect end time in conversation
* Incoming unanswered call status is changed from 480 (temporarily unavailable) to 304 (missed) and activity is created as open
* During Click-to-Call the `to` number is updated according to customization output
* Added version check for remote Asterisk through AMI
* Fixed saving CEL that contains special characters in admin panel
Customizer:
* Customizations now receive complete call data as `call_full` object together with legacy-data for backward compatibility
* Added and applied CRM requests through application API
* Autodistribution customization now processes trunk and receives all request data
* Autodistribution customization now receives all entity data and the entity name is received even when user is unavailable
* Customizer status (`/status`) shows `false` for all customizations if customizer is disabled
* Entity customization now runs always rather than only for new entities
* `need_registration` customization and phone numbers customizations now receive call stage and full call data
* Activity customization now receives activity fields
* Removed duplicate phone number customizations so now they only run when number first appears: either on CallStarted or on ConversationRequested
* Added call recording URL attachment customization
* Added autoreplacement and phone number customization on Click-to-Call
* Added customization for show call card request
* Added customization after registering conversation
* Added an option to cancel requests by returning empty data in following customizations: conversation registration, registration finish, attaching recording URL, show call card
* Combined output is now read when running customizations
* It is now possible to register conversation from registration finish customization
* Updated log format in customizer
* Customizer is using new call data preferentially
* Updated standard customizations
Supervisor:
* Update error now contains absolute path to `update.log`
* Fixed version output in supervisor API
### 3.9.4 [#id-3.9.4]
> 30.09.2022
Admin panel:
* Added automatic sorting for black/white list
* Added automatic formatting and validity check for CRM portal address
* Added displaying error if loading license prices fails
Fixed:
* Fixed crash under high load when working with offline license (observed since v[3.9.0](/changelog-bx#id-3.9.0))
* Fixed phone number handling error when loading call recording via link that happened when beginning of a number was the same as one of the prefixes
* Fixed incorrect fields in activity request
* Fixed hanging after restoring AMI connection (observed since v[3.9.0](/changelog-bx#id-3.9.0))
### 3.8.5 [#id-3.8.5]
> 30.09.2022
Fixed:
* Fixed phone number handling error when loading call recording via link that happened when beginning of a number was the same as one of the prefixes
* Fixed incorrect fields in activity request
### 3.7.4 [#id-3.7.4]
> 30.09.2022
Fixed:
* Fixed phone number handling error when loading call recording via link that happened when beginning of a number was the same as one of the prefixes
### 3.9.3 [#id-3.9.3]
> 11.08.2022
Admin panel:
* Removed option to authenticate archived application
* Updated license purchase page
* Fixed errors when updating through admin panel
Fixed:
* Fixed AMI authentication error in settings master (observed since v[3.9.0](/changelog-bx#id-3.9.0))
### 3.8.4 [#id-3.8.4]
> 11.08.2022
Admin panel:
* Removed option to authenticate archived application
Fixed:
* Fixed a problem when changing autoreplacement settings (observed since v[3.7.0](/changelog-bx#id-3.7.0))
* Fixed closing user-created activities (now only activities created from actual calls are closed)
Customizer:
* Autodistribution customization now processes trunk and the rest of request data
### 3.7.3 [#id-3.7.3]
> 11.08.2022
Admin panel:
* Removed option to authenticate archived application
Fixed:
* Fixed a problem when changing autoreplacement settings (observed since v[3.7.0](/changelog-bx#id-3.7.0))
### 3.9.2 [#id-3.9.2]
> 08.08.2022
Fixed:
* Fixed a problem when changing autoreplacement settings (observed since v[3.7.0](/changelog-bx#id-3.7.0))
* Fixed closing user-created activities (now only activities created from actual calls are closed)
Customizer:
* Autodistribution customization now processes trunk and the rest of request data
* Fixed errors while setting time zone in customizer
### 3.9.1 [#id-3.9.1]
> 01.07.2022
Admin panel:
* Fixed uneditable input fields
* Fixed listing of available updates
* Updated help tips for autoreplacement
### 3.8.3 [#id-3.8.3]
> 01.07.2022
Admin panel:
* Added confirmation on successful reset of user cache
* Fixed listing of available updates
* Updated help tips for autoreplacement
Fixed:
* Entity search on autodistribution now excludes closed leads
* Connection error while reaching Bitrix authorization server now causes a restart instead of a stop
* Fixed rare crash during multiple simultaneous C2C calls
Customizer:
* Added autoreplacement and phone number customization to autodistribution
### 3.7.2 [#id-3.7.2]
> 01.07.2022
Admin panel:
* Обновлены тексты справки по автозамене
* Fixed listing of available updates
* Updated help tips for autoreplacement
Fixed:
* Connection error while reaching Bitrix authorization server now causes a restart instead of a stop
* Fixed rare crash during multiple simultaneous C2C calls
Customizer:
* Added autoreplacement and phone number customization to autodistribution
### 3.9.0 [#id-3.9.0]
> 23.06.2022
Admin panel:
* Added button for restarting services
* Non-optional customizations are listed together with optional ones
* Updated help tips for customizations and autoreplacement
* Added confirmation on successful reset of user cache
* Fixed C2C address saving issue
* Fixed escaping in `csv` files
* Removed outdated cache timeout setting
* Design improvements
Fixed:
* Fixed hanging when trying incorrect AMI password
* Connection error while reaching Bitrix authorization server now causes a restart instead of a stop
* Fixed rare start/stop issues
* Improved logging when connecting to database
* Entity search on autodistribution now excludes closed leads
* Fixed rare crash during multiple simultaneous C2C calls
* Fixed slowing down when using license key
* Added new data to report for tech support: system log, PHP and MySQL info, sudo, timezone settings, user info
* Improved error handling when building report for tech support
* Fixed access conflicts to shared resources when building report for tech support
Customizer:
* Settings are moved to a `json` file
* Added request timeout setting
* Entity customization receives more data: call, entity data, registration
* Fixed dataset that autodistribution customization receives when working day is stopped
* Optional customizations don't run in free mode
* Added autoreplacement and phone number customization to autodistribution
* Added exception handling
3.9.0 is a "special" version, so [update](/for-admins/application-update) needs to be done using the script with root access rather then through admin panel.
Starting from version 3.9.0, optional customization will only run with paid license:
```
process_registration_params.php
process_final_params.php
customize_entity.php
customize_activity.php
process_task_creation_params.php
customize_autodistribution.php
```
### 3.8.2 [#id-3.8.2]
> 14.04.2022
Fixed:
* Fixed problem with saving settings (observed since v[3.8.0](/changelog-bx#id-3.8.0))
### 3.8.1 [#id-3.8.1]
> 06.04.2022
Fixed:
* Fixed a rare error of CEL event processing while reading C2C call data (observed since v[3.5.0](/changelog-bx#id-3.5.0))
* Fixed incorrect type of C2C call when internal number changes upon answer (observed since v[3.6.2](/changelog-bx#id-3.6.2))
* Fixed logging when creating tasks with default title
### 3.7.1 [#id-3.7.1]
> 06.04.2022
Admin panel:
* Fixed a visual bug of the authentication button
Fixed:
* Fixed a problem that was preventing `state.json` from being updated while processing of some CEL events was delayed (observed since v[3.3.4](/changelog-bx#id-3.3.4))
* Fixed a rare error of CEL event processing while reading C2C call data (observed since v[3.5.0](/changelog-bx#id-3.5.0))
* Fixed incorrect type of C2C call when internal number changes upon answer (observed since v[3.6.2](/changelog-bx#id-3.6.2))
* Fixed autocompletion of tasks that have trunk in their title (observed since v[3.6.2](/changelog-bx#id-3.6.2))
* Fixed error when reading settings of Apix TCP port (observed since v[3.7.0](/changelog-bx#id-3.7.0))
* Fixed a rare error of checking connection to Bitrix24 authentication server (observed since v[3.7.0](/changelog-bx#id-3.7.0))
* Fixed logging when creating tasks with default title
* Improved logging when connecting to C2C-server
Customizer:
* Added parameter `is_ivr` to customization `need_registration`
### 3.6.3 [#id-3.6.3]
> 06.04.2022
Admin panel:
* Updated help tips for task creation settings
Fixed:
* Fixed a problem that was preventing `state.json` from being updated while processing of some CEL events was delayed (observed since v[3.3.4](/changelog-bx#id-3.3.4))
* Fixed a rare error of CEL event processing while reading C2C call data (observed since v[3.5.0](/changelog-bx#id-3.5.0))
* Fixed incorrect type of C2C call when internal number changes upon answer (observed since v[3.6.2](/changelog-bx#id-3.6.2))
* Fixed autocompletion of tasks that have trunk in their title (observed since v[3.6.2](/changelog-bx#id-3.6.2))
* Fixed "user" permissions check
Customizer:
* Added parameter `is_ivr` to customization `need_registration`
* C2C parameters are passed to the Originate customization
### 3.8.0 [#id-3.8.0]
> 29.03.2022
New:
* Updated how users are handled: all users are now cached once an hour and never fetched one-by-one
* Added customization for autodistribution `customize_autodistribution`
Admin panel:
* Updated UI logic when navigating master pages
* Authentication code input field appears if the code wasn't received during first 10 seconds
* In browsers with language that is not supported by admin panel, English will be used by default
Fixed:
* Fixed a problem that was preventing `state.json` from being updated while processing of some CEL events was delayed (observed since v[3.3.4](/changelog-bx#id-3.3.4))
* Fixed processing calls with attended transfers when channels in CEL are not marked as local
* Call recording now can be searched without phone numbers, using only ID
* Fixed autocompletion of tasks that have trunk in their title (observed since v[3.6.2](/changelog-bx#id-3.6.2))
* Fixed creation of tasks with default title (observed since v[3.7.0](/changelog-bx#id-3.7.0))
* Added new call statuses
* Improved logging when choosing responsible users for missed calls
Customizer:
* Added parameter `is_ivr` to customization `need_registration`
* Added call registration data to `process_final_params` customization
### 3.7.0 [#id-3.7.0]
> 22.02.2022
New:
* Added [autoreplacement for phone numbers](/for-admins/autoreplacement)
* Switched to the new C2C-server "Apix v2"; old C2C-servers will not be used anymore
* Added option to create tasks for unsuccessful outgoing calls
Admin panel:
* Added Itgrix version and CRM portal in the bottom left corner on all pages
* Default language is now based on browser language
* Status checks on main page are done independently where applicable and status of checks that weren't done because of prerequisite tasks taking too long to complete are shown as `Skipped`
* Added `extra` field aliad to DB settings
* Added recordings address to settings master
* Updated layout
* Added/fixed status descriptions
* Added field fot Supervisor service port
* Updated hint texts
Fixed:
* Fixed authentication server accessibility check (observed in v[3.6.2](/changelog-bx#id-3.6.2) and earlier since the moment `oauth.bitrix.info` prohibited ping requests)
* Fixed "user" permissions check (will appear in v[3.6.2](/changelog-bx#id-3.6.2) and earlier after installing new version of application on portal)
* Data from `/status` API request are periodically logged for diagnostics
* Improved logging of C2C-server request errors
Customizer:
* C2C parameters are passed to the Originate customization
* Fixed time zone error
Old C2C-server located at `c2c.bx24asterisk.ru` will not be used anymore, starting from version 3.7.0.\
Make sure that the server where Itgrix integration mudule is installed allows access to the new C2C-server at `apix.itgrix.ru`.
3.7.0 is a "special" version, so [update](/for-admins/application-update) needs to be done using the script with root access rather then through admin panel.
### 3.6.2 [#id-3.6.2]
> 11.02.2022
Fixed:
* Errors of API requests to licensing server on automatic license checks only cause license downgrade if the problem persists for 3 hours
* Fixed registering unsuccessful C2C calls
* Fixed CRM authentication error when all C2C-server options are disabled (observed since v[3.6.0](/changelog-bx#id-3.6.0))
* Fixed `/status` API node crash when portal is not set (observed since v[3.6.0](/changelog-bx#id-3.6.0))
* Variable `#TRUNK#` is added to task name patterns
* Improved logging during launch
* Improved logging while reading Asterisk configuration files
* Improved logging when using `/pbx/read_call` API node
### 3.5.7 [#id-3.5.7]
> 11.02.2022
Fixed:
* Fixed registering unsuccessful C2C calls
* If the callee number was not found (`hangupcause` 1 or 20) but the call was answered, then it's considered successful
* Variable `#TRUNK#` is added to task name patterns
* Improved logging when using `/pbx/read_call` API node
### 3.4.9 [#id-3.4.9]
> 11.02.2022
Fixed:
* Fixed registering unsuccessful C2C calls
### 3.6.1 [#id-3.6.1]
> 14.12.2021
Admin panel:
* Documentation links open in new tab
Fixed:
* Fixed reconnecting to C2C-server on network problems
* Fixed saving empty arrays to configuration file
* Fixed repeated processing of recent calls on frequent restarts
Customizer:
* Added duplicate path elements removal to recording path customization
### 3.4.8 [#id-3.4.8]
> 06.12.2021
Fixed:
* Fixed saving `state.json` when CEL events processing is delayed (observed since v[3.5.1](/changelog-bx#id-3.5.1))
* Fixed handling CallBack data structure when using Apix
* Fixed default task name for outgoing calls
### 3.5.6 [#id-3.5.6]
> 06.12.2021
Fixed:
* Fixed saving `state.json` when CEL events processing is delayed (observed since v[3.5.1](/changelog-bx#id-3.5.1))
* Fixed hanging when switching to a non-existant portal
### 3.6.0 [#id-3.6.0]
> 29.11.2021
New:
* Added option for offline licensing using license key (only for `x64` version with `root` privileges)
* CRM authentication now does not require manually copying authentication code
* Added FMC numbers recognition using a file with Wildcards and numbers from CRM user profiles
* Added API node `/status` for authomated status monitoring
* API node for manual CEL upload `/pbx/read_cel` now supports `.csv` data
* API node `/pbx/read_call` returns processing logs
* Reconnecting to AMI is now done without restarting application
* Added flag `--cleanlist` for selective cleaning: `h` - Bitrix24 handlers, `l` - external lines, `s` - `state.json`
Admin panel:
* Added option to download MySQL tables as `.csv` files
* Added option to update with only patches or with all new functions
* Admin panel suggests to update through terminal if the next version is "special" and can't be installed from admin panel
* Fixed hanging after unsuccessfully addressing supervisor service
* Fixed "Buy" buttons being blocked on license purchase page
* Fixed a bug with switching admin panel state when switching portal
* Fixed hanging when switching to a non-existant portal
* Added supervisor service status in place of OS status
* Added texts for new statuses
* Updated application names
* Small interface fixes
Fixed:
* Fixed connecting to C2C-server multiple times
* Fixed error with attaching yesterday's log to tech support report
* Fixed saving `state.json` when CEL events processing is delayed (observed since v[3.5.1](/changelog-bx#id-3.5.1))
* Fixed checking servers availability status when use of `raw socket` is prohibited
* Added more output to update logs
* Made attaching call recordings faster
* Made loading user list faster
* Fixed checking `logrotate` during installation
* Fixed handling `/read_cel` request with empty request body (problem was observed since v[3.5.1](/changelog-bx#id-3.5.1))
* Fixed default task name for outgoing calls
* Fixed errors with checking numbers in config file (problem was observed since v[3.1.4](/changelog-bx#id-3.1.4))
* Fixed clearing config file errors (problem was observed since v[3.1.4](/changelog-bx#id-3.1.4))
* Removed outdated flag `hostory-date`, its function is replaced by API node `/pbx/read_call`
3.6.0 is a "special" version, so [update](/for-admins/application-update) needs to be done using the script with root access rather then through admin panel.
### 3.5.5 [#id-3.5.5]
> 11.11.2021
Fixed:
* Fixed handling CallBack data structure when using Apix
### 3.5.4 [#id-3.5.4]
> 10.11.2021
Admin panel:
* Application names on CRM authentication page are updated
Fixed:
* Fixed auto-saving token during work
* Fixed MySQL aliases when run with the flag `-T`
* Fixed a bug with reading arrays in module API requests
* C2C calls are now sent to Asterisk even if number's channel is currently busy (such calls were cancelled since [3.3.3](/changelog-bx#id-3.3.3))
* Fixed a possible crash when saving `state.json` (could happen since [3.5.1](/changelog-bx#id-3.5.1))
* Increased timeout for processing CEL events
* Fixed order of reading fields in CallBack request when using Apix
* Fixed displaying error when requesting a conversation recording that doesn't exist
* Fixed attempting to remove previous installation when it doesn't exist
* API `/pbx/read_call` now returns logs for processed calls
Customizer:
* Originate customization now allows to all fields that are not included in application config
### 3.4.7 [#id-3.4.7]
> 09.11.2021
Admin panel:
* Application names on CRM authentication page are updated
Fixed:
* Fixed auto-saving token during work
* Fixed MySQL aliases when run with the flag `-T`
* Fixed a bug with reading arrays in module API requests
* C2C calls are now sent to Asterisk even if number's channel is currently busy (such calls were cancelled since [3.3.3](/changelog-bx#id-3.3.3))
* Fixed a possible crash when saving `state.json` (could happen since [3.5.1](/changelog-bx#id-3.5.1))
* Increased timeout for processing CEL events
* Fixed order of reading fields in CallBack request when using Apix
Customizer:
* Originate customization now allows to all fields that are not included in application config
### 3.4.6 [#id-3.4.6]
> 19.10.2021
Admin panel:
* Fixed repeated login requests in admin panel
* Logo in the top left corner is a link to the status page
* Fixed data processing during initial setup
* Small fixes for layout, texts and documentation links
Fixed:
* Fixed handling empty and incorrect MySQL responses
* Fixed error when registering external line if an empty trunk is present
* Fixed CDR check bug for large tables
* Option for checking working day status will only show up in versions that support this function
* Fixed `state.json` not saving
* Fixed a bug when checking DB settings after a previous successful check (present since [3.4.0](/changelog-bx#id-3.4.0))
* When a call is answered, missing callee number can be updated even if it's an internal number and it will be checked for whether it's internal
* Fixed a bug when changing a non-standard C2C-server address back to default
* Fixed attaching yesterday's log to tech support report
* Fixed displaying error when requesting a conversation recording that doesn't exist
Customizer:
* Client's number customization is applied when creating and closing tasks
* Added functions for updating contact, running business process, building module URL and recordings URLs
* Customizer uses local time for log entries (was using UTC since [3.4.0](/changelog-bx#id-3.4.0))
* Fixed exceeding CRM API rate limit by customizer (could happen since [3.4.0](/changelog-bx#id-3.4.0))
### 3.5.3 [#id-3.5.3]
> 14.10.2021
Admin panel:
* Small interface fixes
Fixed:
* Added `--cleanlist` flag which defines what is cleaned by the flag `--clean`
* When restarting after changing CRM settings, only handlers are deleted and external lines are kept
* Callee number is checked for whether it is an internal number when it is updated upon answering call
* Fixed `state.json` not saving
* If there is a non-standard C2C server address in the config file, it will be used not only for connecting but also for registering handlers
* Unanswered but "successful" calls (IVR) are registered as unanswered
* Calls with status "Bearer capability not presently available" are now handled correctly
* Fixed exceeding CRM API rate limit by customizer (could happen since [3.4.0](/changelog-bx#id-3.4.0))
* Customizer uses local time for log entries (was using UTC since [3.4.0](/changelog-bx#id-3.4.0))
* Fixed API authentication hanging after a large amount of authenticated API requests (about one thousend) (observed since v[3.5.0](/changelog-bx#id-3.5.0))
### 3.5.2 [#id-3.5.2]
> 16.09.2021
Fixed:
* If a call had no callee number when it started, callee number will be read when call is answered, even for internal numbers
* More data added to reports for tech support
### 3.5.1 [#id-3.5.1]
> 13.09.2021
New:
* Extended support for call statuses in Bitrix24: in addition to Success and Unanswered, we now support statuses Busy, Declined, Temporarily unavailable, Not found and Unknown error
* Added option to send call notifications to Bitrix24 chat (before they were always sent and now it's possible to disable them in admin panel)
Admin panel:
* License switches without refreshing page when it updates via button in admin panel or when statuses are requested on main page
* Application type in admin panel switches correctly without refreshing page when a new token is received
* Moving to token page without reloading admin panel
* When the application is updated on server, admin panel reloads
* Added links to applications in Bitrix24 to the token page
* Fixed loading changes in statuses on the initial setup results page
* Fixed headers in the initial setup results page
Fixed:
* Fixed incomplete stop when the authorized user is not administrator on the portal
* Management of external lines is synchronized with the management of trunks: creation/deletion of a trunk causes same action to the corresponding external line
* Fixed error when saving DB port during initial setup
* Fixed a bug when checking DB settings after a previous successful check (present since [3.4.0](/changelog-bx#id-3.4.0))
* Fixed rare problems preventing `state.json` from saving
* Fixed a bug causing a call picked up with **\*8** to register for wrong number
Customizer:
* Added function to start a business process
* Added functions for working with call recordings
* Client's number customization is applied when creating and closing tasks
**System requirements update: CEL field "extra" is now required**
The `extra` field is now required in the CEL table in Asterisk database. If it is missing or empty, the application will still run and work but:
1. detailed call statuses will not be used (only Success and Unanswered);
2. PICKUP events will not be processed correctly (dialing **\*8**).
3.5.1 is a "special" version, so [update](/for-admins/application-update) needs to be done using the script with root access rather then through admin panel.
### 3.5.0.2 [#id-3.5.0.2]
> 16.08.2021
Admin panel:
* Fixed bug in master when testing connection to Asterisk (AMI) as an existing user (present since v[3.4.0](/changelog-bx#id-3.4.0), appears as an Error status)
### 3.5.0.1 [#id-3.5.0.1]
> 11.08.2021
Admin panel:
* Fixed error when saving settings in some cases
* Small interface fixes
### 3.5.0 [#id-3.5.0]
> 06.08.2021
New:
* Updates can now be installed using a button in admin panel. A new service `itgrix_bx_supervisor` is added to provide this function. In some cases, for example when `itgrix_bx_supervisor` is being updated, the old updating method will still need to be used
Admin panel:
* Added link to telephony users list
* Logo in the top left corner is a link to the status page
* Partial fix for the multiple authentication request problem
* By default, logs will be shown starting from latest records
* Option for checking working day status will only show up in versions that support this function
* Small interface fixes
Fixed:
* Updated install, uninstall, service and backup scripts
* Backup contents extended
* Fixed error when registering external line if an empty trunk is present
* Fixed handling incorrect MySQL tables
* Requests with failed authentication are now logged
* Fixed CDR check bug for large tables
* Fixed MySQL page crashing on empty output
### 3.4.5 [#id-3.4.5]
> 15.07.2021
Admin panel:
* Fixed recording uploading bug (present since v3.4.3, appears as empty requests)
### 3.4.4 [#id-3.4.4]
> 12.07.2021
Admin panel:
* Improved formatting of statuses on main page
Fixed:
* Fixed error causing timeouts of some requests to be ignored
* Fixed error with stopping server when changing settings
* read\_call request is using local time instead of UTC, removed limit of 100 CEL records per call
* Fixed error causing repeated processing of calls after restarting (present since v3.4.2)
* Fixed error when registering calls with creation of a new company
* Generation of bug reports is now time limited
* Fixed registering followme calls with redirect to mabile phone
### 3.4.3 [#id-3.4.3]
> 07.07.2021
New:
* Added customizer functions for updating leads and creating deals
Admin panel:
* Small interface fixes
Fixed:
* Fixed CRM requests format
* Optimized uploading call recordings to CRM
* Fixed registering of calls that are unanswered on IVR (not registering since v3.4.0)
* Optimized working day status check
* Out of date option for C2C server address is removed from configuration file
### 3.4.2 [#id-3.4.2]
> 16.06.2021
New:
* Added lead creation function to customizer
Admin panel:
* Clearer, more informative way of displaying statuses
* CRM authentication result is now displayed in same way as statuses, possible errors are better described and include likely solutions
* Fixed module logs page layout
* Added check if CEL is falling behind of module
Fixed:
* Fixed `profile check failed: Not connected` during CRM authentication (observed since v3.4.0)
* Removed parsing of internal number from CEL field `channame` when `cid_num` is empty, due to problems when switching trunks (was added in v3.3.1)
* Added conversation data in call registration customization
### 3.4.1 [#id-3.4.1]
> 08.06.2021
Admin panel:
* Fixed interface errors on logs page
* Added missing texts in English
Fixed:
* Fixed bug during recording search without a number
* Fixed bug in reading customizer settings (in 3.4.0, customizations were not enabling correctly)
### 3.4.0 [#id-3.4.0]
> 31.05.2021
New:
* Performance boost up to 10x achieved with simultaneous processing of multiple calls and grouping Bitrix24 requests
* Added distinct responsible users for each trunk
* Added option to check user's working day status before distributing incoming call
* Added task creation parameters
* Customizer is rewritten and now supports requests to CRM, improved logging and error handling (consult with tech support for instructions on how to switch to the new customizer)
* Maximum length of internal numbers is now configurable
* Lead/contact data are now available in `process_final_params.php` customization
* API request /pbx/read\_call now supports loading calls based on dates
Admin panel:
* Optimized work with user choice fields
* Statuses on main page are checked faster and have timeout
* Fixed a bug with displaying prices for new clients on a Purchase License page
* Small interface fixes
Fixed:
* Fixed numerous potential bugs
* Fixed hanging if error occurs during a restart
* Fixed error during creation of a task without a lead/contact
* Fixed customizer bugs
* Fixed outdated fields in customizations
* Improved logging
### 3.3.5 [#id-3.3.5]
> 29.04.2021
Admin panel:
* Fixed hover tip windows crossing page boundaries
* Fixed displaying customization options when customizer is disabled
* Fixed layout of logs and MySQL pages
* Small interface fixes
Fixed:
* Marketplace subscription license now works with a separate app
* Subsctiption license is not time-limited
### 3.3.4 [#id-3.3.4]
> 16.04.2021
Admin panel:
* Small interface fixes
Fixed:
* Fixed database access issue when gathering a report for tech support
* Fixed entity search issue while redirecting calls to responsible users (observed since 3.3.3)
* Fixed call recording upload bug (observed since 3.3.3)
### 3.3.3 [#id-3.3.3]
> 09.04.2021
Admin panel:
* Added "Purchase license" page that is visible when current license is about to expire
* Added option for manual control of Bitrix24 event handlers list
* Fixed loading `.svg` files
* Fixed saving settings during initial set-up (wasn't saving since 3.3.1)
* Small interface fixes
Fixed:
* Improved logs completeness for`info` log-level
* New dynamic update management system (**if your version is below 3.3.2.1 then you will need to run updating twice to switch to the new system**)
* Requests are grouped for future performance improvement
* Fixed authentication bug for box versions with API requests redirection
* Updated free version limitations:
* call recordings are always stored in CRM
* external lines (Sales Intelligence) are disabled
* lead source is always "Call"
* black/white list filtering is disabled
* initial responsible user is always the one who's talking
* unanswered call responsible user is always the entity's responsible user
* Flags `-T` and `-sql` exit correctly after finishing
* Event handlers are automatically removed from CRM by a list of known hosts and then correct handlers are registered on application launch
* When putting call on hold (park), parking slot number is not vocalized
* Returning call from holding (unpark) now supports auto answer and all other Originate parameters
* Originate returns "number is busy" error if the number is now talking or calling
* Originate runs asynchronously by default, preventing delays with frequent calls
* Fixen AMI error handling when using Apix (observed since 3.3.1)
### 3.3.2.1 [#id-3.3.2.1]
> 24.03.2021
Fixed:
* Processing calls without `to` number as incoming calls disrupted registration of outgoing calls with transfers and Originated calls. This change has been reverted
### 3.3.2 [#id-3.3.2]
> 24.03.2021
Admin panel:
* Small layout fixes
Fixed:
* Fixed hanging after losing connection with Asterisk AMI
* Fixed Asterisk version check
* Calls that have `from` and `trunk` phone numbers but are missing `to` number will now be processed as incoming calls
* Fixed handling files when using admin panel
### 3.3.1 [#id-3.3.1]
> 19.03.2021
Admin panel:
* Bug-fixes in setup master interface
* Bug-fixes of drop-down user lists
* During CRM authentication in setup master, portal URL is saved automatically
* Fixed inability to save settings after CRM authentication
Fixed:
* If CEL event `CHAN_START` is missing a `cid_num` filed, then user's internal number will be taken from the`channame` field
* Hangup function now works not only during conversation but also while waiting for answer
* AMI error messages are now displayed and logged
* Network errors during license checks will cause retrying request
* CRM connectivity errors will cause retrying requests
* Call recording path customization now has a separate fixed timeout of 10 seconds that cannot be changed
* Updated Apix connection settings
### 3.3.0 [#id-3.3.0]
> 20.02.2021
New:
* Option to complete open activities and tasks automatically after an answered call
Admin panel:
* Fixed saving default user and allowed users
* Fixed saving settings after authenticating in a portal (observed in 3.2.3)
* Fixed delayed license switching after authenticating in a portal
Fixed:
* Fixed hanging after AMI connection errors
* Fixed how Black/White filter list treats missed calls
* Small fixes in admin panel
### 3.2.3 [#id-3.2.3]
> 12.02.2021
Admin panel:
* Pinned buttons on master results page
* New method for checking application installation
Fixed:
* Fixed hanging when trying to re-authenticate in CRM after an error
* Updated default settings
* Updated customization for Originate
* Fixed log formatting
* Added timeout when connecting to Asterisk AMI
* Fixed Asterisk version check
### 3.2.2 [#id-3.2.2]
> 04.02.2021
Fixed:
* Fixed Call Card being displayed incorrectly when the initial responsible is set to the default user
* Fixed user search in C2C with disabled caching
* Fixed logging for registering a conversation
* Bug reports for tech support can be downloaded even if module fails to save the file
* Small fixes in admin panel
### 3.2.1 [#id-3.2.1]
> 02.02.2021
Admin panel:
* SQL-requests are now limited to non modifying only
Fixed:
* Fixed http headers bug that was interfering with work of the Call Card
* Fixed a rare crash caused by user actions in admin panel
* Processing of C2C now utilizes users cache
* Improved error logging for customizations
### 3.2.0 [#id-3.2.0]
> 28.01.2021
New:
* Added choice of initial responsible for new entities. Either a user who received the call or the default responsible user
Call processing logic:
* For transferred calls, duration is now calculated from the first answer event to the end of call, instead of using duration of the last conversation
* Fixed processing of transfers in outgoing calls
* During transferred calls, newly created entities change responsible user upon start of a new conversation
Admin panel:
* Status page now shows CRM authentication server and C2C server statuses
* Added tail option on module logs page
* Allowed disabling CRM user cache
* Updated error messages
* Small fixes and improvements
Fixed:
* Prevented repeated processing of recent calls when module restarts
* Limited minimum timeout for customizations: 100 ms
* Removed incorrect requests `crm..list`
* When changing C2C settings, handlers are removed from CRM and set up again
* Restart on DB read errors and Asterisk AMI connectivity errors
* Added timeout for CRM requests
* Fixed building bug reports for additional copies of module
* Fixed call card closing when putting a call on hold
* Fixed holding for calls with transfers
* Improved logging
### 3.1.5.1 [#id-3.1.5.1]
> 30.12.2020
Fixed:
* Fixed Apix connectivity problem
### 3.1.5 [#id-3.1.5]
> 18.12.2020
Fixed:
* Reconnecting to Apix on errors
* Editing trunks in admin panel
### 3.1.4 [#id-3.1.4]
> 16.12.2020
Fixed:
* Fixed crash caused by database connectivity problems during status check
* Updated value of `variable` in Originate for automatic answer during conversion of old configs
### 3.1.3 [#id-3.1.3]
> 11.12.2020
New:
* Status page now shows the connected portal
Fixed:
* Search for call recordings in CDR now works correctly with phone numbers that contain letters
* Improved error handling for CRM API requests
* Fixed authentication error `NO_AUTH_FOUND` that appeared on some box versions of Bitrix
* Fixed a token conversion problem while updating from version 3.0.6.1 (or older) that was causing an error `token_expired` during first few hours after an update
* followme call are now registered correctly with disabled internal numbers
* Removed outdated debug output
### 3.1.2 [#id-3.1.2]
> 20.11.2020
Fixed:
* Improved logs searching when building reports for tech support
* Authentication error fix
### 3.1.1 [#id-3.1.1]
> 19.11.2020
New:
* Reports for tech support are now compressed
Admin panel:
* Updated links for updating manual and for the changelog
* Root address now redirects to the config page
Fixed:
* Token updating problem
* Output formatting when using the `-h` flag
* Loading old calls
* Frequent licence checks
### 3.1.0 [#id-3.1.0]
> 18.11.2020
New:
* Added settings for https port and custom certificate
* Building reports for the tech support
Admin panel:
* The English version of the master has two app versions again
Fixed:
* Customizer errors are now logged
### 3.0.7 [#id-3.0.7]
> 13.11.2020
New:
* Black/White list interface in the admin panel
* Recordings search in CDR now utilizes prefixes
* Added support for the follow-me feature (transfer to an employee's mobile number from their profile)
* Extended request error logging
* Licence check interval is set to 3 hours (free mode), or 24 hours (pro mode)
Admin panel:
* Status page now shows the module state (working, restarting, stopped)
* New format for customizations list
Fixed:
* Callback freezing error
* Customizer settings are now handled correctly while converting the config from old format
* Fixed start with request errors
* Improvements in admin panel
### 3\*\*.0.6.1\*\* [#id-3-.0.6.1]
> 09.10.2020
New:
* New method for creation of activities, according to the updated Bitrix API
* `Variable` parameter in Originate (auto-answer by default)
* Added a default value for the caching time
Admin panel:
* Added a portal switching button in the Bitrix settings page
* Date/time in logs is displayed correctly in Firefox
Fixed:
* Activity customization
* Stop on authentication error, instead of a looped restart
* Interface improvements
### **3.0.5** [#id-3.0.5]
> 17.09.2020
New:
* Fixed errors in admin panel
* Customization for the end of conversation now includes the conversation as input data
* Fixed updating trunks
* Added Apix-client. Now the Apix-server can be used as a c2c-server.
### **3.0.4** [#id-3.0.4]
> 07.09.2020
Fixed:
* Making a backup of a config within the installation script
* User selector in the admin panel now shows a drop-down list of available users
* Added c2c-server support
* Added `--clean` flag
* Improved output of the `--help` flag
### **3.0.3** [#id-3.0.3]
> 28.08.2020
Improvements:\
1\. The caller is now responsible for outgoing unanswered calls (such calls are not considered unanswered).\
2\. The `--clean` flag now removes external lines handlers\
\
Fixed:\
1\. Error while generating a token through master\
2\. AMI error handling\
3\. Errors while calling customizations
### **3.0.2** [#id-3.0.2]
> 18.08.2020
Admin panel:\
1\. Improved logs page\
2\. Fixed module version check\
\
Logs:\
1\. Originate parameters are now logged\
\
Improvements:\
1\. Client number is included in tasks\
2\. Problem with loading records starting with "+7" is solved\
3\. Black/White list functionality is restored
### **3.0.1** [#id-3.0.1]
> 06.08.2020
New:
* Fixed a records loading error
* Application type is now saved with the token
* Improved log readability
* Option for unanswered calls processing logic in admin panel
Unanswered call can now be registered following one of three scenarios:\
1\. With the user who received a call (suitable if clients are not bound to employees)\
2\. With the user who is responsible for an entity (this way a user will see that their client has called).\
3\. With the default user.
### **3.0.0** [#id-3.0.0]
> 13.07.2020
**New tech stack.**
Service is renamed from `bx24asterisk` to `itgrix_bx`.\
\- Compatibility problems on older OSes are solved.\
\- Problems with libraries are solved.\
\- Call registration logic is simplified: the option "activity for every transfer" is removed.\
\
To update from v2.15, you will need to install the new connector version separately.\
You can migrate your config and customizations using out helper scripts.\
[Manual updating instructions](https://docs.google.com/document/d/15hgCKH3L2Nad5y9eSPUhzh6xVzM6zqPuhrIXmGzdg7I/edit)\
\
We advise you to address out tech support for assisted update.
### **2.15.6** [#id-2.15.6]
> 20.07.2020
* Implemented OAuth authentication protocol (without login/password)
# Changelog Itgrix_kommo (/changelog-kommo)
## Versions [#versions]
| Version (new features) | Type | Latest release (patch) |
| ------------------------------------- | --------- | --------------------------------------------------- |
| [3.1](/changelog-kommo#id-3.1.0).\* | Latest | [3.1.8](/changelog-kommo#id-3.1.8) - 29.04.2026 |
| [3.0](/changelog-kommo#id-3.0.0).\* | Supported | [3.0.16](/changelog-kommo#id-3.0.16) - 03.02.2026 |
| [2.13](/changelog-kommo#id-2.13.0).\* | Supported | [2.13.16](/changelog-kommo#id-2.13.16) - 16.02.2026 |
Versions are denoted with three numbers `X.Y.Z`:
* `X` - major version, big changes that may break compatibility
* `Y` - minor version, new features and improvements
* `Z` - patch, bug fixes
Last 3 minor versions are being updated with patches. Latest minor version contains newest features and all applicable bug fixes. Supported versions are only getting compatible bug fixes.
To update to version `X.Y.Z`: `/opt/itgrix_bx/update.sh --version=X.Y.Z`
## Changelog [#changelog]
Versions are sorted by release date.
### 3.1.8 [#id-3.1.8]
> 29.04.2026
**Fixed**
* Fixed rare event handling misordering of conversation initialization and answer for C2C calls (observed since version [3.1.0](/changelog-kommo#id-3.1.0))
* Fixed error when customizing phone numbers for calls initialized on local channels (observed since version [3.1.0](/changelog-kommo#id-3.1.0))
* Fixed license check delay after network issues
* Fixed typo in the output of the `--help` flag
* Improved AMI user check procedure
* Completing authorization in the portal automatically adds its address to the list of allowed CORS domains
**Customizer**
* All customization points are now listed in the configuration file, including those that are disabled
### 3.1.7 [#id-3.1.7]
> 19.02.2026
**Fixed**
* Fixed crash when loading CRM entity from call cache (observed since version [3.1.0](/changelog-kommo#id-3.1.0))
* Absence of user on C2C and auto-distribution is now considered an error
* Supervisor service logrotate settings aligned with Itgrix logrotate settings, comments updated
### 2.13.16 [#id-2.13.16]
> 16.02.2026
**Admin Panel**
* Fixed display of the CRM name
* Fixed output format of minimum Asterisk version in admin panel statuses
**Fixed**
* Fixed handling of "certified" Asterisk versions
* Fixed building recording URLs with non-HTTP(S) schemes
### 3.1.6 [#id-3.1.6]
> 11.02.2026
**Fixed**
* Permissions for logrotate config are set during installation according to modern OS requirements
* Fixed incorrect value of the "source" field when creating a call/note/unsorted
* When selecting a user number on auto-distribution and C2C, the shortest numbers are prioritized
### 3.0.16 [#id-3.0.16]
> 03.02.2026
**Fixed**
* Fixed building recording URLs with non-HTTP(S) schemes
* Improved backup logging and added support for symlinks during backup
### 3.1.5 [#id-3.1.5]
> 29.01.2026
**Admin Panel**
* Added the ability to download the output in CSV format on the Itgrix DB page
* Improved layout of tables in the admin panel
* Inactive users are excluded from user lists in the admin panel
* Improved display of call reprocessing errors in the admin panel
* Fixed errors when executing state commands in the admin panel (observed since version v[3.1.0](/changelog-kommo#id-3.1.0))
* Fixed a rare error in generating CSV files
* Added an option to reprocess calls with clearing the state
**Fixed**
* Fixed an error when handling call data when displaying the card on answer (observed since version v[3.1.0](/changelog-kommo#id-3.1.0))
* Optimized the search query for related calls (observed since version v[3.1.0](/changelog-kommo#id-3.1.0))
* Fixed database reconnection error in case of network issues
* Fixed handling of automatic statuses of skipped steps in call processing (observed since version v[3.1.0](/changelog-kommo#id-3.1.0))
* Fixed the status of the display call card step on missed calls (observed since version v[3.1.0](/changelog-kommo#id-3.1.0))
* Fixed building recording URLs with non-HTTP(S) schemes
* When choosing direction for call card data, all user phone numbers are checked instead of only the shortest one (observed since version v[3.1.0](/changelog-kommo#id-3.1.0))
**Customizer**
* Fixed absence of empty `is_new` and `raw` fields when encoding to JSON
* `custom_data` customization data is restored during repeated call processing
* In the `customize_recording_query` customization data, the field "CallID" is renamed to "call\_id"
### 3.1.4 [#id-3.1.4]
> 30.09.2025
**Admin Panel**
* User lists in the admin panel now display only active users
* More compact layout in the admin panel
**Fixed**
* When creating calls as notes, the responsible user is now also set as the creator (observed since version [3.1.3](/changelog-kommo#id-3.1.3))
* The black/white list for internal numbers is not applied when the number matches a trunk (observed since version [3.1.0](/changelog-kommo#id-3.1.0))
* Fixed outdated search query for calls during downtime
* Fixed incorrect CDR table permission check when changing the database name in settings (observed since version [3.1.0](/changelog-kommo#id-3.1.0))
### 3.1.3 [#id-3.1.3]
> 14.08.2025
**Admin Panel**
* Call registration option "In single deal or entity" is replaced with "Always in entity"
**Fixed**
* Fixed a freeze during parallel data preparation for the call card notifications (observed since version v[3.1.0](/changelog-kommo#id-3.1.0))
### 3.1.2 [#id-3.1.2]
> 12.08.2025
**Admin Panel**
* Added display of configuration file problem status in the admin panel
**Fixed**
* Fixed a rare crash due to conversation ID collisions between calls (observed since version v[3.1.0](/changelog-kommo#id-3.1.0))
* Fixed potential errors when converting JSON data
* Fixed logging of timeout errors when SQL queries execute very quickly (observed since version v[3.1.0](/changelog-kommo#id-3.1.0))
* Fixed timeout handling when checking connection to the Asterisk database (observed since version v[3.1.0](/changelog-kommo#id-3.1.0))
* Fixed entity search execution during repeated call processing (observed since version v[3.1.0](/changelog-kommo#id-3.1.0))
* Improved backup logging and added support for symlinks during backup
### 3.0.15 [#id-3.0.15]
> 15.07.2025
**Fixed**
* Fixed a rare crash during call transfers
* Fixed returning unfiltered entity search results
**Customizer**
* Logging functions in the customizer now accept values of any type, not only strings
* Added use of call ID (`2_call_id`) in the `process_record_file_path` and `customize_autodistribution` customizations
### 3.1.1 [#id-3.1.1]
> 03.07.2025
**Fixed**
* Fixed socket reconnection loop in the admin panel (observed since version v[3.1.0](/changelog-kommo#id-3.1.0))
* Optimized execution of the `/status` API request
* Improved logging of the `/status` API request
### 3.1.0 [#id-3.1.0]
> 26.06.2025
**Warning! Changes in the customizer break backward compatibility with customizations written for versions below v[2.13.0](/changelog-kommo#id-2.13.0)!**
In version v[2.13.0](/changelog-kommo#id-2.13.0), a new [call data format](/custom_common/call-data-call_full-in-customizations) `call_full` was added, but the old fields in the root of customization data were temporarily left for compatibility. Now these old fields have been removed and the data that is present in `call_full` is no longer duplicated in the root.
If you have customizations written for versions below v[2.13.0](/changelog-kommo#id-2.13.0), you may need to update their code. Contact technical support for additional information.
**What's New**
* Instead of the state file `state.json`, SQLite database `state.db` is now used. Thanks to this:
* During low activity, the application reprocesses calls that encountered errors during initial processing
* The result of each action during call processing is saved and used during reprocessing to prevent duplication
* When resuming work after restart, calls that took place during the downtime are processed in a separate thread with lower priority and do not block processing of current calls, just like during reprocessing during low activity
* Reduced logging volume, and now call data is output to the log only at the end of the call by default
* Added recording conversion in the main logic (not through customization) using third-party converters, including `ffmpeg` in the module distribution
* Added ability to pass arbitrary data between customizations without using a special database
* Added black/white list of trunks in admin panel
* Added option to register call in all deals and entity, added note customization
* When closing tasks, text with call data is written to them
* Added ability to work without connecting to AMI interface
* Improved logging: added IDs for end-to-end process tracking
* Added application and system startup time to the `/status` API node output
**Call Data Processing**
* Implemented processing of C2C calls to multiple devices via PJSIP protocol
* Fixed missing event "conversation ended" in one of the attended transfer calls
* Fixed processing of unanswered FollowMe calls
* Implemented processing of calls on local channels without numbers (callbacks to group, robot calls)
**Admin Panel**
* Added new checks to the status page:
* Presence/activity in CRM of all users selected in settings
* Permissions to update data in the CDR table
* Accuracy of system time synchronization
* Added recording conversion settings
* Added "Itgrix DB" page for access to `state.db`
* Improved list functionality
* Improved WebSocket functionality
* Fixed display of inactive users in lists
* List of allowed users in admin panel is displayed regardless of current license
* Added scroll to side menu, updated main scroll style
* Improved layout of Asterisk DB query page
**Fixed**
* Call card receives data about entity, leads, tasks, pipelines, stages, task types and deadlines, call direction - this reduces load on the CRM REST API
* When CRM error 401 occurs, an attempt is made to refresh the token
* Added timeout for application shutdown procedure
* Improved error handling in the CRM connector
* Improved logging of CRM request errors
* Fixed replacement of escaped Unicode characters when outputting to the log
* Fixed display of customizations in admin panel depending on logic settings and license
* Fixed return of unfiltered entity search results
**Customizer**
* Added new customizations:
* call recording search request
* Click-to-Call result
* recording conversion parameters
* call note creation fields (when registering call in all leads and entity)
* contact update
* lead update
* ignored call events
* after each call processing stage
* Removed deprecated fields in customization input data (in favor of the new `call_full` field)
* Updated documentation in customizations
* Data from the AMI OriginateResponse message included in call registration data
* Call data added to auto-distribution customizations
* Call IDs are used for logging in the customizer
**Supervisor Service**
* Added HTTPS support
### 3.0.14 [#id-3.0.14]
> 04.03.2025
**Admin Panel**
* Fixed saving password for AMI
* Fixed displaying available updates
* Fixed output format of minimum Asterisk version in admin panel statuses
**Fixed**
* Fixed error when comparing timestamps of conversation end times on x32 systems
* Fixed error in task creation when task type is specified (observed since version [3.0.0](/changelog-kommo#id-3.0.0))
* Fixed loading of user IDs from saved calls when resuming work
* Removed examples of allowed users from initial configuration file
### 3.0.13 [#id-3.0.13]
> 04.02.2025
**Admin Panel**
* Fixed password display
* Updated help tips for responsible user selection
**Fixed**
* Updated method of adding tags to entities
* Fixed handling of "certified" Asterisk versions
* Fixed freeze during simultaneous AMI and MySQL failures
* Fixed output of old logs in response to call reprocessing request (observed since version [3.0.0](/changelog-kommo#id-3.0.0))
* Improved handling of API request errors while the module is stopped
### 3.0.12 [#id-3.0.12]
> 21.11.2024
**Fixed**
* Fixed regular loss of connection with the WebSocket for updating the application status in the admin panel (observed since version [3.0.0](/changelog-kommo#id-3.0.0))
* Fixed reading of integer values in diagnostic requests to the Asterisk DB
**Customizer**
* Fixed methods for retrieving lists of deals and contacts in the customizer (`Kommo::getLeadList` and `Kommo::getContactList`)
### 2.13.15 [#id-2.13.15]
> 21.11.2024
**Fixed**
* Fixed entity creation error for outgoing calls when unsorted is enabled
* Improved handling of C2C server connection errors
* Fixed reading of integer values in diagnostic requests to the Asterisk DB
### 3.0.11 [#id-3.0.11]
> 09.10.2024
**Fixed**
* Fixed crash when processing unsorted after its creation
* Fixed error when reading metadata of unsorted (observed since version [3.0.0](/changelog-kommo#id-3.0.0))
* Added request ID to `/crm/request` responses
* Enabled logging of a successful call transfer
### 3.0.10 [#id-3.0.10]
> 18.09.2024
**Fixed**
* Fixed crash on error when searching for a call in attended transfer (observed since version [3.0.0](/changelog-kommo#id-3.0.0))
* Fixed extraneous restart on token file event read error (observed since version [3.0.0](/changelog-kommo#id-3.0.0))
### 3.0.9 [#id-3.0.9]
> 03.09.2024
**Fixed**
* Fixed error handling for reading requests from the C2C server
* Fixed logging of special HTML characters
* Fixed error when logging incoming requests (observed since version [2.13.0](/changelog-kommo#id-2.13.0))
### 3.0.8 [#id-3.0.8]
> 29.07.2024
**Fixed**
* Removed technical pipeline statuses in the admin panel
* Fixed the creation of unnecessary repeated leads when an unsorted already exists (observed since version 2.12.0)
* Fixed the skipping of entity creation for outgoing calls when unsorted is enabled (observed since version [2.13.0](/changelog-kommo#id-2.13.0))
### 2.13.14 [#id-2.13.14]
> 04.07.2024
**Fixed**
* Fixed crash when retrieving a conversation record without one of the numbers (observed since version [2.13.0](/changelog-kommo#2.13.0))
* Updated default AMI permissions
* Added logging of the moment when the Originate request is sent
* Fixed rare crash when reading AMI data
* Fixed rare freeze during prolonged network communication issues with AMI
### 3.0.7 [#id-3.0.7]
> 03.07.2024
**Fixed**
* Fixed rare crash on calls with empty numbers in transfers (observed since version [3.0.0](/changelog-kommo#3.0.0))
* Fixed rare crash when determining responsible user for calls that are unanswered on IVR (observed since version [3.0.0](/changelog-kommo#3.0.0))
* Fixed rare freeze during prolonged network communication issues with AMI
* More detailed logging of call registration result
* Made entity search correspond closer to call registration algorithm
* Added API method `/crm/format_crm_numbers` for formatting numbers of all entities in CRM with configured autoreplacements and customizations
### 3.0.6 [#id-3.0.6]
> 17.06.2024
**Fixed**
* Fixed rare crash when working with a user without an internal number (observed since version [2.13.0](/changelog-kommo#2.13.0))
* Fixed error in alternative conversation ID search method during attended transfer (observed since version [3.0.0](/changelog-kommo#3.0.0))
### 3.0.5 [#id-3.0.5]
> 03.06.2024
**Fixed**
* Fixed not hiding the call card after long calls
* Fixed incorrect filtering when searching for unsorted (observed since version [3.0.0](/changelog-kommo#3.0.0))
* Fixed repeated restarts when updating the CRM token while the admin panel is open (observed since version [3.0.0](/changelog-kommo#3.0.0))
* Phone number search for entities is made consistent with CRM search (observed since version [3.0.0](/changelog-kommo#3.0.0))
* Improved error handling for CRM requests
* Updated default AMI permissions
* Default `logrotate` settings now include use of dates in extensions
* Fixed rare settings validation errors
* Fixed license check schedule errors (observed since version [3.0.0](/changelog-kommo#3.0.0))
* Fixed rare crash when reading AMI data
* Added logging of the moment when the Originate request is sent
**Customizer**
* Fixed cancellation of entity, deal, and call creation requests through customizations
### 3.0.4 [#id-3.0.4]
> 12.04.2024
**Fixed**
* Fixed crash when on call end where the direction of the last conversation is unknown (observed since version 2.12.0)
* Fixed skip of call card close event (observed since version [3.0.0](/changelog-kommo#id-3.0.0))
* Retry requests to CRM on authorization errors
* Fixed error in transferring authorization code to CRM when changing portals
* Added support for JSON input data in the API request `/pbx/read_cel`
### 2.13.13 [#id-2.13.13]
> 08.04.2024
**Fixed**
* Added cancellation of task creation from task customization
* Fixed incorrect unsorted cache update when unsorted is manually deleted immediately after creation (was observed since version 2.2.3)
* Fixed incorrect path to the `fmc_patterns` file for non-standard installations
* Fixed unsorted cache update when unsorted is not created (was observed since version 2.12.3)
* Fixed incorrect output of the authorization server address in case of network access errors
* Fixed potential freezes on license check errors (observed since version 2.11.0)
* Fixed error when closing call card on prolonged conversations
### 3.0.3 [#id-3.0.3]
> 04.04.2024
**Admin Panel**
* Fixed rare errors in live status updates on the main page (observed since version [3.0.0](/changelog-kommo#id-3.0.0))
* Added links to the most recent documentation in tips in the admin panel
**Fixed**
* Fixed errors when reading non-string custom fields of entities (observed since version [3.0.0](/changelog-kommo#id-3.0.0))
* Fixed errors in handling of attended transfers where the transfer event is in the second call (observed since version [3.0.0](/changelog-kommo#id-3.0.0))
* Fixed potential freezes on license check errors (observed since version 2.11.0)
### 3.0.2 [#id-3.0.2]
> 14.03.2024
**Fixed**
* Fixed a number of rare admin panel bugs when encountering unexpected states of settings file
* Fixed incorrect CRM name display in the admin panel
* Fixed inability to save changes when deleting certain settings in the admin panel
* Fixed admin panel crash when opening trunks page
### 3.0.1 [#id-3.0.1]
> 13.03.2024
**Fixed**
* Fixed deals not being linked to contacts/companies (observed since version [3.0.0](/changelog-kommo#id-3.0.0))
* Fixed unexpected acceptance of unsorted when updating responsible (observed since version [3.0.0](/changelog-kommo#id-3.0.0))
* Removed delay when processing attended transfers involving local channels (observed since version [2.13.0](/changelog-kommo#id-2.13.0))
* Fixed error when assigning call result (observed since version 2.8.0)
* Fixed incorrect license check before launching optional customizations (observed since version [2.13.0](/changelog-kommo#id-2.13.0))
* Fixed execution of repeated CRM request attempts when the authorization token is revoked
* Fixed incorrect log output when generating a CRM authorization link
* Fixed incorrect output of the authorization server address in case of network access errors
### 3.0.0 [#id-3.0.0]
> 20.02.2024
**Attention! The release includes important changes that may affect the functionality of the application. Details can be found in the documentation.**
Due to an update of the Kommo REST API from version v2 to v4, the following aspects of the application have changed:
1. To have the [call card](/setup/itgrix-setup-kommo-asterisk/call-card) function enabled, it is now necessary to set up and ensure the ability for users to connect to the integration module via the WSS protocol. The new Kommo REST API does not provide the ability to display/hide a call card anymore, so it will be done through a Web Socket.
The connection address is in the format `wss://<Asterisk IP>:8078/crm/cardws`. It can be configured in the application widget in the Kommo interface. The necessary conditions for a proper operation are:
* The address is accessible from user's computer. It can be a local network address, a VPN-accessible address, or (not recommended) an external address.
* Settings of all nodes in the route between a user and the card socket address allow connections via the WSS protocol. This may require additional configuration of an existing Nginx server or another proxy server.
* The server where the integration module is installed has a valid SSL certificate that is successfully verified by the user's browser, and this certificate is specified in the module's configuration interface `http://<Asterisk IP>:8077/config/module`.
* The server where the integration module is installed and all intermediate network nodes in the route are configured to support the required number of connections, one for each browser tab with the Kommo CRM interface open for each user.
*(8077 and 8078 specified here are default ports; your actual ports may differ)*
2. Customizations that use the Kommo REST API may require an update. The data in requests and a set of capabilities in the new API version have changed.
Among other changes, the set of parameters related to attaching a call (which is a type of note) to additional entities was reduced. Adding call information is still possible, but the call will appear differently, and the customization code using this feature has to be updated.
**If you have previously ordered customizations from us, please contact our support team so we can assist you with the update.**
**New**
* Moved from deprecated REST API v2 to the latest v4 version
* Displaying/hiding call card is now done through WebSocket instead of REST API
* Call card is displayed regardless of whether an entity was created
* Call transfers are handled separately from conversations, allowing for more detailed control over conversation durations
* When encountering a "connection reset by peer" AMI error, fast reconnection without a full restart is attempted if possible
* Added updating responsible user for repeated deals/leads
* Added synchronization of `from` numbers between initial outgoing PJSIP conversations
* Default settings (on initial installation) include autoreplacement of client number on C2C: removal of non-digit characters
* Default settings (on initial installation) have autoreplacement of FMC numbers disabled
* Added `--report` flag for generating a report for technical support
* Added a `stats` section to the `/status` API response, including the number of errors and calls per day and per hour
**Admin Panel**
* License information is updated in real time
* When there is no connection to CRM, elements requiring such connection are replaced with placeholders
* Statuses are pinned at the top of non-main pages
* Tooltips are updated
* Minor layout improvements
**Fixed**
* Fixed incorrect number update on conversation end (was observed since version [2.13.2](/changelog-kommo#id-2.13.2))
* Fixed incorrect display of authorization status in CRM
* Fixed crash when handling calls with unrecognized FMC numbers
* Fixed unsorted cache update when unsorted is not created (was observed since version 2.12.3)
* Fixed incorrect unsorted cache update when unsorted is manually deleted immediately after creation (was observed since version 2.2.3)
* Fixed error with transferring responsible to contact and entity after creating unsorted (was observed since version 2.12.4)
* Fixed extraneous license requests when updating CRM token (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
* Fixed incorrect path to the `fmc_patterns` file for non-standard installations
* Fixed incorrect formatting of `uniqueid` in channel creation error message (was observed since version 2.12.4)
* Fixed open file limit leak when updating config (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
* Added a clear error message when using a non-existent funnel
**Customizer**
* Implemented requests to CRM via REST API v4
* CRM requests are executed through the module, to maintain rate limits
* Added customizations for contact and deal updates
* Added cancellation of task creation from task customization
* Updated customizer documentation
### 2.13.12 [#id-2.13.12]
> 22.11.2023
**Fixed**
* Fixed duplicate calls when unsorted is enabled
* Fixed extraneous entity update requests after creating an unsorted (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
### 2.13.11 [#id-2.13.11]
> 14.11.2023
**Admin Panel**
* Fixed error when saving settings on first launch
* Updated status text when there are no recent call records in the CDR table
**Fixed**
* Fixed a rare freeze when disconnecting from AMI (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
* Improved error handling for AMI connection errors
* Added support for reading from CEL "extra" column with `NULL` values
* Fixed a crash when receiving non-standard custom fields structure for entities
* Fixed a rare case of C2C client restarting in a loop (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
> 14.11.2023
### 2.13.10 [#id-2.13.10]
> 15.09.2023
**Admin Panel**
* Entity name templates settings now show default values when empty
* Added ability to resize query field on MySQL page
* Fixed errors when saving autoreplacements and task creation settings
* Fixed minor layout issues on admin panel pages
**Fixed**
* Fixed duplicate reading of call events that are in the processing queue at the time of restart
### 2.13.9 [#id-2.13.9]
> 05.09.2023
**Fixed**
* Fixed error with reading responsible users from `state.json` (was observed since version [2.13.9](/changelog-kommo#id-2.13.9))
### 2.13.8 [#id-2.13.8]
> 05.09.2023
**Fixed**
* Fixed admin panel crashing (was observed since version [2.13.7](/changelog-kommo#id-2.13.7))
* Fixed value of `is_new` field in call data for contact and deal when creating unsorted (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
* Fixed a rare issue with conversation prioritization in a call (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
* Fixed output of `NULL` values in on MySQL page in admin panel
* Fixed choosing incorrect responsible for entities during call transfers (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
### 2.13.7 [#id-2.13.7]
> 15.08.2023
**Admin Panel**
* Interface language is preserved between sessions
**Fixed**
* Fixed CRM status output in `/status` request
* Fixed showing call card to users uninvolved in current call (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
* Fixed repeated processing of "conversation ended" stage during blind transfer
* Fixed saving entity data in `state.json` (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
* Changed logging levels of some events
### 2.13.5 [#id-2.13.5]
> 19.07.2023
**Admin Panel**
* Fixed not displaying the deal name template field in the admin panel when repeated deals are disabled (was observed since version [2.13.4](/changelog-kommo#id-2.13.4))
**Fixed**
* Fixed call card not showing (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
### 2.13.4 [#id-2.13.4]
> 13.07.2023
**Admin panel**
* Added configuration option for entity title templates (was present in config file since version [2.13.0](/changelog-kommo#id-2.13.0))
**Fixed**
* Fixed resetting `last_id` when restarting without `state.json`
* Added information about CRM authentication token in `/status` request output
* Fixed incorrect variable name in default lead title pattern (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
### 2.13.3 [#id-2.13.3]
> 21.06.2023
**Fixed**
* Fixed bug in reading requests from C2C server (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
### 2.13.2 [#id-2.13.2]
> 20.06.2023
**Fixed**
* Fixed multiple deal creation in calls with multiple conversations (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
**Customizer**
* Fixed the value of is\_new field in deals in customization data (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
### 2.13.1 [#id-2.13.1]
> 15.06.2023
**Admin panel**
* Fixed the display of portal switching in the interface
**Fixed**
* Fixed crash when reading transactions from state.json (was observed since version [2.13.0](/changelog-kommo#id-2.13.0))
### 2.13.0 [#id-2.13.0]
> 24.05.2023
**New**
* Enhanced standardization of application logic
* Added customization of the CORS whitelist (to manage the rights for making requests to the application from external resources, such as your website)
* Added API /crm/request to send requests to CRM through the connector's common queue, which reduces the slowdown of additional requests from customizations
* New customizations added: customization of creating unassembled, customization after call registration
* Real-time monitoring of config and token files was implemented
* Optimized application launch procedure
* Changed log format
* Added templates for the names of contacts, companies and deals
* Added separate auto substitutions for trunk names, FMC numbers and C2C
* Path parameter added to the /status request
* Improved support for missed calls registration to FMC numbers
* Added Originate success check by AMI event
* Added launch flags for more detailed data cleansing
* Added data compression of customizations when processing large calls
* Implemented support for managed unanswered transfers between employees
**Admin panel**
* Added automatic sorting of the b/w list
* Added display of unsaved changes presence
* Added autoformatting of the portal address
* Added error displaying license price loading
* Markup of log tables was updated
* Added error output on pressing inactive buttons
* Fixed an error of incorrect positioning of the chat button
* Help on customizations was updated
**Fixed**
* Smooth application stopping procedure implemented
* Centralized synchronous storage of call data was implemented
* Fixed problem with re-reading calls/hanging state.json
* Fixed incorrect attachment of record links in some cases (separated logic for trimming phone numbers)
* Fixed hanging on AMI reconnection after connection break
* Fixed a rare bug that sometimes caused the wrong end time
* During C2C the number to is updated by customization results
* Added verification of remote Asterisk version via AMI
* Fixed saving CEL with special characters through the admin panel
* Fixed issue with number list generation when searching for a record file
* Fixed rare memory leak when event processing time limit was exceeded
* Fixed rare hiccups during multiple processing of a single call event
* Fixed MySQL connection leaks
* Fixed missing CallStarted call processing step on some C2C calls
* Fixed problem reconnecting to AMI when authorization data is changed
* Fixed issue with reconnecting to Apix when changing a portal
* The way to send tags to CRM has been changed to a more universal way
* Fixed rare issues with prefixes
* Added time zone accounting in CEL time stamps
* Application status text is always displayed in /status in Title Case
* Fixed delay in clearing user cache when changing the portal
**Customizer**
* Full call\_full data along with legacy data is transferred to the customizer for backward compatibility
* Requests to CRM through the module are added and activated in the customizer
* In the auto assignment, a trunk is processed and all request data and full entity data are sent to the customizer
* The /status of the customizer shows false in all methods if the customizer is disabled
* In the need\_registration and number customization we added the step and the call data
* Removed duplicate number customizations, now they are executed when a number appears on CallStarted or ConversationRequested
* Added customization after call registration
* Added unassembled customization
* Added possibility to cancel requests in CRM customizations
* Combined output is used when performing customizations
* Updated the format of customizer logs
* Customizer prioritizes new call data
* Standard customizations were updated
* New options added to call recording path customization to eliminate path duplication
**Supervisor**
* When an update error occurs, the absolute path to update.log is displayed
* Fixed supervisor version output in API
# Contacts (/contacts)
**Itgrix in Bitrix24**
* Website [itgrix.com/bx24](https://itgrix.com/bx24/?utm_source=database)
* [Chat on your portal](https://auth2.bitrix24.net/oauth/select/?preset=im\&IM_DIALOG=networkLines4b4498578946c449b74918827f6f895d)
* [Telegram\_bot](https://t.me/itgrix_bot) (there are no bots for real, only living people)
* [Whatsapp](https://api.whatsapp.com/send?phone=14844731331)
* [Online chat](https://portal.itgro.ru/online/itgrix)
* E-mail: [support@itgrix.com](mailto:support@itgrix.com)
* [FB](https://www.facebook.com/itgrix/)
**Itgrix in Kommo**
* Website: [itgrix.com/kommo](https://itgrix.com/kommo/?utm_source=database)
* [Telegram\_bot](http://t.me/itgrix_amo_bot)
* [Whatsapp](https://api.whatsapp.com/send?phone=14844731331)
* [Online chat](https://portal.itgro.ru/online/itgrix-amo)
* E-mail: [support@itgrix.com](mailto:support@itgrix.com)
* [FB](https://www.facebook.com/itgrix/)
From Monday to Friday from 9 a.m. to 6 p.m. (New York GMT-5)
# Useful customizations itgrix_bx (Bitrix24) (/custom_bx)
## Diagram of call processing by Itgrix integration module [#diagram-of-call-processing-by-itgrix-integration-module]
"Entity" in connector logic is a contact or lead. \
A conversation request is the start of a call on an extension. \
There can be multiple conversations in one call (in case of call transfer).
## Short description of customizations [#short-description-of-customizations]
№
Customization file (alphabetically)
Description
1
customize_activity.php
Update the case fields (at the end of the call).
2
customize_entity.php
Update entity fields (at the end of the call).
3
need_registration.php
Is call registration necessary? You can do black/white lists by extension number/trunk.
4
process_client_phone.php
Change phone number before registration in CRM: You can change the format of the phone number (+7, 8...).
5
process_final_params.php
Change the call finish data.
6
process_originate_params.php
Change parameters when initiating a call from CRM. You can call through a different trunk, through a different context, change the number format, etc.
7
process_record_file_path.php
Customize the path to the conversation recording file.
8
process_registration_params.php
Change the call registration parameters.
9
process_task_creation_params.php
Customize the creation of missed call tasks.
10
process_user_phone.php
Change the user number before searching for the user in B24.
11
customize_autodistribution.php
Change the extension number when autodistributing an incoming call.
12
post_registration.php
Action after call registration.
13
customize_show_call_card.php
Change the display options for the call card.
14
customize_attach_record_url.php
Change the record attachment settings.
## Input and output parameters of customizations [#input-and-output-parameters-of-customizations]
### **1)** customize\_activity [#id-1-customize_activity]
**Input:**
```php
{
,
"activity": {
"id":""
"is_new": ,
"name": "",
"phones": [],
"raw": { "case fields as in Bitrix24"],
"responsible": {},
"responsible_id": "",
"type": "activity"
},
"call_full": {}
}
```
Only non-empty/non-zero fields are present in the raw object.
**Return:**
```php
{
"data": {
"": "",
...
},
"state": "success"
}
```
Detailed description of the case fields in [Bitrix24 REST API documentation](https://training.bitrix24.com/rest_help/crm/rest_activity/crm_activity_fields.php).
### 2) customize entity [#id-2-customize-entity]
**Input:**
```php
{
"call_full": {},
}
```
**Return:**
```php
{
"data": {
"": "",
...
},
"state": "success"
}
```
Detailed description of lead fields in [Bitrix24 REST API documentation](https://training.bitrix24.com/rest_help/crm/leads/crm_lead_fields.php). \
Detailed description of contact fields in [Bitrix24 REST API documentation](https://training.bitrix24.com/rest_help/crm/contacts/crm_contact_fields.php).
### 3) need registration [#id-3-need-registration]
Used to implement black/white list functionality by numbers, trunks and other more complex conditions.
Basic [black/white list](/custom_common/black-and-white-lists) configuration for internal numbers is available from the admin panel (configuration interface) of the connector.
**Input:**
```php
{
"call_full": {},
"call_stage": ""
}
```
**Return:**
```php
{
"data": {
"result":
},
"state": "success"
}
```
### 4) process\_client\_phone [#id-4-process_client_phone]
Converting customer phone numbers before sending requests to Bitrix24.
**Examples** in the article [Changing the phone number before sending data to CRM](/custom_common/change-phone-number-before-sending-data-to-crm).
**Input:**
```php
{
"phone": "",
"call_full": {},
"call_stage": ""
}
```
**Return:**
```php
{
"data": {
"phone": “”
},
"state": "success"
}
```
### 5) process\_final\_params [#id-5-process_final_params]
Customization of call registration completion parameters.
**Input:**
```php
{
"ADD_TO_CHAT": <[0/1] Whether to add a call message to the business chat.
Default 1>,
"CALL_ID": "",
"DURATION": ,
"STATUS_CODE": "",
"USER_ID": ,
"call_full": {},
}
```
Call statuses in Bitrix24 are described in the article [Detailed call statuses](/faq/detail-call-statuses).
**Return:**
```
{
"data": {
"ADD_TO_CHAT": <[0/1] Whether to add a call message to the business chat room>,
"CALL_ID": "",
"DURATION": ,
"STATUS_CODE": "",
"USER_ID":
},
"state": "success"
}
```
Detailed description of call termination parameters in [Bitrix24 REST API documentation](https://training.bitrix24.com/rest_help/scope_telephony/telephony/telephony_externalcall_finish.php).
### 6) **process\_originate\_params** [#id-6-process_originate_params]
Changing parameters when initializing a call from Bitrix24.
Detailed description with examples in the article [Changing parameters during click-to-call](/custom_common/change-the-number-context-for-calling-to-asterisk).
### 7) **process\_record\_file\_path** [#id-7-process_record_file_path]
Convert the path to the conversation recording file.
When installing Itgrix\_bx, conversion of call recording files to mp3 format before sending to Bitrix24 is already enabled by default. **This allows you to**:
1. Save space on Bitrix24 disk (mp3 takes less space than wav);
2. Listen to the recordings using the built-in CRM player.
Since conversion of records can take considerable time, this customization has a special, fixed timeout of 10 seconds, which does not depend on the customization settings. If the record fails to convert before the timeout expires, the original file will be used.
### 8) **process\_registration\_params** [#id-8-process_registration_params]
Used to customize the call start registration parameters.
**Input:**
```php
{
"CALL_START_DATE": "",
"CRM_CREATE": <[0/1] Whether or not to create a new lead (if the number is not found in CRM)>,
"CRM_SOURCE": "",
"LINE_NUMBER": "",
"PHONE_NUMBER": "",
"SHOW": <[0/1] Whether to show a call card when registering>,
"TYPE": ,
"USER_ID": ,
"call_full": {},
"call_stage": "",
}
```
External line numbers in Bitrix24 (LINE\_NUMBER) correspond to trunks in Itgrix connector settings.
The connector registers trunk numbers as external lines in Bitrix24 at startup, and each line can be given a name in the settings.
Call card display is placed in a separate request and is customized by a separate customize\_show\_call\_card customization, so the **SHOW parameter is always 0**.
This is because you can customize whether to show the call card when dialing or when answering.
**Return:**
```php
{
"data": {
"CALL_START_DATE": "",
"CRM_CREATE": <[0/1] Whether or not to create a new lead (if the number is not found in CRM)>,
"CRM_SOURCE": "",
"LINE_NUMBER": "",
"PHONE_NUMBER": "",
"SHOW": <[0/1] Whether to show a call card when registering>,
"TYPE": ,
"USER_ID":
},
"state": "success"
}
```
Detailed description of call registration parameters in [Bitrix24 REST API documentation](https://training.bitrix24.com/rest_help/scope_telephony/telephony/telephony_externalcall_register.php).
### 9) **process\_task\_creation\_params** [#id-9-process_task_creation_params]
Customization of task creation parameters (on missed incoming call or unanswered outgoing call).
This customization works only if task creation is enabled in the Connector settings.
In this case, the settings described in the article are applied first, and then this customization is performed.
**Input:**
```php
{
"fields": {
"CREATED_BY": ,
"DEADLINE": "",
"RESPONSIBLE_ID": ,
"TITLE": "",
"UF_CRM_TASK": ["_.
Entity types:
lead - L
contact - C,
company - CO,
case - D.
Example: L_11201 for lead with ID 11201 >"]
},
"call_full": {},
}
```
**Return:**
```php
{
"data": {
"fields": {
"": ""
...
}
},
"state": "success"
}
```
Detailed description of task fields in [Bitrix24 REST API documentation](https://training.bitrix24.com/rest_help/tasks/fields.php).
### **10) process\_user\_phone** [#id-10-process_user_phone]
Change the user number before searching for a Bitrix24 user.
Auto number replacement is available, it is started BEFORE customization is performed.
**Input:**
```php
{
"phone": "<номер>",
"call_full": {},
"call_stage": ""
}
```
**Return:**
```php
{
"data": {
"phone": ""
},
"state": "success"
}
```
### 11) **customize\_autodistribution** [#id-11-customize_autodistribution]
**Input:**
```php
{
"number": "",
"name": "",
"from": "",
"user": {
"id": ,
"phones": [""],
"name": "",
"email": "",
"position": ""
},
"entity": {
"type": "",
"id": ,
"name": "",
"responsible_id":
},
"error": ""
}
```
**Return:**
```php
{
"data": {
"number": "",
"name": ""
},
"state": "success"
}
```
*name* - text that will appear in CallerID and will be displayed in the phone (or softphone) of the operator.
**Must be no more than 20 characters (Asterisk limitation)!**
The *from*, *user*, *entity* and error fields are read-only and are only present when not empty.
They will be automatically deleted even if you return them in the data object.
### 12) post\_registration [#id-12-post_registration]
This customization allows you to perform some actions after a call is registered.
It can be called at different moments depending on the type of call:
* For click-to-call (c2c) calls, the customization will be invoked at the beginning of the Conversation requested stage processing.
During click calls Bitrix24 itself registers the call at the moment of click and passes the registration data to the connector, i.e. before the call is initialized in Asterisk.
That is why, the connector itself does NOT register click calls, but only terminates them like all other calls.
* Missed calls on the IVR are logged and terminated at the Call ended stage.
* For all other calls, the customization will be invoked after the call registration request is executed in Bitrix24 at the Conversation requested stage.
**Input:**
```php
{
"call_full": {},
"call_stage": "",
}
```
**Return:**
Only *state* needs to be returned, the rest is ignored:
```php
{
"state": "success"
}
```
### 13) customize\_show\_call\_card [#id-13-customize_show_call_card]
Used to customize call card display options.
**Input:**
```php
{
"CALL_ID": ,
"USER_ID": ,
"call_full": {},
"call_stage": ""
}
```
**Return:**
```php
{
"data": {
"CALL_ID": ,
"USER_ID":
},
"state": "success"
}
```
Detailed description of card display parameters in [Bitrix24 REST API documentation](https://training.bitrix24.com/rest_help/scope_telephony/telephony/telephony_externalcall_show.php).
### 14) customize\_attach\_record\_url [#id-14-customize_attach_record_url]
Customization of attaching a link to a call recording. Runs only if it is configured to attach a link to a record instead of a call record file.
By default, the HTML code of the audio player (audio tag) with a link to the call record is written to the case description.
Input:
```php
{
"DESCRIPTION": "",
"DESCRIPTION_TYPE": ,
"activity": {
"id": "",
"is_new": ,
"name": "",
"phones": [],
"raw": {Case fields as in Bitrix24},
"responsible": {},
"responsible_id": "",
"type": "activity"
},
"call_full": {}
}
```
Only non-empty/non-zero fields are present in the raw object.
**Return:**
```php
{
"data": {
"":"",
...
},
"state": "success"
}
```
Detailed description of the case fields in [Bitrix24 REST API documentation](https://training.bitrix24.com/rest_help/crm/rest_activity/crm_activity_fields.php).
# Useful customizations itgrix_kmo (Kommo) (/custom_kommo)
## Call processing scheme by Itgrix integration module [#call-processing-scheme-by-itgrix-integration-module]
(Scheme for versions starting from 3.0.0)
"Request a conversation" - when the phone rings at the employee / client.\
There can be several "conversations" in one "call" (in case of call transfer).
## Brief description of customizations [#brief-description-of-customizations]
| № | Customization file (in alphabetical order) | Description |
| -- | ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | [need\_registration.php](#id-1-need_registration) | Is it necessary to register the call? It is possible to make black/white lists by internal number/trunk. |
| 2 | [process\_call\_params.php](#id-2-process_call_params) | Change the call registration parameters. |
| 3 | [process\_client\_phone.php](#id-3-process_client_phone) | Change your phone number before registering to CRM. You can change the format of your phone number (+7, 8...). |
| 4 | [process\_contact\_creation\_params.php](#id-4-process_contact_creation_params) | Change the settings for creating a contact. |
| 5 | [process\_lead\_creation\_params.php](#id-5-process_lead_creation_params) | Changing the parameters for creating a deal. |
| 6 | [process\_originate\_params.php](#id-6-process_originate_params) | Changing parameters when initiating a call from CRM. You can call through another trunk, through another context, change the number format, and so on. |
| 7 | [process\_record\_file\_path.php](#id-7-process_record_file_path) | Customizing the path to the conversation recording file. Also in this file, converting from wav to mp3 format is configured. Description Converting record to mp3 format. |
| 8 | [process\_task\_creation\_params.php](#id-8-process_task_creation_params) | Changing the settings for creating tasks on missed calls. Changing the task name can interfere with the [automatic task completion option](https://docs.itgrix.ru/settings/additional/auto-mange-tasks#amocrm). |
| 9 | [customize\_autodistribution.php](https://docs.itgrix.ru/custom_amo#id-9-customize_autodistribution) | Customization of autodistribution of incoming calls. |
| 10 | [post\_registration.php](https://docs.itgrix.ru/custom_amo#id-10-post_registration) | Actions after the call has been logged. |
| 11 | [process\_contact\_update\_params.php](https://docs.itgrix.ru/custom_amo#id-11-process_contact_update_params) | Change the contact's update settings. |
| 12 | [process\_lead\_update\_params.php](https://docs.itgrix.ru/custom_amo#id-12-process_lead_update_params) | Change the lead's update settings. |
| 13 | [process\_unsorted\_creation\_params.php](https://docs.itgrix.ru/custom_amo#id-13-process_unsorted_creation_params) | Changes the parameters for creating unsorted. Allows you to change the contact and lead fields. |
## Input and output parameters of customizations [#input-and-output-parameters-of-customizations]
### **1) need\_registration** [#id-1-need_registration]
Used to implement black/white list functionality by numbers, trunks and other more complex conditions.
Basic black/white list configuration for internal numbers is available from the admin panel.
Examples: Black/white list for trunks.
**Input:**
```json
{
"call_full": {},
"call_stage": ""
}
```
The full set of call data is described in the article Call data (call\_full) in customizations.
**Return:**
```json
{
"data": {
"result":
},
"state": "success"
}
```
### **2) process\_call\_params** [#id-2-process_call_params]
Changing call registration parameters.
Read more about call statuses (call\_status and call\_result fields) in the article Detailed call statuses.
**Input:**
```javascript
{
"call_full": {},
"call_result": "",
"call_status": ,
"created_at": ,
"created_by": ,
"direction": "",
"duration": ,
"link": "",
"phone": "",
"responsible_user_id": ,
"source": "itgrix_amo"
}
```
The full set of call data is described in the article Call data (call\_full) in customizations.
**Return:**
```javascript
{
"data": {
"call_result": "",
"call_status": ,
"created_at": ,
"created_by": ,
"direction": "",
"duration": ,
"link": "",
"phone": "",
"responsible_user_id": ,
"source": "itgrix_amo"
},
"state": "success"
}
```
### **3) process\_client\_phone** [#id-3-process_client_phone]
Converting client phone numbers before sending requests to amoCRM.
Auto number change is available, it is started BEFORE customization is performed.
Examples in the article Changing customer number before sending to CRM.
**Input:**
```json
{
"phone": "<номер>",
"call_full": {},
"call_stage": ""
}
```
**Return:**
```json
{
"data": {
"phone": ""
},
"state": "success"
}
```
### **4) process\_contact\_creation\_params** [#id-4-process_contact_creation_params]
Changing contact creation parameters.
In Kommo, by default, there is no field for a phone number in a contact. Instead, custom contact fields are used.
Itgrix\_kmo works with the contact field `"code": "PHONE"` at the available value `"enum": "WORK"`. **If there is no such field for contacts in the account, the module will not run.**
Detailed description of custom fields in [Kommo API documentation](https://developers.kommo.com/reference/custom-fields).
**Example**: Changing the tag when creating a contact/deal**.**
**Input:**
```javascript
{
"call_full": {},
"custom_fields_values": [
{
"field_id": ,
"values": [
{
"enum_code": "",
"value": ""
}
]
}
],
"name": "">",
"responsible_user_id": ,
"tags": [
"Itgrix"
]
}
```
**Return:**
```javascript
{
"data": {
"custom_fields_values": [
{
"field_id": ,
"values": [
{
"enum_code": "",
"value": ""
}
]
}
],
"name": "">",
"responsible_user_id": ,
"tags": [
"Itgrix"
]
// Other fields can also be set
},
"state": "success"
}
```
The parameters of the contact creation request are described in the [Kommo API documentation](https://developers.kommo.com/reference/add-contacts).
### **5) process\_lead\_creation\_params** [#id-5-process_lead_creation_params]
Changing the parameters for lead creating.
Example: Changing the tag when creating a contact/lead.
**Input:**
```javascript
{
"call_full": {},
"_embedded": {
"contacts": [
{"id": }
],
"tags": [
{"name": "Itgrix"}
]
},
"name": " - [missed] incoming/outgoing">",
"pipeline_id": ,
"responsible_user_id": ,
"status_id":
}
```
**Return:**
```javascript
{
"data": {
"_embedded": {
"contacts": [
{"id": }
],
"tags": [
{"name": "Itgrix"}
]
},
"name": " - [missed] incoming/outgoing">",
"pipeline_id": ,
"responsible_user_id": ,
"status_id":
// Other fields can also be set
},
"state": "success"
}
```
The parameters of the transaction creation request are described in the [Kommo API documentation](https://developers.kommo.com/reference/adding-leads).
### **6) process\_originate\_params** [#id-6-process_originate_params]
Changing parameters at call initialization from Kommo.
Detailed description with examples in the article Changing parameters during click-to-call.
### **7) process\_record\_file\_path** [#id-7-process_record_file_path]
Converting the path to a call recording file.
Detailed description with examples in the article Customizing audio file name.
When registering a call in amoCRM, a player will be added to the note to play a recording of that call (via a link that the Itgrix module adds automatically). But the player only supports mp3 format.
Conversion of call recording files to mp3 is already enabled by default when installing Itgrix\_kmo.
Since conversion of records can take considerable time, this customization has an individual timeout of 10 seconds (can be changed in the connector configuration file - `/etc/itgrix_amo/config.json`).
If the record fails to convert before the timeout expires, the original file will be used.
### **8) process\_task\_creation\_params** [#id-8-process_task_creation_params]
Customization of task creation parameters (on missed incoming call or unanswered outgoing call).
This customization works only if task creation is enabled in the Connector settings.
This customization is done after applying settings from the admin area..
**Input:**
```javascript
{
"call_full": {},
"complete_till": ,
"created_by": ,
"entity_id": ,
"entity_type": "",
"is_completed": ,
"responsible_user_id": ,
"task_type": ,
"text": " on a missed call from a number ">"
}
```
**Return:**
```javascript
{
"data": {
"complete_till": ,
"created_by": ,
"entity_id": ,
"entity_type": "",
"is_completed": ,
"responsible_user_id": ,
"task_type": ,
"text": " on a missed call from a number ">"
// Other fields can also be set
},
"state": "success"
}
```
Parameters of the task creation request are described in the [Kommo API documentation](https://developers.kommo.com/reference/add-tasks).
### 9) customize\_autodistribution [#id-9-customize_autodistribution]
Customization of autodistribution of incoming calls.
For the auto-distribution function to work, it is necessary to configure Asterisk, described in the article Auto-distribute a call to the responsible manager.
**Input:**
```json
{
"number": "",
"name": "",
"from": "",
"trunk": "",
"request_data": {},
"entity": {},
"error": ""
}
```
**Return:**
```json
{
"data": {
"number": "",
"name": ""
},
"state": "success"
}
```
`name` - the text that will appear in CallerID and will be displayed in the operator's phone (or softphone).
**Must be no more than 20 characters (Asterisk limitation)!**
Fields `from`, `trunk`, `entity` and `error` - are read-only and only present when not empty.
These fields, as well as `request_data` will be automatically deleted even if you return them in the object `data`.
### 10) post\_registration [#id-10-post_registration]
This customization gives you the option to perform any actions after the call is registered.
**Input:**
```json
{
"call_full": {}
}
```
**Return:**
The only thing that needs to be returned `state`, the other things are ignored.:
```json
{
"state": "success"
}
```
### 11) process\_contact\_update\_params [#id-11-process_contact_update_params]
Changing contact update settings.
**Input:**
```json
{
"call_full": {},
"id": ,
"responsible_user_id":
}
```
**Вернуть:**
```json
{
"data": {
"id": ,
"responsible_user_id":
// Other fields can also be set
},
"state": "success"
}
```
The parameters of the contact update request are described in the [Kommo API documentation](https://developers.kommo.com/reference/update-contacts).
### 12) process\_lead\_update\_params [#id-12-process_lead_update_params]
Changing the parameters of lead update.
**Input:**
```json
{
"call_full": {},
"id": ,
"responsible_user_id":
}
```
**Return:**
```json
{
"data": {
"id": ,
"responsible_user_id":
// Other fields can also be set
},
"state": "success"
}
```
Parameters of transaction update request are described in [Kommo API documentation](https://developers.kommo.com/reference/updating-single-lead).
### 13) process\_unsorted\_creation\_params [#id-13-process_unsorted_creation_params]
Changes the parameters for creating an unassembled. Allows you to change the contact and transaction fields.
**Input:**
```json
{
"call_full": {},
"_embedded": {
"contacts": [{
"custom_fields_values": [{
"field_id": ,
"values": [{
"enum_code": "",
"value": ""
}]
}],
"name": "">",
"tags": [
"Itgrix"
]
}],
"leads": [{
"name": " - [missed] incoming/outgoing">",
"pipeline_id": ,
"tags": [
{"name": "Itgrix"},
]
}]
},
"created_at": ,
"metadata": {
"called_at": ,
"duration": ,
"from": "",
"is_call_event_needed": false,
"link": "",
"phone": "",
"service_code": "itgrix_amo",
"uniq": ""
},
"pipeline_id": ,
"source_name": "itgrix_amo",
"source_uid": ""
}
```
**Return:**
```json
{
"data": {
"_embedded": {
"contacts": [{
"custom_fields_values": [{
"field_id": ,
"values": [{
"enum_code": "",
"value": ""
}]
}],
"name": "">",
"tags": [
"Itgrix"
]
}],
"leads": [{
"name": " - [missed] incoming/outgoing">",
"pipeline_id": ,
"tags": [
{"name": "Itgrix"},
]
}]
},
"created_at": ,
"metadata": {
"called_at": ,
"duration": ,
"from": "",
"is_call_event_needed": false,
"link": "",
"phone": "",
"service_code": "itgrix_amo",
"uniq": ""
},
"pipeline_id": ,
"source_name": "itgrix_amo",
"source_uid": ""
// Other fields can also be set
},
"state": "success"
}
```
# What is Itgrix (/)
**Itgrix is a reliable tool for integration** of your Bitrix24 or Kommo corporate portal and IP-telephony Asterisk for effective work with calls.
## Our module advantages [#our-module-advantages]
| | | | |
| --------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| , Kommo | Integration with Bitrix24, Kommo | | Integration with any modern Asterisk |
| | Actual [functions](/#important-features-available-after-integration) | | Regular updates |
| | User-friendly configuration interface | | Extensive resources for personal customizations for your tasks |
| | Skilled [software developers team](/#the-software-developer) | | Powerful technical support |
| | Affordable price and discounts for a licence lasting from 6 months | | Free test period 7 days + 7 days on request |
## **Technical features** [#technical-features]
* The ability to install on any server that meets the system requirements;
* Suitable for installation: pure Asterisk, FreePBX, Elastix or Issabel;
* Additional software is not required;
* All the configured functions of your telephony will be kept (distribution and groups of incoming calls, call queues, and much more);
* Choosing storage location for conversation records – inside Bitrix24 or on your server;
* The setup doesn't require programming skills;
* Supported on any Bitrix24 commercial plan, including the self-hosted.
## 👀 **Look how it works!** [#look-how-it-works]
After installing the Itgrix module and configuring integration, your CRM is enriched with additional functionality.
### Important features available after integration [#important-features-available-after-integration]
✅ **Automatic lead creation**
Contacts are instantly added to the CRM:
* A contact is created for an unknown phone number;
* The responsible person is identified and fixed in the CRM (by default, the responding employee);
* Bitrix24 also specifies the source and type of request.
✅ **Full information about calls in your CRM**
All conditions have been created to avoid losing a single client:
* Call history is generated for each client;
* Recordings of conversations that can be played and downloaded;
* Call duration is displayed;
* All missed calls are fixed;
* Automatic creation of an activity for the employee responsible for the missed calls from known numbers.
✅ **One-click client calls (click-to-call)**
One-click call directly in the interface or call by dialling the number in the built-in interface - pick up the phone and wait for the connection with the client.
Pop-up call card, that stays in place during a conversation, with main information about the client, comment to ongoing call, creating a deal and invoice, as well as switching to the client's card.
✅ **Automatic connection to the responsible person**
Each customer's call is directed to the responsible person - without a secretary and a voice menu:
* The responsible person is fixed in the client's card;
* All recurring calls from the client are forwarded to the responsible person assigned by the system;
* Each call’s card display the person who answered it.
✅ **End-to-end analytics**
Fixing traffic sources and the type of request (call, email, chat) in the lead card.
Ability to generate reports on lead sources, advertising ROI and channels performance.
### Kommo [#kommo]
### Additional functionality [#additional-functionality]
Open customization options and detailed documentation for administrators.
#### Modify the functionality for the specific needs of your business: [#modify-the-functionality-for-the-specific-needs-of-your-business]
1. Turn on the customizer in the Itgrix interface;
2. Look through the [documentation for administrators](/for-admins);
3. Choose the necessary add-ons and set up customization.
We've prepared instructions for you to set up some [useful customizations](/for-admins/useful-commands).
Any doubt about your own technical skills?\
[Order](https://portal.itgro.ru/online/itgrix) the necessary modification from us.
## Price list of the Itgrix **–** Asterisk-integration module [#price-list-of-the-itgrix-asterisk-integration-module]
[The cost of the license is listed on the website](https://itgrix.com/bx24/?utm_source=database#cost)
**Please pay attention:** only limited functionality of the module for 2 users is available for free. **But:** *as a bonus*, after installing the free Itgrix integration module, you are given the opportunity to **test the full functionality 7 days + 7 days on request**.
**The difference between the free version of Itgrix and the paid one**
The free version of the module has limitations on the number of portal users, as well as on functionality, and is suitable for a small company or for a test before large-scale implementation.
Available number of users to work with the free tool:
* 2 users.
Functionality limits of the free version:
* only 1 call source;
* it is impossible to disable the automatically creation of a lead / contact for incoming and outgoing calls;
* call recording files are uploaded to CRM without the ability to attach records by links;
* only basic customizations of phone numbers are available.
**To remove the limits, switch to full Itgrix mode.** To achieve this goal, you need to purchase a licence for the module by [contacting Itgrix specialists](/contacts).
[The cost of the license is listed on the website](https://itgrix.com/bx24/?utm_source=database#cost)
**Please pay attention:** only limited functionality of the module for 2 users is available for free. **But:** *as a bonus*, after installing the free Itgrix integration module, you are given the opportunity to **test the full functionality 7 days + 7 days on request**.
### [For Kommo](https://itgrix.com/kommo/?utm_source=database#cost) [#for-kommo]
## Where to find the Itgrix integration module [#where-to-find-the-itgrix-integration-module]
### On website [#on-website]
| Free Asterisk-connector Itgrix |
| ----------------------------------------------------------------------------------------------------------------------------------------- |
| [Go to preview](https://www.bitrix24.com/apps/?app=itgro.asteriskbx24free) |
### Directly in your corporate portal [#directly-in-your-corporate-portal]
Go to the "Applications" section and enter "Itgrix" in the search bar.
## 🚀How to start using Itgrix? [#how-to-start-using-itgrix]
**Follow the simple instructions** to install the module and perform basic integration configuration.
Before starting the installation please check your source data for compliance with[ the minimum system requirements](/setup/system-requirements).
**Itgrix module is installed in 3 stages given below:**
1. Installing the Itgrix app inside your Bitrix24 portal;
2. Installing the module on the server where your Asterisk-telephony is located;
3. Configuring integration using the app interface.
You should follow our [step-by-step instruction](/setup/itgrix-setup-bitrix24-asterisk) for quick and correct self configuration of the Itgrix module
After completing the configuration, we recommend that you test the integration using [test cases](/setup/itgrix-setup-bitrix24-asterisk/test-calls).
Additionally, it is possible to [order the configuration](/contacts) of Asterisk integration with your CRM by Itgrix specialists.
:label:**The price of the service is $99.**
2 extra weeks of using the module as a gift!
**Distant configuring by specialists from Itgrix**\
To achieve this goal, **we will need**:
* Access with administrative rights to the the server where your Asterisk-telephony is located and your Bitrix24 portal\
OR\
Distance access to the user's desktop with similar rights;
* Your help to get into contact with your specialist
* who is competent to answer questions about the business logic\
and
* who has the ability to make outgoing calls and answer incoming calls from the telephony that is being integrated.
### [Installation for Kommo](/setup/itgrix-setup-kommo-asterisk) [#installation-for-kommo]
## **The software developer** [#the-software-developer]
**Developer of the Asterisk-integration module Itgrix –** [**«Itgro» company**](https://itgrix.com/?utm_source=gitbook).
Since 2010 we develop various web projects (sites based on 1C-Bitrix, complex web services, mobile applications, etc.), and since 2015 we implement and modify Bitrix24, install and configure Asterisk, integrate Bitrix24 corporate portals with 1C, Asterisk-telephony and other systems to optimize business operations and provide customer convenience.
### **Achievements** [#achievements]
Web development company «Itgro» is a Bitrix24 gold partner, awarded with certificates of the BitrixAwards (in 2019) for the 5th place in the category "The best Apps24 author", as well as for the 1st place in the category "Sales Leader" of the cloud version of Bitrix24 in the Ural region of Russia.
**Official website of our connector:** [https://itgrix.com/](https://itgrix.com/?utm_source=database)
### Itgrix in figures [#itgrix-in-figures]
| | | |
| :-------------------------------------------------: | :-------------------------------------------------------: | :---------------------------------------------------------: |
| **10** | **5** | **95%** |
| years of software development experience | place in the category "The best Apps24 author" | customer satisfaction index |
| **3rd** | **16** | **2** |
| generation of the app | countries that already use our connector | languages of the connector and technical support |
### **The geography of our clients** [#the-geography-of-our-clients]
We work with clients **all over the world**. Our integration module is already used in 21 countries all over the world.
# Our story (/story-of-success)
### About the app developer [#about-the-app-developer]
**We are "Itgro" software company** - **the developers of the Itgrix application** that allows you to integrate CRM systems with Asterisk IP-telephony. To date, the english app works with Bitrix24. Itgro is a gold partner of Bitrix24, in 2019, we took 1st place in category "Best regional partner" and 5th place in the category «Best developer of Apps24».
### History of the app [#history-of-the-app]
Itgrix history began **in 2015**, when Itgro created the direction of “Astrisk and CRM Integration Module”. The product was originally named **Bx24asterisk**, due to its purpose of integrating Asterisk and Bitrix24 CRM. The first version worked through a browser application and php scripts.
Bx24asterisk **found a quick response** from users not only in Russia but also in neighbouring countries. The company decided to develop and distribute the product through partners and integrators. However, soon the company **faced difficulties,** Bx24asterisk connected through the Chrome browser to Bitrix24, this often caused problems with its installation. The problem required a radical solution.
At the **end of 2017,** with the opening of the Bitrix24 API, the product received a new birth. Now it consisted of an application installed **on Bitrix24 and a server application** installed on an Asterisk server. It works with rather ancient versions of Asterisk 1.8 (even older than version 10), and can be installed on pure Asterisk, as well as on other modifications of FreePBX, Issabel, Elastix.
Having gained a foothold in the Russian market, according to analytic results, a **clear need for our solution in other countries** became visible. Itgrix became interested in the CIS countries and neighbouring countries. The company's experience in the CIS countries has facilitated the task of entering the next foreign market, and now Itgrix has brought the company to the international level.
Against the background of the product’s success, it was decided to rename Bx24asterisk into the more individual name **Itgrix**, and also create its own **logo**, which the company's web designers worked on.
**In 2019**, Itgrix began to integrate not only Bitrix24, but also **amoCRM** with Asterisk.
Currently, the client countries of the company are Brazil, the USA, Spain, India, Germany, which occupy almost half of all installations. A large part (about 17%) is occupied by the countries of the CIS and neighbouring countries. The rest is reserved for European, South American and Asian countries.
Our Itgrix product is new in the market, so we are now striving to increase its popularity through relations with partners abroad. Our goal is the **expansion of geography**, access to foreign markets, the **growth** and **development** of our product.
The **corporate culture** of the company is built on **motivation, mutual support** and **self-development**. The company's employees are an integral part of it, which contributes to the successful development of Itgrix product.
# Automatic call transfer to responsible manager (/additional-functions/automatic-call-transfer-to-responsible-manager)
## Contact us instead of reading the instructions [#contact-us-instead-of-reading-the-instructions]
If you don’t feel like wasting time on instructions or they didn’t help, contact our support. We will quickly help you set everything up and answer all questions!\\
Contact us in any convenient way:
* [Online chat](https://portal.itgro.ru/online/itgrix) (quick and easy; there are no bots, but live people))
* Telegram: [itgrix\_bot](https://teleg.one/itgrix_bot)
* E-mail: [bx24@itgro.ru](mailto:bx24@itgro.ru)
* Website: [www.itgrix.com](https://www.itgrix.com/?utm_source=marketplace)
Working hours: 08:00 - 17:00 Moscow Time (UTC+3).\
Weekends: Saturday, Sunday.
## To automatically direct an incoming call to the Manager responsible for the entity (contact, company, or lead) in CRM, you need: [#to-automatically-direct-an-incoming-call-to-the-manager-responsible-for-the-entity-contact-company-o]
1. CURL command must be enabled in Asterisk. Check it out:
`$ asterisk -rx 'core show function CURL'`
As a result, you should get a description of the curl function. If CURL is not available, it must be installed on the Asterisk server.
1. In the PBX dialplan, you need to create a context which the call will come to BEFORE the voice greeting.
#### Asterisk setup [#asterisk-setup]
Set the context in file `/etc/asterisk/extensions_custom.conf`. Context below is as example, pay attention to the code, it needs to be changed:
```
[bx24transfer]
exten => 1,1,Set(CURLOPT(hashcompat)=yes)
exten => 1,n,Set(CURLOPT(httptimeout)=5)
exten => 1,n,Set(CURLOPT(conntimeout)=5)
exten => 1,n,Set(HASH(forwardHash)=${CURL(http://localhost:8077/forward?phone=${CALLERID(num)})})
exten => 1,n,Set(CALLERID(name)=${HASH(forwardHash,name)})
exten => 1,n,GotoIf($[${HASH(forwardHash,number)}]?from-internal,${HASH(forwardHash,number)},1:ivr-1,s,1)
```
In this example:\
**localhost:8077** - address and port of the server the module is installed on;\
**ivr-1,s,1** - IVR context where the call goes to if a number was not found in CRM;\
**CURLOPT(conntimeout)=5** - request timeout (5 seconds); if no data is received, the call will go further.
Context logic:
1. The caller's number is passed to the variable.
2. The existence of the value of this variable is checked (the variable must contain an internal number of the responsible person for the lead / contact / company). If the number is received, the call is transferred to the responsible person (`from-internal,${TOEXT},1` - in the "from-internal" context a call to the TOEXT number is created). If there is no answer (or empty), the call goes to a voice greeting (in this example, `ivr-1, s, 1`).
**It is possible to show the entity name on the phone.**
To do this, configure the context as follows:
`[bx24transfer]`\
`exten => 1,1,Set(CURLOPT(hashcompat)=yes)`\
`exten => 1,n,Set(CURLOPT(httptimeout)=5)`\
`exten => 1,n,Set(CURLOPT(conntimeout)=5)`\
`exten => 1,n,Set(HASH(forwardHash)=${CURL(http://localhost:8077/extendedForward?phone=${CALLERID(num)})})`\
`exten => 1,n,Set(CALLERID(name)=${HASH(forwardHash,name)})`\
`exten => 1,n,GotoIf($[${HASH(forwardHash,number)}]?from-internal,${HASH(forwardHash,number)},1:ivr-1,s,1)`
#### FreePBX setup [#freepbx-setup-x20]
It is necessary to include our custom context in the FreePBX dialplan. To do this, use the Custom Destinations module.
1. Go to **Admin → Custom Destinations** and click **Add Destination**:
In the **Target** field, specify bx24transfer,1,1. Click **Submit** and **Apply Config**. Context added.
1. Go to **Connectivity → Inbound Routes**, select the incoming route which auto-distribution is configured for, and in the **Set Destination** block, specify **Custom Destinations**, select `bx24asterisk` (context name)
1. If you need to change the direction of the call (`ivr-1, s, 1` does not fit), you need to find out the context which you want to direct the call to and specify it in file `/etc/asterisk/extensions_custom.conf.`
2. For groups we get `ext-group, N, 1`, where N - is the group number. The group number can be found in **Applications → Ring Groups**.
3. The route for custom destinations can be found in **Admin → Custom Destinations**, in the **Target** field.
4. For all other cases:
* Go to **Inbound Routes**,
* Choose a route,
* Right-click on the field with the name of the route and select **Explore Element**.
* In the source code window find the value of the selected element.
In this case it is `ext-group, 3, 1`. Specify this route in the **bx24transfer context** instead of **ivr-1, s, 1**.
# Configuring Asterisk to Use Asterphone with PJSIP (/additional-functions/configuring-asterisk-to-use-asterphone-with-pjsip)
### Global settings [#global-settings]
Settings - Asterisk SIP settings
wss - 0.0.0.0 - All = No wss - 10.0.0.133 - ens18 = Yes
Settings - Advanced Settings
| Asterisk Builtin mini-HTTP server |
| --------------------------------- |
| Force WebSocket Mode = pjsip |
### Add extension [#add-extension]
Connectivity - Add Extension - Add New \[chan\_pjsip] Extension
| General | |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Add Extension | extension = 100 (internal phone number) display name = 100 (must match the extension - the number that will be displayed when the call is made) secret - password, filled in automatically, required field, you can enter your own |
Advanced
Add Extension
enable avpf = true if you leave it set to “no,” the connection is established successfully, and the call reaches the recipient, but is immediately disconnected
enable ICESupport = true if you leave it set to “no,” the connection is established successfully, and the call reaches the recipient, but is immediately disconnected
enable rtcpMux = true if you leave it set to “no,” the connection is established successfully, and the call reaches the recipient, but is immediately disconnected
media encryption = dtls-srtp(not recommended) сonfiguring media stream encryption
enable dtls = yes use encryption
use certificate .com (select current) select a certificate
| Tab Advanced → Section Edit Extension | |
| ------------------------------------- | --------------------- |
| Transport | All - WSS Primary |
| Enable AVPF | Yes |
| Force AVP | Yes |
| Enable ICE Support | Yes |
| Enable rtcp Mux | Yes |
| Enable Encryption | Yes (SRTP only) |
| Section DTLS | |
| Enable DTLS | Yes (there should be) |
| Use Certificate | \<example>.com |
# Configuring WebRTC in Asterisk (FreePBX) (/additional-functions/configuring-webrtc-in-asterisk-freepbx)
## Technical requirements [#technical-requirements]
* **The telephony server must be accessible from the Internet, i.e. it must have a static IP.**
* **Must have a working SSL/TLS certificate.**
* Asterisk version not less than 11 ([?](/additional-functions/configuring-webrtc-in-asterisk-freepbx#webrtc-support-in-asterisk)), but for convenience preferably 15 ([?](/additional-functions/configuring-webrtc-in-asterisk-freepbx#pjsip-in-asterisk)) or at least 13 ([?](/additional-functions/configuring-webrtc-in-asterisk-freepbx#configuration-examples)).
* When using browser-based softphone, wss (WebSocket Secure) must be configured on the Asterisk server, and the port must be open to the outside (usually 8089) ([?](/additional-functions/configuring-webrtc-in-asterisk-freepbx#freepbx)).
This is configured in the admin interface:
Advanced Settings > Asterisk Builtin mini-HTTP section > HTTPS Bind Port
* Port range for RTP (typically 10000-20000) ([?](/additional-functions/configuring-webrtc-in-asterisk-freepbx#freepbx)).
It is configured in the administrator interface:
Settings → Asterisk SIP Settings → General SIP Settings Tab
## Setting [#setting]
This example describes how to configure WebRTC in an already running FreePBX server:
* is available at \<example>.com and **has an SSL/TLS certificate**;
* FreePBX version 16, Asterisk version 15;
* wss is configured on port 8089;
* all other relevant ports are open.
## Configuring FreePBX [#configuring-freepbx]
If the "Change To CHAN\_PjSIP Driver" button (see below, in the internal number setting) is available, you do not need to do anything in this section.
**Settings ➝ Advanced Settings**
| Section Dialplan and Operational | |
| -------------------------------- | ---- |
| SIP Channel Driver | both |
**Settings ➝ Asterisk SIP Settings**
**Tab “SIP Legacy Settings \[chan\_sip]”**
**Verify that the variables are set:**
| Section Advanced General Settings | |
| --------------------------------- | -------------------------------------------------------------------------------- |
| Other SIP Settings | icesupport = yes media\_encryption = dtls tlscipher = AES256-SHA |
## Creating and setting up an extension number (extension) [#creating-and-setting-up-an-extension-number-extension]
Go to the FreePBX configuration interface and log in: https\://\<example>.com/
Go to section **Applications ➝ Extensions**
Button “**+ Add Extension**” **➝** “**+ Add New SIP (Legacy) \[chan\_sip] Extension**” (other versions of FreePBX may be “Add New Chan\_SIP extension”)
**In the tab General:**
| Section Add Extension | |
| --------------------- | ---- |
| User Extension | 1001 |
| Display Name | 1001 |
**Press the button Submit**
After that, open editing of the newly created extension in the list of extensions (in the line with 5001 in the Actions column, click the edit button with a pencil icon).
**Go to the tab Advanced**
**First change the SIP Driver to PjSIP:**
| Tab Advanced → Section Edit Extension | |
| ------------------------------------- | --------------------------- |
| Enable WebRTC defaults | Yes |
| Media Encryption | DTLS-SRTP (not recommended) |
**Press the button Submit**
**Then change the SIP Driver back:**
| Tab Advanced → Section Edit Extension | |
| ------------------------------------- | -------------------------- |
| Change SIP Driver | Change To CHAN\_SIP Driver |
**Now to make the remaining customizations:**
| Tab Advanced → Section Edit Extension | |
| ------------------------------------- | --------------------- |
| Transport | All - WSS Primary |
| Enable AVPF | Yes |
| Force AVP | Yes |
| Enable ICE Support | Yes |
| Enable rtcp Mux | Yes |
| Enable Encryption | Yes (SRTP only) |
| Section DTLS | |
| Enable DTLS | Yes (there should be) |
| Use Certificate | \<example>.com |
**Press the button Submit**
**Press the button Apply Config**
## Testing that wss works [#testing-that-wss-works]
Let's use the sipML5 live demo from Doubango as an example:
[https://www.doubango.org/sipml5/call.htm](https://www.doubango.org/sipml5/call.htm)
### Setting [#setting-1]
**First, the "Expert mode?" button.**
The advanced settings page should open in the next tab
| Disable Video | v (checkmark) |
| -------------------- | ------------------- |
| WebSocket Server URL | wss\://.com:8089/ws |
**Press the button Save**
**Back to the main tab**
| Display Name | 1001 |
| ---------------- | --------------------------------------------------------------------------------------------- |
| Private Identity | 1001 |
| Public Identity | sip:1001@\<example>.com |
| Password | Copy from FreePBX settings Extension: 1001 ➝ General tab ➝ Edit Extension ➝ Secret |
| Realm | \<example>.com |
**Button Login**
The word Connected should appear at the top above the Registration heading.
### Call [#call]
Now you can make the call.
Under the Call control heading, dial the desired number (\*43 for an echo call or a cell phone number with 8 first).
**Press the button Call ➝ Audio**
**There's a call that should go out.**
**Profit!**
### Links [#links]
#### **WebRTC support in Asterisk** [#webrtc-support-in-asterisk]
Initial support for WebRTC in Asterisk starting with version 11:
* [New in 11 - Asterisk Project - Asterisk Project Wiki](https://wiki.asterisk.org/wiki/display/AST/New+in+11)
* [Asterisk WebRTC Support - Asterisk Project - Asterisk Project Wiki](https://wiki.asterisk.org/wiki/display/AST/Asterisk+WebRTC+Support)
#### **PjSIP in Asterisk** [#pjsip-in-asterisk]
* New chan\_pjsip driver in Asterisk 12: [New in 12 - Asterisk Project - Asterisk Project Wiki](https://wiki.asterisk.org/wiki/display/AST/New+in+12)
* PjSIP is available by default in Asterisk 15: [PJSIP-pjproject - Asterisk Project - Asterisk Project Wiki](https://wiki.asterisk.org/wiki/display/AST/PJSIP-pjproject)
#### **FreePBX** [#freepbx]
* [Ports used on your PBX - PBX Platforms - Documentation](https://wiki.freepbx.org/display/PPS/Ports+used+on+your+PBX)
#### **Configuration examples** [#configuration-examples]
* [Configuring Asterisk for WebRTC Clients](https://wiki.asterisk.org/wiki/display/AST/Configuring+Asterisk+for+WebRTC+Clients)
* [WebRTC clients SIPML5 JSSIP setup configurations and complete end to end client server call demo](https://youtu.be/7pA7j0kt5vA)
# FMC number recognition (/additional-functions/fmc-number-recognition)
FMC technology allows using employees' mobile numbers as internal numbers. The only difficulty in handling calls to such numbers is recognizing them as internal numbers. In a normal call, the module understands which number belongs to the customer and which to the employee, because the employee number is short (up to 4 characters), but when calling an FMC number, neither of the numbers is a short number, trunk or Asterisk peer, both numbers look like external numbers.
Therefore, in Itgrix bx 3.6.0 and Itgrix amo 2.9.0, we are adding two new internal license plate recognition mechanisms specifically for FMC.
### 1. Numbers from CRM [#id-1.-numbers-from-crm]
Obviously, it would be convenient to use an existing list of numbers, preferably kept up to date by the number owners themselves. Such a list can be generated by CRM user profiles. The details depend on the specific CRM.
**Numbers are checked against a full match, including prefixes.**
### Bitrix24 [#bitrix24]
In Bitrix24, a **user profile** can contain several different phone numbers, including even custom fields. The module will use all fields of type "Phone" to recognize FMC numbers.
Importantly, only the Phone, Internal, Mobile, and Work fields are used to search for a user by phone number.
### Kommo [#kommo]
Kommo **does not provide access** to numbers in the user profile, so the list of employee phone numbers is maintained separately in the **module settings**. It can be found on the Business Logic settings page in the Admin area. All numbers from the list will be used for both FMC recognition and user detection.
### 2. Template list [#id-2.-template-list]
If employees are issued specially issued SIM cards to implement FMC, the numbers may look similar, e.g. 8123456XXXX with differences only in the last digits. For such cases, we have added a file `/etc/itgrix_<CRM>/fmc_patterns.txt` where you can list such patterns.
This file is read in real time and can be edited directly while the module is running, including automatically.
Example of the contents of the `/etc/itgrix_<CRM>/fmc_patterns.txt` file:
```
8123456????
*654321????
+71236540001
```
**Templates are written one per line.**
The first pattern in the example will work for any number that starts with "8123456" and then has four more digits at the end.
The second pattern differs in that it can start not only with "8", but also with any other prefix, such as "+7", or no prefix at all. The last pattern does not include special characters and will work only for the number "+71236540001" literally.
## Rules for recognizing license plates by patterns [#rules-for-recognizing-license-plates-by-patterns]
1. The `*` symbol means any number (including zero) of any characters.
2. The symbol `?` means exactly 1 any character.
3. All other characters, even spaces, mean literally themselves.
4. One line of a file is one pattern, and for successful recognition the number must match the pattern from beginning to end.
The list of templates must be used **carefully**, because adding insufficiently specific templates can cause customer numbers to be recognized as internal.
For example, the `?????` pattern will make all five-digit numbers internal, and a pattern consisting only of `*` will match absolutely any number.
# How to view employee call statistics in Bx24 (/additional-functions/how-to-view-employee-call-statistics)
The **Telephony → Call details** section allows you to generate reports on calls on employees and the company as a whole, indicating the direction and status of the call. You can also generate a report on a customer by selecting it in the list of entities. The report can be exported to Excel. When generating a report, you can add or remove the available parameters:
* Call date. In the drop-down list, you can select the period of interest.
* Call duration. You can specify the duration of the call in seconds.
* A specific employee or company as a whole.
* Call status (successful / unsuccessful).
* Call type (incoming / outgoing).
* CRM (lead / company / contact).
# Itgrix AsterPhone for Kommo (/additional-functions/itgrix-asterphone-for-kommo)
Asterisk Phone application has been added to Kommo, which implements calls using WebRTC technology in the browser.
## Installation [#installation-x20]
To install the application, just search for and install AsterPhone Itgrix by searching for "itgrix" in the Market section.
### Setup [#setup]
To setup the application, you need to select the category - "Installed" in the Market section and click on the card of the AsterPhone Itgrix application.
The card shows a description of the app's features, links to instructions, a block of contact information, and settings.
In the application settings it is necessary to specify the address of connection to Asterisk via WebSocket, domain and port (standard 5060 for SIP, 5160 for PJSIP).
Advanced application settings block
User Authorization block. AmoCRM account administrator needs to fill in the authorization data of all users who will use the application by entering in the form "Authorization data in Asterisk" login (usually used internal number) and password from Asterisk settings.
Authorization for users will be performed automatically.
Trial period of the license is activated automatically, for manual update you need to click on the "Update license" button, to apply the license you need to save the settings, in the status additionally there will be a reminder text.
To apply all settings, you must save them by clicking on the corresponding button.
## Usage [#usage]
The AsterPhone application button (displays/hides the interface) is located in the lower left corner. The app icon is not displayed for users for whom authorization data is not configured. If authorization is not set up, the icon is grayed out. If the application is ready for use, the icon is colored.
### Search for contacts/companies/users [#search-for-contacts-companies-users-x20]
If you are authorized, you can make calls by entering a number in the input field. If you enter a partial number or name, contacts/companies/users with a partial match will be shown. You can navigate to the desired number from the list using the arrow keys on the keyboard.
### Making calls [#making-calls-x20]
To make a call, enter a number and press the call button or the Enter key on the keyboard. A call card will be displayed with contact details (if found by number) and action buttons:
* Perform a quick transfer
* Perform transfer
* Tone dial
* Pause
* Mute
* Answer (if the call is incoming)
* Hang up
Some actions may not be available in the trial version.
### Making transfers [#making-transfers-x20]
There are 3 ways to create a call to make a transfer.
1. During a call, press the call transfer, enter a number or select a user from the list. You can then press the call button or the Enter key on the keypad.
2. During a call, press quick call transfer, select the desired group and contact from the list. You can then press the call button or the Enter key on the keypad.
3. During a call, by entering a number in the input field, select a contact/company/user with a partial match. After selecting a contact, press the call button or the Enter key on the keypad.
After making a call using one of the three methods described above, the first call goes to the status - waiting. The new call bar is displayed. The transfer icon appears in the first call, it becomes active after accepting a new call. When you press this button, the active call (green bar) will connect to the transferred call, where the transfer button is pressed.
### System Requirements [#system-requirements-x20]
To work with the application you need:
* PC with Windows, Linux or MacOS installed (mobile version is not supported yet).
* Browser with support for WebRTC technology (current versions of common browsers, such as Chrome and Firefox, support this technology).
* Asterisk telephony server version 15 or higher, configured to use WebRTC.
### License [#license]
The app is in beta testing, so a full 1 month license is available to you.
When the license expires, some features will no longer work:
* parallel calls (outgoing or receiving an incoming call during an active call);
* mute microphone, hold, call transfer, tone dialing.
To update your license, please contact us ([our contacts](/contacts)).
# Itgrix AsterPhone for Bitrix24 (/additional-functions/itgrix-asterphone)
Itgrix AsterPhone application is distributed as a module (solution, local application) for 1C-Bitrix24 self-hosted portals.
## Installation [#installation]
Download the archive using the link provided by your Itgrix manager.
Place the archive on the portal server in the **bitrix/modules** directory.
Unzip the archive (for example, by running the following command in the terminal).
`tar -xvf itgrix.asterphone.tgz`
**You can also upload module files via the Bitrix24 interface:**
Log in to the Bitrix admin panel
**Content - Files and Folders - bitrix - modules**
**Upload file button - Add file** - `itgrix.asterphone.tgz`
Find the downloaded archive and click **Burger menu - Unzip**
After unpacking the archive
**Marketplace - Installed Solutions - Itgrix Asterphone - Install**
**Important**.
The Block third-party cookies function in your browser must be disabled. Settings - Privacy and security - Cookies and other site data
* Block third-party cookies
## Setting [#setting]
### Data for connecting to Asterisk [#data-for-connecting-to-asterisk]
In the portal administration interface, go to **Settings -> Module Settings**, select **Itgrix AsterPhone** in the drop-down list, **Connection Settings** tab. (address: https\:///bitrix/admin/settings.php?lang=en\&mid=itgrix.asterphone):
### User credentials [#user-credentials]
Adding users
In the portal administration interface, go to **Settings -> Module Settings**, select **Itgrix AsterPhone** in the drop-down list, **User Credentials** tab.
To add a new record, fill in the fields:
1. ID\_USER - User ID in 1C-Bitrix24 portal
2. LOGIN - Internal phone number (extension) in Asterisk (configured to use WebRTC)
3. PASSWORD - Password for internal number (secret) in Asterisk.
And click **Save**.
You can further edit or delete entries.
## Itgrix AsterPhone User Manual [#itgrix-asterphone-user-manual]
### Automatic authorization [#automatic-authorization]
When opening the page of Itgrix portal AsterPhone is automatically authorized (if the administrator of Bitrix24 portal has added this user to AsterPhone settings).
The application icon is located in the lower right corner of the portal page. Its appearance reflects the authorization status:
(colored) - the application has successfully authorized in Asterisk.
(gray) - no extension number is configured for the user or authorization error in Asterisk.
### Application panel [#application-panel]
Clicking on the application icon displays and hides the application panel. This may be necessary when working with entities - the panel may overlap the Save/Cancel buttons.
The application panel displays:
1. Number entry field with search by users and entities.
2. Internal phone number with which the user is authorized in Asterisk.
3. Settings menu (in this version only debugging functions and application version).
### Incoming call [#incoming-call]
When a call comes in, an additional panel appears to control the call directly:
In the screenshot:
1. Call direction icon (incoming/outgoing)
2. Name of the user or CRM entity (lead, contact, company)
3. Phone number of the user/entity
4. Lift the handset - answer the call
5. Hang up - reject the call
During a call (including answering an incoming call), the panel is colored green:
In the screenshot:
1. Timer
2. Quick transfers menu
3. Call transfer to user - search by number
4. Dialer (DTMF)
5. Pause call
6. Turn microphone on/off
7. Hang up
8. Indicator of connection with Asterisk server.
#### Connection to Asterisk server [#connection-to-asterisk-server]
The call panel is displayed simultaneously in all open tabs in this browser, but only one connection to the Asterisk telephony server is supported. If the connection indicator is displayed, it means that the active connection is bound to this tab.
**It is important during a call**: if you close the connection tab, the call will be terminated.
If you try to close the connection tab, AsterPhone will display a standard warning message.
#### Pause [#pause]
When a call is paused, the ringing panel will turn yellow. To return the call from pause, press the Play button.
#### Dialer (DTMF) [#dialer-dtmf]
During a call, tone dialing is available, including call transfer using special tone dialing commands (*\*\*number and ##number*):
### Call transfer [#call-transfer]
#### Transfer to user [#transfer-to-user]
A call can be transferred to a specific user by searching the Bitrix24 user base:
Here you can start a transfer with the call button or the Enter key.
Users can be searched not only by number, but also by name:
### Outgoing calls [#outgoing-calls]
#### Click-to-call (c2c) [#click-to-call-c2c]
To make an outgoing call, you need to click on the phone number in the client card. The call card will open and the call will come to AsterPhone - there will be an immediate green bar and the call will go to the client immediately.
You can also click on the phone icon in each "case" of the call in the timeline and in the header of the contact itself:
#### Entering a number with a search to make an outgoing call [#entering-a-number-with-a-search-to-make-an-outgoing-call]
When you enter a number in the search field, AsterPhone will access the Bitrix24 database and find all users and entities (leads, contacts, companies) that have the entered number:
Name - clickable link, can be opened directly in this tab.
To call, you can select not only the user/entity, but also a specific phone number (if there are several) using the arrow keys on the keyboard, or by clicking on the number.
You can select the top option "dialing number...", then the call will start with "unknown contact".
You can start the call by pressing the key or the Enter key.
You can search not only by number, but also by name:
## Errors [#errors]
### Failed to connect [#failed-to-connect]
AsterPhone will show an error pop-up window (code 1006) if it fails to connect to the telephony server.
In this case:
1. Check that **VPN is turned off** in your browser.
2. **Reset cache and cookies. Reload the page**.
3. If the connection still fails, contact your telephony administrator.
### Status reset [#status-reset]
In case of errors in AsterPhone operation during the debugging and testing phase, there is a button to reset the current state.
In other tabs you will need to save data and refresh the page.
# Asterisk Integration Policy (/faq/asterisk-integration-policy)
When developing the product, we adhered to the principle of not interfering with the client’s Asterisk configuration.
This means that when implementing our product:
* The dialplan doesn't change: all call routes remain the same;
* The settings for Extensions or Trunks remain unchanged;
* There are no requirements regarding the stream encoding scheme;
* The structure of the tables in your database does not change; the module does not generate any new data.
This policy allows us to ensure that your PBX continues to operate according to your settings, following the same rules and maintaining the same level of quality as before our solution was installed.
The module works with Asterisk:
1. Using simple read queries on your database (you can restrict access as needed);
2. Using ORIGINATE requests via AMI by the user you created in manager.conf with the parameters specified in the application configuration file;
3. A number of other read requests to Asterisk that do not affect calls;
4. If you need automatic call routing, you can modify your dialplan yourself; Asterisk will then send requests to our application to determine which agent should handle the call (no actions can take place without your approval).
# Detail-call-statuses (/faq/detail-call-statuses)
Since Itgrix\_bx v[3.5.1](/changelog-bx#3.5.1) and Itgrix\_amo v2.8.0, we have expanded the list of recognizable call statuses from just two (Successful and Missed) to almost all that are supported in CRMs.
## Now we need Extra [#now-we-need-extra]
At the same time, our requirements for setting up Asterisk have increased. To find out the result of the call, we need the "extra" field in the CEL table. If you haven't added it yet, call statuses will work in the old way with only two basic values.
Despite the temporary support for CEL without `extra`, it's better not to leave the settings that don't meet system requirements. We already rely on the content of `extra` for handling call interception and transfers, and will rely on it when developing new features.
If the new call statuses do not meet your expectations yet, you can temporarily disable them by making the `extra` field unavailable.
To do this, you need to set the value "id" instead of "extra" in the config field `database.column_name_aliases.cel_extra`. After that, the module will look in the `id` field instead of `extra`, won't see the expected data, and will work in the old way.
Don't forget to restart the service for the changes to take effect, and let us know what needs to be changed in the call statuses so that they work more correctly.
## Statuses in Asterisk [#statuses-in-asterisk]
Call statuses are based on a call property that is new to us - the result. This is the result of peer A's attempt to call peer B, expressed with a code from the SIP protocol. The codes are similar in appearance and meaning to the status codes of the HTTP protocol, for example, `404` means "not found", but in a telephony sense.
The call result is not a literal SIP status code, but the set of situations described by these codes is very fitting.
To determine the result of the call, we rely on the contents of the `extra` field. It contains `hangup_cause` and `dial_status` values set by Asterisk.\
`hangup_cause` has values from 0 to 127, and some of them correspond to one or more SIP status codes.\
`dial_status` can be either empty or [one of 9 values](https://www.voip-info.org/asterisk-variable-dialstatus/), such as "ANSWERED" or "CANCEL".\
Both of these fields together allow us to determine the result of the call:
| Hangup Cause | Dial Status | Call Result |
| ------------------------------------------------------ | --------------------------------- | ---------------------------------------------- |
| 0 Undefined | | 0 Unknown - we process the call in the old way |
| any | CANCEL | 480 Temporarily unavailable |
| any | CHANUNAVAIL CONGESTION | 500 Server error |
| 1 Unallocated 20 SubscriberAbsent | ANSWER | 200 Success |
| 1 Unallocated 20 SubscriberAbsent | | 404 Not found |
| 16 NormalClearing | empty ANSWER | 200 Success |
| 16 NormalClearing | NOANSWER | 408 Request timeout |
| 16 NormalClearing | BUSY | 486 The subscriber is busy |
| 17 UserBusy | | 486 The subscriber is busy |
| 18 NoUserResponse | | 408 Request timeout |
| 19 NoAnswer | | 480 Temporarily unavailable |
| 21 CallRejected | | 603 Call rejected |
| 26 AnsweredElsewhere | | 200 Success |
| 28 InvalidNumberFormat | | 484 Not complete address |
| 34 NormalCircuitCongestion 127 Interworking | | 500 Server error |
| 38 NetworkOutOfOrder | | 500 Server error |
| 44 RequestedChanUnavail | ANSWER | 200 Success |
| 44 RequestedChanUnavail | | 500 Server error |
| 58 BearercapabilityNotavail | | 488 Can't access |
| 66 ChanNotImplemented | ANSWER | 200 Success |
| 66 ChanNotImplemented | | 405 Method not supported |
Obviously, not all 1280 possible combinations are considered here. Some `hangup_cause` values are not used by Asterisk, some combinations don't make sense or aren't possible, but most importantly, our preliminary research has shown that this set of combinations covers all common cases.\
As new cases are discovered, we will add them to the list, but for now, they will be handled in the old way with two options.
## Statuses in CRM [#statuses-in-crm]
Each CRM has its own idea of what statuses a call can have. They depend on the point of view of a specific CRM on the role of calls in a business process and the model of employee interaction with a call. It is important that in CRM, users can both set and read the call status along with automation, and therefore, the list of options should be intuitive and not too large. We map our set of call results to this reduced set of statuses.
### Bitrix24 [#bitrix24]
[Call statuses in Bitrix24](https://helpdesk.bitrix24.com/open/17201534/) are based on SIP status codes, just like our call result, but with some differences:
| Status | Description from Bitrix24 | Display text example |
| ------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| 200 Successful call | the request was successfully accepted, recognized and confirmed | An incoming call from ended. Successful call |
| 304 Missed call | for this status, we took a non-standard code | Missed an incoming call from . Missed call |
| 402 Insufficient funds on the account | payment required | You cannot make a call, there are not enough funds on your account. |
| 403 Forbidden | subscriber not registered | The call to number \<number> ended. Forbidden |
| 404 Wrong number | called subscriber not found, no such SIP number | A call to number \<number> is not possible. This route is not served. |
| 423 Blocked | the server rejects the request because the interval is too short (or the number in the Bitrix24 blacklist) | empty |
| 480 Temporarily unavailable | Temporarily unavailable destination, please try again later | Subscriber \<number> temporarily unavailable. |
| 484 This destination is not available | request received with incomplete address | A call to number \<number> is not possible. This destination is not served. |
| 486 Busy | subscriber is busy | Subscriber \<number> is busy on another call. |
| 500 Internal server error | a call to a subscriber who is not registered on the network, or turned off the phone | empty |
| 503 This destination is not available | the server is currently unable to service the call due to overload or maintenance | The call to number \<number> ended. This destination is not available |
| 603 Canceled | call canceled due to network downtime | Subscriber \<number> canceled the call. |
| 603-S Call canceled | the called user does not wish to receive incoming calls without specifying a reason for the refusal | The call to number \<number> has been canceled. |
The final call status is determined by the call result and additional conditions:
| Call result | Additional conditions | Status BX24 |
| --------------------------- | ------------------------ | ------------------------------------- |
| 200 Success | Incoming call unanswered | 304 Missed call |
| 200 Success | | 200 Successful call |
| 404 Not found | | 404 Wrong number |
| 405 Method not supported | | 405 |
| 408 Request timeout | | 304 Missed call |
| 480 Temporarily unavailable | | 304 Missed call |
| 484 Not complete address | | 484 This destination is not available |
| 486 Subscriber is busy | Incoming call unanswered | 304 Missed call |
| 486 Subscriber is busy | | 486 Busy |
| 488 Can't accept | | 484 This destination is not available |
| 500 Server error | | 500 Internal server error |
| 603 Call rejected | | 603 Canceled |
| 0 Unknown | Answered call | 200 Success call |
| 0 Unknown | Unanswered call | 304 Missed call |
### Kommo (former amoCRM) [#kommo-former-amocrm]
Kommo call statuses are not based on SIP status codes. Instead, they are intended to be filled in by the user:
1. Left a voice message
2. Call back later
3. Out of the office
4. Conversation commenced
5. Wrong number
6. Didn't get through
7. Number busy
In addition to the status, Kommo has a "Call Result" field that contains arbitrary text. We tried to use this text to make the status more intuitive.
Call data in Kommo is determined by call result as follows:
| Call result | Add conditions | Status Kommo | Text |
| ---------------------------------------------------------- | ------------------------ | ----------------------------- | ------------------------- |
| 200 Success | Incoming call unanswered | 6 Didn't get through | Missed call |
| 200 Success | | 4 The conversation took place | Success call |
| 404 Not found | | 5 Wrong number | Number out of service |
| 408 Request timeout 480 Temporarily unavailable | | 3 Be away | Subscriber did not answer |
| 488 Can't accept | | 5 Wrong number | Carrier error |
| 484 Not complete address | | 5 Wrong number | Invalid number |
| 486 Subscriber is busy | Incoming call unanswered | 6 Didn't get through | Number busy |
| 486 Subscriber is busy | | 7 Number busy | Number busy |
| 603 Call rejected | | 2 Call back later | Call rejected |
| 0 Unknown | Answered call | 4 The conversation took place | |
| 0 Unknown | Unanswered call | 6 Didn't get through | |
# Differences in connection to B24 via SIP-connector and Itgrix (/faq/differences-in-connection-to-b24-via-sip-connector-and-itgrix)
#### Comparisons of Itgrix and SIP-connector we have collected in the table: [#comparisons-of-itgrix-and-sip-connector-we-have-collected-in-the-table]
| | Sip-connector | Itgrix |
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Advantages |
You can call directly from a browser with the Bitrix tab open.
You can call through the Bitrix24 mobile application.
The call comes to the user, depending on whether he started a working day or not.
Setting the logic of calls through the setting of telephony B24.
|
Call routing and voice traffic completely remain on the side of your PBX - reduces connection time and improves communication quality.
You do not need to reconfigure Asterisk, the connected IP-phones and soft-phones at workplaces will continue to work.
Telephony works with the closed Bitrix portal, calls and leads are created.
If Bitrix24 does not work, then telephony will continue to work, and after reconnecting, all calls will be downloaded to CRM.
Unlimited trunks and up to 100 simultaneous conversations (tested load)
|
| Disadvantages |
Voice traffic passes through Voximplant cloud telephony (servers are located in the Netherlands, which affects the speed of connection and quality of communication).
If B24 does not work, then telephony does not work.
Maximum 10 trunks and only 15 simultaneous conversations (lines) The logic of the call is configured only in B24.
Existing telephone sets and soft-phones need to be reconnected to Bitrix cloud telephony.
|
It is impossible to make a call from a browser, but you can use a soft background - an additional program on a computer or a smart background connected to Asterisk.
|
# Granting access to servers (/faq/granting-access-to-servers)
**In order for our specialists to install the integration and provide technical support, they will need access to the server where the Itgrix module service will be installed (this is typically an Asterisk telephony server).**
## Ways to connect to servers for integration and technical support [#ways-to-connect-to-servers-for-integration-and-technical-support]
**Key-based SSH**
* **Preferred method** of accessing servers.
* Terms of Use:
* We will provide the client with only the **public key** for configuration (we will send the key via support chat or email).
* Access is restricted to only the necessary permissions.
**SSH with a password**
* For basic setup and technical support.
* Terms of Use:
* Your login and password will be provided via the support chat or by email.
* Access restriction based on IP address (address provided upon request).
* Temporary access (while configuration is in progress) or permanent access for ongoing support.
* Deleting an account or disabling a password after completing work.
* Access is restricted to only the necessary permissions.
**VPN access**
* Used in closed infrastructure environments or when operations must take place within a secure perimeter.
* Terms of Use:
* The VPN configuration is provided by the client (preferably compatible with OpenVPN).
* After connecting via VPN — using SSH with a key or a password.
**AnyDesk (remote desktop access)**
* Used when the server can only be accessed via the client's workstation (for example, without direct SSH access).
* You need to launch AnyDesk on the client side and provide your ID and temporary password.
This doesn't always work due to connection restrictions imposed by AnyDesk (connection limits exceeded)
# How to check licence status (/faq/how-to-check-licence-status)
### Go to the admin panel of the module [#go-to-the-admin-panel-of-the-module]
On the status page, find the second line.
The number of days remaining and the licence expiration date are indicated.
# How to leave a review for the Itgrix app in Bitrix24? (/faq/how-to-leave-a-review-for-the-itgrix-app-in-bitrix24)
Go to the "Market" on your Bitrix24 portal, click **More - Installed apps.**
A list of applications will open. Find the **Itgrix** application and click on it.
In the app window that opens, scroll down to the "Reviews" section and click **Add Review.**
Write a review and click the **Send button.**
Thank you, **you are great too!**
Send us a screenshot of your review and we'll **add +1 month** to your Itgrix license expiration date.
# How to pay (/faq/how-to-pay)
Bill will be sent on your email.
### First way [#first-way]
**Payment Methods:**
Non-cash payment to the current account Bank card (VISA, MasterCard, Maestro)
### Second way [#second-way]
Electronic money (PayPal)
## Return [#return]
Refunds for activated licenses are not provided.
**Documents, you receive after paying to the company account:**
* We send the *software acceptance* and certificate at the time of coupon shipment
# How to turn off the display of calls in the calendar (/faq/how-to-turn-off-the-display-of-calls-in-the-calendar)
Open **CRM Settings -> Other -> Other settings -> Activity** and disable the first option.
# How to view statistics on employee calls (/faq/how-to-view-statistics-on-employee-calls)
How to view call statistics for employees Link **Telephony** -> **Call Detail** allows you to generate reports on calls of each employee and the company as a whole, indicating the direction and status of the call. You can generate a report for a client by selecting them in the Entity List. The report can be exported to Excel.
When generating a report, you can **add or remove available parameters**:
* Call date - in the drop-down list you can select the period you are interested in;
* Ringing time - you can specify the ringing time in seconds;
* A specific employee or the company as a whole;
* The status of the call (successful/unsuccessful);
* Type of call (incoming/outgoing);
* CRM (Lead/Company/Contact).
# FAQ (/faq)
# Offline install (only for Bitrix24) (/faq/offline-install)
On closed systems (without Internet access) the Itgrix module cannot be installed via a script `autoinstaller_<crm>.sh` (at `https://itgrix.ru/download/autoinstaller_<crm>.sh`). For such cases, there is an option for offline installation:
1. Download the installation file to a PC with Internet access.
2. Deliver the installation file to the server where you want to install the Itgrix module.
3. Start the installation.
Download the installation file
### Through the online interface [#through-the-online-interface]
At [https://itgrix.ru/offline\_install/](https://itgrix.ru/offline_install/) you can get the module installation file via the online interface.
Select the required options and click “Download” - and the installation file will be downloaded to your computer.
### Via terminal [#via-terminal]
To get the installation file, you need to make a request to the node `https://bx24asterisk.ru/api/v3/get_offline_installer.php` with the following parameters:
* **`crm`** - short name of the CRM for which the module is installed:
* `bx` for itgrix\_bx (Bitrix24);
* **`arch`** - short name of the processor architecture:
* `i386` for 32-bit processors based on the architecture x86 (including i586, i686 et al.);
* `amd64` for 64-bit processors based on the architecture x86-64 (also known as x64, Intel 64, AMD64 et al.);
* **`version`** - the version number of the version to be installed, e.g, `3.12.0`; **not necessarily:** if not specified, the current latest version will be used; should be specified, e.g., when installing a supported but not the latest version.:
* [Change log (new versions) itgrix\_bx](/changelog-bx) - for Bitrix24.
#### Examples [#examples]
Installing the module itgrix\_bx (Bitrix24) **current latest version** on a 64-bit server. Download the installer, e.g. by using `curl`:
```bash
curl -OJL "https://bx24asterisk.ru/api/v3/get_offline_installer.php?crm=bx&arch=amd64"
```
#### Examples [#examples-1]
After downloading the installation file, you need to deliver it to the server where you want to install the module.
The installation file is a self-extracting archive in the form of a shell script.
Example: `itgrix_bx-amd64-install-v3.12.3.sh`
All you have to do to install it is to run the file from the **as root or via sudo:**
```bash
sudo bash '/itgrix_bx-amd64-install-v3.12.3.sh'
```
The installation process is similar to the online installation (through a script `autoinstaller_<crm>.sh`), but does not require downloading module files and other information - everything you need is already contained in the self-extracting archive.
Installation complete.
# Offline update (/faq/offline-update)
Systems without Internet access can't update Itgrix module using `/opt/itgrix_<crm>/update.sh` script. Use offline update procedure instead:
1. Download the update file onto a PC with Internet access.
2. Transfer the downloaded update file to the server where you have the Itgrix module installed.
3. Run the update.
## Download update file [#download-update-file]
### Via online interface [#via-online-interface]
At [https://itgrix.ru/offline\_updates/](https://itgrix.ru/offline_updates/) you can get the module updates through the online interface.
Select appropriate options and click "Download updates". The update file will be downloaded onto your computer.
### Using terminal [#using-terminal]
The update file can can be downloaded by making a request to `https://bx24asterisk.ru/api/v3/get_offline_update.php` with the following options:
* **`crm`** - short name of your CRM:
* `bx` for itgrix\_bx (Bitrix24);
* `amo` for itgrix\_amo (Kommo, former amoCRM);
* **`arch`** - short name of the processor architecture:
* `i386` for 32-bit processors based on the architecture x86 (including i586, i686 and others);
* `amd64` for 64-bit processors based on the architecture x86-64 (also known as x64, Intel 64, AMD64 and others);
* **`version_from`** - the currently installed version, e.g. `3.5.0`;
* **`version_to`** - target version, **not mandatory:** if not specified, the current latest version will be used; you may need to specify it if you upgrade to a supported, but not the latest version:
* [Change log (new versions) itgrix\_bx](/changelog-bx) - for Bitrix24;
* [Change log (new versions) itgrix\_kommo](/changelog-kommo) - for kommoCRM.
The file size depends on the number of milestones needed to upgrade from `version_from` to `version_to`.
Archives with these intermediate versions will be included in the update file (but NOT all intermediate versions will be added, but only those necessary for a correct update).
#### Examples [#examples]
Module itgrix\_bx (Bitrix24) has version 3.5.0 installed on 64-bit server, need to update **to current latest version.** Download the update, for example, using `curl`:
```bash
curl -OJL "https://bx24asterisk.ru/api/v3/get_offline_update.php?crm=bx&arch=amd64&version_from=3.5.0"
```
If you need to get an update **only to version 3.5.3**, then specify the parameter
`version_to=3.5.3`:
```bash
curl -OJL "https://bx24asterisk.ru/api/v3/get_offline_update.php?crm=bx&arch=amd64&version_from=3.5.0&version_to=3.5.3"
```
## Installing the update [#installing-the-update]
After downloading the update file, you need to transfer it to the server where you have Itgrix module installed.
The update file is a self-extracting archive in the form of a shell script.
Example: `itgrix_bx-amd64-update-v3.5.0_to_v3.5.3.sh`
All you need to do to install the update is run the file **as root or with sudo**:
```bash
sudo bash /itgrix_bx-amd64-update-v3.5.0_to_v3.5.3.sh
```
The update process is similar to online update (via script `/opt/itgrix_<crm>/update.sh`), but does not require downloading intermediate versions and other information - everything you need is already contained in a self-extracting archive.
Update completed.
# Reliable softphones for Asterisk (/faq/reliable-softphones-for-asterisk)
### MicroSIP [#microsip]
An open-source portable SIP softphone.
OS: Windows, Linux, macOS
[Download](https://www.microsip.org/downloads)
Distribution type: Free
[Configuration](https://wiki.voip.ms/article/Microsip)
### PhonerLite [#phonerlite]
VoIP softphone for Windows
OS: Windows
[Download](http://phonerlite.de/download_en.htm)
Distribution type: Free
[Configuration](http://phonerlite.de/config_en.htm)
### LINPHONE [#linphone]
Cross-platform SIP client
OS: Windows, macOS, Linux, Android, iOS, Windows Phone
[Download](https://www.linphone.org/en/docs/install-linphone/)
Distribution type: Free
[Configuration](https://www.linphone.org/en/docs-category/bien_demarrer-en/)
### Zoiper [#zoiper]
A free softphone for making voice and video calls, as well as sending messages over the internet (VoIP), using the SIP and IAX protocols.
OS: Windows, macOS, Linux, Android and iOS
[Download](https://www.zoiper.com/en/voip-softphone/download/current)
Distribution type: Free
[Configuration](https://www.zoiper.com/en/support/home/article/184/How%20to%20install%20Zoiper%205)
### SoftphonePro [#softphonepro]
VoIP Business Softphone
OS: Windows, MacOS
[Download](https://softphone.pro/en/select-product-trial)
Distribution type: paid, with a 14-day trial
[Configuration](https://softphone.pro/en/help/softphone-getting-started)
# Updating the app (/faq/updating-the-app)
Starting with version [3.5.0](/changelog-bx#id-3.5.0), updates can be installed through the admin panel by clicking the Check button next to the current version and then Update. In some cases, this method will not be available, and then the module update is performed on the server where it is installed, and must be performed from a user account with administrator permissions.
**Use the command**
```
/opt/itgrix_bx/update.sh
```
By default, the latest available version will be installed. The same command can be used with a specific version as an optional parameter. For example, this is how you can upgrade to version 3.6.1:
```
/opt/itgrix_bx/update.sh --version=3.6.1
```
**Please note!**
The script will independently determine the system architecture, download the current version and install it. After the update script is executed, the application will restart.
If you have a version lower than 3.3.2.1, you will need to run the update twice to switch to the new update system. The first run will update to the intermediate version 3.3.2.1, and the second run will update to the current version.
Done
If your server has a limited Internet access, you can download the update file elsewhere by following the instructions in the [Offline Update](/faq/offline-update) article and then run this file on your server.
# Audio file name customization (/custom_common/audio-file-name-customization)
The customization is configured in `process_record_file_path.php`, it is located in the directory:
| itgrix\_bx (Bitrix24) | itgrix\_kmo (Kommo) |
| :-------------------------------------: | :-------------------------------------: |
| **/opt/itgrix\_bx/customizer/actions/** | **/opt/itgrix\_kmo/customizer/actions** |
## Parameters [#parameters]
**Input:**
```javascript
{
"call_id": “”,
"from": “”,
"to": “”,
"path": “”
}
```
**Return:**
```javascript
{
"data": {
"path": “”
},
"state": "success"
}
```
The first step is to understand how the file name is generated. Sometimes it is necessary to substitute a folder with a specific date or other parameters into the file path.
## File before recording .wav [#file-before-recording-.wav]
In case all records are stored in one directory and their names look like .wav, the following solution of file selection customization without DBMS access is possible:
```php
$callId = $params['call_id'];
$from = $params['from'];
$to = $params['to'];
$path = $params['path'];
extract(pathinfo($path));
$path = $dirname . '/' . $callID . '.wav';
return array(
'state' => 'success',
'data' => array(
'path' => $path,
),
);
```
## Complex file name for which data should be compiled from DBMS [#complex-file-name-for-which-data-should-be-compiled-from-dbms]
Let's consider an example of customization for a format record: `/var/spool/asterisk/monitor/<дата-время>-<from>-<to>-<Call ID>.<extension>`
Example:\
`/var/spool/asterisk/monitor/20180330140245-321654987-154-1522395542.2897.mp3`
In this case we can see that the file name consists of digits - date/time of call, incoming number, internal number and uniqueid of call, which are specified with hyphens. Let's get the missing data from the database.
```php
$callId = $params['call_id'];
$from = $params['from'];
$to = $params['to'];
$path = $params['path'];
// If more parameters are needed to generate a file name,
// then they can be obtained in the database by making an additional query.
// Code example:
$dbResult = Utils::mysqliQuery(
"SELECT * FROM `cdr` WHERE `uniqueid` = '".$callId."' ORDER BY `calldate` DESC LIMIT 1",
true);
if ($dbResult === false) {
return array(
'state' => 'error',
'data' => 'Error during request in CDR',
);
}
if (empty($dbResult)) {
return array(
'state' => 'error',
'data' => "There are no records found in the CDR for the call '$callId'",
);
}
//Next, we compile the file name from the received data
$row = $dbResult[0];
$path = sprintf('/var/spool/asterisk/monitor/%s-%s-%s-%s.%s',
date('YmdHis', strtotime($row['calldate'])),
$row['src'],
$row['dst'],
$callId,
pathinfo($row['recordingfile'], PATHINFO_EXTENSION)
);
return array(
'state' => 'success',
'data' => array(
'path' => $path,
),
);
```
# Black and white lists (/custom_common/black-and-white-lists)
If you don't want to go into details, contact us. We will quickly help you and answer all questions!\
[Contact us](/contacts) in any convenient way.
To configure customization, you must include the customizer file in the module settings. For versions starting from 2.15.0
Starting with version 2.15.0, all black / white lists are implemented through customization need\_registration
### Black / white lists (filtering by internal number): [#black-white-lists-filtering-by-internal-number]
Blacklist of internal numbers - allows you to not register a call in CRM in which one of the selected set of internal numbers participated.
On the contrary, the white list of internal numbers allows registering only those calls in CRM in which one of the selected set of internal numbers participated.
To cancel the registration of calls to certain internal numbers, for example 101 and 102, we edit the file **/opt/itgrix\_bx/customizer/actions/need\_registration.php.**
Example code for the BLACK list on internal numbers 101 and 102:
```
$black_list = array('101', '102');
$key = $params['conversation']['type'] == 2 ? 'to' : 'from'; // 2 = incoming
if (in_array($params['conversation'][$key], $black_list)) {
$result = false;
}
return array(
'state' => 'success',
'data' => array(
'result' => $result
),
);
```
An example of the WHITE list code for extension numbers 201 and 202:
```
$white_list = array('201', '202');
$key = $params['conversation']['type'] == 2 ? 'to' : 'from'; // 2 = incoming
if (!in_array($params['conversation'][$key], $white_list)) {
$result = false;
}
return array(
'state' => 'success',
'data' => array(
'result' => $result
),
);
```
# Call data (call_full) in customizations (/custom_common/call-data-call_full-in-customizations)
For Bitrix24, the call\_full object is available starting with Itgrix\_bx 3.10.0.
For Kommo, the call\_full object will appear in the Itgrix\_amo 2.13.0 version.
## Main object (call\_full) [#main-object-call_full]
```php
{
"call_full": {
"active_conversation_id": "",
"channel": {},
"conversations": {
"1111111111.11111": {
"channel": {},
"is_parked": ,
"user": {}
},
...
},
"deal": {},
"entity": {},
"is_ivr": ,
"record": "",
"registration": {},
"result":
}
}
```
## Channel data (channel) [#channel-data-channel]
```php
"channel": {
"answer_time": "",
"end_time": "",
"extra": {},
"from": {},
"id": "",
"is_primary": ,
"name": "",
"start_time": "",
"state": "The status (line) is one of:
ringing - in the process of dialing (the subscriber's phone is ringing, there is no answer yet);
talking - in the process of talking (already had an answer, not yet hung up);
ended - finished;
processed - processed by the connector",
"to": {},
"trunk": {},
"type": "Type (string) - one of:
local - local (from internal number to internal number);
incoming - incoming (from external number to internal number);
outgoing - outgoing (from internal number to external number);
unknown - unknown (unable to determine type)",
"was_answered":
}
```
## Date-time format [#date-time-format]
The date-time is output in the format `YYYYY-MM-DD HH:MM:SS`.
If no value is set (no event occurred), the value is displayed `0001-01-01 00:00:00`.
The time values correspond to the time zone on the Asterisk server.
## Number data (from, to, trunk) [#number-data-from-to-trunk]
```php
"from/to/trunk": {
"base": "",
"custom": "",
"is_local": ,
"original": "",
"variants": [
]
}
```
Example of prefix configuration:
Example of a number to:
```php
"to": {
"base": "9001234567",
"custom": "89001234567",
"is_local": false,
"original": "+79001234567",
"variants": [
"9001234567",
"+74959001234567",
"84959001234567",
"+79001234567",
"79001234567",
"89001234567"
]
}
```
The connector first tries to use the number in the field `custom` (i.e., the result of autosubstitution and/or customization); if it is not present, the original number in the field `original`.
## User data (user) [#user-data-user]
```
"user": {
"email": "",
"id": "",
"name": "",
"phones": [
],
"position": "",
"raw": {}
}
```
Only non-empty/non-zero fields are present in the `raw` object.
Bitrix24 user fields are described in the [REST API documentation](https://apidocs.bitrix24.com/api-reference/user/user-fields.html).
The Connector considers the following field values in Bitrix24 as user phone numbers:
* Internal telephone (field `UF_PHONE_INNER`)
* Cell phone (field `PERSONAL_MOBILE` )
* Work phone (field `WORK_PHONE`)
* Phone (field `PERSONAL_PHONE` )
User phone numbers in the `phones` object are represented as strings (as in Bitrix24).
## Deal data (deal) [#deal-data-deal]
Only itgrix\_kmo connector for amoCRM works with deals.
In Bitrix24, the itgrix\_bx connector does NOT work with deals, so the value of the `deal` field will always be `null`.
## Entity data (entity) [#entity-data-entity]
```php
"entity": {
"id": "",
"is_new": ,
"name": "",
"phones": [
],
"raw": {},
"responsible": {},
"responsible_id": "",
"type": "