802.16 IP Telephony Lab會議紀錄 時間:96年3月26日19:00 地點:暨南大學科四館418教室 主講人:林穎舜 紀錄:陳柏州 出席者:吳坤熹老師、林穎舜、王彥翔、吳菖育、張文萍、張兢真、王鐘逸、陳柏州、吳瑞益 會議主題:SIP library(林穎舜) 會議內容: 一. SIP library 1.Introduction 1.1.osip2 1.2.eXosip2 2.eXosip function 3.Example 3.1.sipproxy.c 3.2.regtest.c 3.3.invite.c 問題討論: 一. SIP library Q1. 定題目要切合內容,用eXosip會好一點。 (老師建議) Q2. eXosip2建構在osip2上,把一些method的動作簡單化, 寫程式上會簡單許多。 (穎舜補充) Q3. osip2->SIP proxy,eXosip2->clients or servers,為什麼有差別? (老師發問) Ans:以功能性來看,osip2提供SIP較細節的定義,包括每個封包欄位的資訊 而eXosip2只提供對siginaling做處理,例如要產生一個INVITE的訊號, 需要給定宣告一訊息的類型和一些message header與body的數值,這部 份就是由osip2來宣告及定義的! 也能將osip2看成是eXosip底層的一個架構工具,所以在安裝exosip2時 也會要求要安裝osip2. (穎舜回答) Q4. eXosip2不能寫出SIP proxy? (老師發問) Ans:eXosip2其實就是eXtended osip Library的意思在使用上也能呼叫 osip2所提供的函數,如果所要發展的功能,能以eXosip2提供的函數 來完成,一樣可以使用. (穎舜回答) Q5. eXosip_event_wait(int tv_s,int tv_ms)為什麼有兩個時間參數? (老師發問) Ans:手冊上並沒有特別說明,但測試過 eXosip_event_wait(0,10000)=eXosip_event_wait(10,0) eXosip_event_wait(10,10000)=eXosip_event_wait(0,10000) 2倍的時間. (穎舜回答) Q6. eXosip_lock() 做了什麼動作? (老師發問) Ans:手冊上並沒有詳細記載,不過發現documentation上範例所使用到的 時機都是會產生一個唯一數值的函數之前使用,例如發送一個INVITE (有唯一的SID,CALL_ID) (穎舜回答) Q7. serctl ul show "USERNAME" 可以秀出單一使用者。 (老師補充) Q8. 什麼時候會出現 failed,terminate ? (老師發問) Ans:當程式指定到一個struct中的某個欄位讀取資料時,如果程式運作過 程中沒值傳進希望獲取資料的位址,就會發生程式記憶體區段錯誤 (穎舜回答) Q9. eXosip_register_build_initial_register與 eXosip_register_build_register的用法差別? (老師發問) Ans:eXosip_register_build_initial_register會產生一個rid (A unique identifier for the registration context),而rid是 eXosip_register_build_register() 的第一變數所要填的變數,也 就是所如果一開始就使用eXosip_register_build_register()來向 proxy註冊,第一個變數就沒有rid的資訊可以代入.使用上是以 eXosip_register_build_initial_register()來得到一個rid,之後的 update就以eXosip_register_build_register()來做. (穎舜回答) Q10.SDP的內容,要自已產生? (彥翔發問) Ans:osip2並沒有產生的function. (穎舜回答) Q11.善用vi的mark指令,可以快速跳到指定的位置,增加效率. (老師補充) Q12.在vi打"?}"可以找到下一個},在(要找相對應的)按"%"可以找到。 (老師補充) Q13.在報告一個OPEN SOURCE軟體時,要講解如何下載、安裝、編譯。 (老師補充) 臨時動議︰ 1.以後會議改為1次1個人報告。 散會︰ 結束時間︰21:25