Releases: VIHATTeam/OmiKit
v1.11.4
v1.11.3
Crash Fixes (Crashlytics top crashes — ~503 crashes eliminated)
-
NSRangeException crash (
OMIEndpoint.h, Crash #2/#7/#8 — 255 crashes) —OMIEndpointStateStringmacro had 3 elements but enum had 4 (OMIEndpointClosing).objectAtIndex:3on 3-element array → crash. Fixed: added"OMIEndpointClosing"+ safe bounds check returns"Unknown"for any future out-of-range values. -
EXC_BAD_ACCESS pjmedia_codec_mgr_enum_codecs (
OMIEndpoint.m,OMICallStats.m, Crash #3 — 72 crashes) —pjsua_enum_codecs()called with NULL codec_mgr during VoIP push cold start. 4 call sites missing NULL guard (1 already had it). Fixed: addedpjsua_get_pjmedia_endpt()+pjmedia_endpt_get_codec_mgr()NULL check before everypjsua_enum_codecscall. -
PushKit VoIP kill by iOS (
VoIPPushHandler.m, Crash #4 — 85 crashes) — Duplicate VoIP push detection (FIX PUSH-1) calledcompletion()withoutreportNewIncomingCall→ iOS killed app. Fixed: duplicate push path now callsreportAndEndDummyCallWithCompletionto satisfy PushKit requirement. -
pjsip_timer_init_session crash (
OMICallManager.m, Crash #5 — 91 crashes) —startCallToNumberNoRegcreated PJSIP session while endpoint transitioning to Closing state → session pool corrupt → crash. Fixed: addedpjsua_get_state() != PJSUA_STATE_RUNNINGguard before call creation.
Call Handling
-
OMIHaveAnotherCall false positive (
OmiClient.m) —getNewestCall != nilrejected new calls even when existing call was alreadydisconnected/disconnecting(PJSIP cleanup delay). Most common customer complaint. Fixed: addedcallStatecheck — only reject if existing call is truly active (not disconnected/disconnecting). -
OMIHaveAnotherCall diagnostic logging (
OmiClient.m) — All 3 HaveAnotherCall exit paths now log full context (SIP user, endpoint state, all active calls with uuid/state/phone/createDate) and auto-upload log file. Search[HaveAnotherCall]on server to diagnose.
Audio
- AUDIO-STORM speaker toggle fix (
OMIEndpoint.m) — Toggle speaker caused ~30 audio underflows in 0.3s → AUDIO-STORM detector killed the call. Fixed: increased threshold from 30→60 and decreased window from 2s→0.5s. Speaker switch (~30 underflows) stays below threshold, real network death (100+ underflows) still detected.
Sample App
- CallingView timer not starting (
ViewController.m) — Outgoing call: CallingView presented at CALLING state, then CONFIRMED created a NEW CallingView → timer reset to 0. Fixed: CONFIRMED reuses existing CallingView, only updatescallUUID. Incoming call: CallingView presented AT CONFIRMED → missed CONFIRMED notification. Fixed:startCallTimercalled in present completion block.
Release 1.9.26
- Upgrade core omi to version 2.16
- Improve call audio
- improve quality call video
1.8.1
- Optimize performane
1.7.39
- Add func set project_id off firebase
- Optimize code
1.7.38
- Optimize codecs, media
- Add support get sip_number at OMICALL
- Add more message error code
1.7.26
Release last version
Fix:
- Missed omi_call off incomming call
- Improve performance, quality call
1.7.12
Release version
- Improve quality for call
1.6.38
- stable version
release framework
- update Video Calling
- bug fix
- Perfomance tunning
- Quality call control reactive