FreeSwitch中使用HTTP服务接受话单

FreeSwitch支持将话单写入远程的HTTP服务器,在哪里你可以使用任何喜欢的编程语言处理话单以及写入任何可能的数据库。有三个模块可以实现他:mod_xml_cdr、mod_json_cdr以及mod_format_cdr。前两者分别产生xml和json格式的话单,最后一个模块则可配置产生XML或JSON格式的话单。

使用mod_xml_cdr为例:

① 在C:\Program Files\FreeSWITCH\conf\autoload_configs\modules.conf.xml中释放<load module="mod_xml_cdr"/> 的注释。
② C:\Program Files\FreeSWITCH\conf\autoload_configs\xml_cdr.conf.xml中修改注释,将
<param name="url" value="http://localhost:7786/huaDan/postHuaDan"/>中的value指向你的HTTP服务器地址。

这里写图片描述
③ 启动HTTP服务,接受http请求,其中参数会带有一个uuid,如下:
uri:/huaDan/postHuaDan?uuid=a_6f644233-fcae-46bb-ad45-74838a9c51ab。
得到的XML文件大致如下:

<?xml version="1.0"?>
<cdr core-uuid="2df5304f-b9b6-456b-8d6c-2dd01afd7771" switchname="bh">
  <channel_data>
    <state>CS_REPORTING</state>
    <direction>inbound</direction>
    <state_number>11</state_number>
    <flags>0=1;1=1;3=1;36=1;37=1;39=1;42=1;47=1;52=1;73=1;110=1;111=1;115=1;117=1</flags>
    <caps>1=1;2=1;3=1;4=1;5=1;6=1</caps>
  </channel_data>
  <variables>
    <direction>inbound</direction>
    <uuid>6f644233-fcae-46bb-ad45-74838a9c51ab</uuid>
    <session_id>1</session_id>
    <sip_from_user>1000</sip_from_user>
    <sip_from_uri>1000%40192.168.0.100</sip_from_uri>
    <sip_from_host>192.168.0.100</sip_from_host>
    <channel_name>sofia/internal/1000%40192.168.0.100</channel_name>
    <ep_codec_string>PCMU%408000h%4020i%4064000b,PCMA%408000h%4020i%4064000b,G722%408000h%4020i%4064000b</ep_codec_string>
    <sip_local_network_addr>192.163.20.15</sip_local_network_addr>
    <sip_network_ip>192.168.0.20</sip_network_ip>
    <sip_network_port>5062</sip_network_port>
    <sip_received_ip>192.168.0.20</sip_received_ip>
    <sip_received_port>5062</sip_received_port>
    <sip_via_protocol>udp</sip_via_protocol>
    <sip_authorized>true</sip_authorized>
    <Event-Name>REQUEST_PARAMS</Event-Name>
    <Core-UUID>2df5304f-b9b6-456b-8d6c-2dd01afd7771</Core-UUID>
    <FreeSWITCH-Hostname>bh</FreeSWITCH-Hostname>
    <FreeSWITCH-Switchname>bh</FreeSWITCH-Switchname>
    <FreeSWITCH-IPv4>192.168.0.100</FreeSWITCH-IPv4>
    <FreeSWITCH-IPv6>2001%3A0%3A9d38%3A90d7%3A8ab%3A247b%3A84b6%3Af736</FreeSWITCH-IPv6>
    <Event-Date-Local>2016-02-29%2015%3A55%3A12</Event-Date-Local>
    <Event-Date-GMT>Mon,%2029%20Feb%202016%2007%3A55%3A12%20GMT</Event-Date-GMT>
    <Event-Date-Timestamp>1456732512842166</Event-Date-Timestamp>
    <Event-Calling-File>sofia.c</Event-Calling-File>
    <Event-Calling-Function>sofia_handle_sip_i_invite</Event-Calling-Function>
    <Event-Calling-Line-Number>9042</Event-Calling-Line-Number>
    <Event-Sequence>577</Event-Sequence>
    <sip_number_alias>1000</sip_number_alias>
    <sip_auth_username>1000</sip_auth_username>
    <sip_auth_realm>192.168.0.100</sip_auth_realm>
    <number_alias>1000</number_alias>
    <requested_domain_name>192.168.0.100</requested_domain_name>
    <toll_allow>domestic,international,local</toll_allow>
    <accountcode>1000</accountcode>
    <user_context>default</user_context>
    <directory-visible>true</directory-visible>
    <directory-exten-visible>true</directory-exten-visible>
    <limit_max>1</limit_max>
    <effective_caller_id_name>Extension%201000</effective_caller_id_name>
    <effective_caller_id_number>1000</effective_caller_id_number>
    <outbound_caller_id_name>1000</outbound_caller_id_name>
    <outbound_caller_id_number>1000</outbound_caller_id_number>
    <callgroup>techsupport</callgroup>
    <user_name>1000</user_name>
    <domain_name>192.168.0.100</domain_name>
    <sip_from_user_stripped>1000</sip_from_user_stripped>
    <sofia_profile_name>internal</sofia_profile_name>
    <recovery_profile_name>internal</recovery_profile_name>
    <sip_req_user>1002</sip_req_user>
    <sip_req_uri>1002%40192.168.0.100</sip_req_uri>
    <sip_req_host>192.168.0.100</sip_req_host>
    <sip_to_user>1002</sip_to_user>
    <sip_to_uri>1002%40192.168.0.100</sip_to_uri>
    <sip_to_host>192.168.0.100</sip_to_host>
    <sip_contact_user>1000</sip_contact_user>
    <sip_contact_port>5062</sip_contact_port>
    <sip_contact_uri>1000%40192.168.0.20%3A5062</sip_contact_uri>
    <sip_contact_host>192.168.0.20</sip_contact_host>
    <sip_user_agent>Yealink%20SIP-T20P%209.60.0.100</sip_user_agent>
    <sip_via_host>192.168.0.20</sip_via_host>
    <sip_via_port>5062</sip_via_port>
    <max_forwards>70</max_forwards>
    <presence_id>1000%40192.168.0.100</presence_id>
    <DP_MATCH>1002</DP_MATCH>
    <DP_MATCH>1002</DP_MATCH>
    <call_uuid>6f644233-fcae-46bb-ad45-74838a9c51ab</call_uuid>
    <open>true</open>
    <RFC2822_DATE>Mon,%2029%20Feb%202016%2015%3A55%3A23%20%D6%D0%B9%FA%B1%EA%D7%BC%CA%B1%BC%E4</RFC2822_DATE>
    <dialed_extension>1002</dialed_extension>
    <export_vars>RFC2822_DATE,dialed_extension</export_vars>
    <ringback>%25(2000,4000,440,480)</ringback>
    <transfer_ringback>local_stream%3A//moh</transfer_ringback>
    <call_timeout>30</call_timeout>
    <hangup_after_bridge>true</hangup_after_bridge>
    <continue_on_fail>true</continue_on_fail>
    <called_party_callgroup>techsupport</called_party_callgroup>
    <current_application_data>user/1002%40192.168.0.100</current_application_data>
    <current_application>bridge</current_application>
    <dialed_user>1002</dialed_user>
    <dialed_domain>192.168.0.100</dialed_domain>
    <inherit_codec>true</inherit_codec>
    <originated_legs>aa90679c-63f2-4f4b-8772-374ac781ce84%3BOutbound%20Call%3B1002</originated_legs>
    <originated_legs>aa90679c-63f2-4f4b-8772-374ac781ce84%3BOutbound%20Call%3B1002</originated_legs>
    <rtp_use_codec_string>OPUS,G722,PCMU,PCMA,GSM</rtp_use_codec_string>
    <rtp_use_codec_name>PCMU</rtp_use_codec_name>
    <rtp_use_codec_rate>8000</rtp_use_codec_rate>
    <rtp_use_codec_ptime>20</rtp_use_codec_ptime>
    <rtp_use_codec_channels>1</rtp_use_codec_channels>
    <rtp_last_audio_codec_string>PCMU%408000h%4020i%401c</rtp_last_audio_codec_string>
    <original_read_codec>PCMU</original_read_codec>
    <original_read_rate>8000</original_read_rate>
    <write_codec>PCMU</write_codec>
    <write_rate>8000</write_rate>
    <local_media_ip>192.168.0.100</local_media_ip>
    <local_media_port>20556</local_media_port>
    <advertised_media_ip>192.168.0.100</advertised_media_ip>
    <rtp_use_timer_name>soft</rtp_use_timer_name>
    <rtp_use_pt>0</rtp_use_pt>
    <rtp_use_ssrc>1511053776</rtp_use_ssrc>
    <switch_m_sdp>v%3D0%0D%0Ao%3D-%201094888251%203%20IN%20IP4%20192.168.0.100%0D%0As%3DX-Lite%20release%204.9.2%20stamp%2079048%0D%0Ac%3DIN%20IP4%20192.168.0.100%0D%0At%3D0%200%0D%0Am%3Daudio%2059748%20RTP/AVP%200%208%209%20101%0D%0Aa%3Drtpmap%3A101%20telephone-event/8000%0D%0Aa%3Dfmtp%3A101%200-15%0D%0A</switch_m_sdp>
    <read_codec>PCMU</read_codec>
    <read_rate>8000</read_rate>
    <endpoint_disposition>ANSWER</endpoint_disposition>
    <originate_causes>aa90679c-63f2-4f4b-8772-374ac781ce84%3BNONE</originate_causes>
    <originate_causes>aa90679c-63f2-4f4b-8772-374ac781ce84%3BNONE</originate_causes>
    <originate_disposition>SUCCESS</originate_disposition>
    <DIALSTATUS>SUCCESS</DIALSTATUS>
    <last_bridge_to>aa90679c-63f2-4f4b-8772-374ac781ce84</last_bridge_to>
    <bridge_channel>sofia/internal/sip%3A1002%40192.168.0.100%3A57122</bridge_channel>
    <bridge_uuid>aa90679c-63f2-4f4b-8772-374ac781ce84</bridge_uuid>
    <signal_bond>aa90679c-63f2-4f4b-8772-374ac781ce84</signal_bond>
    <sip_to_tag>8tyD0r3gy0H5D</sip_to_tag>
    <sip_from_tag>1290347537</sip_from_tag>
    <sip_cseq>2</sip_cseq>
    <sip_call_id>1978807484%40192.168.0.20</sip_call_id>
    <sip_full_via>SIP/2.0/UDP%20192.168.0.20%3A5062%3Bbranch%3Dz9hG4bK1893176347</sip_full_via>
    <sip_from_display>1000</sip_from_display>
    <sip_full_from>%221000%22%20%3Csip%3A1000%40192.168.0.100%3E%3Btag%3D1290347537</sip_full_from>
    <sip_full_to>%3Csip%3A1002%40192.168.0.100%3E%3Btag%3D8tyD0r3gy0H5D</sip_full_to>
    <last_sent_callee_id_name>Outbound%20Call</last_sent_callee_id_name>
    <last_sent_callee_id_number>1002</last_sent_callee_id_number>
    <switch_r_sdp>v%3D0%0D%0Ao%3D-%2020019%2020020%20IN%20IP4%20192.168.0.20%0D%0As%3DSDP%20data%0D%0Ac%3DIN%20IP4%20192.168.0.20%0D%0At%3D0%200%0D%0Am%3Daudio%2011796%20RTP/AVP%200%20101%0D%0Aa%3Drtpmap%3A0%20PCMU/8000%0D%0Aa%3Drtpmap%3A101%20telephone-event/8000%0D%0Aa%3Dfmtp%3A101%200-15%0D%0Aa%3Dptime%3A20%0D%0A</switch_r_sdp>
    <remote_media_ip>192.168.0.20</remote_media_ip>
    <remote_media_port>11796</remote_media_port>
    <rtp_audio_recv_pt>0</rtp_audio_recv_pt>
    <dtmf_type>rfc2833</dtmf_type>
    <rtp_2833_send_payload>101</rtp_2833_send_payload>
    <rtp_2833_recv_payload>101</rtp_2833_recv_payload>
    <rtp_local_sdp_str>v%3D0%0Ao%3DFreeSWITCH%201456711968%201456711971%20IN%20IP4%20192.168.0.100%0As%3DFreeSWITCH%0Ac%3DIN%20IP4%20192.168.0.100%0At%3D0%200%0Am%3Daudio%2020556%20RTP/AVP%200%20101%0Aa%3Drtpmap%3A0%20PCMU/8000%0Aa%3Drtpmap%3A101%20telephone-event/8000%0Aa%3Dfmtp%3A101%200-16%0Aa%3Dptime%3A20%0Aa%3Dsendrecv%0A</rtp_local_sdp_str>
    <zrtp_secure_media_confirmed_audio>false</zrtp_secure_media_confirmed_audio>
    <last_bridge_hangup_cause>MEDIA_TIMEOUT</last_bridge_hangup_cause>
    <bridge_hangup_cause>MEDIA_TIMEOUT</bridge_hangup_cause>
    <hangup_cause>MEDIA_TIMEOUT</hangup_cause>
    <hangup_cause_q850>16</hangup_cause_q850>
    <digits_dialed>none</digits_dialed>
    <start_stamp>2016-02-29%2015%3A55%3A12</start_stamp>
    <profile_start_stamp>2016-02-29%2015%3A55%3A12</profile_start_stamp>
    <answer_stamp>2016-02-29%2015%3A55%3A26</answer_stamp>
    <bridge_stamp>2016-02-29%2015%3A55%3A26</bridge_stamp>
    <progress_stamp>2016-02-29%2015%3A55%3A24</progress_stamp>
    <progress_media_stamp>2016-02-29%2015%3A55%3A24</progress_media_stamp>
    <end_stamp>2016-02-29%2016%3A00%3A26</end_stamp>
    <start_epoch>1456732512</start_epoch>
    <start_uepoch>1456732512981174</start_uepoch>
    <profile_start_epoch>1456732512</profile_start_epoch>
    <profile_start_uepoch>1456732512981174</profile_start_uepoch>
    <answer_epoch>1456732526</answer_epoch>
    <answer_uepoch>1456732526001422</answer_uepoch>
    <bridge_epoch>1456732526</bridge_epoch>
    <bridge_uepoch>1456732526001422</bridge_uepoch>
    <last_hold_epoch>0</last_hold_epoch>
    <last_hold_uepoch>0</last_hold_uepoch>
    <hold_accum_seconds>0</hold_accum_seconds>
    <hold_accum_usec>0</hold_accum_usec>
    <hold_accum_ms>0</hold_accum_ms>
    <resurrect_epoch>0</resurrect_epoch>
    <resurrect_uepoch>0</resurrect_uepoch>
    <progress_epoch>1456732524</progress_epoch>
    <progress_uepoch>1456732524001821</progress_uepoch>
    <progress_media_epoch>1456732524</progress_media_epoch>
    <progress_media_uepoch>1456732524261836</progress_media_uepoch>
    <end_epoch>1456732826</end_epoch>
    <end_uepoch>1456732826020889</end_uepoch>
    <last_app>bridge</last_app>
    <last_arg>user/1002%40192.168.0.100</last_arg>
    <caller_id>%221000%22%20%3C1000%3E</caller_id>
    <duration>314</duration>
    <billsec>300</billsec>
    <progresssec>12</progresssec>
    <answersec>14</answersec>
    <waitsec>14</waitsec>
    <progress_mediasec>12</progress_mediasec>
    <flow_billsec>314</flow_billsec>
    <mduration>313039</mduration>
    <billmsec>300019</billmsec>
    <progressmsec>11020</progressmsec>
    <answermsec>13020</answermsec>
    <waitmsec>13020</waitmsec>
    <progress_mediamsec>11280</progress_mediamsec>
    <flow_billmsec>313039</flow_billmsec>
    <uduration>313039715</uduration>
    <billusec>300019467</billusec>
    <progressusec>11020647</progressusec>
    <answerusec>13020248</answerusec>
    <waitusec>13020248</waitusec>
    <progress_mediausec>11280662</progress_mediausec>
    <flow_billusec>313039715</flow_billusec>
    <sip_hangup_disposition>send_bye</sip_hangup_disposition>
    <rtp_audio_in_raw_bytes>2591708</rtp_audio_in_raw_bytes>
    <rtp_audio_in_media_bytes>2591192</rtp_audio_in_media_bytes>
    <rtp_audio_in_packet_count>15069</rtp_audio_in_packet_count>
    <rtp_audio_in_media_packet_count>15066</rtp_audio_in_media_packet_count>
    <rtp_audio_in_skip_packet_count>19</rtp_audio_in_skip_packet_count>
    <rtp_audio_in_jitter_packet_count>0</rtp_audio_in_jitter_packet_count>
    <rtp_audio_in_dtmf_packet_count>0</rtp_audio_in_dtmf_packet_count>
    <rtp_audio_in_cng_packet_count>0</rtp_audio_in_cng_packet_count>
    <rtp_audio_in_flush_packet_count>3</rtp_audio_in_flush_packet_count>
    <rtp_audio_in_largest_jb_size>0</rtp_audio_in_largest_jb_size>
    <rtp_audio_in_jitter_min_variance>0.72</rtp_audio_in_jitter_min_variance>
    <rtp_audio_in_jitter_max_variance>400.00</rtp_audio_in_jitter_max_variance>
    <rtp_audio_in_jitter_loss_rate>0.00</rtp_audio_in_jitter_loss_rate>
    <rtp_audio_in_jitter_burst_rate>0.00</rtp_audio_in_jitter_burst_rate>
    <rtp_audio_in_mean_interval>20.00</rtp_audio_in_mean_interval>
    <rtp_audio_in_flaw_total>0</rtp_audio_in_flaw_total>
    <rtp_audio_in_quality_percentage>100.00</rtp_audio_in_quality_percentage>
    <rtp_audio_in_mos>4.50</rtp_audio_in_mos>
    <rtp_audio_out_raw_bytes>13932</rtp_audio_out_raw_bytes>
    <rtp_audio_out_media_bytes>13932</rtp_audio_out_media_bytes>
    <rtp_audio_out_packet_count>81</rtp_audio_out_packet_count>
    <rtp_audio_out_media_packet_count>81</rtp_audio_out_media_packet_count>
    <rtp_audio_out_skip_packet_count>0</rtp_audio_out_skip_packet_count>
    <rtp_audio_out_dtmf_packet_count>0</rtp_audio_out_dtmf_packet_count>
    <rtp_audio_out_cng_packet_count>0</rtp_audio_out_cng_packet_count>
    <rtp_audio_rtcp_packet_count>0</rtp_audio_rtcp_packet_count>
    <rtp_audio_rtcp_octet_count>0</rtp_audio_rtcp_octet_count>
  </variables>
  <app_log>
    <application app_name="set" app_data="open=true" app_stamp="1456732513016175"></application>
    <application app_name="log" app_data="CRIT WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING " app_stamp="1456732513017176"></application>
    <application app_name="log" app_data="CRIT Open C:/Program Files/FreeSWITCH/conf/vars.xml and change the default_password." app_stamp="1456732513017176"></application>
    <application app_name="log" app_data="CRIT Once changed type 'reloadxml' at the console." app_stamp="1456732513018177"></application>
    <application app_name="log" app_data="CRIT WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING " app_stamp="1456732513018177"></application>
    <application app_name="sleep" app_data="10000" app_stamp="1456732513018177"></application>
    <application app_name="hash" app_data="insert/192.168.0.100-spymap/1000/6f644233-fcae-46bb-ad45-74838a9c51ab" app_stamp="1456732523525791"></application>
    <application app_name="hash" app_data="insert/192.168.0.100-last_dial/1000/1002" app_stamp="1456732523526792"></application>
    <application app_name="hash" app_data="insert/192.168.0.100-last_dial/global/6f644233-fcae-46bb-ad45-74838a9c51ab" app_stamp="1456732523527792"></application>
    <application app_name="export" app_data="RFC2822_DATE=Mon, 29 Feb 2016 15:55:23 &#x5FC;&#x2B1;" app_stamp="1456732523528792"></application>
    <application app_name="export" app_data="dialed_extension=1002" app_stamp="1456732523528792"></application>
    <application app_name="bind_meta_app" app_data="1 b s execute_extension::dx XML features" app_stamp="1456732523529793"></application>
    <application app_name="bind_meta_app" app_data="2 b s record_session::C:/Program Files/FreeSWITCH/recordings/1000.2016-02-29-15-55-23.wav" app_stamp="1456732523551793"></application>
    <application app_name="bind_meta_app" app_data="3 b s execute_extension::cf XML features" app_stamp="1456732523551793"></application>
    <application app_name="bind_meta_app" app_data="4 b s execute_extension::att_xfer XML features" app_stamp="1456732523552795"></application>
    <application app_name="set" app_data="ringback=%(2000,4000,440,480)" app_stamp="1456732523553793"></application>
    <application app_name="set" app_data="transfer_ringback=local_stream://moh" app_stamp="1456732523554793"></application>
    <application app_name="set" app_data="call_timeout=30" app_stamp="1456732523554793"></application>
    <application app_name="set" app_data="hangup_after_bridge=true" app_stamp="1456732523555793"></application>
    <application app_name="set" app_data="continue_on_fail=true" app_stamp="1456732523556793"></application>
    <application app_name="hash" app_data="insert/192.168.0.100-call_return/1002/1000" app_stamp="1456732523557794"></application>
    <application app_name="hash" app_data="insert/192.168.0.100-last_dial_ext/1002/6f644233-fcae-46bb-ad45-74838a9c51ab" app_stamp="1456732523557794"></application>
    <application app_name="set" app_data="called_party_callgroup=techsupport" app_stamp="1456732523578796"></application>
    <application app_name="hash" app_data="insert/192.168.0.100-last_dial_ext/techsupport/6f644233-fcae-46bb-ad45-74838a9c51ab" app_stamp="1456732523579795"></application>
    <application app_name="hash" app_data="insert/192.168.0.100-last_dial_ext/global/6f644233-fcae-46bb-ad45-74838a9c51ab" app_stamp="1456732523580795"></application>
    <application app_name="hash" app_data="insert/192.168.0.100-last_dial/techsupport/6f644233-fcae-46bb-ad45-74838a9c51ab" app_stamp="1456732523581795"></application>
    <application app_name="bridge" app_data="user/1002@192.168.0.100" app_stamp="1456732523581795"></application>
  </app_log>
  <callflow dialplan="XML" unique-id="46e666c6-92b7-4c3e-a9db-af1fc3e62c9d" profile_index="1">
    <extension name="tod_example" number="1002" current_app="answer">
      <application app_name="set" app_data="open=true"></application>
      <application app_name="log" app_data="CRIT WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING "></application>
      <application app_name="log" app_data="CRIT Open C:/Program Files/FreeSWITCH/conf/vars.xml and change the default_password."></application>
      <application app_name="log" app_data="CRIT Once changed type 'reloadxml' at the console."></application>
      <application app_name="log" app_data="CRIT WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING "></application>
      <application app_name="sleep" app_data="10000"></application>
      <application app_name="hash" app_data="insert/${domain_name}-spymap/${caller_id_number}/${uuid}"></application>
      <application app_name="hash" app_data="insert/${domain_name}-last_dial/${caller_id_number}/${destination_number}"></application>
      <application app_name="hash" app_data="insert/${domain_name}-last_dial/global/${uuid}"></application>
      <application app_name="export" app_data="RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)}"></application>
      <application app_name="export" app_data="dialed_extension=1002"></application>
      <application app_name="bind_meta_app" app_data="1 b s execute_extension::dx XML features"></application>
      <application app_name="bind_meta_app" app_data="2 b s record_session::C:/Program Files/FreeSWITCH/recordings/${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"></application>
      <application app_name="bind_meta_app" app_data="3 b s execute_extension::cf XML features"></application>
      <application app_name="bind_meta_app" app_data="4 b s execute_extension::att_xfer XML features"></application>
      <application app_name="set" app_data="ringback=${us-ring}"></application>
      <application app_name="set" app_data="transfer_ringback=local_stream://moh"></application>
      <application app_name="set" app_data="call_timeout=30"></application>
      <application app_name="set" app_data="hangup_after_bridge=true"></application>
      <application app_name="set" app_data="continue_on_fail=true"></application>
      <application app_name="hash" app_data="insert/${domain_name}-call_return/${dialed_extension}/${caller_id_number}"></application>
      <application app_name="hash" app_data="insert/${domain_name}-last_dial_ext/${dialed_extension}/${uuid}"></application>
      <application app_name="set" app_data="called_party_callgroup=${user_data(${dialed_extension}@${domain_name} var callgroup)}"></application>
      <application app_name="hash" app_data="insert/${domain_name}-last_dial_ext/${called_party_callgroup}/${uuid}"></application>
      <application app_name="hash" app_data="insert/${domain_name}-last_dial_ext/global/${uuid}"></application>
      <application app_name="hash" app_data="insert/${domain_name}-last_dial/${called_party_callgroup}/${uuid}"></application>
      <application app_name="bridge" app_data="user/${dialed_extension}@${domain_name}"></application>
      <application last_executed="true" app_name="answer" app_data=""></application>
      <application app_name="sleep" app_data="1000"></application>
      <application app_name="bridge" app_data="loopback/app=voicemail:default ${domain_name} ${dialed_extension}"></application>
    </extension>
    <caller_profile>
      <username>1000</username>
      <dialplan>XML</dialplan>
      <caller_id_name>1000</caller_id_name>
      <caller_id_number>1000</caller_id_number>
      <callee_id_name>Outbound Call</callee_id_name>
      <callee_id_number>1002</callee_id_number>
      <ani>1000</ani>
      <aniii></aniii>
      <network_addr>192.168.0.20</network_addr>
      <rdnis></rdnis>
      <destination_number>1002</destination_number>
      <uuid>6f644233-fcae-46bb-ad45-74838a9c51ab</uuid>
      <source>mod_sofia</source>
      <context>default</context>
      <chan_name>sofia/internal/1000@192.168.0.100</chan_name>
      <origination>
        <origination_caller_profile>
          <username>1000</username>
          <dialplan>XML</dialplan>
          <caller_id_name>Extension 1000</caller_id_name>
          <caller_id_number>1000</caller_id_number>
          <callee_id_name>Outbound Call</callee_id_name>
          <callee_id_number>1002</callee_id_number>
          <ani>1000</ani>
          <aniii></aniii>
          <network_addr>192.168.0.100</network_addr>
          <rdnis></rdnis>
          <destination_number>1002</destination_number>
          <uuid>aa90679c-63f2-4f4b-8772-374ac781ce84</uuid>
          <source>mod_sofia</source>
          <context>default</context>
          <chan_name>sofia/internal/sip:1002@192.168.0.100:57122</chan_name>
        </origination_caller_profile>
        <origination_caller_profile>
          <username>1000</username>
          <dialplan>XML</dialplan>
          <caller_id_name>Extension 1000</caller_id_name>
          <caller_id_number>1000</caller_id_number>
          <callee_id_name>Outbound Call</callee_id_name>
          <callee_id_number>1002</callee_id_number>
          <ani>1000</ani>
          <aniii></aniii>
          <network_addr>192.168.0.20</network_addr>
          <rdnis></rdnis>
          <destination_number>1002</destination_number>
          <uuid>aa90679c-63f2-4f4b-8772-374ac781ce84</uuid>
          <source>mod_sofia</source>
          <context>default</context>
          <chan_name>sofia/internal/sip:1002@192.168.0.100:57122</chan_name>
        </origination_caller_profile>
      </origination>
      <originatee>
        <originatee_caller_profile>
          <username>1000</username>
          <dialplan>XML</dialplan>
          <caller_id_name>Extension 1000</caller_id_name>
          <caller_id_number>1000</caller_id_number>
          <callee_id_name>Outbound Call</callee_id_name>
          <callee_id_number>1002</callee_id_number>
          <ani>1000</ani>
          <aniii></aniii>
          <network_addr>192.168.0.100</network_addr>
          <rdnis></rdnis>
          <destination_number>1002</destination_number>
          <uuid>aa90679c-63f2-4f4b-8772-374ac781ce84</uuid>
          <source>mod_sofia</source>
          <context>default</context>
          <chan_name>sofia/internal/sip:1002@192.168.0.100:57122</chan_name>
        </originatee_caller_profile>
        <originatee_caller_profile>
          <username>1000</username>
          <dialplan>XML</dialplan>
          <caller_id_name>Extension 1000</caller_id_name>
          <caller_id_number>1000</caller_id_number>
          <callee_id_name>Outbound Call</callee_id_name>
          <callee_id_number>1002</callee_id_number>
          <ani>1000</ani>
          <aniii></aniii>
          <network_addr>192.168.0.100</network_addr>
          <rdnis></rdnis>
          <destination_number>1002</destination_number>
          <uuid>aa90679c-63f2-4f4b-8772-374ac781ce84</uuid>
          <source>mod_sofia</source>
          <context>default</context>
          <chan_name>sofia/internal/sip:1002@192.168.0.100:57122</chan_name>
        </originatee_caller_profile>
      </originatee>
    </caller_profile>
    <times>
      <created_time>1456732512981174</created_time线程名:pool-1-thread-1
>
      <profile_created_time>1456732512981174</profile_created_time>
      <progress_time>1456732524001821</progress_time>
      <progress_media_time>1456732524261836</progress_media_time>
      <answered_time>1456732526001422</answered_time>
      <bridged_time>1456732526001422</bridged_time>
      <last_hold_time>0</last_hold_time>
      <hold_accum_time>0</hold_accum_time>
      <hangup_time>1456732826020889</hangup_time>
      <resurrect_time>0</resurrect_time>
      <transfer_time>0</transfer_time>
    </times>
  </callflow>
</cdr>

Xml中部分参数详细讲解见:https://freeswitch.org/confluence/display/FREESWITCH/mod_xml_cdr

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值