Sip session

Version 20 (Adrian Georgescu, 03/31/2009 03:03 pm)

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