Code Monkey home page Code Monkey logo

ktelephone's Introduction

KTelephone

image

User-friendly setup using repositories

Manually build application: Docker

If you prefer to build using Docker instead of use your local machine, just find an available Dockerfile.* and use it for the commands below (current options are: arch, debian and ubuntu20):

mkdir build

# example: replace `Dockerfile.debian` by `Dockerfile.ubuntu20` if it makes sense
docker build \
    -t build \
    -f Dockerfile.debian \
    .

docker create \
    --name build \
    build

docker cp build:/usr/src/ktelephone/build/ktelephone ./build/ktelephone

docker cp build:/usr/src/ktelephone/build/data ./build/data

(cd build && ./ktelephone)

Manually build application

Requirements

You need Qt5, CMake 2.8.11 or higher and pjproject 2.10 before anything else.

For example, on Ubuntu:

sudo apt install -y git cmake g++ qtbase5-dev qtmultimedia5-dev libasound2-dev

Inspect Dockerfile.* files for other instructions if you want.

PJProject

(This set of commands in particular should be runned outside the KTelephone folder, differently than the others.)

# as normal user
git clone https://github.com/pjsip/pjproject.git
cd pjproject
git fetch origin 2.10
git checkout 2.10
./configure --prefix=/usr/lib --enable-static --disable-resample --disable-video --disable-opencore-amr
make dep
make
# as root or with `sudo`
sudo make install
sudo ldconfig

KTelephone

Compile:

mkdir -p ./build
cd ./build
cmake ../
make

To compile for debugging, use:

mkdir -p ./build
cd ./build
cmake -DCMAKE_BUILD_TYPE=Debug ../
make

Executing (if you're still inside build folder.)

./ktelephone

To run tests, use:

mkdir -p ./build
cd ./build
cmake .. -DENABLE_TESTING=true
make
make test ARGS="-V"

For WSL

You'll need something like X-Server and Terminator while trying to run the binary.

Build your own telephony platform

if you don't have any way to test your calls using a remote provider, you can go for a local telephony platform (FreeSWITCH).

docker-compose -f docker-compose.telephony-platform.yml up
docker-compose -f docker-compose.telephony-platform.yml exec telephony fs_cli

License

GNU General Public License v3.0: https://github.com/StefanYohansson/ktelephone/blob/master/LICENSE

ktelephone's People

Contributors

diasbruno avatar evangilo avatar mazuh avatar stefanyohansson avatar wasnio avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ktelephone's Issues

PJProject Dependency version

Hey there,
I am currently trying to build this on Arch Linux and eventually bring it to the AUR. On the AUR the latest / only pjproject version available is 2.10. I was not able to build this with the follwing error:

/home/scrumplex/ktelephone/src/uamanager.cpp: In Konstruktor »UserAgentManager::UserAgentManager(QObject*)«:
/home/scrumplex/ktelephone/src/uamanager.cpp:21:21: Fehler: »class pj::Endpoint« hat kein Element namens »codecEnum«; meinten Sie »codecEnum2«?
   21 |   for (auto c : ep->codecEnum()) {
      |                     ^~~~~~~~~
      |                     codecEnum2
/home/scrumplex/ktelephone/src/uamanager.cpp: In Elementfunktion »MyCall* UserAgentManager::placeCall(const QString&, const QString&)«:
/home/scrumplex/ktelephone/src/uamanager.cpp:119:1: Warnung: Kontrollfluss erreicht Ende von Nicht-void-Funktion [-Wreturn-type]
  119 | }
      | ^

Just changing this to codecEnum2 didn't work for me, but I did not even try to fix it :D

Should I be looking at bringing an older version of pjproject to the table or something like an update to pjproject 2.10?

Gentoo ebuild

Hello,

I'm trying to make gentoo ebuilds for ktelephone and pjsip. It's mostly done and ktelephone compiles successfully but when I run it throws the following error:

alf@wutanglan ~> ktelephone
22:27:38.242 os_core_unix.c !pjlib 2.10 for POSIX initialized
22:27:40.365 sip_endpoint.c .Creating endpoint instance...
22:27:40.365 pjlib .epoll I/O Queue created (0x55e7031f3c30)
22:27:40.365 sip_endpoint.c .Module "mod-msg-print" registered
22:27:40.365 sip_transport.c .Transport manager created.
22:27:40.365 pjsua_core.c .PJSUA state changed: NULL --> CREATED
22:27:40.365 sip_endpoint.c .Module "mod-pjsua-log" registered
22:27:40.365 sip_endpoint.c .Module "mod-tsx-layer" registered
22:27:40.365 sip_endpoint.c .Module "mod-stateful-util" registered
22:27:40.365 sip_endpoint.c .Module "mod-ua" registered
22:27:40.365 sip_endpoint.c .Module "mod-100rel" registered
22:27:40.365 sip_endpoint.c .Module "mod-pjsua" registered
22:27:40.366 sip_endpoint.c .Module "mod-invite" registered
22:27:40.904 alsa_dev.c ..ALSA driver found 9 devices
22:27:40.904 alsa_dev.c ..ALSA initialized
22:27:40.904 pjlib ..epoll I/O Queue created (0x55e702f5c1f8)
22:27:40.905 bcg729.c ..BCG729 codec initialized
22:27:40.907 sip_endpoint.c .Module "mod-evsub" registered
22:27:40.907 sip_endpoint.c .Module "mod-presence" registered
22:27:40.907 sip_endpoint.c .Module "mod-mwi" registered
22:27:40.907 sip_endpoint.c .Module "mod-refer" registered
22:27:40.907 sip_endpoint.c .Module "mod-pjsua-pres" registered
22:27:40.908 sip_endpoint.c .Module "mod-pjsua-im" registered
22:27:40.908 sip_endpoint.c .Module "mod-pjsua-options" registered
22:27:40.908 pjsua_core.c .1 SIP worker threads created
22:27:40.908 pjsua_core.c .pjsua version 2.10 for Linux-5.6/x86_64/glibc-2.29 initialized
22:27:40.908 pjsua_core.c .PJSUA state changed: CREATED --> INIT
22:27:42.089 pjsua_core.c SIP UDP socket reachable at 192.168.79.130:5090
22:27:42.089 udp0x55e702efe200 SIP UDP transport started, published address is 192.168.79.130:5090
22:27:42.089 pjsua_core.c PJSUA state changed: INIT --> STARTING
22:27:42.089 sip_endpoint.c .Module "mod-unsolicited-mwi" registered
22:27:42.089 pjsua_core.c .PJSUA state changed: STARTING --> RUNNING
*** PJSUA2 STARTED ***
22:27:42.089 endpoint.cpp pjsua_codec_set_priority(&codec_str, priority) error: Not found (PJ_ENOTFOUND) (status=70006) [../src/pjsua2/endpoint.cpp:2198]
terminate called after throwing an instance of 'pj::Error'
fish: “ktelephone” terminated by signal SIGABRT (Abort)

Am I missing something?

Thanks

Building error pthread problem

I run make command in build directory but I have this error:

[ 91%] Building CXX object CMakeFiles/ktelephone.dir/src/telephony/uamanager.cpp.o
[ 95%] Building CXX object CMakeFiles/ktelephone.dir/qrc_resources.cpp.o
[100%] Linking CXX executable ktelephone
/usr/bin/ld: /usr/local/lib/libpj-x86_64-unknown-linux-gnu.a(os_core_unix.o): undefined reference to symbol 'pthread_rwlock_destroy@@GLIBC_2.2.5'
/usr/bin/ld: /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/ktelephone.dir/build.make:316: ktelephone] Error 1
make[1]: *** [CMakeFiles/Makefile2:77: CMakeFiles/ktelephone.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

What it is problem ?

Wrong "From" label value

STR:

  • Register two extensions 600 and 700
  • make a call from 600 to 700
  • In the 700 dialog is showed "From: 700" instead "From: 600"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.