Sip audio session

Version 6 (Adrian Georgescu, 03/30/2009 11:27 am) → Version 7/28 (Adrian Georgescu, 03/30/2009 11:29 am)

== sip_audio_session ==
[[TOC(SipTesting*, sip_*, xcap*,depth=2)]]

To use this script you must to have a valid [wiki:SipSettingsAPI configuration].

=== Description ===

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.

[[Image(http://www.tech-invite.com/img/cf3665/cf3665-31.gif)]]

Source code: [source:scripts/sip_audio_session.py scripts/sip_audio_session.py]

{{{
adigeo@ag-oxygen:~$sip_audio_session --help
Usage: sip_audio_session [options] [target-user@target-domain.com]

This script can sit idle waiting for an incoming audio call, or perform an
outgoing audio call to the target SIP account. The program will close the
session and quit when Ctrl+D is pressed.

Options:
-h, --help show this help message and exit
-a NAME, --account=NAME
The account name to use for any outgoing traffic. If
not supplied, the default account will be used.
-c [FILE], --config_file=[FILE]
The path to a configuration file to use. This
overrides the default location of the configuration
file.
-s [stdout|file|all|none], --trace-sip=[stdout|file|all|none]
Dump the raw contents of incoming and outgoing SIP
messages. The argument specifies where the messages
are to be dumped.
-j [stdout|file|all|none], --trace-pjsip=[stdout|file|all|none]
Print PJSIP logging output. The argument specifies
where the messages are to be dumped.
-S, --disable-sound Disables initializing the sound card.
--auto-answer Interval after which to answer an incoming call
(disabled by default). If the option is specified but
the interval is not, it defaults to 0 (answer the call
as soon as it starts ringing).
--auto-hangup Interval after which to hangup an on-going call
(applies only to outgoing calls, disabled by default).
If the option is specified but the interval is not, it
defaults to 0 (hangup the call as soon as it
connects).
}}}

=== Example for incoming session ===

{{{
adigeo@ag-imac3:~$sip_audio_session adigeo@ag-imac3:~/Business/Personal$sip_audio_session
Accounts available: 'alice', 'as', 'bob', 'ew', 'ewt', 'mrg', 'pbx', 's', 'tf', 'umts', 'umts_test', 'unet', 'unet_test', default

Using account default account: 31208005169@ag-projects.com
Registering ""Adrian G." <sip:31208005169@ag-projects.com>" at 81.23.228.129:5060
REGISTER was successful
Contact: sip:HZ1BYFQtHR@192.168.1.6:49421;transport=udp (expires in 300 seconds)
Available control keys:
h: hang-up the active session
r: toggle audio recording
t: toggle SIP trace on the console
j: toggle PJSIP trace on the console
<> : adjust echo cancellation
SPACE: hold/on-hold
Ctrl-d: quit the program
?: display this help message
Succesfully registered using contact "sip:cwntuzyl@192.168.1.6:61163" Waiting for incoming session...
Detected NAT type: Port Restricted
Incoming session...
Incoming
audio session from ""Adrian G." <sip:31208005169@ag-projects.com>", "sip:adi@umts.ro", do you want to accept? (y/n)
Session established, using "PCMU" "speex" codec at 8000Hz 32000Hz
Audio RTP endpoints 192.168.1.6:50132 192.168.1.6:40064 <-> 85.17.186.7:53358 81.23.228.150:56618
Remote SIP User Agent is "CSCO/7" "sip2sip-0.4.0-pjsip-1.0.1-r2453"
Call is put on hold
Call is taken out of hold
Ending session...
Session ended by remote local party.
Session duration was 3 6 seconds


}}}

=== Example for outgoing session ===

{{{
adigeo@ag-imac3:~$sip_audio_session adigeo@ag-imac3:~$sip -a umts ag@ag-projects.com
Accounts available: 'alice', 'as', 'bob', 'ew', 'ewt', 'mrg', 'pbx', 's', 'tf', 'umts', 'umts_test', 'unet', 'unet_test', default
Using account 31208005169@ag-projects.com 'umts': adi@umts.ro
Initiating SIP session Call from "Adrian G." <sip:31208005169@ag-projects.com> "Adi UMTS" <sip:adi@umts.ro> to sip:ag@ag-projects.com via udp:81.23.228.150:5060 ... through proxy udp:85.17.186.7:5060
Available control keys:
h: hang-up the active session
r: toggle audio recording
t: toggle SIP trace on the console
j: toggle PJSIP trace on the console
<> : adjust echo cancellation
SPACE: hold/on-hold
Ctrl-d: quit the program
?: display this help message
Succesfully registered using contact "sip:ztomvpis@192.168.1.6:61215" Ringing...
Ringing...
Ringing...
Session established, using "speex" codec at 32000Hz
Audio RTP endpoints 192.168.1.6:50374 192.168.1.6:40048 <-> 81.23.228.129:52156 81.23.228.150:56616
Remote SIP User Agent is "sip2sip-0.9.0-pjsip-1.0.2-trunk-r2553" "sip2sip-0.4.0-pjsip-1.0.1-r2453"
Detected NAT type: Port Restricted Remote party has put the call on hold
Ending session... Remote party has taken the call out of hold
Session ended by local remote party.
Session duration was 12 6 seconds


}}}

=== Ongoing sessions ===

During an ongoing session you can record the audio stream in a file by pressing r. You can hangup by pressing h.