Cześć

W grudniu zeszłego roku wypuściłem swoją pierwszą własnoręcznie zrobioną apkę.
Zapraszam do odwiedzenia oficjalnej strony i pobrania pod adresem https://www.vikophone.com/

Program

VikoPhone to softphone VoIP, działający w oparciu o protokół SIP.
Obecnie pozwala na wykonywanie połączeń telefonicznych i udział w telekonferencji.
Program testowałem z centralą telefoniczną Asterisk i 3CX.

Program napisałem w C. Jedynie część graficzna powstała w C++ z wykorzystaniem biblioteki wxWidgets.
Obsługę plików, sieci, dźwięku, wątków i wyszstkiego innego napisałem używając własnej biblioteki o kodowej nazwie xlib.
Xlib ma być w założeniu wieloplatformową biblioteką w języku C, niezależną od systemu operacyjnego i procesora.
Protokoły SIP i RTP/RTCP oprogramowałem na podstawie dokumentów RFC.

Auto updater

Program do aktualizacji automatycznych jest oddzielną apką, instalowaną razem z głównym programem.
W przyszłości użytkownik będzie mógł wybrać czy chce zainstalować auto updater.
Na razie jest instalowany zawsze, ale można go wyłączyć.
Działa w trybie usługi i sprawdza raz na 24h czy jest dostępna nowa wersja.
Jeśli jest to pobiera i instaluje w tle.

Auto updater napisałem w C.
Do sprawdzania nowej wersji i jej pobrania użyłem biblioteki cURL.

Instalator

Do zbudowania instalatora użyłem programu Wix Toolset.
Nie używałem gotowych skryptów budujących instalator, tylko oddzielnie opisałem każde okno instalatora.
Chciałem uzyskać większą kontrolę nad tym co i jak ma wyglądać i w którym momencie instalacji wykonać.
W instalatorze umieściłem bibliotekę DLL własnej produkcji, do dodawania wyjątków w zaporze windows.

Strona www

Chciałem mieć możliwość swobodnej edycji informacji na stronie www dlatego stronę uruchomiłem na WordPress'ie.
Niestety wszystkie szablony dostępne w internecie są mocno przeładowane i dość wolne, dlatego napisałem własny.
Jest bardzo prosty i minimalistyczny, ale szybko się ładuje. Nawet na telefonie komórkowym z kiepskim zasięgiem 3G.

Dalszy rozwój programu

Aktualnie pracuję nad formatem pliku tłumaczeń. Chcę, aby VikoPhone był programem wielojęzycznym (na razie Polski i Angielski).
Do pilnych zadań zaliczam:

  • dzwonek (teraz po prostu go nie ma :))
  • obsługa żądania OPTIONS protokołu SIP (niektóre centrale używają żądania OPTIONS jako ping)
  • rozwiązywanie nazw DNS (program wymaga podania adresu IP centralki)
  • poprawienie ewentualnych błędów (na pewno jakieś są)

Następnie skupię się na rozbudowaniu okna ustawień programu, aby wycisnąć z tego co już mam jak najwięcej.
Kolejnym krokiem będzie rozbudowa protokołu SIP o pozostałe żądania.
Umożliwią one zaimplementowanie funkcji serwera telekonferencji, wysyłania SMS, chat, przekierowywania rozmów itp.
W dalszych planach chcę zaprogramować protokół TLS. Dzięki temu mógłbym zrobić szyfrowanie protokołów SIP i RTP.

Inne prace

  • Muszę zacząć prowadzić jakąś dokumentację. Obecnie mam tylko komentarze w plikach źródłowych, a to trochę za mało.
  • Zastanawiam się nad uruchomieniem forum lub issue tracker'a lub obu, na stronie www. Na razie nie ma tam nawet formularza kontaktowego.
  • Rozwarzam uruchomienie działu baza wiedzy na stronie www. Mógłbym tam umieszczać wskazówki dotyczące konfiguracji programu do współpracy z centralkami telefonicznymi.