안녕하세요,
인터넷에 "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
'IT > Unified Communications' 카테고리의 다른 글
PBX의 IVR(Interactive Voice Response, 자동 응답 기능(?) ) 기능 확인(UC200, FreePBX) (0) | 2024.09.08 |
---|---|
PBX의 Paging(1:N 전화 걸기, 방송하기) 기능 확인 (4) | 2024.09.07 |
UC-200-15 – miniPBX 작동 확인 (인터넷 전화 서버) (2) | 2024.09.06 |
FreePBX 설치 후 SIP 연결이 안 될 경우 한 가지 확인할 것 (7) | 2024.09.04 |
Raspberry Pi 4에 Asterisk 조금 쉽게 설치하기 (2) | 2024.08.31 |