มา Integrate SIP softphone ใช้งานร่วมกับ Mumble Server และ Talkkonnect

       เรามาทำความรู้จักกับ SIP กันก่อนนะครับ SIP softphone คือโปรแกรมหรือแอปพลิเคชันที่ช่วยให้คุณสามารถโทรศัพท์ผ่านระบบ IP (VoIP) ได้โดยใช้โปรโตคอล SIP (Session Initiation Protocol) ซึ่งเป็นโปรโตคอลที่ใช้ในการจัดการและควบคุมการเชื่อมต่อเสียงและวิดีโอในการสื่อสารผ่านเครือข่าย IP

โดย SIP softphone ทำงานคล้ายกับโทรศัพท์ธรรมดา แต่แทนที่จะใช้สายโทรศัพท์จริงๆ มันใช้การเชื่อมต่ออินเทอร์เน็ตในการส่งข้อมูลเสียงและวิดีโอ ทำให้คุณสามารถโทรศัพท์ไปยังเบอร์อื่นได้ทั่วโลกผ่านอินเทอร์เน็ต และมักจะมาพร้อมฟีเจอร์เพิ่มเติม เช่น การโทรวิดีโอ, การส่งข้อความ, และการจัดการผู้ติดต่อ

การใช้ SIP softphone ช่วยให้สามารถติดต่อสื่อสารได้อย่างมีประสิทธิภาพและคุ้มค่า เนื่องจากมักจะมีต้นทุนที่ต่ำกว่าการโทรศัพท์ผ่านสายโทรศัพท์ปกติ โดยเฉพาะอย่างยิ่งเมื่อทำการโทรระหว่างประเทศ

ก่อนที่จะทำการเชื่อมต่อ SIP เข้ามา เรามาดูภาพรวมกันก่อน
เรามี ระบบวิทยุ (Radio), ระบบโทรศัพท์ (Voice Over IP) และ ระบบ Intercom

ขั้นตอนการ Integrate SIP Server กับ Mumble server

เราจะใช้ตัวโปรแกรมชื่อ mumsi ในการช่วยเป็นตัวกลางเชื่อมต่อไปยัง SIP Server และ Mumble server  โดยในตัวอย่างนี้ เราจะไม่ได้ลง SIP Server เอง เพื่อเป็นการไม่เสียเวลาแต่จะขอใช้บริการของ Linphone.org ซึ่งเราสามารถลงทะเบียนและใช้ฟรี เพื่อเป็นการทดสอบกันนะครับ

โดยจะติดตั้งด้วย container ซึ่งใน server ทำการติดตั้ง docker 
ทำการสร้างไฟล์ nano docker-compose.yml
ดังนี้ครับ

version: ‘3.8’

services: 

  mumsi:

    image: haocomcloud/ipptt-demo:mumsi

    container_name: mumsi

    restart: always 

    ports: 

      – “5060:5060”

    volumes:

      – ./mumsi/config:/config

ทำการสร้างไฟล์ nano  /mumsi/config/config.ini ดังนี้ครับ

[general]

# valid values for log level are: ERROR, WARN, NOTICE, INFO, DEBUG

logLevel = NOTICE

[sip]

# list of valid SIP URIs for incoming connections separated by space

# supported wildcards: *

# if you want to allow calls from any URI, write *@*

validUriExpression = *@sip.example.com *@127.0.0.1

host = sip.linphone.org

port = 5060

user = <username>

password = <password>

 

# length of single voice frame in ms. Valid values are 10, 20, 40, 60 ms.

# Adjust it if you need to meet the specific bandwidth requirements of Murmur server

frameLength = 40

 

# Set the maximum number of SIP calls to allow simultaneously. This should be <= 32.

# If you need more, recompile PJSUA LIB and also modify the define in main.hpp.

max_calls = 1

[mumble]

#mumble.ipptt.co

host = mumble-demo.haocomm.com

port = 50000

user = <username>

password = <password>

channelNameExpression = <channel>

 

# When here is no SIP connection, the mumble state is set to self_mute/self_deaf

# so the other users can easily see whether the SIP is connected even when not

# in the same group

autodeaf = 1

 

# Bitrate of Opus encoder in B/s

# Adjust it if you need to meet the specific bandwidth requirements of Murmur server

opusEncoderBitrate = 16000

 

# Set to 1 to use client certificates. The certs must be named <user>-cert.pem and

# the private keys <user>-key.pem.

use_certs = 0

 

[app]

# Caller PIN needed to authenticate the phone call itself. The caller presses

# the PIN, followed by the hash ‘#’ key. On success, the caller is

# unmuted/undeafened. On failure, the SIP call is hung up.

channel = HAM-CB

pin = 9999

 

[files]

# These files are used for the caller and mumble channel audio clips.

# The paths below assume that you are running ./mumsi in the build/ dir.

#welcome = ../media/welcome.wav

#prompt_pin = ../media/prompt-pin.wav

#entering_channel = ../media/entering-channel.wav

#announce_new_caller = ../media/announce-new-caller.wav

#invalid_pin = ../media/invalid-pin.wav

#goodbye = ../media/goodbye.wav

#mute_on = ../media/mute-on.wav

#mute_off = ../media/mute-off.wav

#menu = ../media/menu.wav

welcome = /app/media/welcome.wav

prompt_pin = /app/media/prompt-pin.wav

entering_channel = /app/media/entering-channel.wav

announce_new_caller = /app/media/announce-new-caller.wav

invalid_pin = /app/media/invalid-pin.wav

goodbye = /app/media/goodbye.wav

mute_on = /app/media/mute-on.wav

mute_off = /app/media/mute-off.wav

menu = /app/media/menu.wav

การตั้งค่าหลัก ๆ จะมี 3 ส่วน ที่เป็นตัวหนาด้านบนครับ

[sip]  => เป็นการกรอกข้อมูล Sip server และ  username/password
[mumble] => เป็นการกรอกข้อมูล Mumble server, Channel name และ  username/password
[app] => เป็นการกำหนด PIN ในการ  Join ใน Channal ที่กำหนดไว้

ทำการรัน mumsi ขึ้นมาโดยใช้คำสั่ง
docker compose up -d

เพื่อสั่งให้ container ทำงาน หลังจากนั้นเราก็ทดสอบโทร ระหว่าง SIP softphone กับ Talkkonnect หรือ วิทยุ ที่ Join อยู่ใน Channel นั้น

วิดีโอ สาธิตทดสอบ การสื่อสารระหว่าง SIP softphone กับ Talkkonnect และ วิทยุ VHF

Written by admin

Leave a Reply

Your email address will not be published. Required fields are marked *