Project

General

Profile

Sip audio session » History » Version 7

Adrian Georgescu, 03/30/2009 11:29 AM

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
[[Image(http://www.tech-invite.com/img/cf3665/cf3665-31.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
Initiating SIP session from "Adrian G." <sip:31208005169@ag-projects.com> to sip:ag@ag-projects.com via udp:81.23.228.150:5060 ...
82 1 Adrian Georgescu
Available control keys:
83
  h: hang-up the active session
84
  r: toggle audio recording
85
  t: toggle SIP trace on the console
86 7 Adrian Georgescu
  j: toggle PJSIP trace on the console
87 1 Adrian Georgescu
  <> : adjust echo cancellation
88
  SPACE: hold/on-hold
89
  Ctrl-d: quit the program
90
  ?: display this help message
91 7 Adrian Georgescu
Succesfully registered using contact "sip:ztomvpis@192.168.1.6:61215"
92 1 Adrian Georgescu
Ringing...
93
Session established, using "speex" codec at 32000Hz
94 7 Adrian Georgescu
Audio RTP endpoints 192.168.1.6:50374 <-> 81.23.228.129:52156
95
Remote SIP User Agent is "sip2sip-0.9.0-pjsip-1.0.2-trunk-r2553"
96
Detected NAT type: Port Restricted
97
Ending session...
98
Session ended by local party.
99
Session duration was 12 seconds
100 1 Adrian Georgescu
}}}
101
102
103
=== Ongoing sessions ===
104
105
During an ongoing session you can record the audio stream in a file by pressing r. You can hangup by pressing h.