- Fixed parsing SDP with wrong attributes order, which could cause to lose codecs settings
- Filter out special characters from the 'brandName'
- Android Flutter: Added ongoing call notification
- Android Flutter: Updated notifications using CallStyle/MessagingStyle and separate channels
- Android Flutter: Redesigned Activity's lock screen visibility (enable only when call present)
- iOS Flutter: Updated CallKit implementation
- iOS Flutter: Added ability to detect and notify Bluetooth device connection
- Flutter: Implemented Iterator for CallsModel
- Flutter: Added attribute 'reason' to the CDR model
- Fixed bug with losing mute state when switch between calls or make conference
- Improved handling RtcpMux/BUNDLE options when ICE enabled
- MacOS: Fixed potential crash on initialize
- Fixed triggering 'OnPlayerState' event
- Added ability to set brandName in the 'msid' SDP attribute
- Android Flutter: Added ability to sync calls state when Activity destroyed during the call
- Android Flutter: Fixed potential exception on display incoming call notification
- iOS Flutter: Fixed bug with inverted mute behaviour on iOS 17+
- iOS Flutter: Signal Flutter when call muted by CalKit
- iOS Flutter: Added new setting 'enableCallKitMute' (ability to mute call by CallKit)
- iOS Flutter: Added new setting 'enableCallKitReportCallAsVideo' (ability to mute call by CallKit)
- Windows: Fixed handling homeFolder with Unicode symbols
- Windows: Added ability to detect default audio device changes and switch audio during a call
- Added ability to retrieve last received SIP message when call terminated
- Added ability to end call when it's waiting on Re-Invite response
- Don't update registration when it's failed on TCP connection closed by remote side
- Redesigned deleting subscriptions (after receive confirmation from remote side)
- iOS: improved switching between transports
- iOS: converted SiprixPushRegistry to singleton.
- Android: added ability to request full screen intent permission
- Added ability to set ContentType for Message requests
- Flutter: Added homeFolder setting
- Added new exampe app with single model for easy start (https://github.com/siprix/SampleFlutter)
- Added new method 'PlayTone' and ability to play files/tones to local speaker
- Redesigned internal mixer impl to avoid sound artifacts when SDK hosts conference call
- Added ability to send SIP responses back to sender
- Added ability to create few subscriptions for the same ext@account with different events
- Added ability to set body for SUBSCRIBE request
- Fixed handling SDP with enabled 'rtcp-mux'
- iOS: updated CallKit impl (accept SIP call after activate audio session)
- iOS: imroved handling networks switching and restore connection when app become active
- Updated Flutter example app
- Fixed sound artifacts which could appear when SDK hosts conference call
- Android: Use Bluetooth as default device when it present
- Android: Added fallback to default ringtone
- iOS: Added new method 'handlePushNotif' which restores registration when push received
- Updated upgradeToVideo implementation. Added new mode 'manual'
- Added new event 'onCallVideoUpgradeRequested'
- Added new method 'acceptVideoUpgrade'
- iOS: Added new method 'endCallKitCall'
- Added new setting 'acc.upgradeToVideo' and event 'onCallVideoUpgraded'
- Added new setting 'ini.enableVUmeter' and event 'onVuMeterLevel'
- Added new setting 'ini.enableAes128Sha32'
- Added new event 'onSipNotify'
- Added new method 'getStats(callId)'
- Fixed handling H264 packetization settings
- Android: Fixed potential crash when app uses TLS transport and switches between networks
- Added new method 'UpgradeToVideo'
- Fixed handling case when call started with video on hold
- iOS/Android: Fixed handling device rotation on capturing video
- iOS/Android: Added new method 'SwitchCamera'
- Android: Fixes related to 16K page size support
- Updated handling push notif and incoming calls
- Fixed remote hold detection (when all media lines are sendonly or inactive)
- Modified handling 'sips' scheme (put 'sips' to Contact header)
- iOS: Added ability to activate audio session manually
- iOS: Fixed ability to use jpeg image instead of camera
- iOS: Added new method 'getCallKitCallUUID'
- Android: added ability to skip permissions request
- Added new method 'WriteLog', and integrated it in the iOS/Android flutter plugins
- Added G729 codec support
- Fixed handling connection candidates of inactive media lines
- Added fallback to first available H264 codec when baseline profile missed
- Improved detection of the avialability IPv4/IPv6 interfaces
- Updated previous fix, which reduces delay on collecting candidates
- Added fix for H264 profile-level-id negotiation
- Fixed crash on ios/macos when license string is empty
- Added fix which prevents long delay on collecting candidates when enabled STUN
- Added handler for case when connection can't be created because of wrong STUN/TURN address
- iOS: Added ability to toggle front/back camera
- Added new option 'ini.transpForceIPv4'
- Flutter example app: modified default codecs, trigger 'notifyListeners' on 'CallsModel::onConnected'
- Prevent potential crash on hold when call initiated as video/fixed handling Hold events
- Fixed bug which prevents adding multiple TLS transports
- Fixed TURN address resolution
- Updated event 'OnMessageIncoming' (added messageId arg)
- Android: Added 16K page size support
- Android: Added ability to display notification when message received
- Android: Fixed bug with select audio device on tabled without earpiece
- Flutter example app: messages handling improvements
- Added new account properties 'stunServer','turnServer'
- Added new ini property 'VideoCallEnabled'
- Added new video data property 'Rotation'
- iOS: Fixed conflict class names preventing upload to AppStore
- Fixed handling ACK/SDP response (missed 'onCallConnected' event)
- Fixed potential crash when received SIP MESSAGE without body
- Flutter Example app: added blind/attended transfer pages
- Added new method 'stopRingtone'
- iOS: fixed sound issue when received incoming call in terminated state
- Flutter plugin Android: added new option 'listenVolChange'
- Flutter example app: added 'advanced mode' of the AddAccount page
- Published MAUI example app (supports Android and Windows platfroms)
- Flutter plugin Windows: Fixed plugin build error, caused by last update
- Flutter plugin Android: Modified foreground service type (allows to access microphone Android 15 when app is in background)
- Fixed bug with find local account which matches received SIP request
- Added new option 'iceEnabled'
- Flutter plugin Android: Added ability to request 'USE_FULL_SCREEN_INTENT' permission, when it's declared in app's manifest
- Windows: Fixed bug with detecting is IPv4 available
- Improved CallRecording (capture local+remote sound, use mp3 encoder, write mono or stereo)
- Added new ini properties 'recordStereo', 'useDnsSrv'
- Flutter example app: Added 'Record' menu, updated 'PlayFile' menu impl
- Flutter plugin Android: Fixed bug which prevents stop foreground service after re-create Activity
- Flutter plugin Android: Fixed crash when library instance has been destroyed and re-initialized in the same process
- Flutter plugin Android: Fixed crash on create service and resolve app name
- Fixed bug with sending statusCode in the 'onTerminated' callback
- Added ability to switch calls automatically after call un-held, connected
- Added new ini property 'UnregOnDestroy'
- Flutter plugin: Updated 'CdrsModel' with ability to set MaxNumber of items and access items from inherited class
- Flutter plugin Android: Updated and added ability to customize notifications
- Flutter plugin Android: Fixed vibrate in background
- Flutter plugin Android: Updated permission request implementation
- Android: Updated SiprixRinger implementation
- Flutter plugin Android: Added ability to work in background isolate and handle push notifications
- Flutter plugin: Updated example app with Firebase push notification related functionality
- Flutter plugin iOS: Redesigned and improved CallKit+PushKit implementation
- Updated Flutter example app with PushKit related functionality
- Added ability to send and receive text messages (SIP MESSAGE request)
- Added ability to override DisplayName in outgoing call (method 'Dest_SetDisplayName')
- Added ability to handle received MediaControlEvent 'picture_fast_update'
- Fixed bug in 'RewriteContactIp' option implementation when TCP/TLS transport is using
- Fixed parsing RTCP FB parameters of video in SDP
- Flutter plugin Android: added ability to switch camera by invoke 'setVideoDevice(0)'
- Flutter plugin Android: Updated permissions request functionality
- Flutter plugin iOS: Added PushKit support
- iOS: Fixed closing app caused by SIGPIPE signal
- Flutter plugin Android: Send callIncoming/accept events to the app only after sync accounts
- - Flutter plugin: Added more arguments to the method 'CallsModel::sendDtmf'
- iOS: Updated TLS transport implementation (use TLS1.3 by default, ability to use also 1.2 and 1.0)
- iOS: Improved ability to detect transports lose/switch and automatically restore registration
- Flutter plugin Android: Removed foreground service permissions
- Android, iOS: Fixed potential crash when app switched between networks and updates registration
- Flutter plugin: Generate random port number on plugin level when adding new account
- Android: Added ability to handle AirPlaneMode ON/OFF; Fixes related to handle networks switching;
- iOS: Fixes related to handle networks switching and restore registration when app becomes active;
- iOS: Added ability to re-create transports when app become active after long time in background
- Fixed wrong argument of method 'updateAccount' in 'platform_interface'
- iOS: Fixed crash when app restored from background
- Flutter plugin iOS: Added CallKit support
- Fixed logs flooding with UDP transport error
- Fixed handling case when app adds duplicate subscription.
- Added new ini property 'brandName'
- Enabled ability to make attended transfer when call on hold
- Added log output on Reg/Unreg/Del account
- Allowed to set RegExpire >3600
- Don't clear DNS cache on network switch
- Published Flutter plugin on PubDev
- Flutter plugin Android: Redesigned initialization of the methodChannel. Now it allows properly handle push notifications
- Added BLF functionality to WPF example app
- Added new method 'AccountGenInstId'
- Added ability to unregister previous contact on network switch
- One more fix of the restoring call media after switching networks
- Fixed restoring call media after switching networks
- Added 'Subscription' functionality:
Methods: 'Subscription_Create', 'Subscription_Destroy'
Event: 'OnSubscriptionState'
- Added more detailed log output for some cases
- Added new account's property 'xContactUriParams' in Flutter plugin
- Fixed handling nullable values, fixed sending events from renderer in the Flutter Android plugin
- Added new method 'Module_HomeFolder'
- Modified code of resolving actual default ringtone in Android
- Added ability to play ringtone in fluter ios plugin
- Added new option 'iniData.listenTelState' (available only for Android).
When enabled - library is monitoring device's call state and holds/unhold SIP calls when GSM call started/ended.
- Added new account's setting 'VerifyIncomingCall'.
- Fixed bug with determine source interface for sending requests.
When proxy specified use it first.
- Added 'LogLevel'='Stack' in Flutter
- Added new method 'Call_GetSipHeader'
- Improved switching between networks
- Fixed crash in Android SDK on ending call where audio wasn't started
- Updated example app SampleWPF (redesigned model imlementation, added 'PlayFile' impl)
- Fixed release build of the Linux Flutter plugin
- Made and published new release builds
- Fixed missed H264 codec in release build of Windows SDK
- Fixed crash on starting sound in iOS emulator
- Fixed sending video iOS
- Modified DTMF SDP
- Improved option 'rewriteContactIp'.
Added ability to refresh registration with new public IP in the 'Contact' header
- Deployed 'SiprixUA' and 'SampleWpf' to github;
- Fixed bug with freezing when invoke 'unInitialize' on Linux
- Fixed crash on hold call after answer incoming call without video
- Fixed bug with receiving DTMF when 'Opus' codec is using.
- Updated example application 'SampleWpf' Added video windows, mute camera button and accounts serialization;
- Updated method 'Call_PlayFile' added argument 'loop'
- Created subdomen 'https://docs.siprix-voip.com/' with manual
- Implemented handling push notifications in Android example app Updated ObjModel which can be reused in other projects
- Added new method 'Acc_AddXContactUriParam' used to put own params to Contact's Uri, primarily designed for sending push token details (RFC8599)
- Redesigned ObjModel used by Android example app Redesigned UI and functionality of Android example app
- Added ability to specify video capturer params. Introduced new class 'VideoData' and set of methods: 'Vdo_GetDefault'/'Vdo_SetNoCameraImgPath' 'Vdo_SetFramerate'/'Vdo_SetBitrate'/'Vdo_SetHeight'/'Vdo_SetWidth'
- Added new method 'Dvc_SetVideoParams'
- Removed method 'Ini_SetNoCameraImgPath'
- Added ability to switch front/back camera on Android Method 'switchCamera'
- Added ability to restore media of the call after network lost/switched for test purposes added new method 'Call_Renegotiate'
- Redesigned methods which controls play/record files Now SDK has: 'Call_PlayFile'/'Call_StopPlayFile' and 'Call_RecordFile'/'Call_StopRecordFile'
- Added video renderers to Flutter plugin for Android
- Added 'SiprixEglBase' common class for creating renderers
- Added 'SiprixVideoRenderer'control for rendring video
- Added video call functionality to Android version Includes (Camera capturer, check camera permission)
- Fixed crash on hold call with video
- Added video renderers to Flutter plugin for iOs/Mac
- Added video call functionality to iOS version Compiled with native support for H264 codec
- Added new methods 'callSetVideoWindow' for Mac and iOS
- Added video functionality to iOS (SwiftUI) example app
- Added new method 'Ini_SetNoCameraImgPath', set path to jpg image which SDK has to use instead of image from camera.
- Added new method 'Call_GetVideoState', returns 'true' if call has video media
- Added video renderers to Flutter plugin for Windows/Linux
- Added new interfaces 'IVideoFrame' and 'IVideoRenderer', which allow to implement own renderer on app level. Used by Flutter plugins.
- Added new method 'Call_SetVideoRenderer', which set application's renderer
- Added new method 'Call_MuteCam'
- Added new method 'Call_SetVideoWindow'
- Added video renderer for Windows
- Added base video call functionality for Windows/Mac/Linux
- Updated callback 'OnCallConnected'
- added new argument 'bool withVideo'
- Fixed bug with updating account details
- Created WPF example app
- Fixed bug with using AuthId
- Fixed bug with apply new password/authId on UpdateAccount
- Added 'AV1' codec to list of codecs
- Fixed freezing on module uninitialize on Linux
- Added 'singleAccountMode'
- Integrate LicHelper into module. Added new flags: singleAccsMode, videoCallEnabled, internalLicIsAuth.
- Added ability to set and play mp3 ring tone file
- Improved flutter example app. Added ability to parse displayName from SIP and resolve by app Aded ability to display secure call indicator
- Implemented secure media options (media encryption). SDK supports 3 modes: SecureMedia{Disabled, SdesSrtp, DtlsSrtp}
When secure media enabled AND call connected - RTP is encrypted;
- Added new method 'Acc_GenerateInstanceId'
- Added new account settings: tlsCaCertPath, tlsUseSipScheme, rtcpMuxEnabled, instanceId
- Integrated ObjC wrapper files into framework
- Implement CallKit audio session activation - Integrated CallKit into SwiftUI example app.
- Implement network switching handler - SDK detects and reports network state and also automatically restores registration
- Implement SwiftUI example app. Added models and views
- Added crash handler for Windows. SDK set unhandled exception filter and when it happens creates dmp file Dmp file stored in folder with logs and has name 'siprix_[version]_crash_dump_HHMMSS.dmp'
- Added ability write logs to file and/or IDE console Controlled by newly added methods: 'Ini_SetLogLevelFile'/'Ini_SetLogLevelIde'
- iOS SDK: fixed DNS resolution, testing networks switching
- iOS SDK improvements: play ringtone, switch audio devices, show notification of incoming call
- iOS ARM build started on device Investigate how to fix DNS resolution
- Added network monitor implementation for Linux based on NetLink - Redesigned 'SecureMedia' enum.
- Testing network monitor on Windows/Mac - Redesign restoring registration of accounts using TCP/TLS transports
- Mac: implemented NetMonitorMac, added ability to properly raise event 'NetworkStateChanged'
- Android: implemented NetMonCallback/NetMonReceiver, added ability to properly raise event 'NetworkStateChanged'
- Windows: redesigned NetMonitorWin, added ability to properly raise event 'NetworkStateChanged'
- Fixed playing ringtone on Android - Integrate newly added events and methods to flutter example app
- Added new event 'OnCallRedirected' - raised each time when received REFER request from remote side
- Android. Added code which verifies mic permission before start/accept call - Added new method 'Call_StopFile' - stops audio player started by 'Call_PlayFile' - Added new event 'OnPlayerState' - reports player state (Started/Stopped/Failed)
- Added ability to print RTP statistics when call ended
- Fixed crash on when uses closes app with unfinished (calls)