Sip session » History » Version 41
Adrian Georgescu, 09/20/2011 12:07 PM
| 1 | 34 | Adrian Georgescu | == sip-session == |
|---|---|---|---|
| 2 | 1 | Adrian Georgescu | |
| 3 | 36 | Adrian Georgescu | [[TOC(SipTesting*, sip_*, xcap_*, depth=2)]] |
| 4 | 2 | Adrian Georgescu | |
| 5 | 41 | Adrian Georgescu | > This script is available in ''sipclients'' package that must be installed separately from SIP SIMPLE client SDK package. |
| 6 | 35 | Adrian Georgescu | |
| 7 | 4 | Adrian Georgescu | === Description === |
| 8 | 5 | Adrian Georgescu | |
| 9 | 34 | Adrian Georgescu | '''sip-session''' command line script is a show-case for the powerful features of SIP SIMPLE development kit related to establishing, modifying and terminating SIP sessions with multiple media types like VoIP, Instant Messaging and File Transfer. |
| 10 | 28 | Adrian Georgescu | |
| 11 | 31 | Adrian Georgescu | The script has the following features: |
| 12 | 1 | Adrian Georgescu | |
| 13 | 1. Registers with a SIP registrar and is available for incoming sessions |
||
| 14 | 1. Switches between multiple sessions and provides in-call controls like Hold and Mute |
||
| 15 | 32 | Adrian Georgescu | 1. Handles outgoing SIP sessions with combinations of media types based on RTP and MSRP protocols |
| 16 | 1. Performs NAT traversal using ICE and MSRP relay extension |
||
| 17 | 31 | Adrian Georgescu | 1. Provides control for the input, output and alert audio devices |
| 18 | 1. Records the RTP audio streams (input, output or combined) |
||
| 19 | 41 | Adrian Georgescu | 1. Performs blind Call Transfer |
| 20 | 40 | Adrian Georgescu | 1. Adds and removes participants to a conference |
| 21 | 31 | Adrian Georgescu | 1. Enable text input and output for Instant Messaging sessions |
| 22 | 1. Provides File Transfer capability with progress indicator |
||
| 23 | 1. Gives access to real-time traces of involved protocols (DNS, SIP and MSRP) |
||
| 24 | |||
| 25 | |||
| 26 | 27 | Adrian Georgescu | === Example === |
| 27 | |||
| 28 | {{{ |
||
| 29 | 34 | Adrian Georgescu | adigeo@ag-imac3:~$sip-session |
| 30 | 31 | Adrian Georgescu | Using account adi@umts.ro |
| 31 | 1 | Adrian Georgescu | adi@umts.ro> /help |
| 32 | 40 | Adrian Georgescu | |
| 33 | 1 | Adrian Georgescu | General commands: |
| 34 | 40 | Adrian Georgescu | /call {user[@domain]}: call the specified user using audio and chat |
| 35 | /audio {user[@domain]} [+chat]: call the specified user using audio and possibly chat |
||
| 36 | /chat {user[@domain]} [+audio]: call the specified user using chat and possibly audio |
||
| 37 | /send {user[@domain]} {file}: initiate a file transfer with the specified user |
||
| 38 | /next: select the next connected session |
||
| 39 | /prev: select the previous connected session |
||
| 40 | /sessions: show the list of connected sessions |
||
| 41 | /trace [[+|-]sip] [[+|-]msrp] [[+|-]pjsip] [[+|-]notifications]: toggle/set tracing on the console (ctrl-x s | ctrl-x m | ctrl-x j | ctrl-x n) |
||
| 42 | /rtp [on|off]: toggle/set printing RTP statistics and ICE negotiation results on the console (ctrl-x p) |
||
| 43 | /mute [on|off]: mute the microphone (ctrl-x u) |
||
| 44 | /input [device]: change audio input device (ctrl-x i) |
||
| 45 | /output [device]: change audio output device (ctrl-x o) |
||
| 46 | /alert [device]: change audio alert device (ctrl-x a) |
||
| 47 | /echo [+|-][value]: adjust echo cancellation (ctrl-x < | ctrl-x >) |
||
| 48 | /quit: quit the program (ctrl-x q) |
||
| 49 | /help: display this help message (ctrl-x ?) |
||
| 50 | |||
| 51 | 27 | Adrian Georgescu | In call commands: |
| 52 | 40 | Adrian Georgescu | /hangup: hang-up the active session (ctrl-x h) |
| 53 | /dtmf {0-9|*|#|A-D}...: send DTMF tones (ctrl-x 0-9|*|#|A-D) |
||
| 54 | /record [on|off]: toggle/set audio recording (ctrl-x r) |
||
| 55 | /hold [on|off]: hold/unhold (ctrl-x SPACE) |
||
| 56 | /add {chat|audio}: add a stream to the current session |
||
| 57 | /remove {chat|audio}: remove a stream from the current session |
||
| 58 | /add_participant {user@domain}: add the specified user to the conference |
||
| 59 | /remove_participant {user@domain}: remove the specified user from the conference |
||
| 60 | /transfer {user@domain}: transfer (using blind transfer) callee to the specified destination |
||
| 61 | |||
| 62 | 31 | Adrian Georgescu | Available audio input devices: None, system_default, Built-in Input, Built-in Microphone |
| 63 | Available audio output devices: None, system_default, Built-in Output |
||
| 64 | 37 | Adrian Georgescu | Using audio input device: Built-in Microphone (system default device) |
| 65 | 31 | Adrian Georgescu | Using audio output device: Built-in Output (system default device) |
| 66 | Using audio alert device: Built-in Output |
||
| 67 | 27 | Adrian Georgescu | Type /help to see a list of available commands. |
| 68 | 31 | Adrian Georgescu | 2009-10-29 22:42:14 Registered contact "sip:puioxbqy@192.168.1.124:50150" (expires in 600 seconds). |
| 69 | 1 | Adrian Georgescu | Other registered contacts: |
| 70 | 38 | Adrian Georgescu | sip:jiozqyud@192.168.1.124:49569 (expires in 423 seconds) |
| 71 | Detected NAT type: Port Restricted |
||
| 72 | adi@umts.ro> |
||
| 73 | }}} |
||
| 74 | |||
| 75 | ICE connectivity checks results: |
||
| 76 | |||
| 77 | {{{ |
||
| 78 | adi@umts.ro> /rtp |
||
| 79 | Output of RTP statistics and ICE negotiation results on console is now activated |
||
| 80 | adi@umts.ro> /audio ag@sip2sip.info |
||
| 81 | Initiating SIP session from 'sip:adi@umts.ro' to 'sip:ag@sip2sip.info' via sip:81.23.228.150:5060;transport=udp... |
||
| 82 | |||
| 83 | ICE negotiation succeeded in 0s:644 |
||
| 84 | |||
| 85 | Local ICE candidates: |
||
| 86 | (RTP) 95.97.50.27:55656 type srflx |
||
| 87 | (RTP) 192.168.1.122:55656 type host |
||
| 88 | (RTP) 10.211.55.2:55656 type host |
||
| 89 | (RTP) 10.37.129.2:55656 type host |
||
| 90 | 39 | Adrian Georgescu | (RTCP) 95.97.50.27:55890 type srflx |
| 91 | 38 | Adrian Georgescu | (RTCP) 192.168.1.122:55890 type host |
| 92 | (RTCP) 10.211.55.2:55890 type host |
||
| 93 | (RTCP) 10.37.129.2:55890 type host |
||
| 94 | (RTP) 81.23.228.150:51782 type prflx |
||
| 95 | (RTCP) 81.23.228.150:51783 type prflx |
||
| 96 | |||
| 97 | Remote ICE candidates: |
||
| 98 | (RTP) 81.23.228.150:51780 type relay |
||
| 99 | (RTCP) 81.23.228.150:51781 type relay |
||
| 100 | (RTP) 95.97.50.27:55876 type srflx |
||
| 101 | (RTP) 192.168.1.122:55876 type host |
||
| 102 | (RTP) 10.211.55.2:55876 type host |
||
| 103 | (RTP) 10.37.129.2:55876 type host |
||
| 104 | (RTCP) 95.97.50.27:54037 type srflx |
||
| 105 | (RTCP) 192.168.1.122:54037 type host |
||
| 106 | (RTCP) 10.211.55.2:54037 type host |
||
| 107 | (RTCP) 10.37.129.2:54037 type host |
||
| 108 | |||
| 109 | ICE connectivity check results: |
||
| 110 | (RTP) 192.168.1.122:55656 <--> 192.168.1.122:55876 Succeeded |
||
| 111 | (RTP) 10.211.55.2:55656 <--> 10.211.55.2:55876 Succeeded |
||
| 112 | (RTP) 10.37.129.2:55656 <--> 10.37.129.2:55876 Succeeded |
||
| 113 | (RTCP) 192.168.1.122:55890 <--> 192.168.1.122:54037 Succeeded |
||
| 114 | (RTCP) 10.211.55.2:55890 <--> 10.211.55.2:54037 Succeeded |
||
| 115 | (RTCP) 10.37.129.2:55890 <--> 10.37.129.2:54037 Succeeded |
||
| 116 | (RTP) 95.97.50.27:55656 <--> 95.97.50.27:55876 Succeeded |
||
| 117 | (RTCP) 95.97.50.27:55890 <--> 95.97.50.27:54037 Succeeded |
||
| 118 | (RTP) 81.23.228.150:51782 <--> 81.23.228.150:51780 Succeeded |
||
| 119 | (RTCP) 81.23.228.150:51783 <--> 81.23.228.150:51781 Succeeded |
||
| 120 | 1 | Adrian Georgescu | |
| 121 | Audio session established using "G722" codec at 16000Hz |
||
| 122 | Audio RTP endpoints 192.168.1.122:55656 (ICE type host) <-> 192.168.1.122:55876 (ICE type host) |
||
| 123 | }}} |