FreeSWITCH学习笔记:通道变量
本文更新于2022-12-19,使用FreeSWITCH 1.10.7。
官方文档见:https://freeswitch.org/confluence/display/FREESWITCH/Channel+Variables+Catalog。
通道变量与info
应用程序输出变量的对应关系见官方文档:https://freeswitch.org/confluence/display/FREESWITCH/Channel+Variables。
- ani:主叫的ANI,一般与caller_id_number相同。
- aniii:主叫的ANI II,如果有的话。
- answered_time:应答时间。
- billsec:计费时长。从应答开始到呼叫结束。
- bridge_hangup_cause:记录b腿bridge失败的原因。
- bypass_media:来话是否启用媒体绕过模式。
- caller_id_name:主叫名称。
- caller_id_number:主叫号码。
- channel_name:Channel名称。
- context:Dialplan当前的Context。
- continue_on_fail:当bridge失败时是否继续执行后面的action。还可以为挂断原因的逗号分隔的列表,挂断原因见originate_disposition。
- created_time:创建时间。
- destination_number:被叫号码。
- detect_speech_result:语音识别结果。
- dialplan:使用的Dialplan模块的名字,如XML、YAML、lua、enum、asterisk、lcr等。
- direction:呼叫方向,Inbound或Outbound。
- domain:租户域。
- domain_name:租户域的名字。
- dtmf-type:DTMF类型。inband为使用带内DTMF,info为使用SIP的INFO消息。
- duration:呼叫时长。从呼叫开始到呼叫结束。
- effective_caller_id_number:设置在a-leg上,但影响b-leg的主叫号码显示。
- enable_file_write_buffering:录音时是否先写到内存缓冲区中,以减少IO访问。默认为true。默认缓冲区大小是65536字节。
- end_stamp:结束时间。
- execute_on_answer:应答时的钩子。格式为:APP [ARG[ ...]]。
- fifo_bridge_uuid:呼叫取回时指定来话Channel。
- fifo_caller_exit_key:退出呼叫队列等待的按键。
- fifo_caller_exit_to_orbit:退出呼叫队列等待时是否转至其它号码。如否则直接退出。
- fifo_chime_freq:呼叫队列等待时给来话播放提示音的间隔秒数。
- fifo_chime_list:呼叫队列等待时每隔一段时间给来话播放的提示音。
- fifo_music:呼叫停泊时播放的音乐。
- fifo_orbit_announce:坐席接听时先给来话播放的提示音。
- fifo_orbit_context:等待超时转至的Context。
- fifo_orbit_dialplan:等待超时转至的Dialplan。
- fifo_orbit_exten:等待超时转至的号码。格式为USERNAME:TIMEOUTSEC。
- fifo_override_announce:坐席接听后在来话通话前给坐席播放的提示音。
- fifo_position:来话在当前队列中的位置。执行过程自动产生。
- fifo_priority:将来话放至呼叫队列的优先级。1至10,默认为5,越大优先级越高。
- fifo_serviced_by:为来话服务的坐席Channel。执行过程自动产生。
- hangup_after_bridge:在bridge正常完成后是否挂机,不继续执行后面的action。
- hangup_time:挂机时间。
- ignore_early_media:忽略早期媒体,避免被认为已接听。
- instant_ringback:见《FreeSWITCH权威指南》P219。
- is_loopback:通道是否是由loopback呼叫字符串创建的。
- leg_timeout:等待返回媒体(如183或200)的超时时间。
- loopback_bowout:是否令loopback呼叫字符串创建的那条额外的腿在完成使命后尽快释放。
- network_addr:主叫的IP。
- nibble_account:计费模块的计费账号。
- nibble_rate:计费模块的每分钟费率。
- origination_caller_id_name:可以设置在a-leg上,也可以设置在b-leg上,影响本leg的主叫名称显示。
- origination_caller_id_number:可以设置在a-leg上,也可以设置在b-leg上,影响本leg的主叫号码显示。
- origination_cancel_key:取消协商转的按键。
- originate_disposition:记录b腿bridge失败的原因,只读。其值为挂机原因的枚举值。
- outbound_caller_id_name:设置在a-leg上,但影响b-leg的主叫名称显示。
- playback_delimiter:file_string中多个文件的分隔符。
- playback_sleep_val:file_string中多个文件的播放时间间隔。
- profile_index:Profile Index。
- read_codec:读Codec。
- read_rate:读采样率。
- record_sample_rate:录音时的采样率,进行实时的转码。可为:8000、12000、16000、24000、32000、11025、22050、44100、48000。
- RECORD_ANSWER_REQ:是否等通话被应答后才开始录音,可以防止录制不必要的早期媒体。默认为false。
- RECORD_APPEND:如录音文件已存在,是否在文件后追加录音而不是覆盖文件,可用于电话中断重新建立后重新录音。默认为false。
- RECORD_ARTIST:文件元信息之一。
- RECORD_BRIDGE_REQ:是否等当前的Channel与其它Channel桥接后才开始录音,可以防止录制不必要的早期媒体。
- RECORD_COMMENT:文件元信息之一。
- RECORD_COPYRIGHT:文件元信息之一。
- RECORD_DATE:文件元信息之一。
- RECORD_FINAL_TIMEOUT_MS:录音过程中检测不到声音的超时毫秒数,超时则停止录音。
- RECORD_HANGUP_ON_ERROR:录音失败时是否挂断电话。默认为false。
- RECORD_INITIAL_TIMEOUT_MS:从录音开始检测不到声音的超时毫秒数,超时则停止录音。
- RECORD_MIN_SEC:最小录音秒数。如小于该值,则删除录音文件。默认为3。
- RECORD_READ_ONLY:是否只录读方向的录音。
- RECORD_SILENCE_THRESHOLD:静音能量阈值,小于该值认为是静音。默认为200。
- RECORD_SOFTWARE:文件元信息之一。
- RECORD_STEREO:是否录制立体声。
- RECORD_STEREO_SWAP:是否录制立体声,同时将左右声道互换。
- RECORD_TITLE:文件元信息之一。
- RECORD_WRITE_ONLY:是否只录写方向的录音。
- rdnis:原被叫号码,一般用于呼叫转移时。
- rtp_auto_adjust:是否启用RTP自动调整。
- source:呼叫来源,来自哪一个FreeSWITCH模块,如mod_sofia、mod_portaudio、mod_freetdm等。
- start_stamp:开始时间。
- state:当前Channel的状态。
- state_number:当前Channel的状态整数值。
- transfer_after_bridge:通话结束后再转移到呼叫此号码,重新等待。
- transfer_ringback:见《FreeSWITCH权威指南》P218。
- transfer_time:转移时间。
- tts_engine:TTS引擎。
- tts_voice:TTS嗓音。
- username:用户名。
- uuid:Channel的UUID。
- write_codec:写Codec。
- write_rate:写采样率。