Почему я получаю RTSP/1.0 404 Not Found?

Это мой RTSP-разговор:

    ANNOUNCE rtsp://216.224.181.197/bstream.sdp RTSP/1.0
    CSeq: 1
    Content-Type: application/sdp
    User-Agent: C.U.
    Authorization: Digest username="gidon", realm="null", nonce="null", uri="/bstream.sdp", response="239fcac559661c17436e427e75f3d6a0"
    Content-Length: 313

    v=0
    s=CameraStream
    m=video 5006 RTP/AVP 96
    b=RR:0
    a=rtpmap:96 H264/90000
    a=fmtp:96 packetization-mode=1;profile-level-id=42000c;sprop-parameter-sets=Z0IADJZUCg+I,aM44gA==;
    a=control:trackID=0
    m=audio 5004 RTP/AVP 96
    b=AS:128
    b=RR:0
    a=rtpmap:96 AMR/8000
    a=fmtp:96 octet-align=1;
    a=control:trackID=1


    RTSP/1.0 401 Unauthorized
    Server: DSS/6.0.3 (Build/526.3; Platform/Linux; Release/Darwin Streaming Server; State/Development; )
    Cseq: 1
    WWW-Authenticate: Digest realm="Streaming Server", nonce="e5c0b7aff71820962027d73f55fe48c8"


    ANNOUNCE rtsp://216.224.181.197/bstream.sdp RTSP/1.0
    CSeq: 2
    Content-Type: application/sdp
    User-Agent: C.U.
    Authorization: Digest username="gidon", realm="Streaming Server", nonce="e5c0b7aff71820962027d73f55fe48c8", uri="/bstream.sdp", response="6e3aa3be3f5c04a324491fe9ab341918"
    Content-Length: 313

    v=0
    s=CameraStream
    m=video 5006 RTP/AVP 96
    b=RR:0
    a=rtpmap:96 H264/90000
    a=fmtp:96 packetization-mode=1;profile-level-id=42000c;sprop-parameter-sets=Z0IADJZUCg+I,aM44gA==;
    a=control:trackID=0
    m=audio 5004 RTP/AVP 96
    b=AS:128
    b=RR:0
    a=rtpmap:96 AMR/8000
    a=fmtp:96 octet-align=1;
    a=control:trackID=1


    RTSP/1.0 200 OK
    Server: DSS/6.0.3 (Build/526.3; Platform/Linux; Release/Darwin Streaming Server; State/Development; )
    Cseq: 2


    OPTIONS * RTSP/1.0
    CSeq: 3
    User-Agent: C.U.
    Authorization: Digest username="gidon", realm="Streaming Server", nonce="e5c0b7aff71820962027d73f55fe48c8", uri="/bstream.sdp", response="0042e3981657cc43737f3076b241f422"


    RTSP/1.0 200 OK
    Server: DSS/6.0.3 (Build/526.3; Platform/Linux; Release/Darwin Streaming Server; State/Development; )
    Cseq: 3
    Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, OPTIONS, ANNOUNCE, RECORD


    SETUP rtsp://216.224.181.197/bstream.sdp/trackID=0 RTSP/1.0
    CSeq: 4
    Transport: RTP/AVP;unicast;client_port=6970-6971;mode=record
    User-Agent: C.U.
    Accept-Language: en-US
    Authorization: Digest username="gidon", realm="Streaming Server", nonce="e5c0b7aff71820962027d73f55fe48c8", uri="/bstream.sdp", response="a9c762c9c456f85d3b913f5b6365e44d"


    RTSP/1.0 404 Not Found
    Server: DSS/6.0.3 (Build/526.3; Platform/Linux; Release/Darwin Streaming Server; State/Development; )
    Cseq: 4
    Connection: Close

Это не ошибка сервера, я уже работал с другим клиентом.

Не я реализую свой собственный клиент...

Когда я звоню ANNOUNCE, я отвечаю OK (200)

Но когда я пытаюсь вызвать SETUP, я получаю, что не существует (404)

почему я получаю 404?

Конфигурация ДСС:

<?xml version ="1.0"?>
<!-- The Document Type Definition (DTD) for the file -->
<!DOCTYPE CONFIGURATION [
<!ELEMENT CONFIGURATION (SERVER, MODULE*)>
<!ELEMENT SERVER (PREF|LIST-PREF|OBJECT|LIST-OBJECT)*>
<!ELEMENT MODULE (PREF|LIST-PREF|OBJECT|LIST-OBJECT)*>
<!ATTLIST MODULE
    NAME CDATA #REQUIRED>
<!ELEMENT PREF (#PCDATA)>
<!ATTLIST PREF
    NAME CDATA #REQUIRED
    TYPE (UInt8|SInt8|UInt16|SInt16|UInt32|SInt32|UInt64|SInt64|Float32|Float64|Bool16|Bool8|char) "char">
<!ELEMENT LIST-PREF (VALUE*)>
<!ELEMENT VALUE (#PCDATA)>
<!ATTLIST LIST-PREF
    NAME CDATA #REQUIRED
    TYPE  (UInt8|SInt8|UInt16|SInt16|UInt32|SInt32|UInt64|SInt64|Float32|Float64|Bool16|Bool8|char) "char">
<!ELEMENT OBJECT (PREF|LIST-PREF|OBJECT|LIST-OBJECT)*>
<!ATTLIST OBJECT
    NAME CDATA #REQUIRED>
<!ELEMENT LIST-OBJECT (OBJECT-VALUE*)>
<!ELEMENT OBJECT-VALUE (PREF|LIST-PREF|OBJECT|LIST-OBJECT)*>
<!ATTLIST LIST-OBJECT
    NAME CDATA #REQUIRED>
]>
<CONFIGURATION>
    <SERVER>
        <PREF NAME="rtsp_timeout" TYPE="UInt32" >0</PREF>
        <PREF NAME="real_rtsp_timeout" TYPE="UInt32" >180</PREF>
        <PREF NAME="rtp_timeout" TYPE="UInt32" >120</PREF>
        <PREF NAME="maximum_connections" TYPE="SInt32" >1000</PREF>
        <PREF NAME="maximum_bandwidth" TYPE="SInt32" >102400</PREF>
        <PREF NAME="movie_folder" >/usr/local/movies/</PREF>
        <PREF NAME="bind_ip_addr" >0</PREF>
        <PREF NAME="break_on_assert" TYPE="Bool16" >false</PREF>
        <PREF NAME="auto_restart" TYPE="Bool16" >true</PREF>
        <PREF NAME="total_bytes_update" TYPE="UInt32" >1</PREF>
        <PREF NAME="average_bandwidth_update" TYPE="UInt32" >60</PREF>
        <PREF NAME="safe_play_duration" TYPE="UInt32" >600</PREF>
        <PREF NAME="module_folder" >/usr/local/sbin/StreamingServerModules/</PREF>
        <PREF NAME="error_logfile_name" >Error</PREF>
        <PREF NAME="error_logfile_dir" >/var/streaming/logs/</PREF>
        <PREF NAME="error_logfile_interval" TYPE="UInt32" >7</PREF>
        <PREF NAME="error_logfile_size" TYPE="UInt32" >256000</PREF>
        <PREF NAME="error_logfile_verbosity" TYPE="UInt32" >2</PREF>
        <PREF NAME="screen_logging" TYPE="Bool16" >true</PREF>
        <PREF NAME="error_logging" TYPE="Bool16" >true</PREF>
        <PREF NAME="drop_all_video_delay" TYPE="SInt32" >1750</PREF>
        <PREF NAME="start_thinning_delay" TYPE="SInt32" >0</PREF>
        <PREF NAME="large_window_size" TYPE="UInt32" >64</PREF>
        <PREF NAME="window_size_threshold" TYPE="UInt32" >200</PREF>
        <PREF NAME="min_tcp_buffer_size" TYPE="UInt32" >8192</PREF>
        <PREF NAME="max_tcp_buffer_size" TYPE="UInt32" >200000</PREF>
        <PREF NAME="tcp_seconds_to_buffer" TYPE="Float32" >.5</PREF>
        <PREF NAME="do_report_http_connection_ip_address" TYPE="Bool16" >false</PREF>
        <PREF NAME="default_authorization_realm" >Streaming Server</PREF>
        <PREF NAME="run_user_name" >qtss</PREF>
        <PREF NAME="run_group_name" >qtss</PREF>
        <PREF NAME="append_source_addr_in_transport" TYPE="Bool16" >false</PREF>
        <LIST-PREF NAME="rtsp_port" TYPE="UInt16" >
            <VALUE>554</VALUE>
            <VALUE>7070</VALUE>
            <VALUE>8000</VALUE>
            <VALUE>8001</VALUE>
        </LIST-PREF>
        <PREF NAME="max_retransmit_delay" TYPE="UInt32" >500</PREF>
        <PREF NAME="small_window_size" TYPE="UInt32" >24</PREF>
        <PREF NAME="ack_logging_enabled" TYPE="Bool16" >false</PREF>
        <PREF NAME="rtcp_poll_interval" TYPE="UInt32" >100</PREF>
        <PREF NAME="rtcp_rcv_buf_size" TYPE="UInt32" >768</PREF>
        <PREF NAME="send_interval" TYPE="UInt32" >50</PREF>
        <PREF NAME="thick_all_the_way_delay" TYPE="SInt32" >-2000</PREF>
        <PREF NAME="alt_transport_src_ipaddr" ></PREF>
        <PREF NAME="max_send_ahead_time" TYPE="UInt32" >25</PREF>
        <PREF NAME="reliable_udp_slow_start" TYPE="Bool16" >true</PREF>
        <PREF NAME="auto_delete_sdp_files" TYPE="Bool16" >false</PREF>
        <PREF NAME="authentication_scheme" >digest</PREF>
        <PREF NAME="sdp_file_delete_interval_seconds" TYPE="UInt32" >10</PREF>
        <PREF NAME="auto_start" TYPE="Bool16" >false</PREF>
        <PREF NAME="reliable_udp" TYPE="Bool16" >true</PREF>
        <PREF NAME="reliable_udp_dirs" >/</PREF>
        <PREF NAME="reliable_udp_printfs" TYPE="Bool16" >false</PREF>
        <PREF NAME="drop_all_packets_delay" TYPE="SInt32" >2500</PREF>
        <PREF NAME="thin_all_the_way_delay" TYPE="SInt32" >1500</PREF>
        <PREF NAME="always_thin_delay" TYPE="SInt32" >750</PREF>
        <PREF NAME="start_thicking_delay" TYPE="SInt32" >250</PREF>
        <PREF NAME="quality_check_interval" TYPE="UInt32" >1000</PREF>
        <PREF NAME="RTSP_error_message" TYPE="Bool16" >false</PREF>
        <PREF NAME="RTSP_debug_printfs" TYPE="Bool16" >false</PREF>
        <PREF NAME="enable_monitor_stats_file" TYPE="Bool16" >false</PREF>
        <PREF NAME="monitor_stats_file_interval_seconds" TYPE="UInt32" >10</PREF>
        <PREF NAME="monitor_stats_file_name" >server_status</PREF>
        <PREF NAME="enable_packet_header_printfs" TYPE="Bool16" >false</PREF>
        <PREF NAME="packet_header_printf_options" >rtp;rr;sr;app;ack;</PREF>
        <PREF NAME="overbuffer_rate" TYPE="Float32" >2.0</PREF>
        <PREF NAME="medium_window_size" TYPE="UInt32" >48</PREF>
        <PREF NAME="window_size_max_threshold" TYPE="UInt32" >1000</PREF>
        <PREF NAME="RTSP_server_info" TYPE="Bool16" >true</PREF>
        <PREF NAME="run_num_threads" TYPE="UInt32" >0</PREF>
        <PREF NAME="pid_file" >/var/run/DarwinStreamingServer.pid</PREF>
        <PREF NAME="force_logs_close_on_write" TYPE="Bool16" >false</PREF>
        <PREF NAME="disable_thinning" TYPE="Bool16" >false</PREF>
        <LIST-PREF NAME="player_requires_rtp_header_info" >
            <VALUE>Nokia</VALUE>
            <VALUE>Real</VALUE>
        </LIST-PREF>
        <LIST-PREF NAME="player_requires_bandwidth_adjustment" >
            <VALUE>Nokia</VALUE>
            <VALUE>Real</VALUE>
        </LIST-PREF>
        <LIST-PREF NAME="player_requires_no_pause_time_adjustment" >
            <VALUE>Nokia</VALUE>
            <VALUE>Real</VALUE>
            <VALUE>PVPlayer</VALUE>
        </LIST-PREF>
        <PREF NAME="enable_3gpp_protocol" TYPE="Bool16" >true</PREF>
        <PREF NAME="enable_3gpp_protocol_rate_adaptation" TYPE="Bool16" >true</PREF>
        <PREF NAME="3gpp_protocol_rate_adaptation_report_frequency" TYPE="UInt16" >1</PREF>
        <PREF NAME="default_stream_quality" TYPE="UInt16" >0</PREF>
        <PREF NAME="player_requires_rtp_start_time_adjust" >Real</PREF>
        <PREF NAME="enable_3gpp_debug_printfs" TYPE="Bool16" >false</PREF>
        <PREF NAME="enable_udp_monitor_stream" TYPE="Bool16" >false</PREF>
        <PREF NAME="udp_monitor_video_port" TYPE="UInt16" >5002</PREF>
        <PREF NAME="udp_monitor_audio_port" TYPE="UInt16" >5004</PREF>
        <PREF NAME="udp_monitor_dest_ip" >127.0.0.1</PREF>
        <PREF NAME="udp_monitor_src_ip" >0.0.0.0</PREF>
        <PREF NAME="enable_allow_guest_default" TYPE="Bool16" >true</PREF>
        <PREF NAME="run_num_rtsp_threads" TYPE="UInt32" >1</PREF>
        <PREF NAME="player_requires_disable_3gpp_rate_adapt" ></PREF>
        <PREF NAME="player_requires_3gpp_target_time" ></PREF>
        <PREF NAME="3gpp_target_time_milliseconds" TYPE="UInt32" >3000</PREF>
        <PREF NAME="player_requires_disable_thinning" ></PREF>
    </SERVER>
    <MODULE NAME="QTSSErrorLogModule" ></MODULE>
    <MODULE NAME="QTSSFileModule" >
        <PREF NAME="flow_control_probe_interval" TYPE="UInt32" >10</PREF>
        <PREF NAME="max_allowed_speed" TYPE="Float32" >4.000000</PREF>
        <PREF NAME="enable_shared_file_buffers" TYPE="Bool16" >true</PREF>
        <PREF NAME="enable_private_file_buffers" TYPE="Bool16" >false</PREF>
        <PREF NAME="num_shared_buffer_increase_per_session" TYPE="UInt32" >8</PREF>
        <PREF NAME="shared_buffer_unit_k_size" TYPE="UInt32" >256</PREF>
        <PREF NAME="private_buffer_unit_k_size" TYPE="UInt32" >256</PREF>
        <PREF NAME="num_shared_buffer_units_per_buffer" TYPE="UInt32" >1</PREF>
        <PREF NAME="num_private_buffer_units_per_buffer" TYPE="UInt32" >1</PREF>
        <PREF NAME="max_shared_buffer_units_per_buffer" TYPE="UInt32" >8</PREF>
        <PREF NAME="max_private_buffer_units_per_buffer" TYPE="UInt32" >8</PREF>
        <PREF NAME="add_seconds_to_client_buffer_delay" TYPE="Float32" >0.000000</PREF>
        <PREF NAME="record_movie_file_sdp" TYPE="Bool16" >false</PREF>
        <PREF NAME="enable_movie_file_sdp" TYPE="Bool16" >false</PREF>
        <PREF NAME="enable_player_compatibility" TYPE="Bool16" >true</PREF>
        <PREF NAME="compatibility_adjust_sdp_media_bandwidth_percent" TYPE="UInt32" >50</PREF>
        <PREF NAME="compatibility_adjust_rtp_start_time_milli" TYPE="SInt64" >500</PREF>
        <PREF NAME="allow_invalid_hint_track_refs" TYPE="Bool16" >false</PREF>
        <PREF NAME="sdp_url" ></PREF>
        <PREF NAME="admin_email" ></PREF>
    </MODULE>
    <MODULE NAME="QTSSReflectorModule" >
        <PREF NAME="reflector_bucket_offset_delay_msec" TYPE="UInt32" >73</PREF>
        <PREF NAME="reflector_buffer_size_sec" TYPE="UInt32" >10</PREF>
        <PREF NAME="reflector_use_in_packet_receive_time" TYPE="Bool16" >false</PREF>
        <PREF NAME="reflector_in_packet_max_receive_sec" TYPE="UInt32" >60</PREF>
        <PREF NAME="reflector_rtp_info_offset_msec" TYPE="UInt32" >500</PREF>
        <PREF NAME="disable_rtp_play_info" TYPE="Bool16" >false</PREF>
        <PREF NAME="allow_non_sdp_urls" TYPE="Bool16" >true</PREF>
        <PREF NAME="enable_broadcast_announce" TYPE="Bool16" >true</PREF>
        <PREF NAME="enable_broadcast_push" TYPE="Bool16" >true</PREF>
        <PREF NAME="max_broadcast_announce_duration_secs" TYPE="UInt32" >0</PREF>
        <PREF NAME="allow_duplicate_broadcasts" TYPE="Bool16" >false</PREF>
        <PREF NAME="enforce_static_sdp_port_range" TYPE="Bool16" >false</PREF>
        <PREF NAME="minimum_static_sdp_port" TYPE="UInt16" >20000</PREF>
        <PREF NAME="maximum_static_sdp_port" TYPE="UInt16" >65535</PREF>
        <PREF NAME="kill_clients_when_broadcast_stops" TYPE="Bool16" >false</PREF>
        <PREF NAME="use_one_SSRC_per_stream" TYPE="Bool16" >true</PREF>
        <PREF NAME="timeout_stream_SSRC_secs" TYPE="UInt32" >30</PREF>
        <PREF NAME="timeout_broadcaster_session_secs" TYPE="UInt32" >20</PREF>
        <PREF NAME="authenticate_local_broadcast" TYPE="Bool16" >false</PREF>
        <PREF NAME="disable_overbuffering" TYPE="Bool16" >false</PREF>
        <PREF NAME="allow_broadcasts" TYPE="Bool16" >true</PREF>
        <PREF NAME="allow_announced_kill" TYPE="Bool16" >true</PREF>
        <PREF NAME="enable_play_response_range_header" TYPE="Bool16" >true</PREF>
        <PREF NAME="enable_player_compatibility" TYPE="Bool16" >true</PREF>
        <PREF NAME="compatibility_adjust_sdp_media_bandwidth_percent" TYPE="UInt32" >100</PREF>
        <PREF NAME="force_rtp_info_sequence_and_time" TYPE="Bool16" >false</PREF>
        <PREF NAME="BroadcasterGroup" >broadcaster</PREF>
        <PREF NAME="redirect_broadcast_keyword" ></PREF>
        <PREF NAME="redirect_broadcasts_dir" ></PREF>
        <PREF NAME="broadcast_dir_list" ></PREF>
        <PREF NAME="ip_allow_list" >127.0.0.*</PREF>
    </MODULE>
    <MODULE NAME="QTSSRelayModule" >
        <PREF NAME="relay_prefs_file" >/etc/streaming/relayconfig.xml</PREF>
        <PREF NAME="relay_stats_url" ></PREF>
    </MODULE>
    <MODULE NAME="QTSSAccessLogModule" >
        <PREF NAME="request_logging" TYPE="Bool16" >true</PREF>
        <PREF NAME="request_logfile_size" TYPE="UInt32" >10240000</PREF>
        <PREF NAME="request_logfile_interval" TYPE="UInt32" >7</PREF>
        <PREF NAME="request_logtime_in_gmt" TYPE="Bool16" >true</PREF>
        <PREF NAME="request_logfile_dir" >/var/streaming/logs/</PREF>
        <PREF NAME="request_logfile_name" >StreamingServer</PREF>
    </MODULE>
    <MODULE NAME="QTSSFlowControlModule" >
        <PREF NAME="loss_thin_tolerance" TYPE="UInt32" >30</PREF>
        <PREF NAME="num_losses_to_thin" TYPE="UInt32" >3</PREF>
        <PREF NAME="loss_thick_tolerance" TYPE="UInt32" >5</PREF>
        <PREF NAME="num_losses_to_thick" TYPE="UInt32" >6</PREF>
        <PREF NAME="num_worses_to_thin" TYPE="UInt32" >2</PREF>
        <PREF NAME="flow_control_udp_thinning_module_enabled" TYPE="Bool16" >true</PREF>
    </MODULE>
    <MODULE NAME="QTSSPosixFileSysModule" ></MODULE>
    <MODULE NAME="QTSSAdminModule" >
        <PREF NAME="IPAccessList" >127.0.0.*</PREF>
        <PREF NAME="Authenticate" TYPE="Bool16" >true</PREF>
        <PREF NAME="LocalAccessOnly" TYPE="Bool16" >true</PREF>
        <PREF NAME="RequestTimeIntervalMilli" TYPE="UInt32" >50</PREF>
        <PREF NAME="enable_remote_admin" TYPE="Bool16" >true</PREF>
        <PREF NAME="AdministratorGroup" >admin</PREF>
    </MODULE>
    <MODULE NAME="QTSSMP3StreamingModule" >
        <PREF NAME="mp3_request_logfile_name" >mp3_access</PREF>
        <PREF NAME="mp3_request_logfile_dir" >/var/streaming/logs/</PREF>
        <PREF NAME="mp3_streaming_enabled" TYPE="Bool16" >true</PREF>
        <PREF NAME="mp3_broadcast_password" >*****</PREF>
        <PREF NAME="mp3_broadcast_buffer_size" TYPE="UInt32" >8192</PREF>
        <PREF NAME="mp3_max_flow_control_time" TYPE="SInt32" >10000</PREF>
        <PREF NAME="mp3_request_logging" TYPE="Bool16" >true</PREF>
        <PREF NAME="mp3_request_logfile_size" TYPE="UInt32" >10240000</PREF>
        <PREF NAME="mp3_request_logfile_interval" TYPE="UInt32" >7</PREF>
        <PREF NAME="mp3_request_logtime_in_gmt" TYPE="Bool16" >true</PREF>
    </MODULE>
    <MODULE NAME="QTSSAccessModule" >
        <PREF NAME="modAccess_enabled" TYPE="Bool16" >true</PREF>
        <PREF NAME="modAccess_usersfilepath" >/etc/streaming/qtusers</PREF>
        <PREF NAME="modAccess_groupsfilepath" >/etc/streaming/qtgroups</PREF>
        <PREF NAME="modAccess_qtaccessfilename" >qtaccess</PREF>
    </MODULE>
</CONFIGURATION>

person Amitay Molko    schedule 26.06.2012    source источник
comment
Как выглядит ваша конфигурация DSS?   -  person Jon Burgess    schedule 26.06.2012
comment
где я могу найти конфигурацию DSS?   -  person Amitay Molko    schedule 26.06.2012
comment
Если на Ubuntu, скорее всего, он будет в /etc/streaming/streamingserver.xml.   -  person Jon Burgess    schedule 26.06.2012


Ответы (2)


Добавление

c=IN IP4 216.224.181.197

Исправлена ​​проблема.

person Amitay Molko    schedule 26.06.2012

может быть, для

, uri="/bstream.sdp",

файл /bstream.sdp существует?

вы пробовали с файлом avi, wmv, rmvb или mp4?

person Pablo Martinez    schedule 26.06.2012
comment
Я пытаюсь сделать прямой эфир. bstream.sdp не существует, его должен создать анонс? - person Amitay Molko; 26.06.2012
comment
да, я знаю, но многие серверы плохо работают с необработанными данными, например: VATATA P2P имеет эту проблему, но с wmv работает нормально - person Pablo Martinez; 26.06.2012
comment
Я не понимаю, что вы предлагаете... Файл SDP - это конфигурация потока, а не необработанные данные. - person Amitay Molko; 26.06.2012
comment
Я плохо объясняю :P в конфигурации вы указываете папку, в которой находятся данные для потоковой передачи. Права доступа есть?, файлы лежат в этой папке? - person Pablo Martinez; 26.06.2012
comment
У меня есть прямая трансляция для работы с другим клиентом. Теперь я пытаюсь реализовать свой собственный клиент. Когда я вызываю ANNOUNCE, я получаю ответ OK (200), но когда я пытаюсь вызвать SETUP, я получаю, что не существует (404) - person Amitay Molko; 26.06.2012
comment
попробуйте это: stackoverflow.com/questions/5015373 / 'В SDP a=control:track1 и a=control:track2, тогда как в запросе настройки RTSP вы используете trackID=1. VLC, вероятно, делает это правильно?» - person Pablo Martinez; 26.06.2012
comment
Но я использую a=control:trackID=0, а затем запрашиваю trackID=0 в запросе SETUP. Я делаю это правильно. - person Amitay Molko; 26.06.2012
comment
Почему бы вам не понюхать рабочий разговор с другим клиентом и не сравнить его? - person Ralf; 26.06.2012