IT/Unified Communications

Trying to Build and Run the Open Source SIP Client (Blink-qt)

변화의 물결1 2024. 9. 1. 00:10

 

 

 안녕하세요,

 

 

 인터넷에 "OpenSource SIP Client" 프로그램이 몇 가지가 있는데, 그중에 Linux, Mac, Windows로 된다고 하는 것이 있어 확인해 보았습니다.

 

 국내에는 자료가 보이지 않고, 수요가 없는 것 같아서 영어로 내용을 적어보았습니다. 영어 실력이 부족해서 번역기 도움을 조금 받았습니다. 실수가 있다면 조언 부탁드립니다.

 

( Hello,

 There are several "Open Source SIP Client" programs available on the internet, and I checked one that claims to work on Linux, Mac, and Windows.

 

 Since there doesn't seem to be much information or demand for this in Korea, I wrote the content in English. I also used a translation tool a bit due to my limited English skills. If there are any mistakes, please advise.)

 


 

 In conclusion, I will first tell you the result of building blink-qt. It was possible in Linux, but I could not confirm the result in the MSys2 execution environment of Windows. If you know how to install it in Windows, please reply or share it with others.

 

 Although the source code on GitHub has been updated recently, the resources provided on the site were insufficient for building. The installation library and instructions were outdated.

 

 MicroSIP was developed exclusively for Windows and lacked some features. That's why I chose blink-qt, which has more features and can be built on other operating systems. I think it can be used as a SIP Client for reference later, so I'm sharing it.

 

 The following steps were used for installation, but keep in mind that the process might change if the development environment changes. Please consider this as a rough guide to the potential build process.

 


 

 

1. blink-qt Build Environment

 

To test the build process, I installed VirtualBox and used "Ubuntu 22.04 LTS" as the guest OS. Although you can install 24.04 LTS, I recommend using 22.04 for now, as some libraries might not yet be supported on the newer version.

 

 To test the "SIP Client" described above, you must first have a SIP Server or a freePBX server running.

There is an article about installing Asterisk PBX Server PBX on Raspberry Pi. Please refer to it.

However, it is in Korean.

 

https://remnant24c1.tistory.com/341

 

 

 

2. Basic Update

 

Update and upgrade the existing programs.

 

$ sudo apt-get update
$ sudo apt-get upgrade

 

 

Install the essential programs and libraries.

 

$ sudo apt-get install build-essential dkms vim linux-headers-$(uname -r) -y

 

Note that if you have just installed VirtualBox, you can now install the Guest Additions.

 

 

3. Adding apt-get Source Paths

 

 To download the necessary libraries and programs for building "blink-qt" or "SIP SIMPLE Client SDK" you need to specify the download paths, as these libraries are not widely distributed.

 

There are two methods to add the source paths to the sources.list file: using vim or using a command.

 

1) Using vim

 

Add the following line at the end of the sources.list file:

 

$ sudo vim /etc/apt/sources.list

 

deb [arch=amd64] https://packages.ag-projects.com/ubuntu jammy main

 

2) Using a command

  

$ echo "deb [arch=amd64] https://packages.ag-projects.com/ubuntu jammy main " | sudo tee -a /etc/apt/sources.list

 

 

 

Download the GPG key to prepare for receiving software packages:

 

$ wget -qO - http://ag-projects.com/ubuntu/agp-debian-gpg.pub | sudo tee /etc/apt/trusted.gpg.d/ag-projects.gpg

 

 

After running "sudo apt-get update", if you encounter a NO_PUBKEY error, use the value provided and execute the following command: (The public key value may be different.)

 

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F74046C316D8F9F5

 

 

 

 

If you run "sudo apt-get update" again, you will see that the address has been added to the package list, excluding the Warning.

 

 

 

4. Installing Required Libraries for the Build

 

 If you download the blink-qt source, there is an INSTALL file. There is a dependencies entry in that file. And I added all the libraries that I added one by one because I got an error during the first installation. You don't need to install python-enum34. By default, it is installed based on Python3.

 

 

$ sudo apt-get install libavahi-compat-libdnssd1  python3-application  python3-eventlib  python3-googleapi  python3-lxml  python3-oauth2client  python3-pgpy  python3-pyqt5  python3-pyqt5.qtsvg  python3-pyqt5.qtwebkit  python3-requests  python3-sipsimple  python3-twisted  python3-sqlobject  python3-zope.interface  x11vnc cython3 openssl ffmpeg libvncserver-dev python3-pip git -y

 

 

 

5. Downloading the blink-qt Source Code

 

1) Downloading via darcs

 

 You can download it using the darcs method provided on the site below. To use this method, you must install darcs with apt-get and then download it.

 

https://icanblink.com/download/#blink-for-debian-and-ubuntu-linux

 

darcs clone http://devel.ag-projects.com/repositories/blink-qt

darcs pull -a

 

  

2) Downloading from GitHub

 

You can also download the source from GitHub:

In this guide, we'll use GitHub to download the source. First, create the directory where you'll build the project, then download the source:

  

$ mkdir opt
$ cd opt
$ git clone https://github.com/AGProjects/blink-qt.git

 

 

 

 

6. Build and Install Using setup.py

 

 Proceed with the build and installation using setup.py. After the build and installation are complete, the executable files will be created in the blink-qt/bin and /usr/local/bin/ directories.

 

 

 

7. Run the blink

 

 When you run blink, you will get an error that the PyQt6 module is missing. The current source is PyQt6. So, you need to install some additional modules.

 

 

$ pip3 install PyQt6 PyQt6-WebEngine lxml_html_clean

 

When you run the blink program again, the program will appear.

 

$ blink

 

In the first "Add account " that a windows appears, do not select "Create a free SIP account", but select "Add an existing SIP account" and then enter the SIP server address, assigned number, and password to connect.

 

 

 

8. Modify and run the source code

 

 The blink-qt/resources directory contains .ui files, sound, and image files. You can also modify them with Qt Creator.

 

The blink-qt/blink directory contains the python code of PyQt.

 

 To check if the source code is editable, I added the text "Is the Code editable?" in the blink-qt/blink/aboutpanel.py file and then rebuilt the project.

   

$ vim blink-qt/blink/aboutpanel.py

 

 

$ sudo python3 setup.py build_ext
$ sudo python3 setup.py install
$ blink

 

 

 

 

 

 I have confirmed that I could make and receive calls to each other's SIP phones. However, I could not verify all the functions.

 

 Additionally, due to the virtual environment in VirtualBox, I couldn't accurately test audio and microphone functionality.

 

 It would have been ideal if it could also run on Windows, but unfortunately, I only confirmed it on Linux. If multiple tests were possible, I would have checked additional functionalities such as video and file transfers.

 

 With this, I conclude the build environment setup and modification of Open Source SIP "Blink-qt".

I hope this helps a little.

 

 

Thank you for reading.

 

 

 

<Reference site>

1. SIP SIMPLE Client SDK

https://sipsimpleclient.org/developer-guide/

2. SIP SIMPLE Client SDK wiki

http://projects.ag-projects.com/projects/sipsimpleclient/wiki

3. blink-qt

https://github.com/AGProjects/blink-qt

4. LibVNCServer/LibVNCClient

https://libvnc.github.io/doc/html/rfbclient_8h.html

https://github.com/LibVNC/libvncserver/tree/master/include/rfb

5. python3-sipsimple/docs/Install.linux

https://github.com/AGProjects/python3-sipsimple/blob/master/docs/Install.linux

6. MSYS2 Packages

https://packages.msys2.org/queue

7. stackoverflow

 

  

 

반응형