Project

General

Profile

Sip audio session » History » Version 11

Adrian Georgescu, 03/30/2009 12:46 PM

1 1 Adrian Georgescu
== sip_audio_session ==
2 2 Adrian Georgescu
[[TOC(SipTesting*, sip_*, xcap*,depth=2)]]
3 1 Adrian Georgescu
4 3 Adrian Georgescu
To use this script you must to have a valid [wiki:SipSettingsAPI configuration].
5 1 Adrian Georgescu
6
=== Description ===
7
8
This script can be used for interactive audio session or for scripting alarms. The script returns appropriate shell response codes for failed or successful sessions. The script can be setup to auto answer and auto hangup after predefined number of seconds, detects SIP negative response codes, missing ACK and the lack of RTP media after a session has been established.
9 6 Adrian Georgescu
10 10 Adrian Georgescu
[[Image(http://www.tech-invite.com/img/cf3665/cf3665-32.gif)]]
11 1 Adrian Georgescu
12
Source code: [source:scripts/sip_audio_session.py scripts/sip_audio_session.py]
13
14
{{{
15 5 Adrian Georgescu
adigeo@ag-oxygen:~$sip_audio_session --help
16 1 Adrian Georgescu
Usage: sip_audio_session [options] [target-user@target-domain.com]
17
18
This script can sit idle waiting for an incoming audio call, or perform an
19
outgoing audio call to the target SIP account. The program will close the
20
session and quit when Ctrl+D is pressed.
21
22
Options:
23
  -h, --help            show this help message and exit
24 5 Adrian Georgescu
  -a NAME, --account=NAME
25
                        The account name to use for any outgoing traffic. If
26
                        not supplied, the default account will be used.
27
  -c [FILE], --config_file=[FILE]
28
                        The path to a configuration file to use. This
29
                        overrides the default location of the configuration
30
                        file.
31
  -s [stdout|file|all|none], --trace-sip=[stdout|file|all|none]
32
                        Dump the raw contents of incoming and outgoing SIP
33
                        messages. The argument specifies where the messages
34
                        are to be dumped.
35
  -j [stdout|file|all|none], --trace-pjsip=[stdout|file|all|none]
36
                        Print PJSIP logging output. The argument specifies
37 1 Adrian Georgescu
                        where the messages are to be dumped.
38 5 Adrian Georgescu
  -S, --disable-sound   Disables initializing the sound card.
39
  --auto-answer         Interval after which to answer an incoming call
40
                        (disabled by default). If the option is specified but
41
                        the interval is not, it defaults to 0 (answer the call
42
                        as soon as it starts ringing).
43 1 Adrian Georgescu
  --auto-hangup         Interval after which to hangup an on-going call
44
                        (applies only to outgoing calls, disabled by default).
45
                        If the option is specified but the interval is not, it
46
                        defaults to 0 (hangup the call as soon as it
47
                        connects).
48
}}}
49
50
51
=== Example for incoming session ===
52
53
{{{
54 7 Adrian Georgescu
adigeo@ag-imac3:~$sip_audio_session
55
Using account 31208005169@ag-projects.com
56 1 Adrian Georgescu
Available control keys:
57
  h: hang-up the active session
58
  r: toggle audio recording
59
  t: toggle SIP trace on the console
60 7 Adrian Georgescu
  j: toggle PJSIP trace on the console
61 1 Adrian Georgescu
  <> : adjust echo cancellation
62
  SPACE: hold/on-hold
63
  Ctrl-d: quit the program
64
  ?: display this help message
65 7 Adrian Georgescu
Succesfully registered using contact "sip:cwntuzyl@192.168.1.6:61163"
66 1 Adrian Georgescu
Detected NAT type: Port Restricted
67 7 Adrian Georgescu
Incoming audio session from ""Adrian G." <sip:31208005169@ag-projects.com>", do you want to accept? (y/n)
68
Session established, using "PCMU" codec at 8000Hz
69
Audio RTP endpoints 192.168.1.6:50132 <-> 85.17.186.7:53358
70
Remote SIP User Agent is "CSCO/7"
71
Session ended by remote party.
72
Session duration was 3 seconds
73
74 1 Adrian Georgescu
}}}
75
76
=== Example for outgoing session ===
77
78
{{{
79 7 Adrian Georgescu
adigeo@ag-imac3:~$sip_audio_session ag@ag-projects.com
80
Using account 31208005169@ag-projects.com
81 8 Adrian Georgescu
Initiating SIP session from "Adrian G." <sip:31208005169@ag-projects.com> to 
82
sip:ag@ag-projects.com via udp:81.23.228.150:5060 ...
83 1 Adrian Georgescu
Available control keys:
84
  h: hang-up the active session
85
  r: toggle audio recording
86
  t: toggle SIP trace on the console
87 7 Adrian Georgescu
  j: toggle PJSIP trace on the console
88 1 Adrian Georgescu
  <> : adjust echo cancellation
89
  SPACE: hold/on-hold
90
  Ctrl-d: quit the program
91
  ?: display this help message
92 7 Adrian Georgescu
Succesfully registered using contact "sip:ztomvpis@192.168.1.6:61215"
93 1 Adrian Georgescu
Ringing...
94
Session established, using "speex" codec at 32000Hz
95 7 Adrian Georgescu
Audio RTP endpoints 192.168.1.6:50374 <-> 81.23.228.129:52156
96
Remote SIP User Agent is "sip2sip-0.9.0-pjsip-1.0.2-trunk-r2553"
97
Detected NAT type: Port Restricted
98
Ending session...
99
Session ended by local party.
100
Session duration was 12 seconds
101 1 Adrian Georgescu
}}}
102 11 Adrian Georgescu
103
104
=== Example for bonjour mode ===
105
106
In bonjour mode no server is used. This mode is useful for serverless ad-hoc LAN operation. 
107
108
> The actual bonjour protocol that uses multicast DNS to broadcast the contact SIP URIs is not implemented.
109
110
[[Image(http://www.tech-invite.com/img/cf3665/cf3665-31.gif)]]
111
112
{{{
113
adigeo@ag-imac3:~$sip_audio_session -a bonjour@local "sip:wjnrczhi@192.168.1.6:57624;transport=tls"
114
Using account bonjour@local
115
Listening on "sip:imdyzosg@192.168.1.6:57626;transport=tls"
116
Listening on "sip:imdyzosg@192.168.1.6:57625;transport=tcp"
117
Listening on "sip:imdyzosg@192.168.1.6:62008"
118
Initiating SIP session from sip:imdyzosg@192.168.1.6 to sip:wjnrczhi@192.168.1.6:57624;transport=tls via tls:192.168.1.6:57624 ...
119
Available control keys:
120
  h: hang-up the active session
121
  r: toggle audio recording
122
  t: toggle SIP trace on the console
123
  j: toggle PJSIP trace on the console
124
  <> : adjust echo cancellation
125
  SPACE: hold/on-hold
126
  Ctrl-d: quit the program
127
  ?: display this help message
128
Ringing...
129
Session established, using "speex" codec at 32000Hz
130
Audio RTP endpoints 192.168.1.6:50100 <-> 192.168.1.6:50276
131
RTP audio stream is encrypted
132
Remote SIP User Agent is "sip2sip-0.9.0-pjsip-1.0.2-trunk-r2553"
133
Ending session...
134
Session ended by local party.
135
Session duration was 5 seconds
136
}}}
137
138
{{{
139
adigeo@ag-imac3:~$sip_audio_session -a bonjour@local
140
Using account bonjour@local
141
Listening on "sip:wjnrczhi@192.168.1.6:57624;transport=tls"
142
Listening on "sip:wjnrczhi@192.168.1.6:57623;transport=tcp"
143
Listening on "sip:wjnrczhi@192.168.1.6:61994"
144
Available control keys:
145
  h: hang-up the active session
146
  r: toggle audio recording
147
  t: toggle SIP trace on the console
148
  j: toggle PJSIP trace on the console
149
  <> : adjust echo cancellation
150
  SPACE: hold/on-hold
151
  Ctrl-d: quit the program
152
  ?: display this help message
153
Incoming audio session from "sip:imdyzosg@192.168.1.6", do you want to accept? (y/n)
154
Session established, using "speex" codec at 32000Hz
155
Audio RTP endpoints 192.168.1.6:50276 <-> 192.168.1.6:50100
156
RTP audio stream is encrypted
157
Remote SIP User Agent is "sip2sip-0.9.0-pjsip-1.0.2-trunk-r2553"
158
Session ended by remote party.
159
Session duration was 5 seconds
160
}}}