Project

General

Profile

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
}}}