From:
freeswitch-dev-bounces@lists.freeswitch.org
[mailto:freeswitch-dev-bounces@lists.freeswitch.org] On Behalf Of UV
Sent: Friday, June 06, 2008 12:20
PM
To:
Subject: Re: [Freeswitch-dev]
INFO: Channel variables
Good work, Michael!
This is the knowledge we’ve
accumulated regarding the channel variables:
· PROTO_SPECIFIC_HANGUP_CAUSE
· EXECUTE_ON_ANSWER -
<Command><Args> - Execute A Command When The Called Party Answer.
Example: Execute_On_Answer=Lua Incrinuse.Lua ${Uuid}
· CALL_TIMEOUT - <Seconds> - Controls
How Long (In Seconds) To Ring The B Leg Of A Call When Using The Bridge
Application.
· HOLDING_UUID
· API_AFTER_BRIDGE
· API_HANGUP_HOOK -
<Command><Args> - Execute An Api Command On Hangup. Example:
<Action Application="Set" Data="Api_Hangup_Hook=Jsrun
Cleanup.Js ${Uuid}"/>
· PROCESS_CDR -
<False|True|A_Only|B_Only> - Indicates How To Process Cdr Records.
o "false" indicates to not process
the record.
o "true" or undefined indicates
the default behavior which is to process all CDR records.
o "a_only" indicates to only
process CDR records on the inbound leg of a call.
o "b_only" indicates to only
process CDR records on the outbound leg of a call.
· BRIDGE_CHANNEL
· CHANNEL_NAME
· BRIDGE_UUID
· PLAYBACK_TERMINATORS - <Keys> -
Allows You To Set Which Dtmf Tones, If Pressed During The Playback Of A File,
Will Stop It. “None” Is Valid <Keys> And Will Stand For No
Termination Keys. Example: Playback_Terminators=#*
· CACHE_SPEECH_HANDLES
· BYPASS_MEDIA - <True|False> - When
Set, All The Media Address Of The Far End Of The Originating Leg Will Be Passed
To The Far End Of The New Call Leg And Vice Versa So The Signaling Goes Through
Freeswitch But The Media Is Point-To-Point.
· PROXY_MEDIA - <True|False> - Proxy
Media Mode Puts Freeswitch In A "Transparent Proxy Mode" For The Rtp
Streams. The Rtp Streams Still Pass Through Freeswitch (Unlike Bypass Media
Mode), However It Is Lighter On The Cpu Because Freeswitch Never Even Parses
The Packets Or Processes Them In Any Way, It Simply Forwards Them Onwards.
· ENDPOINT_DISPOSITION
· HOLD_MUSIC - <Audio_Path> -
Per-Channel Hold Music. Supports All Audio Formats And Audio Streams.
· EXPORT_VARS
· SWITCH_R_SDP - <Sdp String> - Changes
The Remote Sdp Header
· SWITCH_L_SDP - <Sdp String> -
Changes The Local Sdp Header
· SWITCH_M_SDP - <Sdp String> -
Merged? Sdp
· BRIDGE_TO -
· SIGNAL_BRIDGE_TO -
· SIGNAL_BOND
· ORIGINATOR -
· ORIGINATOR_CODEC - <Codec> - Sets
The Codec For Calls Originated From Leg A (Setting The Codec For Leg B)
· LOCAL_MEDIA_IP -
· LOCAL_MEDIA_PORT -
· REMOTE_MEDIA_IP -
· REMOTE_MEDIA_PORT -
· REMOTE_VIDEO_IP
· REMOTE_VIDEO_PORT
· LOCAL_VIDEO_IP
· LOCAL_VIDEO_PORT
· HANGUP_AFTER_BRIDGE - <True|False> -
Controls What Happens To A Calling (A) Party When In A
· EXEC_AFTER_BRIDGE_APP
· EXEC_AFTER_BRIDGE_ARG
· MAX_FORWARDS -
· DISABLE_APP_LOG
· PASS_RFC2833 - <True|False> - Passes
Rfc2833 Dtmf'S From One Side Of A Bridge To The Other Untouched. If Unset, It
Decodes And Reencodes Them Before Passing Them On.
· DEFAULT_LANGUAGE - <Language I.E.
Fr> - Controls The Default Language The Say Phrase Engine Will Use When No
Language Is Explicitly Specified In The Api Call. This Permits You To Easily
Support Multiple Languages By Only Changing A Single Variable At Call Time.
· CONTINUE_ON_FAIL -
<True|False|Couses> - Controls What Happens When The Called Party Can Not
Be Reached (Busy/Offline). If "True" The Dialplan Continues To Be
Processed. If "False" The Dialplan Will Stop Processing. Can Contain The
Return Messages That Will Continue On Fail Also.
· CALLER_ID_NAME - <Name> - The Caller
Id Name Set By The Inbound Call, Not A Real Variable. Practically It Is Read
Only.
· CALLER_ID_NUMBER - <Number> - The
Caller Id Phone Number Set By The Inbound Call, Not A Real Variable.
Practically It Is Read Only.
· EFFECTIVE_CALLER_ID_NAME - <Name> -
Sets The Effective Callerid Name. Automatically Exported To Originated
Channels. It Is A Var Set On A Channel In Case It Becomes The A Leg Of A Bridge
- It Will Use This Callerid Name On The B Leg Outbound Call.
· EFFECTIVE_CALLER_ID_NUMBER -
<Number> - Sets The Effective Callerid Number. Automatically Exported To
Originated Channels. It Is A Var Set On A Channel In Case It Becomes The A Leg
Of A Bridge - It Will Use This Callerid Number On The B Leg Outbound Call.
· ABSOLUTE_CODEC_STRING - <Codec> -
Sets The Absolute Codec To Use
· CODEC_STRING - <Codecs> - Sets The
Codec To Add To The List Of Codecs.
· RECORD_ANSWER_REQ - <True|False> -
Start Recording Only When The Channel Has Been Answered.
· RECORD_STEREO - <True|False> -
Record Leg A And Leg B Streams Into Different Channel In A Stereo File.
· TIMER_NAME - <Soft|Other> - If Set
Will Make Playback And Speak Use A Timer To Clock The Audio Instead Of The
Read.
· FIRE_ASR_EVENTS -
· SOUND_PREFIX -
· _SOFIA_REPLACES_ -
· ALERT_INFO -
· ABSOLUTE_CODEC_STRING - <Codec> -
Sets The Absolute Codec To Use
· READ_CODEC - The Negotiated Codec Of The
Inbound Call Leg.
· WRITE_CODEC - The Negotiated Codec Of The
Outbound Call Leg.
· RECORD_RATE - <Rate> - Set The
Sample Rate Of The Recording. Usage: Record_Rate=11025
Recording
· RECORD_TITLE - <Text> - Set Prior To
Performing A Record To Set The File Header Meta Data Provided The File Format
Supports
· RECORD_COPYRIGHT - <Text> - Set
Prior To Performing A Record To Set The File Header Meta Data Provided The File
Format Supports
· RECORD_SOFTWARE - <Text> - Set Prior
To Performing A Record To Set The File Header Meta Data Provided The File
Format Supports
· RECORD_ARTIST - <Text> - Set Prior
To Performing A Record To Set The File Header Meta Data Provided The File
Format Supports
· RECORD_COMMENT - <Text> - Set Prior
To Performing A Record To Set The File Header Meta Data Provided The File
Format Supports
· RECORD_DATE - <Text> - Set Prior To
Performing A Record To Set The File Header Meta Data Provided The File Format
Supports
· FAIL_ON_SINGLE_REJECT = <true|false>
- This is useful when using the "," AND operator in the DATA field of
a bridge. The AND operator notifies a list of destinations, bridging to the
first destination that accepts the call. Typically if a destination in the list
rejects the call, the bridge will continue to be attempted until either another
destination accepts the call, or a timeout occurs. This variable allows one to
terminate the bridging attempt on a single rejection of the call. This means
the bridge attempt would fail, and if continue_on_fail has not been set, the
call is terminated. This variable would be set within a condition before a
bridge application. When used in conjunction with the continue_on_fail variable,
one can perform operations such as rolling over a rejected caller to an
answering machine application.
· IGNORE_EARLY_MEDIA = <true|false> -
Controls if the call returns on early media or not. Default is false.
· GROUP_CONFIRM_KEY = <key> - the call
acceptance DTMF key. If <key> is “EXEC” it will run the
application stated in group_confirm_file. i.e: group_confirm_key = 3
· GROUP_CONFIRM_FILE = <audio_file> -
sound file for asking an approval DTMF. If group_confirm_key is
“EXEC”, this argument will have <application><args> as
data and will run it before executing call. i.e. group_confirm_file =
/wav/announce.wav
· FORKED_DIAL
· RETURN_RING_READY
· ORIGINATE_RETRIES = <number> -
number of retries
· ORIGINATE_RETRY_SLEEP_MS = <number>
- how many milisec between retries
· ORIGINATION_CALLER_ID_NAME = <name>
- Sets the origination callerid name. (LEG A)
· ORIGINATION_CALLER_ID_NUMBER =
<number> - Sets the origination callerid number. (LEG A)
· RINGBACK = <audio_path> - Ring back
is used to specify a sound/tone to be played for the calling user. The value is
interpreted as a file if a path is given, else as a teletone.
· TRANSFER_RINGBACK = <media_path> -
This will set the ring tone for answered calls. This is any call that has been
setup. One example would be the tone to play during transfer. The following
example uses the French ringtone definte in ~/autoload_configs/switch.conf.xml
: transfer_ringback="$${fr-ring}"
· ORIGINATE_TIMEOUT = <number> -
duration of timeout of originate attempt
Since there’s barely 5% match
between our lists, I assume I’m completely off…
Well, I took
the variable names right out of the source code which is mostly lower case so
that might account for a lot of the differences. However, I will use your list
as a reference just to make sure that I’ve not missing anything…
-MC
From:
freeswitch-dev-bounces@lists.freeswitch.org
[mailto:freeswitch-dev-bounces@lists.freeswitch.org] On Behalf Of
Sent: Saturday, June 07, 2008 4:55
AM
To:
Subject: Re: [Freeswitch-dev]
INFO: Channel variables
Follow up:
Are most of these read/write? Are
there any that are by definition read-only? If so, could someone in the
know point those out and I will get with Ray to make sure that we get the
channel variables wiki page is updated.
Thanks,
MC
From:
freeswitch-dev-bounces@lists.freeswitch.org
[mailto:freeswitch-dev-bounces@lists.freeswitch.org] On Behalf Of Brian West
Sent: Friday, June 06, 2008 9:58
AM
To:
Subject: Re: [Freeswitch-dev]
INFO: Channel variables
Forgot the ones in switch_types.h ;)
/b
On Jun 6, 2008, at 11:41 AM,
Guys,
I made a list by grepping and perling
around in the source.
grep -Pr "c(.)(\s+)switch_channel_set_variable\(channel,
\"" * | grep -v "Binary" > /tmp/chan_vars.tmp
This gave me a massive list of all
filenames and occurrences of “switch_channel_set_variable” with a
channel variable explicitly named in quotes.
I then filtered out stuff with svn in the
source filename and then create a tab-separated list of chan variables and
source filenames. Finally, I distilled that list with this script:
perl -n -e
'm/(\w+)\t(.*)/;next if (exists($seen{$1}));print $1 . "\t" . $2 .
"\n";$seen{$1}=$2;' /tmp/chan_vars3.tmp
This yielded a nice list of variables.
Let me know what you think about using this as the base list for channel
variables on the wiki:
Variable
Source File:
limit_realm
mod/applications/mod_limit/mod_limit.c
limit_id
mod/applications/mod_limit/mod_limit.c
limit_max
mod/applications/mod_limit/mod_limit.c
enum_route_count
mod/applications/mod_enum/mod_enum.c
enum_auto_route
mod/applications/mod_enum/mod_enum.c
voicemail_total_new_messages
mod/applications/mod_voicemail/mod_voicemail.c
voicemail_total_saved_messages
mod/applications/mod_voicemail/mod_voicemail.c
voicemail_urgent_new_messages
mod/applications/mod_voicemail/mod_voicemail.c
voicemail_urgent_saved_messages
mod/applications/mod_voicemail/mod_voicemail.c
voicemail_current_folder
mod/applications/mod_voicemail/mod_voicemail.c
voicemail_account
mod/applications/mod_voicemail/mod_voicemail.c
voicemail_domain
mod/applications/mod_voicemail/mod_voicemail.c
voicemail_caller_id_number
mod/applications/mod_voicemail/mod_voicemail.c
voicemail_caller_id_name
mod/applications/mod_voicemail/mod_voicemail.c
voicemail_file_path
mod/applications/mod_voicemail/mod_voicemail.c
voicemail_read_flags
mod/applications/mod_voicemail/mod_voicemail.c
voicemail_time
mod/applications/mod_voicemail/mod_voicemail.c
voicemail_priority
mod/applications/mod_voicemail/mod_voicemail.c
voicemail_message_len
mod/applications/mod_voicemail/mod_voicemail.c
voicemail_email
mod/applications/mod_voicemail/mod_voicemail.c
RECORD_ARTIST
mod/applications/mod_voicemail/mod_voicemail.c
RECORD_DATE
mod/applications/mod_voicemail/mod_voicemail.c
RECORD_SOFTWARE
mod/applications/mod_voicemail/mod_voicemail.c
RECORD_TITLE
mod/applications/mod_voicemail/mod_voicemail.c
RECORD_COMMENT
mod/applications/mod_voicemail/mod_voicemail.c
RECORD_COPYRIGHT
mod/applications/mod_voicemail/mod_voicemail.c
voicemail_notify_email
mod/applications/mod_voicemail/mod_voicemail.c
mailbox
mod/applications/mod_dptools/mod_dptools.c
user_name
mod/applications/mod_dptools/mod_dptools.c
domain_name
mod/applications/mod_dptools/mod_dptools.c
xfer_uuids
mod/applications/mod_dptools/mod_dptools.c
dialed_user
mod/applications/mod_dptools/mod_dptools.c
dialed_domain
mod/applications/mod_dptools/mod_dptools.c
sip_force_video_fmtp
mod/applications/mod_fsv/mod_fsv.c
fifo_priority
mod/applications/mod_fifo/mod_fifo.c
fifo_status
mod/applications/mod_fifo/mod_fifo.c
fifo_timestamp
mod/applications/mod_fifo/mod_fifo.c
fifo_target
mod/applications/mod_fifo/mod_fifo.c
dl_user
mod/endpoints/mod_dingaling/mod_dingaling.c
dl_host
mod/endpoints/mod_dingaling/mod_dingaling.c
dl_from_user
mod/endpoints/mod_dingaling/mod_dingaling.c
dl_from_host
mod/endpoints/mod_dingaling/mod_dingaling.c
sip_nat_detected
mod/endpoints/mod_sofia/sofia_glue.c
sofia_profile_name
mod/endpoints/mod_sofia/sofia_glue.c
auto_answer_destination
mod/endpoints/mod_sofia/sofia.c
sip_user_agent
mod/endpoints/mod_sofia/sofia.c
sip_rtp_txstat
mod/endpoints/mod_sofia/sofia.c
sip_rtp_rxstat
mod/endpoints/mod_sofia/sofia.c
sip_call_id
mod/endpoints/mod_sofia/sofia.c
sip_authorized
mod/endpoints/mod_sofia/sofia.c
sip_term_status
mod/endpoints/mod_sofia/sofia.c
sip_term_cause
mod/endpoints/mod_sofia/sofia.c
transfer_fallback_extension
mod/endpoints/mod_sofia/sofia.c
call_clientcode
mod/endpoints/mod_sofia/sofia.c
sofia_record_file
mod/endpoints/mod_sofia/sofia.c
sip_received_ip
mod/endpoints/mod_sofia/sofia.c
sip_received_port
mod/endpoints/mod_sofia/sofia.c
sip_looped_call
mod/endpoints/mod_sofia/sofia.c
sip_from_user_stripped
mod/endpoints/mod_sofia/sofia.c
sip_from_comment
mod/endpoints/mod_sofia/sofia.c
sofia_profile_domain_name
mod/endpoints/mod_sofia/sofia.c
sip_to_comment
mod/endpoints/mod_sofia/sofia.c
sip_referred_by_user_stripped
mod/endpoints/mod_sofia/sofia.c
sip_referred_by_cid
mod/endpoints/mod_sofia/sofia.c
sip_subject
mod/endpoints/mod_sofia/sofia.c
sip_via_host
mod/endpoints/mod_sofia/sofia.c
sip_via_port
mod/endpoints/mod_sofia/sofia.c
sip_via_rport
mod/endpoints/mod_sofia/sofia.c
sip_gateway
mod/endpoints/mod_sofia/sofia.c
alert_info
mod/endpoints/mod_sofia/sofia.c
presence_id
mod/endpoints/mod_sofia/sofia.c
call_timeout
mod/dialplans/mod_dialplan_asterisk/mod_dialplan_asterisk.c
EXTEN
mod/dialplans/mod_dialplan_asterisk/mod_dialplan_asterisk.c
CHANNEL
mod/dialplans/mod_dialplan_asterisk/mod_dialplan_asterisk.c
UNIQUEID
mod/dialplans/mod_dialplan_asterisk/mod_dialplan_asterisk.c
socket_path
mod/event_handlers/mod_event_socket/mod_event_socket.c
socket_host
mod/event_handlers/mod_event_socket/mod_event_socket.c
last_file_position
mod/languages/mod_spidermonkey/mod_spidermonkey.c
hangup_cause
switch_channel.c
endpoint_disposition
switch_channel.c
start_stamp
switch_channel.c
profile_start_stamp
switch_channel.c
answer_stamp
switch_channel.c
progress_stamp
switch_channel.c
progress_media_stamp
switch_channel.c
end_stamp
switch_channel.c
start_epoch
switch_channel.c
start_uepoch
switch_channel.c
profile_start_epoch
switch_channel.c
profile_start_uepoch
switch_channel.c
answer_epoch
switch_channel.c
answer_uepoch
switch_channel.c
end_epoch
switch_channel.c
end_uepoch
switch_channel.c
last_app
switch_channel.c
last_arg
switch_channel.c
caller_id
switch_channel.c
duration
switch_channel.c
billsec
switch_channel.c
progresssec
switch_channel.c
progress_mediasec
switch_channel.c
flow_billsec
switch_channel.c
mduration
switch_channel.c
billmsec
switch_channel.c
progressmsec
switch_channel.c
progress_mediamsec
switch_channel.c
flow_billmsec
switch_channel.c
uduration
switch_channel.c
billusec
switch_channel.c
progressusec
switch_channel.c
progress_mediausec
switch_channel.c
flow_billusec
switch_channel.c
read_codec
switch_core_codec.c
read_rate
switch_core_codec.c
write_codec
switch_core_codec.c
write_rate
switch_core_codec.c
video_read_codec
switch_core_codec.c
video_read_rate
switch_core_codec.c
video_write_codec
switch_core_codec.c
video_write_rate
switch_core_codec.c
sound_prefix
switch_ivr_play_say.c
_______________________________________________
Freeswitch-dev mailing list
Freeswitch-dev@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org