1 SIP Call Flow Speaker: Hz-Ping Huang; Huan-Yao Kang Date:
Outline Observation of Call Flow SIP Registration SIP Call 2
OBSERVATION OF CALL FLOW 3
SIP Registration Registration Registration Update Contact List Request Un-Registration Unsuccessful Registration 4
SIP Call Call Establishment Through Two Proxy No Answer Busy No Response Temporarily 5
SIP REGISTRATION 6
Registration 正常執行 SER, 開啟 Ethereal, 接著開啟舊版 X-Lite( 假設 已經設定完成 ) 就可以擷取到註冊封包, 如下圖 : 7 UA SIP Server REGISTER 401 Unauthorized REGISTER 200 OK 0 Bindings 1 Bindings
Bindings O Bindings 代表不帶 Contact header 的封包。 1 Bindings 代表帶 Contact header 的封包。 Un-Register 0 bindings no contact Register 1 bindings contact
Registration Update (1/3) 在正常 X-Lite and SER 已開啟情形下: 每隔180 sec 會重新要求REGISTER一次
Registration Update (2/3) UA SIP Server REGISTER 401 Unauthorized REGISTER 200 OK 0 Bindings 1 Bindings 180 sec ......
SIP Registration(3/3) 這個部分我們使用 X-Lite and SER, 直接 擷取封包 請更改 X-Lite 的 Advanced System Settings / SIP Settings, 設定 Reregister Proxy = 180
Contact List Request (1/2) 進入 System settings/ SIP Proxy/Default 設定 Display Name : 2000 Username : 2000 Authorization User:2000 Password : 2000
Contact List Request (2/2) UA SIP Server REGISTER 401 Unauthorized REGISTER 200 OK 0 Bindings 1 Bindings
Un-Registration(1/2) 關閉 X-Lite, 可擷取到解除註冊的封包
Un-Registration(2/2) UA SIP Server REGISTER 401 Unauthorized REGISTER 200 OK 0 Bindings Un-Register 0 bindings no contact Register 1 bindings contact
Difference Contact List Request( 轉換 Number 使用 ) 新版 X-Lite 有做下線的動作 (Expires=0) 舊版 X-Lite 沒有下線的動作,直接要求註冊 Un-Registration( 關閉 X-Lite) 新版 X-Lite 只需做兩個動作 ( 封包有夾帶認證資訊 ) 舊版 X-Lite 需要做四個動作 ( 沒有夾帶認證資訊,所以需重覆夾帶 一次 )
Unsuccessful Registration(1/2) 把 X-Lite 向 SIP server 註冊 的帳號及密碼故意填錯, 可 以擷取到註冊失敗的封包。 每20秒會傳送一次 (default=20) 進入 System settings/ SIP Proxy/Default 設定(隨便填) Display Name Username Authorization User Password
Unsuccessful Registration(2/2) UA REGISTER 401 Unauthorized REGISTER 0 Bindings SIP Server 401 Unauthorized
SIP CALL 19
Architecture SIP Server : /1000pwd 2000/2000pwd
REGISTER – X-LITE X-lite SIP Proxy 401:Unauthorized 200 OK Request: REGISTER
Register Unsuccessful X-lite SIP Proxy Request: REGISTER 401:Unauthorized Request: REGISTER 401:Unauthorized Request: REGISTER 401:Unauthorized
Unregister X-lite SIP Proxy 200 OK Request: REGISTER
Register – SJPHONE X-lite SIP Proxy Request: REGISTER 401:Unauthorized 200 OK Request: REGISTER
X-LITE CALL SJPHONE Call Establishment X-LITESIP PROXYSJPHONE INVITE 100 trying 200 OK ACK INVITE 180 Ring
X-LITE HANG UP X-LITESIP PROXYSJPHONE BYE 200 OK
X-LITE CALL SJPHONE No Answer X-LITESIP PROXYSJPHONE INVITE 100 trying INVITE Ring
X-LITE CALL SJPHONE No Answer (New SJphone call Old X-lite) SJPHONESIP PROXYX-LITE INVITE 100 trying INVITE 180 Ring INVITE 180 Ring SJPHONESIP PROXYX-LITE 408 Request timeout CANCEL ACK 487 Request Term. 200 OK ACK
X-LITE CALL SJPHONE Ignore INVITE 100 trying INVITE 100 trying 486 Busy ACK 486 Busy ACK X-LITESIP PROXYSJPHONE 180 Ring
X-LITE CALL SJPHONE Cancel INVITE 100 trying INVITE X-LITESIP PROXYSJPHONE 100 trying CANCEL 200 canceling 200 OK 487 Request term. ACK 487 ACK 180 Ring
X-LITE CALL SJPHONE No Responsible INVITE 100 trying INVITE X-LITESIP PROXYSJPHONE 408 Request timeout ACK
X-LITE CALL SJPHONE Temporarily Unavailable INVITE 404 not found X-LITESIP PROXYSJPHONE
SIP CALL THROUGH 2 PROXIES PROXY 5060 PROXY REGISTER 2000 (PORT=5060)1000 (PORT=50600)
CONFIGURE Configure a new ser.cfg cp /usr/local/etc/ser/ser.cfg \ /usr/local/etc/ser/ser1.cfg; Edit /usr/local/etc/ser/ser1.cfg; Find “!lookup(“location”) Add a new line with the content rewritehostport(“ : ”); Comment the next 2 lines. Save and exit your text editor.
CONFIGURE (cont.) Execute the ser with default conf. file. ser Execute the ser with modified conf. file. ser –f ; Check your ser proxies is in running & listening. ps aux |grep ser; netstat –ntdl;
SJPHONEPROXY 5061PROXY 5060X-LITE SJPHONE CALL X-LITE INVITE 100 TRYING INVITE 100 TRYING 180 RINGING 200 OK INVITE 180 RINGING 200 OK