今天,來談一下pjsip 模塊框架(module framework)。弄清楚這個概念,就可以輕鬆地分析pjsip的sip消息的分發處理。
概念:
PJSIP模塊框架的概念非常重要,負責在各組件之間分發sip消息。
對於接收或發送的sip消息,pjsip_endpoint根據優先級由高到低,依次分發消息到各module進行處理。
優先級的說明:
優先級的數值越小,
對應module的on_rx_request() 和 on_rx_response(),即接收消息時,優先級越高,
on_tx_request()和 on_tx_response(),即發送消息時,優先級越低;
反之,
對應module的on_rx_request() 和 on_rx_response(),即接收消息時,優先級越低,
on_tx_request()和 on_tx_response(),即發送消息時,優先級越高。
modules:
“mod-msg-print” 在pjsua_create()的pjsip_tpmgr_create()中註冊。
pjsua_init()函數對其他的module進行註冊。
如果需要進行新增自定義的module,可以在pjsua_init()函數中進行註冊。
接下來,我將分析UAC端sip的幾個基本方法,register、invite、ack、cancel、bye的處理流程。