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: freeswitch-dev@lists.freeswitch.org
Subject: Re: [Freeswitch-dev] INFO: Channel variables

 

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…

 

 

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 Michael Collins
Sent: Saturday, June 07, 2008 4:55 AM
To: freeswitch-dev@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@lists.freeswitch.org [mailto:freeswitch-dev-bounces@lists.freeswitch.org] On Behalf Of Brian West
Sent: Friday, June 06, 2008 9:58 AM
To: freeswitch-dev@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@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org