Basic SIP Calls _____________________________________________ Luca Veltri 6/11/2007 (luca.veltri@unipr.it) Strumenti --------------------------------------------------------------- - VM Java (JDK1.3 o successiva) - SIP UA (mjUA) http://www.mjsip.org/download/mjua_1.7_beta071105.zip - SIP Proxy (mjProxy) http://www.mjsip.org/download/mjproxy_1.7_beta071105.zip Sommario --------------------------------------------------------------- 1) Direct call: UA1-->UA2 2) Registration (with/without authentication): UA-reg->Registrar 3) Call through Destination Proxy (Registrar+Proxy): UA2-reg->Registrar , UA1-->Registrar/Proxy-->UA2 4) Call through Destination Proxy on-route: UA2-reg->Registrar , UA1-->Registrar/Proxy-->UA2 5) Call through Destination Redirect (Registrar+Redirect): UA2-reg->Registrar , UA1-->Registrar/Redirect-->UA2 6) Forking calls at the Destination Proxy: UA21-reg->Registrar , UA22-reg->Registrar , UA1-->Registrar/Proxy-->UA21 7) Call through Outbound Proxy and Destination Proxy on-route: UA2-reg->Registrar , UA1-->Proxy-->Registrar/Proxy-->UA2 8) UAs and servers on different hosts 9) Server registrations: UA1-->S2n-->..-->S22-->S21-->UA2 Basic Calls --------------------------------------------------------------- 1) Direct call: UA1-->UA2 # caller UA (UA1) uac -f config\a.cfg # callee UA (UA2) uac -f config\b.cfg # tests: # UA2 accepts the call # UA2 refuses the call # UA1 cncels the call # caller UA (UA1) with automatic dialing uac -f config\a.cfg -c 127.0.0.8:5080 # callee UA (UA2) with automaitc answer (example, after 2secs) uac -f config\b.cfg -y 2 # graphical UA uaw -f config\a.cfg 2) Registration (with/without authentication): UA-reg->Registrar # registrar + stateless proxy proxy # registering UA (for 30min) uac -f config\a.cfg -g 1800 # tests: # Registrar does not require digest authentication ('do_authentication=no' in server.cfg) # Registrar does require digest authentication ('do_authentication=yes' in server.cfg) 3) Call through Destination Proxy (Registrar+Proxy): UA2-reg->Registrar , UA1-->Registrar/Proxy-->UA2 # registrar + stateless proxy proxy # callee UA (UA2) registered uac -f config\b.cfg -g 1800 -y 0 # caller UA (UA1) with automatic dialing uac -f config\a.cfg -c bob@127.0.0.8 # registrar + statefull proxy sproxy 4) Call through Destination Proxy on-route: UA2-reg->Registrar , UA1-->Registrar/Proxy-->UA2 # set on-route parameter in server.cfg # then, repeat steps of (2) 5) Call through Destination Redirect (Registrar+Redirect): UA2-reg->Registrar , UA1-->Registrar/Redirect-->UA2 # use redirect instead of proxy redirect 6) Forking calls at the Destination Proxy: UA21-reg->Registrar , UA22-reg->Registrar , UA1-->Registrar/Proxy-->UA21 # register two UAs (UA21 and UA22) on S2 with the same AOR (i.e. the From URL) uac -f config\b.cfg -g 1800 uac -f config\b2.cfg -g 1800 # caller UA (UA1) uac -f config\a.cfg -c bob@127.0.0.8 # try with both Proxy (proxy) and StatefulProxy (sproxy) 7) Call through Outbound Proxy and Destination Proxy on-route: UA2-reg->Registrar , UA1-->Proxy-->Registrar/Proxy-->UA2 # set outbound_proxy parameter in a.cfg # then, repeat steps of (2) # try with both Proxy (proxy) and StatefulProxy (sproxy) 8) UAs and servers on different hosts # the same as (6) but with UAs and proxies on different hosts; example: UA1 and S1 on host1 and UA2 and S2 on host2 9) Server registrations: UA2-reg->S21 , [S2(k-1)-reg->S2k ,] UA1-->S2n-->..-->S22-->S21-->UA2 # starts two or more servers (Registrar/Proxy), e.g. S21 and S22 # register UA2 with S21 as in (2) # create a new s21.cfg UA configuration file in order to register S21 with S22, using uac -f config/s21.cfg # optionally create a new s22.cfg UA configuration file in order to register S22 with S23, etc. # then make a call as in (2)