Показаны различия между двумя версиями страницы.
|
voice3 [2022/03/24 09:49] kirill создано |
voice3 [2022/03/24 09:54] (текущий) kirill |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| # | # | ||
| <?php | <?php | ||
| - | #Т~@еб~Cе~B~A~O | + | #Требуется |
| - | + | ||
| - | + | ||
| - | #~_~@име~@ в~Kзова из dialplan | + | #Пример вызова из dialplan |
| #;Voice Module | #;Voice Module | ||
| #exten => _504, | #exten => _504, | ||
| Строка 11: | Строка 11: | ||
| #exten => _504, | #exten => _504, | ||
| #exten => _504, | #exten => _504, | ||
| - | + | ||
| - | #пол~C~Gаем пе~@еменн~Kе из AGI | + | #получаем переменные из AGI |
| $agivars = array(); | $agivars = array(); | ||
| while (!feof(STDIN)) { | while (!feof(STDIN)) { | ||
| $agivar = trim(fgets(STDIN)); | $agivar = trim(fgets(STDIN)); | ||
| if ($agivar === '' | if ($agivar === '' | ||
| + | |||
| $agivar = explode(':', | $agivar = explode(':', | ||
| $agivars[$agivar[0]] = trim($agivar[1]); | $agivars[$agivar[0]] = trim($agivar[1]); | ||
| } | } | ||
| extract($agivars); | extract($agivars); | ||
| + | |||
| $filename = $_SERVER[" | $filename = $_SERVER[" | ||
| - | + | ||
| - | #кл~N~G о~B yandex speech kit можно пол~C~Gи~B~L на: | + | #ключ от yandex speech kit можно получить на: |
| # | # | ||
| - | #~B~@еб~Cе~B~A~O ~C~G~Q~Bка ~Oндек~Aа | + | #требуется учётка яндекса |
| $key = ' | $key = ' | ||
| - | + | ||
| - | #$topic = ' | + | #$topic = ' |
| - | ~B~K: | + | #• freeform |
| - | #~@ freeform | + | #• general |
| - | ~O: пе~@еводим в ~Bек~A~B ~Aооб~Iение голо~Aовой по~G~B~K | + | #• maps — адреса, GEO-точки (название баров, автозаправочные станции, гостиницы и так далее), |
| - | го | + | #• music — названия песен, музыкальных групп и т.д. |
| - | #~@ general | + | |
| - | ожно п~@имени~B~L в данном кон~Bек~A~Bе; | + | |
| - | #~@ maps ~@~T ад~@е~Aа, GEO-~Bо~Gки (название ба~@ов, ав~Bозап~@аво~Gн~Kе ~A~Bан | + | |
| - | ~Fии, го~A~Bини~F~K и ~Bак далее), | + | |
| - | #~@ music ~@~T названи~O пе~Aен, м~Cз~Kкал~Lн~K~E г~@~Cпп и ~B.д. | + | |
| $topic = " | $topic = " | ||
| - | + | ||
| - | #$lang = ' | + | #$lang = ' |
| - | на данн~Kй момен~B подде~@живае~B~A~O ~@~C~A~Aкий ' | + | |
| $lang = " | $lang = " | ||
| - | + | ||
| - | #гене~@а~Fи~O ~@андомного ID. | + | #генерация рандомного ID. |
| $randtoken=rand(1, | $randtoken=rand(1, | ||
| $uuid=md5($randtoken); | $uuid=md5($randtoken); | ||
| - | #пе~@екоди~@~Cем ~Dайл в ~Dо~@ма~B ~Oндек~Aа | + | #перекодируем файл в формат яндекса |
| system(' | system(' | ||
| - | + | ||
| - | #о~B~A~Kлаем | + | #отсылаем |
| + | |||
| $cmd = exec(' | $cmd = exec(' | ||
| - | #де~@баним | + | #дербаним |
| - | е как наиболее | + | |
| $res_xml = implode($xml); | $res_xml = implode($xml); | ||
| if (preg_match(' | if (preg_match(' | ||
| Строка 65: | Строка 58: | ||
| else $voice_text=''; | else $voice_text=''; | ||
| + | |||
| ############### | ############### | ||
| - | + | ||
| - | if (intval(substr_count($voice_text, | + | if (intval(substr_count($voice_text, |
| - | $ress = 1; } | + | $ress = 1; } #если в результатах есть слово «оператор», то в диалплан возвращаем 1 |
| - | иалплан возв~@а~Iаем 1 | + | |
| elseif (intval(substr_count($voice_text, | elseif (intval(substr_count($voice_text, | ||
| - | $ress = 2;} #е~Aли в ~@ез~Cл~L~Bа~Bа~E е~A~B~L ~Aлово «заказ», | + | $ress = 2;} #если в результатах есть слово «заказ», |
| - | ан возв~@а~Iаем 2 | + | elseif (intval(substr_count($voice_text, |
| - | elseif (intval(substr_count($voice_text, | + | $ress = 3;} #если в результатах есть слово «секретарь», то в диалплан возвращаем 3 |
| - | $ress = 3;} #е~Aли в ~@ез~Cл~L~Bа~Bа~E е~A~B~L ~Aлово «~Aек~@е~Bа~@~L», ~Bо | + | elseif (intval(substr_count($voice_text, |
| - | диалплан возв~@а~Iаем 3 | + | $ress = 4;} #если в результатах есть слово «менеджер», то в диалплан возвращаем 4 |
| - | elseif (intval(substr_count($voice_text, | + | |
| - | $ress = 4;} #е~Aли в ~@ез~Cл~L~Bа~Bа~E е~A~B~L ~Aлово «менедже~@», ~Bо в ди | + | |
| - | алплан возв~@а~Iаем 4 | + | |
| else | else | ||
| - | | + | |
| + | |||
| ##################### | ##################### | ||
| - | + | ||
| - | #пе~@еда~Qм о~Bве~B о~B ~Aк~@ип~Bа в по~Bок ввода | + | #передаём ответ от скрипта в поток ввода |
| echo 'SET VARIABLE TEXT "' | echo 'SET VARIABLE TEXT "' | ||
| fgets(STDIN); | fgets(STDIN); | ||
| Строка 92: | Строка 81: | ||
| exit(0); | exit(0); | ||
| ?> | ?> | ||
| - | |||