Sip session

Version 23 (Adrian Georgescu, 04/14/2009 09:56 am)

1 2 Adrian Georgescu
== sip_session ==
2 1 Adrian Georgescu
3 2 Adrian Georgescu
[[TOC(SipTesting*, sip_*, depth=2)]]
4 2 Adrian Georgescu
5 4 Adrian Georgescu
=== Description ===
6 5 Adrian Georgescu
7 23 Adrian Georgescu
This script can be used to establish SIP sessions with more than one media type. One can add and remove RTP audio and MSRP chat to the same SIP session using re-INVITE.
8 5 Adrian Georgescu
9 6 Adrian Georgescu
[[Image(http://www.tech-invite.com/img/cf3665/cf3665-37.gif)]]
10 6 Adrian Georgescu
11 1 Adrian Georgescu
{{{
12 15 Adrian Georgescu
adigeo@ag-imac3:~$sip_session -h
13 15 Adrian Georgescu
Usage: sip_session [options] [target-user@target-domain.com] [audio|chat]
14 1 Adrian Georgescu
15 15 Adrian Georgescu
This script will either sit idle waiting for an incoming session, or start a
16 15 Adrian Georgescu
new session with the specified target SIP address. The program will close the
17 15 Adrian Georgescu
session and quit when CTRL-D is pressed. This scripts supports RTP audio and
18 15 Adrian Georgescu
MSRP chat sessions.
19 1 Adrian Georgescu
20 1 Adrian Georgescu
Options:
21 1 Adrian Georgescu
  -h, --help            show this help message and exit
22 15 Adrian Georgescu
  -a ACCOUNT_NAME, --account-name=ACCOUNT_NAME
23 15 Adrian Georgescu
                        The name of the account to use.
24 15 Adrian Georgescu
  --no-register         Bypass registration.
25 15 Adrian Georgescu
  -c FILE, --config_file=FILE
26 3 Adrian Georgescu
                        The path to a configuration file to use. This
27 3 Adrian Georgescu
                        overrides the default location of the configuration
28 3 Adrian Georgescu
                        file.
29 3 Adrian Georgescu
  -S, --disable-sound   Disables initializing the sound card.
30 1 Adrian Georgescu
  -s, --trace-sip       Dump the raw contents of incoming and outgoing SIP
31 1 Adrian Georgescu
                        messages.
32 1 Adrian Georgescu
  -j, --trace-pjsip     Print PJSIP logging output.
33 1 Adrian Georgescu
  --trace-engine        Print core's events.
34 3 Adrian Georgescu
  -m, --trace-msrp      Log the raw contents of incoming and outgoing MSRP
35 3 Adrian Georgescu
                        messages.
36 3 Adrian Georgescu
  --no-relay            Don't use the MSRP relay.
37 3 Adrian Georgescu
  --msrp-tcp            Use TCP for MSRP connections.
38 4 Adrian Georgescu
}}}
39 4 Adrian Georgescu
40 11 Adrian Georgescu
=== Available commands  ===
41 11 Adrian Georgescu
42 11 Adrian Georgescu
{{{
43 11 Adrian Georgescu
adigeo@ag-imac3:~/work/python-sipsimple$sip_session 
44 11 Adrian Georgescu
Using account 31208005169@ag-projects.com
45 11 Adrian Georgescu
Type :help to get information about commands and shortcuts
46 11 Adrian Georgescu
Waiting for incoming SIP session requests...
47 11 Adrian Georgescu
Registering "Adrian G." <sip:31208005169@ag-projects.com> at 81.23.228.129:5060
48 11 Adrian Georgescu
Registered SIP contact address: sip:mdbwqhek@192.168.1.6:61453 (expires in 600 seconds)
49 11 Adrian Georgescu
31208005169@ag-projects.com> :help
50 11 Adrian Georgescu
:add audio|chat             Add a new stream to the current session.
51 11 Adrian Georgescu
:call URI [audio|chat]      Make an outgoing call. By default, use audio+chat
52 11 Adrian Georgescu
:dtmf DIGITS                Send DTMF digits. Also try CTRL-SPACE for virtual numpad
53 11 Adrian Georgescu
:help                       Print this help message
54 11 Adrian Georgescu
:hold                       Put the current session on hold
55 11 Adrian Georgescu
:remove audio|chat          Remove the stream from the current session
56 11 Adrian Georgescu
:switch  (or CTRL-N)        Switch between active sessions
57 11 Adrian Georgescu
:unhold                     Un-hold the current session
58 11 Adrian Georgescu
}}}
59 11 Adrian Georgescu
60 4 Adrian Georgescu
61 8 Adrian Georgescu
=== Example of audio only session ===
62 4 Adrian Georgescu
63 4 Adrian Georgescu
{{{
64 4 Adrian Georgescu
adigeo@ag-imac3:~$sip_session   
65 4 Adrian Georgescu
Using account 31208005169@ag-projects.com
66 4 Adrian Georgescu
Press Ctrl-d to quit or Control-n to switch between active sessions
67 4 Adrian Georgescu
Waiting for incoming SIP session requests...
68 4 Adrian Georgescu
Registering "Adrian G." <sip:31208005169@ag-projects.com> at 81.23.228.150:5060
69 4 Adrian Georgescu
Registered SIP contact address: sip:hctoyfvx@192.168.1.6:61277 (expires in 600 seconds)
70 4 Adrian Georgescu
Incoming Audio request from "Adrian G." <sip:31208005169@ag-projects.com>, do you accept? (y/n) y
71 4 Adrian Georgescu
Connecting SIP session to "Adrian G." <sip:31208005169@ag-projects.com>
72 4 Adrian Georgescu
Session established, using "speex" codec at 32000Hz
73 4 Adrian Georgescu
Audio RTP endpoints 192.168.1.6:50018 <-> 81.23.228.150:58260
74 4 Adrian Georgescu
Remote SIP User Agent is "sip2sip-0.9.0-pjsip-1.0.2-trunk-r2553"
75 4 Adrian Georgescu
Detected NAT type: Port Restricted
76 4 Adrian Georgescu
Audio to Adrian G. (31208005169@ag-projects.com): 
77 1 Adrian Georgescu
78 8 Adrian Georgescu
}}}
79 8 Adrian Georgescu
80 8 Adrian Georgescu
81 8 Adrian Georgescu
=== Example of chat only session ===
82 8 Adrian Georgescu
83 8 Adrian Georgescu
{{{
84 8 Adrian Georgescu
adigeo@ag-imac3:~$sip_session room1@chatserver.ag-projects.com
85 8 Adrian Georgescu
Using account 31208005169@ag-projects.com
86 8 Adrian Georgescu
Press Ctrl-d to quit or Control-n to switch between active sessions
87 8 Adrian Georgescu
Registering "Adrian G." <sip:31208005169@ag-projects.com> at 85.17.186.7:5060
88 10 Adrian Georgescu
Initiating SIP session from "Adrian G." <sip:31208005169@ag-projects.com> 
89 10 Adrian Georgescu
to sip:room1@chatserver.ag-projects.com via udp:81.23.228.146:6060 ...
90 8 Adrian Georgescu
Registered SIP contact address: sip:lpgdqwes@192.168.1.6:61392 (expires in 600 seconds)
91 8 Adrian Georgescu
Connecting SIP session to sip:room1@chatserver.ag-projects.com
92 8 Adrian Georgescu
Remote SIP User Agent is "sip-chatserver-0.9.1"
93 8 Adrian Georgescu
10:38:55 room1@chatserver.ag-projects.com: Welcome to the room, Adrian G.. You are the only participant in the room
94 8 Adrian Georgescu
Chat to room1@chatserver.ag-projects.com: 
95 8 Adrian Georgescu
}}}
96 8 Adrian Georgescu
97 22 Adrian Georgescu
=== DTMF interaction ===
98 16 Adrian Georgescu
99 16 Adrian Georgescu
{{{
100 16 Adrian Georgescu
adigeo@ag-imac3:~$sip_session 61@ag-projects.com
101 16 Adrian Georgescu
Using account 31208005169@ag-projects.com
102 16 Adrian Georgescu
Type :help to get information about commands and shortcuts
103 16 Adrian Georgescu
Registering "Adrian G." <sip:31208005169@ag-projects.com> at 81.23.228.150:5060
104 16 Adrian Georgescu
Registered SIP contact address: sip:ijpmwqbg@192.168.1.6:56320 (expires in 600 seconds)
105 16 Adrian Georgescu
Initiating SIP session from "Adrian G." <sip:31208005169@ag-projects.com> to sip:61@ag-projects.com via udp:81.23.228.150:5060 ...
106 16 Adrian Georgescu
Connecting SIP session to sip:61@ag-projects.com (Ok)
107 16 Adrian Georgescu
Session established, using "GSM" codec at 8000Hz
108 16 Adrian Georgescu
Audio RTP endpoints 192.168.1.6:50250 <-> 81.23.228.150:51318
109 16 Adrian Georgescu
Remote SIP User Agent is "pbxnsip-PBX/3.0.0.2896"
110 16 Adrian Georgescu
+------+-----+------+
111 16 Adrian Georgescu
|  1   |  2  |  3   |
112 16 Adrian Georgescu
|      | ABC | DEF  |
113 16 Adrian Georgescu
+------+-----+------+
114 16 Adrian Georgescu
|  4   |  5  |  6   |
115 16 Adrian Georgescu
| GHI  | JKL | MNO  |
116 16 Adrian Georgescu
+------+-----+------+
117 16 Adrian Georgescu
|  7   |  8  |  9   |
118 16 Adrian Georgescu
| PQRS | TUV | WXYZ |
119 16 Adrian Georgescu
+------+-----+------+
120 16 Adrian Georgescu
|  *   |  0  |  #   |
121 16 Adrian Georgescu
+-------------------+
122 16 Adrian Georgescu
Detected NAT type: Port Restricted
123 16 Adrian Georgescu
> 0000#
124 16 Adrian Georgescu
Disconnecting SIP session to sip:61@ag-projects.com
125 16 Adrian Georgescu
Disconnected SIP session to sip:61@ag-projects.com (Ok)
126 16 Adrian Georgescu
Session ended by local party.
127 16 Adrian Georgescu
Session duration was 13 seconds.
128 16 Adrian Georgescu
31208005169@ag-projects.com> 
129 16 Adrian Georgescu
}}}
130 16 Adrian Georgescu
131 16 Adrian Georgescu
132 20 Adrian Georgescu
See [wiki:sip_trace_msrp_rtp] for a sample SIP trace captured with this command line tool.