Hc_restfs_list
Команда предназначена для получения списка файлов, хранящихся на файловой системе RestFS на уровне системы или виртуальной АТС. За одну операцию можно получить список файлов для нескольких папок.
Аналог команды в CoCon:
domain/<DOMAIN>/restfs/list
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/restfs_list
Код HTTP-ответа:
- 201 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- systemRequestType --> <xs:complexType name="systemRequestType"> <xs:attribute name="source" type="xs:string" use="required"/> </xs:complexType> <!-- domainRequestType --> <xs:complexType name="domainRequestType"> <xs:attribute name="source" type="xs:string" use="required"/> </xs:complexType> <!-- errorType --> <xs:complexType name="errorType"> <xs:attribute name="cause" type="xs:string" use="required"/> <xs:attribute name="description" type="xs:string" use="optional"/> </xs:complexType> <!-- fileType --> <xs:complexType name="fileType"> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="size" type="xs:integer" use="required"/> </xs:complexType> <!-- groupType --> <xs:complexType name="groupType"> <xs:sequence> <xs:element name="file" type="fileType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> <!-- systemResultType --> <xs:complexType name="systemResultType"> <xs:sequence> <xs:element name="error" type="errorType" minOccurs="0" maxOccurs="1"/> <xs:element name="group" type="groupType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="file" type="fileType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="source" type="xs:string" use="required"/> </xs:complexType> <!-- domainResultType --> <xs:complexType name="domainResultType"> <xs:sequence> <xs:element name="error" type="errorType" minOccurs="0" maxOccurs="1"/> <xs:element name="group" type="groupType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="file" type="fileType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="source" type="xs:string" use="required"/> </xs:complexType> <!-- requestType --> <xs:complexType name="requestType"> <xs:sequence> <xs:element name="system" type="systemRequestType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="domain" type="domainRequestType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="domain" type="xs:string" use="required"/> </xs:complexType> <!-- resultType --> <xs:complexType name="resultType"> <xs:sequence> <xs:element name="system" type="systemResultType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="domain" type="domainResultType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- in --> <xs:element name="in"> <xs:complexType> <xs:sequence> <xs:element name="request" type="requestType"/> </xs:sequence> </xs:complexType> </xs:element> <!-- out --> <xs:element name="out"> <xs:complexType> <xs:sequence> <xs:element name="result" type="resultType"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/restfs_list
<?xml version="1.0" encoding="UTF-8"?> <in xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="restfs_list.xsd"> <request domain="biysk.local"> <system source="sounds"/> <domain source="sounds"/> </request> </in>
Ответ:
<?xml version="1.0"?> <out xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="restfs_list.xsd"> <result> <system source="sounds"> <group name="et"> <file name="19.wav" size="16972"/> <file name="5.wav" size="9798"/> <file name="hours1.wav" size="11296"/> <file name="hours2.wav" size="14224"/> <file name="1h.wav" size="10186"/> <file name="7.wav" size="11608"/> <file name="minute4.wav" size="13012"/> <file name="12.wav" size="13864"/> <file name="15.wav" size="13186"/> <file name="18.wav" size="17654"/> <file name="14.wav" size="16392"/> <file name="second2.wav" size="11000"/> <file name="1.wav" size="12282"/> <file name="40.wav" size="13372"/> <file name="50.wav" size="13140"/> <file name="3.wav" size="8590"/> <file name="8.wav" size="12954"/> <file name="11.wav" size="13532"/> <file name="minute3.wav" size="14568"/> <file name="2h.wav" size="11354"/> <file name="30.wav" size="11338"/> <file name="17.wav" size="14998"/> <file name="13.wav" size="13326"/> <file name="2.wav" size="11312"/> <file name="second1.wav" size="12672"/> <file name="second3.wav" size="9956"/> <file name="20.wav" size="14812"/> <file name="minute2.wav" size="13350"/> <file name="minute1.wav" size="10656"/> <file name="hours3.wav" size="14304"/> <file name="16.wav" size="14254"/> <file name="10.wav" size="12002"/> <file name="exact_time.wav" size="19618"/> <file name="6.wav" size="12118"/> <file name="9.wav" size="12584"/> <file name="4.wav" size="13814"/> </group> <group name="queue"> <file name="ai_notify_callback.wav" size="43254"/> <file name="ai_queue_full.wav" size="31480"/> <file name="ai_do_you_want_decline_callback.wav" size="48688"/> <file name="ai_limit_reached.wav" size="59972"/> <file name="ai_you_can_still_wait.wav" size="105112"/> <file name="ai_queue_predicted_time.wav" size="22912"/> <file name="ai_queue_position.wav" size="16226"/> <file name="ai_now_you_can_hang_up.wav" size="64152"/> <file name="ai_queue_enqueued.wav" size="30144"/> <file name="ai_do_you_want_us_to_call_you_back.wav" size="43254"/> <file name="ai_queue_music.wav" size="3892940"/> <file name="ai_you_can_hang_up.wav" size="58718"/> </group> <group name="prompts"> <file name="voicemail_intro.wav" size="626066"/> </group> <group name="voicemail"> <file name="ai_remove_new_messages.wav" size="21450"/> <file name="ai_remove_old_messages.wav" size="25002"/> <file name="ai_message_saved.wav" size="16852"/> <file name="ai_saved_message.wav" size="34810"/> <file name="ai_saved_messages_1.wav" size="34810"/> <file name="ai_enter_current_password.wav" size="41498"/> <file name="ai_old_messages_1.wav" size="13358"/> <file name="ai_message_from_number.wav" size="21240"/> <file name="ai_save_file.wav" size="48630"/> <file name="ai_to_remove_voicemail_intro.wav" size="63604"/> <file name="ai_reenter_new_password.wav" size="37736"/> <file name="ai_voicemail_change_common_settings.wav" size="51110"/> <file name="ai_enter_new_password.wav" size="38572"/> <file name="ai_play_message_details.wav" size="44422"/> <file name="ai_exit.wav" size="57440"/> <file name="ai_voicemail_change_password.wav" size="32302"/> <file name="ai_voicemail_change_write_by_out_of_service.wav" size="85800"/> <file name="ai_remove_current_message.wav" size="22076"/> <file name="ai_saved_messages_2.wav" size="34810"/> <file name="ai_new_messages_2.wav" size="14136"/> <file name="ai_leave_message_after_beep.wav" size="218156"/> <file name="ai_voicemail_write_user_intro.wav" size="18734"/> <file name="ai_save_current_message.wav" size="39482"/> <file name="ai_pause_resume_message.wav" size="69500"/> <file name="ai_replay_message.wav" size="25420"/> <file name="ai_voicemail_password_incorrect.wav" size="33556"/> <file name="ai_skip_message.wav" size="50274"/> <file name="ai_voicemail_remove_user_intro.wav" size="42750"/> <file name="ai_enter_number_sharp.wav" size="59688"/> <file name="ai_listen_messages.wav" size="31618"/> <file name="ai_voicemail_change_write_conditions.wav" size="64066"/> <file name="ai_message_from_hidden_number.wav" size="55840"/> <file name="ai_for_listen_next_message.wav" size="23122"/> <file name="ai_listen_new_messages.wav" size="19360"/> <file name="ai_listen_prompt.wav" size="21032"/> <file name="ai_remove_save_messages.wav" size="52364"/> <file name="ai_you_have.wav" size="8494"/> <file name="ai_change_service_settings.wav" size="44840"/> <file name="ai_voicemail_change_send_by_email.wav" size="78696"/> <file name="ai_for_exit_from_service.wav" size="25420"/> <file name="ai_call_to_sender.wav" size="39826"/> <file name="ai_play_back_message.wav" size="23540"/> <file name="ai_try_once_more.wav" size="16524"/> <file name="ai_voicemail_change_write_by_busy.wav" size="82874"/> <file name="ai_new_messages_1.wav" size="13298"/> <file name="ai_voicemail_change_play_details.wav" size="74098"/> <file name="ai_message_successfully_removed.wav" size="17480"/> <file name="ai_to_remove_subscriber_intro.wav" size="45676"/> <file name="ai_to_remove_message.wav" size="190606"/> <file name="ai_participant_can_not_answer.wav" size="366414"/> <file name="ai_decline_remove_messages.wav" size="26118"/> <file name="ai_messages_successfully_removed.wav" size="17898"/> <file name="ai_ss_unavailable.wav" size="14554"/> <file name="ai_play_forward_message.wav" size="23540"/> <file name="ai_voicemail_mailbox_empty.wav" size="31898"/> <file name="ai_passwords_different.wav" size="36900"/> <file name="ai_listen_file.wav" size="45756"/> <file name="ai_listen_files.wav" size="22076"/> <file name="ai_voicemail_mgm_intro.wav" size="49856"/> <file name="ai_listen_current_file.wav" size="33404"/> <file name="ai_confirm_remove_messages.wav" size="40746"/> <file name="ai_old_message.wav" size="15808"/> <file name="ai_new_message.wav" size="14554"/> <file name="ai_no_more_messages.wav" size="15180"/> <file name="ai_say_message_after_beep.wav" size="63276"/> <file name="ai_password_successfully_changed.wav" size="28958"/> <file name="ai_voicemail_change_write_by_unconditional.wav" size="71172"/> <file name="ai_voicemail_change_write_by_no_reply.wav" size="74516"/> <file name="ai_for_record_voice_message_push.wav" size="29600"/> <file name="ai_old_messages_2.wav" size="16852"/> <file name="ai_listen_save_messages.wav" size="47348"/> <file name="ai_listen_old_messages.wav" size="21868"/> </group> <group name="push_numbers"> <file name="ai_push_8.wav" size="17986"/> <file name="ai_push_7.wav" size="16156"/> <file name="ai_push_3.wav" size="15998"/> <file name="ai_push_9.wav" size="16064"/> <file name="ai_push_2.wav" size="15180"/> <file name="ai_push_0.wav" size="15180"/> <file name="ai_push_#.wav" size="12056"/> <file name="ai_push_6.wav" size="17454"/> <file name="ai_push_1.wav" size="14442"/> <file name="ai_push_4.wav" size="15980"/> <file name="ai_push_5.wav" size="16060"/> <file name="ai_push_*.wav" size="13044"/> </group> <group name="dow"> <file name="thursday.wav" size="9120"/> <file name="sunday.wav" size="10584"/> <file name="monday.wav" size="9120"/> <file name="wednesday.wav" size="8494"/> <file name="ai_friday2.wav" size="7866"/> <file name="ai_saturday2.wav" size="8494"/> <file name="friday.wav" size="8076"/> <file name="ai_wednesday2.wav" size="9538"/> <file name="saturday.wav" size="8702"/> <file name="tuesday.wav" size="9120"/> </group> <group name="enumeration"> <file name="h-3.wav" size="10910"/> <file name="h-5.wav" size="9240"/> <file name="h-2.wav" size="10076"/> <file name="h-9.wav" size="14254"/> <file name="h-8.wav" size="13000"/> <file name="h-13.wav" size="15926"/> <file name="h-6.wav" size="12164"/> <file name="h-11.wav" size="15926"/> <file name="h-15.wav" size="15926"/> <file name="h-12.wav" size="16762"/> <file name="h-16.wav" size="18016"/> <file name="h-7.wav" size="13000"/> <file name="h-1.wav" size="8404"/> <file name="h-14.wav" size="18016"/> <file name="h-10.wav" size="13418"/> <file name="h-4.wav" size="14672"/> </group> <group name="numbers"> <file name="5.wav" size="9798"/> <file name="#1.wav" size="13754"/> <file name="7.wav" size="11608"/> <file name="1.wav" size="9728"/> <file name="*1.wav" size="80438"/> <file name="0.wav" size="11654"/> <file name="#.wav" size="13696"/> <file name="3.wav" size="8590"/> <file name="8.wav" size="12954"/> <file name="2.wav" size="11354"/> <file name="*.wav" size="15882"/> <file name="1n.wav" size="6376"/> <file name="6.wav" size="12118"/> <file name="9.wav" size="12584"/> <file name="4.wav" size="13814"/> </group> <file name="ai_to_turn_on.wav" size="23106"/> <file name="ai_you_are_first_participant.wav" size="50806"/> <file name="ai_alerting.wav" size="80078"/> <file name="ai_notpay.wav" size="38808"/> <file name="ai_pin_incorrect.wav" size="33932"/> <file name="ai_agent_already_on.wav" size="214020"/> <file name="ai_to_make_voicemail_intro.wav" size="58270"/> <file name="ai_unavailable.wav" size="28916"/> <file name="ai_error.wav" size="27572"/> <file name="ai_to_go_back_at_any_time.wav" size="58968"/> <file name="ai_notification.wav" size="83276"/> <file name="ai_wait_connection.wav" size="64024"/> <file name="ai_nearest4.wav" size="23942"/> <file name="ai_number_absent.wav" size="55342"/> <file name="ai_notconnected.wav" size="50088"/> <file name="ai_deactivated_all.wav" size="48978"/> <file name="ai_badconnection.wav" size="34096"/> <file name="ai_exit.wav" size="46568"/> <file name="ai_park_slot_busy.wav" size="12254"/> <file name="ai_agent_logged_out.wav" size="38078"/> <file name="ai_prompt_recorder_intro.wav" size="116320"/> <file name="activated.wav" size="9562"/> <file name="ai_every1.wav" size="18928"/> <file name="ai_enter_number_of_conference.wav" size="17270"/> <file name="ai_wrong_number.wav" size="27036"/> <file name="ai_remote_hold.wav" size="3892940"/> <file name="ai_enter_subscriber_prompt_number.wav" size="43184"/> <file name="ai_every4.wav" size="17238"/> <file name="ai_overload.wav" size="39366"/> <file name="ai_conference_prompt.wav" size="38326"/> <file name="ai_alarm_one_digit.wav" size="24584"/> <file name="ai_out_of_order.wav" size="38112"/> <file name="ai_participant_of_conference.wav" size="28154"/> <file name="ai_enter_number_sharp.wav" size="62990"/> <file name="ai_nearest3.wav" size="22270"/> <file name="ai_every2.wav" size="20600"/> <file name="ai_busy_overload.wav" size="5678"/> <file name="ai_pin_accepted.wav" size="25572"/> <file name="ai_timeout.wav" size="35122"/> <file name="ai_empty.wav" size="57352"/> <file name="ai_agent_login_ok.wav" size="31808"/> <file name="ai_enter_pin.wav" size="23882"/> <file name="ai_deactivated.wav" size="33978"/> <file name="ai_agent_number_occupied.wav" size="264004"/> <file name="ai_changed.wav" size="38948"/> <file name="ai_subscriber_busy.wav" size="24318"/> <file name="ai_busy.wav" size="11278"/> <file name="ai_from.wav" size="13912"/> <file name="ai_badroute.wav" size="43034"/> <file name="ai_enter_password.wav" size="12036"/> <file name="ai_until.wav" size="14330"/> <file name="ai_system_problem.wav" size="39366"/> <file name="ai_prompt_recorder_intro2.wav" size="164906"/> <file name="ai_tempdenied.wav" size="37254"/> <file name="ai_park_slot.wav" size="15180"/> <file name="ai_number_is_hidden.wav" size="18734"/> <file name="ai_alarm_off_today.wav" size="40746"/> <file name="ai_invalid_number_of_conference.wav" size="24376"/> <file name="ai_to_make_subscriber_intro.wav" size="21868"/> <file name="ai_added.wav" size="19270"/> <file name="ai_notaccess.wav" size="65234"/> <file name="ai_conference_can_not_be_extended.wav" size="46034"/> <file name="ai_conference_full.wav" size="46034"/> <file name="ai_busy_long.wav" size="58638"/> <file name="ai_my_number.wav" size="20976"/> <file name="ai_conference_has_been_extended.wav" size="35818"/> <file name="ai_conference_destroyed.wav" size="42342"/> <file name="ai_nearest2.wav" size="20182"/> <file name="ai_alarm_multi_digits.wav" size="32526"/> <file name="ai_enter_pin_number_sharp.wav" size="91088"/> <file name="ai_nearest1.wav" size="20182"/> <file name="ai_park_background_music.wav" size="3892940"/> <file name="ai_debt.wav" size="43662"/> <file name="ai_no_answer.wav" size="36858"/> <file name="ai_alerting_nd.wav" size="64298"/> <file name="ai_number_not_detected.wav" size="18734"/> <file name="ai_wait_time.wav" size="25342"/> <file name="ai_to_turn_off.wav" size="28540"/> <file name="ai_number_not_ready.wav" size="52028"/> <file name="ai_last_incoming_number.wav" size="51486"/> <file name="ai_invalidnumber.wav" size="27036"/> <file name="ai_alarm_off.wav" size="32720"/> <file name="ai_you.wav" size="11670"/> <file name="ai_local_hold.wav" size="80078"/> <file name="ai_number_not_found.wav" size="66114"/> <file name="ai_for_help_at_any_time.wav" size="38772"/> <file name="ai_auth_incorrect.wav" size="28712"/> <file name="ai_park_slot_empty.wav" size="41456"/> <file name="ai_not_reachable.wav" size="37254"/> <file name="ai_park_slot_number.wav" size="24794"/> <file name="ai_agent_auxwork.wav" size="282310"/> <file name="ai_agent_busy.wav" size="260292"/> <file name="ai_incomplete.wav" size="27036"/> <file name="ai_call_forwarding.wav" size="31466"/> <file name="ai_alarm_on.wav" size="31048"/> <file name="ai_to_make_alarm_intro.wav" size="49962"/> <file name="ai_activated.wav" size="28752"/> <file name="ai_please_enter_number.wav" size="30172"/> <file name="ai_every3.wav" size="16628"/> </system> <domain source="sounds"> <group name="biysk_sounds"> <file name="support-dep.wav" size="29720"/> <file name="pereadresacija-zvonka.wav" size="28466"/> <file name="ozhidajte-soedinenija.wav" size="37242"/> <file name="tech-dep.wav" size="33898"/> <file name="sorry.wav" size="12582"/> <file name="vas-privetstvuet.wav" size="26376"/> <file name="start-recording.wav" size="79874"/> <file name="parol.wav" size="8822"/> <file name="zanjat.wav" size="10910"/> <file name="telephone-number.wav" size="16344"/> <file name="zdravstujte.wav" size="15926"/> <file name="razgovor-mozhet-byt-zapisan.wav" size="112476"/> <file name="one-moment-please.wav" size="20594"/> </group> <file name="800_10_pcma.wav" size="160078"/> </domain> </result> </out>
Hc_restfs_url
Команда предназначена для получения URL до файла, хранящегося на RestFS для доступа до него по http.
Аналог команды в CoCon:
/domain/<DOMAIN>/restfs/list
Метод http запроса:
POST
Шаблон http запроса:
http://host:port/commands/restfs_url
Код http ответа:
201 – в случае успеха;
404 – в случае ошибки.
Xsd схема xml файла с ответом:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- systemRequestType --> <xs:complexType name="systemRequestType"> <xs:attribute name="id" type="xs:string" use="optional"> <xs:annotation> <xs:documentation xml:lang="en"> Request Id. In case of id present, it will be returned in the result. </xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="source" type="xs:string" use="required"/> <xs:attribute name="group" type="xs:string" use="optional"/> <xs:attribute name="file" type="xs:string" use="required"/> </xs:complexType> <!-- domainRequestType --> <xs:complexType name="domainRequestType"> <xs:attribute name="id" type="xs:string" use="optional"> <xs:annotation> <xs:documentation xml:lang="en"> Request Id. In case of id present, it will be returned in the result. </xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="source" type="xs:string" use="required"/> <xs:attribute name="group" type="xs:string" use="optional"/> <xs:attribute name="file" type="xs:string" use="required"/> </xs:complexType> <!-- systemResultType --> <xs:complexType name="systemResultType"> <xs:attribute name="id" type="xs:string" use="optional"/> <xs:attribute name="url" type="xs:string" use="required"/> </xs:complexType> <!-- domainResultType --> <xs:complexType name="domainResultType"> <xs:attribute name="id" type="xs:string" use="optional"/> <xs:attribute name="url" type="xs:string" use="required"/> </xs:complexType> <!-- requestType --> <xs:complexType name="requestType"> <xs:sequence> <xs:element name="system" type="systemRequestType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="domain" type="domainRequestType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="domain" type="xs:string" use="required"/> </xs:complexType> <!-- resultType --> <xs:complexType name="resultType"> <xs:sequence> <xs:element name="system" type="systemResultType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="domain" type="domainResultType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- in --> <xs:element name="in"> <xs:complexType> <xs:sequence> <xs:element name="request" type="requestType"/> </xs:sequence> </xs:complexType> </xs:element> <!-- out --> <xs:element name="out"> <xs:complexType> <xs:sequence> <xs:element name="result" type="resultType"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/restfs_url
<?xml version="1.0" encoding="UTF-8"?> <in xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="restfs_url.xsd"> <request domain="biysk.local"> <system source="sounds" file="ai_notpay.wav"/> <system source="sounds" file="ai_alarm_off.wav"/> <domain source="biysk_sounds" file="sorry.wav"/> <domain source="records" file="2017-11-16_21-10-53_o_240475-240518.wav"/> <domain source="records" group="ivr" file="file5.wav"/> </request>
Ответ:
<?xml version="1.0"?> <out xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="restfs_url.xsd"> <result> <system url="http://system.restfs.ecss:9990/system/sounds/ai_notpay.wav"/> <system url="http://system.restfs.ecss:9990/system/sounds/ai_alarm_off.wav"/> <domain url="http://system.restfs.ecss:9990/domain/biysk.local/biysk_sounds/sorry.wav"/> <domain url="http://system.restfs.ecss:9990/domain/biysk.local/records/2017-11-16_21-10-53_o_240475-240518.wav"/> <domain url="http://system.restfs.ecss:9990/domain/biysk.local/records/ivr/file5.wav"/> </result> </out>