--- title: Lab Meeting Minutes 2022/10/04 tags: lab_meeting --- > Outline > [TOC] --- # PERAL Lab Meeting - 時間:111 年 10 月 04 日 08:00 - 地點:科三 321 - 出席者:吳坤熹老師、謝萬霖、吳騰然、劉怡君、田蕙瑜、洪胤勛、丘世宇、莊才賢、紀見如、劉冠伶、林大智、繆亭霄 - 會議主題:[PJSIP](https://docs.google.com/presentation/d/16I7QWuYJBSYazMe9JfbGhvnsY9BPnwXroztymSisxOo/edit?fbclid=IwAR3zhAdsuQpTqbUvFuLCVwOR0ipdT7n1g08ylUHljD96iSpQA1phv1I4ddQ#slide=id.p) - 主講者: 丘世宇 - 主記: 劉怡君 ## 會議內容 - SIP - 對話啟動協定 ( Session Initiation Protocol ) - 用以傳送影音通信的控制訊號,例如建立、修改或終止 - SIP message - request - REGISTER, INVITE, CANCEL… - response - 180 Ringing, 200 OK, 404 Not Found… - SIP Header - Via - request 走過的路 - 如果經過好幾個 proxies 那這裡就會有多個 Via - 前面有 SIP 版本跟傳輸方式 - From - request 的發起者 - To - request 的接收者 - PJSIP - Open Source SIP Library - Support C++, Java, Python, C# - Callback Function - 簡單講就是把 function 當作一個參數傳進另一個 function - 通訊流程 - ![name=Phoebe61G](https://i.imgur.com/79FmVV2.png) - Account - 代表誰正在用這支程式 - 用在送出去的 request 的 From - ex : make_call() - AccountCallback - 將此 class 傳入一個自訂 class,就可以將自訂 class 作為 Account 的 callback function - 用以接收 Account 的各種 event - ex : on_incoming_call() ### 建議&問題 1. 記得加頁碼 [name=Angela] 2. p.3 Proxies 是什麼? [name=Jennifer] Ans: 兩個 UA 之間傳遞封包的中繼站。 3. p.6 流程圖 Hang out 之後為什麼要再拉回去? [name=Ashely] Ans: 一般來說這支程式會一直跑,隨時準備進行通話。 4. p.9 DTMF Ans: Dual-Tone Multi-Frequency, DTMF 5. Callback function 的用意?[name=Lawrence] Ans: 當使用 DTMF 時會需要(?),可以根據不同的使用情況自己去撰寫。 6. p.11 藍色是 call-back function? [name=August] Ans: 不是,這張流程圖不能直接對照程式流程。 7. p.11 Create Account 的內容? [name=Branko] Ans: 9. p.5 PJSIP callback 是怎麼處理 rtp 封包的?它會幫你處理 audio device 到 pcap 的過程嗎?它會自動處理 SDP 內 codec 的協商嗎? ? [name=Jerry] Ans: 可以不用,也可以指定。 10. 自定 Class? 像是 MyCallback? [name=Angela] Ans: 自定 Class。 12. 這支程式是跑在 UA 上還是 SIP Server? [name=Phoebe] Ans: UA,這個實作沒有使用到 SIP Server。可以直接以 IP address 做 URI 進行通話。 13. PJSIP 有沒有支援 IPv6? [name=Toby] Ans: 有。 14. 如何介接C、Python? [name=Edgar] Ans: 安裝的時候已經內建,沒有額外處理。 ## 待追蹤事項 1. [name=] ## 臨時動議 --- 散會結束時間:
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up