[Freeswitch-dev] INFO: Channel variables
UV
uv at talknet.com.au
Fri Jun 6 15:19:36 EDT 2008
Good work, Michael!
This is the knowledge we've accumulated regarding the channel variables:
Channels Variables Types
* 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 Bridge State And The Called (B) Party Hangs Up.
If "True" The Dialplan Will Stop Processing And The A Leg Will Be Terminated
When The B Leg Terminates. If "False" (Default) The Dialplan Continues To Be
Processed After The B Leg Terminates.
* 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 Meta Data - The following are set prior to performing a record to
set the file header meta data provided the file format supports meta
headers.
* RECORD_TITLE - <Text> - Set Prior To Performing A Record To Set The
File Header Meta Data Provided The File Format Supports Meta Headers.
* RECORD_COPYRIGHT - <Text> - Set Prior To Performing A Record To Set
The File Header Meta Data Provided The File Format Supports Meta Headers.
* RECORD_SOFTWARE - <Text> - Set Prior To Performing A Record To Set
The File Header Meta Data Provided The File Format Supports Meta Headers.
* RECORD_ARTIST - <Text> - Set Prior To Performing A Record To Set
The File Header Meta Data Provided The File Format Supports Meta Headers.
* RECORD_COMMENT - <Text> - Set Prior To Performing A Record To Set
The File Header Meta Data Provided The File Format Supports Meta Headers.
* RECORD_DATE - <Text> - Set Prior To Performing A Record To Set The
File Header Meta Data Provided The File Format Supports Meta Headers.
Originate Variables Types
* 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.
_____
From: freeswitch-dev-bounces at lists.freeswitch.org
[mailto:freeswitch-dev-bounces at lists.freeswitch.org] On Behalf Of Michael
Collins
Sent: Saturday, June 07, 2008 4:55 AM
To: freeswitch-dev at lists.freeswitch.org
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 at lists.freeswitch.org
[mailto:freeswitch-dev-bounces at lists.freeswitch.org] On Behalf Of Brian West
Sent: Friday, June 06, 2008 9:58 AM
To: freeswitch-dev at lists.freeswitch.org
Subject: Re: [Freeswitch-dev] INFO: Channel variables
Forgot the ones in switch_types.h ;)
/b
On Jun 6, 2008, at 11:41 AM, Michael Collins wrote:
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 at lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20080607/c1301d7d/attachment-0001.html
More information about the Freeswitch-dev
mailing list