Project

General

Profile

Sip audio session » History » Version 12

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 12 Adrian Georgescu
'''Called party'''
113
114 1 Adrian Georgescu
{{{
115 12 Adrian Georgescu
adigeo@ag-imac3:~$sip_audio_session -a bonjour@local
116 11 Adrian Georgescu
Using account bonjour@local
117 12 Adrian Georgescu
Listening on "sip:wjnrczhi@192.168.1.6:57624;transport=tls"
118
Listening on "sip:wjnrczhi@192.168.1.6:57623;transport=tcp"
119
Listening on "sip:wjnrczhi@192.168.1.6:61994"
120 11 Adrian Georgescu
Available control keys:
121
  h: hang-up the active session
122
  r: toggle audio recording
123 1 Adrian Georgescu
  t: toggle SIP trace on the console
124
  j: toggle PJSIP trace on the console
125 11 Adrian Georgescu
  <> : adjust echo cancellation
126
  SPACE: hold/on-hold
127
  Ctrl-d: quit the program
128
  ?: display this help message
129 12 Adrian Georgescu
Incoming audio session from "sip:imdyzosg@192.168.1.6", do you want to accept? (y/n)
130 1 Adrian Georgescu
Session established, using "speex" codec at 32000Hz
131 12 Adrian Georgescu
Audio RTP endpoints 192.168.1.6:50276 <-> 192.168.1.6:50100
132 1 Adrian Georgescu
RTP audio stream is encrypted
133
Remote SIP User Agent is "sip2sip-0.9.0-pjsip-1.0.2-trunk-r2553"
134 12 Adrian Georgescu
Session ended by remote party.
135 11 Adrian Georgescu
Session duration was 5 seconds
136
}}}
137
138 12 Adrian Georgescu
'''Calling party'''
139
140 11 Adrian Georgescu
{{{
141 12 Adrian Georgescu
adigeo@ag-imac3:~$sip_audio_session -a bonjour@local "sip:wjnrczhi@192.168.1.6:57624;transport=tls"
142 1 Adrian Georgescu
Using account bonjour@local
143 12 Adrian Georgescu
Listening on "sip:imdyzosg@192.168.1.6:57626;transport=tls"
144
Listening on "sip:imdyzosg@192.168.1.6:57625;transport=tcp"
145
Listening on "sip:imdyzosg@192.168.1.6:62008"
146
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 ...
147 11 Adrian Georgescu
Available control keys:
148
  h: hang-up the active session
149
  r: toggle audio recording
150
  t: toggle SIP trace on the console
151
  j: toggle PJSIP trace on the console
152
  <> : adjust echo cancellation
153
  SPACE: hold/on-hold
154
  Ctrl-d: quit the program
155
  ?: display this help message
156 12 Adrian Georgescu
Ringing...
157 11 Adrian Georgescu
Session established, using "speex" codec at 32000Hz
158 12 Adrian Georgescu
Audio RTP endpoints 192.168.1.6:50100 <-> 192.168.1.6:50276
159 11 Adrian Georgescu
RTP audio stream is encrypted
160
Remote SIP User Agent is "sip2sip-0.9.0-pjsip-1.0.2-trunk-r2553"
161 12 Adrian Georgescu
Ending session...
162
Session ended by local party.
163 1 Adrian Georgescu
Session duration was 5 seconds
164
}}}