Simple voice-over-IP softphone - based on OpalVOIP and Gnome
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
resources build: add gresources Dec 26, 2012
vapi add gstreamer-1.0.vapi Feb 17, 2013
.gitignore add .gitignore Dec 24, 2012
Gopal-0.1.metadata phone: enable opal option context Nov 27, 2012
Makefile add install target to Makefile Jul 31, 2014
README update README Feb 17, 2013
actions.vala add PROCESSING state in CallHanupAction Feb 3, 2013
config.vala config: display a warning if config parse fails Jul 28, 2013
controller.vala controller: save the config's file name Jul 28, 2013
get-version makefile: dist target Jan 25, 2013
gir.make enum types generation Feb 17, 2013
gopal.cpp gopal: delete process at the end Jan 13, 2013
gopal.h enum types generation Feb 17, 2013
gopalmanager.cpp manager: fix introspection May 31, 2013
gopalmanager.h enum types generation Feb 17, 2013
gopalpcssep.cpp gopalpcssep: extract the correct token Jan 27, 2013
gopalpcssep.h move GopalCallEndReason to gopalmanager.h Nov 19, 2012
gopalsipep.cpp sipep: don't quote aor May 31, 2013
gopalsipep.h enum types generation Feb 17, 2013
gresource.xml build: add gresources Dec 26, 2012
history.sh add a shell script to show the history table Jan 27, 2013
history.vala main classes are public May 5, 2013
main.vala main: run the app even if there's no config Jul 28, 2013
mmbackend.c mmbackend: remove inline definition Mar 1, 2013
mmbackend.h mmbackend: audio multimedia backend Dec 5, 2012
model.vala model: exception handling at stun setting Jul 28, 2013
registrar.vala registrars: add set_status() method May 31, 2013
soundgst.cpp soundgst: don't close at Close() Jan 27, 2013
soundgst.h soundgst: gstreamer-based sound channel Dec 5, 2012
sounds.vala main classes are public May 5, 2013
symbols.filter build: control the exported symbols Sep 21, 2013
update-jhbuild.sh add option parsing to update-jhbuild.sh Mar 24, 2013
vala.make make: create a header file May 5, 2013
view.vala view: add description in about dialog Jun 1, 2015
widgets.vala widgets: don't concat the previous text Feb 3, 2013

README

GPhone
======

GPhone is a tiny SIP client.

Its purpose is to scratch a personal itch about how to develop an Opal client
using GObject/Vala.

The code flow is based on the great OpenPhone client, from Opal.


Dependencies
------------

* Opal (v3.10)
* Gtk+ (v3.0)
* Vala
* sqlite3
* librsvg / gnome-icon-theme-symbolic
* libnotify
* gstreamer (v1.0)
* libcanberra
* sound-theme-freedesktop


Compilation
-----------

$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:.
$ make


NOTE: if you are using vala-0.16, which doesn't provide a gstreamer-1.0 vapi,
you can run this to use a local gstreamer vapi

$ make OLDVALA=1


Run
---

* Create a configuration file in ~/.config/gphone.conf
  The format of this file is:

[Networking]
STUNServer=stun_server

[SIP/Registrars/0001]
RegistrarUsed=true
RegistrarUsername=sipuser
RegistrarDomain=sipdomain
RegistrarAuthID=sipuser
RegistrarPassword=sippaswsord

$ ./phone


To do
-----

* Use libsecret for registrars:
  http://developer.gnome.org/libsecret/
* Use GSettings instead of configuration files
* Use GTK+ context for canberra
* DBus interface
* Speakers mute / Microphone mute
* Video / Camera
* Handle calls on hold
* A lot more ...


Done
----

* Make entry box a completion one, looking for the parties in history
* Use GtkApplication
* Use canberra for sound effects (ringing)
* GStreamer support for Sound Channel Input/Output devices
* Use Notifiers for error messages
* Use GNetworkMonitor to check the network avability
  http://developer.gnome.org/gio/2.32/GNetworkMonitor.html
* Make the Gopal's initialisation asynchronous avoiding the UI freeze
* Add a dialpad
* Receive calls