рддрд╛рд░рд╛рдВрдХрди + UniMRCP + VoiceNavigatorред рднрд╛рд╖рдг рд╕рдВрд╢реНрд▓реЗрд╖рдг рдФрд░ Asterisk рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ред рднрд╛рдЧ рей

рднрд╛рдЧ 1
рднрд╛рдЧ реи
рднрд╛рдЧ рек

рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ , рд╕рдВрд╢реНрд▓реЗрд╖рдг рдЯреИрдЧ рдФрд░ рдорд╛рдиреНрдпрддрд╛ рд╡реНрдпрд╛рдХрд░рдг рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереАред
рдЗрд╕ рднрд╛рдЧ рдореЗрдВ, рдореИрдВ рддрд╛рд░рд╛рдВрдХрди рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡рд╛рдЬ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред "рд╣реЙрд░реНрдиреНрд╕ рдПрдВрдб рд╣реЛрд╡реНрд╕" рд╕реНрдЯреЛрд░ рдХреЗ рд▓рд┐рдП рд╡реЙрдпрд╕ рдореЗрдиреВ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рд╣реИрдмреЗ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд▓рд╛рдЧреВ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛, рдЬрд┐рд╕ рдкрд░ рдЖрдк рд╕рдВрд╢реНрд▓реЗрд╖рдг рдФрд░ рдорд╛рдиреНрдпрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдлрд╛рдпрджреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдкреЛрд╕реНрдЯ рд╣реИрдмреЗ рдкрд░ рдкрд╛рдпрд╛ рдЧрдпрд╛, рдЬреЛ рдХрднреА рдХрд╛рдлреА рд╕рдХреНрд░рд┐рдп рдерд╛ред рд▓реЗрдЦрдХ рдлреЛрди рдкрд░ рдореМрд╕рдо рдХреЗ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреЛ рд╕реБрдирдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕реНрдореЗрдЯрд┐рдпреЛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдХрдИ рдкреВрд░реНрд╡-рджрд░реНрдЬ рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рдПрдХреНрд╕рдПрдордПрд▓-рдореБрдЦрдмрд┐рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реБрдзрд╛рд░рдирд╛ рдФрд░ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдИрд╡реАрдЖрд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЧрддрд┐рд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рд╕рдВрд╢реНрд▓реЗрд╖рдг рдФрд░ рдорд╛рдиреНрдпрддрд╛ рдХреИрд╕реЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИред

рдЖрд╡реЗрджрди рдЙрд╕ рд╢рд╣рд░ рдХреЗ рд▓рд┐рдП рдкреВрдЫреЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдореМрд╕рдо рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдлрд┐рд░ рд╕рдордп (рдЗрд╕ рджреЛрдкрд╣рд░, рдХрд▓ рд░рд╛рдд, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рдкреВрдЫреЗрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

рдореМрд╕рдо xml рдлрд╝рд╛рдЗрд▓


Gismeteo рдлрд╛рдЗрд▓реЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
 <?xml version="1.0" encoding="utf-8"?> <MMWEATHER> <REPORT type="frc3"> <TOWN index="10381" sname="%C1%E5%F0%EB%E8%ED" latitude="52" longitude="13"> <FORECAST day="02" month="08" year="2011" hour="20" tod="3" predict="0" weekday="3"> <PHENOMENA cloudiness="0" precipitation="10" rpower="0" spower="0"/> <PRESSURE max="760" min="758"/> <TEMPERATURE max="21" min="19"/> <WIND min="2" max="4" direction="1"/> <RELWET max="74" min="72"/> <HEAT min="19" max="21"/> </FORECAST> <FORECAST day="03" month="08" year="2011" hour="02" tod="0" predict="0" weekday="4"> <PHENOMENA cloudiness="0" precipitation="10" rpower="0" spower="0"/> <PRESSURE max="761" min="759"/> <TEMPERATURE max="15" min="13"/> <WIND min="1" max="3" direction="1"/> <RELWET max="83" min="81"/> <HEAT min="13" max="15"/> </FORECAST> <FORECAST day="03" month="08" year="2011" hour="08" tod="1" predict="0" weekday="4"> <PHENOMENA cloudiness="0" precipitation="10" rpower="0" spower="0"/> <PRESSURE max="761" min="759"/> <TEMPERATURE max="18" min="16"/> <WIND min="2" max="4" direction="2"/> <RELWET max="80" min="78"/> <HEAT min="16" max="18"/> </FORECAST> <FORECAST day="03" month="08" year="2011" hour="14" tod="2" predict="0" weekday="4"> <PHENOMENA cloudiness="1" precipitation="10" rpower="0" spower="0"/> <PRESSURE max="760" min="758"/> <TEMPERATURE max="26" min="24"/> <WIND min="2" max="4" direction="2"/> <RELWET max="56" min="54"/> <HEAT min="22" max="24"/> </FORECAST> </TOWN> </REPORT> </MMWEATHER> 

рдкреНрд░рддреНрдпреЗрдХ рджрд┐рди рдХреЛ рджрд┐рди рдХреЗ 4 рд╕рдордп рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рд░рд╛рдд, рд╕реБрдмрд╣, рджрд┐рди, рд╢рд╛рдоред
рдлрд╝рд╛рдЗрд▓ рд╣рдореЗрд╢рд╛ 4 рдкреАрд░рд┐рдпрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдореМрд╕рдо рдХреЛ рджрд┐рдЦрд╛рддреА рд╣реИ, рдЙрд╕ рдХреНрд╖рдг рд╕реЗ рдЬрдм рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рджрд┐рди рдореЗрдВ 4 рдмрд╛рд░ рд╣реЛрддрд╛ рд╣реИ: 2.30, 8.30, 14.30, 20.30 MSKред рдЙрдкрд░реЛрдХреНрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, 2 рдЕрдЧрд╕реНрдд рдХреА рд╢рд╛рдо рдХреЗ рд▓рд┐рдП рдореМрд╕рдо, 3 рдЕрдЧрд╕реНрдд рдХреА рд░рд╛рдд, рд╕реБрдмрд╣ рдФрд░ рджрд┐рдиред рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╣рдо рдЗрд╕ рддрд░реНрдХ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВрдЧреЗред
рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
рд╕рдкреНрддрд╛рд╣ рдХрд╛ рджрд┐рди - рд╕рдкреНрддрд╛рд╣ рдХрд╛ рджрд┐рди (1 - рд░рд╡рд┐рд╡рд╛рд░, 2 - рд╕реЛрдорд╡рд╛рд░, рдЖрджрд┐)
рдЯреЙрдб - рджрд┐рди рдХрд╛ рд╕рдордп рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (0 - рд░рд╛рдд 1 - рд╕реБрдмрд╣, 2 - рджрд┐рди, 3 - рд╢рд╛рдо)
рдмрд╛рджрд▓ рдЫрд╛рдП рд░рд╣реЗрдВрдЧреЗ - рдмрд╛рджрд▓ рдЫрд╛рдП рд░рд╣реЗрдВрдЧреЗ (0 - рд╕реНрдкрд╖реНрдЯ, 1 - рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдмрд╛рджрд▓, 2 - рдмрд╛рджрд▓, 3 - рдмрд╛рджрд▓)
рд╡рд░реНрд╖рд╛ - рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд░реНрд╖рд╛ (4 - рдмрд╛рд░рд┐рд╢, 5 - рдмрд╛рд░рд┐рд╢, 6.7 - рдмрд░реНрдл, 8 - рдЧрд░рдЬ, 9 - рдХреЛрдИ рдбреЗрдЯрд╛ рдирд╣реАрдВ, 10 - рдХреЛрдИ рд╡рд░реНрд╖рд╛)
рддрд╛рдкрдорд╛рди - рд╣рд╡рд╛ рдХрд╛ рддрд╛рдкрдорд╛рди, рдбрд┐рдЧреНрд░реА рд╕реЗрд▓реНрд╕рд┐рдпрд╕ рдореЗрдВ

рдСрдЯреЛ xml рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ


рд╣рдореЗрд╢рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ xml- рдлрд╛рдЗрд▓реЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдХреНрд░реЛрди рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрди рд╢рд╣рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓реЗрдВ рд▓реЗ рдЬрд╛рдПрдЧреА рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓реЗрдВред рдЗрд╕рдореЗрдВ рд╕реЗ рд╣рдо рд╢рд╣рд░реЛрдВ рдХрд╛ рдирд╛рдо рд▓реЗрдВрдЧреЗред
 #!/bin/bash DIR=/var/www/html/gismeteo/xml /usr/bin/wget 'http://informer.gismeteo.ru/xml/27612_1.xml' -O $DIR/27612_1.xml # /usr/bin/wget 'http://informer.gismeteo.ru/xml/26063_1.xml' -O $DIR/26063_1.xml #- /usr/bin/wget 'http://informer.gismeteo.ru/xml/22892_1.xml' -O $DIR/22892_1.xml # /usr/bin/wget 'http://informer.gismeteo.ru/xml/29634_1.xml' -O $DIR/29634_1.xml # /usr/bin/wget 'http://informer.gismeteo.ru/xml/31960_1.xml' -O $DIR/31960_1.xml # /usr/bin/wget 'http://informer.gismeteo.ru/xml/26850_1.xml' -O $DIR/26850_1.xml # /usr/bin/wget 'http://informer.gismeteo.ru/xml/33345_1.xml' -O $DIR/33345_1.xml # /usr/bin/wget 'http://informer.gismeteo.ru/xml/36870_1.xml' -O $DIR/36870_1.xml # /usr/bin/wget 'http://informer.gismeteo.ru/xml/76680_1.xml' -O $DIR/76680_1.xml # /usr/bin/wget 'http://informer.gismeteo.ru/xml/2974_1.xml' -O $DIR/2974_1.xml # /usr/bin/wget 'http://informer.gismeteo.ru/xml/10381_1.xml' -O $DIR/10381_1.xml # /usr/bin/wget 'http://informer.gismeteo.ru/xml/48454_1.xml' -O $DIR/48454_1.xml # 

рд╡реНрдпрд╛рдХрд░рдг


рд╡реНрдпрд╛рдХрд░рдг рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ 3 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
Towns.xml - рдЙрди рд╢рд╣рд░реЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдореМрд╕рдо рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред Gismeteo рд╕рд░реНрд╡рд░ рд╕реЗ xml рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдЕрд░реНрде рдЯреИрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдЙрди рд╕рднреА рд╢рд╣рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдореМрд╕рдо рдЖрдкрдХреА рд░реБрдЪрд┐ рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ))
 <?xml version="1.0" encoding="utf-8"?> <grammar xml:lang="ru-RU" root="speak" mode="voice" version="1.0" xmlns="http://www.w3.org/2001/06/grammar" tag-format="semantics/1.0-literals"> <rule id="speak" scope="public"> <one-of> <item>!SYLLABLES</item> <item>!SYLLABLES <ruleref uri="#town"/> !SYLLABLES</item> </one-of> </rule> <rule id="town"> <one-of> <item><tag>27612_1.xml</tag></item> <item><tag>27612_1.xml</tag></item> <item>-<tag>26063_1.xml</tag></item> <item><tag>26063_1.xml</tag></item> <item><tag>26063_1.xml</tag></item> <item><tag>22892_1.xml</tag></item> <item><tag>29634_1.xml</tag></item> <item><tag>31960_1.xml</tag></item> <item><tag>26850_1.xml</tag></item> <item><tag>33345_1.xml</tag></item> <item><tag>36870_1.xml</tag></item> <item>-<tag>36870_1.xml</tag></item> <item><tag>36870_1.xml</tag></item> <item><tag>76680_1.xml</tag></item> <item><tag>2974_1.xml</tag></item> <item><tag>10381_1.xml</tag></item> <item><tag>48454_1.xml</tag></item> </one-of> </rule> </grammar> 

DTMF рдкрд░ рдорд╛рдиреНрдпрддрд╛ рдХрд╛ рдореБрдЦреНрдп рд╕реНрдкрд╖реНрдЯ рд▓рд╛рдн рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЬрдм рдЧреНрд░рд╛рд╣рдХ рдХреЛ 3 (рдмрд┐рдХреНрд░реА рд╡рд┐рднрд╛рдЧ, рддрдХрдиреАрдХреА рд╕рд╣рд╛рдпрддрд╛ рдпрд╛ рд▓реЗрдЦрд╛) рд╕реЗ рдПрдХ рдЖрдЗрдЯрдо рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди, рдХрд╣рддреЗ рд╣реИрдВ, рддреАрди рд╕реМ рдореЗрдВ рд╕реЗ рдПрдХ (рд╢рд╣рд░реЛрдВ рдпрд╛ рд╕рдбрд╝рдХреЛрдВ рдХреА рд╕реВрдЪреА)ред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХрдИ рд╢рд╣рд░реЛрдВ рдХреЛ рдмрдирд╛рдпрд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдЖрдкрдХреЛ рд╕реИрдХрдбрд╝реЛрдВ рдХреА рдкрд╕рдВрдж рдмрдирд╛рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред

time.xml - рджрд┐рди рдХреЗ рд╕рдордп рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рдХрд░реЗрдВред рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдЯреИрдЧ рдореЗрдВ, рдкрд╣рд▓рд╛ рдЕрдВрдХ 0-рдЖрдЬ, 1-рдХрд▓ рд╣реИ; рджреВрд╕рд░рд╛ рдЕрдВрдХ рджрд┐рди рдХрд╛ рд╕рдордп рд╣реИ, рдореМрд╕рдо xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЯреЙрдб рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рдорд╛рди рд╣реИред

 <?xml version="1.0" encoding="utf-8"?> <grammar xml:lang="ru-RU" root="speak" mode="voice" version="1.0" xmlns="http://www.w3.org/2001/06/grammar" tag-format="semantics/1.0-literals"> <rule id="speak" scope="public"> <one-of> <item>!SYLLABLES</item> <item>!SYLLABLES <ruleref uri="#time"/> !SYLLABLES</item> </one-of> </rule> <rule id="time"> <one-of> <item> <tag>00</tag></item> <item> <tag>01</tag></item> <item> <tag>02</tag></item> <item> <tag>03</tag></item> <item> <tag>10</tag></item> <item> <tag>11</tag></item> <item> <tag>12</tag></item> <item> <tag>13</tag></item> </one-of> </rule> </grammar> 

end_next.xml рдХреЗрд╡рд▓ рддреАрди рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдпреБрдХреНрдд рдПрдХ рд╕рд░рд▓ рд╡реНрдпрд╛рдХрд░рдг рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдВрдд рдореЗрдВ рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдЬрд╛рд░реА рд░рдЦрдиреЗ рдпрд╛ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
 <?xml version="1.0" encoding="utf-8"?> <grammar xml:lang="ru-RU" root="speak" mode="voice" version="1.0" xmlns="http://www.w3.org/2001/06/grammar" tag-format="semantics/1.0-literals"> <rule id="speak" scope="public"> <one-of> <item>!SYLLABLES</item> <item>!SYLLABLES <ruleref uri="#check"/> !SYLLABLES</item> </one-of> </rule> <rule id="check"> <one-of> <item> <tag>city_choice</tag></item> <item> <tag>time_choice</tag></item> <item><tag>bye</tag></item> </one-of> </rule> </grammar> 

рдкреВрд░реНрд╡ рд░рд┐рдХреЙрд░реНрдбреЗрдб рдзреНрд╡рдирд┐ рдлрд╛рдЗрд▓реЗрдВ


рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╕рдВрдж рдХреЗ рдЬрд╡рд╛рдмреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реНрд▓реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдлрд╛рдпрджреЗрдордВрдж рд╣реИред рд╕реНрдереИрддрд┐рдХ рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рджреЛ рдореБрдЦреНрдп рд▓рд╛рдн рд╣реИрдВ:
- рд╕рдВрд╢реНрд▓реЗрд╖рдг рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рднрд╛рд░ рдХрдо
- рдкреВрд░реНрд╡-рджрд░реНрдЬ рдХреА рдЧрдИ рдлрд╛рдЗрд▓реЗрдВ рдлрд╝рдВрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ MRCPRecog рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдмрдЬрд░рд╛ рдореЛрдб (рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рднрд╛рд╖рдг рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИрдВред

MRCPSynth рдФрд░ Monitor рдлрдВрдХреНрд╢рди рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ рдлрд╛рдЗрд▓реЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
city_choice.wavрдЙрд╕ рд╢рд╣рд░ рдХрд╛ рдирд╛рдо рдмрддрд╛рдЗрдП, рдЬрд┐рд╕рдореЗрдВ рдореМрд╕рдо рдЖрдкрдХреА рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИред
no_input.wavрдХреГрдкрдпрд╛ рдЬреЛрд░ рд╕реЗ рдмреЛрд▓рд┐рдПред
error_city.wavрдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ред рдмрд╛рд░-рдмрд╛рд░ рд╢рд╣рд░ рдХрд╛ рдирд╛рдоред
error.wavрдореИрдВ рддреБрдореНрд╣реЗрдВ рд╕рдордЭрд╛ рдирд╣реАрдВред рдХреГрдкрдпрд╛ рджреЛрд╣рд░рд╛рдПрдВред
time_choice.wavрдореМрд╕рдо рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рддрдиреЗ рд╕рдордп рддрдХ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдХрд▓ рджреЛрдкрд╣рд░ред"
end_next.wavрджреВрд╕рд░реЗ рд╢рд╣рд░ рдореЗрдВ рдореМрд╕рдо рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, "рд╢рд╣рд░ рдЪреБрдиреЗрдВред" рджрд┐рди рдХреЗ рдПрдХ рдФрд░ рд╕рдордп рдкрд░ рдореМрд╕рдо рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, "рджреВрд╕рд░реА рдмрд╛рд░" рдХрд╣реЗрдВред рдХреЙрд▓ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "рдЕрдВрдд" рдХрд╣реЗрдВред
bye.wavрдЖрдкрдХреА рдкреБрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЕрд▓рд╡рд┐рджрд╛!
not_found_time.wavрдЪрдпрдирд┐рдд рд╕рдордп рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдореМрд╕рдо рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИред рдПрдХ рдЕрд▓рдЧ рд╕рдордп рдЪреБрдиреЗрдВред

Xml рдореМрд╕рдо рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ


рдПрдХ AGI рд▓рд┐рдкрд┐ gismeteo.agi рдмрдирд╛рдПрдБ, рдЬреЛ рдореМрд╕рдо рдХреЗ рд╕рд╛рде xml рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдФрд░ рдбрд╛рдпрд▓рдкреИрди рд╕реЗ рджрд┐рди рдХреЗ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╕рдордп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧреА рдФрд░ рдлрд┐рд░ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореМрд╕рдо рдХреА рдЬрд╛рдирдХрд╛рд░реА рдЦреЛрдЬреЗрдЧреАред
Asterisk :: AGI рдХрд╛ рдЙрдкрдпреЛрдЧ Asterisk, XML рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ :: XML рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓
 #!/usr/bin/perl use XML::Simple; use Asterisk::AGI; use Time::localtime; use strict; $|=1; my $AGI = new Asterisk::AGI; my %var = $AGI->ReadParse(); #   my $xml_file=$AGI->get_variable("xml_file"); my $xml_source="/var/www/html/gismeteo/xml/$xml_file"; if ($ARGV[0] eq "city"){ #   = city,        #     xml- open (LIST, "/var/www/html/gismeteo/agi-bin/get_xml.sh") || die "   get_xml.sh"; my $city=""; while (<LIST>) { if(m/$xml_file/) { ($city)=/#(.*)/; last; } } close(LIST); $AGI->set_variable('city' => $city); exit; } elsif ($ARGV[0] eq "time") { #          #     my @cl_time=$AGI->get_variable("RECOG_INT0")=~/(.)/g; #    my $present_time=localtime(time()); my $present_weekday=$present_time->wday; #       my @day=('',''); my @tod=('','','',''); my @cloudiness=('','','',''); my %precipitation=('4'=>'', '5'=>'', '6'=>'', '7'=>'', '8'=>'', '9'=>'', '10'=>' '); # XML- my $xmlWeather = new XML::Simple(keeproot => 1,searchpath => ".", forcearray => 1, suppressempty => ''); my $xmlTown = $xmlWeather->XMLin($xml_source); my $xmlData = $xmlTown->{MMWEATHER}[ 0]->{REPORT}[ 0]->{TOWN}[ 0]->{FORECAST}; my $i=0; #      ,    for ($i=0; $i<4; $i++) { print "$xmlData->[$i]->{weekday}, $present_weekday%7+1+$cl_time[0], $xmlData->[$i]->{tod}\n"; if ($xmlData->[$i]->{weekday}==($present_weekday%7+1+$cl_time[0]) && $xmlData->[$i]->{tod}==$cl_time[1]) { $AGI->set_variable('speech_text' => "$day[$cl_time[0]] $tod[$xmlData->[$i]->{tod}]    $xmlData->[$i]->{TEMPERATURE}[ 0]->{min}  $xmlData->[$i]->{TEMPERATURE}[ 0]->{max} . $cloudiness[$xmlData->[$i]->{PHENOMENA}[ 0]->{cloudiness}]. $precipitation{$xmlData->[$i]->{PHENOMENA}[ 0]->{precipitation}}."); $AGI->set_priority('found'); exit; } } #    ,     $AGI->set_priority('not_found'); } 

Extension.conf рдореЗрдВ рдЖрд╡реЗрджрди


рдореИрдВ рдПрдХ рдЕрд▓рдЧ рдлрд╛рдЗрд▓ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ /etc/asterisk/extensions.conf рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ ред
Gismeteo.conf рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред

рдорд╛рдиреНрдпрддрд╛ рдореИрдХреНрд░реЛ

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдореИрдХреНрд░реЛ рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рд╕реАрдзреЗ рдорд╛рдиреНрдпрддрд╛ рд╕реЗ рдирд┐рдкрдЯреЗрдЧрд╛:
 [macro-recog-gismeteo] ;ARG1 -  , ARG2 -  , ARG3 -     , ARG4 -   exten => s,1,MRCPRecog(${GRAMMARS_PATH}/${ARG1},ct=0.20&b=1&f=${SND_PATH}/${ARG2}) exten => s,n(recog),SET(RECOG_HYP_NUM=0) exten => s,n,SET(RECOG_UTR0=) ;   NLSML- exten => s,n,AGI(NLSML.agi,${QUOTE(${RECOG_RESULT})}) ;  no-input exten => s,n,GotoIf(${REGEX("Completion-Cause: 002" ${RECOG_RESULT})}?$[${PRIORITY}+1]:check_error) exten => s,n,MRCPRecog(${GRAMMARS_PATH}/${ARG1},ct=0.20&b=1&f=${SND_PATH}/no_input) exten => s,n,Goto(recog) ;    exten => s,n(check_error),GotoIf($["${RECOG_UTR0}" = ""]?$[${PRIORITY}+1]:ok) exten => s,n,MRCPRecog(${GRAMMARS_PATH}/${ARG1},ct=0.20&b=1&f=${SND_PATH}/${ARG3}) exten => s,n,Goto(recog) ;    exten => s,n(ok),Goto(${MACRO_CONTEXT},${MACRO_EXTEN},${ARG4}) 

рдореИрдХреНрд░реЛ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХ рд╡реНрдпрд╛рдХрд░рдг рдлрд╝рд╛рдЗрд▓, рдПрдХ рдзреНрд╡рдирд┐ рд╕рдВрджреЗрд╢ рдлрд╝рд╛рдЗрд▓, рдПрдХ рдорд╛рдиреНрдпрддрд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдлрд▓ рдорд╛рдиреНрдпрддрд╛ рдкрд░ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдорд╛рдиреНрдпрддрд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо (рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ) рдФрд░ рдиреЛ-рдЗрдирдкреБрдЯ (рдЬреЛрд░ рд╕реЗ рдмреЛрд▓рдиреЗ рдкрд░ рдкреВрдЫрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЪреИрдирд▓ рдореЗрдВ рдХреЛрдИ рднрд╛рд╖рдг рдирд╣реАрдВ рдорд┐рд▓рд╛ рдерд╛)ред
рдХреЙрдиреНрдлрд┐рдбреЗрдВрд╕рдЯреНрд░реЗрд╢ = 20, рдЬреЛ рдХрдо рдорд╛рдиреНрдпрддрд╛ рдХреЗ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
NLSML.agi рдкрд╛рд░реНрд╕рд░ рдЗрдирдкреБрдЯ рдЪрд░ $ {RECOG_RESULT} рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЪрд░ рдХреЛ рдбрд╛рдпрд▓рдкреНрд▓рд╛рди рдкрд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИ:
$ {RECOG_UTR0} - рд╡реНрдпрд╛рдХрд░рдг рд╕реЗ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╡рд╛рдХреНрдпрд╛рдВрд╢,
$ {RECOG_INT0} - рд╢рдмреНрджрд╛рд░реНрде рдЯреИрдЧ,
$ {RECOG_CNF0} - рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рд╕реНрддрд░,
$ {RECOG_SNR0} - рд╢реЛрд░ рдЕрдиреБрдкрд╛рдд рдХрд╛ рд╕рдВрдХреЗрддред

Gismeteo рдРрдк

 [gismeteo] exten => 6853,1,Goto(gismeteo,1) ; ,      exten => gismeteo,1,Answer() ;  exten => gismeteo,n,Set(SND_PATH=/var/www/html/gismeteo/sounds) exten => gismeteo,n,Set(GRAMMARS_PATH=http://192.168.2.103/gismeteo/grammars) exten => gismeteo,n,Set(AGI_PATH=/var/www/html/gismeteo/agi-bin) ;  exten => gismeteo,n(city_choice),Macro(recog-gismeteo,towns.xml,city_choice,error_city,$[${PRIORITY}+1]) exten => gismeteo,n,SET(xml_file=${RECOG_INT0}) ;   AGI-     exten => gismeteo,n,AGI(${AGI_PATH}/gismeteo.agi,city) exten => gismeteo,n,MRCPSynth(<?xml version=\"1.0\"?><speak version=\"1.0\" xml:lang=\"ru-ru\" xmlns=\"http://www.w3.org/2001/10/synthesis\"><voice name=\"8000\">   ${city}.</voice></speak>) ;  exten => gismeteo,n(time_choice),Macro(recog-gismeteo,time.xml,time_choice,error,agi_check) ;   AGI-    exten => gismeteo,n(agi_check),AGI(${AGI_PATH}/gismeteo.agi,time) ;         exten => gismeteo,n(not_found),Macro(recog-gismeteo,time.xml,not_found_time,error,agi_check) ;     exten => gismeteo,n(found),MRCPSynth(<?xml version=\"1.0\"?><speak version=\"1.0\" xml:lang=\"ru-ru\" xmlns=\"http://www.w3.org/2001/10/synthesis\"><voice name=\"8000\">${speech_text}</voice></speak>) ;   exten => gismeteo,n,Macro(recog-gismeteo,end_next.xml,end_next,error,$[${PRIORITY}+1]) exten => gismeteo,n,Goto(${RECOG_INT0}) exten => gismeteo,n(bye),Playback(${SND_PATH}/bye) exten => gismeteo,n,Hangup() 

рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддрд░реНрдХ

рд╕рд┐рд╕реНрдЯрдо : рдЙрд╕ рд╢рд╣рд░ рдХрд╛ рдирд╛рдо рдмрддрд╛рдЗрдП, рдЬрд┐рд╕ рдореМрд╕рдо рдореЗрдВ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред
рдЧреНрд░рд╛рд╣рдХ : рдорд╛рд╕реНрдХреЛ
рдпрджрд┐ рд╢рд╣рд░ рдХреЛ рдорд╛рдиреНрдпрддрд╛ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдмрд╣реБрдд рдЪреБрдкрдЪрд╛рдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рд╡реЙрдпрд╕ рдореИрд╕реЗрдЬ рдЬрд╛рд░реА рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдорд╛рдиреНрдпрддрд╛ рд╕рдлрд▓ рд╣реЛрддреА рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдкрд░рд┐рдгрд╛рдо рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред
рдкреНрд░рдгрд╛рд▓реА : рдЖрдкрдиреЗ рдорд╛рд╕реНрдХреЛ рд╢рд╣рд░ рдХреЛ рдЪреБрдирд╛ рд╣реИред
рд╕рд┐рд╕реНрдЯрдо : рдЖрдк рдХрд┐рддрдиреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдореМрд╕рдо рдХрд╣рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдХрд▓ рджреЛрдкрд╣рд░ред"
рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ : рдХрд▓ рд╕реБрдмрд╣ред
рдпрджрд┐ рджрд┐рди рдХреЗ рд╕рдордп рдХреЛ рдорд╛рдиреНрдпрддрд╛ рдирд╣реАрдВ рджреА рдЬрд╛рддреА рд╣реИ рдпрд╛ рдмрд╣реБрдд рдЪреБрдкрдЪрд╛рдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдПрдХ рдЙрдкрдпреБрдХреНрдд рдЖрд╡рд╛рдЬ рд╕рдВрджреЗрд╢ рдЬрд╛рд░реА рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдорд╛рдиреНрдпрддрд╛ рд╕рдлрд▓ рд╣реЛрддреА рд╣реИ, рддреЛ gismeteo.agi рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдореМрд╕рдо xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдЦреЛрдЬрддреА рд╣реИред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рджрд┐рди рдХреЗ рд╕рдордп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдХрд╣рддреЗ рд╣реИрдВ, "рдЖрдЬ рд╕реБрдмрд╣", рд╡рд╣ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ "рдЪрдпрдирд┐рдд рд╕рдордп рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдореМрд╕рдо рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИред" рдПрдХ рдФрд░ рд╕рдордп рдЪреБрдиреЗрдВред тАЭрдпрджрд┐ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓рддреА рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдкрд░рд┐рдгрд╛рдо рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕рд┐рд╕реНрдЯрдо : рдХрд▓ рд╕реБрдмрд╣, рд╣рд╡рд╛ рдХрд╛ рддрд╛рдкрдорд╛рди 16 рд╕реЗ 18 рдбрд┐рдЧреНрд░реА рд╣реИред рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВред рдХреЛрдИ рд╡рд░реНрд╖рд╛ рдирд╣реАрдВред
рд╕рд┐рд╕реНрдЯрдо : рдХрд┐рд╕реА рджреВрд╕рд░реЗ рд╢рд╣рд░ рдореЗрдВ рдореМрд╕рдо рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП, "рд╢рд╣рд░ рдЪреБрдиреЗрдВ"ред рджрд┐рди рдХреЗ рдПрдХ рдФрд░ рд╕рдордп рдкрд░ рдореМрд╕рдо рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, "рджреВрд╕рд░реА рдмрд╛рд░" рдХрд╣реЗрдВред рдХреЙрд▓ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "рдЕрдВрдд" рдХрд╣реЗрдВред
рд╡рд╛рдХреНрдпрд╛рдВрд╢ "рдПрдХ рд╢рд╣рд░ рдЪреБрдиреЗрдВ" рдЖрд╡реЗрджрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓реМрдЯрддрд╛ рд╣реИред "рджреВрд╕рд░реА рдмрд╛рд░" рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдЖрдкрдХреЛ рджрд┐рди рдХреЗ рджреВрд╕рд░реЗ рд╕рдордп рдореЗрдВ рдЪрдпрдирд┐рдд рд╢рд╣рд░ рдореЗрдВ рдореМрд╕рдо рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ : рдкреВрд░рд╛ред
рд╕рд┐рд╕реНрдЯрдо : рдЖрдкрдХреА рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЕрд▓рд╡рд┐рджрд╛!

рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╛рдзрд╛рди рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдирд┐рдХрд▓рд╛ред рдЖрдк рдореВрд▓ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ;)
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рддрд╛рд░рд╛рдВрдХрди рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ "рдЯреНрд░рд┐рдХреНрд╕" рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдПрдирдПрд▓рдПрд╕рдПрдордПрд▓ рдкрд╛рд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдПрдХ рдореИрдХреНрд░реЛ рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ рдмрдирд╛рдХрд░ рдбрд╛рдпрд▓рдкреНрд▓рд╛рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛, рдмрдЬрд░рд╛-рдЗрди рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡-рд▓рд┐рдЦрд┐рдд рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрджрд┐ред рдЙрд╕реА рд╕рдордп рдЙрдиреНрд╣реЛрдВрдиреЗ рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдЬреАрдЖрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкрд░ рдЫреБрдЖред рдЗрд╕реА рддрд░рд╣, xml рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрд░реЛрдд рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдФрд░ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдПрдХ рд╡реНрдпрдерд╛ рд╡рд┐рд╖рдп рдкрд░ рд╕реНрдкрд░реНрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рд╕рдВрд╢реНрд▓реЗрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдорд╛рдиреНрдпрддрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдордВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рдПрд╕реНрдЯрд░рд┐рд╕реНрдХ рдХреА рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рд╕реАрдорд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдЖрдкрдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рд╕реБрдЭрд╛рд╡реЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рд╣реИред

рдкреБрдирд╢реНрдЪ: рдЖрдк рдпрд╣рд╛рдВ (812) 3258848 рдкрд░ рдЖрд╡реЗрджрди рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред 6853
PPS: рджреЛрд╕реНрддреЛрдВ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рдРрд╕реЗ рд▓реЛрдЧ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ рдЬреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдЯреЗрд▓реАрдлреЛрдиреА рдирд╣реАрдВ рдбрд╛рд▓реЗрдВрдЧреЗ))

Source: https://habr.com/ru/post/In125512/


All Articles